646dfeeb92aeed45c53779a897617c2fb15af411
[WebKit-https.git] / Source / WebCore / ChangeLog
1 2012-08-13  Andrey Kosyakov  <caseq@chromium.org>
2
3         Web Inspector: when status bar is too narrow, cut panel status bar, not main status bar items
4         https://bugs.webkit.org/show_bug.cgi?id=93814
5
6         Reviewed by Pavel Feldman.
7
8         - set shrink factor of bottom-status-bar-container to 1;
9         - set bottom-status-bar-container's width to 0 to workaround for flex-basis being ignored;
10
11         * inspector/front-end/inspector.css:
12         (#bottom-status-bar-container):
13
14 2012-08-13  Yury Semikhatsky  <yurys@chromium.org>
15
16         Web Inspector: add memory instrumentation for Attribute
17         https://bugs.webkit.org/show_bug.cgi?id=93827
18
19         Reviewed by Pavel Feldman.
20
21         Attribute's name and value footprint is counted as part of the DOM
22         component.
23
24         * dom/Attribute.h:
25         (WebCore::Attribute::reportMemoryUsage):
26         (Attribute):
27         * dom/ElementAttributeData.cpp:
28         (WebCore::ElementAttributeData::reportMemoryUsage):
29
30 2012-08-13  Vsevolod Vlasov  <vsevik@chromium.org>
31
32         Web Inspector: Polish search/replace toolbar buttons style.
33         https://bugs.webkit.org/show_bug.cgi?id=93826
34
35         Reviewed by Pavel Feldman.
36
37         * inspector/front-end/inspector.css:
38         (.toolbar-search button):
39
40 2012-08-13  Kwang Yul Seo  <skyul@company100.net>
41
42         [Qt] Add gprof.prf to build WebKit with gprof enabled
43         https://bugs.webkit.org/show_bug.cgi?id=90283
44
45         Reviewed by Eric Seidel.
46
47         No behavior change, so no new tests.
48
49         * WebCore.pri:
50         -ffunction-sections conflicts with -pg option, so don't use
51         -ffunction-sections option when gprof is enabled.
52
53 2012-08-13  Zan Dobersek  <zandobersek@gmail.com>
54
55         Unreviewed build fix after r125408, removing another usage of SVG_FEATURES.
56
57         * GNUmakefile.am:
58
59 2012-08-13  Zan Dobersek  <zandobersek@gmail.com>
60
61         [Gtk] Remove SVG_FEATURES and HTML_FEATURES from Source/WebCore/GNUmakefile.am
62         https://bugs.webkit.org/show_bug.cgi?id=90693
63
64         Reviewed by Philippe Normand.
65
66         Remove SVG_FEATURES and HTML_FEATURES variables. They can be replaced by the
67         FEATURE_DEFINES variable wherever they are used.
68
69         No new tests - no new functionality.
70
71         * GNUmakefile.am:
72
73 2012-08-13  Mario Sanchez Prada  <msanchez@igalia.com>
74
75         [GTK] Implementation of atk_editable_text_insert_text ignores 'length' parameter
76         https://bugs.webkit.org/show_bug.cgi?id=93804
77
78         Reviewed by Carlos Garcia Campos.
79
80         Use the 'length' parameter to insert a substring of the full
81         string passed to this method from AtkEditableText interface.
82
83         * accessibility/gtk/WebKitAccessibleInterfaceEditableText.cpp:
84         (webkitAccessibleEditableTextInsertText): Don't ignore 'length'.
85
86 2012-08-13  Sam D  <dsam2912@gmail.com>
87
88         Web Inspector: Feature Request - Adding mouse gesture for editing attribute values in elements/css panel
89         https://bugs.webkit.org/show_bug.cgi?id=93581
90
91         Reviewed by Alexander Pavlov.
92
93         Added functionality to modify valuesAdding support for updating number values in attributes in element
94         panel/ css panel using mouse gestures as well.
95
96         No new tests.
97
98         * inspector/front-end/StylesSidebarPane.js:
99         handling mousewheel event
100         * inspector/front-end/TextPrompt.js:
101         adding mouse event listener
102         (WebInspector.TextPrompt.prototype._attachInternal):
103         (WebInspector.TextPrompt.prototype.defaultKeyHandler):
104         (WebInspector.TextPrompt.prototype.onMouseWheel):
105         * inspector/front-end/UIUtils.js:
106         handling mouse event gesture and updating number based on mouse wheel
107         scroll direction as well.
108         (WebInspector._valueModificationDirection):
109         (WebInspector._modifiedHexValue):
110         (WebInspector._modifiedFloatNumber):
111         (WebInspector.handleElementValueModifications):
112
113 2012-08-13  Carlos Garcia Campos  <cgarcia@igalia.com>
114
115         Unreviewed. Fix make distcheck.
116
117         * GNUmakefile.list.am: Add missing header file.
118
119 2012-08-10  Alexander Pavlov  <apavlov@chromium.org>
120
121         Web Inspector: [Protocol] Force elements pseudo state via a separate InspectorCSSAgent method
122         https://bugs.webkit.org/show_bug.cgi?id=93721
123
124         Reviewed by Pavel Feldman.
125
126         Introduce InspectorCSSAgent::forcePseudoState() to modify the element's forced pseudo state.
127
128         * inspector/Inspector.json:
129         * inspector/InspectorCSSAgent.cpp:
130         (WebCore::InspectorCSSAgent::getMatchedStylesForNode):
131         (WebCore::InspectorCSSAgent::getComputedStyleForNode):
132         (WebCore::InspectorCSSAgent::forcePseudoState):
133         (WebCore):
134         * inspector/InspectorCSSAgent.h:
135         (InspectorCSSAgent):
136         * inspector/InspectorDOMAgent.h:
137         (InspectorDOMAgent):
138         * inspector/front-end/AuditRules.js:
139         (WebInspector.AuditRules.ImageDimensionsRule.prototype.doRun.getStyles):
140         * inspector/front-end/CSSStyleModel.js:
141         (WebInspector.CSSStyleModel.prototype.getMatchedStylesAsync):
142         (WebInspector.CSSStyleModel.prototype.getComputedStyleAsync):
143         (WebInspector.CSSStyleModel.prototype.forcePseudoState):
144         * inspector/front-end/ElementsPanel.js:
145         (WebInspector.ElementsPanel.prototype._setPseudoClassForNodeId):
146         * inspector/front-end/MetricsSidebarPane.js:
147         * inspector/front-end/StylesSidebarPane.js:
148         (WebInspector.StylesSidebarPane.prototype._refreshUpdate):
149         (WebInspector.StylesSidebarPane.prototype._rebuildUpdate):
150
151 2012-08-13  Shinya Kawanaka  <shinyak@chromium.org>
152
153         Cannot select the AuthorShadowDOM inner element of an img element
154         https://bugs.webkit.org/show_bug.cgi?id=91591
155
156         Reviewed by Dimitri Glazkov.
157
158         Since HTMLImageElement::canStartSelection always returns false, we cannot start selection
159         from any children (including shadow dom) of an img element. When the img element has a shadow dom,
160         we should be able to start selection.
161
162         Test: fast/dom/shadow/select-image-with-shadow.html
163
164         * html/HTMLImageElement.cpp:
165         (WebCore::HTMLImageElement::canStartSelection):
166         (WebCore):
167         * html/HTMLImageElement.h:
168         (HTMLImageElement):
169         * html/shadow/ImageInnerElement.h:
170         (WebCore::ImageInnerElement::canStartSelection): Since ImageInnerElement is really an image,
171         this should return always false to obey the exising behavior.
172         (ImageInnerElement):
173
174 2012-08-13  Peter Wang  <peter.wang@torchmobile.com.cn>
175
176         REGRESSION (r124723-r124741): 5 inspector/debugger tests failing on Apple Lion Debug WK1 (Tests)
177         https://bugs.webkit.org/show_bug.cgi?id=93387
178
179         Reviewed by Pavel Feldman.
180
181         Now the front-end has problem when setting the positon of breakpoint, so remove the comparing
182         of "column" to make the behavior back to the time as JSC cannot provide "column" info.
183         Refer to https://bugs.webkit.org/show_bug.cgi?id=93473.  
184
185         No new test case for this bug.
186
187         * bindings/js/ScriptDebugServer.cpp:
188         (WebCore::ScriptDebugServer::hasBreakpoint):
189
190 2012-08-10  Kinuko Yasuda  <kinuko@chromium.org>
191
192         Support creating File object from FileSystem URL for files in FileSystem API
193         https://bugs.webkit.org/show_bug.cgi?id=93706
194
195         Reviewed by Darin Fisher.
196
197         Current File code assumes the existence of local file (i.e. requires a platform local file path) but for FileSystem
198         files it may not be always the case. For example some implementation may want to use in-memory filesystem to realize
199         sandboxed filesystem, or others may have the filesystem in remote servers.
200
201         This patch adds basic support for making File object constructible not only from a file path but from a FileSystem URL.
202         Since File can be appended to FormData or included in another Blob this patch also extends BlobData and FormData to support URL.
203
204         FileChooser and Drag-and-drop changes are not included in this patch.
205
206         No new tests: will add tests when we implement the platform side changes to wire this change.
207
208         * Modules/filesystem/DOMFileSystem.cpp:
209         (WebCore::DOMFileSystem::createFile):
210         * Modules/filesystem/DOMFileSystemSync.cpp:
211         (WebCore::DOMFileSystemSync::createFile):
212         * fileapi/Blob.cpp:
213         (WebCore::Blob::sliceInternal):
214         * fileapi/File.cpp:
215         (WebCore::createBlobDataForFileSystemURL): Added.
216         (WebCore::File::File):
217         * fileapi/File.h:
218         (WebCore::File::createForFileSystemFile):
219         (WebCore::File::fileSystemURL): Added.
220         * fileapi/WebKitBlobBuilder.cpp:
221         (WebCore::WebKitBlobBuilder::append):
222         * platform/chromium/support/WebHTTPBody.cpp:
223         (WebKit::WebHTTPBody::elementAt):
224         (WebKit::WebHTTPBody::appendURL): Added.
225         (WebKit::WebHTTPBody::appendURLRange): Added.
226         (WebKit::WebHTTPBody::appendBlob):
227         * platform/network/BlobData.cpp:
228         (WebCore::BlobData::appendURL):
229         * platform/network/BlobData.h:
230         (BlobDataItem):
231         (WebCore::BlobDataItem::BlobDataItem):
232         * platform/network/BlobRegistryImpl.cpp:
233         (WebCore::BlobRegistryImpl::appendStorageItems):
234         (WebCore::BlobRegistryImpl::registerBlobURL):
235         * platform/network/FormData.cpp:
236         (WebCore::FormData::deepCopy):
237         (WebCore::FormData::appendURL): Added.
238         (WebCore::FormData::appendURLRange): Added.
239         (WebCore::FormData::appendKeyValuePairItems):
240         * platform/network/FormData.h:
241         (WebCore::FormDataElement::FormDataElement):
242         (FormDataElement):
243         (WebCore::operator==):
244
245 2012-08-12  Dan Bernstein  <mitz@apple.com>
246
247         <rdar://problem/11442485> off-screen or inactive pages can change the mouse pointer
248
249         Reviewed by Adele Peterson.
250
251         * page/EventHandler.cpp:
252         (WebCore::EventHandler::fakeMouseMoveEventTimerFired): Added a check that the page is
253         on-screen and active before dispatching the fake mouse event.
254
255 2012-08-12  Jonathan Dong  <jonathan.dong@torchmobile.com.cn>
256
257         [BlackBerry] use MediaPlayer::userAgent() in MediaPlayerPrivateBlackBerry to avoid layering violation
258         https://bugs.webkit.org/show_bug.cgi?id=93588
259
260         Reviewed by Antonio Gomes.
261
262         Removed helper function MediaPlayerPrivate::userAgent() which has
263         introduced abstraction layering violation and replaced with
264         MediaPlayer::userAgent().
265
266         No new tests since there's no functional change.
267
268         * platform/graphics/blackberry/MediaPlayerPrivateBlackBerry.cpp:
269         (WebCore::MediaPlayerPrivate::load):
270
271 2012-07-04  Kinuko Yasuda  <kinuko@chromium.org>
272
273         Record metrics to measure the usage of WebKitBlobBuilder to eventually deprecate it
274         https://bugs.webkit.org/show_bug.cgi?id=90535
275
276         Reviewed by Eric Seidel.
277
278         No new tests as this has no functional changes.
279
280         * bindings/js/JSBlobCustom.cpp:
281         (WebCore::JSBlobConstructor::constructJSBlob):
282         * bindings/v8/custom/V8BlobCustom.cpp:
283         (WebCore::V8Blob::constructorCallback):
284         * fileapi/WebKitBlobBuilder.cpp:
285         (WebCore::WebKitBlobBuilder::getBlob):
286         * fileapi/WebKitBlobBuilder.h:
287         (WebKitBlobBuilder):
288
289 2012-08-12  Ojan Vafai  <ojan@chromium.org>
290
291         Remove unnecessary null checks from pseudoStyleForElement and adjustRenderStyle
292         https://bugs.webkit.org/show_bug.cgi?id=93730
293
294         Reviewed by Tony Chang.
295
296         All the callers of both methods make sure to pass in a non-null parentStyle.
297
298         No change in behavior.
299
300         * css/StyleResolver.cpp:
301         * css/StyleResolver.h:
302
303 2012-08-12  Pravin D  <pravind.2k4@gmail.com>
304
305         table cell.cellIndex should return -1 if there is no parent table
306         https://bugs.webkit.org/show_bug.cgi?id=93738
307
308         Reviewed by Eric Seidel.
309
310         According to the HTML5 spec the cellIndex of a table cell(td/th) whose parent is not a table row
311         must be -1. Currently we are returning zero. This patch fixes this behavior. 
312
313         Test: fast/table/cellIndex-of-cell-with-different-parents.html
314
315         * html/HTMLTableCellElement.cpp:
316         (WebCore::HTMLTableCellElement::cellIndex):
317           If the parent of the cell is not a table row, -1 is returned. Otherwise a value greater
318           than or equal to zero is return.
319
320         * rendering/RenderTableCell.h:
321         (RenderTableCell):
322          Removed dead code and made minor webkit style related fix.
323
324 2012-08-12  Leandro Gracia Gil  <leandrogracia@chromium.org>
325
326         [Chromium] Implement the find-in-page match rects API
327         https://bugs.webkit.org/show_bug.cgi?id=93111
328
329         Reviewed by Adam Barth.
330
331         Introduce the find-in-page coordinate system. This system tries to solve
332         the unintuitive tickmark results presented in pages with multiple frames
333         and scrolled contents where the find results might not be in the visible
334         area of a frame, which might lead to tickmarks below the container frame.
335
336         To achieve this, this coordinate system goes up the render tree
337         normalizing the coordinates by the actual contents size of its container.
338         This leads to tickmarks scaled to the visible size of their frame
339         independently of its scroll. This coordinate system supports also CSS
340         scroll:overflow, transforms and the different positions.
341
342         Also add an auxiliary method to Range in order to provide a transform
343         friendly way to retrieve the absolute coordinates of the enclosing
344         bounding box without the adjustment operations that the existing
345         enclosingRect method does.
346
347         Tested by WebFrameTest WebKit unit test.
348
349         * dom/Range.cpp:
350         (WebCore::Range::transformFriendlyBoundingBox): add a transform-friendly equivalent of boundingBox.
351         (WebCore):
352         * dom/Range.h: move boundingBox to the group of non-transform-friendly methods.
353         (Range):
354
355 2012-08-12  Ami Fischman  <fischman@chromium.org>
356
357         Stop Y-flipping CROS/ARM video textures
358         https://bugs.webkit.org/show_bug.cgi?id=93769
359
360         Reviewed by Eric Seidel.
361
362         No new tests; there's no cros/arm bot yet, sadly.
363
364         * platform/graphics/chromium/cc/CCVideoLayerImpl.cpp:
365         (WebCore::CCVideoLayerImpl::appendQuads): drop the single-platform Y-flipping in prep for the platform doing the flip natively.
366
367 2012-08-12  Mihnea Ovidenie  <mihnea@adobe.com>
368
369         CSSRegions: Crash when using style in region for removed element.
370         https://bugs.webkit.org/show_bug.cgi?id=93276
371
372         Reviewed by Abhishek Arya.
373
374         When a RenderInline object from within a render flow thread is split, the cloned
375         hierarchy built during the split process does not have the inRenderFlowThread bit
376         set properly. If the cloned hierarchy is flowed into a region with region style rules,
377         we compute the style in region also for objects that do not have inRenderFlowThread bit
378         set and we store the computed style in region for caching purposes. But we only remove
379         an object style in region information if that object has the inRenderFlowThread bit set.
380         Under these circumstances, it is possible to remove a object with cached style in region
381         and without inRenderFlowThread bit set from the render tree and leave the associated cached
382         information un-removed. Such information will be accesses during the next paint phase of
383         the region, thus resulting a crash.
384
385         The fix is to modify RenderBlock::clone() and RenderInline::clone() functions to also copy the inRenderFlowThread bit
386         from the source into the clone, therefore the cloned hierarchies will have the inRenderFlowThread
387         bit set properly.
388
389         Test: fast/regions/removed-element-style-in-region-crash.html
390
391         * rendering/RenderBlock.cpp:
392         (WebCore::RenderBlock::clone):
393         * rendering/RenderInline.cpp:
394         (WebCore::RenderInline::clone): Replace former static RenderInline::cloneInline with member RenderInline::clone.
395         (WebCore::RenderInline::splitInlines):
396         * rendering/RenderInline.h:
397         (RenderInline):
398         * rendering/RenderRegion.cpp:
399         (WebCore::RenderRegion::setObjectStyleInRegion):
400         Added an assert to make sure that when we are computing style in region, we are doing for objects
401         with inRenderFlowThread set. Also, bail out early in this case to prevent further crashes.
402
403 2012-08-12  Huang Dongsung  <luxtella@company100.net>
404
405         Set the access qualifier of two methods to query frame specific info of BitmapImage to protected.
406         https://bugs.webkit.org/show_bug.cgi?id=90505
407
408         Reviewed by Eric Seidel.
409
410         Following 4 methods are protected.
411           size_t frameCount();
412           NativeImagePtr frameAtIndex(size_t);
413           bool frameIsCompleteAtIndex(size_t);
414           float frameDurationAtIndex(size_t);
415
416         So, 2 methds also should be protected because the frame info is only specific of
417         BitmapImage.
418           bool frameHasAlphaAtIndex(size_t);
419           ImageOrientation frameOrientationAtIndex(size_t);
420
421         On the other hand, this patch amended GraphicsContext3DCG.
422         - static_cast<BitmapImage*>(image)->frameHasAlphaAtIndex(0)
423         + image->currentFrameHasAlpha()
424
425         This patch does not affect PNG, JPEG, BMP, and WEBP because those images
426         have only 0 indexed frame.
427         Thus, GIF, and ICO are affected. However, an above query to get Alpha
428         is for the image that is created by image->nativeImageForCurrentFrame(), so it
429         is proper to use image->currentFrameHasAlpha() instead of
430         image->frameHasAlphaAtIndex(0).
431
432         No new tests, because it is hard to test. We need an animated GIF that
433         one frame has alpha and another frame does not have alpha. However, I
434         cannot find the animated GIF file that suffices the requirement.
435
436         * platform/graphics/BitmapImage.h:
437         (BitmapImage):
438         * platform/graphics/cg/GraphicsContext3DCG.cpp:
439         (WebCore::GraphicsContext3D::getImageData):
440
441 2012-08-12  Takashi Sakamoto  <tasak@google.com>
442
443         webkit fails IETC namespaces/prefix-007.xml
444         https://bugs.webkit.org/show_bug.cgi?id=86137
445
446         Reviewed by Eric Seidel.
447
448         If a namespace prefix or default namespace is declared more than once
449         only the last declaration shall be used.
450
451         parseAddNamespace doesn't check return value of WTF::HashMap<>::add.
452         If the return value's isNewEntry is true, the new entry is added with
453         the specified value. However, if isNewEntry is false, it is required
454         to update the store value.
455
456         No new tests. ietestcenter/css3/namespaces/prefix-007.xml and
457         ietestcenter/css3/namespaces/prefix-010.xml covers this change.
458
459         * css/StyleSheetContents.cpp:
460         (WebCore::StyleSheetContents::parserAddNamespace):
461         Modified to check m_namespaces.add's return value.
462         If the result says not a new entry, updated the value stored in
463         m_namespaces by using iterator in the result.
464
465 2012-08-12  Benjamin Poulain  <benjamin@webkit.org>
466
467         Move CSS's propertyNameStrings[] to from the header to the cpp file
468         https://bugs.webkit.org/show_bug.cgi?id=93771
469
470         Reviewed by Eric Seidel.
471
472         The names of propertyNameStrings[] should never be accessed directly. The function getPropertyName()
473         return the correct string of propertyNameStrings.
474
475         To ensure the values are not accessed by mistake, move them from the header to the implementation.
476
477         * css/makeprop.pl:
478
479 2012-08-12  Benjamin Poulain  <benjamin@webkit.org>
480
481         CSSComputedStyleDeclaration::cssText() should use StringBuilder
482         https://bugs.webkit.org/show_bug.cgi?id=93776
483
484         Reviewed by Eric Seidel.
485
486         String::append() is fairly inefficient when used to create a long string by appending a lot of small
487         pieces. StringBuilder is more approriate for the kind of operations done by CSSComputedStyleDeclaration::cssText().
488
489         This changes makes CSSComputedStyleDeclaration::cssText() about 6 times faster.
490
491         * css/CSSComputedStyleDeclaration.cpp:
492         (WebCore::CSSComputedStyleDeclaration::cssText):
493
494 2012-08-11  Benjamin Poulain  <bpoulain@apple.com>
495
496         Do the DecimalNumber to String conversion on 8 bits
497         https://bugs.webkit.org/show_bug.cgi?id=93683
498
499         Reviewed by Andreas Kling.
500
501         Numbers converted to string for CSS are unlikely to ever be concatenated with a 16bits string.
502         This patch change the conversion to be done to 8bits string in order to reduce memory allocations.
503
504         * css/CSSPrimitiveValue.cpp:
505         (WebCore::formatNumber):
506         * inspector/InspectorValues.cpp:
507         (WebCore::InspectorBasicValue::writeJSON):
508         * platform/graphics/Color.cpp:
509         (WebCore::Color::serialized): Instead of allocating a static WTF::String, we can simply append the
510         string literal to the output vector.
511
512 2012-08-11  Benjamin Poulain  <benjamin@webkit.org>
513
514         WebCore::findAtomicString(PropertyName) always convert the name to 16bits
515         https://bugs.webkit.org/show_bug.cgi?id=93685
516
517         Reviewed by Geoffrey Garen.
518
519         * bindings/js/JSDOMBinding.cpp:
520         (WebCore::findAtomicString):
521         Use the new AtomicString::find() to avoid calling StringImpl::characters().
522
523 2012-08-11  Caio Marcelo de Oliveira Filho  <caio.oliveira@openbossa.org>
524
525         [Qt] Remove QtSenderStack now we do not support __qt_sender__ anymore in Qt bridge
526         https://bugs.webkit.org/show_bug.cgi?id=93767
527
528         Reviewed by Kenneth Rohde Christiansen.
529
530         Dead code after patch of bug 93649.
531
532         * bridge/qt/qt_instance.h:
533         (QtInstance):
534
535 2012-08-11  Abhishek Arya  <inferno@chromium.org>
536
537         Unreviewed. 
538
539         Removing newly added assert in r125351 since it is exposing
540         legitimate layout bugs in few tests. We will re-add the assert
541         after fixing those bugs. Failures are tracked in webkit bug 93766. 
542
543         * rendering/RenderBlock.cpp:
544         (WebCore::RenderBlock::removeFromTrackedRendererMaps):
545
546 2012-08-11  Levi Weintraub  <leviw@chromium.org>
547
548         Track block's positioned objects like percent-height descendants
549         https://bugs.webkit.org/show_bug.cgi?id=89848
550
551         Reviewed by Abhishek Arya.
552
553         The previous method for tracking a RenderBlock's out-of-flow positioned descendants was error prone,
554         subject to becoming inconsistent, and in the case of removePositionedObjects, inefficient. This patch 
555         extracts the algorithm used for percent height descendants and re-uses it for positioned objects. This same
556         method could further be re-used for floats.
557
558         This change removes the m_positionedObjects pointer, which brings RenderBlock's size down (yay!).
559
560         Test: fast/block/positioning/relayout-nested-positioned-elements-crash-2.html
561
562         * rendering/RenderBlock.cpp:
563         (SameSizeAsRenderBlock):
564         (WebCore):
565         (WebCore::removeBlockFromDescendantAndContainerMaps):
566         (WebCore::RenderBlock::~RenderBlock):
567         (WebCore::RenderBlock::addOverflowFromPositionedObjects):
568         (WebCore::RenderBlock::layoutBlockChildren):
569         (WebCore::RenderBlock::layoutPositionedObjects):
570         (WebCore::RenderBlock::markPositionedObjectsForLayout):
571         (WebCore::clipOutPositionedObjects):
572         (WebCore::RenderBlock::selectionGaps):
573         (WebCore::RenderBlock::insertIntoTrackedRendererMaps):
574         (WebCore::RenderBlock::removeFromTrackedRendererMaps):
575         (WebCore::RenderBlock::positionedObjects):
576         (WebCore::RenderBlock::insertPositionedObject):
577         (WebCore::RenderBlock::removePositionedObject):
578         (WebCore::RenderBlock::removePositionedObjects):
579         (WebCore::RenderBlock::addPercentHeightDescendant):
580         (WebCore::RenderBlock::removePercentHeightDescendant):
581         (WebCore::RenderBlock::percentHeightDescendants):
582         (WebCore::RenderBlock::checkPositionedObjectsNeedLayout):
583         * rendering/RenderBlock.h:
584         (WebCore):
585         (RenderBlock):
586         (WebCore::RenderBlock::hasPositionedObjects):
587         * rendering/RenderBox.cpp:
588         (WebCore::RenderBox::removeFloatingOrPositionedChildFromBlockLists):
589         * rendering/RenderBoxModelObject.cpp:
590         (WebCore::RenderBoxModelObject::moveChildTo): Changing the fixme to reflect the assumption that the caller
591         has taken care of updating the positioned renderer maps is a decision not a bug. The ASSERT should help
592         assure this.
593         * rendering/RenderTableSection.cpp:
594         (WebCore::RenderTableSection::layoutRows):
595         * rendering/RenderView.cpp:
596         (WebCore::RenderView::setFixedPositionedObjectsNeedLayout):
597
598 2012-08-10  Joshua Netterfield  <jnetterfield@rim.com>
599
600         [WebGL] Add support for EXT_robustness
601         https://bugs.webkit.org/show_bug.cgi?id=93379
602
603         Reviewed by George Staikos.
604
605         Take advantage of EXT robustness in WebKit.
606
607         This commit makes WebKit use readnPixelsEXT, getnUniformfvEXT and
608         getnUniformivEXT instead of readPixels, getUniformfv and getUniformiv
609         when possible, and sets up the reset notification behaviour for
610         GLES platforms.
611
612         The reset behaviour has not yet been implemented in the BlackBerry
613         compositing thread, so for now on BlackBerry we just abort when
614         the context has been reset. This prevents undefined behaviour, but
615         can be improved in the future.
616
617         No new tests are needed because no new functionality is introduced.
618         Support for ARB robustness reset notification behaviour is already
619         in WebKit, and EXT robustness' reset notifcation behaviour is the
620         same. readnPixelsEXT replaces WebKit's existing mechanisms of
621         preventing buffer overflows.
622
623         RIM PR# 147510
624         Internally reviewed by Arvid Nilsson.
625
626         * html/canvas/WebGLRenderingContext.cpp:
627         (WebCore):
628         (WebCore::WebGLRenderingContext::setupFlags):
629         (WebCore::WebGLRenderingContext::getUniform):
630         (WebCore::WebGLRenderingContext::readPixels):
631         * html/canvas/WebGLRenderingContext.h:
632         (WebGLRenderingContext):
633         * platform/chromium/support/Extensions3DChromium.cpp:
634         (WebCore::Extensions3DChromium::readnPixelsEXT):
635         (WebCore):
636         (WebCore::Extensions3DChromium::getnUniformfvEXT):
637         (WebCore::Extensions3DChromium::getnUniformivEXT):
638         * platform/graphics/Extensions3D.h:
639         * platform/graphics/blackberry/GraphicsContext3DBlackBerry.cpp:
640         (WebCore::GraphicsContext3D::setContextLostCallback):
641         * platform/graphics/blackberry/LayerRenderer.cpp:
642         (WebCore::LayerRenderer::LayerRenderer):
643         (WebCore::LayerRenderer::makeContextCurrent):
644         * platform/graphics/blackberry/LayerRenderer.h:
645         (LayerRenderer):
646         * platform/graphics/chromium/Extensions3DChromium.h:
647         * platform/graphics/opengl/Extensions3DOpenGLCommon.cpp:
648         (WebCore::Extensions3DOpenGLCommon::readnPixelsEXT):
649         (WebCore):
650         (WebCore::Extensions3DOpenGLCommon::getnUniformfvEXT):
651         (WebCore::Extensions3DOpenGLCommon::getnUniformivEXT):
652         * platform/graphics/opengl/Extensions3DOpenGLCommon.h:
653         (Extensions3DOpenGLCommon):
654         * platform/graphics/opengl/Extensions3DOpenGLES.cpp:
655         (WebCore::Extensions3DOpenGLES::Extensions3DOpenGLES):
656         (WebCore::Extensions3DOpenGLES::getGraphicsResetStatusARB):
657         (WebCore):
658         (WebCore::Extensions3DOpenGLES::setEXTContextLostCallback):
659         (WebCore::Extensions3DOpenGLES::readnPixelsEXT):
660         (WebCore::Extensions3DOpenGLES::getnUniformfvEXT):
661         (WebCore::Extensions3DOpenGLES::getnUniformivEXT):
662         (WebCore::Extensions3DOpenGLES::supportsExtension):
663         * platform/graphics/opengl/Extensions3DOpenGLES.h:
664         (Extensions3DOpenGLES):
665
666 2012-08-10  Arko Saha  <arko@motorola.com>
667
668         Microdata: item with itemprop attribute should not include the item itself in the HTMLPropertiesCollection.
669         https://bugs.webkit.org/show_bug.cgi?id=93717
670
671         Reviewed by Ryosuke Niwa.
672
673         Tests: fast/dom/MicroData/item-with-itemprop-attr.html
674                fast/dom/MicroData/item-with-itemref-pointing-to-itself.html
675
676         * dom/PropertyNodeList.cpp:
677         (WebCore::PropertyNodeList::nodeMatches): Do not process the testElement if it is the owner node.
678         * html/HTMLPropertiesCollection.cpp:
679         (WebCore::nextNodeWithProperty): Traverse the next node only if previous node is microdata item
680         i.e, ownerNode or previous element does not have itemscope attribute specified.
681         (WebCore::HTMLPropertiesCollection::virtualItemAfter): Try to find the next property if current
682         is ownerNode.
683
684 2012-08-10  Ryuan Choi  <ryuan.choi@samsung.com>
685
686         [BlackBerry][EFL][GTK][WIN][WX] Remove ScriptControllerXXX.cpp to reduce duplication
687         https://bugs.webkit.org/show_bug.cgi?id=61424
688
689         Reviewed by Rob Buis.
690
691         ScriptControllerBlackBerry, ScriptControllerEfl, ScriptControllerGtk,
692         ScriptControllerWin and ScriptControllerWx are almost same.
693         In order to reduce duplication, this patch moves codes to ScriptController
694         and removes them.
695
696         No behavior change. Just a refactoring.
697
698         * GNUmakefile.list.am:
699         * PlatformBlackBerry.cmake:
700         * PlatformEfl.cmake:
701         * PlatformWinCE.cmake:
702         * WebCore.gypi:
703         * bindings/js/JSBindingsAllInOne.cpp:
704         * bindings/js/ScriptController.cpp:
705         (WebCore):
706         (WebCore::ScriptController::createScriptInstanceForWidget):
707         Moved from ScriptControllerXXX.cpp
708         * bindings/js/ScriptControllerBlackBerry.cpp: Removed.
709         * bindings/js/ScriptControllerEfl.cpp: Removed.
710         * bindings/js/ScriptControllerGtk.cpp: Removed.
711         * bindings/js/ScriptControllerWin.cpp: Removed.
712         * bindings/js/ScriptControllerWx.cpp: Removed.
713
714 2012-08-10  Elliott Sprehn  <esprehn@gmail.com>
715
716         RenderQuote corrupts doubly linked list on insertion before head of list
717         https://bugs.webkit.org/show_bug.cgi?id=93750
718
719         Reviewed by Abhishek Arya.
720
721         Fix bug where moving a RenderQuote instance before the first one in
722         the document would not update the m_previous pointer of the original
723         first RenderQuote to point back at the new one.
724
725         Test: fast/css-generated-content/quote-crash-93750.html
726
727         * rendering/RenderQuote.cpp:
728         (WebCore::RenderQuote::attachQuote):
729
730 2012-08-09  James Robinson  <jamesr@chromium.org>
731
732         [chromium] Remove forwarding headers for compositor-related WebKit API and update includes
733         https://bugs.webkit.org/show_bug.cgi?id=93669
734
735         Reviewed by Adam Barth.
736
737         Updates all includes for compositor-related headers to refer consistently to the Platform API location.
738
739         * platform/chromium/support/WebCompositorImpl.h:
740
741 2012-08-10  James Robinson  <jamesr@chromium.org>
742
743         Unreviewed build fix.
744
745         r125337 added a call to WTF::currentTime() in MediaController.cpp, but that file didn't #include
746         <wtf/CurrentTime.h>. This file is indirectly picked up on the include paths for some ports, but not all.
747
748         * html/MediaController.cpp:
749
750 2012-08-10  Jer Noble  <jer.noble@apple.com>
751
752         no timeupdate events emitted for media controller
753         https://bugs.webkit.org/show_bug.cgi?id=93745
754
755         Reviewed by Eric Carlson.
756
757         Generate timeupdate events while the current position is changing.
758
759         Test: media/media-controller-timeupdate.html
760
761         Enforce the spec requirement that the timeupdate event is fired no more often
762         than every 250ms.
763         * html/MediaController.cpp:
764         (MediaController::scheduleTimeupdateEvent):
765
766         Add a periodic firing timer to generate timeupdate events during playback.
767         * html/MediaController.cpp:
768         (MediaController::startTimeupdateTimer):
769         (MediaController::timeupdateTimerFired):
770
771         * html/MediaController.cpp:
772         (MediaController::MediaController): Initialize m_previousTimeupdateTime.
773         (MediaController::setCurrentTime): Call scheduleTimeUpdateEvent.
774         (MediaController::updatePlaybackState): Start and stop the timeupdate timer.
775         * html/MediaController.h:
776         
777 2012-08-09  Jeffrey Pfau  <jpfau@apple.com>
778
779         Allow blocking of third-party localStorage and sessionStorage
780         https://bugs.webkit.org/show_bug.cgi?id=93390
781
782         Reviewed by Adam Barth.
783
784         Add checks for if a page is third-party and third-party storage blocking is enabled while accessing storage.
785
786         Tests: http/tests/security/cross-origin-local-storage-allowed.html
787                http/tests/security/cross-origin-local-storage.html
788                http/tests/security/cross-origin-session-storage-allowed.html
789                http/tests/security/cross-origin-session-storage.html
790                http/tests/security/same-origin-document-domain-storage-allowed.html
791
792         * dom/Document.cpp:
793         (WebCore::Document::initSecurityContext): Initialize securityOrigin with knowledge of if we should block third-party storage.
794         * page/DOMWindow.cpp: Check if the origin trying to access storage is third-party relative to the top document.
795         (WebCore::DOMWindow::sessionStorage):
796         (WebCore::DOMWindow::localStorage):
797         * page/SecurityOrigin.cpp: Add a call in Security origin to see if another origin counts as a third-party.
798         (WebCore::SecurityOrigin::SecurityOrigin):
799         (WebCore::SecurityOrigin::canAccessLocalStorage):
800         (WebCore):
801         (WebCore::SecurityOrigin::isThirdParty):
802         * page/SecurityOrigin.h:
803         (WebCore::SecurityOrigin::blockThirdPartyStorage):
804         (SecurityOrigin):
805         * testing/InternalSettings.cpp: Add an internals.settings hook for setting third-party storage blocking enabled.
806         (WebCore::InternalSettings::setThirdPartyStorageBlockingEnabled):
807         (WebCore):
808         * testing/InternalSettings.h:
809         (InternalSettings):
810         * testing/InternalSettings.idl:
811
812 2012-08-10  Arko Saha  <arko@motorola.com>
813
814         REGRESSION(r125159): ASSERTION FAILED: m_listsInvalidatedAtDocument.contains(list) in Document::unregisterNodeListCache.
815         https://bugs.webkit.org/show_bug.cgi?id=93729
816
817         Reviewed by Ryosuke Niwa.
818
819         In Document::registerNodeListCache() it was not adding PropertyNodeList
820         cache to m_listsInvalidatedAtDocument the as node list currently not rooted
821         at the document. Where in Document::unregisterNodeListCache() it was trying
822         to remove PropertyNodeList cache from m_listsInvalidatedAtDocument. Hence it
823         caused the assertion failure.
824
825         We need to check if m_rootType is NodeListIsRootedAtDocumentIfOwnerHasItemrefAttr,
826         not that it's currently rooted at the document.
827
828         Test: fast/dom/MicroData/propertynodelist-crash.html
829
830         * dom/DynamicNodeList.h:
831         (WebCore::DynamicNodeListCacheBase::isRootedAtDocument):
832
833 2012-08-10  Florin Malita  <fmalita@chromium.org>
834
835         Improved RuleData packing on some 32-bit platforms
836         https://bugs.webkit.org/show_bug.cgi?id=93737
837
838         Reviewed by Andreas Kling.
839
840         Certain 32-bit plarforms use an 8-byte alignment for uint64_t. We can save 4 bytes per
841         object on these platforms by using two naturally-aligning unsigned ints instead.
842
843         * css/StyleResolver.cpp:
844         (RuleData):
845         (SameSizeAsRuleData):
846
847 2012-08-10  Max Vujovic  <mvujovic@adobe.com>
848
849         [CSS Shaders] Add blend mode and composite op to compiled program cache key
850         https://bugs.webkit.org/show_bug.cgi?id=93623
851
852         Reviewed by Dirk Schulze.
853
854         Right now, only the vertex shader string and the fragment shader string are hashed
855         to create a key for the compiled program. However, in a future patch, WebKit will
856         rewrite the fragment shader based on the blend mode and composite op specified by
857         the author. This means that the unique key for a compiled program is (original
858         vertex shader string, original fragment shader string, blend mode, composite
859         operator). This patch adds blend mode and composite operator in the hash for the
860         key.
861
862         No new tests. The state of the compiled program cache is not exposed to a web
863         page. Existing tests should ensure this change doesn't break current
864         functionality. Additional tests will be added in a future patch that implements
865         shader rewriting based on blend mode and composite op.
866
867         * platform/graphics/filters/CustomFilterProgram.cpp:
868         (WebCore::CustomFilterProgram::programInfo):
869         * platform/graphics/filters/CustomFilterProgram.h:
870         (WebCore):
871         * platform/graphics/filters/CustomFilterProgramInfo.cpp:
872         (WebCore::CustomFilterProgramInfo::CustomFilterProgramInfo):
873         (WebCore::CustomFilterProgramInfo::hash):
874         (WebCore::CustomFilterProgramInfo::operator==):
875         * platform/graphics/filters/CustomFilterProgramInfo.h:
876         (WebCore::CustomFilterProgramMixSettings::CustomFilterProgramMixSettings):
877         (CustomFilterProgramMixSettings):
878         (WebCore::CustomFilterProgramMixSettings::operator==):
879         (WebCore):
880         (CustomFilterProgramInfo):
881
882 2012-08-10  Alice Cheng  <alice_cheng@apple.com>
883
884         Part 1 of: Extend -webkit-user-select with a new value "all"
885         <rdar://problem/10161404>
886         https://bugs.webkit.org/show_bug.cgi?id=93562
887
888         Reviewed by Dan Bernstein.
889
890         Parse the new "all" value for -webkit-user-select
891
892         Test: editing/selection/user-select-all-parsing.html
893
894         * css/CSSParser.cpp:
895         (WebCore::isValidKeywordPropertyAndValue): Add new value all
896         * css/CSSPrimitiveValueMappings.h:
897         (WebCore::CSSPrimitiveValue::CSSPrimitiveValue): Add new value all
898         (WebCore::CSSPrimitiveValue::operator EUserSelect): Add one more bit to store the new property value
899         * rendering/style/RenderStyleConstants.h: Add new value all
900         * rendering/style/StyleRareInheritedData.h: Add new value all
901         (StyleRareInheritedData):
902
903 2012-08-10  Iain Merrick  <husky@google.com>
904
905         [chromium] Upstream Android changes to WebFrameImpl::selectRange
906         https://bugs.webkit.org/show_bug.cgi?id=92513
907
908         Reviewed by Ryosuke Niwa.
909
910         Make this function public we so can call it from the WebKit layer.
911
912         * page/EventHandler.h:
913         (EventHandler):
914
915 2012-08-10  Mario Sanchez Prada  <msanchez@igalia.com>
916
917         [GTK] Broken implementation of AtkText and AtkEditableText for password fields
918         https://bugs.webkit.org/show_bug.cgi?id=93621
919
920         Rubber-stamped by Ryosuke Niwa.
921
922         Fix Apple Win build, by avoiding to generate unreachable sections
923         of code in AccessibilityRenderObject::passwordFieldValue().
924
925         * accessibility/AccessibilityRenderObject.cpp:
926         (WebCore::AccessibilityRenderObject::passwordFieldValue):
927
928 2012-08-10  Dana Jansens  <danakj@chromium.org>
929
930         [chromium] Remove targetSurface pointer from CCRenderPass
931         https://bugs.webkit.org/show_bug.cgi?id=93734
932
933         Reviewed by Adrienne Walker.
934
935         This removes the CCRenderSurface pointer from the CCRenderPass
936         structure, allowing it to be serialized and used across processes
937         freely.
938
939         No new tests; no intended change in behaviour.
940
941         * platform/graphics/chromium/cc/CCLayerTreeHostImpl.cpp:
942         (WebCore::CCLayerTreeHostImpl::drawLayers):
943         * platform/graphics/chromium/cc/CCRenderPass.cpp:
944         (WebCore::CCRenderPass::CCRenderPass):
945         * platform/graphics/chromium/cc/CCRenderPass.h:
946         (CCRenderPass):
947
948 2012-08-10  Mario Sanchez Prada  <msanchez@igalia.com>
949
950         [GTK] Broken implementation of AtkText and AtkEditableText for password fields
951         https://bugs.webkit.org/show_bug.cgi?id=93621
952
953         Reviewed by Chris Fleizach.
954
955         Fix broken implementation of AtkText and AtkEditableText
956         interfaces in the GTK port for password input fields.
957
958         * accessibility/AccessibilityRenderObject.cpp:
959         (WebCore::AccessibilityRenderObject::stringValue): Call the new
960         function passwordFieldValue() for password input fields.
961         (WebCore::AccessibilityRenderObject::text): Ditto.
962         (WebCore::AccessibilityRenderObject::textLength): Return the
963         actual length of the password in the field for GTK, return -1
964         otherwise (not to break current behavior in other platforms).
965         (WebCore::AccessibilityRenderObject::doAXStringForRange): Don't
966         early return for password fields in GTK (will rely on text()).
967         (WebCore::AccessibilityRenderObject::passwordFieldValue): New, it
968         returns the text being actually rendered for a password input
969         field (normally a masked string) in GTK. It returns String() in
970         the rest of platforms, to ensure we don't break anything there.
971         (WebCore):
972         * accessibility/AccessibilityRenderObject.h:
973         (AccessibilityRenderObject):
974         * accessibility/AccessibilityObject.h:
975         (WebCore::AccessibilityObject::passwordFieldValue): Default
976         implementation of this new method, returning an empty string.
977         (AccessibilityObject):
978
979         Ensure the 'text-insert' and 'text-remove' signals for the AtkText
980         interface are properly emitted for password input fields.
981
982         * accessibility/gtk/AXObjectCacheAtk.cpp:
983         (WebCore::AXObjectCache::nodeTextChangePlatformNotification): Make
984         sure we never emit the password value for an input field in plain
985         text when inserting or removing text. Emit the masked text instead.
986
987 2012-08-09  Jer Noble  <jer.noble@apple.com>
988
989         Use the new AVPlayerItemVideoOutput API in MediaPlayerPrivateAVFoundation.
990         https://bugs.webkit.org/show_bug.cgi?id=93591
991
992         Reviewed by Eric Carlson.
993
994         Support the new AVPlayerItemVideoOutput API from Mountain Lion, which has much increased performance over
995         AVAssetImageGenerator.
996
997         No new tests; Performance change only, no net change in functionality.
998
999         AVPlayerItemVideoOutput requires an attached CALayer for rendering to occur.  Make the rendering modes non-exclusive, 
1000         so layer-rendering and context-rendering can exist simultaneously:
1001         * platform/graphics/avfoundation/MediaPlayerPrivateAVFoundation.h: Make the MediaRenderingMode enum
1002             a bitfield.
1003         * platform/graphics/avfoundation/MediaPlayerPrivateAVFoundation.cpp:
1004         (WebCore::MediaPlayerPrivateAVFoundation::currentRenderingModes): Renamed from currentRenderingMode().
1005         (WebCore::MediaPlayerPrivateAVFoundation::setUpVideoRendering): Check for the presence of the MediaRenderingToLayer bit.
1006         (WebCore::MediaPlayerPrivateAVFoundation::prepareForRendering): Ditto.
1007         (WebCore::MediaPlayerPrivateAVFoundation::updateStates): Ditto.
1008
1009         Pull out existing the AVAssetImageGenerator into its own functions:
1010         * platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
1011         (WebCore::MediaPlayerPrivateAVFoundationObjC::createImageGenerator):
1012         (WebCore::MediaPlayerPrivateAVFoundationObjC::destroyImageGenerator):
1013         (WebCore::MediaPlayerPrivateAVFoundationObjC::paintWithImageGenerator):
1014
1015         Add new AVPlayerItemVideoOutput equivalent functions:
1016         * platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
1017         (WebCore::MediaPlayerPrivateAVFoundationObjC::createVideoOutput):
1018         (WebCore::MediaPlayerPrivateAVFoundationObjC::destroyVideoOutput):
1019         (WebCore::MediaPlayerPrivateAVFoundationObjC::createPixelBuffer):
1020         (WebCore::MediaPlayerPrivateAVFoundationObjC::paintWithVideoOutput):
1021
1022         Switch between the AVAssetImageGenerator and AVPlayerItemVideoOutput functions from
1023         within the original functions:
1024         * platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
1025         (WebCore::MediaPlayerPrivateAVFoundationObjC::createContextVideoRenderer):
1026         (WebCore::MediaPlayerPrivateAVFoundationObjC::destroyContextVideoRenderer):
1027         (WebCore::MediaPlayerPrivateAVFoundationObjC::hasContextRenderer):
1028         (WebCore::MediaPlayerPrivateAVFoundationObjC::paint):
1029
1030         * platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
1031         (WebCore::MediaPlayerPrivateAVFoundationObjC::createImageForTimeInRect): Call the 
1032             AVAssetImageGenerator creation function directly.
1033
1034 2012-08-10  Abhishek Arya  <inferno@chromium.org>
1035
1036         Crash on accessing a removed layout root in FrameView::scheduleRelayout.
1037         https://bugs.webkit.org/show_bug.cgi?id=91368
1038
1039         Reviewed by Levi Weintraub.
1040
1041         We were calling setNeedsLayoutAndPrefWidthsRecalc() in RenderBlock::collapseAnonymousBoxChild
1042         even when documentBeingDestroyed() was true. This ends up accessing stale layout root and bypasses
1043         mitigation added in r109406. There is no need to waste time merging up anonymous blocks in
1044         RenderBlock::removeChild when documentBeingDestroyed() is true.
1045
1046         No new tests. The test is time sensitive, requires a bunch of reloads, and only reproduces on chromium linux.
1047
1048         * rendering/RenderBlock.cpp:
1049         (WebCore::RenderBlock::collapseAnonymousBoxChild):
1050         (WebCore::RenderBlock::removeChild):
1051
1052 2012-08-10  Dan Bernstein  <mitz@apple.com>
1053
1054         <rdar://problem/11855229> When in paginated mode, the layout timer fires continually
1055         https://bugs.webkit.org/show_bug.cgi?id=91038
1056
1057         Reviewed by Simon Fraser.
1058
1059         * page/Page.cpp:
1060         (WebCore::Page::pageCount): Changed to only trigger layout if needed.
1061
1062 2012-08-10  Gyuyoung Kim  <gyuyoung.kim@samsung.com>
1063
1064         [CMAKE] Fix wrong idl include path in CMakeList.txt
1065         https://bugs.webkit.org/show_bug.cgi?id=93715
1066
1067         Reviewed by Rob Buis.
1068
1069         No new tests. No change in behavior.
1070
1071         * CMakeLists.txt: Fix notifications path.
1072
1073 2012-08-10  Allan Sandfeld Jensen  <allan.jensen@nokia.com>
1074
1075         [Transforms] Hit test issue with large scale() transform
1076         https://bugs.webkit.org/show_bug.cgi?id=23170
1077
1078         Reviewed by Simon Fraser.
1079
1080         By using normal rounding to determine the top-left corner of the
1081         hit-tested rectangle, we end up offsetting the hit test by up to
1082         half a pixel, once scaled to x60, this creates a 30px error.
1083
1084         Normal rounding is replaced with floored rounding which means the
1085         hit-tested pixel will now always be the pixel containing the
1086         point.
1087
1088         Test: fast/transforms/hit-test-large-scale.html
1089
1090         * rendering/HitTestResult.cpp:
1091         (WebCore::HitTestPoint::HitTestPoint):
1092         (WebCore::HitTestPoint::intersectsRect):
1093         (WebCore::HitTestPoint::rectForPoint):
1094
1095 2012-08-10  Florin Malita  <fmalita@chromium.org>
1096
1097         Unreviewed gardening: build fix for 32bit platforms after 125294.
1098
1099         * css/StyleResolver.cpp:
1100         (RuleData):
1101
1102 2012-08-10  Takashi Sakamoto  <tasak@google.com>
1103
1104         box-shadow creates incorrect shadow when border-radius is too large
1105         https://bugs.webkit.org/show_bug.cgi?id=72103
1106
1107         Reviewed by Simon Fraser.
1108
1109         Added a code for adjusting a rounded rect before paintBoxShadow in
1110         a similar way to getRoundedRectFor.
1111
1112         Test: fast/borders/border-shadow-large-radius.html
1113
1114         * platform/graphics/RoundedRect.cpp:
1115         (WebCore::RoundedRect::adjustRadii):
1116         Added a new method to set radii's scale to fit into rect.
1117         * platform/graphics/RoundedRect.h:
1118         (RoundedRect):
1119         * rendering/RenderBoxModelObject.cpp:
1120         (WebCore::RenderBoxModelObject::paintBoxShadow):
1121         A rounded rect for box-shadow is not checked whether the raii matches
1122         the rect or not. Added the code to adjust radii's scale if the rounded
1123         rect is not renderable, the case: RoundedRect::isRenderable is false.
1124
1125 2012-08-10  Ojan Vafai  <ojan@chromium.org>
1126
1127         Wrap INLINE_FLEX in a #if ENABLE(CSS3_FLEXBOX).
1128         Unreviewed build fix.
1129
1130         * rendering/style/RenderStyle.h:
1131
1132 2012-08-10  Dan Bernstein  <mitz@apple.com>
1133
1134         Renamed the “Modules/webaudio” group in the Xcode project to “webaudio” and moved it into
1135         the Modules group.
1136
1137         Rubber-stamped by Simon Fraser.
1138
1139         * WebCore.xcodeproj/project.pbxproj:
1140
1141 2012-08-10  Erik Arvidsson  <arv@chromium.org>
1142
1143         [V8] Enable es5_readonly
1144         https://bugs.webkit.org/show_bug.cgi?id=91031
1145
1146         Reviewed by Adam Barth.
1147
1148         This turns on the es5_readonly flag for V8. This makes V8 match the ES5 spec regarding
1149         non writable properties on the prototype chain. JSC already behaves the right so this
1150         just makes V8 behave the same.
1151
1152         Updated test expectations.
1153
1154         * bindings/v8/V8DOMWindowShell.cpp:
1155         (WebCore::V8DOMWindowShell::initContextIfNeeded):
1156         * bindings/v8/WorkerContextExecutionProxy.cpp:
1157         (WebCore::WorkerContextExecutionProxy::initIsolate):
1158
1159 2012-08-10  Kentaro Hara  <haraken@chromium.org>
1160
1161         [V8] Introduce V8DOMConfiguration class and make batchConfigureXXX() methods static
1162         https://bugs.webkit.org/show_bug.cgi?id=93615
1163
1164         Reviewed by Adam Barth.
1165
1166         Per the discussion in bug 93239,
1167
1168         (1) Rename V8ConfigureDOMAttributesAndMethods to V8DOMConfiguration.
1169         (2) Introduce V8DOMConfiguration class and make batchConfigureXXX() methods static.
1170
1171         No tests. No change in behavior.
1172
1173         * UseV8.cmake:
1174         * WebCore.gypi:
1175         * bindings/scripts/CodeGeneratorV8.pm:
1176         (GenerateImplementation):
1177         * bindings/scripts/test/V8/V8Float64Array.cpp:
1178         (WebCore):
1179         (WebCore::ConfigureV8Float64ArrayTemplate):
1180         * bindings/scripts/test/V8/V8TestActiveDOMObject.cpp:
1181         (WebCore):
1182         (WebCore::ConfigureV8TestActiveDOMObjectTemplate):
1183         * bindings/scripts/test/V8/V8TestCustomNamedGetter.cpp:
1184         (WebCore):
1185         (WebCore::ConfigureV8TestCustomNamedGetterTemplate):
1186         * bindings/scripts/test/V8/V8TestEventConstructor.cpp:
1187         (WebCore):
1188         (WebCore::ConfigureV8TestEventConstructorTemplate):
1189         * bindings/scripts/test/V8/V8TestEventTarget.cpp:
1190         (WebCore):
1191         (WebCore::ConfigureV8TestEventTargetTemplate):
1192         * bindings/scripts/test/V8/V8TestException.cpp:
1193         (WebCore):
1194         (WebCore::ConfigureV8TestExceptionTemplate):
1195         * bindings/scripts/test/V8/V8TestInterface.cpp:
1196         (WebCore):
1197         (WebCore::ConfigureV8TestInterfaceTemplate):
1198         * bindings/scripts/test/V8/V8TestMediaQueryListListener.cpp:
1199         (WebCore):
1200         (WebCore::ConfigureV8TestMediaQueryListListenerTemplate):
1201         * bindings/scripts/test/V8/V8TestNamedConstructor.cpp:
1202         (WebCore::ConfigureV8TestNamedConstructorTemplate):
1203         * bindings/scripts/test/V8/V8TestNode.cpp:
1204         (WebCore::ConfigureV8TestNodeTemplate):
1205         * bindings/scripts/test/V8/V8TestObj.cpp:
1206         (WebCore):
1207         (WebCore::ConfigureV8TestObjTemplate):
1208         (WebCore::V8TestObj::installPerContextProperties):
1209         * bindings/scripts/test/V8/V8TestSerializedScriptValueInterface.cpp:
1210         (WebCore):
1211         (WebCore::ConfigureV8TestSerializedScriptValueInterfaceTemplate):
1212         * bindings/v8/V8Binding.h:
1213         * bindings/v8/V8ConfigureDOMAttributesAndMethods.h: Removed.
1214         * bindings/v8/V8DOMConfiguration.cpp: Renamed from Source/WebCore/bindings/v8/V8ConfigureDOMAttributesAndMethods.cpp.
1215         (WebCore):
1216         (WebCore::V8DOMConfiguration::batchConfigureAttributes):
1217         (WebCore::V8DOMConfiguration::batchConfigureConstants):
1218         (WebCore::V8DOMConfiguration::batchConfigureCallbacks):
1219         (WebCore::V8DOMConfiguration::configureTemplate):
1220         * bindings/v8/V8DOMConfiguration.h: Added.
1221         (WebCore):
1222         (V8DOMConfiguration):
1223         (BatchedAttribute):
1224         (WebCore::V8DOMConfiguration::configureAttribute):
1225         (BatchedConstant):
1226         (BatchedCallback):
1227
1228 2012-08-10  Andreas Kling  <kling@webkit.org>
1229
1230         CSS: Shrink RuleData by storing selector as index rather than pointer.
1231         <http://webkit.org/b/93712>
1232
1233         Reviewed by Antti Koivisto.
1234
1235         Pack the selector's index in the rule in the RuleData bitfield, effectively
1236         shrinking each RuleData by 8 bytes.
1237
1238         * css/CSSSelectorList.h:
1239         (WebCore::CSSSelectorList::selectorAt):
1240         (WebCore::CSSSelectorList::indexOfNextSelectorAfter):
1241
1242             Add helpers to CSSSelectorList to iterate by index.
1243
1244         * css/StyleResolver.cpp:
1245         (RuleData):
1246         (WebCore::RuleData::selector):
1247         (WebCore::RuleData::selectorIndex):
1248         (SameSizeAsRuleData):
1249         (RuleSet):
1250         (WebCore::makeRuleSet):
1251         (WebCore::StyleResolver::collectMatchingRulesForList):
1252         * css/StyleResolver.h:
1253         (WebCore::StyleResolver::RuleFeature::RuleFeature):
1254         (RuleFeature):
1255
1256             Store selector indices instead of CSSSelector* pointers.
1257
1258 2012-08-10  Vineet Chaudhary  <rgf748@motorola.com>
1259
1260         Remove custom bindings from WaveShaperNode.
1261         https://bugs.webkit.org/show_bug.cgi?id=93613
1262
1263         Reviewed by Kentaro Hara.
1264
1265         We should remove custom bindings as CodeGenerator uses UNUSED_PARAM macro.
1266
1267         TestObj.idl
1268         No behavioural changes.
1269         All tests under webaudio/* should behave same.
1270
1271         * GNUmakefile.list.am: Removed JSWaveShaperNodeCustom.cpp from builds.
1272         * Modules/webaudio/WaveShaperNode.idl: Removed [JSCustomSetter].
1273         * UseJSC.cmake: Removed JSWaveShaperNodeCustom.cpp from builds.
1274         * WebCore.xcodeproj/project.pbxproj: Ditto.
1275         * bindings/js/JSWaveShaperNodeCustom.cpp: Removed.
1276         * bindings/scripts/CodeGeneratorCPP.pm:
1277         (SkipAttribute): Skip TypedArray attribute.
1278         * bindings/scripts/CodeGeneratorGObject.pm:
1279         (SkipAttribute): Skip TypedArray attribute.
1280         * bindings/scripts/CodeGeneratorObjC.pm:
1281         (SkipAttribute): Skip TypedArray attribute.
1282         * bindings/scripts/test/JS/JSTestObj.cpp: Bindings tests.
1283         (WebCore::jsTestObjTypedArrayAttr):
1284         (WebCore::setJSTestObjReflectedCustomURLAttr):
1285         (WebCore::setJSTestObjTypedArrayAttr):
1286         * bindings/scripts/test/JS/JSTestObj.h:
1287         * bindings/scripts/test/TestObj.idl: Test.
1288         * bindings/scripts/test/V8/V8TestObj.cpp: Bindings tests.
1289         (WebCore::TestObjV8Internal::typedArrayAttrAttrGetter):
1290         (TestObjV8Internal):
1291         (WebCore::TestObjV8Internal::typedArrayAttrAttrSetter):
1292
1293 2012-08-10  Huang Dongsung  <luxtella@company100.net>
1294
1295         REGRESSION (r123848): Heap-use-after-free in WebCore::CachedResource::didAddClient.
1296         https://bugs.webkit.org/show_bug.cgi?id=93632
1297         -and corresponding-
1298         <http://crbug.com/140656>
1299
1300         Reviewed by Antti Koivisto.
1301
1302         CachedCSSStyleSheet::didAddClient() calls CachedStyleSheetClient::setCSSStyleSheet
1303         and HTMLLnkElement can be CachedStyleSheetClient.
1304         HTMLLinkElement::setCSSStyleSheet may cause scripts to be executed, which could
1305         destroy the HTMLLinkElement instance. After calliing
1306         CachedStyleSheetClient::setCSSStyleSheet, using the CachedStyleSheetClient
1307         instance can cause Heap-use-after-free.
1308
1309         r115625 prevents HTMLLinkElement from being destroyed during
1310         HTMLLinkElement::setCSSStyleSheet, but r115625 doesn't prevent HTMLLinkElement
1311         from being destroyed after HTMLLinkElement::setCSSStyleSheet.
1312
1313         So this patch calls CachedResource::didAddClient() before calling
1314         setCSSStyleSheet() to make sure its client is not destroyed.
1315
1316         No new tests. it's covered by fast/css/cached-sheet-restore-crash.html.
1317
1318         * loader/cache/CachedCSSStyleSheet.cpp:
1319         (WebCore::CachedCSSStyleSheet::didAddClient):
1320
1321 2012-08-10  Kevin Ellis  <kevers@chromium.org>
1322
1323         Horizontal scrollbar appears in the month-year selector of input[type=date]
1324         https://bugs.webkit.org/show_bug.cgi?id=93517
1325
1326         Reviewed by Kent Tamura.
1327
1328         Update size of the month-year selector popup to account for the
1329         width of the vertical scrollbar being platform dependent.
1330
1331         * Resources/calendarPicker.css:
1332         (.month-selector-popup): Suppress horizontal scrolling.
1333         * Resources/calendarPicker.js:
1334         (YearMonthController.prototype.attachTo): Add a sizer element to facilitate determining the scrollbar width.
1335         (YearMonthController.prototype._showPopup): Use computed scrollbar width for popup resizing.
1336
1337 2012-08-10  Alexander Pavlov  <apavlov@chromium.org>
1338
1339         Web Inspector: Unreviewed, fix frontend compilability after r125268.
1340
1341         * inspector/front-end/CSSStyleModel.js:
1342         (WebInspector.NamedFlow):
1343         (WebInspector.NamedFlow.parsePayloadArray):
1344
1345 2012-08-10  Martin Leutelt  <martin.leutelt@basyskom.com>
1346
1347         [Qt] Dotted borders not drawn with rounded dots
1348         https://bugs.webkit.org/show_bug.cgi?id=92383
1349
1350         Reviewed by Noam Rosenthal.
1351
1352         The dots in borders with dotted style were previously drawn with
1353         rectangular dots. The CSS spec specifies that the dots should be
1354         rounded dots. This patch fixes this behavior for the Qt port.
1355
1356         No new tests, existing ones have been updated with new expected
1357         results.
1358
1359         * platform/graphics/qt/GraphicsContextQt.cpp:
1360         (WebCore::adjustPointsForDottedLine):
1361         (WebCore):
1362         (WebCore::drawLineEndpointsForStyle):
1363         (WebCore::GraphicsContext::drawLine):
1364
1365 2012-08-10  Pavel Feldman  <pfeldman@chromium.org>
1366
1367         Web Inspector: render arrays as dir in case they were logged into console prior to the front-end opening.
1368         https://bugs.webkit.org/show_bug.cgi?id=93713
1369
1370         Reviewed by Vsevolod Vlasov.
1371
1372         Dumping potentially outdated arrays using the "dir" representation.
1373
1374         * inspector/front-end/ConsoleMessage.js:
1375         (WebInspector.ConsoleMessageImpl):
1376         (WebInspector.ConsoleMessageImpl.prototype._formatParameterAsArray):
1377         (WebInspector.ConsoleMessageImpl.prototype.clone):
1378         * inspector/front-end/ConsoleModel.js:
1379         (WebInspector.ConsoleModel.prototype.enableAgent.callback):
1380         (WebInspector.ConsoleModel.prototype.enablingConsole):
1381         (WebInspector.ConsoleMessage.create):
1382         (WebInspector.ConsoleDispatcher.prototype.messageAdded):
1383         * inspector/front-end/ConsoleView.js:
1384         (WebInspector.ConsoleMessage.create):
1385
1386 2012-08-10  Dana Jansens  <danakj@chromium.org>
1387
1388         [chromium] Fix the colors in the debugging HUD
1389         https://bugs.webkit.org/show_bug.cgi?id=93656
1390
1391         Reviewed by Adrienne Walker.
1392
1393         The R and B channels became swapped in our compositor debug HUD when
1394         wkb.ug/92182 happened. This corrects the problem by swizzling the
1395         color channels when we draw to the SkCanvas, so that it matches the
1396         expectations of the shader.
1397
1398         Chromium bug: crbug.com/139908
1399
1400         * platform/graphics/chromium/cc/CCFontAtlas.cpp:
1401         (WebCore::CCFontAtlas::drawText):
1402         (WebCore::CCFontAtlas::drawOneLineOfTextInternal):
1403         * platform/graphics/chromium/cc/CCFontAtlas.h:
1404         (CCFontAtlas):
1405         * platform/graphics/chromium/cc/CCHeadsUpDisplayLayerImpl.cpp:
1406         (WebCore::createPaint):
1407         (WebCore):
1408         (WebCore::CCHeadsUpDisplayLayerImpl::drawHudContents):
1409         (WebCore::CCHeadsUpDisplayLayerImpl::drawFPSCounter):
1410         (WebCore::CCHeadsUpDisplayLayerImpl::drawFPSCounterText):
1411         (WebCore::CCHeadsUpDisplayLayerImpl::drawDebugRects):
1412
1413 2012-08-10  Dana Jansens  <danakj@chromium.org>
1414
1415         [chromium] Remove scissor from the namings in CCOcclusionTracker
1416         https://bugs.webkit.org/show_bug.cgi?id=93630
1417
1418         Reviewed by Adrienne Walker.
1419
1420         As a followup to wkb.ug/91800 which stops using partial-swap scissor
1421         in the occlusion tracker, this does a large rename to the occlusion
1422         tracker and affected tests to remove "scissor" from the names of its
1423         variables and methods, instead reflecting their new behaviour.
1424
1425         * platform/graphics/chromium/cc/CCOcclusionTracker.cpp:
1426         (WebCore::::CCOcclusionTrackerBase):
1427         (WebCore::addOcclusionBehindLayer):
1428         (WebCore::::markOccludedBehindLayer):
1429         (WebCore::testContentRectOccluded):
1430         (WebCore::::occluded):
1431         (WebCore::computeUnoccludedContentRect):
1432         (WebCore::::unoccludedContentRect):
1433         (WebCore::::unoccludedContributingSurfaceContentRect):
1434         (WebCore::::layerClipRectInTarget):
1435         (WebCore):
1436         * platform/graphics/chromium/cc/CCOcclusionTracker.h:
1437         (CCOcclusionTrackerBase):
1438         (WebCore::CCOcclusionTrackerBase::computeVisibleRegionInScreen):
1439
1440 2012-08-10  Jon Lee  <jonlee@apple.com>
1441
1442         Change Notification.permissionLevel() to Notification.permission
1443         https://bugs.webkit.org/show_bug.cgi?id=88919
1444         <rdar://problem/11650319>
1445
1446         Reviewed by Kentaro Hara.
1447
1448         Retrieving the permission level has changed to Notification.permission, per this discussion:
1449         http://lists.w3.org/Archives/Public/public-web-notification/2012Jun/0000.html
1450
1451         Test: fast/notifications/notifications-permission.html
1452
1453         * Modules/notifications/Notification.cpp: Rename to match attribute name.
1454         (WebCore::Notification::permission):
1455         * Modules/notifications/Notification.h: Rename to match attribute name.
1456         (Notification):
1457         * Modules/notifications/Notification.idl: Change to static readonly attribute.
1458
1459 2012-08-10  Kentaro Hara  <haraken@chromium.org>
1460
1461         [V8] Remove collectIsolatedContexts() from V8Proxy
1462         https://bugs.webkit.org/show_bug.cgi?id=93682
1463
1464         Reviewed by Adam Barth.
1465
1466         We want to remove V8Proxy. This patch removes V8Proxy::collectIsolatedContexts().
1467
1468         No tests. No change in behavior.
1469
1470         * bindings/v8/ScriptController.cpp:
1471         (WebCore::ScriptController::collectIsolatedContexts):
1472         * bindings/v8/V8Proxy.cpp:
1473         (WebCore::V8Proxy::collectIsolatedContexts):
1474
1475 2012-08-10  Simon Hausmann  <simon.hausmann@nokia.com>
1476
1477         [Qt] Unreviewed trivial build fix: Avoid passing a non-existance WebCore/websockets directory
1478         to the generators, which produces unnecessary warnings. The module lives now in WebCore/Modules/websockets.
1479
1480         * DerivedSources.pri:
1481
1482 2012-08-10  Andrey Kosyakov  <caseq@chromium.org>
1483
1484         Web Inspector: add frame ids to TimeStamp, Time and TimeEnd records in Timeline
1485         https://bugs.webkit.org/show_bug.cgi?id=93699
1486
1487         Reviewed by Pavel Feldman.
1488
1489         - plumb Frame from Console to TimelineAgent and use it to add frameId to 3 timeline records;
1490
1491         * inspector/InspectorConsoleInstrumentation.h:
1492         (WebCore::InspectorInstrumentation::startConsoleTiming):
1493         (WebCore::InspectorInstrumentation::stopConsoleTiming):
1494         (WebCore::InspectorInstrumentation::consoleTimeStamp):
1495         * inspector/InspectorInstrumentation.cpp:
1496         (WebCore):
1497         (WebCore::InspectorInstrumentation::startConsoleTimingImpl):
1498         (WebCore::InspectorInstrumentation::stopConsoleTimingImpl):
1499         (WebCore::InspectorInstrumentation::consoleTimeStampImpl):
1500         * inspector/InspectorInstrumentation.h:
1501         (InspectorInstrumentation):
1502         * inspector/InspectorTimelineAgent.cpp:
1503         (WebCore::InspectorTimelineAgent::didTimeStamp):
1504         (WebCore::InspectorTimelineAgent::time):
1505         (WebCore::InspectorTimelineAgent::timeEnd):
1506         * inspector/InspectorTimelineAgent.h:
1507         (InspectorTimelineAgent):
1508         * page/Console.cpp:
1509         (WebCore::Console::markTimeline):
1510         (WebCore::Console::time):
1511         (WebCore::Console::timeEnd):
1512         (WebCore::Console::timeStamp):
1513
1514 2012-08-10  Simon Hausmann  <simon.hausmann@nokia.com>
1515
1516         [Qt] Fix failing assertions when using JSC C API in QObject bridge
1517         https://bugs.webkit.org/show_bug.cgi?id=93720
1518
1519         Reviewed by Kenneth Rohde Christiansen.
1520
1521         Avoid calling JSValueProtect and JSValueIsEqual with null JSValueRefs, as in debug
1522         builds they trigger failing assertions about the arguments being non-null.
1523
1524         In these signal & slot connections the receiver can be null, when the signal is connected
1525         just to a function, for example using obj.mySignal.connect(function() { .... }).
1526
1527         * bridge/qt/qt_runtime.cpp:
1528         (JSC::Bindings::QtConnectionObject::QtConnectionObject):
1529         (JSC::Bindings::QtConnectionObject::~QtConnectionObject):
1530         (JSC::Bindings::QtConnectionObject::match):
1531
1532 2012-08-10  Simon Hausmann  <simon.hausmann@nokia.com>
1533
1534         [Qt] Remove QRegExp <> JS RegExp conversion
1535         https://bugs.webkit.org/show_bug.cgi?id=93716
1536
1537         Reviewed by Kenneth Rohde Christiansen.
1538
1539         Removed automatic conversion between QRegExp and JS regular expressions. The semantics
1540         between the expressions are totally different, which can cause data loss and unexpected
1541         behaviour. QJSEngine/Value doesn't have this conversion anymore neither.
1542
1543         * bridge/qt/qt_runtime.cpp:
1544         (JSC::Bindings::operator<<):
1545         (JSC::Bindings::valueRealType):
1546         (JSC::Bindings::convertValueToQVariant):
1547         (JSC::Bindings::convertQVariantToValue):
1548
1549 2012-08-10  Andrey Kosyakov  <caseq@chromium.org>
1550
1551         Web Inspector: console.timeStamp() marked are not shown in Timeline overview
1552         https://bugs.webkit.org/show_bug.cgi?id=93697
1553
1554         Reviewed by Pavel Feldman.
1555
1556         - ignore frameId on TimeStamp records, consider it's always an event divider.
1557
1558         * inspector/front-end/TimelinePresentationModel.js:
1559         (WebInspector.TimelinePresentationModel.isEventDivider):
1560
1561 2012-08-10  Mihnea Ovidenie  <mihnea@adobe.com>
1562
1563         [CSS Regions] region-overflow: break still renders the content that does not fit in the last region.
1564         https://bugs.webkit.org/show_bug.cgi?id=92996
1565
1566         Reviewed by Julien Chaffraix.
1567
1568         Flow content that follows the last break in the last region, if any, should not be rendered
1569         for the regions with region-overflow: break.
1570         http://www.w3.org/TR/css3-regions/#the-region-overflow-property
1571
1572         Modified the expected result for existing test fast/regions/region-overflow-break.html
1573         to reflect the correct behavior.
1574
1575         * rendering/RenderRegion.cpp:
1576         (WebCore::RenderRegion::regionOversetRect):
1577
1578 2012-08-10  Andrei Poenaru  <poenaru@adobe.com>
1579
1580         Web Inspector: Protocol Extension: Refactor protocol extension for CSS Regions
1581         https://bugs.webkit.org/show_bug.cgi?id=92089
1582
1583         Reviewed by Pavel Feldman.
1584
1585         Replaced "WebKitNamedFlowCollection::namedFlowsNames" with "WebKitNamedFlowCollection::namedFlows" to return a Vector of "WebKitNamedFlow"s,
1586         instead of a Vector of Strings.
1587
1588         Added the "Region" type to Inspector.json.
1589         Changed the "NamedFlow" type and the "getNamedFlowCollection" function in Inspector.json.
1590
1591         Modified existing test: inspector/styles/protocol-css-regions-commands.html
1592
1593         * dom/WebKitNamedFlowCollection.cpp:
1594         (WebCore::WebKitNamedFlowCollection::namedFlows):
1595         * dom/WebKitNamedFlowCollection.h:
1596         (WebKitNamedFlowCollection):
1597         * inspector/Inspector.json:
1598         * inspector/InspectorCSSAgent.cpp:
1599         (WebCore::InspectorCSSAgent::getNamedFlowCollection):
1600         (WebCore::InspectorCSSAgent::getFlowByName):
1601         (WebCore::InspectorCSSAgent::buildArrayForRegions):
1602         (WebCore):
1603         (WebCore::InspectorCSSAgent::buildObjectForNamedFlow):
1604         * inspector/InspectorCSSAgent.h:
1605         (InspectorCSSAgent):
1606         * inspector/InspectorDOMAgent.cpp:
1607         (WebCore::InspectorDOMAgent::pushNodeToFrontend):
1608         (WebCore):
1609         * inspector/InspectorDOMAgent.h:
1610         (InspectorDOMAgent):
1611         * inspector/front-end/CSSStyleModel.js:
1612         (WebInspector.CSSStyleModel.prototype.getNamedFlowCollectionAsync):
1613         (WebInspector.NamedFlow):
1614         (WebInspector.NamedFlow.parsePayloadArray):
1615
1616 2012-08-10  Keishi Hattori  <keishi@webkit.org>
1617
1618         Resize calandar and color suggestion popups to show error message
1619         https://bugs.webkit.org/show_bug.cgi?id=93695
1620
1621         Reviewed by Kent Tamura.
1622
1623         r125169 made PagePopupClient::contentSize() return zero size and so to
1624         see the error message, we need to resize the page popup.
1625
1626         No new tests. Not user facing.
1627
1628         * Resources/calendarPicker.js:
1629         (resizeWindow): Resizes popup window to given size.
1630         (showMain): Initiates transition to show the main element.
1631         (initialize):
1632         (fixWindowSize):
1633         * Resources/colorSuggestionPicker.js:
1634         (resizeWindow):
1635         (initialize):
1636         (ColorPicker.prototype._layout):
1637
1638 2012-08-10  Yury Semikhatsky  <yurys@chromium.org>
1639
1640         Web Inspector: further ResourceLoader memory instrumentation
1641         https://bugs.webkit.org/show_bug.cgi?id=93692
1642
1643         Reviewed by Vsevolod Vlasov.
1644
1645         Added missing parts to ResourceLoader and its descendants memory instrumentation.
1646         Added special logic for KURL and report the urls where we have them in instrumented classes.
1647
1648         * CMakeLists.txt:
1649         * GNUmakefile.list.am:
1650         * Target.pri:
1651         * WebCore.gypi:
1652         * WebCore.vcproj/WebCore.vcproj:
1653         * WebCore.xcodeproj/project.pbxproj:
1654         * css/StyleSheetContents.cpp:
1655         (WebCore::StyleSheetContents::reportMemoryUsage):
1656         * dom/Document.cpp:
1657         (WebCore::Document::reportMemoryUsage):
1658         * dom/MemoryInstrumentation.cpp:
1659         (WebCore::MemoryInstrumentation::addObject):
1660         (WebCore):
1661         * dom/MemoryInstrumentation.h:
1662         (WebCore):
1663         (MemoryInstrumentation):
1664         (WebCore::MemoryClassInfo::addMember):
1665         * loader/MainResourceLoader.cpp:
1666         (WebCore::MainResourceLoader::reportMemoryUsage):
1667         (WebCore):
1668         * loader/MainResourceLoader.h:
1669         (MainResourceLoader):
1670         * loader/SubresourceLoader.cpp:
1671         (WebCore::SubresourceLoader::reportMemoryUsage):
1672         (WebCore):
1673         * loader/SubresourceLoader.h:
1674         (SubresourceLoader):
1675         * loader/SubstituteData.cpp: Copied from Source/WebCore/dom/MemoryInstrumentation.cpp.
1676         (WebCore):
1677         (WebCore::SubstituteData::reportMemoryUsage):
1678         * loader/SubstituteData.h:
1679         (WebCore):
1680         (SubstituteData):
1681
1682 2012-08-10  Yoshifumi Inoue  <yosin@chromium.org>
1683
1684         [Forms] Introduce shadow elements for multiple fields time input UI
1685         https://bugs.webkit.org/show_bug.cgi?id=92960
1686
1687         Reviewed by Kent Tamura.
1688
1689         This patch introduces shadow elements for multiple fields time input UI:
1690             - DateTimeAMPMFieldElement - field UI for AM/PM
1691             - DateTimeEditElement - container of multiple DateTimeFieldElement
1692             - DateTimeFieldElement - base class of field UI
1693             - DateTimeHourFieldElement - field UI for hour
1694             - DateTimeMillisecondFieldElement - field UI for millisecond
1695             - DateTimeMinuteFieldElement - field UI for minute
1696             - DateTimeNumericFieldElement - base class of numeric field UI.
1697             - DateTimeSecondFieldElement - field UI for second
1698             - DateTimeSymbolicFieldElement - base class for symbolic field UI
1699         inside of ENABLE_INPUT_TYPE_TIME_MULTIPLE_FIELDS build flag.
1700
1701         No new tests. This patch doesn't change behavior.
1702
1703         * WebCore.gypi: Changed to include html/shadow/DateTimeEditElement.cpp,
1704         html/shadow/DateTimeEdditElement.h, html/shadow/DateTimeFieldElement.cpp,
1705         html/shadow/DateTimeFieldElement.h, html/shadow/DateTimeFieldElements.cpp,
1706         html/shadow/DateTimeFieldElements.h, html/shadow/DateTimeNumericFieldElement.cpp,
1707         html/shadow/DateTimeNumericFieldElement.h, html/shadow/DateTimeSymbolicFieldElement.cpp,
1708         and html/shadow/DateTimeSymbolicFieldElement.h.
1709         * html/shadow/DateTimeEditElement.cpp: Added.
1710         (DateTimeEditBuilder):
1711         (WebCore::DateTimeEditBuilder::DateTimeEditBuilder):
1712         (WebCore::DateTimeEditBuilder::build):
1713         (WebCore::DateTimeEditBuilder::needMillisecondField):
1714         (WebCore::DateTimeEditBuilder::needMinuteField):
1715         (WebCore::DateTimeEditBuilder::needSecondField):
1716         (WebCore::DateTimeEditBuilder::shouldMillisecondFieldReadOnly):
1717         (WebCore::DateTimeEditBuilder::shouldMinuteFieldReadOnly):
1718         (WebCore::DateTimeEditBuilder::shouldSecondFieldReadOnly):
1719         (WebCore::DateTimeEditBuilder::visitField):
1720         (WebCore::DateTimeEditBuilder::visitLiteral):
1721         (WebCore::DateTimeEditElement::EditControlOwner::~EditControlOwner):
1722         (WebCore::DateTimeEditElement::DateTimeEditElement):
1723         (WebCore::DateTimeEditElement::~DateTimeEditElement):
1724         (WebCore::DateTimeEditElement::addField):
1725         (WebCore::DateTimeEditElement::create):
1726         (WebCore::DateTimeEditElement::disabledStateChanged): Called when owner's disabled state is changed.
1727         (WebCore::DateTimeEditElement::fieldAt):
1728         (WebCore::DateTimeEditElement::focusFieldAt):
1729         (WebCore::DateTimeEditElement::handleKeyboardEvent):
1730         (WebCore::DateTimeEditElement::fieldValueChanged):
1731         (WebCore::DateTimeEditElement::focusOnNextField):
1732         (WebCore::DateTimeEditElement::handleMouseEvent):
1733         (WebCore::DateTimeEditElement::isDisabled):
1734         (WebCore::DateTimeEditElement::isReadOnly):
1735         (WebCore::DateTimeEditElement::layout):
1736         (WebCore::DateTimeEditElement::nextFieldIndex):
1737         (WebCore::DateTimeEditElement::previousFieldIndex):
1738         (WebCore::DateTimeEditElement::readOnlyStateChanged): Called when owner's readOnly state is changed.
1739         (WebCore::DateTimeEditElement::resetLayout):
1740         (WebCore::DateTimeEditElement::defaultEventHandler):
1741         (WebCore::DateTimeEditElement::setValueAsDate):
1742         (WebCore::DateTimeEditElement::setEmptyValue):
1743         (WebCore::DateTimeEditElement::spinButtonStepDown):
1744         (WebCore::DateTimeEditElement::spinButtonStepUp):
1745         (WebCore::DateTimeEditElement::updateUIState):
1746         (WebCore::DateTimeEditElement::valueAsDouble):
1747         * html/shadow/DateTimeEditElement.h: Added.
1748         (DateTimeEditElement):
1749         (EditControlOwner):
1750         (WebCore::DateTimeEditElement::removeEditControlOwner):
1751         * html/shadow/DateTimeFieldElement.cpp: Added.
1752         (WebCore::DateTimeFieldElement::FieldEventHandler::~FieldEventHandler):
1753         (WebCore::DateTimeFieldElement::DateTimeFieldElement):
1754         (WebCore::DateTimeFieldElement::defaultEventHandler):
1755         (WebCore::DateTimeFieldElement::defaultKeyboardEventHandler):
1756         (WebCore::DateTimeFieldElement::focusOnNextField):
1757         (WebCore::DateTimeFieldElement::initialize):
1758         (WebCore::DateTimeFieldElement::isReadOnly):
1759         (WebCore::DateTimeFieldElement::setReadOnly):
1760         (WebCore::DateTimeFieldElement::updateVisibleValue):
1761         (WebCore::DateTimeFieldElement::valueAsDouble):
1762         * html/shadow/DateTimeFieldElement.h: Added.
1763         (DateTimeFieldElement):
1764         (FieldEventHandler):
1765         (WebCore::DateTimeFieldElement::removeEventHandler):
1766         * html/shadow/DateTimeFieldElements.cpp: Added.
1767         (WebCore::DateTimeAMPMFieldElement::DateTimeAMPMFieldElement):
1768         (WebCore::DateTimeAMPMFieldElement::create):
1769         (WebCore::DateTimeAMPMFieldElement::setValueAsDate):
1770         (WebCore::DateTimeAMPMFieldElement::unitInMillisecond):
1771         (WebCore::DateTimeHourFieldElement::DateTimeHourFieldElement):
1772         (WebCore::DateTimeHourFieldElement::create):
1773         (WebCore::DateTimeHourFieldElement::setValueAsDate):
1774         (WebCore::DateTimeHourFieldElement::setValueAsInteger):
1775         (WebCore::DateTimeHourFieldElement::unitInMillisecond):
1776         (WebCore::DateTimeHourFieldElement::valueAsInteger):
1777         (WebCore::DateTimeMillisecondFieldElement::DateTimeMillisecondFieldElement):
1778         (WebCore::DateTimeMillisecondFieldElement::create):
1779         (WebCore::DateTimeMillisecondFieldElement::setValueAsDate):
1780         (WebCore::DateTimeMillisecondFieldElement::unitInMillisecond):
1781         (WebCore::DateTimeMinuteFieldElement::DateTimeMinuteFieldElement):
1782         (WebCore::DateTimeMinuteFieldElement::create):
1783         (WebCore::DateTimeMinuteFieldElement::setValueAsDate):
1784         (WebCore::DateTimeMinuteFieldElement::unitInMillisecond):
1785         (WebCore::DateTimeSecondFieldElement::DateTimeSecondFieldElement):
1786         (WebCore::DateTimeSecondFieldElement::create):
1787         (WebCore::DateTimeSecondFieldElement::setValueAsDate):
1788         (WebCore::DateTimeSecondFieldElement::unitInMillisecond):
1789         * html/shadow/DateTimeFieldElements.h: Added.
1790         (DateTimeAMPMFieldElement):
1791         (DateTimeHourFieldElement):
1792         (DateTimeMillisecondFieldElement):
1793         (DateTimeMinuteFieldElement):
1794         (DateTimeSecondFieldElement):
1795         * html/shadow/DateTimeNumericFieldElement.cpp: Added.
1796         (WebCore::displaySizeOfNumber):
1797         (WebCore::DateTimeNumericFieldElement::Range::Range):
1798         (WebCore::DateTimeNumericFieldElement::Range::clumpValue):
1799         (WebCore::DateTimeNumericFieldElement::DateTimeNumericFieldElement):
1800         (WebCore::DateTimeNumericFieldElement::handleKeyboardEvent):
1801         (WebCore::DateTimeNumericFieldElement::hasValue):
1802         (WebCore::DateTimeNumericFieldElement::setEmptyValue):
1803         (WebCore::DateTimeNumericFieldElement::setValueAsInteger):
1804         (WebCore::DateTimeNumericFieldElement::stepDown):
1805         (WebCore::DateTimeNumericFieldElement::stepUp):
1806         (WebCore::DateTimeNumericFieldElement::value):
1807         (WebCore::DateTimeNumericFieldElement::valueAsInteger):
1808         (WebCore::DateTimeNumericFieldElement::visibleValue):
1809         * html/shadow/DateTimeNumericFieldElement.h: Added.
1810         (DateTimeNumericFieldElement):
1811         (WebCore::DateTimeNumericFieldElement::clumpValue):
1812         (WebCore::DateTimeNumericFieldElement::range):
1813         * html/shadow/DateTimeSymbolicFieldElement.cpp: Added.
1814         (WebCore::DateTimeSymbolicFieldElement::DateTimeSymbolicFieldElement):
1815         (WebCore::DateTimeSymbolicFieldElement::handleKeyboardEvent):
1816         (WebCore::DateTimeSymbolicFieldElement::hasValue):
1817         (WebCore::DateTimeSymbolicFieldElement::setEmptyValue):
1818         (WebCore::DateTimeSymbolicFieldElement::setValueAsInteger):
1819         (WebCore::DateTimeSymbolicFieldElement::stepDown):
1820         (WebCore::DateTimeSymbolicFieldElement::stepUp):
1821         (WebCore::DateTimeSymbolicFieldElement::value):
1822         (WebCore::DateTimeSymbolicFieldElement::valueAsInteger):
1823         (WebCore::DateTimeSymbolicFieldElement::visibleValue):
1824         * html/shadow/DateTimeSymbolicFieldElement.h: Added.
1825         (DateTimeSymbolicFieldElement):
1826
1827 2012-08-10  Tony Chang  <tony@chromium.org>
1828
1829         implement display: -webkit-inline-flex
1830         https://bugs.webkit.org/show_bug.cgi?id=77772
1831
1832         Reviewed by Ojan Vafai.
1833
1834         The crashes last time were because we were marking too much of the tree for relayout. During some editing
1835         operations, this causes a layout when we're in an inconsistent state.
1836
1837         Tests: css3/flexbox/inline-flex-crash.html
1838                css3/flexbox/inline-flex-crash2.html
1839                css3/flexbox/inline-flex.html
1840
1841         * rendering/RenderFlexibleBox.cpp:
1842         (WebCore::RenderFlexibleBox::computeMainAxisPreferredSizes): Only layout the child.
1843         (WebCore::RenderFlexibleBox::layoutAndPlaceChildren): Only layout the child.
1844         (WebCore::RenderFlexibleBox::applyStretchAlignmentToChild): Only layout the child.
1845         * rendering/style/RenderStyle.h: Include INLINE_FLEX as an inline and replaced display type.
1846
1847 2012-08-10  Vineet Chaudhary  <rgf748@motorola.com>
1848
1849         Moving the common code from CodegeneratorJS/V8.pm to Codegenerator.pm
1850         https://bugs.webkit.org/show_bug.cgi?id=93616
1851
1852         Reviewed by Adam Barth.
1853
1854         IsArrayType() IsConstructorTemplate() IsTypedArrayType() these methods
1855         has the common implementaion for both V8 and JS and can be moved to
1856         common place Codegenerator.pm
1857
1858         No new tests. There should be no behavioural changes.
1859
1860         * bindings/scripts/CodeGenerator.pm: Moved common code here.
1861         (IsArrayType):
1862         (IsConstructorTemplate):
1863         (IsSVGTypeWithWritablePropertiesNeedingTearOff):
1864         (IsTypedArrayType):
1865         * bindings/scripts/CodeGeneratorJS.pm:
1866         (AddIncludesForType):
1867         (AddClassForwardIfNeeded):
1868         (GenerateHeader):
1869         (GenerateParametersCheckExpression):
1870         (GenerateImplementation):
1871         (NativeToJSValue):
1872         (GenerateConstructorDeclaration):
1873         (GenerateConstructorDefinition):
1874         (IsConstructable):
1875         * bindings/scripts/CodeGeneratorV8.pm:
1876         (AddIncludesForType):
1877         (GenerateHeader):
1878         (GetHeaderClassInclude):
1879         (GenerateParametersCheckExpression):
1880         (GenerateImplementation):
1881         (GetTypeNameOfExternalTypedArray):
1882
1883 2012-08-10  Sheriff Bot  <webkit.review.bot@gmail.com>
1884
1885         Unreviewed, rolling out r125230 and r125238.
1886         http://trac.webkit.org/changeset/125230
1887         http://trac.webkit.org/changeset/125238
1888         https://bugs.webkit.org/show_bug.cgi?id=93698
1889
1890         Broke ChromiumOS browser tests. (Requested by yutak on
1891         #webkit).
1892
1893         * platform/graphics/chromium/TiledLayerChromium.cpp:
1894         (WebCore::TiledLayerChromium::setTexturePrioritiesInRect):
1895         (WebCore::TiledLayerChromium::updateContentRect):
1896         (WebCore::TiledLayerChromium::needsIdlePaint):
1897         (WebCore::TiledLayerChromium::idlePaintRect):
1898         * platform/graphics/chromium/cc/CCLayerTilingData.cpp:
1899         (WebCore::CCLayerTilingData::contentRectToTileIndices):
1900         (WebCore::CCLayerTilingData::setBounds):
1901         * platform/graphics/chromium/cc/CCPriorityCalculator.h:
1902
1903 2012-08-09  Carlos Garcia Campos  <cgarcia@igalia.com>
1904
1905         Handle SSL errors for SOUP
1906         https://bugs.webkit.org/show_bug.cgi?id=90267
1907
1908         Reviewed by Martin Robinson.
1909
1910         No new tests, this is covered by existing tests.
1911
1912         * platform/LocalizedStrings.h:
1913         (WebCore): Add unacceptableTLSCertificate() for SOUP.
1914         * platform/efl/LocalizedStringsEfl.cpp:
1915         (WebCore::unacceptableTLSCertificate):
1916         * platform/gtk/LocalizedStringsGtk.cpp:
1917         (WebCore::unacceptableTLSCertificate):
1918         * platform/network/ResourceHandle.h:
1919         * platform/network/soup/ResourceError.h:
1920         (WebCore::ResourceError::ResourceError): Add new constructor for
1921         SSL errors that receives a certificate and TLS errors.
1922         (WebCore::ResourceError::tlsErrors): Return TLS errors.
1923         (WebCore::ResourceError::certificate): Return the certificate.
1924         * platform/network/soup/ResourceHandleSoup.cpp:
1925         (HostTLSCertificates): Helper class to store certificates for a
1926         host.
1927         (WebCore::HostTLSCertificateSet::add): Add a new certificate.
1928         (WebCore::HostTLSCertificateSet::contains): Check whether
1929         certificate is stored.
1930         (WebCore::HostTLSCertificateSet::computeCertificateHash): Compute
1931         the SHA1 of the certificate data.
1932         (WebCore::allowsAnyHTTPSCertificateHosts): Global set to store
1933         hostnames for which SSL errors should be ignored.
1934         (WebCore::clientCertificates): Global map to store client
1935         certificates.
1936         (WebCore::hasUnignoredTLSErrors): Helper function to check whether
1937         current message contains TLS errors that shouldn't be ignored and
1938         certificate hasn't been approved already.
1939         (WebCore::sendRequestCallback): Finish the load with an error in
1940         case of SSL errors not handled by the SoupSession.
1941         (WebCore::ResourceHandle::setHostAllowsAnyHTTPSCertificate): Add
1942         the given hostname to the list of hosts for which SSL errors are
1943         ignored.
1944         (WebCore::ResourceHandle::setClientCertificate): Store the client
1945         certificate for the given host.
1946         (WebCore::ResourceHandle::setIgnoreSSLErrors): Set whether all SSL
1947         errors should be ignored.
1948
1949 2012-08-10  Arko Saha  <arko@motorola.com>
1950
1951         itemType.add should treat \t as a space.
1952         https://bugs.webkit.org/show_bug.cgi?id=92991
1953
1954         Reviewed by Ryosuke Niwa.
1955
1956         Earlier we used to append a space character i.e, ' ' to the string builder
1957         if the last character of input string is not a space character in addToken()
1958         method. We should add an space character if the last character of input is
1959         not a HTML Space character like, '\n', '\r', '\t', '\f' or ' '.
1960
1961         We can observe the same behavior in FireFox, Opera and IE. They also treat
1962         HTML space character as a space.
1963
1964         Test: fast/dom/MicroData/domsettabletokenlist-attributes-add-token.html
1965
1966         * html/DOMTokenList.cpp:
1967         (WebCore::DOMTokenList::addToken):
1968
1969 2012-08-10  Tony Chang  <tony@chromium.org>
1970
1971         Remove unused isFlexingChildren and make m_flexingChildren a local variable
1972         https://bugs.webkit.org/show_bug.cgi?id=93689
1973
1974         Reviewed by Ojan Vafai.
1975
1976         isFlexingChildren() is never called, so we can remove it.
1977
1978         m_flexingChildren is now only used locally, so remove the member variable and use a local variable.
1979
1980         No new tests, this is just a refactoring.
1981
1982         * rendering/RenderDeprecatedFlexibleBox.cpp:
1983         (WebCore::RenderDeprecatedFlexibleBox::RenderDeprecatedFlexibleBox):
1984         (WebCore::RenderDeprecatedFlexibleBox::layoutBlock):
1985         (WebCore::RenderDeprecatedFlexibleBox::layoutHorizontalBox): Make flexingChildren a local.
1986         (WebCore::RenderDeprecatedFlexibleBox::layoutVerticalBox): Make flexingChildren a local.
1987         (WebCore::RenderDeprecatedFlexibleBox::applyLineClamp): No need to set m_flexingChildren since it's not used
1988         outside of RenderDeprecatedFlexibleBox.
1989         * rendering/RenderDeprecatedFlexibleBox.h:
1990         (RenderDeprecatedFlexibleBox): Remove m_flexingChildren and don't bit pack the remaining bool since it doesn't
1991         do anything for 1 bool.
1992         * rendering/RenderObject.h:
1993
1994 2012-08-10  Sam D  <dsam2912@gmail.com>
1995
1996         Web Inspector: Search matches count view is flaky.
1997         https://bugs.webkit.org/show_bug.cgi?id=93451
1998
1999         Reviewed by Pavel Feldman.
2000
2001         Modified css properties for aligning search panel.
2002
2003         No new tests.UI change.
2004
2005         * inspector/front-end/inspector.css:
2006         (.search-results-matches):
2007
2008 2012-08-09  Simon Hausmann  <simon.hausmann@nokia.com>
2009
2010         [Qt] Remove support for __qt_sender__ in QObject bridge
2011         https://bugs.webkit.org/show_bug.cgi?id=93649
2012
2013         Reviewed by Kenneth Rohde Christiansen.
2014
2015         Support for __qt_sender__ has also been removed from QtScript/QJSEngine. The right
2016         JavaScript solution to the problem is Function.prototype.bind.
2017
2018         * bridge/qt/qt_instance.cpp:
2019         (Bindings):
2020         * bridge/qt/qt_instance.h:
2021         * bridge/qt/qt_runtime.cpp:
2022         (Bindings):
2023         (JSC::Bindings::QtConnectionObject::execute):
2024
2025 2012-08-09  Shane Stephens  <shanestephens@google.com>
2026
2027         Convert CSSParser's m_reusableSelectorVector to OwnPtr and rename to m_selectorVector.
2028         https://bugs.webkit.org/show_bug.cgi?id=93574
2029
2030         Reviewed by Ojan Vafai.
2031
2032         This is preparatory work for CSS Hierarchies (see wkb.ug/79939).
2033         CSS Hierarchies works by pushing selectorVectors onto a stack while nested selectorVectors are parsed.
2034         For this reason, the selectorVector in CSSParser can't be re-used between selector parses within a set of
2035         nested selectors. This patch wraps the selectorVector in an OwnPtr but does not otherwise modify its use.
2036
2037         Similarly, CSSParser::m_parsedProperties is converted from a direct ParsedPropertyVector included
2038         as a member of CSSParser to an OwnPtr.
2039
2040         Once Hierarchies are introduced, when a selectorVector is stacked a new one will be created 
2041         and stored in m_selectorVector (see wkb.ug/79939 for context). However, an accompanying unstacking
2042         mechanism ensures that selectorVectors will be reused in all circumstances where they currently are.
2043
2044         This patch also introduces a CSSSelectorVector typedef to simplify and improve readability of 
2045         type signatures in and around CSSParser.
2046
2047         No new tests as this patch doesn't introduce new functionality.
2048
2049         * css/CSSGrammar.y:
2050         * css/CSSParser.cpp:
2051         (WebCore::CSSParser::CSSParser):
2052         (WebCore::CSSParser::parseValue):
2053         (WebCore::CSSParser::parseColor):
2054         (WebCore::CSSParser::parseDeclaration):
2055         (WebCore):
2056         (WebCore::filterProperties):
2057         (WebCore::CSSParser::createStylePropertySet):
2058         (WebCore::CSSParser::addProperty):
2059         (WebCore::CSSParser::rollbackLastProperties):
2060         (WebCore::CSSParser::clearProperties):
2061         (WebCore::CSSParser::parse4Values):
2062         (WebCore::CSSParser::parseFlowThread):
2063         (WebCore::CSSParser::createFloatingSelectorVector):
2064         (WebCore::CSSParser::sinkFloatingSelectorVector):
2065         (WebCore::CSSParser::createStyleRule):
2066         (WebCore::CSSParser::createFontFaceRule):
2067         (WebCore::CSSParser::createPageRule):
2068         (WebCore::CSSParser::setReusableRegionSelectorVector):
2069         (WebCore::CSSParser::startDeclarationsForMarginBox):
2070         (WebCore::CSSParser::endDeclarationsForMarginBox):
2071         (WebCore::CSSParser::deleteFontFaceOnlyValues):
2072
2073         m_reusableSelectorVector renamed to m_selectorVector and wrapped in OwnPtr.
2074         m_parsedProperties wrapped in OwnPtr.
2075         * css/CSSParser.h:
2076         (WebCore::CSSParser::hasProperties):
2077         (WebCore::CSSParser::selectorVector): function renamed from reusableSelectorVector
2078         (CSSParser): 
2079         (WebCore::CSSParser::reusableRegionSelectorVector):
2080         * css/CSSParserValues.cpp:
2081         (WebCore::CSSParserSelector::adoptSelectorVector):
2082         * css/CSSParserValues.h: CSSSelectorVector typedef added
2083         (WebCore):
2084         (CSSParserSelector):
2085         * css/CSSSelectorList.cpp:
2086         (WebCore::CSSSelectorList::adoptSelectorVector):
2087         * css/CSSSelectorList.h:
2088         (CSSSelectorList):
2089         * css/SVGCSSParser.cpp:
2090         (WebCore::CSSParser::parseSVGValue):
2091         * css/StyleRule.cpp:
2092         (WebCore::StyleRuleRegion::StyleRuleRegion):
2093         * css/StyleRule.h:
2094         (WebCore::StyleRule::parserAdoptSelectorVector):
2095         (WebCore::StyleRulePage::parserAdoptSelectorVector):
2096         (WebCore::StyleRuleRegion::create):
2097         (StyleRuleRegion):
2098
2099 2012-08-02  Dominic Cooney  <dominicc@chromium.org>
2100
2101         SVGElementInstance should have EventTarget on the prototype chain
2102         https://bugs.webkit.org/show_bug.cgi?id=88232
2103
2104         Reviewed by Adam Barth.
2105
2106         SVG 1.1 specifies that SVGElementInstance has EventTarget as its
2107         parent interface:
2108         <http://www.w3.org/TR/SVG/struct.html#InterfaceSVGElementInstance>
2109         Match the spec by putting EventTarget on the prototype chain of
2110         SVGElementInstance instead of redundantly declaring
2111         addEventListener, removeEventListener and dispatchEvent on the
2112         SVGElementInstance interface. This is an incremental step to make
2113         all EventTargets do it this way, being tracked in bug 67312.
2114
2115         Covered by existing tests, eg
2116         svg/custom/use-instanceRoot-as-event-target.xhtml
2117
2118         * CMakeLists.txt: Finding base interface types requires
2119         searching directories with the IDLs of base interfaces.
2120         * DerivedSources.cpp: Add generated JSEventTarget.cpp.
2121         * DerivedSources.make: (Search paths again -- see CMakeLists.txt)
2122         * DerivedSources.pri: "
2123         * bindings/js/JSEventTargetCustom.cpp:
2124         (WebCore::toEventTarget): Try to unwrap EventTargets simply as
2125         EventTargets. When all EventTargets do this consistently this
2126         function will be simplified.
2127         * bindings/js/JSSVGElementInstanceCustom.cpp:
2128         (WebCore::JSSVGElementInstance::visitChildren): SVGElementInstance
2129         skips walking its event listener list because it forwards
2130         listeners to its corresponding element.
2131         * bindings/scripts/CodeGenerator.pm:
2132         (IsStrictSubtype): For finding what is an EventTarget based on
2133         parent interface.
2134         * bindings/scripts/CodeGeneratorJS.pm:
2135         (GenerateHeader): Extend the heuristic for what is an
2136         EventTarget. When all EventTargets are handled consistently this
2137         will be simplified.
2138         (GenerateImplementation):
2139         * bindings/scripts/CodeGeneratorV8.pm: Extend the heuristic for
2140         what is an EventTarget, and remove some of the special-casing for
2141         EventTarget.
2142         (GenerateHeader):
2143         (GetInternalFields):
2144         (GenerateImplementation):
2145         (BaseInterfaceName):
2146         (GenerateToV8Converters):
2147         (GetNativeType):
2148         (JSValueToNative):
2149         (GetV8HeaderName):
2150         * bindings/scripts/test/V8/V8Float64Array.cpp:
2151         (WebCore::V8Float64Array::wrapSlow): Add assertions.
2152         * bindings/scripts/test/V8/V8TestNode.cpp:
2153         (WebCore::V8TestNode::wrapSlow):
2154         * svg/SVGElementInstance.h: Must extend EventTarget first so that
2155         static_cast<EventTarget*>(elementInstance) is the same pointer as
2156         elementInstance, similar to how static_cast<Node*>(element) is the
2157         same pointer as element.
2158         * svg/SVGElementInstance.idl: Extend EventTarget; no longer need
2159         to declare add/removeEventListener and dispatchEvent.
2160
2161 2012-08-09  Vivek Galatage  <vivekgalatage@gmail.com>
2162
2163         Web Inspector: Remove unused method InspectorResourceAgent::clearCache from Resource Agent.
2164         https://bugs.webkit.org/show_bug.cgi?id=93675
2165
2166         Reviewed by Pavel Feldman.
2167
2168         Removing unused method declaration for clearCache in InspectorResourceAgent. It's marked as FIXME.
2169         Hence cleaning up.
2170
2171         No new tests as cleanup.
2172
2173         * inspector/InspectorResourceAgent.h:
2174         (InspectorResourceAgent):
2175
2176 2012-08-09  Peter Rybin  <peter.rybin@gmail.com>
2177
2178         Web Inspector: CodeGeneratorInspector.py: add complete support for TypeBuilder::Array
2179         https://bugs.webkit.org/show_bug.cgi?id=93559
2180
2181         Reviewed by Pavel Feldman.
2182
2183         Missing binding methods are added to templates. Core assert methods are declared in a helper class now.
2184
2185         * inspector/CodeGeneratorInspector.py:
2186         (RawTypes.BaseType.generate_validate_method):
2187         (RawTypes.BaseType.get_raw_validator_call_text):
2188         (RawTypes.generate_validate_methods):
2189         (RawTypes.Int.generate_validate_method):
2190         (RawTypes.Int.get_raw_validator_call_text):
2191         (RawTypes.Number.get_validate_method_params.ValidateMethodParams):
2192         (RawTypes.Any.generate_validate_method):
2193         (RawTypes.Any.get_raw_validator_call_text):
2194         (RawTypes.Array.get_validate_method_params.ValidateMethodParams):
2195         (RawTypes.Array.get_validate_method_params):
2196         (PlainObjectBinding.get_validator_call_text):
2197         (RuntimeCastHelper):
2198         (Generator):
2199         (Generator.go):
2200
2201 2012-08-09  Sukolsak Sakshuwong  <sukolsak@google.com>
2202
2203         Mouse-select then Cut, results in preceding character being lost
2204         https://bugs.webkit.org/show_bug.cgi?id=60830
2205
2206         Reviewed by Ryosuke Niwa.
2207
2208         This bug happened only in text fields and text areas, not in other
2209         content-editable elements. That's because when we cut or copied text
2210         in a text control, we called Pasteboard::writePlainText instead of
2211         Pasteboard::writeSelection. writePlainText did not record the smart replace
2212         information. Make writePlainText record the smart replace information.
2213
2214         Test: editing/pasteboard/smart-paste-in-text-control.html
2215
2216         * editing/Editor.cpp:
2217         (WebCore::Editor::cut):
2218         (WebCore::Editor::copy):
2219         * inspector/InjectedScriptHost.cpp:
2220         (WebCore::InjectedScriptHost::copyText):
2221         * inspector/InspectorFrontendHost.cpp:
2222         (WebCore::InspectorFrontendHost::copyText):
2223         * platform/Pasteboard.h:
2224         * platform/blackberry/PasteboardBlackBerry.cpp:
2225         (WebCore::Pasteboard::writePlainText):
2226         * platform/chromium/PasteboardChromium.cpp:
2227         (WebCore::Pasteboard::writePlainText):
2228         * platform/efl/PasteboardEfl.cpp:
2229         (WebCore::Pasteboard::writePlainText):
2230         * platform/gtk/PasteboardGtk.cpp:
2231         (WebCore::Pasteboard::writePlainText):
2232         * platform/mac/ClipboardMac.mm:
2233         (WebCore::ClipboardMac::writePlainText):
2234         * platform/mac/PasteboardMac.mm:
2235         (WebCore::Pasteboard::writePlainText):
2236         * platform/qt/PasteboardQt.cpp:
2237         (WebCore::Pasteboard::writePlainText):
2238         * platform/win/PasteboardWin.cpp:
2239         (WebCore::Pasteboard::writePlainText):
2240         * platform/wince/PasteboardWinCE.cpp:
2241         (WebCore::Pasteboard::writePlainText):
2242         * platform/wx/ClipboardWx.cpp:
2243         (WebCore::ClipboardWx::writePlainText):
2244         * platform/wx/PasteboardWx.cpp:
2245         (WebCore::Pasteboard::writePlainText):
2246
2247 2012-08-09  Kentaro Hara  <haraken@chromium.org>
2248
2249         Unreviewed. Updated run-binding-tests results.
2250
2251         * bindings/scripts/test/V8/V8TestActiveDOMObject.cpp:
2252         (WebCore::TestActiveDOMObjectV8Internal::TestActiveDOMObjectDomainSafeFunctionSetter):
2253
2254 2012-08-09  Luke Macpherson   <macpherson@chromium.org>
2255
2256         Fix null pointer deref in RenderFileUploadControl::computePreferredLogicalWidth().
2257         https://bugs.webkit.org/show_bug.cgi?id=93579
2258
2259         Reviewed by Kent Tamura.
2260
2261         Checks the upload control has a non-null button renderer before dereferencing.
2262
2263         Test: fast/forms/file/file-crash-by-display-none-button.html
2264
2265         * rendering/RenderFileUploadControl.cpp:
2266         (WebCore::RenderFileUploadControl::computePreferredLogicalWidths):
2267
2268 2012-08-09  Kentaro Hara  <haraken@chromium.org>
2269
2270         [V8] Rename V8BindingPerContextData to V8PerContextData
2271         https://bugs.webkit.org/show_bug.cgi?id=93595
2272
2273         Reviewed by Adam Barth.
2274
2275         For a better name. See discussion in bug 93333.
2276
2277         No tests. No change in behavior.
2278
2279         * UseV8.cmake: Added V8PerContextData.cpp. The fact that missing V8BindingPerContextData.cpp
2280         has not caused any problem indicates that UseV8.cmake is not used at all?
2281         * WebCore.gypi:
2282         * bindings/v8/V8DOMWindowShell.cpp:
2283         (WebCore::V8DOMWindowShell::initContextIfNeeded):
2284         * bindings/v8/V8DOMWindowShell.h:
2285         (WebCore::V8DOMWindowShell::perContextData):
2286         (V8DOMWindowShell):
2287         * bindings/v8/V8DOMWrapper.cpp:
2288         (WebCore::V8DOMWrapper::constructorForType):
2289         (WebCore::V8DOMWrapper::perContextData):
2290         (WebCore::V8DOMWrapper::instantiateV8Object):
2291         * bindings/v8/V8DOMWrapper.h:
2292         (WebCore):
2293         (V8DOMWrapper):
2294         * bindings/v8/V8IsolatedContext.cpp:
2295         (WebCore::V8IsolatedContext::V8IsolatedContext):
2296         * bindings/v8/V8IsolatedContext.h:
2297         (WebCore):
2298         (WebCore::V8IsolatedContext::perContextData):
2299         (V8IsolatedContext):
2300         * bindings/v8/V8PerContextData.cpp: Renamed from Source/WebCore/bindings/v8/V8BindingPerContextData.cpp.
2301         (WebCore):
2302         (WebCore::V8PerContextData::dispose):
2303         (WebCore::V8PerContextData::init):
2304         (WebCore::V8PerContextData::createWrapperFromCacheSlowCase):
2305         (WebCore::V8PerContextData::constructorForTypeSlowCase):
2306         * bindings/v8/V8PerContextData.h: Renamed from Source/WebCore/bindings/v8/V8BindingPerContextData.h.
2307         (WebCore):
2308         (V8PerContextData):
2309         (WebCore::V8PerContextData::create):
2310         (WebCore::V8PerContextData::~V8PerContextData):
2311         (WebCore::V8PerContextData::createWrapperFromCache):
2312         (WebCore::V8PerContextData::constructorForType):
2313         (WebCore::V8PerContextData::V8PerContextData):
2314         * bindings/v8/V8Proxy.cpp:
2315         (WebCore::V8Proxy::retrievePerContextData):
2316         * bindings/v8/V8Proxy.h:
2317         (WebCore):
2318         (V8Proxy):
2319         * bindings/v8/WorkerContextExecutionProxy.cpp:
2320         (WebCore::WorkerContextExecutionProxy::initContextIfNeeded):
2321         * bindings/v8/WorkerContextExecutionProxy.h:
2322         (WebCore):
2323         (WebCore::WorkerContextExecutionProxy::perContextData):
2324         (WorkerContextExecutionProxy):
2325
2326 2012-08-09  Erik Arvidsson  <arv@chromium.org>
2327
2328         HTMLElement.classList cannot remove classnames with uppercase characters
2329         https://bugs.webkit.org/show_bug.cgi?id=93628
2330
2331         Reviewed by Alexey Proskuryakov.
2332
2333         Before this patch we were trying to be smart and determine whether we needed the update m_classNamesForQuirksMode
2334         based on whether m_classNamesForQuirksMode.isNull(), however, m_classNamesForQuirksMode.isNull() is true when the
2335         class name is the empty string.
2336
2337         We also did not update m_classNamesForQuirksMode when the class attribute was cleared.
2338
2339         Updated tests.
2340
2341         * dom/StyledElement.cpp:
2342         (WebCore::StyledElement::classAttributeChanged):
2343         * html/ClassList.cpp:
2344         (WebCore::ClassList::reset):
2345         (WebCore::ClassList::classNames):
2346
2347 2012-08-09  Yuta Kitamura  <yutak@chromium.org>
2348
2349         Unreviewed, Chromium-mac (clang) build fix for r125230.
2350
2351         * platform/graphics/chromium/TiledLayerChromium.cpp:
2352         (WebCore):
2353
2354 2012-08-09  MORITA Hajime  <morrita@google.com>
2355
2356         https://bugs.webkit.org/show_bug.cgi?id=93587
2357         Node::replaceChild() can create bad DOM topology with MutationEvent, Part 2
2358
2359         Reviewed by Kent Tamura.
2360
2361         This is a followup of r124156. replaceChild() has yet another hidden
2362         MutationEvent trigger. This change added a guard for it.
2363
2364         Test: fast/events/mutation-during-replace-child-2.html
2365
2366         * dom/ContainerNode.cpp:
2367         (WebCore::ContainerNode::replaceChild):
2368
2369 2012-08-09  Kentaro Hara  <haraken@chromium.org>
2370
2371         [V8] V8Utilities::throwTypeMismatchException() should use setDOMException()
2372         https://bugs.webkit.org/show_bug.cgi?id=93610
2373
2374         Reviewed by Adam Barth.
2375
2376         Given that V8Utilities::throwTypeMismatchException() throws a DOM exception,
2377         we should use setDOMException() instead of throwError().
2378
2379         This patch also renames throwTypeMismatchException() to setTypeMismatchException().
2380
2381         No tests. I couldn't figure out how to trigger the call path.
2382         Either way this is just a minor change of error message.
2383
2384         * bindings/v8/V8Utilities.cpp:
2385         (WebCore::setTypeMismatchException):
2386         * bindings/v8/V8Utilities.h:
2387         (WebCore::createFunctionOnlyCallback):
2388
2389 2012-08-09  Julien Chaffraix  <jchaffraix@webkit.org>
2390
2391         Crash in WebCore::RenderTable::cellBefore
2392         https://bugs.webkit.org/show_bug.cgi?id=91160
2393
2394         Reviewed by Abhishek Arya.
2395
2396         The issue was that we wouldn't properly set the row index on row in a newly split table. When inserting
2397         the cell into the new row, we would try to repaint the cell which would access the row index and crash.
2398         This came from splitAnonymousBoxesAroundChild calling RenderObjectChildList::insertChildNode directly
2399         which doesn't invoke the row setting logic (RenderTableSection::addChild for example but we cannot call
2400         addChild due to concern over splitting flows in the general case).
2401
2402         Test: fast/table/split-anonymous-boxes-around-table-repaint-crash.html
2403
2404         * rendering/RenderBox.cpp:
2405         (WebCore::RenderBox::splitAnonymousBoxesAroundChild):
2406         Dirty our parent box, which forces a cell recomputation which will set the row index. This needs to
2407         be done *before* we insert the child to avoid crashing when repainting the new child.
2408
2409 2012-08-09  Erik Arvidsson  <arv@chromium.org>
2410
2411         [V8] Fix issues with [DoNotCheckSecurity] which depended on non ES5 compliant behavior
2412         https://bugs.webkit.org/show_bug.cgi?id=93555
2413
2414         Reviewed by Kentaro Hara.
2415
2416         Before this change we were relying on a V8 bug where instance properties could be shadow
2417         read only properties on the prototype. With this change we no longer depend on this incorrect
2418         V8 behavior and instead use a hidden v8 property that is only returned if the code can access
2419         the frame.
2420
2421         No new tests. No change in behavior.
2422
2423         * bindings/scripts/CodeGeneratorV8.pm:
2424         (GenerateDomainSafeFunctionGetter):
2425         (GenerateDomainSafeFunctionSetter):
2426         (GenerateNonStandardFunction):
2427         (GenerateImplementation):
2428         * bindings/scripts/test/V8/V8TestActiveDOMObject.cpp:
2429         (WebCore::TestActiveDOMObjectV8Internal::postMessageAttrGetter):
2430         (WebCore::TestActiveDOMObjectV8Internal::TestActiveDOMObjectDomainSafeFunctionSetter):
2431         (TestActiveDOMObjectV8Internal):
2432         (WebCore::ConfigureV8TestActiveDOMObjectTemplate):
2433
2434 2012-08-09  David Grogan  <dgrogan@chromium.org>
2435
2436         IndexedDB: intversion-long-queue.html fails an assert
2437         https://bugs.webkit.org/show_bug.cgi?id=92783
2438
2439         Reviewed by Tony Chang.
2440
2441         onBlocked needs the same shouldEnqueueEvent check that the other
2442         event generators have.
2443
2444         Tests: intversion-long-queue is no longer skipped.
2445
2446         * Modules/indexeddb/IDBRequest.h:
2447         (IDBRequest):
2448         * Modules/indexeddb/IDBVersionChangeRequest.cpp:
2449         (WebCore::IDBVersionChangeRequest::onBlocked):
2450
2451 2012-08-09  Eric Penner  <epenner@google.com>
2452
2453         [chromium] Paint animated layers immediately to avoid animation hiccups.
2454         https://bugs.webkit.org/show_bug.cgi?id=93028
2455
2456         Reviewed by Adrienne Walker.
2457
2458         This is a technique used on Android, which is very prone
2459         to hiccups in animations. Paint the entire layer if it is
2460         of reasonable size such that there is no hiccups when the
2461         animation reaches unpainted content. The reasonable size
2462         is choosen for page-transitions specifically, as this was
2463         the problem case (animations would just jump to the end).
2464
2465         Since we already have a special case this just modifies it
2466         and replaces the unit test with a new one. This can be
2467         improved/simplified further when distances/directions are
2468         available for the animated layers.
2469
2470         Replaced one test.
2471
2472         * platform/graphics/chromium/TiledLayerChromium.cpp:
2473         (UpdatableTile):
2474         (WebCore::UpdatableTile::resetUpdateState):
2475         (WebCore::UpdatableTile::markForUpdate):
2476         (WebCore::UpdatableTile::UpdatableTile):
2477         (WebCore::TiledLayerChromium::TiledLayerChromium):
2478         (WebCore::TiledLayerChromium::pushPropertiesTo):
2479         (WebCore):
2480         (WebCore::TiledLayerChromium::updateTiles):
2481         (WebCore::TiledLayerChromium::markOcclusionsAndRequestTextures):
2482         (WebCore::TiledLayerChromium::haveTexturesForTiles):
2483         (WebCore::TiledLayerChromium::markTilesForUpdate):
2484         (WebCore::TiledLayerChromium::updateTileTextures):
2485         (WebCore::TiledLayerChromium::setTexturePrioritiesInRect):
2486         (WebCore::TiledLayerChromium::resetUpdateState):
2487         (WebCore::TiledLayerChromium::updateContentRect):
2488         (WebCore::TiledLayerChromium::needsIdlePaint):
2489         (WebCore::TiledLayerChromium::idlePaintRect):
2490         * platform/graphics/chromium/TiledLayerChromium.h:
2491         (TiledLayerChromium):
2492         * platform/graphics/chromium/cc/CCLayerTilingData.cpp:
2493         (WebCore::CCLayerTilingData::contentRectToTileIndices):
2494         * platform/graphics/chromium/cc/CCPriorityCalculator.h:
2495         (WebCore::CCPriorityCalculator::maxPriority):
2496
2497 2012-08-09  Julien Chaffraix  <jchaffraix@webkit.org>
2498
2499         REGRESSION(r117339): cell in block-level table in inline-block are aligned with their last line box
2500         https://bugs.webkit.org/show_bug.cgi?id=91137
2501
2502         Reviewed by Tony Chang.
2503
2504         Fixed the code to properly ignore any inline-table's baseline for the purpose of 'inline-block' baseline computation.
2505         See http://lists.w3.org/Archives/Public/www-style/2012Jul/0721.html about the discussion.
2506
2507         While touching the code, properly fixed the table baseline logic that was wrong because it wrongly piggy-backed
2508         on the inline-block baseline logic.
2509
2510         Tests: fast/table/anonymous-table-no-baseline-align.html
2511                fast/table/inline-table-in-inline-block-last-baseline-align.html
2512
2513         * rendering/RenderTable.cpp:
2514         (WebCore::RenderTable::baselinePosition):
2515         Overrode this function: this is needed as RenderBlock assumes that isReplaced() == true
2516         means it is handling an inline-block, not a table.
2517
2518         (WebCore::RenderTable::lastLineBoxBaseline):
2519         Table are ignored for the purpose of inline-block baseline determination.
2520
2521         (WebCore::RenderTable::firstLineBoxBaseline):
2522         Inlined the code from getLineBoxBaseline. Added some comments to explain
2523         why this code works as expected in the 'table' case.
2524
2525         * rendering/RenderTable.h:
2526         Added baselinePosition.
2527
2528 2012-08-09  Adam Barth  <abarth@webkit.org>
2529
2530         Sandboxing view source documents is ineffective
2531         https://bugs.webkit.org/show_bug.cgi?id=93660
2532
2533         Reviewed by Eric Seidel.
2534
2535         Prior to this patch, Document::setIsViewSource changed the
2536         SecurityOrigin object on Document but didn't update the copy on
2537         DOMWindow. As a consequence, the security checks that use the copy on
2538         DOMWindow didn't notice the change and acted as if the document wasn't
2539         sandboxed.
2540
2541         This bug wasn't present for most view source documents because
2542         HTMLViewSourceDocument sets the flag in its constructor. However, for
2543         view source documents created by the XMLTreeViewer, the bit was set at
2544         the end of parsing rather than during construction.
2545
2546         This mechansim is really more of a mitigation than an important
2547         security check, and I was tempted to remove the sandboxing entirely
2548         given that sandboxing a document at the end of parsing isn't overly
2549         effective anyway. However, we can worry about that issue in a future
2550         patch.
2551
2552         For the time being, this patch just synchronizes DOMWindow and
2553         Document's copy of the SecurityOrigin. The long-term solution here, of
2554         course, is to keep working on fixing
2555         https://bugs.webkit.org/show_bug.cgi?id=75793, which this patch gets us
2556         one (small) step closer to fixing.
2557
2558         * dom/Document.cpp:
2559         (WebCore::Document::setIsViewSource):
2560
2561 2012-08-09  Benjamin Poulain  <bpoulain@apple.com>
2562
2563         Append the unit in place when generating the text value of a CSSPrimitiveValue
2564         https://bugs.webkit.org/show_bug.cgi?id=93572
2565
2566         Reviewed by Andreas Kling.
2567
2568         Previously, the units were added to the formatted number by the operator+. This would create
2569         a new WTF::String for the unit, then use String::append() to add it to the number.
2570
2571         This was ineffective because it required one malloc for the unit, followed by a realloc + copying
2572         the bytes.
2573
2574         This patch adds handling for the unit directly in formatNumber() so that we only do one malloc
2575         and append the units in place.
2576
2577         Avoiding the intermediate string is both more efficient (9% faster as seen from JavaScript)
2578         and generate more compact code (~8kb less code on x86_64).
2579
2580         * css/CSSPrimitiveValue.cpp:
2581         (WebCore::formatNumber):
2582         (WebCore::CSSPrimitiveValue::customCssText):
2583
2584 2012-08-09  Elliott Sprehn  <esprehn@gmail.com>
2585
2586         Reimplement RenderQuote placement algorithm
2587         https://bugs.webkit.org/show_bug.cgi?id=93056
2588
2589         Reviewed by Eric Seidel.
2590
2591         Greatly simplify the code that maintains the linked list of RenderQuotes. Now RenderQuote
2592         is placed into the linked list in computePreferredLogicalWidths on first access and is
2593         detached when destroyed (or explicitly removed).
2594
2595         The new algorithm doesn't require walking up the tree of renderers when there are no
2596         RenderQuotes in the tree yet, and also removes the need to walk over every subtree
2597         when inserting in rendererSubtreeAttached.
2598
2599         No new tests because this patch doesn't change any behavior.
2600
2601         * rendering/RenderObjectChildList.cpp:
2602         (WebCore::RenderObjectChildList::removeChildNode): Call detachQuote when removing from a child list.
2603         (WebCore::RenderObjectChildList::appendChildNode):
2604         (WebCore::RenderObjectChildList::insertChildNode):
2605         * rendering/RenderQuote.cpp:
2606         (WebCore::RenderQuote::RenderQuote):
2607         (WebCore::RenderQuote::~RenderQuote):
2608         (WebCore::RenderQuote::willBeDestroyed): Call detachQuote to ensure all destroyed quotes are detached.
2609         (WebCore::RenderQuote::originalText):
2610         (WebCore::RenderQuote::computePreferredLogicalWidths): Attach quote before computing the width.
2611         (WebCore):
2612         (WebCore::RenderQuote::attachQuote): Puts the RenderQuote in the linked list of quotes and computes the depth.
2613         (WebCore::RenderQuote::detachQuote): Removes the quote from the linked list.
2614         (WebCore::RenderQuote::updateDepth):
2615         * rendering/RenderQuote.h:
2616         (RenderQuote):
2617         * rendering/style/RenderStyle.cpp:
2618         (WebCore::RenderStyle::diff): Return StyleDifferenceLayout if quotes change and remove check in styleDidChange in RenderQuote.
2619         * rendering/RenderView.cpp:
2620         (WebCore::RenderView::RenderView):
2621         * rendering/RenderView.h:
2622         (WebCore):
2623         (WebCore::RenderView::setRenderQuoteHead):
2624         (WebCore::RenderView::renderQuoteHead): Stores the first quote in the document.
2625         (RenderView):
2626
2627 2012-08-06  Nat Duca  <nduca@chromium.org>
2628
2629         [chromium] Expose CCGraphicsContext as WebCompositorOutputSurface
2630         https://bugs.webkit.org/show_bug.cgi?id=92890
2631
2632         Reviewed by James Robinson.
2633
2634         * platform/graphics/chromium/cc/CCGraphicsContext.h:
2635         (WebCore):
2636         * platform/graphics/chromium/cc/CCLayerTreeHost.cpp:
2637         (WebCore::CCLayerTreeHost::initializeLayerRenderer):
2638         (WebCore::CCLayerTreeHost::recreateContext):
2639         (WebCore::CCLayerTreeHost::createContext):
2640         * platform/graphics/chromium/cc/CCLayerTreeHost.h:
2641         (WebCore):
2642         (CCLayerTreeHostClient):
2643         (WebCore::CCLayerTreeSettings::CCLayerTreeSettings):
2644         (CCLayerTreeSettings):
2645         * platform/graphics/chromium/cc/CCLayerTreeHostImpl.cpp:
2646         (WebCore::CCLayerTreeHostImpl::onVSyncParametersChanged):
2647         (WebCore):
2648         (WebCore::CCLayerTreeHostImpl::initializeLayerRenderer):
2649         * platform/graphics/chromium/cc/CCLayerTreeHostImpl.h:
2650         (CCLayerTreeHostImplClient):
2651         * platform/graphics/chromium/cc/CCProxy.h:
2652         (WebKit):
2653         (WebCore):
2654         * platform/graphics/chromium/cc/CCRenderer.h:
2655         (CCRendererClient):
2656         (WebCore::CCRendererClient::~CCRendererClient):
2657         * platform/graphics/chromium/cc/CCResourceProvider.cpp:
2658         * platform/graphics/chromium/cc/CCResourceProvider.h:
2659         * platform/graphics/chromium/cc/CCSingleThreadProxy.h:
2660         * platform/graphics/chromium/cc/CCThreadProxy.cpp:
2661         (WebCore::CCThreadProxy::recreateContext):
2662         (WebCore::CCThreadProxy::onVSyncParametersChanged):
2663         (WebCore):
2664         (WebCore::CCThreadProxy::beginFrame):
2665         * platform/graphics/chromium/cc/CCThreadProxy.h:
2666
2667 2012-08-09  Nat Duca  <nduca@chromium.org>
2668
2669         Unreviewed, rolling out r125212.
2670         http://trac.webkit.org/changeset/125212
2671         https://bugs.webkit.org/show_bug.cgi?id=92890
2672
2673         Compile failure on mac dbg builder
2674
2675         * platform/graphics/chromium/cc/CCGraphicsContext.h:
2676         (WebCore):
2677         (CCGraphicsContext):
2678         (WebCore::CCGraphicsContext::create2D):
2679         (WebCore::CCGraphicsContext::create3D):
2680         (WebCore::CCGraphicsContext::context3D):
2681         (WebCore::CCGraphicsContext::CCGraphicsContext):
2682         * platform/graphics/chromium/cc/CCLayerTreeHost.cpp:
2683         (WebCore::CCLayerTreeHost::initializeLayerRenderer):
2684         (WebCore::CCLayerTreeHost::recreateContext):
2685         (WebCore::CCLayerTreeHost::createContext):
2686         * platform/graphics/chromium/cc/CCLayerTreeHost.h:
2687         (WebCore):
2688         (CCLayerTreeHostClient):
2689         (WebCore::CCLayerTreeSettings::CCLayerTreeSettings):
2690         (CCLayerTreeSettings):
2691         * platform/graphics/chromium/cc/CCLayerTreeHostImpl.cpp:
2692         (WebCore::CCLayerTreeHostImpl::initializeLayerRenderer):
2693         * platform/graphics/chromium/cc/CCLayerTreeHostImpl.h:
2694         (CCLayerTreeHostImplClient):
2695         * platform/graphics/chromium/cc/CCProxy.h:
2696         (WebCore):
2697         * platform/graphics/chromium/cc/CCRenderer.h:
2698         (CCRendererClient):
2699         * platform/graphics/chromium/cc/CCResourceProvider.cpp:
2700         * platform/graphics/chromium/cc/CCResourceProvider.h:
2701         (WebCore):
2702         * platform/graphics/chromium/cc/CCSingleThreadProxy.h:
2703         * platform/graphics/chromium/cc/CCThreadProxy.cpp:
2704         (WebCore::CCThreadProxy::recreateContext):
2705         (WebCore::CCThreadProxy::beginFrame):
2706         * platform/graphics/chromium/cc/CCThreadProxy.h:
2707
2708 2012-08-09  Kentaro Hara  <haraken@chromium.org>
2709
2710         [V8] Remove V8Proxy::throwError(ExceptionCode&)
2711         https://bugs.webkit.org/show_bug.cgi?id=93605
2712
2713         Reviewed by Adam Barth.
2714
2715         (1) Pass Isolate around to V8Utilities::extractTransferables().
2716         (2) Replace throwError(ExceptionCode&) in V8Utilities::extractTransferables()
2717         with setDOMException(ExceptionCode&, Isolate*), which completely removes
2718         V8Proxy::throwError(ExceptionCode&) from the code base.
2719         (3) Remove V8Proxy::throwError(ExceptionCode&).
2720
2721         No tests. No change in behavior.
2722
2723         * bindings/scripts/CodeGeneratorV8.pm:
2724         (GenerateParametersCheck):
2725         * bindings/scripts/test/V8/V8TestSerializedScriptValueInterface.cpp:
2726         (WebCore::TestSerializedScriptValueInterfaceV8Internal::acceptTransferListCallback):
2727         (WebCore::TestSerializedScriptValueInterfaceV8Internal::multiTransferListCallback):
2728         (WebCore::V8TestSerializedScriptValueInterface::constructorCallback):
2729         * bindings/v8/Dictionary.cpp:
2730         (WebCore::Dictionary::get):
2731         * bindings/v8/V8Proxy.h:
2732         (WebCore):
2733         * bindings/v8/V8Utilities.cpp:
2734         (WebCore::extractTransferables):
2735         (WebCore::getMessagePortArray):
2736         * bindings/v8/V8Utilities.h:
2737         (WebCore):
2738         * bindings/v8/custom/V8DOMWindowCustom.cpp:
2739         (WebCore::handlePostMessageCallback):
2740         * bindings/v8/custom/V8DedicatedWorkerContextCustom.cpp:
2741         (WebCore::handlePostMessageCallback):
2742         * bindings/v8/custom/V8IntentConstructor.cpp:
2743         (WebCore::V8Intent::constructorCallback):
2744         * bindings/v8/custom/V8MessageEventCustom.cpp:
2745         (WebCore::V8MessageEvent::initMessageEventCallback):
2746         * bindings/v8/custom/V8MessagePortCustom.cpp:
2747         (WebCore::handlePostMessageCallback):
2748         * bindings/v8/custom/V8WorkerCustom.cpp:
2749         (WebCore::handlePostMessageCallback):
2750
2751 2012-08-09  Kentaro Hara  <haraken@chromium.org>
2752
2753         [V8] Rename V8BindingPerIsolateData to V8PerIsolateData
2754         https://bugs.webkit.org/show_bug.cgi?id=93592
2755
2756         Reviewed by Adam Barth.
2757
2758         For a better name. See discussion in bug 93333.
2759
2760         No tests. No change in behavior.
2761
2762         * UseV8.cmake:
2763         * WebCore.gypi:
2764         * bindings/scripts/CodeGeneratorV8.pm:
2765         (GenerateImplementation):
2766         * bindings/scripts/test/V8/V8Float64Array.cpp:
2767         (WebCore::V8Float64Array::GetRawTemplate):
2768         (WebCore::V8Float64Array::GetTemplate):
2769         * bindings/scripts/test/V8/V8TestActiveDOMObject.cpp:
2770         (WebCore::V8TestActiveDOMObject::GetRawTemplate):
2771         (WebCore::V8TestActiveDOMObject::GetTemplate):
2772         * bindings/scripts/test/V8/V8TestCustomNamedGetter.cpp:
2773         (WebCore::V8TestCustomNamedGetter::GetRawTemplate):
2774         (WebCore::V8TestCustomNamedGetter::GetTemplate):
2775         * bindings/scripts/test/V8/V8TestEventConstructor.cpp:
2776         (WebCore::V8TestEventConstructor::GetRawTemplate):
2777         (WebCore::V8TestEventConstructor::GetTemplate):
2778         * bindings/scripts/test/V8/V8TestEventTarget.cpp:
2779         (WebCore::V8TestEventTarget::GetRawTemplate):
2780         (WebCore::V8TestEventTarget::GetTemplate):
2781         * bindings/scripts/test/V8/V8TestException.cpp:
2782         (WebCore::V8TestException::GetRawTemplate):
2783         (WebCore::V8TestException::GetTemplate):
2784         * bindings/scripts/test/V8/V8TestInterface.cpp:
2785         (WebCore::V8TestInterface::GetRawTemplate):
2786         (WebCore::V8TestInterface::GetTemplate):
2787         * bindings/scripts/test/V8/V8TestMediaQueryListListener.cpp:
2788         (WebCore::V8TestMediaQueryListListener::GetRawTemplate):
2789         (WebCore::V8TestMediaQueryListListener::GetTemplate):
2790         * bindings/scripts/test/V8/V8TestNamedConstructor.cpp:
2791         (WebCore::V8TestNamedConstructor::GetRawTemplate):
2792         (WebCore::V8TestNamedConstructor::GetTemplate):
2793         * bindings/scripts/test/V8/V8TestNode.cpp:
2794         (WebCore::V8TestNode::GetRawTemplate):
2795         (WebCore::V8TestNode::GetTemplate):
2796         * bindings/scripts/test/V8/V8TestObj.cpp:
2797         (WebCore::V8TestObj::GetRawTemplate):
2798         (WebCore::V8TestObj::GetTemplate):
2799         * bindings/scripts/test/V8/V8TestSerializedScriptValueInterface.cpp:
2800         (WebCore::V8TestSerializedScriptValueInterface::GetRawTemplate):
2801         (WebCore::V8TestSerializedScriptValueInterface::GetTemplate):
2802         * bindings/v8/DOMData.cpp:
2803         (WebCore::DOMData::getCurrentStore):
2804         * bindings/v8/DOMDataStore.cpp:
2805         (WebCore::DOMDataStore::allStores):
2806         * bindings/v8/ScriptGCEvent.cpp:
2807         (WebCore::isolateGCEventData):
2808         * bindings/v8/ScriptProfiler.cpp:
2809         (WebCore::ScriptProfiler::visitExternalStrings):
2810         (WebCore::ScriptProfiler::collectBindingMemoryInfo):
2811         * bindings/v8/StaticDOMDataStore.cpp:
2812         (WebCore::StaticDOMDataStore::StaticDOMDataStore):
2813         (WebCore::StaticDOMDataStore::~StaticDOMDataStore):
2814         * bindings/v8/V8Binding.cpp:
2815         (WebCore::V8PerIsolateData::visitExternalStrings):
2816         (WebCore::getToStringName):
2817         (WebCore::getToStringTemplate):
2818         * bindings/v8/V8Binding.h:
2819         (WebCore::ConstructorMode::ConstructorMode):
2820         (WebCore::ConstructorMode::~ConstructorMode):
2821         (WebCore::ConstructorMode::current):
2822         (WebCore::v8ExternalString):
2823         (WebCore::v8Integer):
2824         (WebCore::v8UnsignedInteger):
2825         * bindings/v8/V8DOMMap.cpp:
2826         (WebCore::DOMDataStoreHandle::DOMDataStoreHandle):
2827         (WebCore::DOMDataStoreHandle::~DOMDataStoreHandle):
2828         * bindings/v8/V8DOMWindowShell.cpp:
2829         (WebCore::V8DOMWindowShell::initContextIfNeeded):
2830         * bindings/v8/V8GCController.cpp:
2831         (WebCore::currentGlobalHandleMap):
2832         (WebCore::V8GCController::gcPrologue):
2833         * bindings/v8/V8HiddenPropertyName.cpp:
2834         (WebCore):
2835         * bindings/v8/V8LazyEventListener.cpp:
2836         (WebCore::V8LazyEventListener::prepareListenerObject):
2837         * bindings/v8/V8PerIsolateData.cpp: Renamed from Source/WebCore/bindings/v8/V8BindingPerIsolateData.cpp.
2838         (WebCore):
2839         (WebCore::V8PerIsolateData::V8PerIsolateData):
2840         (WebCore::V8PerIsolateData::~V8PerIsolateData):
2841         (WebCore::V8PerIsolateData::create):
2842         (WebCore::V8PerIsolateData::ensureInitialized):
2843         (WebCore::V8PerIsolateData::dispose):
2844         (WebCore::V8PerIsolateData::reportMemoryUsage):
2845         * bindings/v8/V8PerIsolateData.h: Renamed from Source/WebCore/bindings/v8/V8BindingPerIsolateData.h.
2846         (WebCore):
2847         (V8PerIsolateData):
2848         (WebCore::V8PerIsolateData::current):
2849         (WebCore::V8PerIsolateData::rawTemplateMap):
2850         (WebCore::V8PerIsolateData::templateMap):
2851         (WebCore::V8PerIsolateData::toStringName):
2852         (WebCore::V8PerIsolateData::toStringTemplate):
2853         (WebCore::V8PerIsolateData::lazyEventListenerToStringTemplate):
2854         (WebCore::V8PerIsolateData::stringCache):
2855         (WebCore::V8PerIsolateData::integerCache):
2856         (WebCore::V8PerIsolateData::allStores):
2857         (WebCore::V8PerIsolateData::hiddenPropertyName):
2858         (WebCore::V8PerIsolateData::auxiliaryContext):
2859         (WebCore::V8PerIsolateData::registerDOMDataStore):
2860         (WebCore::V8PerIsolateData::unregisterDOMDataStore):
2861         (WebCore::V8PerIsolateData::domDataStore):
2862         (WebCore::V8PerIsolateData::setDOMDataStore):
2863         (WebCore::V8PerIsolateData::recursionLevel):
2864         (WebCore::V8PerIsolateData::incrementRecursionLevel):
2865         (WebCore::V8PerIsolateData::decrementRecursionLevel):
2866         (WebCore::V8PerIsolateData::globalHandleMap):
2867         (WebCore::V8PerIsolateData::internalScriptRecursionLevel):
2868         (WebCore::V8PerIsolateData::incrementInternalScriptRecursionLevel):
2869         (WebCore::V8PerIsolateData::decrementInternalScriptRecursionLevel):
2870         (WebCore::V8PerIsolateData::gcEventData):
2871         (WebCore::V8PerIsolateData::setShouldCollectGarbageSoon):
2872         (WebCore::V8PerIsolateData::clearShouldCollectGarbageSoon):
2873         (WebCore::V8PerIsolateData::shouldCollectGarbageSoon):
2874         * bindings/v8/V8Proxy.cpp:
2875         (WebCore::V8Proxy::hintForGCIfNecessary):
2876         * bindings/v8/V8RecursionScope.h:
2877         (WebCore::V8RecursionScope::V8RecursionScope):
2878         (WebCore::V8RecursionScope::~V8RecursionScope):
2879         (WebCore::V8RecursionScope::recursionLevel):
2880         (WebCore::V8RecursionScope::properlyUsed):
2881         (WebCore::V8RecursionScope::MicrotaskSuppression::MicrotaskSuppression):
2882         (WebCore::V8RecursionScope::MicrotaskSuppression::~MicrotaskSuppression):
2883         * bindings/v8/V8Utilities.cpp:
2884         (WebCore::V8AuxiliaryContext::auxiliaryContext):
2885         * bindings/v8/V8ValueCache.cpp:
2886         (WebCore::cachedStringCallback):
2887         * bindings/v8/WorkerContextExecutionProxy.cpp:
2888         (WebCore::WorkerContextExecutionProxy::initIsolate):
2889         * bindings/v8/WorkerScriptController.cpp:
2890         (WebCore::WorkerScriptController::WorkerScriptController):
2891         (WebCore::WorkerScriptController::~WorkerScriptController):
2892         * bindings/v8/custom/V8HTMLCanvasElementCustom.cpp:
2893         (WebCore::V8HTMLCanvasElement::getContextCallback):
2894
2895 2012-08-09  Mike West  <mkwst@chromium.org>
2896
2897         Invalid Content Security Policy sources should generate console warnings.
2898         https://bugs.webkit.org/show_bug.cgi?id=93599
2899
2900         Reviewed by Adam Barth.
2901
2902         Given a Content Security Policy directive, we're currently correctly
2903         ignoring sources that we can't parse: "'slef'", "http:///", etc. have
2904         no effect on the protected resource's active policy. We're not, however
2905         telling the developer what we're doing, which can lead to confusion.
2906         This patch adds a console warning whenever an invalid source expression
2907         is encountered while parsing a directive in order to make WebKit's
2908         behavior more transparent to the developer.
2909
2910         There should be no functional change as a result of this patch: the
2911         policy should be parsed exactly as before, it should simply be more
2912         verbose.
2913
2914         Test: http/tests/security/contentSecurityPolicy/source-list-parsing-07.html
2915
2916         * page/ContentSecurityPolicy.cpp:
2917         (WebCore::CSPSourceList::parse):
2918             Two changes: First, if 'parseSource' returns false, then log a
2919             warning to the developer's console. Second, if both the source and
2920             host are empty, but parsing succeeded, then we know we're dealing
2921             with either a wildcard- or keyword-source that was properly handled
2922             inside 'parseSource', so jump to the next source.
2923         (WebCore::CSPSourceList::parseSource):
2924             Wildcard- and keyword-sources now return 'true'. They parsed
2925             correctly, after all.
2926         (WebCore::ContentSecurityPolicy::reportInvalidSourceExpression):
2927             Log a console warning if an invalid source expression is present in
2928             a CSP directive's value.
2929         (WebCore):
2930         * page/ContentSecurityPolicy.h:
2931
2932 2012-08-06  Nat Duca  <nduca@chromium.org>
2933
2934         [chromium] Expose CCGraphicsContext as WebCompositorOutputSurface
2935         https://bugs.webkit.org/show_bug.cgi?id=92890
2936
2937         Reviewed by James Robinson.
2938
2939         * platform/graphics/chromium/cc/CCGraphicsContext.h:
2940         (WebCore):
2941         * platform/graphics/chromium/cc/CCLayerTreeHost.cpp:
2942         (WebCore::CCLayerTreeHost::initializeLayerRenderer):
2943         (WebCore::CCLayerTreeHost::recreateContext):
2944         (WebCore::CCLayerTreeHost::createContext):
2945         * platform/graphics/chromium/cc/CCLayerTreeHost.h:
2946         (WebCore):
2947         (CCLayerTreeHostClient):
2948         (WebCore::CCLayerTreeSettings::CCLayerTreeSettings):
2949         (CCLayerTreeSettings):
2950         * platform/graphics/chromium/cc/CCLayerTreeHostImpl.cpp:
2951         (WebCore::CCLayerTreeHostImpl::onVSyncParametersChanged):
2952         (WebCore):
2953         (WebCore::CCLayerTreeHostImpl::initializeLayerRenderer):
2954         * platform/graphics/chromium/cc/CCLayerTreeHostImpl.h:
2955         (CCLayerTreeHostImplClient):
2956         * platform/graphics/chromium/cc/CCProxy.h:
2957         (WebKit):
2958         (WebCore):
2959         * platform/graphics/chromium/cc/CCRenderer.h:
2960         (CCRendererClient):
2961         (WebCore::CCRendererClient::~CCRendererClient):
2962         * platform/graphics/chromium/cc/CCResourceProvider.cpp:
2963         * platform/graphics/chromium/cc/CCResourceProvider.h:
2964         * platform/graphics/chromium/cc/CCSingleThreadProxy.h:
2965         * platform/graphics/chromium/cc/CCThreadProxy.cpp:
2966         (WebCore::CCThreadProxy::recreateContext):
2967         (WebCore::CCThreadProxy::onVSyncParametersChanged):
2968         (WebCore):
2969         (WebCore::CCThreadProxy::beginFrame):
2970         * platform/graphics/chromium/cc/CCThreadProxy.h:
2971
2972 2012-08-09  Bruno de Oliveira Abinader  <bruno.abinader@basyskom.com>
2973
2974         [css3-text] Add suport for -webkit-text-decoration-line
2975         https://bugs.webkit.org/show_bug.cgi?id=90959
2976
2977         Reviewed by Kenneth Rohde Christiansen.
2978
2979         This patch implements the "text-decoration-line" property specified in CSS3
2980         working draft, with "-webkit-" prefix. The specification can be found below:
2981         http://dev.w3.org/csswg/css3-text/#text-decoration-line
2982
2983         Additionally, Mozilla implementation details can be found here:
2984         https://developer-dev.allizom.org/en-US/docs/CSS/text-decoration-line
2985
2986         It is important to notice that "-webkit-text-decoration-line" and
2987         "text-decoration" properties shares the same property handlers, however, the
2988         former resets the latter if value from latter doesn't have "important" value
2989         set (same behavior as Firefox). In a rare case where both properties have
2990         "important" value set, the text decoration gets value from the last parsed
2991         property.
2992
2993         Test: fast/css/text-decoration-line.html
2994
2995         * css/CSSComputedStyleDeclaration.cpp:
2996         (WebCore::renderTextDecorationFlagsToCSSValue):
2997         (WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue):
2998         * css/CSSParser.cpp:
2999         (WebCore::CSSParser::parseValue):
3000         (WebCore::CSSParser::addTextDecorationProperty):
3001         (WebCore::CSSParser::parseTextDecoration):
3002         * css/CSSParser.h:
3003         * css/CSSProperty.cpp:
3004         (WebCore::CSSProperty::isInheritedProperty):
3005         * css/CSSPropertyNames.in:
3006         * css/StyleBuilder.cpp:
3007         (WebCore::StyleBuilder::StyleBuilder):
3008         * css/StyleResolver.cpp:
3009         (WebCore::StyleResolver::collectMatchingRulesForList):
3010
3011 2012-08-09  Huang Dongsung  <luxtella@company100.net>
3012
3013         Extract the definition of NativeImagePtr from ImageSource.h into NativeImagePtr.h.
3014         https://bugs.webkit.org/show_bug.cgi?id=93466
3015
3016         Reviewed by Adam Barth.
3017
3018         Image.h includes ImageSource.h in order to know the definition of NativeImagePtr.
3019         But Image does not need to know the definition of ImageSource. So, this patch
3020         extracts the definition of NativeImagePtr from ImageSource.h into NativeImagePtr.h.
3021
3022         This is a preparation for asynchronous image decoding. Async decoding
3023         will need a callback function, which sends a NativeImagePtr to clients, and the
3024         callback must know the definition of NativeImagePtr, not ImageSource.
3025
3026         No new tests, behavior is unchanged.
3027
3028         * GNUmakefile.list.am:
3029         * Target.pri:
3030         * WebCore.gypi:
3031         * WebCore.vcproj/WebCore.vcproj:
3032         * WebCore.xcodeproj/project.pbxproj:
3033         * platform/graphics/BitmapImage.h:
3034         * platform/graphics/Image.h:
3035         * platform/graphics/ImageSource.h:
3036         (WebCore):
3037         * platform/graphics/NativeImagePtr.h: Added.
3038         (WebCore):
3039
3040 2012-08-09  Robert Hogan  <robert@webkit.org>
3041
3042         CSS 2.1 failure: 'Text-indent' only affects a line if it is the first formatted line of an element
3043         https://bugs.webkit.org/show_bug.cgi?id=63185
3044
3045         Reviewed by Eric Seidel.
3046
3047         Per CSS 2.1 (http://www.w3.org/TR/CSS21/text.html) : "'Text-indent' only affects a line if it is the 
3048         first formatted line of an element. For example, the first line of an anonymous block box is only 
3049         affected if it is the first child of its parent element."
3050
3051         Tests: fast/css/text-indent-first-line-001.html
3052                fast/css/text-indent-first-line-002.html
3053                fast/css/text-indent-first-line-003.html
3054                fast/css/text-indent-first-line-004.html
3055                fast/css/text-indent-first-line-005.html
3056                fast/css/text-indent-first-line-006.html
3057
3058         * rendering/RenderBlockLineLayout.cpp:
3059         (WebCore::RenderBlock::computeInlineDirectionPositionsForLine): As well as being the first line under a parent block,
3060           check that this is also the first *formatted* line of an element by ensuring that we are at the start of a 
3061           formatting context and not just a continuation of a previous anonymous block in an existing formatting context.
3062
3063 2012-08-09  Jan Keromnes  <janx@linux.com>
3064
3065         Web Inspector: replace the Web Inspector editor with CodeMirror
3066         https://bugs.webkit.org/show_bug.cgi?id=92769
3067
3068         Reviewed by Pavel Feldman.
3069
3070         Integrating CodeMirror as a devtools experiment. Currently supporting
3071         basic editing, search/replacing, and saving. Missing proper breakpoints
3072         wiring, debugging, message bubbles, popovers and context menus. WIP.
3073
3074         * WebCore.gypi:
3075         * WebCore.vcproj/WebCore.vcproj:
3076         * inspector/compile-front-end.py:
3077         * inspector/front-end/CodeMirrorTextEditor.js: Added.
3078         (WebInspector.CodeMirrorTextEditor.this._codeMirror.CodeMirror):
3079         (WebInspector.CodeMirrorTextEditor):
3080         (WebInspector.CodeMirrorTextEditor.prototype.set mimeType):
3081         (WebInspector.CodeMirrorTextEditor.prototype.setReadOnly):
3082         (WebInspector.CodeMirrorTextEditor.prototype.readOnly):
3083         (WebInspector.CodeMirrorTextEditor.prototype.defaultFocusedElement):
3084         (WebInspector.CodeMirrorTextEditor.prototype.focus):
3085         (WebInspector.CodeMirrorTextEditor.prototype.revealLine):
3086         (WebInspector.CodeMirrorTextEditor.prototype.addDecoration):
3087         (WebInspector.CodeMirrorTextEditor.prototype.removeDecoration):
3088         (WebInspector.CodeMirrorTextEditor.prototype.markAndRevealRange):
3089         (WebInspector.CodeMirrorTextEditor.prototype.highlightLine):
3090         (WebInspector.CodeMirrorTextEditor.prototype.clearLineHighlight):
3091         (WebInspector.CodeMirrorTextEditor.prototype.freeCachedElements):
3092         (WebInspector.CodeMirrorTextEditor.prototype.elementsToRestoreScrollPositionsFor):
3093         (WebInspector.CodeMirrorTextEditor.prototype.inheritScrollPositions):
3094         (WebInspector.CodeMirrorTextEditor.prototype.beginUpdates):
3095         (WebInspector.CodeMirrorTextEditor.prototype.endUpdates):
3096         (WebInspector.CodeMirrorTextEditor.prototype.onResize):
3097         (WebInspector.CodeMirrorTextEditor.prototype.editRange):
3098         (WebInspector.CodeMirrorTextEditor.prototype._onChange):
3099         (WebInspector.CodeMirrorTextEditor.prototype._commitEditing):
3100         (WebInspector.CodeMirrorTextEditor.prototype.scrollToLine):
3101         (WebInspector.CodeMirrorTextEditor.prototype.selection):
3102         (WebInspector.CodeMirrorTextEditor.prototype.lastSelection):
3103         (WebInspector.CodeMirrorTextEditor.prototype.setSelection):
3104         (WebInspector.CodeMirrorTextEditor.prototype.setText):
3105         (WebInspector.CodeMirrorTextEditor.prototype.text):
3106         (WebInspector.CodeMirrorTextEditor.prototype.range):
3107         (WebInspector.CodeMirrorTextEditor.prototype.line):
3108         (WebInspector.CodeMirrorTextEditor.prototype.get linesCount):
3109         (WebInspector.CodeMirrorTextEditor.prototype.setAttribute):
3110         (WebInspector.CodeMirrorTextEditor.prototype.getAttribute):
3111         (WebInspector.CodeMirrorTextEditor.prototype.removeAttribute):
3112         (WebInspector.CodeMirrorTextEditor.prototype.wasShown):
3113         (WebInspector.CodeMirrorTextEditor.prototype.willHide):
3114         (WebInspector.CodeMirrorTextEditor.prototype._textChanged):
3115         (WebInspector.CodeMirrorTextEditor.prototype._toPos):
3116         (WebInspector.CodeMirrorTextEditor.prototype._toRange):
3117         * inspector/front-end/Settings.js:
3118         (WebInspector.ExperimentsSettings):
3119         * inspector/front-end/SourceFrame.js:
3120         (WebInspector.SourceFrame):
3121         * inspector/front-end/WebKit.qrc:
3122         * inspector/front-end/cmdevtools.css: Added.
3123         * inspector/front-end/inspector.html:
3124
3125 2012-08-09  Dana Jansens  <danakj@chromium.org>
3126
3127         [chromium] Do partial-swap scissoring on quads during draw instead of on layers
3128         https://bugs.webkit.org/show_bug.cgi?id=91800
3129
3130         Reviewed by Adrienne Walker.
3131
3132         Computing the scissor rect for each render pass is now done in
3133         LayerRendererChromium::drawRenderPass() instead of being done for each
3134         layer and then copied into the quads. This allows us to always push a
3135         full frame of quads (and include damage rects) from a child compositor,
3136         and do partial-swap scissoring in the host compositor.
3137
3138         This also make partial-swap functionality completely contained within
3139         LayerRendererChromium!
3140
3141         The scissorRect is removed from all layers, and the concept of
3142         scissorRect is now misplaced in CCOcclusionTracker, so the variables
3143         and methods in the tracker should be renamed to more appropriate
3144         things.
3145
3146         Covered by existing tests, as well as: CCLayerTreeHostImplTest.textureCachingWithScissor
3147
3148         * platform/graphics/chromium/LayerChromium.h:
3149         (LayerChromium):
3150         * platform/graphics/chromium/LayerRendererChromium.cpp:
3151         (WebCore::LayerRendererChromium::clearFramebuffer):
3152         (WebCore::LayerRendererChromium::renderPassTextureSize):
3153         (WebCore::LayerRendererChromium::drawFrame):
3154         (WebCore::LayerRendererChromium::drawRenderPass):
3155         (WebCore::LayerRendererChromium::drawQuad):
3156         (WebCore::LayerRendererChromium::drawDebugBorderQuad):
3157         (WebCore::LayerRendererChromium::drawBackgroundFilters):
3158         (WebCore::LayerRendererChromium::drawTileQuad):
3159         (WebCore::LayerRendererChromium::swapBuffers):
3160         (WebCore::LayerRendererChromium::useRenderPass):
3161         (WebCore::LayerRendererChromium::setScissorToRect):
3162         * platform/graphics/chromium/LayerRendererChromium.h:
3163         (LayerRendererChromium):
3164         (DrawingFrame):
3165         * platform/graphics/chromium/RenderSurfaceChromium.cpp:
3166         * platform/graphics/chromium/RenderSurfaceChromium.h:
3167         (RenderSurfaceChromium):
3168         * platform/graphics/chromium/cc/CCDrawQuad.h:
3169         (WebCore::CCDrawQuad::clippedRectInTarget):
3170         * platform/graphics/chromium/cc/CCLayerImpl.cpp:
3171         (WebCore::CCLayerImpl::createSharedQuadState):
3172         * platform/graphics/chromium/cc/CCLayerImpl.h:
3173         (CCLayerImpl):
3174         * platform/graphics/chromium/cc/CCLayerTreeHost.cpp:
3175         (WebCore::CCLayerTreeHost::updateLayers):
3176         (WebCore::CCLayerTreeHost::paintLayerContents):
3177         * platform/graphics/chromium/cc/CCLayerTreeHostCommon.cpp:
3178         (WebCore::calculateVisibleRectsInternal):
3179         (WebCore::CCLayerTreeHostCommon::calculateVisibleRects):
3180         * platform/graphics/chromium/cc/CCLayerTreeHostCommon.h:
3181         (CCLayerTreeHostCommon):
3182         * platform/graphics/chromium/cc/CCLayerTreeHostImpl.cpp:
3183         (WebCore::CCLayerTreeHostImpl::calculateRenderSurfaceLayerList):
3184         (WebCore::CCLayerTreeHostImpl::calculateRenderPasses):
3185         (WebCore::CCLayerTreeHostImpl::drawLayers):
3186         (WebCore::CCLayerTreeHostImpl::swapBuffers):
3187         * platform/graphics/chromium/cc/CCLayerTreeHostImpl.h:
3188         (CCLayerTreeHostImpl):
3189         * platform/graphics/chromium/cc/CCOcclusionTracker.cpp:
3190         (WebCore::::layerScissorRectInTargetSurface):
3191         * platform/graphics/chromium/cc/CCRenderPass.cpp:
3192         (WebCore::CCRenderPass::CCRenderPass):
3193         (WebCore::CCRenderPass::appendQuadsToFillScreen):
3194         * platform/graphics/chromium/cc/CCRenderPass.h:
3195         (CCRenderPass):
3196         (WebCore::CCRenderPass::transformToRootTarget):
3197         (WebCore::CCRenderPass::outputRect):
3198         (WebCore::CCRenderPass::damageRect):
3199         (WebCore::CCRenderPass::setDamageRect):
3200         * platform/graphics/chromium/cc/CCRenderSurface.cpp:
3201         (WebCore::computeClippedRectInTarget):
3202         (WebCore):
3203         (WebCore::CCRenderSurface::createSharedQuadState):
3204         (WebCore::CCRenderSurface::createReplicaSharedQuadState):
3205         * platform/graphics/chromium/cc/CCRenderSurface.h:
3206         (CCRenderSurface):
3207         * platform/graphics/chromium/cc/CCRenderer.h:
3208         (CCRenderer):
3209         * platform/graphics/chromium/cc/CCSharedQuadState.cpp:
3210         (WebCore::CCSharedQuadState::create):
3211         (WebCore::CCSharedQuadState::CCSharedQuadState):
3212         * platform/graphics/chromium/cc/CCSharedQuadState.h:
3213         (CCSharedQuadState):
3214         * platform/graphics/chromium/cc/CCTiledLayerImpl.cpp:
3215         (WebCore::CCTiledLayerImpl::appendQuads):
3216
3217 2012-08-09  Mike West  <mkwst@chromium.org>
3218
3219         Content Security Policy directives that begin with an invalid character should log a console warning.
3220         https://bugs.webkit.org/show_bug.cgi?id=93622
3221
3222         Reviewed by Adam Barth.
3223
3224         CSP directives containing unrecognized characters somewhere in the
3225         middle were caught and logged by the current algorithm. We additionally
3226         caught the case in which the directive begins with an invalid character,
3227         but we silently ignored it. Now we're slightly more vocal.
3228
3229         This change also exits 'parseDirective' early in the case where the
3230         directive text is empty, or filled only with whitespace. There doesn't
3231         seem to be any value in flagging that case, as it has no impact on the
3232         way the policy would have been interpreted (that is, 'img-src *;;...'
3233         doesn't change in meaning by ignoring the empty directive between the
3234         semicolons).
3235
3236         Test: http/tests/security/contentSecurityPolicy/directive-parsing-05.html
3237
3238         * page/ContentSecurityPolicy.cpp:
3239         (WebCore::CSPDirectiveList::parseDirective):
3240             Two changes: first, we now exit early if the entire directive text
3241             is empty (e.g. ';;;' or ';      ;'); second, if the directive begins
3242             with a character that doesn't match 'isDirectiveNameCharacter', then
3243             we advance either to the next space, or the end of the value, and
3244             report an unrecognized directive to the policy.
3245
3246 2012-08-09  Shawn Singh  <shawnsingh@chromium.org>
3247
3248         [chromium] Pass mask scale and offset to shaders for correct masking
3249         https://bugs.webkit.org/show_bug.cgi?id=93558
3250
3251         Reviewed by Adrienne Walker.
3252
3253         In chromium compositor code, the mask was accidentally mapped 1:1
3254         to the layer's renderSurface, rather than the layer itself. This
3255         patch adds a layout test that reproduces the error and fixes the
3256         problem. The solution we opted for in this patch is to pass a
3257         scale and offset to the fragment shader, so that the correct
3258         texture coordinate lookup is computed by the fragment shader.
3259
3260         Test: compositing/masks/mask-of-clipped-layer.html
3261
3262         * platform/graphics/chromium/LayerRendererChromium.cpp:
3263         (WebCore::LayerRendererChromium::drawRenderPassQuad):
3264         * platform/graphics/chromium/ShaderChromium.cpp:
3265         (WebCore::FragmentShaderRGBATexAlphaMask::FragmentShaderRGBATexAlphaMask):
3266         (WebCore::FragmentShaderRGBATexAlphaMask::init):
3267         (WebCore::FragmentShaderRGBATexAlphaMask::getShaderString):
3268         (WebCore::FragmentShaderRGBATexAlphaMaskAA::FragmentShaderRGBATexAlphaMaskAA):
3269         (WebCore::FragmentShaderRGBATexAlphaMaskAA::init):
3270         (WebCore::FragmentShaderRGBATexAlphaMaskAA::getShaderString):
3271         * platform/graphics/chromium/ShaderChromium.h:
3272         (WebCore::FragmentShaderRGBATexAlphaMask::maskTexCoordScaleLocation):
3273         (WebCore::FragmentShaderRGBATexAlphaMask::maskTexCoordOffsetLocation):
3274         (FragmentShaderRGBATexAlphaMask):
3275         (WebCore::FragmentShaderRGBATexAlphaMaskAA::maskTexCoordScaleLocation):
3276         (WebCore::FragmentShaderRGBATexAlphaMaskAA::maskTexCoordOffsetLocation):
3277         (FragmentShaderRGBATexAlphaMaskAA):
3278         * platform/graphics/chromium/cc/CCRenderPassDrawQuad.cpp:
3279         (WebCore::CCRenderPassDrawQuad::create):
3280         (WebCore::CCRenderPassDrawQuad::CCRenderPassDrawQuad):
3281         * platform/graphics/chromium/cc/CCRenderPassDrawQuad.h:
3282         (CCRenderPassDrawQuad):
3283         (WebCore::CCRenderPassDrawQuad::maskTexCoordScaleX):
3284         (WebCore::CCRenderPassDrawQuad::maskTexCoordScaleY):
3285         (WebCore::CCRenderPassDrawQuad::maskTexCoordOffsetX):
3286         (WebCore::CCRenderPassDrawQuad::maskTexCoordOffsetY):
3287         * platform/graphics/chromium/cc/CCRenderSurface.cpp:
3288         (WebCore::CCRenderSurface::appendQuads):
3289
3290 2012-08-09  Mihnea Ovidenie  <mihnea@adobe.com>
3291
3292         CSSRegions: Crash when attaching a region to the removed named flow
3293         https://bugs.webkit.org/show_bug.cgi?id=93204
3294
3295         Reviewed by Abhishek Arya.
3296
3297         The crash happens because the flow thread reference is passed to the RenderRegion object
3298         when the RenderRegion object is created. However, it is only in RenderRegion::attachRegion method
3299         when the region is taken into account and stored in flow thread regions list. Under these circumstances,
3300         it is possible that the flow thread passed to the region at the moment of region creation be destroyed
3301         before the region gets the chance to be attached to the flow thread and a crash will occur.
3302
3303         This patch moves the moment when the RenderRegion object stores its 'weak' reference to the flow thread
3304         from RenderRegion constructor to attachRegion method, preventing the situation in which the region is attached
3305         to a wrong flow thread object.
3306
3307         Test: fast/regions/region-attached-wrong-flow-crash.html
3308
3309         * rendering/RenderObject.cpp:
3310         (WebCore::RenderObject::createObject): Pass 0 instead of a reference to the flow thread.
3311         * rendering/RenderRegion.cpp:
3312         (WebCore::RenderRegion::checkRegionStyle): Added this function to check whether the region has region style rules attached.
3313         (WebCore):
3314         (WebCore::RenderRegion::styleDidChange): Use checkRegionStyle.
3315         (WebCore::RenderRegion::attachRegion): Store the reference to the flow thread. If the flow thread does not exist, it will be created.
3316         Also, check whether the region has region style rules attached, since at this moment the region has a flow thread. Checking whether
3317         the region has region style rules is not enough in styleDidChange, because styleDidChange is sometimes triggered before attachRegion.
3318         * rendering/RenderRegion.h:
3319         (RenderRegion):
3320
3321 2012-08-09  Iain Merrick  <husky@chromium.org>
3322
3323         [chromium] Enable kerning on Android
3324         https://bugs.webkit.org/show_bug.cgi?id=92737
3325
3326         Reviewed by Adam Barth.
3327
3328         This #ifdef was incorrectly copied from our forked WebKit repository
3329         while unforking our Android-specific changes. Kerning works without
3330         any known problems.
3331
3332         Covered by existing tests (layout and instrumentation tests).
3333
3334         * platform/graphics/harfbuzz/ComplexTextControllerHarfBuzz.cpp:
3335         (WebCore::ComplexTextController::ComplexTextController):
3336
3337 2012-08-09  'Pavel Feldman'  <pfeldman@chromium.org>
3338
3339         Web Inspector: follow up to r125174 - fix subtype use.
3340
3341         Not reviewed, trivial fix.
3342
3343         * inspector/InjectedScriptSource.js:
3344         (.):
3345
3346 2012-08-09  Yury Semikhatsky  <yurys@chromium.org>
3347
3348         Web Inspector: DocumentEventQueue memory instrumentation
3349         https://bugs.webkit.org/show_bug.cgi?id=93604
3350
3351         Reviewed by Pavel Feldman.
3352
3353         Provided DocumentEventQueue:: reportMemoryUsage implementation.
3354
3355         * dom/Document.cpp:
3356         (WebCore::Document::reportMemoryUsage):
3357         * dom/DocumentEventQueue.cpp:
3358         (WebCore::DocumentEventQueue::reportMemoryUsage):
3359         (WebCore):
3360         * dom/DocumentEventQueue.h:
3361         (WebCore):
3362         * dom/Event.cpp:
3363         (WebCore::Event::reportMemoryUsage):
3364         (WebCore):
3365         * dom/Event.h:
3366         (WebCore):
3367         (Event):
3368
3369 2012-08-09  Pavel Feldman  <pfeldman@chromium.org>
3370
3371         Web Inspector: add codemirror library as an experiment
3372         https://bugs.webkit.org/show_bug.cgi?id=93620
3373
3374         Reviewed by Vsevolod Vlasov.
3375
3376         This change adds codemirror, deploys it, but does not include it into the inspector.html. Clients need to fetch it
3377         using XHR and eval into the inspector's context to use as a part of their experiments.
3378
3379         * WebCore.gypi:
3380         * WebCore.vcproj/WebCore.vcproj:
3381         * inspector/front-end/WebKit.qrc:
3382         * inspector/front-end/cm/LICENSE: Added.
3383         * inspector/front-end/cm/codemirror.css: Added.
3384         (.CodeMirror):
3385         * inspector/front-end/cm/xml.js: Added.
3386         (CodeMirror.defineMode.):
3387         (CodeMirror.defineMode):
3388
3389 2012-08-09  Xan Lopez  <xlopez@igalia.com>
3390
3391         1.9.6 drops symbols, breaking compatibility
3392         https://bugs.webkit.org/show_bug.cgi?id=93477
3393
3394         Reviewed by Carlos Garcia Campos.
3395
3396         Expose documentURI as writable again for the GObject DOM
3397         bindings. DOM4 makes it read-only, but we need to revert to the
3398         old state for compatibility reasons, just like Objective C.
3399
3400         * dom/Document.idl: ditto.
3401
3402 2012-08-09  Mario Sanchez Prada  <msanchez@igalia.com>
3403
3404         REGRESSION (r124997): Flaky crashes in two tests
3405         https://bugs.webkit.org/show_bug.cgi?id=93501
3406
3407         Reviewed by Martin Robinson.
3408
3409         Add missing null check to make sure we early return if the
3410         accessibility object does not have a valid parent exposed in the
3411         accessibility hierarchy.
3412
3413         * accessibility/gtk/AXObjectCacheAtk.cpp:
3414         (WebCore::emitTextChanged): Add missing null check.
3415
3416 2012-08-09  Pavel Feldman  <pfeldman@chromium.org>
3417
3418         Web Inspector: generate preview for the objects dumped into the console upon logging.
3419         https://bugs.webkit.org/show_bug.cgi?id=35801
3420
3421         Reviewed by Vsevolod Vlasov.
3422
3423         As of today, dumping an object (array) into console will result in objects' properties being
3424         read upon console object expansion (i.e. lazily). This means that dumping the same object while
3425         mutating it will be hard to debug using the console.
3426
3427         This change starts generating abbreviated previews for objects / arrays at the moment of their
3428         logging and passes this information along into the front-end. This only happens when the front-end
3429         is already opened, it only works for console.log(), not live console interaction.
3430
3431         Covered by the existing console tests + collections test has been expanded to capture both: pre and post-
3432
3433         * inspector/ConsoleMessage.cpp:
3434         (WebCore::ConsoleMessage::addToFrontend):
3435         * inspector/ConsoleMessage.h:
3436         (ConsoleMessage):
3437         * inspector/InjectedScript.cpp:
3438         (WebCore::InjectedScript::wrapObject):
3439         * inspector/InjectedScript.h:
3440         (InjectedScript):
3441         * inspector/InjectedScriptSource.js:
3442         (.):
3443         * inspector/Inspector.json:
3444         * inspector/InspectorConsoleAgent.cpp:
3445         (WebCore::InspectorConsoleAgent::enable):
3446         (WebCore::InspectorConsoleAgent::addConsoleMessage):
3447         * inspector/front-end/ConsoleMessage.js:
3448         (WebInspector.ConsoleMessageImpl.prototype._format):
3449         (WebInspector.ConsoleMessageImpl.prototype._formatParameter):
3450         (WebInspector.ConsoleMessageImpl.prototype._formatParameterAsObject):
3451         (WebInspector.ConsoleMessageImpl.prototype._formatParameterAsArrayOrObject):
3452         (WebInspector.ConsoleMessageImpl.prototype._appendObjectPreview):
3453         (WebInspector.ConsoleMessageImpl.prototype._formatParameterAsNode):
3454         (WebInspector.ConsoleMessageImpl.prototype._formatParameterAsArray):
3455         (WebInspector.ConsoleMessageImpl.prototype._printArray):
3456         (WebInspector.ConsoleMessageImpl.prototype._formatAsArrayEntry):
3457         (WebInspector.ConsoleMessageImpl.prototype._formatWithSubstitutionString):
3458         * inspector/front-end/DOMExtension.js:
3459         (Element.prototype.createTextChild):
3460         * inspector/front-end/ObjectPropertiesSection.js:
3461         (WebInspector.ObjectPropertiesSection):
3462         * inspector/front-end/PropertiesSection.js:
3463         * inspector/front-end/RemoteObject.js:
3464         (WebInspector.RemoteObject):
3465         (WebInspector.RemoteObject.fromPayload):
3466         (WebInspector.RemoteObject.prototype.get preview):
3467         * inspector/front-end/Section.js:
3468         * inspector/front-end/inspector.css:
3469         (.console-group-messages .section .header .title):
3470         (.section .console-formatted-node):
3471         (.console-object-preview):
3472         (.section .properties .name, .event-properties .name, .console-formatted-object .name):
3473
3474 2012-08-09  Keishi Hattori  <keishi@webkit.org>
3475
3476         Page popups can show up at wrong locations
3477         https://bugs.webkit.org/show_bug.cgi?id=93556
3478
3479         Reviewed by Kent Tamura.
3480
3481         No new tests. Cannot test popup position.
3482
3483         * html/shadow/CalendarPickerElement.cpp:
3484         (WebCore::CalendarPickerElement::contentSize):
3485
3486 2012-08-08  Andrey Kosyakov  <caseq@chromium.org>
3487
3488         Web Inspector: display progress bar while loading timeline data
3489         https://bugs.webkit.org/show_bug.cgi?id=92762
3490
3491         Reviewed by Pavel Feldman.
3492
3493         - display progress while loading timeline data;
3494         - disable status bar buttons while operation is in progress;
3495         - ignore save/load/record while operation is in progress;
3496         - disable context menu items while operation is in progress;
3497         - misc. compilation warning fixes;
3498
3499         * inspector/front-end/ProgressBar.js:
3500         (WebInspector.CompositeProgress.prototype.createSubProgress):
3501         * inspector/front-end/TimelineModel.js:
3502         (WebInspector.TimelineModel.prototype._loadNextChunk):
3503         (WebInspector.TimelineModel.prototype.loadFromFile.parseAndImportData):
3504         (WebInspector.TimelineModel.prototype.loadFromFile.onLoad):
3505         (WebInspector.TimelineModel.prototype.loadFromFile.onError):
3506         (WebInspector.TimelineModel.prototype.loadFromFile.onProgress):
3507         (WebInspector.TimelineModel.prototype.loadFromFile):
3508         * inspector/front-end/TimelinePanel.js:
3509         (WebInspector.TimelinePanel):
3510         (WebInspector.TimelinePanel.prototype.get statusBarItems):
3511         (WebInspector.TimelinePanel.prototype._createStatusBarItems):
3512         (WebInspector.TimelinePanel.prototype._setOperationInProgress):
3513         (WebInspector.TimelinePanel.prototype._contextMenu):
3514         (WebInspector.TimelinePanel.prototype._saveToFile):
3515         (WebInspector.TimelinePanel.prototype._loadFromFile):
3516         (WebInspector.TimelinePanel.prototype.get _toggleTimelineButtonClicked):
3517         (WebInspector.TimelinePanel.prototype.sidebarResized):
3518         * inspector/front-end/utilities.js: added Array.prototype.select(field) to map array of objects to array containing particular field of each object.
3519
3520 2012-08-09  Allan Sandfeld Jensen  <allan.jensen@nokia.com>
3521
3522         Floored and truncated rounded confused.
3523         https://bugs.webkit.org/show_bug.cgi?id=93475
3524
3525         Reviewed by Levi Weintraub.
3526
3527         Fix the common mistake of confusing truncating (round towards zero) and
3528         flooring (round down). They are only identical for positive numbers,
3529         not for negative numbers.
3530
3531         This patch fixes instances of misimplemented or misused floor in the
3532         layout and geometric code. And also uses the new correct implementations
3533         to clean up the code for enclosingRect.
3534
3535         * platform/FractionalLayoutUnit.h:
3536         (WebCore::FractionalLayoutUnit::fromFloatFloor):
3537         (FractionalLayoutUnit):
3538         (WebCore::FractionalLayoutUnit::ceil):
3539         (WebCore::FractionalLayoutUnit::floor):
3540         * platform/graphics/FloatPoint.h:
3541         (WebCore::FloatPoint::FloatPoint):
3542         (WebCore::roundedIntPoint):
3543         (WebCore::flooredIntPoint):
3544         (WebCore::ceiledIntPoint):
3545         (WebCore::flooredIntSize):
3546         * platform/graphics/FloatRect.cpp:
3547         (WebCore::enclosingIntRect):
3548         (WebCore::enclosedIntRect):
3549         * platform/graphics/FloatSize.h:
3550         (WebCore::roundedIntSize):
3551         (WebCore::flooredIntSize):
3552         (WebCore::flooredIntPoint):
3553         * platform/graphics/FractionalLayoutPoint.h:
3554         (WebCore::flooredIntPoint):
3555         (WebCore::flooredFractionalLayoutPoint):
3556         (WebCore::ceiledFractionalLayoutPoint):
3557         * platform/graphics/FractionalLayoutRect.cpp:
3558         (WebCore::enclosingIntRect):
3559         (WebCore::enclosingFractionalLayoutRect):
3560         * platform/graphics/FractionalLayoutSize.h:
3561         (WebCore::flooredIntSize):
3562         * platform/graphics/IntRect.cpp:
3563         (WebCore::IntRect::IntRect):
3564         * rendering/LayoutTypes.h:
3565         (WebCore::flooredLayoutPoint):
3566         (WebCore::floorToInt):
3567         (WebCore::isIntegerValue):
3568         * rendering/RenderLayer.cpp:
3569         (WebCore::RenderLayer::convertToLayerCoords):
3570
3571 2012-08-07  Andrey Kosyakov  <caseq@chromium.org>
3572
3573         Web Inspector: use WebInspector.ProgressIndicator in AdvancedSearchController
3574         https://bugs.webkit.org/show_bug.cgi?id=93362
3575
3576         Reviewed by Vsevolod Vlasov.
3577
3578         - drop custom status bar used in AdvancedSearchController, use WebInspector.ProgressIndicator;
3579         - perform additional cancelation check after invoking searchResultCallback to account for stopSearch called from within callback;
3580         - fix compilation warnings in ProgressBar;
3581
3582         * inspector/front-end/AdvancedSearchController.js:
3583         (WebInspector.SearchView):
3584         (WebInspector.SearchView.prototype.searchStarted):
3585         (WebInspector.SearchView.prototype.addSearchResult):
3586         (WebInspector.SearchView.prototype.searchFinished):
3587         (WebInspector.SearchView.prototype._onCancel):
3588         * inspector/front-end/ProgressBar.js:
3589         (WebInspector.CompositeProgress.prototype.createSubProgress):
3590         * inspector/front-end/ScriptsSearchScope.js:
3591         (WebInspector.ScriptsSearchScope.prototype.performSearch.searchCallbackWrapper):
3592         * inspector/front-end/inspector.css:
3593         (.progress-bar-container progress):
3594         (body.platform-mac .progress-bar-container progress):
3595
3596 2012-08-09  Pavel Feldman  <pfeldman@chromium.org>
3597
3598         Web Inspector: improve large array logging experience
3599         https://bugs.webkit.org/show_bug.cgi?id=93499
3600
3601         Reviewed by Vsevolod Vlasov.
3602
3603         Group elements in chunks of 100, not smaller. 
3604
3605         * inspector/front-end/ObjectPropertiesSection.js:
3606         (WebInspector.FunctionScopeMainTreeElement):
3607         (WebInspector.FunctionScopeMainTreeElement.prototype.onpopulate):
3608         (WebInspector.ArrayGroupingTreeElement._populateRanges):
3609
3610 2012-08-09  MORITA Hajime  <morrita@google.com>
3611
3612         DOMCharacterDataModified should not be fired inside shadows
3613         https://bugs.webkit.org/show_bug.cgi?id=93427
3614
3615         Reviewed by Ryosuke Niwa.
3616
3617         CharacterData::dispatchModifiedEvent() fires DOMCharacterDataModified event even if
3618         the node is in shadow. But it shouldn't. Check dispatchChildInsertionEvents() and
3619         dispatchChildRemovalEvents() to see how other MutationEvents are suppressed behind shadows.
3620         This change follows the same path to suppress DOMCharacterDataModified.
3621
3622         Tests: fast/dom/shadow/suppress-mutation-events-in-shadow-characterdata.html
3623                fast/forms/textarea-and-mutation-events-appending-text.html
3624
3625         * dom/CharacterData.cpp:
3626         (WebCore::CharacterData::dispatchModifiedEvent):
3627
3628 2012-08-09  Eric Seidel  <eric@webkit.org>
3629
3630         Use m_everHadLayout in RenderObject::checkForRepaintDuringLayout()
3631         https://bugs.webkit.org/show_bug.cgi?id=20885
3632
3633         Reviewed by Dan Bernstein.
3634
3635         Fix FIXME in checkForRepaintDuringLayout, making RenderObjects
3636         no longer paint on first layout, but instead require their
3637         parent containers to paint them.
3638         This appears to have fixed one minor SVG overpainting issue
3639         in svg/use-detach-expected.png.
3640
3641         * rendering/RenderBlock.cpp:
3642         (WebCore::RenderBlock::layoutBlock):
3643         * rendering/RenderObject.cpp:
3644         (WebCore::RenderObject::checkForRepaintDuringLayout):
3645         * rendering/svg/SVGRenderSupport.cpp:
3646         (WebCore::SVGRenderSupport::layoutChildren):
3647
3648 2012-08-08  Arko Saha  <arko@motorola.com>
3649
3650         Microdata: PropertyNodeList cache should be invalidated on id attribute change.
3651         https://bugs.webkit.org/show_bug.cgi?id=93485
3652
3653         Reviewed by Ryosuke Niwa.
3654
3655         Invalidate PropertyNodeList cache when id attribute of an element changed/modified.
3656
3657         Test: fast/dom/MicroData/propertiescollection-on-changing-id-attr.html
3658
3659         * dom/DynamicNodeList.cpp: Moved ownerNodeHasItemRefAttribute() method to DynamicNodeList.h
3660         (WebCore):
3661         * dom/DynamicNodeList.h:
3662         (WebCore):
3663         (WebCore::DynamicNodeListCacheBase::isRootedAtDocument): Return true if owner has itemref
3664         attribute specified with root type NodeListIsRootedAtDocumentIfOwnerHasItemrefAttr.
3665         (WebCore::DynamicNodeListCacheBase::shouldInvalidateTypeOnAttributeChange): Return true if
3666         attrName is id attribute in case of InvalidateOnItemAttrChange.
3667         (WebCore::DynamicNodeListCacheBase::ownerNodeHasItemRefAttribute):
3668
3669 2012-08-09  Arko Saha  <arko@motorola.com>
3670
3671         Microdata: HTMLPropertiesCollection does not contain all properties when item is not attached to the DOM tree.
3672         https://bugs.webkit.org/show_bug.cgi?id=93456
3673
3674         Reviewed by Ryosuke Niwa.
3675
3676         HTMLPropertiesCollection does not contain the item properties added through
3677         itemref attribute when item is not attached to the DOM tree. We need to
3678         find the root node of the item if its not attached in the document.
3679
3680         It is also possible that itemref attribute of item refers to the root node.
3681         Made changes in getItemRefElements() method so that the traversal should
3682         start from the root node.
3683
3684         Tests: fast/dom/MicroData/add-remove-property-to-item-which-is-not-attached-to-domtree.html
3685                fast/dom/MicroData/item-not-attached-to-domtree.html
3686                fast/dom/MicroData/itemref-pointing-to-root-node.html
3687
3688         * dom/DynamicNodeList.cpp:
3689         (WebCore::DynamicNodeListCacheBase::rootNode):
3690         * html/HTMLElement.cpp:
3691         (WebCore::HTMLElement::getItemRefElements):
3692
3693 2012-08-09  Tim Horton  <timothy_horton@apple.com>
3694
3695         Add optional debug logging for tiled scrolling
3696         https://bugs.webkit.org/show_bug.cgi?id=93305
3697
3698         Reviewed by Simon Fraser.
3699
3700         Add scrolling performance logging to ScrollingTreeNodeMac and WebTileLayer, which will log
3701         the amount of unpainted area exposed during scrolling and painting, respectively.
3702
3703         The logging output looks like this:
3704
3705             SCROLLING: Exposed tileless area. Time: 1344464850.154839 Unfilled Pixels: 1122008
3706             SCROLLING: Filled visible fresh tile. Time: 1344464850.575303 Unfilled Pixels: 1078272
3707             SCROLLING: Filled visible fresh tile. Time: 1344464850.676569 Unfilled Pixels: 823808
3708             SCROLLING: Filled visible fresh tile. Time: 1344464850.795877 Unfilled Pixels: 569344
3709             SCROLLING: Filled visible fresh tile. Time: 1344464850.846940 Unfilled Pixels: 524288
3710             SCROLLING: Filled visible fresh tile. Time: 1344464850.984113 Unfilled Pixels: 262144
3711             SCROLLING: Filled visible fresh tile. Time: 1344464851.027985 Unfilled Pixels: 0
3712
3713         No new tests, as this is just debugging logging.
3714
3715         * WebCore.exp.in:
3716         * page/FrameView.cpp:
3717         (WebCore::FrameView::setScrollingPerformanceLoggingEnabled):
3718         Added setScrollingPerformanceLoggingEnabled, passes flag into TiledBacking.
3719
3720         * page/FrameView.h:
3721         * page/Settings.cpp:
3722         (WebCore::Settings::Settings):
3723         (WebCore::Settings::setScrollingPerformanceLoggingEnabled):
3724         Added setScrollingPerformanceLoggingEnabled, passes flag into FrameView.
3725
3726         * page/Settings.h:
3727         (WebCore::Settings::scrollingPerformanceLoggingEnabled):
3728         * page/scrolling/ScrollingTree.cpp:
3729         (WebCore::ScrollingTree::ScrollingTree):
3730         (WebCore::ScrollingTree::setScrollingPerformanceLoggingEnabled):
3731         (WebCore::ScrollingTree::scrollingPeformanceLoggingEnabled):
3732         Added ScrollingPerformanceLoggingEnabled setter/getter; this is where it's accessed from ScrollingTreeNodeMac.
3733
3734         * page/scrolling/ScrollingTree.h:
3735         * page/scrolling/mac/ScrollingTreeNodeMac.h:
3736         (ScrollingTreeNodeMac):
3737         * page/scrolling/mac/ScrollingTreeNodeMac.mm:
3738         (WebCore::ScrollingTreeNodeMac::setScrollPosition):
3739         When updating scroll position, conditionally log the amount of unpainted area that was just exposed.
3740
3741         (WebCore::ScrollingTreeNodeMac::logExposedTilelessArea):
3742         * platform/graphics/TiledBacking.h:
3743         (WebCore::TiledBacking::TiledBacking):
3744         (WebCore::TiledBacking::setScrollingPerformanceLoggingEnabled):
3745         (WebCore::TiledBacking::scrollingPerformanceLoggingEnabled):
3746         Added ScrollingPerformanceLoggingEnabled setter/getter; this is where it's accessed from WebTileLayer.
3747
3748         * platform/graphics/ca/mac/TileCache.h:
3749         (WebCore::TileCache::visibleRect):
3750         * platform/graphics/ca/mac/TileCache.mm:
3751         (WebCore::TileCache::blankPixelCount):
3752         (WebCore::TileCache::blankPixelCountForTiles):
3753         Compute the exposed, unpainted area of the tile cache by iterating over the layers,
3754         checking if they've been painted, and subtracting painted layers from the total visible area.
3755
3756         * platform/graphics/ca/mac/WebTileLayer.h:
3757         * platform/graphics/ca/mac/WebTileLayer.mm:
3758         (-[WebTileLayer drawInContext:]):
3759         (-[WebTileLayer repaintCount]):
3760         (-[WebTileLayer logFilledFreshTile]):
3761         When painting a WebTileLayer, conditionally log the amount of unpainted area remaining after painting said tile.
3762
3763         * rendering/RenderLayerBacking.cpp:
3764         (WebCore::RenderLayerBacking::RenderLayerBacking):
3765         Plumb ScrollingPerformanceLoggingEnabled through to TiledBacking.
3766
3767 2012-08-08  Alpha Lam  <hclam@chromium.org>
3768
3769         Remove image decoding in some BitmapImage metadata functions
3770         https://bugs.webkit.org/show_bug.cgi?id=93171
3771
3772         Reviewed by Simon Fraser.
3773
3774         These two metadata functions were decoding an entire frame:
3775         - frameOrientationAtIndex
3776         - frameHasAlphaAtIndex
3777
3778         This change removes image decoding from these two methods. This is for
3779         preparation of having asynchronous image decoding, intending to reduce
3780         code location that trigger image decoding.
3781
3782         frameOrientationAtIndex() doesn't require decoding a frame. This method
3783         is only implemented in CG port in ImageSourceCG.cpp which doesn't do
3784         image decoding.
3785
3786         frameHasAlphaAtIndex() is used to optimize certain drawing operations
3787         and accelerated compositing. This change uses a heuristic for non-CG
3788         port to determine if an image has alpha. If an image is not yet
3789         decoded the function answers having alpha. Only if a frame is decoded
3790         and cached that the alpha state of the frame is returned. This is an
3791         admissible heuristic that postpone answering the question until a frame
3792         is decoded.
3793
3794         Tested this change with a fully loaded image and partially loaded image
3795         with background color.
3796
3797         Test: http/tests/images/jpg-img-partial-load.html
3798
3799         * platform/graphics/BitmapImage.cpp:
3800         (WebCore::BitmapImage::frameHasAlphaAtIndex):
3801         (WebCore::BitmapImage::frameOrientationAtIndex):
3802         * platform/graphics/ImageSource.cpp:
3803         (WebCore::ImageSource::frameHasAlphaAtIndex):
3804         * platform/image-decoders/ImageDecoder.cpp:
3805         (WebCore::ImageDecoder::frameHasAlphaAtIndex):
3806         (WebCore):
3807         * platform/image-decoders/ImageDecoder.h:
3808         (ImageDecoder):
3809
3810 2012-08-08  Sheriff Bot  <webkit.review.bot@gmail.com>
3811
3812         Unreviewed, rolling out r125146.
3813         http://trac.webkit.org/changeset/125146
3814         https://bugs.webkit.org/show_bug.cgi?id=93578
3815
3816         Would like to study fast/dom/Window/timer-null-script-
3817         execution-context.html behavior change (Requested by abarth on
3818         #webkit).
3819
3820         * bindings/js/JSDOMWindowBase.cpp:
3821         (WebCore):
3822         (WebCore::JSDOMWindowBase::crossDomainAccessErrorMessage):
3823         (WebCore::JSDOMWindowBase::allowsAccessFrom):
3824         * bindings/js/JSDOMWindowBase.h:
3825         (JSDOMWindowBase):
3826         * bindings/js/JSDOMWindowCustom.cpp:
3827         (WebCore::namedItemGetter):
3828         (WebCore::JSDOMWindow::getOwnPropertySlot):
3829         (WebCore::JSDOMWindow::getOwnPropertyDescriptor):
3830         (WebCore::JSDOMWindow::put):
3831         (WebCore::JSDOMWindow::deleteProperty):
3832         (WebCore::JSDOMWindow::getPropertyNames):
3833         (WebCore::JSDOMWindow::getOwnPropertyNames):
3834         (WebCore::JSDOMWindow::defineOwnProperty):
3835         (WebCore::JSDOMWindow::setLocation):
3836         * bindings/js/JSDOMWindowCustom.h:
3837         (WebCore::JSDOMWindowBase::allowsAccessFrom):
3838         (WebCore):
3839         (WebCore::JSDOMWindowBase::allowsAccessFromNoErrorMessage):
3840         (WebCore::JSDOMWindowBase::allowsAccessFromPrivate):
3841         * bindings/js/JSInjectedScriptManager.cpp:
3842         (WebCore::InjectedScriptManager::canAccessInspectedWindow):
3843         * bindings/objc/WebScriptObject.mm:
3844         (-[WebScriptObject _isSafeScript]):
3845         * bindings/scripts/CodeGeneratorJS.pm:
3846         (GenerateGetOwnPropertyDescriptorBody):
3847         (GenerateImplementation):
3848         * bindings/scripts/test/JS/JSTestActiveDOMObject.cpp:
3849         (WebCore::jsTestActiveDOMObjectExcitingAttr):
3850         (WebCore::jsTestActiveDOMObjectConstructor):
3851         (WebCore::jsTestActiveDOMObjectPrototypeFunctionExcitingFunction):
3852
3853 2012-08-05  Kinuko Yasuda  <kinuko@chromium.org>
3854
3855         Unprefix window.webkitURL
3856         https://bugs.webkit.org/show_bug.cgi?id=93034
3857
3858         Reviewed by Jian Li.
3859
3860         Adding unprefixed window.URL as other browsers like FireFox and Opera 12 seem to have the API unprefixed.
3861         (This patch doesn't remove webkitURL yet as Safari and Chrome has exposed the URL for a while now.)
3862
3863         Test: fast/dom/DOMURL/check-instanceof-domurl-functions.html
3864
3865         * page/DOMWindow.cpp:
3866         * page/DOMWindow.h:
3867         (DOMWindow):
3868         * page/DOMWindow.idl:
3869         * workers/WorkerContext.idl:
3870
3871 2012-08-08  MORITA Hajime  <morrita@google.com>
3872
3873         [SVG] load events shouldn't be fired during Node::insrtedInto()
3874         https://bugs.webkit.org/show_bug.cgi?id=92969
3875
3876         Reviewed by Ryosuke Niwa.
3877
3878         Event dispatches during insertedInto() allow event handlers to
3879         break DOM tree cosistency. This chagne makes them async for load
3880         events which are dispatched during insertedInto() call. This
3881         prevents event handlers from breaking tree consistency while the
3882         notification traversal.
3883
3884         Test: svg/custom/loadevents-async.html
3885
3886         * svg/SVGElement.cpp:
3887         (WebCore::SVGElement::sendSVGLoadEventIfPossibleAsynchronously): Added.
3888         (WebCore):
3889         (WebCore::SVGElement::svgLoadEventTimerFired): Added.
3890         (WebCore::SVGElement::svgLoadEventTimer):
3891         - Added a stub. Implemented in SVGScriptElement, SVGStopElement, SVGUseElement
3892           where the load event happens.
3893         * svg/SVGElement.h:
3894         (SVGElement):
3895         * svg/SVGExternalResourcesRequired.cpp:
3896         (WebCore::SVGExternalResourcesRequired::insertedIntoDocument):
3897         - Replaces event dispatch call with async version.
3898         * svg/SVGScriptElement.h:
3899         * svg/SVGStyleElement.h:
3900         * svg/SVGUseElement.h:
3901
3902 2012-08-08  Adam Barth  <abarth@webkit.org>
3903
3904         Implement JSDOMWindow*::allowsAccessFrom* in terms of BindingSecurity
3905         https://bugs.webkit.org/show_bug.cgi?id=93407
3906
3907         Reviewed by Eric Seidel.
3908
3909         This patch removes allowsAccessFrom and implements the security checks
3910         in terms of shouldAllowAccessToFrame directly. There shouldn't be any
3911         change in behavior.
3912
3913         * bindings/js/JSDOMWindowBase.cpp:
3914         (WebCore):
3915         (WebCore::shouldAllowAccessFrom):
3916         * bindings/js/JSDOMWindowBase.h:
3917         (JSDOMWindowBase):
3918         * bindings/js/JSDOMWindowCustom.cpp:
3919         (WebCore::namedItemGetter):
3920         (WebCore::JSDOMWindow::getOwnPropertySlot):
3921         (WebCore::JSDOMWindow::getOwnPropertyDescriptor):
3922         (WebCore::JSDOMWindow::put):
3923         (WebCore::JSDOMWindow::deleteProperty):
3924         (WebCore::JSDOMWindow::getPropertyNames):
3925         (WebCore::JSDOMWindow::getOwnPropertyNames):
3926         (WebCore::JSDOMWindow::defineOwnProperty):
3927         (WebCore::JSDOMWindow::setLocation):
3928         * bindings/js/JSDOMWindowCustom.h:
3929         * bindings/js/JSInjectedScriptManager.cpp:
3930         (WebCore::InjectedScriptManager::canAccessInspectedWindow):
3931         * bindings/objc/WebScriptObject.mm:
3932         (-[WebScriptObject _isSafeScript]):
3933         * bindings/scripts/CodeGeneratorJS.pm:
3934         (GenerateGetOwnPropertyDescriptorBody):
3935         (GenerateImplementation):
3936         * bindings/scripts/test/JS/JSTestActiveDOMObject.cpp:
3937         (WebCore::jsTestActiveDOMObjectExcitingAttr):
3938         (WebCore::jsTestActiveDOMObjectConstructor):
3939         (WebCore::jsTestActiveDOMObjectPrototypeFunctionExcitingFunction):
3940
3941 2012-08-08  Sheriff Bot  <webkit.review.bot@gmail.com>
3942
3943         Unreviewed, rolling out r125143.
3944         http://trac.webkit.org/changeset/125143
3945         https://bugs.webkit.org/show_bug.cgi?id=93573
3946
3947         Doesn't compile on Mac (Requested by tony^work on #webkit).
3948
3949         * GNUmakefile.list.am:
3950         * Target.pri:
3951         * WebCore.gypi:
3952         * WebCore.vcproj/WebCore.vcproj:
3953         * WebCore.xcodeproj/project.pbxproj:
3954         * platform/graphics/BitmapImage.h:
3955         * platform/graphics/Image.h:
3956         * platform/graphics/ImageSource.h:
3957         (WebCore):
3958         * platform/graphics/NativeImagePtr.h: Removed.
3959         * platform/graphics/cairo/GraphicsContext3DCairo.cpp:
3960
3961 2012-08-08  Huang Dongsung  <luxtella@company100.net>
3962
3963         Extract the definition of NativeImagePtr from ImageSource.h into NativeImagePtr.h.
3964         https://bugs.webkit.org/show_bug.cgi?id=93466
3965
3966         Reviewed by Adam Barth.
3967
3968         Image.h includes ImageSource.h in order to know the definition of NativeImagePtr.
3969         But Image does not need to know the definition of ImageSource. So, this patch
3970         extracts the definition of NativeImagePtr from ImageSource.h into NativeImagePtr.h.
3971
3972         This is a preparation for asynchronous image decoding. Async decoding
3973         will need a callback function, which sends a NativeImagePtr to clients, and the
3974         callback must know the definition of NativeImagePtr, not ImageSource.
3975
3976         No new tests, behavior is unchanged.
3977
3978         * GNUmakefile.list.am:
3979         * Target.pri:
3980         * WebCore.gypi:
3981         * WebCore.vcproj/WebCore.vcproj:
3982         * WebCore.xcodeproj/project.pbxproj:
3983         * platform/graphics/BitmapImage.h:
3984         * platform/graphics/Image.h:
3985         * platform/graphics/ImageSource.h:
3986         (WebCore):
3987         * platform/graphics/NativeImagePtr.h: Added.
3988         (WebCore):
3989
3990 2012-08-08  Shane Stephens  <shanestephens@google.com>
3991
3992         Compile flag for CSS Hierarchies
3993         https://bugs.webkit.org/show_bug.cgi?id=92433
3994
3995         Reviewed by Tony Chang.
3996
3997         Note that this flag is disabled on all platforms for now.
3998
3999         No new tests since there's no functional change.
4000
4001         * Configurations/FeatureDefines.xcconfig:
4002
4003 2012-08-08  Kent Tamura  <tkent@chromium.org>
4004
4005         [Chromium-mac] Switch to LocalizedNumberMac from LocalizedNumberICU
4006         https://bugs.webkit.org/show_bug.cgi?id=93432
4007
4008         Reviewed by Hajime Morita.
4009
4010         No new tests. Covered by fast/forms/number/number-lossless-localization.html,
4011         and WebKit/chromium/tests/LocaleMacTest.cpp.
4012
4013         * WebCore.gyp/WebCore.gyp:
4014         Exclude locale-relatef files for ICU, and include files for Mac.
4015
4016 2012-08-08  Hayato Ito  <hayato@chromium.org>
4017
4018         EventDispatcher::dispatchSimulatedClick should not reuse the same EventDispatcher instance.
4019         https://bugs.webkit.org/show_bug.cgi?id=93452
4020
4021         Reviewed by Dimitri Glazkov.
4022
4023         This is a follow up patch after r124975.  There is yet another
4024         place where the same EventDispatcher instance is reused across
4025         event dispatching.
4026
4027         In addition to that, in order to simulate a real click, we must
4028         different dispatchers because we must recalculate event ancestors
4029         each time.  Current implementation wrongly freezes event ancestors
4030         at the first event dispatching.
4031
4032         No new tests, no change in functionality.
4033
4034         * dom/EventDispatcher.cpp:
4035         (WebCore::EventDispatcher::dispatchSimulatedClick):
4036         (WebCore::EventDispatcher::EventDispatcher):
4037         (WebCore::EventDispatcher::dispatchEvent):
4038         * dom/EventDispatcher.h:
4039         (EventDispatcher):
4040
4041 2012-08-08  Jae Hyun Park  <jae.park@company100.net>
4042
4043         writeHelperGetString in V8HTMLDocument uses += to concatenate strings
4044         https://bugs.webkit.org/show_bug.cgi?id=93035