Support additional Coordinates information
[framework/web/webkit-efl.git] / Source / WebCore / ChangeLog
1 2013-02-20  Robert Hogan  <robert@webkit.org>
2
3         input element with placeholder text and width set to 100% on focus causes overflow even after losing focus
4         https://bugs.webkit.org/show_bug.cgi?id=109020
5
6         Reviewed by David Hyatt.
7
8         Tests: fast/forms/input-placeholder-layout-view.html
9                fast/forms/textarea-placeholder-layout-view.html
10
11         Placeholder elements don't affect layout so shouldn't contribute overflow either.
12
13         * rendering/RenderTextControlSingleLine.cpp:
14         (WebCore::RenderTextControlSingleLine::layout):
15
16 2013-02-04 Nayan Kumar K <nayankk@motorola.com>
17
18         [WEBGL] Rename WEBKIT_WEBGL_compressed_texture_s3tc to WEBGL_compressed_texture_s3tc
19         https://bugs.webkit.org/show_bug.cgi?id=108866
20
21         Reviewed by NOBODY (OOPS!).
22
23         WEBGL_compressed_texture_s3tc is one of the community approved WebGL extension.
24         Hence remove the vendor prefix from WEBKIT_WEBGL_compressed_texture_s3tc.
25         Specification: http://www.khronos.org/registry/webgl/extensions/WEBGL_compressed_texture_s3tc/
26
27         No tests currently present to test WEBKIT_WEBGL_compressed_texture_s3tc.
28
29         * bindings/js/JSWebGLRenderingContextCustom.cpp:
30         (WebCore::toJS):
31         * bindings/v8/custom/V8WebGLRenderingContextCustom.cpp:
32         (WebCore::toV8Object):
33         * html/canvas/WebGLCompressedTextureS3TC.cpp:
34         (WebCore::WebGLCompressedTextureS3TC::getName):
35         * html/canvas/WebGLExtension.h:
36         * html/canvas/WebGLRenderingContext.cpp:
37         (WebCore):
38         (WebCore::WebGLRenderingContext::getExtension):
39
40 2013-02-01 Nayan Kumar K <nayankk@motorola.com>
41
42         [WEBGL] Rename WEBKIT_WEBGL_lose_context to WEBGL_lose_context.
43         https://bugs.webkit.org/show_bug.cgi?id=108694
44
45         Reviewed by NOBODY (OOPS!).
46
47         WEBGL_lose_context is one of the community approved WebGL extension.
48         Hence remove the vendor prefix from WEBKIT_WEBGL_lose_context extension.
49         Spefication: http://www.khronos.org/registry/webgl/extensions/WEBGL_lose_context/
50
51         Tests already exists, modified them to verify the change in extension name.
52
53         * bindings/js/JSWebGLRenderingContextCustom.cpp:
54         (WebCore::toJS):
55         * bindings/v8/custom/V8WebGLRenderingContextCustom.cpp:
56         (WebCore::toV8Object):
57         * html/canvas/WebGLExtension.h:
58         * html/canvas/WebGLLoseContext.cpp:
59         (WebCore::WebGLLoseContext::getName):
60         * html/canvas/WebGLRenderingContext.cpp:
61         (WebCore):
62         (WebCore::WebGLRenderingContext::getExtension):
63         (WebCore::WebGLRenderingContext::getSupportedExtensions):
64
65 2012-10-05  Ryosuke Niwa  <rniwa@webkit.org>
66
67         Deleting across multiple paragraphs can change the style of surrounding text
68         https://bugs.webkit.org/show_bug.cgi?id=97266
69
70         Reviewed by Levi Weintraub.
71
72         Preserve editing styles from CSS rules in wrappingStyleForSerialization as well as inline styles
73         even when we're not annotating. We don't want to preserve all styles because it's against
74         the user expectation to keep borders, etc... when merging paragraphs. We also don't want to copy
75         styles from a mail blockquote because that's not a style the user has applied. See the comment
76         in EditingStyle::wrappingStyleForSerialization.
77
78         Test: editing/deleting/merge-paragraph-with-style-from-rule.html
79
80         * editing/EditingStyle.cpp:
81         (WebCore::EditingStyle::mergeInlineAndImplicitStyleOfElement):
82         (WebCore::EditingStyle::wrappingStyleForSerialization):
83
84 2012-09-24  Tony Chang  <tony@chromium.org>
85
86         flex-grow should be 1 when omitted from flex shorthand
87         https://bugs.webkit.org/show_bug.cgi?id=97480
88
89         Reviewed by Ojan Vafai.
90
91         We were using 0, based on an outdated version of the spec.
92
93         Tests: css3/flexbox/flex-property-parsing.html
94                css3/flexbox/flex-algorithm.html: New test case.
95
96         * css/CSSParser.cpp:
97         (WebCore::CSSParser::parseFlex):
98
99 2013-02-13  Morten Stenshorne  <mstensho@opera.com>
100
101         WebKit ignores column-rules wider than column-gap
102         https://bugs.webkit.org/show_bug.cgi?id=15553
103
104         Paint column rules even if they are wider than the gap.
105         Rules wider than the gap should just overlap with column contents.
106
107         Reviewed by Eric Seidel.
108
109         Test: fast/multicol/rule-thicker-than-gap.html
110
111         * rendering/RenderBlock.cpp:
112         (WebCore::RenderBlock::paintColumnRules):
113
114 2013-03-18  Gyuyoung Kim  <gyuyoung.kim@samsung.com>
115
116         [EFL] Cancel mark on search field is not displayed
117         https://bugs.webkit.org/show_bug.cgi?id=94880
118
119         Reviewed by Kenneth Rohde Christiansen.
120
121         adjustSearchFieldCancelButtonStyle() doesn't set style width and height for search cancel button.
122         So, the button isn't showing up in search input field. Besides the button size should be scaled based
123         on the font size as chromium, qt, and blackberry ports.
124
125         Tests: fast/forms/search-cancel-button-style-sharing.html
126                fast/forms/search-rtl.html
127         * platform/efl/RenderThemeEfl.cpp:
128         (WebCore):
129         (WebCore::RenderThemeEfl::adjustSearchFieldCancelButtonStyle):
130
131 2012-08-30  Kangil Han  <kangil.han@samsung.com>
132
133         Fix compile warning when enable tiled backing store
134         https://bugs.webkit.org/show_bug.cgi?id=95422
135
136         Reviewed by Kentaro Hara.
137
138         Fixed compile warning messages when enabled tiled backing store.
139         In case of TiledBackingStore, it was first thought about static_cast<unsigned>.
140         However, if minus value is assigned to the comparison, it would be critical.
141         So, it was modified as using int value in tiled coordinate calculation.
142
143         * page/Frame.cpp:
144         (WebCore::Frame::tiledBackingStorePaintEnd): comparison between signed and unsigned integer expressions [-Wsign-compare]
145         * platform/graphics/TiledBackingStore.cpp:
146         (WebCore::TiledBackingStore::invalidate): comparison between signed and unsigned integer expressions [-Wsign-compare]
147         (WebCore::TiledBackingStore::paint): comparison between signed and unsigned integer expressions [-Wsign-compare]
148         (WebCore::TiledBackingStore::coverageRatio): comparison between signed and unsigned integer expressions [-Wsign-compare]
149         (WebCore::TiledBackingStore::createTiles): comparison between signed and unsigned integer expressions [-Wsign-compare]
150         * platform/graphics/cairo/GLContext.cpp:
151         (WebCore::GLContext::createOffscreenContext): no return statement in function returning non-void [-Wreturn-type]
152
153 2012-09-28  Alberto Garcia  <agarcia@igalia.com>
154
155         TextureMapperGL: fix -Wsign-compare compilation warning.
156         https://bugs.webkit.org/show_bug.cgi?id=97928
157
158         Reviewed by Martin Robinson.
159
160         Use size_t rather than int to iterate over FilterOperations.
161
162         * platform/graphics/texmap/TextureMapperGL.cpp:
163         (WebCore::BitmapTextureGL::applyFilters):
164
165 2013-03-11  Kent Tamura  <tkent@chromium.org>
166
167         Inappropriate validation message for required number/date input elements
168         https://bugs.webkit.org/show_bug.cgi?id=111982
169
170         Reviewed by Kentaro Hara.
171
172         For validation message, badInput messages should take precedence
173         over valueMissing messages because users already filled out the
174         field with a bad value.
175
176         Tests: Update fast/forms/validationMessage.html
177
178         * html/InputType.cpp:
179         (WebCore::InputType::validationMessage):
180         Check badInput first.
181
182 2013-03-11  Kent Tamura  <tkent@chromium.org>
183
184         Refactoring: Move the content of HTMLInputElement::subtreeHasChanged to TextFieldInputType
185         https://bugs.webkit.org/show_bug.cgi?id=103195
186
187         Reviewed by Kentaro Hara.
188
189         HTMLInputElement::subtreeHasChanged is called only if the input is
190         a text field. The code should be moved to TextFieldInputType.
191
192         No new tests. This should not change any behavior.
193
194         * html/HTMLInputElement.cpp:
195         - Remove unnecessary NumberInputType.h inclusion.
196         - Remove convertFromVisibleValue. It was used only by subtreeHasChanged.
197         (WebCore::HTMLInputElement::subtreeHasChanged):
198         Move the code to TextFieldInputType::subtreeHasChanged except
199         calculateAndAdjustDirectionality, which is a protected member of
200         HTMLElement.
201         * html/HTMLInputElement.h:
202         (HTMLInputElement): Remove convertFromVisibleValue.
203
204         * html/InputType.cpp:
205         Move convertFromVisibleValue to TextFieldInputType.
206         (WebCore::InputType::subtreeHasChanged):
207         Add ASSERT_NOT_REACHED.
208         * html/InputType.h:
209         (InputType): Remove convertFromVisibleValue.
210
211         * html/TextFieldInputType.cpp:
212         (WebCore::TextFieldInputType::convertFromVisibleValue):
213         Moved from InputType.
214         (WebCore::TextFieldInputType::subtreeHasChanged):
215         Moved from HTMLInputElement. A latter part is moved to
216         didSetValueByUserEdit to be hooked by SearchInputType.
217         (WebCore::TextFieldInputType::didSetValueByUserEdit):
218         Moved from HTMLInputElement::subtreeHasChanged, and clean up the code.
219         * html/TextFieldInputType.h:
220         (TextFieldInputType):
221         - Move convertFromVisibleValue from InputType.
222         - Add didSetValueByUserEdit and subtreeHasChanged.
223
224         * html/SearchInputType.cpp:
225         (WebCore::SearchInputType::didSetValueByUserEdit):
226         Renamed from subtreeHasChanged, and calls TextFieldInputType::didSetValueByUserEdit.
227         * html/SearchInputType.h:
228         (SearchInputType): Rename subtreeHasChanged to didSetValueByUserEdit.
229
230 2012-11-22  Kentaro Hara  <haraken@chromium.org>
231
232         [V8] Move WorkerExecutionContextProxy::initializeIfNeeded() to V8Initializer
233         https://bugs.webkit.org/show_bug.cgi?id=103061
234
235         Reviewed by Adam Barth.
236
237         This is an incremental step to remove WorkerExecutionContextProxy.
238         This patch moves WorkerExecutionContextProxy::initializeIfNeeded() to V8Initializer.
239         This patch also renames methods so that the names become consistent
240         between the main thread and workers.
241
242         No tests. No change in behavior.
243
244         * bindings/v8/V8Initializer.cpp:
245         (WebCore::reportFatalErrorInMainThread):
246         (WebCore::messageHandlerInMainThread):
247         (WebCore::failedAccessCheckCallbackInMainThread):
248         (WebCore::V8Initializer::initializeMainThreadIfNeeded):
249         (WebCore::reportFatalErrorInWorker):
250         (WebCore):
251         (WebCore::messageHandlerInWorker):
252         (WebCore::V8Initializer::initializeWorkerIfNeeded):
253         * bindings/v8/V8Initializer.h:
254         (V8Initializer):
255         * bindings/v8/WorkerContextExecutionProxy.cpp:
256         (WebCore::WorkerContextExecutionProxy::WorkerContextExecutionProxy):
257         * bindings/v8/WorkerContextExecutionProxy.h:
258         (WorkerContextExecutionProxy):
259
260 2012-11-25  Christophe Dumez  <christophe.dumez@intel.com>
261
262         [EFL] Refactor RenderThemeEfl::ThemePartCacheEntry::reuse()
263         https://bugs.webkit.org/show_bug.cgi?id=103189
264
265         Reviewed by Kenneth Rohde Christiansen.
266
267         Check if the entry size and type changed in
268         RenderThemeEfl::ThemePartCacheEntry::reuse() to avoid
269         useless processing if one of them did not change.
270
271         Remove useless call to cairo_surface_finish() since
272         we are using a smart pointer for the surface.
273
274         Resize the edge object *after* loading its content
275         from the theme file as it seems more logical this
276         way.
277
278         No new tests, no behavior change for layout tests.
279
280         * platform/efl/RenderThemeEfl.cpp:
281         (WebCore::RenderThemeEfl::ThemePartCacheEntry::reuse):
282         * platform/efl/RenderThemeEfl.h:
283         (ThemePartCacheEntry):
284
285 2012-11-25  Ryosuke Niwa  <rniwa@webkit.org>
286
287         Rename DynamicNodeList to LiveNodeList
288         https://bugs.webkit.org/show_bug.cgi?id=103197
289
290         Reviewed by Ojan Vafai.
291
292         Rename DynamicNodeList to LiveNodeList to match the terminology used in DOM4 working draft:
293         http://www.w3.org/TR/2012/WD-dom-20120405/#concept-collection-live
294         "A collection (either NodeList or HTMLCollection) can be either live or static".
295
296         Also rename DynamicNodeListCacheBase to LiveNodeListBase, and merge DynamicSubtreeNodeList
297         into LiveNodeList (old DynamicNodeList) now that the only difference between those two classes
298         is the former calling registerNodeListCache and unregisterNodeListCache on Document.
299
300         This patch completes the series of simplification of NodeList/HTMLCollection classes.
301
302         * CMakeLists.txt:
303         * GNUmakefile.list.am:
304         * Target.pri:
305         * WebCore.gypi:
306         * WebCore.xcodeproj/project.pbxproj:
307         * bindings/js/JSHTMLOptionsCollectionCustom.cpp:
308         (WebCore::getNamedItems):
309         * bindings/js/JSNodeListCustom.cpp:
310         (WebCore::JSNodeListOwner::isReachableFromOpaqueRoots):
311         * bindings/v8/custom/V8NodeListCustom.cpp:
312         (WebCore::V8NodeList::opaqueRootForGC):
313         * dom/ChildNodeList.cpp:
314         (WebCore::ChildNodeList::ChildNodeList):
315         (WebCore::ChildNodeList::nodeMatches):
316         * dom/ChildNodeList.h:
317         * dom/ClassNodeList.cpp:
318         (WebCore::ClassNodeList::ClassNodeList):
319         * dom/ClassNodeList.h:
320         * dom/DOMAllInOne.cpp:
321         * dom/Document.cpp:
322         (WebCore::Document::registerNodeListCache):
323         (WebCore::Document::unregisterNodeListCache):
324         (WebCore):
325         * dom/Document.h:
326         (WebCore):
327         (Document):
328         * dom/DynamicNodeList.cpp: Removed.
329         * dom/DynamicNodeList.h: Removed.
330         * dom/LiveNodeList.cpp: Copied from Source/WebCore/dom/DynamicNodeList.cpp.
331         (WebCore::LiveNodeListBase::rootNode):
332         (WebCore::LiveNodeListBase::invalidateCache):
333         (WebCore::LiveNodeListBase::invalidateIdNameCacheMaps):
334         (WebCore::LiveNodeListBase::reportMemoryUsage):
335         (WebCore::LiveNodeList::namedItem):
336         * dom/LiveNodeList.h: Copied from Source/WebCore/dom/DynamicNodeList.h.
337         (WebCore::LiveNodeListBase::LiveNodeListBase):
338         (WebCore::LiveNodeListBase::shouldInvalidateTypeOnAttributeChange):
339         (WebCore::LiveNodeList::LiveNodeList):
340         (WebCore::LiveNodeList::~LiveNodeList):
341         (LiveNodeList):
342         * dom/MicroDataItemList.cpp:
343         (WebCore::MicroDataItemList::MicroDataItemList):
344         * dom/MicroDataItemList.h:
345         * dom/NameNodeList.cpp:
346         (WebCore::NameNodeList::NameNodeList):
347         * dom/NameNodeList.h:
348         * dom/Node.cpp:
349         (WebCore::shouldInvalidateNodeListCachesForAttr):
350         (WebCore::Document::invalidateNodeListCaches):
351         * dom/Node.h:
352         (WebCore):
353         * dom/NodeList.h:
354         (WebCore::NodeList::isLiveNodeList):
355         * dom/NodeRareData.h:
356         (NodeListsNodeData):
357         (WebCore::NodeListsNodeData::removeCacheWithAtomicName):
358         (WebCore::NodeListsNodeData::removeCacheWithName):
359         (WebCore::NodeListsNodeData::removeCacheWithQualifiedName):
360         (WebCore::NodeListsNodeData::adoptTreeScope):
361         * dom/PropertyNodeList.cpp:
362         (WebCore::PropertyNodeList::PropertyNodeList):
363         * dom/PropertyNodeList.h:
364         * dom/TagNodeList.cpp:
365         (WebCore::TagNodeList::TagNodeList):
366         * dom/TagNodeList.h:
367         * html/HTMLCollection.cpp:
368         (WebCore::HTMLCollection::HTMLCollection):
369         (WebCore::LiveNodeListBase::iterateForNextNode):
370         (WebCore::LiveNodeListBase::itemBeforeOrAfter):
371         (WebCore::LiveNodeListBase::itemBefore):
372         (WebCore::LiveNodeListBase::itemAfter):
373         (WebCore::LiveNodeListBase::isLastItemCloserThanLastOrCachedItem):
374         (WebCore::LiveNodeListBase::isFirstItemCloserThanCachedItem):
375         (WebCore::LiveNodeListBase::setItemCache):
376         (WebCore::LiveNodeListBase::length):
377         (WebCore::LiveNodeListBase::item):
378         (WebCore::LiveNodeListBase::itemBeforeOrAfterCachedItem):
379         * html/HTMLCollection.h:
380         * html/LabelsNodeList.cpp:
381         (WebCore::LabelsNodeList::LabelsNodeList):
382         * html/LabelsNodeList.h:
383         * html/RadioNodeList.cpp:
384         (WebCore::RadioNodeList::RadioNodeList):
385         * html/RadioNodeList.h:
386
387 2012-10-08  Robert Hogan  <robert@webkit.org>
388
389         Changing position:relative to position:static results in mis-positioned div
390         https://bugs.webkit.org/show_bug.cgi?id=26397
391
392         Reviewed by Ojan Vafai.
393
394         When a block changes position from relative to static it is no longer the containing block for any
395         positioned objects it may have. If any of those positioned objects actually have a position specified
396         they are going to need a layout as their new containing block will likely have a different location they
397         need to offset from. Positioned objects without a specified position always get a layout anyway 
398         in layoutPositionedObjects() so no need to worry about them in this situation. 
399
400         Test: fast/block/abspos-child-container-changes-from-relative-to-static-expected.html
401
402         * rendering/RenderBlock.cpp:
403         (WebCore::RenderBlock::styleWillChange):
404         (WebCore::RenderBlock::layoutPositionedObjects):
405         (WebCore::RenderBlock::removePositionedObjects):
406         * rendering/RenderBlock.h:
407         (RenderBlock):
408
409 2012-11-25  Kent Tamura  <tkent@chromium.org>
410
411         Correct input[type=number] value sanitization for user-input
412         https://bugs.webkit.org/show_bug.cgi?id=103018
413
414         Reviewed by Kentaro Hara.
415
416         If a number field has non-number string, HTMLInputElement::value is not
417         updated and returns the past valid value. It doesn't match to the value
418         sanitization algorithm defined by the HTML standard [1], and Opera's
419         behavior. We should sanitize non-number strings to "".
420
421         [1] http://www.whatwg.org/specs/web-apps/current-work/multipage/states-of-the-type-attribute.html#number-state-(type=number)
422         > The value sanitization algorithm is as follows: If the value of the
423         > element is not a valid floating-point number, then set it to the empty
424         > string instead.
425
426         No new tests. Update existing tests;
427         fast/forms/number/number-commit-valid-only.html and
428         fast/forms/number/number-unacceptable-style.html
429
430         * html/HTMLInputElement.cpp:
431         (WebCore::HTMLInputElement::subtreeHasChanged):
432         Remove isAcceptableValue check.
433
434         * html/HTMLInputElement.h:
435         (HTMLInputElement): isAcceptableValue is no longer needed.
436         * html/InputType.cpp: Remove isAcceptableValue.
437         * html/InputType.h: Ditto.
438         * html/NumberInputType.cpp: Ditto.
439         (WebCore::NumberInputType::hasUnacceptableValue):
440         Fold the isAcceptableValue content into this.
441         * html/NumberInputType.h:
442         (NumberInputType): Remove isAcceptableValue.
443
444 2012-12-11  Viatcheslav Ostapenko  <sl.ostapenko@samsung.com>
445
446         Remove conversion to/from float and float division from ImageFrame::setRGBA
447         https://bugs.webkit.org/show_bug.cgi?id=103693
448
449         Reviewed by Brent Fulgham.
450
451         Replace floating point operations used for alpha premultiply with fixed point arithmetic
452         which is basically integer operations. Allows to shave extra couple percent from decoding
453         images with transparency.
454
455         Covered by existing tests.
456
457         * platform/image-decoders/ImageDecoder.h:
458         (ImageFrame):
459         (WebCore::ImageFrame::fixPointUnsignedMultiply):
460         (WebCore::ImageFrame::setRGBA):
461
462 2012-11-30  Jer Noble  <jer.noble@apple.com>
463
464         Unreviewed Windows build fix.
465
466         Add a default: entry to an case statement to fix a build error when compiled in VS2005.
467
468         * html/MediaController.cpp:
469         (MediaController::playbackState):
470
471 2012-11-28  Byungwoo Lee  <bw80.lee@samsung.com>
472
473         [EFL] Use mutex locker in wakeUp() to ensure thread-safety.
474         https://bugs.webkit.org/show_bug.cgi?id=101132
475
476         Reviewed by Gyuyoung Kim.
477
478         Add mutex locker for the ecore pipe to ensure thread-safety of
479         RunLoop::wakeUp().
480
481         RunLoop::wakeUp() can be called by multiple thread. It uses
482         ecore_pipe_write() function but the function is not thread-safe.
483
484         * platform/RunLoop.h:
485         (RunLoop):
486         * platform/efl/RunLoopEfl.cpp:
487         (WebCore::RunLoop::wakeUp):
488
489 2012-11-09  Huang Dongsung  <luxtella@company100.net>
490
491         Coordinated Graphics: Remove a backing store of GraphicsLayer when the layer is far from the viewport.
492         https://bugs.webkit.org/show_bug.cgi?id=101656
493
494         Reviewed by Kenneth Rohde Christiansen.
495
496         TiledBackingStore computes cover and keep rects to create, keep or remove tiles
497         smartly, but currently TiledBackingStore expects a contents rect is big enough
498         to cover the visibleRect. However, when CoordinatedGraphicsLayer uses TBS, it
499         is usually wrong expectation.
500
501         We must compute cover and keep rects using the visibleRect, instead of
502         the rect intersecting the visibleRect with m_rect, because TBS can be
503         used as a backing store of GraphicsLayer and the visible rect usually
504         does not intersect with m_rect.
505         In the below case, the intersecting rect is an empty.
506
507          +---------------+
508          |               |
509          |   m_rect      |
510          |       +-------|-----------------------+
511          |       | HERE  |  cover or keep        |
512          +---------------+      rect             |
513                  |         +---------+           |
514                  |         | visible |           |
515                  |         |  rect   |           |
516                  |         +---------+           |
517                  |                               |
518                  |                               |
519                  +-------------------------------+
520
521         We must create or keep the tiles in the HERE region. Currently in the
522         case, we do not create or keep tiles on the HERE region. Moreover, in
523         the case, we early return, which means we don't remove any tiles. It
524         causes to waste heap and video memory.
525
526         This patch changes TiledBackingStore to manage tiles smartly for
527         Coordinated Graphics.
528
529         Changing cache policy is not testable in layout tests.
530
531         * platform/graphics/TiledBackingStore.cpp:
532         (WebCore::TiledBackingStore::visibleRect):
533         (WebCore::TiledBackingStore::visibleAreaIsCovered):
534         (WebCore::TiledBackingStore::createTiles):
535         (WebCore::TiledBackingStore::adjustForContentsRect):
536         (WebCore::TiledBackingStore::removeAllNonVisibleTiles):
537         * platform/graphics/TiledBackingStore.h:
538         (TiledBackingStore):
539
540 2012-10-10  Christophe Dumez  <christophe.dumez@intel.com>
541
542         SQLResultSet.rowsAffected not cleared
543         https://bugs.webkit.org/show_bug.cgi?id=46070
544
545         Reviewed by Kenneth Rohde Christiansen.
546
547         SQLResultSet.rowsAffected is supposed to return the number
548         of rows that were changed by the statement. For "SELECT"
549         statements, it should return 0.
550
551         However, our implementation currently relies on sqlite3_changes()
552         to compute this value. sqlite3_changes() returns the number of
553         direct row changes in the most recent INSERT, UPDATE, or DELETE
554         statement within the same trigger context. Unfortunately, the
555         most recent INSERT, UPDATE, or DELETE statement may not be the
556         last statement. As a consequence, if you INSERT 1 row, then
557         do a SELECT, SQLResultSet.rowsAffected will be 1 for both the
558         INSERT and the SELECT statements.
559
560         The proposed solution is to use sqlite3_total_changes() instead
561         of sqlite3_changes(). sqlite3_total_changes() returns the number
562         of row changes caused by INSERT, UPDATE or DELETE statements since
563         the database connection was opened. We now store the value
564         returned by sqlite3_total_changes() before each statement in
565         order to return the count difference in
566         SQLiteDatabase::lastChanges().
567
568         Test: storage/websql/execute-sql-rowsAffected.html
569
570         * platform/sql/SQLiteDatabase.cpp:
571         (WebCore::SQLiteDatabase::SQLiteDatabase):
572         (WebCore::SQLiteDatabase::updateLastChangesCount):
573         (WebCore):
574         (WebCore::SQLiteDatabase::lastChanges):
575         * platform/sql/SQLiteDatabase.h:
576         (SQLiteDatabase):
577         * platform/sql/SQLiteStatement.cpp:
578         (WebCore::SQLiteStatement::step):
579
580 2012-11-20  Keishi Hattori  <keishi@webkit.org>
581
582         Week picker width is too small
583         https://bugs.webkit.org/show_bug.cgi?id=102766
584
585         Reviewed by Kent Tamura.
586
587         The width of week picker was too small because we were forgetting about
588         the week number column when calculating the desired width.
589
590         No new tests. Covered by week-picker-appearance*.html.
591
592         * Resources/pagepopups/calendarPicker.css:
593         (.week-mode .week-column): Needs to be table-cell.
594         * Resources/pagepopups/calendarPicker.js:
595         (CalendarPicker.prototype.fixWindowSize):
596
597 2012-11-20  Xabier Rodriguez Calvar  <calvaris@igalia.com>
598
599         [GTK] no volume slider in HTML5 media element controls
600         https://bugs.webkit.org/show_bug.cgi?id=97192
601
602         Reviewed by Philippe Normand.
603
604         r115829 was causing this regression so it was partially
605         reverted. The revert causes some small regressions, in the tests
606         but it is better to have the volume slider shown.
607
608         * css/mediaControlsGtk.css:
609         (audio::-webkit-media-controls-panel)
610         (video::-webkit-media-controls-panel): Partially reverted
611         r115829.
612
613 2012-11-19  Antti Koivisto  <antti@apple.com>
614
615         Collect user style sheets in DocumentStyleSheetCollection
616         https://bugs.webkit.org/show_bug.cgi?id=102683
617
618         Reviewed by Andreas Kling.
619
620         Move the user stylesheet collection logic from StyleResolver to DocumentStyleSheetCollection.
621         
622         * css/StyleResolver.cpp:
623         (WebCore::StyleResolver::StyleResolver):
624         (WebCore::StyleResolver::collectRulesFromUserStyleSheets):
625         (WebCore::collectCSSOMWrappers):
626         * css/StyleResolver.h:
627         (StyleResolver):
628         * dom/DocumentStyleSheetCollection.cpp:
629         (WebCore::DocumentStyleSheetCollection::~DocumentStyleSheetCollection):
630         (WebCore::DocumentStyleSheetCollection::pageUserStyleSheet):
631         (WebCore::DocumentStyleSheetCollection::clearPageUserStyleSheet):
632         (WebCore::DocumentStyleSheetCollection::updatePageUserStyleSheet):
633         (WebCore::DocumentStyleSheetCollection::analyzeStyleSheetChange):
634         (WebCore::collectActiveStyleSheetsFromSeamlessParents):
635         (WebCore::DocumentStyleSheetCollection::updateStyleResolver):
636         
637             Factor the StyleResolver updating code to function.
638
639         (WebCore):
640         (WebCore::DocumentStyleSheetCollection::updateActiveStyleSheets):
641         
642             Collect the user style sheets. Some renaming and other minor refactoring.
643
644         (WebCore::DocumentStyleSheetCollection::reportMemoryUsage):
645         * dom/DocumentStyleSheetCollection.h:
646         (WebCore::DocumentStyleSheetCollection::activeUserStyleSheets):
647         
648             Add activeUserStyleSheets vector that contains all user stylesheets from different sources,
649             similar to activeAuthorStyleSheets.
650
651         (DocumentStyleSheetCollection):
652         (WebCore::DocumentStyleSheetCollection::documentUserStyleSheets):
653
654 2012-11-20  Elliott Sprehn  <esprehn@chromium.org>
655
656         Remove unneeded optimization in Element::isInTopLayer
657         https://bugs.webkit.org/show_bug.cgi?id=102772
658
659         Reviewed by Andreas Kling.
660
661         There's no reason to worry about calling elementRareData() multiple
662         times in this non performance sensitive code path as it's only used
663         in HTMLDialogElement's showModal and close methods.
664
665         No new tests, just simplification.
666
667         * dom/Element.cpp:
668         (WebCore::Element::setIsInTopLayer):
669
670 2012-11-20  Elliott Sprehn  <esprehn@chromium.org>
671
672         Simplify Element::isSpellCheckingEnabled
673         https://bugs.webkit.org/show_bug.cgi?id=102779
674
675         Reviewed by Andreas Kling.
676
677         isSpellCheckingEnabled contains logic that duplicates parentOrHostElement
678         and can be simplified by just calling that.
679
680         No new tests, just simplification.
681
682         * dom/Element.cpp:
683         (WebCore::Element::isSpellCheckingEnabled):
684
685 2012-11-20  Kihong Kwon  <kihong.kwon@samsung.com>
686
687         Apply DeviceController as parent class of DeviceMotionController.
688         https://bugs.webkit.org/show_bug.cgi?id=102578
689
690         Reviewed by Hajime Morita.
691
692         DeviceController needs to be applied as parent class of DeviceMotionController
693         because DeviceController which is extracted as parent class of
694         DeviceMotionController and DeviceOrientationController is already added.
695         Therefore duplicated implementation can be removed.
696
697         Covered by existing tests.
698
699         * dom/DeviceMotionClient.h:
700         * dom/DeviceMotionController.cpp:
701         (WebCore::DeviceMotionController::DeviceMotionController):
702         (WebCore::DeviceMotionController::didChangeDeviceMotion):
703         (WebCore::DeviceMotionController::deviceMotionClient):
704         (WebCore::DeviceMotionController::hasLastData):
705         (WebCore::DeviceMotionController::getLastEvent):
706         (WebCore::DeviceMotionController::from):
707         (WebCore):
708         * dom/DeviceMotionController.h:
709         (WebCore):
710         (WebCore::DeviceMotionController::~DeviceMotionController):
711         (DeviceMotionController):
712         * dom/Document.cpp:
713         Remove all implementations which are related DeviceOrientationEvnet and DeviceMotionEvent.
714         Because DeviceController checks suspend and stop status of active dom object before dispatchEvent.
715         (WebCore::Document::suspendActiveDOMObjects):
716         (WebCore::Document::resumeActiveDOMObjects):
717         * loader/EmptyClients.h:
718         * page/DOMWindow.cpp:
719         (WebCore::DOMWindow::addEventListener):
720         (WebCore::DOMWindow::removeEventListener):
721         (WebCore::DOMWindow::removeAllEventListeners):
722
723 2012-11-20  Kentaro Hara  <haraken@chromium.org>
724
725         [V8] Remove V8ParameterBase
726         https://bugs.webkit.org/show_bug.cgi?id=102774
727
728         Reviewed by Adam Barth.
729
730         V8ParameterBase is a redundant indirection.
731         We can flatten methods of V8ParameterBase to V8Parameter.
732
733         No tests. No change in behavior.
734
735         * bindings/v8/V8StringResource.h:
736         (WebCore::V8Parameter::V8Parameter):
737         (V8Parameter):
738         (WebCore::V8Parameter::toString):
739         (WebCore::::prepare):
740
741 2012-11-20  Kunihiko Sakamoto  <ksakamoto@chromium.org>
742
743         Use localized date-time format in datetime input
744         https://bugs.webkit.org/show_bug.cgi?id=102769
745
746         Reviewed by Kent Tamura.
747
748         Move the implementation of Locale::dateTimeFormatWithSeconds and Locale::dateTimeFormatWithoutSeconds
749         to its subclasses and use platform-specific methods to get date-time pattern.
750         Because Windows does not provide an API to get date-time pattern. We use fixed "{date} {time}"
751         pattern for Windows.
752
753         Test: fast/forms/datetime/datetime-appearance-l10n.html
754
755         * platform/text/LocaleICU.cpp:
756         (WebCore::LocaleICU::initializeDateTimeFormat): Retrieve datetime formats too.
757         (WebCore::LocaleICU::dateTimeFormatWithSeconds): Added.
758         (WebCore):
759         (WebCore::LocaleICU::dateTimeFormatWithoutSeconds): Added.
760         * platform/text/LocaleICU.h:
761         (LocaleICU): Add m_dateTimeFormatWithSeconds and m_dateTimeFormatWithoutSeconds.
762         * platform/text/LocaleNone.cpp:
763         (LocaleNone):
764         (WebCore::LocaleNone::dateTimeFormatWithSeconds): Added. Always returns "dd/MM/yyyyy HH:mm:ss".
765         (WebCore):
766         (WebCore::LocaleNone::dateTimeFormatWithoutSeconds): Added. Always returns "dd/MM/yyyyy HH:mm".
767         * platform/text/PlatformLocale.cpp:
768         (WebCore): Remove dateTimeFormatWithSeconds() and dateTimeFormatWithoutSeconds() as these are now pure virtual.
769         * platform/text/PlatformLocale.h:
770         (Locale): Make dateTimeFormatWithSeconds() and dateTimeFormatWithoutSeconds() pure virtual.
771         * platform/text/mac/LocaleMac.h:
772         (LocaleMac): Add m_dateTimeFormatWithSeconds and m_dateTimeFormatWithoutSeconds.
773         * platform/text/mac/LocaleMac.mm:
774         (WebCore::LocaleMac::dateTimeFormatterWithSeconds): Added.
775         (WebCore):
776         (WebCore::LocaleMac::dateTimeFormatterWithoutSeconds): Added.
777         (WebCore::LocaleMac::dateTimeFormatWithSeconds): Added.
778         (WebCore::LocaleMac::dateTimeFormatWithoutSeconds): Added.
779         * platform/text/win/LocaleWin.cpp:
780         (WebCore::LocaleWin::dateTimeFormatWithSeconds): Copied from original Locale::dateTimeFormatWithSeconds().
781         (WebCore):
782         (WebCore::LocaleWin::dateTimeFormatWithoutSeconds): Copied from original Locale::dateTimeFormatWithoutSeconds().
783         * platform/text/win/LocaleWin.h:
784         (LocaleWin): Add m_dateTimeFormatWithSeconds and m_dateTimeFormatWithoutSeconds.
785
786 2012-11-20  Sheriff Bot  <webkit.review.bot@gmail.com>
787
788         Unreviewed, rolling out r135257.
789         http://trac.webkit.org/changeset/135257
790         https://bugs.webkit.org/show_bug.cgi?id=102777
791
792         Broke Chromium Debug compilation (Requested by yurys on
793         #webkit).
794
795         * bindings/v8/DOMDataStore.h:
796         (WebCore::DOMDataStore::getNode):
797
798 2012-11-20  Vsevolod Vlasov  <vsevik@chromium.org>
799
800         Web Inspector: Revert r133149: breaks revision reverting
801         https://bugs.webkit.org/show_bug.cgi?id=102672
802
803         Reviewed by Yury Semikhatsky.
804
805         * inspector/front-end/JavaScriptSourceFrame.js:
806         (WebInspector.JavaScriptSourceFrame):
807         (WebInspector.JavaScriptSourceFrame.prototype._onFormattedChanged):
808         (WebInspector.JavaScriptSourceFrame.prototype._onWorkingCopyCommitted):
809         (WebInspector.JavaScriptSourceFrame.prototype._innerSetContent):
810
811 2012-11-19  Csaba Osztrogonác  <ossy@webkit.org>
812
813         [Qt][Win] Unreviewed speculative buildfix after r135217.
814
815         * platform/win/WindowsExtras.h:
816
817 2012-11-19  Yury Semikhatsky  <yurys@chromium.org>
818
819         Unreviewed. Fix Chromium Win compilation after r135255.
820         https://bugs.webkit.org/show_bug.cgi?id=97803
821
822         * WebCore.gypi: removed reference to platform/wince/DragDataWince.cpp which
823         was deleted in the aforementioned change.
824
825 2012-11-19  Kentaro Hara  <haraken@chromium.org>
826
827         [V8] Merge getCachedWrapper(Node*) into DOMDataStore
828         https://bugs.webkit.org/show_bug.cgi?id=102158
829
830          Reviewed by Adam Barth.
831
832         A follow-up patch for r135230. This patch adds a correct ASSERTION.
833
834         No tests. No change in behavior.
835
836         * bindings/v8/DOMDataStore.h:
837         (WebCore::DOMDataStore::getNode):
838
839 2012-11-19  Kentaro Hara  <haraken@chromium.org>
840
841         [JSC] Replace $implClassName with $interfaceName in CodeGeneratorJS.pm
842         https://bugs.webkit.org/show_bug.cgi?id=102757
843
844         Reviewed by Adam Barth.
845
846         In CodeGeneratorJS.pm $implClassName and $interfaceName are
847         equivalent. We're using them interchangeably. We should replace
848         $implClassName with $interfaceName.
849
850         No tests. No change in behavior.
851
852         * bindings/scripts/CodeGeneratorJS.pm:
853         (AddClassForwardIfNeeded):
854         (GenerateGetOwnPropertySlotBody):
855         (GenerateGetOwnPropertyDescriptorBody):
856         (GenerateHeader):
857         (GenerateOverloadedFunction):
858         (GenerateImplementation):
859         (GenerateParametersCheck):
860         (GenerateImplementationFunctionCall):
861         (NativeToJSValue):
862
863 2012-11-19  Patrick Gansterer  <paroga@webkit.org>
864
865         Port DragDataWin.cpp to WinCE
866         https://bugs.webkit.org/show_bug.cgi?id=97803
867
868         Reviewed by Brent Fulgham.
869
870         Add two simple #if OS(WINCE) to DragDataWin.cpp, so it can be used by the WinCE port too.
871
872         * PlatformWinCE.cmake:
873         * platform/win/DragDataWin.cpp:
874         (WebCore::DragData::containsFiles):
875         (WebCore::DragData::numberOfFiles):
876         (WebCore::DragData::asFilenames):
877         * platform/wince/DragDataWinCE.cpp: Removed.
878
879 2012-11-19  Pan Deng  <pan.deng@intel.com>
880
881         [Web Inspector] This patch makes script line number search-able in Timeline panel.
882         https://bugs.webkit.org/show_bug.cgi?id=101910.
883
884         Reviewed by Pavel Feldman.
885
886         Script line number is visible in Timeline panel, however, not search-able. This patch makes it search-able.
887
888         No new tests. 
889
890         * inspector/front-end/TimelinePanel.js:
891         (WebInspector.TimelineRecordListRow.prototype.update):
892         (WebInspector.TimelineRecordListRow.testContentMatching):
893         * inspector/front-end/TimelinePresentationModel.js:
894         (WebInspector.TimelinePresentationModel.Record.prototype._generatePopupContentWithImagePreview):
895         (WebInspector.TimelinePresentationModel.Record.prototype._refreshDetails):
896         (WebInspector.TimelinePresentationModel.Record.prototype.detailsNode):
897         (WebInspector.TimelinePresentationModel.Record.prototype._createSpanWithText):
898         (WebInspector.TimelinePresentationModel.Record.prototype._getRecordDetails):
899
900 2012-11-19  Elliott Sprehn  <esprehn@chromium.org>
901
902         Remove unneeded null check in NodeRendererFactory::createRendererIfNeeded
903         https://bugs.webkit.org/show_bug.cgi?id=102765
904
905         Reviewed by Ojan Vafai.
906
907         If parentRenderer() was null then we return early from
908         createRendererIfNeeded() because shouldCreateRenderer() will return false
909         so there's no reason to check for it again.
910
911         Additionally if either parentRenderer() or style() is null then
912         implementations of rendererIsNeeded() will crash, so add asserts to
913         make this assumption more clear.
914
915         No new tests, just simplification.
916
917         * dom/NodeRenderingContext.cpp:
918         (WebCore::NodeRendererFactory::createRendererIfNeeded):
919
920 2012-11-19  Shinya Kawanaka  <shinyak@chromium.org>
921
922         [Refactoring] Remove WebCore::isInsertionPoint(Node*)
923         https://bugs.webkit.org/show_bug.cgi?id=102756
924
925         Reviewed by Hajime Morita.
926
927         Now that WebCore::isInsertionPoint(Node* node) does nothing special. We can remove this.
928
929         No new tests, simple refactoring.
930
931         * dom/ComposedShadowTreeWalker.cpp:
932         (WebCore::ComposedShadowTreeWalker::traverseNodeEscapingFallbackContents):
933         * dom/ContainerNode.cpp:
934         (WebCore::childAttachedAllowedWhenAttachingChildren):
935         * html/shadow/ContentDistributor.cpp:
936         (WebCore::ContentDistributor::invalidate):
937         * html/shadow/InsertionPoint.cpp:
938         (WebCore::InsertionPoint::isActive):
939         * html/shadow/InsertionPoint.h:
940         (WebCore::toInsertionPoint):
941         (WebCore::isActiveInsertionPoint):
942         (WebCore::isLowerEncapsulationBoundary):
943         (WebCore::parentNodeForDistribution):
944         * testing/Internals.cpp:
945         (WebCore::Internals::isValidContentSelect):
946
947 2012-11-19  Shinya Kawanaka  <shinyak@chromium.org>
948
949         [Refactoring] Remove shadowPseudoId() and use setPseudo() in <progress> ElementShadow.
950         https://bugs.webkit.org/show_bug.cgi?id=101703
951
952         Reviewed by Hajime Morita.
953
954         We're migrating shadowPseudoId() to pseudo(). We remove shadowPseudoId() from HTMLKeygenElement and use
955         setPseudo()/pseudo() instead.
956
957         No new tests, simple refactoring.
958
959         * html/shadow/ProgressShadowElement.cpp:
960         (WebCore::ProgressInnerElement::ProgressInnerElement):
961         * html/shadow/ProgressShadowElement.h:
962         (ProgressInnerElement):
963         (WebCore::ProgressBarElement::ProgressBarElement):
964         (ProgressBarElement):
965         (WebCore::ProgressValueElement::ProgressValueElement):
966
967 2012-11-19  Yury Semikhatsky  <yurys@chromium.org>
968
969         Unreviewed. Fix Chromium Debug compilation after r135230.
970         https://bugs.webkit.org/show_bug.cgi?id=102158
971
972         Removed ASSERT that used instance field in a static method.
973
974         * bindings/v8/DOMDataStore.h:
975         (WebCore::DOMDataStore::getWrapperFromObject):
976
977 2012-11-19  Chris Guan  <chris.guan@torchmobile.com.cn>
978
979         [Blackberry] When a frame is being detached, cancel all its network jobs.
980         https://bugs.webkit.org/show_bug.cgi?id=102758
981
982         Reviewed by George Staikos.
983
984         I use FrameDestructionObserver to refactor Networkjob code.
985         NetworkJob is inheriting from FrameDestructionObserver to be
986         aware of frame's destroyed. When a frame is being detached,
987         the willDetachPage() can be called in which we can cancel 
988         the job. This patch reverted the fix for RIM PR134207 as well.
989
990         Manually test is on 
991         "http://www.reuters.com/article/2012/01/27/us-greece-idUSTRE80P0DE20120127"
992         which triggers a ping loader.
993
994         No behavior changed, no new layout tests.
995
996         * platform/network/blackberry/NetworkJob.cpp:
997         (WebCore::NetworkJob::NetworkJob):
998         (WebCore::NetworkJob::initialize):
999         (WebCore::NetworkJob::handleNotifyHeaderReceived):
1000         (WebCore::NetworkJob::startNewJobWithRequest):
1001         (WebCore::NetworkJob::frameDestroyed):
1002         (WebCore):
1003         (WebCore::NetworkJob::willDetachPage):
1004         * platform/network/blackberry/NetworkJob.h:
1005         (NetworkJob):
1006         * platform/network/blackberry/NetworkManager.cpp:
1007         (WebCore::NetworkManager::startJob):
1008         * platform/network/blackberry/NetworkManager.h:
1009         (NetworkManager):
1010         * platform/network/blackberry/ResourceHandleBlackBerry.cpp:
1011         (WebCore::ResourceHandle::start):
1012         (WebCore::ResourceHandle::loadResourceSynchronously):
1013
1014 2012-11-19  Matt Falkenhagen  <falken@chromium.org>
1015
1016         Implement the new stacking layer needed by the Fullscreen API and the new <dialog> element
1017         https://bugs.webkit.org/show_bug.cgi?id=84796
1018
1019         Reviewed by Julien Chaffraix.
1020
1021         This adds the top layer element stack to Document. The Fullscreen
1022         specification mandates that we track the ordering of the DOM nodes in
1023         the top layer, not the renderers. That makes it hard to implement on
1024         the rendering side only.
1025
1026         Elements in the top layer get a layer. Layers in the top layer are
1027         added to the root layer's child list after normal layers and in the
1028         order of the top layer stack. This way, the top layer appears above
1029         all other stacking contexts and in the desired order.
1030
1031         In addition, top layer renderers are added as children of RenderView
1032         in top layer order. This is to satisfy requirements such as the
1033         containing block of an element in the top layer is the initial
1034         containing block. It also allows RenderLayer to know the proper
1035         stacking order of the layers without going directly from the top layer
1036         elements to their layers.
1037
1038         So far, only modal dialog elements can be added to the top layer.
1039         The plan is to make the Fullscreen API also use the top layer.
1040
1041         Tests: fast/dom/HTMLDialogElement/top-layer-containing-block.html
1042                fast/dom/HTMLDialogElement/top-layer-display-none.html
1043                fast/dom/HTMLDialogElement/top-layer-nesting.html
1044                fast/dom/HTMLDialogElement/top-layer-stacking-dynamic.html
1045                fast/dom/HTMLDialogElement/top-layer-stacking.html
1046
1047         * WebCore.exp.in:
1048         * css/StyleResolver.cpp:
1049         (WebCore::StyleResolver::adjustRenderStyle): Elements in the top layer have a stacking context.
1050         * dom/Document.cpp:
1051         (WebCore):
1052         (WebCore::Document::addToTopLayer):
1053         (WebCore::Document::removeFromTopLayer):
1054         * dom/Document.h:
1055         (Document):
1056         (WebCore::Document::topLayerElements): Add the top layer element stack to Document.
1057         * dom/Element.cpp:
1058         (WebCore::Element::removedFrom):
1059         (WebCore):
1060         (WebCore::Element::isInTopLayer):
1061         (WebCore::Element::setIsInTopLayer):
1062         * dom/Element.h:
1063         * dom/ElementRareData.h:
1064         (ElementRareData):
1065         * dom/Node.cpp:
1066         (WebCore::Node::detach): Add an exception to the assert since top layer elements and their descendants are moved from their
1067         regular position in the render tree.
1068         * dom/NodeRareData.h:
1069         (WebCore::NodeRareData::NodeRareData):
1070         (NodeRareData):
1071         (WebCore::NodeRareData::isInTopLayer):
1072         (WebCore::NodeRareData::setIsInTopLayer):
1073         * dom/NodeRenderingContext.cpp:
1074         (WebCore):
1075         (WebCore::adjustInsertionPointForTopLayerElement):
1076         (WebCore::NodeRendererFactory::createRendererIfNeeded): Add renderers for top layer elements as children of RenderView, and
1077         in top layer stacking order.
1078         * html/HTMLDialogElement.cpp:
1079         (WebCore::HTMLDialogElement::close):
1080         (WebCore::HTMLDialogElement::showModal):
1081         * rendering/RenderLayer.cpp:
1082         (WebCore):
1083         (WebCore::RenderLayer::isInTopLayer):
1084         (WebCore::RenderLayer::isInTopLayerSubtree):
1085         (WebCore::RenderLayer::rebuildZOrderLists): Add the top layer stack after normal layer collection.
1086         (WebCore::RenderLayer::collectLayers): Avoid adding layers for top layer elements during normal layer collection.
1087         * rendering/RenderLayer.h:
1088         (RenderLayer):
1089
1090 2012-11-19  Kentaro Hara  <haraken@chromium.org>
1091
1092         In CodeGeneratorObj.pm we should rename $dataNode to $interface.
1093         https://bugs.webkit.org/show_bug.cgi?id=102749
1094
1095         Reviewed by Adam Barth.
1096
1097         $dataNode is misnamed. It should be renamed to $interface.
1098
1099         No tests. No change in behavior.
1100
1101         * bindings/scripts/CodeGeneratorObjC.pm:
1102         (GenerateInterface):
1103         (GetParentImplClassName):
1104         (GetParentAndProtocols):
1105         (GenerateHeader):
1106         (GenerateImplementation):
1107
1108 2012-11-19  Kentaro Hara  <haraken@chromium.org>
1109
1110         In CodeGeneratorV8.pm, we should rename $dataNode to $interface
1111         https://bugs.webkit.org/show_bug.cgi?id=102747
1112
1113         Reviewed by Adam Barth.
1114
1115         $dataNode is misnamed. It should be $interface.
1116
1117         No tests. No change in behavior.
1118
1119         * bindings/scripts/CodeGeneratorV8.pm:
1120         (GenerateInterface):
1121         (NeedsCustomOpaqueRootForGC):
1122         (GetGenerateIsReachable):
1123         (GetCustomIsReachable):
1124         (GenerateOpaqueRootForGC):
1125         (GenerateHeader):
1126         (GetInternalFields):
1127         (GenerateHeaderCustomInternalFieldIndices):
1128         (GenerateHeaderNamedAndIndexedPropertyAccessors):
1129         (GenerateHeaderCustomCall):
1130         (IsConstructable):
1131         (GenerateConstructorGetter):
1132         (GenerateNormalAttrGetter):
1133         (GenerateReplaceableAttrSetter):
1134         (GenerateNormalAttrSetter):
1135         (GenerateOverloadedFunctionCallback):
1136         (GenerateFunctionCallback):
1137         (GenerateArgumentsCountCheck):
1138         (GenerateOverloadedConstructorCallback):
1139         (GenerateSingleConstructorCallback):
1140         (GenerateConstructorCallback):
1141         (GenerateEventConstructorCallback):
1142         (GenerateTypedArrayConstructorCallback):
1143         (GenerateNamedConstructorCallback):
1144         (GenerateBatchedAttributeData):
1145         (IsStandardFunction):
1146         (GenerateNonStandardFunction):
1147         (GenerateImplementationIndexer):
1148         (GenerateImplementationNamedPropertyGetter):
1149         (GenerateImplementationCustomCall):
1150         (GenerateImplementationMasqueradesAsUndefined):
1151         (GenerateImplementation):
1152         (GenerateHeaderContentHeader):
1153         (GenerateImplementationContentHeader):
1154         (GenerateCallbackHeader):
1155         (GenerateCallbackImplementation):
1156         (BaseInterfaceName):
1157         (GenerateToV8Converters):
1158         (GetNativeTypeForConversions):
1159         (GetTypeNameOfExternalTypedArray):
1160         (WriteData):
1161
1162 2012-11-19  Keishi Hattori  <keishi@webkit.org>
1163
1164         Move in animation should be disabled until the calendar picker is loaded.
1165         https://bugs.webkit.org/show_bug.cgi?id=102661
1166
1167         Reviewed by Kent Tamura.
1168
1169         On weeks where the first day is in the previous month (e.x. 2013-W01)
1170         the move in animation happens when you open the calendar picker. This
1171         patch disables the move in animation until the calendar picker is fully
1172         loaded.
1173
1174         No new tests.
1175
1176         * Resources/pagepopups/calendarPicker.js:
1177         (CalendarPicker):
1178         (CalendarPicker.prototype._handleWindowResize):
1179         (DaysTable.prototype._startMoveInAnimation):
1180
1181 2012-11-19  Elliott Sprehn  <esprehn@chromium.org>
1182
1183         Clean up loop in NodeRenderingContext::nextRenderer and previousRenderer
1184         https://bugs.webkit.org/show_bug.cgi?id=102743
1185
1186         Reviewed by Hajime Morita.
1187
1188         Clean up while (true) loops in NodeRenderingContext reducing the
1189         amount of code and the need for ASSERT_NOT_REACHED.
1190
1191         No new tests, just simplifcation.
1192
1193         * dom/NodeRenderingContext.cpp:
1194         (WebCore::NodeRenderingContext::nextRenderer):
1195         (WebCore::NodeRenderingContext::previousRenderer):
1196
1197 2012-11-19  Shinya Kawanaka  <shinyak@chromium.org>
1198
1199         [Shadow] attribute pseudo should return empty string instead of null when nothing is specified.
1200         https://bugs.webkit.org/show_bug.cgi?id=102753
1201
1202         Reviewed by Hajime Morita.
1203
1204         The ShadowDOM spec is changed so that attribute 'pseudo' returns empty string instead of null when
1205         no value is set.
1206
1207         Test: fast/dom/shadow/pseudo-attribute.html
1208
1209         * dom/Element.idl:
1210
1211 2012-11-19  Kentaro Hara  <haraken@chromium.org>
1212
1213         In CodeGeneratorGObject.pm we should rename $dataNode to $interface
1214         https://bugs.webkit.org/show_bug.cgi?id=102751
1215
1216         Reviewed by Adam Barth.
1217
1218         $dataNode is misnamed. It should be $interface.
1219
1220         No tests. No change in behavior.
1221
1222         * bindings/scripts/CodeGeneratorGObject.pm:
1223         (GetParentClassName):
1224         (GetParentGObjType):
1225         (GenerateProperties):
1226         (GenerateFunctions):
1227         (GenerateCFile):
1228         (GenerateEventTargetIface):
1229         (Generate):
1230         (WriteData):
1231         (GenerateInterface):
1232
1233 2012-11-19  Kentaro Hara  <haraken@chromium.org>
1234
1235         In CodeGenerator.pm we should rename $dataNode to $interface
1236         https://bugs.webkit.org/show_bug.cgi?id=102754
1237
1238         Reviewed by Adam Barth.
1239
1240         $dataNode is misnamed. It should be $interface.
1241
1242         No tests. No change in behavior.
1243
1244         * bindings/scripts/CodeGenerator.pm:
1245         (ForAllParents):
1246         (AddMethodsConstantsAndAttributesFromParentInterfaces):
1247         (FindSuperMethod):
1248         (IsConstructorTemplate):
1249         (LinkOverloadedFunctions):
1250         (GenerateCompileTimeCheckForEnumsIfNeeded):
1251         (GetVisibleInterfaceName):
1252         (IsSubType):
1253
1254 2012-11-19  Kentaro Hara  <haraken@chromium.org>
1255
1256         In CodeGeneratorCPP.pm we should rename $dataNode to $interface
1257         https://bugs.webkit.org/show_bug.cgi?id=102752
1258
1259         Reviewed by Adam Barth.
1260
1261         $dataNode is misnamed. It should be $interface.
1262
1263         No tests. No change in behavior.
1264
1265         * bindings/scripts/CodeGeneratorCPP.pm:
1266         (GenerateInterface):
1267         (GetParentImplClassName):
1268         (GetParent):
1269         (GenerateHeader):
1270         (GenerateImplementation):
1271
1272 2012-11-19  Kentaro Hara  <haraken@chromium.org>
1273
1274         In CodeGeneratorJS.pm we should rename $dataNode to $interface
1275         https://bugs.webkit.org/show_bug.cgi?id=102748
1276
1277         Reviewed by Adam Barth.
1278
1279         $dataNode is misnamed. It should be $interface.
1280
1281         No tests. No change in behavior.
1282
1283         * bindings/scripts/CodeGeneratorJS.pm:
1284         (GenerateInterface):
1285         (GetParentClassName):
1286         (GetGenerateIsReachable):
1287         (GetCustomIsReachable):
1288         (GenerateGetOwnPropertySlotBody):
1289         (GenerateGetOwnPropertyDescriptorBody):
1290         (GenerateHeaderContentHeader):
1291         (GenerateImplementationContentHeader):
1292         (ShouldGenerateToJSDeclaration):
1293         (ShouldGenerateToJSImplementation):
1294         (GenerateHeader):
1295         (GenerateAttributesHashTable):
1296         (GenerateOverloadedFunction):
1297         (GenerateImplementation):
1298         (GenerateArgumentsCountCheck):
1299         (GenerateParametersCheck):
1300         (GenerateCallbackHeader):
1301         (GenerateCallbackImplementation):
1302         (WriteData):
1303         (GenerateConstructorDeclaration):
1304         (GenerateConstructorDefinition):
1305         (IsConstructable):
1306
1307 2012-11-19  Adam Barth  <abarth@webkit.org>
1308
1309         [V8] Merge getCachedWrapper(Node*) into DOMDataStore
1310         https://bugs.webkit.org/show_bug.cgi?id=102158
1311
1312         Reviewed by Eric Seidel.
1313
1314         This patch is an incremental step towards fully merging the Node code
1315         path with the general code path. After this patch, at least Nodes flow
1316         through the same class.
1317
1318         * Modules/indexeddb/IDBTransactionCoordinator.h:
1319         * bindings/scripts/CodeGeneratorV8.pm:
1320         (GenerateHeader):
1321         (GenerateToV8Converters):
1322         * bindings/v8/DOMDataStore.h:
1323         (WebCore::DOMDataStore::getNode):
1324         (DOMDataStore):
1325         (WebCore::DOMDataStore::getWrapperFromObject):
1326         * bindings/v8/DOMWrapperWorld.cpp:
1327         (WebCore::DOMWrapperWorld::DOMWrapperWorld):
1328         (WebCore):
1329         * bindings/v8/DOMWrapperWorld.h:
1330         (WebCore):
1331         (DOMWrapperWorld):
1332         * bindings/v8/V8DOMWrapper.h:
1333         (V8DOMWrapper):
1334
1335 2012-11-19  Kentaro Hara  <haraken@chromium.org>
1336
1337         In the IDL parser, we should rename $dataNode to $interface
1338         https://bugs.webkit.org/show_bug.cgi?id=102746
1339
1340         Reviewed by Adam Barth.
1341
1342         $dataNode is misnamed. It should be $interface.
1343
1344         No tests. No change in behavior.
1345
1346         * bindings/scripts/IDLParser.pm:
1347         (parseInterface):
1348         (parseException):
1349         (parseAttributeOrOperationRest):
1350         (parseOperationOrIterator):
1351         (parseSpecialOperation):
1352         (parseInterfaceOld):
1353         (parseExceptionOld):
1354         (parseAttributeOrOperationOrIteratorOld):
1355         (parseAttributeOrOperationRestOld):
1356         (applyMemberList):
1357         (applyExtendedAttributeList):
1358         * bindings/scripts/generate-bindings.pl:
1359         * bindings/scripts/preprocess-idls.pl:
1360         (checkIDLAttributes):
1361
1362 2012-11-19  Adam Klein  <adamk@chromium.org>
1363
1364         MutationObserver wrapper should not be collected while still observing
1365         https://bugs.webkit.org/show_bug.cgi?id=102328
1366
1367         Reviewed by Adam Barth.
1368
1369         Use the new opaqueRootForGC helper in V8GCController to put each
1370         MutationObserver wrapper in the same object group as the nodes it's
1371         observing.
1372
1373         Only includes V8 impl for now, JSC impl coming soon.
1374
1375         Tests: fast/mutation/observer-wrapper-dropoff-transient.html
1376                fast/mutation/observer-wrapper-dropoff.html
1377
1378         * bindings/v8/V8GCController.cpp: Add custom code for MutationObserver
1379         with a FIXME to move this out once we update the opaque roots API.
1380         * dom/MutationObserver.cpp:
1381         (WebCore::MutationObserver::getObservedNodes): Plumbing to expose the observed nodes
1382         to the GC controller.
1383         (WebCore):
1384         * dom/MutationObserver.h:
1385         * dom/MutationObserverRegistration.cpp:
1386         (WebCore::MutationObserverRegistration::addRegistrationNodesToSet): More plumbing.
1387         (WebCore):
1388         * dom/MutationObserverRegistration.h:
1389         (MutationObserverRegistration):
1390
1391 2012-11-19  Tony Chang  <tony@chromium.org>
1392
1393         Move more non-settings out of InternalSettings
1394         https://bugs.webkit.org/show_bug.cgi?id=102711
1395
1396         Reviewed by Adam Barth.
1397
1398         Remove userPreferredLanguages, setUserPreferredLanguages and allowRoundingHacks
1399         from internal.settings since they are already exposed by window.internals (in
1400         fact, no one calls the internal.settings version).
1401
1402         Move setUsesOverlayScrollbars from internals.settings to internals because it is
1403         a global (static) setting and not tied to the lifetime of the Settings object.
1404
1405         No new tests, there should be no behavior change since this is a refactor.
1406
1407         * testing/InternalSettings.cpp:
1408         (WebCore::InternalSettings::reset): Remove custom reset code.
1409         (WebCore::InternalSettings::setUsesOverlayScrollbars): Add exception code handling to make it more consistent with other settings setters.
1410         * testing/InternalSettings.h:
1411         * testing/InternalSettings.idl: Remove unnecessary methods.
1412         * testing/Internals.cpp:
1413         (WebCore::Internals::resetToConsistentState): Reset userPreferredLanguages, allowRoundingHacks and overlay scrollbars.
1414         (WebCore::Internals::userPreferredLanguages): Don't go through InternalSettings.
1415         (WebCore::Internals::setUserPreferredLanguages): Don't go through InternalSettings.
1416         (WebCore::Internals::setUsesOverlayScrollbars): Moved from InternalsSettings.
1417         (WebCore::Internals::allowRoundingHacks): Don't go through InternalSettings.
1418
1419 2012-11-19  David Grogan  <dgrogan@chromium.org>
1420
1421         IndexedDB: Complex series of opens/deleteDatabase fails an ASSERT
1422         https://bugs.webkit.org/show_bug.cgi?id=101810
1423
1424         Reviewed by Tony Chang.
1425
1426         Tests - storage/indexeddb/deletedatabase-delayed-by-versionchange.html
1427
1428         * Modules/indexeddb/IDBDatabaseBackendImpl.cpp:
1429         (WebCore::IDBDatabaseBackendImpl::processPendingCalls):
1430         The condition tested by this assert is a valid state.
1431
1432 2012-11-19  Peter Wang  <peter.wang@torchmobile.com.cn>
1433
1434         Web Inspector: [JSC] worker debugger shouldn't stop for "willExecuteProgram" instruction
1435         https://bugs.webkit.org/show_bug.cgi?id=102637
1436
1437         Reviewed by Timothy Hatcher.
1438
1439         Override the interface "willExecuteProgram" to let WorkerScriptDebugServer to avoid to stop for it.
1440
1441         No new DRT test case. Sorry, so far it seems impossible to write a case to controle the popupped
1442         worker inspector window.
1443
1444         * bindings/js/ScriptDebugServer.cpp:
1445         (WebCore::ScriptDebugServer::createCallFrame):
1446         (WebCore::ScriptDebugServer::callEvent):
1447         (WebCore::ScriptDebugServer::willExecuteProgram):
1448         * bindings/js/ScriptDebugServer.h:
1449         (ScriptDebugServer):
1450         * bindings/js/WorkerScriptDebugServer.cpp:
1451         (WebCore::WorkerScriptDebugServer::willExecuteProgram):
1452         (WebCore):
1453         * bindings/js/WorkerScriptDebugServer.h:
1454         (WorkerScriptDebugServer):
1455
1456 2012-11-19  Pratik Solanki  <psolanki@apple.com>
1457
1458         For single element arrays use the pointer into the CFDataRef instead of copying data
1459         https://bugs.webkit.org/show_bug.cgi?id=102306
1460
1461         Reviewed by Brent Fulgham.
1462
1463         Address review comments for slightly nicer code.
1464
1465         * platform/SharedBuffer.cpp:
1466         (WebCore::SharedBuffer::data):
1467         * platform/cf/SharedBufferCF.cpp:
1468         (WebCore::SharedBuffer::singleDataArrayBuffer):
1469
1470 2012-11-19  Chris Rogers  <crogers@google.com>
1471
1472         Remove empirical bass-boost for HRTF spatialization
1473         https://bugs.webkit.org/show_bug.cgi?id=102745
1474
1475         Reviewed by Kenneth Russell.
1476
1477         Some empirically-based post-processing is being removed so that we'll
1478         now process with the exact HRTF impulse response measurements.
1479         Listening tests have determined that this post-processing is not necessary.
1480
1481         * platform/audio/HRTFElevation.cpp:
1482         (WebCore::HRTFElevation::calculateKernelsForAzimuthElevation):
1483         * platform/audio/HRTFKernel.cpp:
1484         (WebCore::HRTFKernel::HRTFKernel):
1485         * platform/audio/HRTFKernel.h:
1486         (WebCore::HRTFKernel::create):
1487         (HRTFKernel):
1488
1489 2012-11-19  Adam Barth  <abarth@webkit.org>
1490
1491         DISALLOW_COPY_AND_ASSIGN is not a WebKit macro
1492         https://bugs.webkit.org/show_bug.cgi?id=102755
1493
1494         Reviewed by Sam Weinig.
1495
1496         WTF_MAKE_NONCOPYABLE is the idiom we use in WebKit.  I don't understand
1497         how this compiles.
1498
1499         * Modules/indexeddb/IDBBackingStore.h:
1500         (RecordIdentifier):
1501
1502 2012-11-19  Chris Rogers  <crogers@google.com>
1503
1504         Implement .detune attribute for BiquadFilterNode
1505         https://bugs.webkit.org/show_bug.cgi?id=102737
1506
1507         Reviewed by Kenneth Russell.
1508
1509         Similar to OscillatorNode, BiquadFilterNode must have a .detune attribute
1510
1511         Tests changed: webaudio/biquad-lowpass.html
1512
1513         * Modules/webaudio/BiquadDSPKernel.cpp:
1514         (WebCore::BiquadDSPKernel::updateCoefficientsIfNecessary):
1515         * Modules/webaudio/BiquadFilterNode.h:
1516         (WebCore::BiquadFilterNode::detune):
1517         * Modules/webaudio/BiquadFilterNode.idl:
1518         * Modules/webaudio/BiquadProcessor.cpp:
1519         (WebCore::BiquadProcessor::BiquadProcessor):
1520         (WebCore::BiquadProcessor::checkForDirtyCoefficients):
1521         * Modules/webaudio/BiquadProcessor.h:
1522         (WebCore::BiquadProcessor::parameter4):
1523         (BiquadProcessor):
1524
1525 2012-11-19  Patrick Gansterer  <paroga@webkit.org>
1526
1527         [WIN] Add WebCore::getRegistryValue()
1528         https://bugs.webkit.org/show_bug.cgi?id=97828
1529
1530         Reviewed by Brent Fulgham.
1531
1532         The new function adds an abstraction to SHGetValue(), which isn't available on WinCE.
1533         Changing the existing files allows us to share more code between WinCE and WinNT in a next step.
1534
1535         * platform/win/MIMETypeRegistryWin.cpp:
1536         (WebCore::mimeTypeForExtension):
1537         (WebCore):
1538         (WebCore::MIMETypeRegistry::getPreferredExtensionForMIMEType):
1539         * platform/win/WindowsExtras.h:
1540         (WebCore::getRegistryValue):
1541         (WebCore):
1542         * plugins/win/PluginDatabaseWin.cpp:
1543         (WebCore::addPluginPathsFromRegistry):
1544         (WebCore::addWindowsMediaPlayerPluginDirectory):
1545         (WebCore::addQuickTimePluginDirectory):
1546         (WebCore::addAdobeAcrobatPluginDirectory):
1547         (WebCore::addJavaPluginDirectory):
1548
1549 2012-11-19  Alpha Lam  <hclam@chromium.org>
1550
1551         Not reviewed. Build fix for Chromium.
1552
1553         Added SkTypes.h includes for Windows.
1554
1555         * platform/graphics/chromium/ImageDecodingStore.h:
1556         * platform/graphics/chromium/ImageFrameGenerator.h:
1557         * platform/graphics/chromium/LazyDecodingPixelRef.h:
1558
1559 2012-11-19  Adam Barth  <abarth@webkit.org>
1560
1561         [V8] Simplify V8DOMWindowShell::getEntered
1562         https://bugs.webkit.org/show_bug.cgi?id=102156
1563
1564         Reviewed by Eric Seidel.
1565
1566         This patch is an incremental step towards merging
1567         V8DOMWrapper::getCachedWrapper(Node*) with the general case for looking
1568         up DOM wrappers. In order to merge with the general case, we need to
1569         get down to calling v8::Context::GetCurrent once, which means we need
1570         to factor the call to v8::Context::GetEntered out of V8DOMWindowShell.
1571
1572         As a side-benefit to this change, we can remove some redundant checks
1573         for isolatedWorldsExist and v8::Context::InContext from callers of
1574         V8DOMWindowShell::getEntered, including in getCachedWrapper.
1575
1576         * bindings/v8/DOMDataStore.cpp:
1577         (WebCore::DOMDataStore::current):
1578         * bindings/v8/ScriptController.cpp:
1579         (WebCore::ScriptController::shouldBypassMainWorldContentSecurityPolicy):
1580         (WebCore::ScriptController::currentWorldContext):
1581         * bindings/v8/V8DOMWindowShell.h:
1582         (WebCore::V8DOMWindowShell::isolated):
1583         (WebCore::V8DOMWindowShell::perContextData):
1584         (WebCore::V8DOMWindowShell::world):
1585         (V8DOMWindowShell):
1586         * bindings/v8/V8DOMWrapper.h:
1587         (WebCore::V8DOMWrapper::getCachedWrapper):
1588         * bindings/v8/WorldContextHandle.cpp:
1589         (WebCore::WorldContextHandle::WorldContextHandle):
1590         * bindings/v8/custom/V8DocumentCustom.cpp:
1591         (WebCore::V8Document::dispatchWrapCustom):
1592         * bindings/v8/custom/V8HTMLDocumentCustom.cpp:
1593         (WebCore::V8HTMLDocument::dispatchWrapCustom):
1594         * bindings/v8/custom/V8SVGDocumentCustom.cpp:
1595         (WebCore::V8SVGDocument::dispatchWrapCustom):
1596         * bindings/v8/custom/V8XMLHttpRequestConstructor.cpp:
1597         (WebCore::V8XMLHttpRequest::constructorCallback):
1598
1599 2012-11-19  Kentaro Hara  <haraken@chromium.org>
1600
1601         Rename idlDocument::classes to idlDocument::interfaces in the IDL parser
1602         https://bugs.webkit.org/show_bug.cgi?id=102671
1603
1604         Reviewed by Adam Barth.
1605
1606         Most part of code generators use 'interface'. The spec uses 'interface'.
1607         Thus, the IDL parser should use 'interface' instead of 'class'.
1608
1609         No tests. No change in behavior.
1610
1611         * bindings/scripts/CodeGenerator.pm:
1612         (ProcessDocument):
1613         (AddMethodsConstantsAndAttributesFromParentInterfaces):
1614         (ParseInterface):
1615         * bindings/scripts/CodeGeneratorCPP.pm:
1616         (GenerateImplementation):
1617         * bindings/scripts/CodeGeneratorJS.pm:
1618         (GenerateHeader):
1619         * bindings/scripts/CodeGeneratorObjC.pm:
1620         (GenerateImplementation):
1621         * bindings/scripts/CodeGeneratorV8.pm:
1622         (GenerateHeader):
1623         (GenerateFunctionCallback):
1624         * bindings/scripts/IDLParser.pm:
1625         (Parse):
1626         (parseModule):
1627         * bindings/scripts/generate-bindings.pl:
1628
1629 2012-11-19  Eric Carlson  <eric.carlson@apple.com>
1630
1631         HTMLMediaElement::configureTextTracks should configure all text tracks
1632         https://bugs.webkit.org/show_bug.cgi?id=102561
1633
1634         Reviewed by Philippe Normand.
1635
1636         No new tests, track-mode-not-changed-by-new-track.html was updated to test the changes.
1637
1638         * html/HTMLMediaElement.cpp:
1639         (WebCore::HTMLMediaElement::textTrackModeChanged): HTMLTrackElement -> TextTrack.
1640         (WebCore::HTMLMediaElement::willRemoveTrack): Ditto.
1641         (WebCore::HTMLMediaElement::configureTextTrackGroup): Ditto.
1642         (WebCore::HTMLMediaElement::configureTextTracks): Ditto.
1643         (WebCore::HTMLMediaElement::markCaptionAndSubtitleTracksAsUnconfigured): Ditto.
1644         * html/HTMLMediaElement.h:
1645
1646         * html/HTMLTrackElement.cpp:
1647         (WebCore::HTMLTrackElement::HTMLTrackElement): Move hasBeenConfigured down to TextTrack.
1648         (WebCore::HTMLTrackElement::parseAttribute): isDefault is stored on TextTrack.
1649         (WebCore::HTMLTrackElement::ensureTrack): LoadableTextTrack constructor doesn't take 
1650             "default" argument.
1651         * html/HTMLTrackElement.h:
1652
1653         * html/track/LoadableTextTrack.cpp:
1654         (WebCore::LoadableTextTrack::LoadableTextTrack): Initialize m_isDefault to false.
1655         * html/track/LoadableTextTrack.h: 
1656         (WebCore::TextTrack::isDefault): Override base class implementation, because a track element
1657             can be flagged as default.
1658         (WebCore::TextTrack::setIsDefault): Ditto.
1659
1660         * html/track/TextTrack.cpp:
1661         (WebCore::TextTrack::TextTrack): Initialize m_hasBeenConfigured.
1662         * html/track/TextTrack.h:
1663         (WebCore::TextTrack::hasBeenConfigured): New, moved from HTMLTrackElement so other code doesn't
1664             need know what type of track it is calling.
1665         (WebCore::TextTrack::setHasBeenConfigured): Ditto.
1666         (WebCore::TextTrack::isDefault): Base, do nothing, implementation because only LoadableTextTrack
1667             can be "default".
1668         (WebCore::TextTrack::setIsDefault): Ditto.
1669
1670 2012-11-19  Huang Dongsung  <luxtella@company100.net>
1671
1672         Coordinated Graphics: refactor syncCanvas to handle the lifecycle clearly.
1673         https://bugs.webkit.org/show_bug.cgi?id=102664
1674
1675         Reviewed by Noam Rosenthal.
1676
1677         As refactoring Coordinated Graphics in WebKit2, code related to
1678         TextureMapper is changed.
1679
1680         No new tests. Refactoring only.
1681
1682         * platform/graphics/qt/GraphicsContext3DQt.cpp:
1683         (GraphicsContext3DPrivate):
1684         (WebCore::GraphicsContext3DPrivate::platformLayerSize):
1685             We need to know the size of a texture mapper platform layer.
1686         (WebCore):
1687         * platform/graphics/texmap/TextureMapperBackingStore.cpp:
1688           Because CoordinatedGraphicsLayer handles the canvas GraphicsSurface
1689           lifecycle, TextureMapperSurfaceBackingStore does not need to know
1690           GraphicsSurfaceToken.
1691         (WebCore::TextureMapperSurfaceBackingStore::setGraphicsSurface):
1692         (WebCore::TextureMapperSurfaceBackingStore::swapBuffersIfNeeded):
1693         (WebCore::TextureMapperSurfaceBackingStore::paintToTextureMapper):
1694         * platform/graphics/texmap/TextureMapperBackingStore.h:
1695         (TextureMapperSurfaceBackingStore):
1696         * platform/graphics/texmap/TextureMapperPlatformLayer.h:
1697         (WebCore::TextureMapperPlatformLayer::platformLayerSize):
1698
1699 2012-11-19  Alpha Lam  <hclam@chromium.org>
1700
1701         [chromium] Lazy image decoding without cache
1702         https://bugs.webkit.org/show_bug.cgi?id=102021
1703
1704         Reviewed by Stephen White.
1705
1706         Goal of this change is to make image decoding in ImageFrameGenerator
1707         completely lazy without caching. Image decoding logic is then removed
1708         from ImageDecodingStore.
1709
1710         These methods are removed.
1711         - ImageDecodingStore::lockPixels
1712         - ImageDecodingStore::unlockPixels
1713
1714         Instead image decoding and scaling is done in
1715         ImageFrameGenerator::decodeAndScale().
1716
1717         Unit tests are updated:
1718         DeferredImageDecoderTest::drawIntoSkPicture
1719         DeferredImageDecoderTest::drawScaledIntoSkPicture
1720
1721         Also covered by layout tests:
1722         platform/chromium/virtual/deferred
1723
1724         * platform/graphics/chromium/DeferredImageDecoder.cpp:
1725         (WebCore::DeferredImageDecoder::createLazyDecodingBitmap):
1726         * platform/graphics/chromium/ImageDecodingStore.h:
1727         (ImageDecodingStore):
1728         * platform/graphics/chromium/ImageFrameGenerator.cpp:
1729         (WebCore::ImageFrameGenerator::ImageFrameGenerator):
1730         (WebCore::ImageFrameGenerator::~ImageFrameGenerator):
1731         (WebCore::ImageFrameGenerator::setData):
1732         (WebCore::ImageFrameGenerator::decodeAndScale):
1733         * platform/graphics/chromium/ImageFrameGenerator.h:
1734         (WebCore::ImageFrameGenerator::create):
1735         (ImageFrameGenerator):
1736         * platform/graphics/chromium/LazyDecodingPixelRef.cpp:
1737         (WebCore::LazyDecodingPixelRef::onLockPixels):
1738         (WebCore::LazyDecodingPixelRef::onUnlockPixels):
1739         * platform/graphics/chromium/LazyDecodingPixelRef.h:
1740         (LazyDecodingPixelRef):
1741
1742 2012-11-19  Abhishek Arya  <inferno@chromium.org>
1743
1744         Crash in ApplyStyleCommand::cleanupUnstyledAppleStyleSpans.
1745         https://bugs.webkit.org/show_bug.cgi?id=100150
1746
1747         Reviewed by Ryosuke Niwa.
1748
1749         RefPtr startDummySpanAncestor and endDummySpanAncestor since
1750         they can go away inside fixRangeAndApplyInlineStyle call.
1751
1752         Test: editing/style/apply-style-crash.html
1753
1754         * editing/ApplyStyleCommand.cpp:
1755         (WebCore::ApplyStyleCommand::applyInlineStyle):
1756
1757 2012-11-19  Sheriff Bot  <webkit.review.bot@gmail.com>
1758
1759         Unreviewed, rolling out r135172.
1760         http://trac.webkit.org/changeset/135172
1761         https://bugs.webkit.org/show_bug.cgi?id=102710
1762
1763         Broke some WebKit2 api tests :( (Requested by japhet on
1764         #webkit).
1765
1766         * loader/DocumentLoader.cpp:
1767         (WebCore::DocumentLoader::DocumentLoader):
1768         (WebCore::DocumentLoader::~DocumentLoader):
1769         (WebCore::DocumentLoader::finishedLoading):
1770         (WebCore::DocumentLoader::clearMainResourceLoader):
1771         (WebCore::DocumentLoader::isLoadingInAPISense):
1772         (WebCore::DocumentLoader::documentURL):
1773         (WebCore::DocumentLoader::isLoadingMainResource):
1774         (WebCore::DocumentLoader::startLoadingMainResource):
1775         * loader/DocumentLoader.h:
1776         (DocumentLoader):
1777         * loader/FrameLoader.cpp:
1778         (WebCore::FrameLoader::FrameLoader):
1779         (WebCore::FrameLoader::init):
1780         * loader/FrameLoaderStateMachine.cpp:
1781         (WebCore::FrameLoaderStateMachine::FrameLoaderStateMachine):
1782         * loader/FrameLoaderStateMachine.h:
1783         * loader/MainResourceLoader.cpp:
1784         (WebCore::shouldLoadAsEmptyDocument):
1785         (WebCore):
1786         (WebCore::MainResourceLoader::continueAfterContentPolicy):
1787         (WebCore::MainResourceLoader::didReceiveResponse):
1788         (WebCore::MainResourceLoader::didFinishLoading):
1789         (WebCore::MainResourceLoader::handleEmptyLoad):
1790         (WebCore::MainResourceLoader::loadNow):
1791         (WebCore::MainResourceLoader::load):
1792         * loader/MainResourceLoader.h:
1793         (MainResourceLoader):
1794
1795 2012-11-19  Tony Chang  <tony@chromium.org>
1796
1797         Remove 'is' prefix from WebSettings::isWebSecurityEnabled and WebSettings::isSpatialNavigationEnabled
1798         https://bugs.webkit.org/show_bug.cgi?id=102548
1799
1800         Reviewed by Adam Barth.
1801
1802         This allows us to use Settings.in to generate the code for this.
1803
1804         I didn't rename any of the WebKit API methods with similar names because that would
1805         probably break consumers.  It turns out that the getter is only called from
1806         Source/WebKit/efl (most of the time, WebPreferences just sets values on Settings).
1807
1808         No new tests, just a refactor.
1809
1810         * WebCore.exp.in: Remove symbols that are now inlined.
1811         * WebCore.order: Remove symbols that are now inlined.
1812         * dom/Document.cpp:
1813         (WebCore::Document::initSecurityContext): Rename.
1814         * page/Settings.cpp:
1815         (WebCore::Settings::Settings): Remove code since it will be generated.
1816         * page/Settings.h:
1817         (Settings): Remove code since it will be generated.
1818         * page/Settings.in: Add entries to be generated.
1819         * page/SpatialNavigation.cpp:
1820         (WebCore::isSpatialNavigationEnabled): Fix caller.
1821
1822 2012-11-19  Yael Aharon  <yael.aharon@intel.com>
1823
1824         [EFL][TexMap] Complie error when considering warnings as errors
1825         https://bugs.webkit.org/show_bug.cgi?id=102705
1826
1827         Reviewed by Kenneth Rohde Christiansen.
1828
1829         Change GaussianKernelHalfWidth to unsigned.
1830
1831         No new tests.
1832
1833         * platform/graphics/texmap/TextureMapperGL.cpp:
1834         (WebCore):
1835
1836 2012-11-19  Sheriff Bot  <webkit.review.bot@gmail.com>
1837
1838         Unreviewed, rolling out r134830.
1839         http://trac.webkit.org/changeset/134830
1840         https://bugs.webkit.org/show_bug.cgi?id=102701
1841
1842         ActiveDOMObject is not applicable to MutationObservers due to
1843         being tied to a Document (Requested by aklein on #webkit).
1844
1845         * bindings/js/JSMutationObserverCustom.cpp:
1846         (WebCore::JSMutationObserverConstructor::constructJSMutationObserver):
1847         * bindings/v8/custom/V8MutationObserverCustom.cpp:
1848         (WebCore::V8MutationObserver::constructorCallback):
1849         * dom/MutationObserver.cpp:
1850         (WebCore::MutationObserver::create):
1851         (WebCore::MutationObserver::MutationObserver):
1852         (WebCore::MutationObserver::observationStarted):
1853         (WebCore::MutationObserver::observationEnded):
1854         * dom/MutationObserver.h:
1855         (WebCore):
1856         * dom/MutationObserver.idl:
1857
1858 2012-11-19  Brady Eidson  <beidson@apple.com>
1859
1860         NetworkProcess Authentication.
1861         https://bugs.webkit.org/show_bug.cgi?id=102592
1862
1863         Reviewed by Alexey Proskuryakov.
1864
1865         Change an ASSERT that assumes there should be a resource handle which is not true with the NetworkProcess.
1866
1867         Also export some more stuff.
1868
1869         No new tests (Platform support, no effect in tested configs).
1870
1871         * WebCore.exp.in:
1872
1873         * loader/ResourceLoader.cpp:
1874         (WebCore::ResourceLoader::didReceiveAuthenticationChallenge): Only ASSERT that the handle has a challenge if
1875           there is a handle.
1876
1877 2012-11-19  Alec Flett  <alecflett@chromium.org>
1878
1879         IndexedDB: simplify RecordIdentifier
1880         https://bugs.webkit.org/show_bug.cgi?id=102018
1881
1882         Reviewed by Tony Chang.
1883
1884         Make IDBBackingStore's RecordIdentifier be a simple
1885         class, existing only as an inline or stack-based instance.
1886         This makes much of the copy semantics more explicit, and
1887         removes refcounting from an object that only ever had a refcount
1888         of 1 or 2.
1889
1890         No new tests, just a refactor.
1891
1892         * Modules/indexeddb/IDBBackingStore.cpp:
1893         (WebCore::IDBBackingStore::putRecord):
1894         (WebCore::IDBBackingStore::deleteRecord):
1895         (WebCore::IDBBackingStore::maybeUpdateKeyGeneratorCurrentNumber):
1896         (WebCore::IDBBackingStore::keyExistsInObjectStore):
1897         (WebCore::IDBBackingStore::putIndexDataForRecord):
1898         (WebCore::IDBBackingStore::deleteIndexDataForRecord):
1899         (WebCore::ObjectStoreKeyCursorImpl::loadCurrentRow):
1900         (ObjectStoreCursorImpl):
1901         (WebCore::ObjectStoreCursorImpl::loadCurrentRow):
1902         (WebCore::IndexKeyCursorImpl::recordIdentifier):
1903         (WebCore::IndexCursorImpl::recordIdentifier):
1904         * Modules/indexeddb/IDBBackingStore.h:
1905         (WebCore::IDBBackingStore::RecordIdentifier::RecordIdentifier):
1906         (WebCore::IDBBackingStore::RecordIdentifier::isValid):
1907         (WebCore::IDBBackingStore::RecordIdentifier::reset):
1908         (RecordIdentifier):
1909         (IDBBackingStore):
1910         (WebCore::IDBBackingStore::Cursor::recordIdentifier):
1911         (WebCore::IDBBackingStore::Cursor::Cursor):
1912         (Cursor):
1913         * Modules/indexeddb/IDBObjectStoreBackendImpl.cpp:
1914         (WebCore):
1915         (WebCore::IDBObjectStoreBackendImpl::setIndexKeys):
1916         (WebCore::IDBObjectStoreBackendImpl::putInternal):
1917         (WebCore::IDBObjectStoreBackendImpl::deleteInternal):
1918
1919 2012-11-19  Alexander Shalamov  <alexander.shalamov@intel.com>
1920
1921         Improve ContentTypeParser, so that it could be used to validate mime type according to RFC
1922         https://bugs.webkit.org/show_bug.cgi?id=100927
1923
1924         Reviewed by Alexey Proskuryakov.
1925
1926         This patch adds ParsedContentType class that represents contents of parsed
1927         content type string. isValidContentType function could be used to check if
1928         format of the content type string is acorrding to RFC 2616 section 4.2.
1929
1930         * CMakeLists.txt:
1931         * GNUmakefile.list.am:
1932         * Target.pri:
1933         * WebCore.gypi:
1934         * WebCore.xcodeproj/project.pbxproj:
1935         * platform/network/MIMEHeader.cpp:
1936         (WebCore::MIMEHeader::parseHeader):
1937         * platform/network/ParsedContentType.cpp: Renamed from Source/WebCore/platform/network/ContentTypeParser.cpp.
1938         (WebCore):
1939         (EmptyParsedContentType):
1940         (WebCore::EmptyParsedContentType::setContentType):
1941         (WebCore::EmptyParsedContentType::setContentTypeParameter):
1942         (WebCore::skipSpaces):
1943         (WebCore::isTokenCharacter):
1944         (WebCore::parseToken):
1945         (WebCore::parseQuotedString):
1946         (WebCore::substringForRange):
1947         (WebCore::parseContentType):
1948         (WebCore::isValidContentType):
1949         (WebCore::ParsedContentType::ParsedContentType):
1950         (WebCore::ParsedContentType::charset):
1951         (WebCore::ParsedContentType::parameterValueForName):
1952         (WebCore::ParsedContentType::parameterCount):
1953         (WebCore::ParsedContentType::setContentType):
1954         (WebCore::ParsedContentType::setContentTypeParameter):
1955         * platform/network/ParsedContentType.h: Renamed from Source/WebCore/platform/network/ContentTypeParser.h.
1956         (WebCore):
1957         (ParsedContentType):
1958         (WebCore::ParsedContentType::mimeType):
1959
1960 2012-11-19  Erik Arvidsson  <arv@chromium.org>
1961
1962         Update DOMException name: InvalidNodeTypeError
1963         https://bugs.webkit.org/show_bug.cgi?id=102519
1964
1965         Reviewed by Kentaro Hara.
1966
1967         Patch 24 of 25 to update DOMException name to match the spec and Firefox.
1968
1969         No code uses DOMException InvalidNodeTypeError. We do use INVALID_NODE_TYPE_ERR for RangeException. See bug 102515.
1970
1971         * dom/DOMCoreException.cpp:
1972
1973 2012-11-19  Shinya Kawanaka  <shinyak@chromium.org>
1974
1975         Changing id, className, or attribute should invalidate distribution
1976         https://bugs.webkit.org/show_bug.cgi?id=100738
1977
1978         Reviewed by Dimitri Glazkov.
1979
1980         When id, className, or attribute is changed, we might have to invalidate distribution.
1981         However, we don't want to do useless invalidation. So we consult with the RuleFeatureSet of ElementShadow
1982         to invalidate distribution only if necessary.
1983
1984         For the code that className is changed, we can share a lot of code between invalidating distribution and
1985         invalidating style. So we made checkNeedsStyleInvalidationForClassChange a template method, and share it.
1986
1987         Since attributeChanged() is a hot method, we don't want to make it slow. So we made one function to determine
1988         whether we have to invalidate distribution, and make it called only if necessary. Also, we've optimized
1989         shadowOfParentForDistribution() by making isInsertionPoint() de-virtualed. We consuded NodeFlags (IsInsertionPointFlag)
1990         for this purpose.
1991
1992         We've measured how this patch makes changing attribute slow. I've measured each code 3 times.
1993         DOM/ModifyAttribute.html is a micro benchmark which changes attribute a lot of times. The result of this benchmark
1994         will be the most affected by this patch. However, it's only 2% performance regression.
1995
1996         DOM/ModifyAttribute.html
1997         Before this patch:
1998                 median  stdev    min    max    [ms]
1999           1st    494.0   3.36  490.0  502.0
2000           2nd    503.5   3.44  497.0  512.0
2001           3rd    494.0   3.48  488.0  499.0
2002
2003         After this patch:
2004                 median  stdev  min      max    [ms]
2005           1st    504.0   2.00  501.0  509.0
2006           2nd    505.5   3.08  500.0  513.0
2007           3rd    507.0   2.32  502.0  510.0
2008
2009         Tests: fast/dom/shadow/distribution-attribute-modified.html
2010                fast/dom/shadow/distribution-className-modified.html
2011                fast/dom/shadow/distribution-id-modified.html
2012                fast/dom/shadow/reprojection-attribute-modified.html
2013                fast/dom/shadow/reprojection-className-modified.html
2014                fast/dom/shadow/reprojection-id-modified.html
2015
2016         * dom/Element.cpp:
2017         (WebCore::Element::attributeChanged):
2018         (WebCore::HasSelectorForClassStyleFunctor::HasSelectorForClassStyleFunctor):
2019         (HasSelectorForClassStyleFunctor):
2020         (WebCore::HasSelectorForClassStyleFunctor::operator()): Returns true if StyleResolver::hasSelectorForClass returns true.
2021         (WebCore):
2022         (WebCore::HasSelectorForClassDistributionFunctor::HasSelectorForClassDistributionFunctor):
2023         (HasSelectorForClassDistributionFunctor):
2024         (WebCore::HasSelectorForClassDistributionFunctor::operator()): Returns true if ElementShadow::hasSelectForClass returns true.
2025         (WebCore::checkFunctorForClassChange):
2026         (WebCore::checkNeedsStyleInvalidationForClassChange):
2027         (WebCore::checkNeedsDistributionInvalidationForClassChange): Extracted the implementation to checkFunctorForClassChange.
2028         (WebCore::Element::shouldInvalidateDistributionWhenAttributeChanged):
2029         * dom/Element.h:
2030         (Element):
2031         * dom/Node.h:
2032         (WebCore::Node::isInsertionPoint):
2033         * html/HTMLElement.h:
2034         (HTMLElement):
2035         * html/shadow/InsertionPoint.cpp:
2036         (WebCore::InsertionPoint::InsertionPoint):
2037         * html/shadow/InsertionPoint.h:
2038         (InsertionPoint):
2039         (WebCore::isInsertionPoint):
2040         (WebCore::shadowOfParentForDistribution):
2041         (WebCore::resolveReprojection):
2042
2043 2012-11-19  Nate Chapin  <japhet@chromium.org>
2044
2045         Move empty loading to DocumentLoader, simplify FrameLoader::init()
2046         https://bugs.webkit.org/show_bug.cgi?id=101512
2047
2048         Reviewed by Adam Barth.
2049
2050         No new tests, though several outputs changed because we no longer send resource
2051             load callbacks for empty loads.
2052
2053         * loader/DocumentLoader.cpp:
2054         (WebCore::DocumentLoader::DocumentLoader):
2055         (WebCore::DocumentLoader::~DocumentLoader):
2056         (WebCore::DocumentLoader::finishedLoading):
2057         (WebCore::DocumentLoader::clearMainResourceLoader):
2058         (WebCore::DocumentLoader::isLoadingInAPISense):
2059         (WebCore::DocumentLoader::isLoadingMainResource):
2060         (WebCore::DocumentLoader::maybeLoadEmpty):
2061         (WebCore):
2062         (WebCore::DocumentLoader::startLoadingMainResource): Handle empty main resource
2063              loads directly here.
2064         * loader/DocumentLoader.h:
2065         (DocumentLoader):
2066         * loader/FrameLoader.cpp:
2067         (WebCore::FrameLoader::FrameLoader): Initialize some variables whose values
2068             were previously being reset in init(). Given that the FrameLoader is in
2069             an inconsistent state before init() is called anyway, there doesn't seem
2070             to be a disadvantage to just initializing them to their post-init() values.
2071         (WebCore::FrameLoader::init): Just call startLoadingMainResource(), instead of
2072             doing a bunch of direct calls to functions FrameLoader shouldn't know about.
2073         * loader/FrameLoaderStateMachine.cpp:
2074         (WebCore::FrameLoaderStateMachine::FrameLoaderStateMachine):
2075         * loader/FrameLoaderStateMachine.h:
2076         * loader/MainResourceLoader.cpp: Throughout, remove the concept of an empty load.
2077         (WebCore::MainResourceLoader::loadNow): This only returned true when an empty
2078             load got deferred, which won't happen now. Return void and always treat
2079             as returning false.
2080         * loader/MainResourceLoader.h:
2081         (MainResourceLoader):
2082
2083 2012-11-19  Erik Arvidsson  <arv@chromium.org>
2084
2085         Update DOMException name: TimeoutError
2086         https://bugs.webkit.org/show_bug.cgi?id=102513
2087
2088         Reviewed by Kentaro Hara.
2089
2090         Patch 23 of 25 to update DOMException name to match the spec and Firefox.
2091
2092         No code uses DOMException TimeoutError. We do use TIMEOUT_ERR for XMLHttpRequestException. See bug 102506.
2093
2094         * dom/DOMCoreException.cpp:
2095
2096 2012-11-19  Erik Arvidsson  <arv@chromium.org>
2097
2098         Update DOMException name: DataCloneError
2099         https://bugs.webkit.org/show_bug.cgi?id=102521
2100
2101         Reviewed by Kentaro Hara.
2102
2103         Patch 25 of 25 to update DOMException name to match the spec and Firefox.
2104
2105         Updated existing tests.
2106
2107         * dom/DOMCoreException.cpp:
2108
2109 2012-11-19  Tom Hudson  <tomhudson@chromium.org>
2110
2111         Improve performance of RenderBoxModelObject::paintTranslucentBorderSides()
2112         https://bugs.webkit.org/show_bug.cgi?id=98660
2113
2114         Reviewed by Simon Fraser.
2115
2116         Accumulate edges[i].shouldRender() in a flag field and pass that to paintBorderSides()
2117         and paintTranslucentBorderSides() so that we don't do unnecessary work.
2118
2119         If we can avoid setting up and tearing down an unnecessary transparent layer we save
2120         30ms on some mobile platforms.
2121
2122         * rendering/RenderBoxModelObject.h:
2123         * rendering/RenderBoxModelObject.cpp:
2124         (WebCore::RenderBoxModelObject::paintBorder):
2125         (WebCore::RenderBoxModelObject::paintTranslucentBorderSides):
2126
2127 2012-11-19  Hans Muller  <hmuller@adobe.com>
2128
2129         [CSS Exclusions] remove null exclusion shape check from ExclusionShape::createExclusionShape
2130         https://bugs.webkit.org/show_bug.cgi?id=100765
2131
2132         Reviewed by Dirk Schulze.
2133
2134         ExclusionShape::createExclusionShape now ASSERTs that its basicShape argument
2135         isn't null, since the caller is expected to ensure as much.  No new tests were
2136         needed since this is a near-trivial cleanup.
2137
2138         * rendering/ExclusionShape.cpp:
2139         (WebCore::ExclusionShape::createExclusionShape): This method no longer defends against a null basicShape argument by returning null.
2140
2141 2012-11-19  Sami Kyostila  <skyostil@chromium.org>
2142
2143         Use device scale factor instead of physical screen DPI for screen DPI
2144         https://bugs.webkit.org/show_bug.cgi?id=101769
2145
2146         Reviewed by Adam Barth.
2147
2148         Media queries call WebCore::Screen::{horizontal,vertical}DPI() to determine
2149         the dots per CSS inch[1] value for the "screen" media type. On Chromium these
2150         functions currently return the physical screen DPI, which is wrong. To fix
2151         this, we remove both of these functions entirely and make media queries use
2152         the device scale factor multiplied by 96 on all ports.
2153
2154         [1] http://www.w3.org/TR/css3-mediaqueries/#resolution0
2155
2156         * page/Screen.cpp:
2157         (WebCore::Screen::horizontalDPI):
2158         (WebCore::Screen::verticalDPI):
2159         * platform/PlatformScreen.h:
2160         (WebCore):
2161         * platform/blackberry/PlatformScreenBlackBerry.cpp:
2162         * platform/chromium/PlatformScreenChromium.cpp:
2163         * platform/efl/PlatformScreenEfl.cpp:
2164         * platform/gtk/PlatformScreenGtk.cpp:
2165         * platform/mac/PlatformScreenMac.mm:
2166         * platform/qt/PlatformScreenQt.cpp:
2167         * platform/win/PlatformScreenWin.cpp:
2168         * platform/wx/ScreenWx.cpp:
2169
2170 2012-11-19  Julien Chaffraix  <jchaffraix@webkit.org>
2171
2172         Computed grid items' positions shouldn't be using Length
2173         https://bugs.webkit.org/show_bug.cgi?id=102537
2174
2175         Reviewed by Tony Chang.
2176
2177         This change refactors how we store the grid items' position to use
2178         a new type GridPosition. Length was a temporary type as it supported
2179         'auto' | <integer> but it was starting to get more and more confusing
2180         as we were implementing the layout routines.
2181
2182         No change in behavior.
2183
2184         * GNUmakefile.list.am:
2185         * WebCore.gypi:
2186         * WebCore.vcproj/WebCore.vcproj:
2187         * WebCore.xcodeproj/project.pbxproj:
2188         Added the new file to the build systems.
2189
2190         * rendering/style/RenderStyle.h:
2191         Updated after the type change. Also made some getters
2192         return a const reference instead of forcing a copy.
2193
2194         * rendering/style/StyleGridItemData.h:
2195         (StyleGridItemData):
2196         Ditto, also removed a comment about adding a new type.
2197
2198         * css/CSSComputedStyleDeclaration.cpp:
2199         (WebCore::valueForGridPosition):
2200         * css/StyleResolver.cpp:
2201         (WebCore::createGridPosition):
2202         (WebCore::StyleResolver::applyProperty):
2203         * rendering/RenderGrid.cpp:
2204         (WebCore::RenderGrid::resolveGridPosition):
2205         Updated these sites after switching to GridPosition.
2206
2207         * rendering/RenderGrid.h:
2208         Changed resolveGridPosition signature: it now takes a GridPosition.
2209
2210         * rendering/style/GridPosition.h: Added.
2211         (WebCore::GridPosition::GridPosition):
2212         Default constructor, creates an 'auto' position.
2213
2214         (WebCore::GridPosition::isPositive):
2215         (WebCore::GridPosition::type):
2216         (WebCore::GridPosition::isAuto):
2217         (WebCore::GridPosition::setIntegerPosition):
2218         (WebCore::GridPosition::integerPosition):
2219         Helper functions.
2220
2221         (WebCore::GridPosition::operator==):
2222         Required comparison operator for StyleGridItemData.
2223
2224 2012-11-19  Thiago Marcos P. Santos  <thiago.santos@intel.com>
2225
2226         Apply the resolved viewport rules
2227         https://bugs.webkit.org/show_bug.cgi?id=95964
2228
2229         Reviewed by Kenneth Rohde Christiansen.
2230
2231         This patch implements the CSS Device Adaptation specification. The
2232         WebKit implementation relies on the already implemented Viewport Meta
2233         infrastructure to notify the browser of viewport changes.
2234
2235         The implementation was tests with success on the Qt and EFL ports, but
2236         basically every port supporting Viewport Meta should be fine.
2237
2238         The usage of @-webkit-viewport inside media queries (more tests coming
2239         to map all the corner cases) is currently limited when the media query
2240         depends on the viewport dimensions itself. Defining the width and height
2241         based on screen size will fail on ports reporting the screen
2242         size as the size of the browser window instead of the device screen.
2243
2244         Tests: css3/device-adapt/opera/cascading-001.xhtml
2245                css3/device-adapt/opera/cascading-002.xhtml
2246                css3/device-adapt/opera/cascading-003.xhtml
2247                css3/device-adapt/opera/cascading-004.xhtml
2248                css3/device-adapt/opera/constrain-001.xhtml
2249                css3/device-adapt/opera/constrain-002.xhtml
2250                css3/device-adapt/opera/constrain-003.xhtml
2251                css3/device-adapt/opera/constrain-004.xhtml
2252                css3/device-adapt/opera/constrain-005.xhtml
2253                css3/device-adapt/opera/constrain-006.xhtml
2254                css3/device-adapt/opera/constrain-007.xhtml
2255                css3/device-adapt/opera/constrain-008.xhtml
2256                css3/device-adapt/opera/constrain-009.xhtml
2257                css3/device-adapt/opera/constrain-010.xhtml
2258                css3/device-adapt/opera/constrain-011.xhtml
2259                css3/device-adapt/opera/constrain-012.xhtml
2260                css3/device-adapt/opera/constrain-013.xhtml
2261                css3/device-adapt/opera/constrain-014.xhtml
2262                css3/device-adapt/opera/constrain-015.xhtml
2263                css3/device-adapt/opera/constrain-016.xhtml
2264                css3/device-adapt/opera/constrain-017.xhtml
2265                css3/device-adapt/opera/constrain-020.xhtml
2266                css3/device-adapt/opera/syntax-001.xhtml
2267                css3/device-adapt/opera/syntax-002.xhtml
2268                css3/device-adapt/opera/syntax-003.xhtml
2269
2270         * CMakeLists.txt:
2271         * GNUmakefile.list.am:
2272         * Target.pri:
2273         * WebCore.gypi:
2274         * WebCore.vcproj/WebCore.vcproj:
2275         * WebCore.xcodeproj/project.pbxproj:
2276         * css/CSSAllInOne.cpp:
2277         * css/RuleSet.cpp:
2278         (WebCore::RuleSet::addRulesFromSheet):
2279         * css/StyleResolver.cpp:
2280         (WebCore::StyleResolver::StyleResolver):
2281         (WebCore::StyleResolver::appendAuthorStyleSheets):
2282         (WebCore::StyleResolver::~StyleResolver):
2283         * css/StyleResolver.h:
2284         (StyleResolver):
2285         (WebCore::StyleResolver::viewportStyleResolver):
2286         * css/ViewportStyleResolver.cpp: Added.
2287         (WebCore):
2288         (WebCore::ViewportStyleResolver::ViewportStyleResolver):
2289         (WebCore::ViewportStyleResolver::addViewportRule):
2290         (WebCore::ViewportStyleResolver::clearDocument):
2291         (WebCore::ViewportStyleResolver::resolve):
2292         (WebCore::ViewportStyleResolver::getViewportArgumentValue):
2293         * css/ViewportStyleResolver.h: Added.
2294         (WebCore):
2295         (ViewportStyleResolver):
2296         (WebCore::ViewportStyleResolver::create):
2297         * dom/Document.h:
2298         (WebCore::Document::setViewportArguments):
2299         * dom/ViewportArguments.cpp:
2300         (WebCore::compareIgnoringAuto):
2301         (WebCore):
2302         (WebCore::ViewportArguments::resolve):
2303         * dom/ViewportArguments.h:
2304         (ViewportAttributes):
2305         (WebCore::ViewportArguments::ViewportArguments):
2306         (ViewportArguments):
2307         (WebCore::ViewportArguments::operator==):
2308
2309 2012-11-19  Erik Arvidsson  <arv@chromium.org>
2310
2311         Update DOMException name: SecurityError
2312         https://bugs.webkit.org/show_bug.cgi?id=102437
2313
2314         Reviewed by Kentaro Hara.
2315
2316         Patch 18 of 25 to update DOMException name to match the spec and Firefox.
2317
2318         Updated existing tests.
2319
2320         * dom/DOMCoreException.cpp:
2321
2322 2012-11-19  Erik Arvidsson  <arv@chromium.org>
2323
2324         Update DOMException name: URLMismatchError
2325         https://bugs.webkit.org/show_bug.cgi?id=102511
2326
2327         Reviewed by Kentaro Hara.
2328
2329         Patch 21 of 25 to update DOMException name to match the spec and Firefox.
2330
2331         Updated existing tests.
2332
2333         * dom/DOMCoreException.cpp:
2334         (WebCore):
2335
2336 2012-11-19  Kihong Kwon  <kihong.kwon@samsung.com>
2337
2338         Add PROXIMITY_EVENTS feature
2339         https://bugs.webkit.org/show_bug.cgi?id=102658
2340
2341         Reviewed by Kentaro Hara.
2342
2343         Add PROXIMITY_EVENTS feature to xcode project for WebCorei and GNU make.
2344
2345         No new tests. Just add a new feature.
2346
2347         * Configurations/FeatureDefines.xcconfig:
2348         * GNUmakefile.features.am:
2349
2350 2012-11-19  Alexei Filippov  <alph@chromium.org>
2351
2352         Web Inspector: Dim a component's subitems' color in NMI snapshot
2353         https://bugs.webkit.org/show_bug.cgi?id=102224
2354
2355         Reviewed by Yury Semikhatsky.
2356
2357         * inspector/front-end/NativeMemorySnapshotView.js:
2358         (WebInspector.NativeSnapshotNode.prototype._createSizeCell):
2359         * inspector/front-end/nativeMemoryProfiler.css:
2360         (.native-snapshot-view .data-grid .dimmed div.size-bar):
2361
2362 2012-11-19  Erik Arvidsson  <arv@chromium.org>
2363
2364         Update DOMException name: NetworkError
2365         https://bugs.webkit.org/show_bug.cgi?id=102503
2366
2367         Reviewed by Kentaro Hara.
2368
2369         Patch 19 of 25 to update DOMException name to match the spec and Firefox.
2370
2371         No code uses DOMException NetworkError. We do use NETWORK_ERR for XMLHttpRequestException. See bug 102506.
2372
2373         * dom/DOMCoreException.cpp:
2374
2375 2012-11-19  Ilya Tikhonovsky  <loislo@chromium.org>
2376
2377         webaudio: clean-up. Replace AudioContext::m_document member with ContextDestructionObserver::scriptExecutionContext().
2378         https://bugs.webkit.org/show_bug.cgi?id=102649
2379
2380         Reviewed by Adam Barth.
2381
2382         AudioContext uses m_document only as a pointer to ScriptExecutionContext.
2383         It could be safely replaced with ContextDestructionObserver::m_scriptExecutionContext.
2384         The lifetime of m_scriptExecutionContext is slightly different but it could be adjusted by m_isStopScheduled flag.
2385
2386         No new tests as there is no new functionality.
2387
2388         * Modules/webaudio/AudioBufferSourceNode.cpp:
2389         (WebCore::AudioBufferSourceNode::looping):
2390         (WebCore::AudioBufferSourceNode::setLooping):
2391         * Modules/webaudio/AudioContext.cpp:
2392         (WebCore::AudioContext::AudioContext):
2393         (WebCore::AudioContext::stop):
2394         (WebCore::AudioContext::scriptExecutionContext):
2395         (WebCore::AudioContext::fireCompletionEvent):
2396         (WebCore::AudioContext::reportMemoryUsage):
2397         * Modules/webaudio/AudioContext.h:
2398         (AudioContext):
2399         * Modules/webaudio/ScriptProcessorNode.cpp:
2400         (WebCore::ScriptProcessorNode::fireProcessEvent):
2401         (WebCore::ScriptProcessorNode::scriptExecutionContext):
2402
2403 2012-11-19  Ilya Tikhonovsky  <loislo@chromium.org>
2404
2405         webaudio: leak: AudioContext objects are leaking. They retain 36mb of shared data.
2406         https://bugs.webkit.org/show_bug.cgi?id=102356
2407
2408         Reviewed by Adam Barth.
2409
2410         A clean-up code was moved from uninitialize to clear method.
2411         AudioContext marks itself as hasPendingActivity in method constructCommon and unmarks itself in method clear.
2412         m_isStopScheduled filters out second ActiveDOMObject::stop call.
2413         markForDeletion appends AudioNode pointer to m_nodesToDelete array if there is no active audio thread.
2414         adoptRef was added in createOfflineContext method.
2415         A guard was added into deleteMarkedNodes.
2416
2417         Test: inspector-protocol/nmi-webaudio-leak-test.html
2418
2419         * Modules/webaudio/AudioContext.cpp:
2420         (WebCore::AudioContext::createOfflineContext):
2421         (WebCore::AudioContext::AudioContext):
2422         (WebCore::AudioContext::constructCommon):
2423         (WebCore::AudioContext::~AudioContext):
2424         (WebCore::AudioContext::clear):
2425         (WebCore::AudioContext::uninitialize):
2426         (WebCore::AudioContext::stopDispatch):
2427         (WebCore::AudioContext::stop):
2428         (WebCore::AudioContext::markForDeletion):
2429         (WebCore::AudioContext::scheduleNodeDeletion):
2430         (WebCore::AudioContext::deleteMarkedNodes):
2431         * Modules/webaudio/AudioContext.h:
2432         (AudioContext):
2433         * bindings/v8/custom/V8AudioContextCustom.cpp:
2434         (WebCore::V8AudioContext::constructorCallback):
2435         * inspector/InspectorMemoryAgent.cpp:
2436         (WebCore::InspectorMemoryAgent::getProcessMemoryDistribution):
2437         * platform/PlatformMemoryInstrumentation.cpp:
2438         (WebCore::PlatformMemoryInstrumentation::reportMemoryUsage):
2439         (WebCore):
2440         * platform/PlatformMemoryInstrumentation.h:
2441         (PlatformMemoryInstrumentation):
2442         (WebCore):
2443
2444 2012-11-19  Erik Arvidsson  <arv@chromium.org>
2445
2446         Update DOMException name: QuotaExceededError
2447         https://bugs.webkit.org/show_bug.cgi?id=102512
2448
2449         Reviewed by Kentaro Hara.
2450
2451         Patch 22 of 25 to update DOMException name to match the spec and Firefox.
2452
2453         Updated existing tests.
2454
2455         * dom/DOMCoreException.cpp:
2456
2457 2012-11-19  Erik Arvidsson  <arv@chromium.org>
2458
2459         Update DOMException name: AbortError
2460         https://bugs.webkit.org/show_bug.cgi?id=102508
2461
2462         Reviewed by Kentaro Hara.
2463
2464         Patch 20 of 25 to update DOMException name to match the spec and Firefox.
2465
2466         No code uses DOMException AbortError. We do use ABORT_ERR for XMLHttpRequestException. See bug 102506.
2467
2468         * dom/DOMCoreException.cpp:
2469
2470 2012-11-19  Kentaro Hara  <haraken@chromium.org>
2471
2472         Unreviewed, rolling out r135111.
2473         http://trac.webkit.org/changeset/135111
2474         https://bugs.webkit.org/show_bug.cgi?id=102356
2475
2476         The patch caused crashes in several layout tests
2477
2478         * Modules/webaudio/AudioContext.cpp:
2479         (WebCore::AudioContext::createOfflineContext):
2480         (WebCore::AudioContext::AudioContext):
2481         (WebCore::AudioContext::constructCommon):
2482         (WebCore::AudioContext::~AudioContext):
2483         (WebCore::AudioContext::uninitialize):
2484         (WebCore::AudioContext::uninitializeDispatch):
2485         (WebCore::AudioContext::stop):
2486         (WebCore::AudioContext::markForDeletion):
2487         (WebCore::AudioContext::scheduleNodeDeletion):
2488         (WebCore::AudioContext::deleteMarkedNodes):
2489         * Modules/webaudio/AudioContext.h:
2490         (AudioContext):
2491         * bindings/v8/custom/V8AudioContextCustom.cpp:
2492         (WebCore::V8AudioContext::constructorCallback):
2493         * inspector/InspectorMemoryAgent.cpp:
2494         (WebCore::InspectorMemoryAgent::getProcessMemoryDistribution):
2495         * platform/PlatformMemoryInstrumentation.cpp:
2496         (WebCore):
2497         * platform/PlatformMemoryInstrumentation.h:
2498
2499 2012-11-19  Kentaro Hara  <haraken@chromium.org>
2500
2501         Unreviewed, rolling out r135116.
2502         http://trac.webkit.org/changeset/135116
2503         https://bugs.webkit.org/show_bug.cgi?id=102649
2504
2505         Revert this patch to revert r135111, which caused crashes in
2506         several layout tests
2507
2508         * Modules/webaudio/AudioBufferSourceNode.cpp:
2509         (WebCore::AudioBufferSourceNode::looping):
2510         (WebCore::AudioBufferSourceNode::setLooping):
2511         * Modules/webaudio/AudioContext.cpp:
2512         (WebCore::AudioContext::AudioContext):
2513         (WebCore::AudioContext::stop):
2514         (WebCore::AudioContext::document):
2515         (WebCore):
2516         (WebCore::AudioContext::hasDocument):
2517         (WebCore::AudioContext::scriptExecutionContext):
2518         (WebCore::AudioContext::fireCompletionEvent):
2519         (WebCore::AudioContext::reportMemoryUsage):
2520         * Modules/webaudio/AudioContext.h:
2521         (AudioContext):
2522         * Modules/webaudio/ScriptProcessorNode.cpp:
2523         (WebCore::ScriptProcessorNode::fireProcessEvent):
2524         (WebCore::ScriptProcessorNode::scriptExecutionContext):
2525
2526 2012-11-19  Eugene Klyuchnikov  <eustas.bug@gmail.com>
2527
2528         Web Inspector: Refine JsDoc in DebuggerScriptMapping.js
2529         https://bugs.webkit.org/show_bug.cgi?id=102673
2530
2531         Reviewed by Vsevolod Vlasov.
2532
2533         DebuggerScriptMapping calls public method "addScript" not defined
2534         in SourceMapping interface.
2535
2536         To make things clear I've added ScriptSourceMapping interface that
2537         extends SourceMapping interface by adding "addScript" method.
2538
2539         * inspector/front-end/SourceMapping.js: Added "ScriptSourceMapping".
2540         * inspector/front-end/CompilerScriptMapping.js:
2541         Updated "@implements" to ScriptSourceMapping.
2542         * inspector/front-end/ResourceScriptMapping.js: Ditto.
2543         * inspector/front-end/ScriptSnippetModel.js: Ditto.
2544         * inspector/front-end/DebuggerScriptMapping.js: Updated signatures.
2545         Removed useless code.
2546
2547 2012-11-19  Tim Horton  <timothy_horton@apple.com>
2548
2549         Unreviewed, untested build fix.
2550
2551         * bindings/scripts/IDLParser.pm:
2552         (parseModule):
2553
2554 2012-11-19  Dongwoo Joshua Im  <dw.im@samsung.com>
2555
2556         [CSS3] Move CSSPropertyWebkitTextAlignLast into isValidKeywordPropertyAndValue function
2557         https://bugs.webkit.org/show_bug.cgi?id=102303
2558
2559         Reviewed by Alexis Menard.
2560
2561         Move the part which check whether CSSPropertyWebkitTextAlignLast has available value
2562         into the isValidKeywordPropertyAndValue function, like the same kind of properties.
2563         This will help speed wise in JS.
2564
2565         No new functionality, no new tests.
2566
2567         * css/CSSParser.cpp:
2568         (WebCore::isValidKeywordPropertyAndValue):
2569         (WebCore::isKeywordPropertyID):
2570         (WebCore::CSSParser::parseValue):
2571
2572 2012-11-19  Keishi Hattori  <keishi@webkit.org>
2573
2574         REGRESSION (r133565): Calendar picker isn't animating when changing month by pressing 't'
2575         https://bugs.webkit.org/show_bug.cgi?id=102660
2576
2577         Reviewed by Kent Tamura.
2578
2579         The calendar picker used to animate when you press 't'.
2580
2581         No new tests.
2582
2583         * Resources/pagepopups/calendarPicker.js:
2584         (DaysTable.prototype.selectRange):
2585
2586 2012-11-19  Kent Tamura  <tkent@chromium.org>
2587
2588         input.value="" should clear date/time input elements with partial values
2589         https://bugs.webkit.org/show_bug.cgi?id=102645
2590
2591         Reviewed by Kentaro Hara.
2592
2593         Tests: fast/forms/date-multiple-fields/date-multiple-fields-value-set-empty.html
2594                fast/forms/datetime-multiple-fields/datetime-multiple-fields-value-set-empty.html
2595                fast/forms/datetimelocal-multiple-fields/datetimelocal-multiple-fields-value-set-empty.html
2596                fast/forms/month-multiple-fields/month-multiple-fields-value-set-empty.html
2597                fast/forms/time-multiple-fields/time-multiple-fields-value-set-empty.html
2598                fast/forms/week-multiple-fields/week-multiple-fields-value-set-empty.html
2599
2600         * html/BaseMultipleFieldsDateAndTimeInputType.cpp:
2601         (WebCore::BaseMultipleFieldsDateAndTimeInputType::setValue):
2602         If the new value is an empty string and sub-fields has values, we should
2603         update the UI value to the empty state.
2604         * html/DateTimeFieldsState.h:
2605         (WebCore::DateTimeFieldsState::hasAnyValue):
2606         Added. It returns true if one or more sub-fields are not empty.
2607
2608 2012-11-19  Andrey Adaikin  <aandrey@chromium.org>
2609
2610         Web Inspector: [Canvas] if many canvases are being instrumented show the screenshot of the first one
2611         https://bugs.webkit.org/show_bug.cgi?id=102522
2612
2613         Reviewed by Yury Semikhatsky.
2614
2615         When many canvases are being instrumented we'll want to show replay screenshots for each canvas.
2616         Meanwhile, show the screenshot of the first one (instead of the last one), as it's likely to be the "main" canvas.
2617         Drive-by: add more typification for the JS compiler.
2618         Drive-by: create a new canvas for WebGL replay every time (similar to 2D replay) to avoid problems with resetting the context state.
2619
2620         * inspector/InjectedScriptCanvasModuleSource.js:
2621         (.):
2622
2623 2012-11-19  Kentaro Hara  <haraken@chromium.org>
2624
2625         Remove IDLStructure.pm
2626         https://bugs.webkit.org/show_bug.cgi?id=102642
2627
2628         Reviewed by Adam Barth.
2629
2630         Previously IDLStructure.pm was full of regular expressions to
2631         parse IDL files. Now a new IDL parser is implemented, IDLStructure.pm
2632         just contains several data structures for the IDL parser. We can
2633         move them to IDLParser.pm and thus remove IDLStructure.pm.
2634
2635         No tests. No change in generated code.
2636
2637         * CMakeLists.txt:
2638         * DerivedSources.make:
2639         * DerivedSources.pri:
2640         * GNUmakefile.am:
2641         * WebCore.gyp/WebCore.gyp:
2642         * WebCore.vcproj/MigrateScripts:
2643         * WebCore.vcproj/WebCore.vcproj:
2644         * WebCore.xcodeproj/project.pbxproj:
2645         * bindings/scripts/IDLParser.pm:
2646         (Parse):
2647         (parseInterface):
2648         (parseException):
2649         (parseConst):
2650         (parseAttributeRest):
2651         (parseOperationRest):
2652         (parseOptionalOrRequiredArgument):
2653         (parseExceptionField):
2654         (parseInterfaceOld):
2655         (parseExceptionOld):
2656         (parseAttributeRestOld):
2657         (applyExtendedAttributeList):
2658         * bindings/scripts/IDLStructure.pm: Removed.
2659
2660 2012-11-19  Alexei Filippov  <alph@chromium.org>
2661
2662         Web Inspector: refine time and bytes output formatting
2663         https://bugs.webkit.org/show_bug.cgi?id=102265
2664
2665         Reviewed by Yury Semikhatsky.
2666
2667         Add a space between number and unit, otherwise it's hard to read things like 88B.
2668         Reduce a number of decimal digits in KB and MB formats. 1023.45KB seems to be too detailed.
2669
2670         * English.lproj/localizedStrings.js:
2671         * inspector/front-end/CookiesTable.js:
2672         (WebInspector.CookiesTable.prototype._createGridNode):
2673         * inspector/front-end/UIUtils.js:
2674         (Number.secondsToString):
2675         (Number.bytesToString):
2676
2677 2012-11-19  Eugene Klyuchnikov  <eustas.bug@gmail.com>
2678
2679         Web Inspector: Timeline: DomContentLoaded event labeled incorrectly
2680         https://bugs.webkit.org/show_bug.cgi?id=102383
2681
2682         Reviewed by Yury Semikhatsky.
2683
2684         Fixed string presentation of event.
2685
2686         * inspector/front-end/TimelinePresentationModel.js: Fixed string.
2687
2688 2012-11-19  Kentaro Hara  <haraken@chromium.org>
2689
2690         Remove IDLStructure.pm
2691         https://bugs.webkit.org/show_bug.cgi?id=102642
2692
2693         Reviewed by Adam Barth.
2694
2695         Previously IDLStructure.pm was full of regular expressions to
2696         parse IDL files. Now a new IDL parser is implemented, IDLStructure.pm
2697         just contains several data structures for the IDL parser. We can
2698         move them to IDLParser.pm and thus remove IDLStructure.pm.
2699
2700         No tests. No change in generated code.
2701
2702         * CMakeLists.txt:
2703         * DerivedSources.make:
2704         * DerivedSources.pri:
2705         * GNUmakefile.am:
2706         * WebCore.gyp/WebCore.gyp:
2707         * WebCore.vcproj/MigrateScripts:
2708         * WebCore.vcproj/WebCore.vcproj:
2709         * WebCore.xcodeproj/project.pbxproj:
2710         * bindings/scripts/IDLParser.pm:
2711         (Parse):
2712         (parseInterface):
2713         (parseException):
2714         (parseConst):
2715         (parseAttributeRest):
2716         (parseOperationRest):
2717         (parseOptionalOrRequiredArgument):
2718         (parseExceptionField):
2719         (parseInterfaceOld):
2720         (parseExceptionOld):
2721         (parseAttributeRestOld):
2722         (applyExtendedAttributeList):
2723         * bindings/scripts/IDLStructure.pm: Removed.
2724
2725 2012-11-19  Alexei Filippov  <alph@chromium.org>
2726
2727         Web Inspector: refine time and bytes output formatting
2728         https://bugs.webkit.org/show_bug.cgi?id=102265
2729
2730         Reviewed by Yury Semikhatsky.
2731
2732         Add a space between number and unit, otherwise it's hard to read things like 88B.
2733         Reduce a number of decimal digits in KB and MB formats. 1023.45KB seems to be too detailed.
2734
2735         * English.lproj/localizedStrings.js:
2736         * inspector/front-end/CookiesTable.js:
2737         (WebInspector.CookiesTable.prototype._createGridNode):
2738         * inspector/front-end/UIUtils.js:
2739         (Number.secondsToString):
2740         (Number.bytesToString):
2741
2742 2012-11-19  Eugene Klyuchnikov  <eustas.bug@gmail.com>
2743
2744         Web Inspector: Timeline: DomContentLoaded event labeled incorrectly
2745         https://bugs.webkit.org/show_bug.cgi?id=102383
2746
2747         Reviewed by Yury Semikhatsky.
2748
2749         Fixed string presentation of event.
2750
2751         * inspector/front-end/TimelinePresentationModel.js: Fixed string.
2752
2753 2012-11-19  Kentaro Hara  <haraken@chromium.org>
2754
2755         Unreviewed, rolling out r135114.
2756         http://trac.webkit.org/changeset/135114
2757         https://bugs.webkit.org/show_bug.cgi?id=102642
2758
2759         it broke Qt build
2760
2761         * CMakeLists.txt:
2762         * DerivedSources.make:
2763         * DerivedSources.pri:
2764         * GNUmakefile.am:
2765         * WebCore.gyp/WebCore.gyp:
2766         * WebCore.vcproj/MigrateScripts:
2767         * WebCore.vcproj/WebCore.vcproj:
2768         * WebCore.xcodeproj/project.pbxproj:
2769         * bindings/scripts/IDLParser.pm:
2770         (Parse):
2771         (parseInterface):
2772         (parseException):
2773         (parseConst):
2774         (parseAttributeRest):
2775         (parseOperationRest):
2776         (parseOptionalOrRequiredArgument):
2777         (parseExceptionField):
2778         (parseInterfaceOld):
2779         (parseExceptionOld):
2780         (parseAttributeRestOld):
2781         (applyExtendedAttributeList):
2782         * bindings/scripts/IDLStructure.pm: Added.
2783
2784 2012-11-19  Vsevolod Vlasov  <vsevik@chromium.org>
2785
2786         Unreviewed inspector closure compilation fix.
2787
2788         * inspector/front-end/ObjectPropertiesSection.js:
2789         * inspector/front-end/externs.js:
2790
2791 2012-11-18  Ilya Tikhonovsky  <loislo@chromium.org>
2792
2793         webaudio: clean-up. Replace AudioContext::m_document member with ContextDestructionObserver::scriptExecutionContext().
2794         https://bugs.webkit.org/show_bug.cgi?id=102649
2795
2796         Reviewed by Adam Barth.
2797
2798         AudioContext uses m_document only as a pointer to ScriptExecutionContext.
2799         It could be safely replaced with ContextDestructionObserver::m_scriptExecutionContext.
2800         The lifetime of m_scriptExecutionContext is slightly different but it could be adjusted by m_isStopScheduled flag.
2801
2802         No new tests as there is no new functionality.
2803
2804         * Modules/webaudio/AudioBufferSourceNode.cpp:
2805         (WebCore::AudioBufferSourceNode::looping):
2806         (WebCore::AudioBufferSourceNode::setLooping):
2807         * Modules/webaudio/AudioContext.cpp:
2808         (WebCore::AudioContext::AudioContext):
2809         (WebCore::AudioContext::stop):
2810         (WebCore::AudioContext::fireCompletionEvent):
2811         (WebCore::AudioContext::reportMemoryUsage):
2812         * Modules/webaudio/AudioContext.h:
2813         (WebCore::AudioContext::scriptExecutionContext):
2814         (AudioContext):
2815         * Modules/webaudio/ScriptProcessorNode.cpp:
2816         (WebCore::ScriptProcessorNode::fireProcessEvent):
2817         (WebCore::ScriptProcessorNode::scriptExecutionContext):
2818
2819 2012-11-18  Kentaro Hara  <haraken@chromium.org>
2820
2821         [V8] Remove unused variables from CodeGeneratorV8.pm
2822         https://bugs.webkit.org/show_bug.cgi?id=102648
2823
2824         Reviewed by Adam Barth.
2825
2826         No tests. No change in generated code.
2827
2828         * bindings/scripts/CodeGeneratorV8.pm:
2829         (GenerateInterface):
2830         (GenerateHeader):
2831         (GetInternalFields):
2832         (GenerateNormalAttrGetter):
2833         (GenerateSingleBatchedAttribute):
2834         (GenerateImplementationCustomCall):
2835         (GenerateFunctionCallString):
2836         (CreateCustomSignature):
2837         (GetContextEnableFunction):
2838
2839 2012-11-18  Kentaro Hara  <haraken@chromium.org>
2840
2841         Remove IDLStructure.pm
2842         https://bugs.webkit.org/show_bug.cgi?id=102642
2843
2844         Reviewed by Adam Barth.
2845
2846         Previously IDLStructure.pm was full of regular expressions to
2847         parse IDL files. Now a new IDL parser is implemented, IDLStructure.pm
2848         just contains several data structures for the IDL parser. We can
2849         move them to IDLParser.pm and thus remove IDLStructure.pm.
2850
2851         No tests. No change in generated code.
2852
2853         * CMakeLists.txt:
2854         * DerivedSources.make:
2855         * DerivedSources.pri:
2856         * GNUmakefile.am:
2857         * WebCore.gyp/WebCore.gyp:
2858         * WebCore.vcproj/MigrateScripts:
2859         * WebCore.vcproj/WebCore.vcproj:
2860         * WebCore.xcodeproj/project.pbxproj:
2861         * bindings/scripts/IDLParser.pm:
2862         (Parse):
2863         (parseInterface):
2864         (parseException):
2865         (parseConst):
2866         (parseAttributeRest):
2867         (parseOperationRest):
2868         (parseOptionalOrRequiredArgument):
2869         (parseExceptionField):
2870         (parseInterfaceOld):
2871         (parseExceptionOld):
2872         (parseAttributeRestOld):
2873         (applyExtendedAttributeList):
2874         * bindings/scripts/IDLStructure.pm: Removed.
2875
2876 2012-11-18  Kentaro Hara  <haraken@chromium.org>
2877
2878         [V8] Make more use of $v8Interface in CodeGeneratorV8.pm
2879         https://bugs.webkit.org/show_bug.cgi?id=102639
2880
2881         Reviewed by Adam Barth.
2882
2883         We can replace hard-coded "V8${interfaceName}" with $v8Interface.
2884
2885         No tests. No change in generated code.
2886
2887         * bindings/scripts/CodeGeneratorV8.pm:
2888         (GenerateNormalAttrGetter):
2889         (GenerateNormalAttrSetter):
2890         (GenerateFunctionCallback):
2891         (GenerateNamedConstructorCallback):
2892         (GenerateImplementationIndexer):
2893         (GenerateImplementationNamedPropertyGetter):
2894         (GenerateImplementation):
2895
2896 2012-11-16  Ilya Tikhonovsky  <loislo@chromium.org>
2897
2898         webaudio: leak: AudioContext objects are leaking. They retain 36mb of shared data.
2899         https://bugs.webkit.org/show_bug.cgi?id=102356
2900
2901         Reviewed by Adam Barth.
2902
2903         A clean-up code was moved from uninitialize to clear method.
2904         AudioContext marks itself as hasPendingActivity in method constructCommon and unmarks itself in method clear.
2905         m_isStopScheduled filters out second ActiveDOMObject::stop call.
2906         markForDeletion appends AudioNode pointer to m_nodesToDelete array if there is no active audio thread.
2907         adoptRef was added in createOfflineContext method.
2908
2909         Test: inspector-protocol/nmi-webaudio-leak-test.html
2910
2911         * Modules/webaudio/AudioContext.cpp:
2912         (WebCore::AudioContext::createOfflineContext):
2913         (WebCore::AudioContext::AudioContext):
2914         (WebCore::AudioContext::constructCommon):
2915         (WebCore::AudioContext::~AudioContext):
2916         (WebCore::AudioContext::clear):
2917         (WebCore::AudioContext::uninitialize):
2918         (WebCore::AudioContext::stopDispatch):
2919         (WebCore::AudioContext::stop):
2920         (WebCore::AudioContext::markForDeletion):
2921         (WebCore::AudioContext::scheduleNodeDeletion):
2922         (WebCore::AudioContext::deleteMarkedNodes):
2923         * Modules/webaudio/AudioContext.h:
2924         (AudioContext):
2925         * bindings/v8/custom/V8AudioContextCustom.cpp:
2926         (WebCore::V8AudioContext::constructorCallback):
2927         * inspector/InspectorMemoryAgent.cpp:
2928         (WebCore::InspectorMemoryAgent::getProcessMemoryDistribution):
2929         * platform/PlatformMemoryInstrumentation.cpp:
2930         (WebCore::PlatformMemoryInstrumentation::reportMemoryUsage):
2931         (WebCore):
2932         * platform/PlatformMemoryInstrumentation.h:
2933         (PlatformMemoryInstrumentation):
2934         (WebCore):
2935
2936 2012-11-18  Kunihiko Sakamoto  <ksakamoto@chromium.org>
2937
2938         min/max/step support for calendar picker on datetime/datetime-local
2939         https://bugs.webkit.org/show_bug.cgi?id=102628
2940
2941         Reviewed by Kent Tamura.
2942
2943         Gray out dates with no allowed values on calendar picker for datetime/datetime-local
2944         when values are limited by min/max/step attributes.
2945
2946         Test: platform/chromium/fast/forms/calendar-picker/calendar-picker-datetime-with-step.html
2947
2948         * Resources/pagepopups/calendarPicker.js:
2949         (CalendarPicker.prototype._stepMismatch):
2950         Returns true iff there are any allowed values in the given day.
2951
2952 2012-11-18  Laszlo Gombos  <l.gombos@samsung.com>
2953
2954         Remove non-existent directories from the make system
2955         https://bugs.webkit.org/show_bug.cgi?id=102632
2956
2957         Reviewed by Adam Barth.
2958
2959         Remove (non-existent) symbian references from the exclude list in gyp project files.
2960
2961         No new tests as there is no new functionality.
2962
2963         * WebCore.gyp/WebCore.gyp:
2964
2965 2012-11-18  Patrick Gansterer  <paroga@webkit.org>
2966
2967         [WIN] Add a IMLangFontLinkType typedef
2968         https://bugs.webkit.org/show_bug.cgi?id=102584
2969
2970         Reviewed by Brent Fulgham.
2971
2972         Add a central typedef for IMLangFontLink(2) to get rid of a bunch of ifdefs.
2973
2974         * platform/graphics/FontCache.h:
2975         (WebCore):
2976         * platform/graphics/win/FontCacheWin.cpp:
2977         (WebCore::FontCache::getFontLinkInterface):
2978         (WebCore::getCJKCodePageMasks):
2979         (WebCore::createMLangFont):
2980         (WebCore::FontCache::getFontDataForCharacters):
2981         * platform/graphics/win/SimpleFontDataWin.cpp:
2982         (WebCore::SimpleFontData::containsCharacters):
2983         * platform/graphics/wince/FontCacheWinCE.cpp:
2984         (WebCore):
2985         (WebCore::FontCache::getFontLinkInterface):
2986         (WebCore::getCJKCodePageMasks):
2987         (WebCore::FontCache::getFontDataForCharacters):
2988         * platform/graphics/wince/FontPlatformData.cpp:
2989         (WebCore::FontFamilyCodePageInfo::codePages):
2990         (WebCore::FixedSizeFontData::create):
2991         * platform/graphics/wince/GlyphPageTreeNodeWinCE.cpp:
2992         (WebCore::GlyphPage::fill):
2993
2994 2012-11-18  Mike West  <mkwst@chromium.org>
2995
2996         Web Inspector: Remove unused ConsoleMessage constructor.
2997         https://bugs.webkit.org/show_bug.cgi?id=102590
2998
2999         Reviewed by Brent Fulgham.
3000
3001         We currently have a ConsoleMessage constructor that's unused. Let's
3002         kill it.
3003
3004         * inspector/ConsoleMessage.cpp:
3005         * inspector/ConsoleMessage.h:
3006         (ConsoleMessage):
3007             Removing an unused constructor variant.
3008
3009 2012-11-18  Andreas Kling  <akling@apple.com>
3010
3011         StyledElement: Make handling the "style" attribute a litte faster.
3012         <http://webkit.org/b/102623>
3013
3014         Reviewed by Ojan Vafai.
3015
3016         We know that "style" is never a presentation attribute, so avoid the virtual call to isPresentationAttribute()
3017         by hoisting the parseAttribute() logic up into attributeChanged().
3018         Did the same thing with Element::parseAttribute() for consistency.
3019
3020         Knocks ~0.6% of samples off of the DOM/CreateNodes performance test.
3021
3022         * dom/Element.cpp:
3023         (WebCore::Element::attributeChanged):
3024         * dom/Element.h:
3025         (WebCore::Element::parseAttribute):
3026         * dom/StyledElement.cpp:
3027         (WebCore::StyledElement::attributeChanged):
3028         * dom/StyledElement.h:
3029         (StyledElement):
3030
3031 2012-11-18  Laszlo Gombos  <l.gombos@samsung.com>
3032
3033         [CMake] Consolidate common input files
3034         https://bugs.webkit.org/show_bug.cgi?id=101632
3035
3036         Reviewed by Rob Buis.
3037
3038         Consolidate and sort the list of files, move common source files
3039         into CMakeLists.txt from the port specific files.
3040
3041         No new tests as there is no new functionality.
3042
3043         * CMakeLists.txt:
3044         * PlatformBlackBerry.cmake:
3045         * PlatformEfl.cmake:
3046         * PlatformWinCE.cmake:
3047
3048 2012-11-18  Andreas Kling  <akling@apple.com>
3049
3050         Tighten small SharedBuffers by reserving the exact amount of space needed.
3051         <http://webkit.org/b/102625>
3052
3053         Reviewed by Anders Carlsson.
3054
3055         When adding the first chunk to a small (<4096 bytes) SharedBuffer, reserve the exact
3056         amount of space needed instead of leaving it to Vector<char>::append().
3057
3058         1.86MB progression on Membuster3.
3059
3060         * platform/SharedBuffer.cpp:
3061         (WebCore::SharedBuffer::append):
3062
3063 2012-11-18  Ryosuke Niwa  <rniwa@webkit.org>
3064
3065         Make namedItem return a node list only in HTMLFormControlsCollection and HTMLOptionsCollection
3066         https://bugs.webkit.org/show_bug.cgi?id=101311
3067
3068         Reviewed by Darin Adler.
3069
3070         Introduce two new interfaces HTMLFormControlsCollection and HTMLOptionsCollection to be used by form.elements
3071         and select.options. These two interfaces have the named getter and namedItem that returns a live NodeList when
3072         there are multiple matches. Introducing these two interfaces allow us to make "regular" HTMLCollection's named
3073         getter and namedItem return exactly one node or null as specified in HTML5:
3074         http://www.whatwg.org/specs/web-apps/current-work/multipage/common-dom-interfaces.html#collections-0
3075
3076         Unfortunately, HTMLOptionsCollection still has a bug that its named getter and namedItem returns
3077         a static NodeList instead of a live NodeList (DynamicNodeList) at the moment.
3078
3079         Also got rid of Document::objects since it's not exposed in IDL or called anywhere.
3080
3081         Test: fast/dom/html-collections-namedItem.html
3082
3083         * CMakeLists.txt:
3084         * DerivedSources.cpp:
3085         * DerivedSources.make:
3086         * DerivedSources.pri:
3087         * GNUmakefile.list.am:
3088         * Target.pri:
3089         * UseJSC.cmake:
3090         * UseV8.cmake:
3091         * WebCore.gypi:
3092         * WebCore.vcproj/WebCore.vcproj:
3093         * WebCore.xcodeproj/project.pbxproj:
3094         * bindings/js/JSBindingsAllInOne.cpp:
3095         * bindings/js/JSHTMLAllCollectionCustom.cpp:
3096         (WebCore::getNamedItems):
3097         * bindings/js/JSHTMLCollectionCustom.cpp:
3098         (WebCore::JSHTMLCollection::nameGetter): Now returns exactly one node or null.
3099         (WebCore::toJS):
3100         * bindings/js/JSHTMLFormControlsCollectionCustom.cpp: Added.
3101         (WebCore::getNamedItems): Returns RadioNodeList when there are multiple matches.
3102         (WebCore::JSHTMLFormControlsCollection::canGetItemsForName):
3103         (WebCore::JSHTMLFormControlsCollection::nameGetter):
3104         (WebCore::JSHTMLFormControlsCollection::namedItem):
3105         * bindings/js/JSHTMLOptionsCollectionCustom.cpp:
3106         (WebCore::getNamedItems): Returns a static NodeList when there are multiple matches.
3107         This is a bug. It should be a live NodeList instead.
3108         (WebCore::JSHTMLOptionsCollection::canGetItemsForName):
3109         (WebCore::JSHTMLOptionsCollection::nameGetter):
3110         (WebCore::JSHTMLOptionsCollection::namedItem):
3111         * bindings/js/CodeGeneratorJS.pm: Include JSNode.js for all HTML*Collection interfaces for simplicity.
3112         * bindings/js/CodeGeneratorV8.pm: HTMLOptionsCollection now inherits from HTMLCollection. See
3113         http://www.whatwg.org/specs/web-apps/current-work/multipage/common-dom-interfaces.html#htmloptionscollection
3114         * bindings/v8/custom/V8HTMLAllCollectionCustom.cpp: Pass in isolate when we can.
3115         (WebCore::getNamedItems): Added a comment about how we should be returning
3116         a HTMLCollection when there are multiple matches.
3117         (WebCore::getItem):
3118         (WebCore::V8HTMLAllCollection::namedPropertyGetter):
3119         (WebCore::V8HTMLAllCollection::namedItemCallback):
3120         * bindings/v8/custom/V8HTMLCollectionCustom.cpp: Now returns exactly one node or null.
3121         (WebCore::V8HTMLCollection::namedPropertyGetter):
3122         (WebCore::toV8):
3123         * bindings/v8/custom/V8HTMLFormControlsCollectionCustom.cpp: Added.
3124         (WebCore::getNamedItems): Returns RadioNodeList when there are multiple matches.
3125         (WebCore::V8HTMLFormControlsCollection::namedPropertyGetter):
3126         (WebCore::V8HTMLFormControlsCollection::namedItemCallback):
3127         * bindings/v8/custom/V8HTMLOptionsCollectionCustom.cpp:
3128         (WebCore::getNamedItems): Returns a static NodeList when there are multiple matches.
3129         This is a bug. It should be a live NodeList instead.
3130         (WebCore::V8HTMLOptionsCollection::namedPropertyGetter):
3131         (WebCore::V8HTMLOptionsCollection::namedItemCallback):
3132         * dom/Document.cpp: Removed Document::objects since it was not used anywhere.
3133         * dom/Document.h:
3134         (Document):
3135         * dom/Element.cpp:
3136         (WebCore::ElementRareData::ensureCachedHTMLCollection): form.elements should instantiate
3137         a HTMLFormControlsCollection instead of a HTMLCollection.
3138         * html/CollectionType.h:
3139         * html/HTMLCollection.idl: Removed [Custom] since namedItem is a regular function call now.
3140         * html/HTMLFieldSetElement.cpp:
3141         * html/HTMLFieldSetElement.h:
3142         * html/HTMLFormCollection.cpp: Removed.
3143         * html/HTMLFormCollection.h: Removed.
3144         * html/HTMLFormControlsCollection.cpp: Copied from Source/WebCore/html/HTMLFormCollection.cpp.
3145         (WebCore::HTMLFormControlsCollection::HTMLFormControlsCollection):
3146         (WebCore::HTMLFormControlsCollection::create):
3147         (WebCore::HTMLFormControlsCollection::~HTMLFormControlsCollection):
3148         (WebCore::HTMLFormControlsCollection::formControlElements):
3149         (WebCore::HTMLFormControlsCollection::formImageElements):
3150         (WebCore::HTMLFormControlsCollection::virtualItemAfter):
3151         (WebCore::HTMLFormControlsCollection::namedItem):
3152         (WebCore::HTMLFormControlsCollection::updateNameCache):
3153         * html/HTMLFormControlsCollection.h: Copied from Source/WebCore/html/HTMLFormCollection.h.
3154         (HTMLFormControlsCollection):
3155         * html/HTMLFormControlsCollection.idl: Added.
3156         * html/HTMLFormElement.cpp:
3157         * html/HTMLFormElement.h:
3158         * html/HTMLOptionsCollection.idl:
3159
3160 2012-11-18  Kentaro Hara  <haraken@chromium.org>
3161
3162         [V8] Rename $className to $v8InterfaceName
3163         https://bugs.webkit.org/show_bug.cgi?id=102487
3164
3165         Reviewed by Adam Barth.
3166
3167         In CodeGeneratorV8.pm, $className is always "V8$interfaceName".
3168         We should rename $className to $v8InterfaceName. Also we can
3169         remove GetCallbackClassName().
3170
3171         No tests. No change in behavior.
3172
3173         * bindings/scripts/CodeGeneratorV8.pm:
3174         (GenerateHeader):
3175         (GetHeaderClassInclude):
3176         (GenerateDomainSafeFunctionGetter):
3177         (GenerateDomainSafeFunctionSetter):
3178         (GenerateParametersCheck):
3179         (GenerateImplementation):
3180         (GenerateHeaderContentHeader):
3181         (GenerateImplementationContentHeader):
3182         (GenerateCallbackHeader):
3183         (GenerateCallbackImplementation):
3184         (GenerateToV8Converters):
3185         (GetPassRefPtrType):
3186
3187 2012-11-18  Kentaro Hara  <haraken@chromium.org>
3188
3189         [V8] Remove GetTypeFromSignature() from CodeGeneratorV8.pm
3190         https://bugs.webkit.org/show_bug.cgi?id=102499
3191
3192         Reviewed by Adam Barth.
3193
3194         No tests. No change in behavior.
3195
3196         * bindings/scripts/CodeGeneratorV8.pm:
3197         (GenerateNormalAttrGetter):
3198         (GenerateNormalAttrSetter):
3199         (GenerateParametersCheckExpression):
3200         (GenerateParametersCheck):
3201         (GenerateFunctionCallString):
3202         (GetNativeTypeFromSignature):
3203         (TranslateParameter):
3204         (TypeCanFailConversion):
3205         (JSValueToNative):
3206         (NativeToJSValue):
3207
3208 2012-11-18  Kentaro Hara  <haraken@chromium.org>
3209
3210         Remove GenerateModule() from all code generators
3211         https://bugs.webkit.org/show_bug.cgi?id=102490
3212
3213         Reviewed by Adam Barth.
3214
3215         WebKit IDL files no longer support modules. The Web IDL spec
3216         no longer supports modules. We can remove it from code generators.
3217
3218         No tests. No change in behavior.
3219
3220         * bindings/scripts/CodeGenerator.pm:
3221         (ProcessDocument):
3222         * bindings/scripts/CodeGeneratorCPP.pm:
3223         * bindings/scripts/CodeGeneratorGObject.pm:
3224         * bindings/scripts/CodeGeneratorJS.pm:
3225         * bindings/scripts/CodeGeneratorObjC.pm:
3226         * bindings/scripts/CodeGeneratorV8.pm:
3227
3228 2012-11-18  Kentaro Hara  <haraken@chromium.org>
3229
3230         [V8] Get rid of unused functions and inline redundant functions in CodeGeneratorV8.pm
3231         https://bugs.webkit.org/show_bug.cgi?id=102497
3232
3233         Reviewed by Adam Barth.
3234
3235         No tests. No change in behavior.
3236
3237         * bindings/scripts/CodeGeneratorV8.pm:
3238         (GenerateDomainSafeFunctionGetter):
3239         (GenerateNormalAttrGetter):
3240         (GenerateFunctionCallString):
3241
3242 2012-11-18  Sheriff Bot  <webkit.review.bot@gmail.com>
3243
3244         Unreviewed, rolling out r135074.
3245         http://trac.webkit.org/changeset/135074
3246         https://bugs.webkit.org/show_bug.cgi?id=102619
3247
3248         Made most layout tests crash. (Requested by rakuco on
3249         #webkit).
3250
3251         * PlatformEfl.cmake:
3252         * platform/graphics/efl/GraphicsContext3DEfl.cpp:
3253         (WebCore::GraphicsContext3D::create):
3254         (WebCore::GraphicsContext3D::GraphicsContext3D):
3255         (WebCore::GraphicsContext3D::~GraphicsContext3D):
3256         (WebCore::GraphicsContext3D::makeContextCurrent):
3257         (WebCore::GraphicsContext3D::setContextLostCallback):
3258         * platform/graphics/efl/GraphicsContext3DPrivate.cpp:
3259         (WebCore::GraphicsContext3DPrivate::GraphicsContext3DPrivate):
3260         (WebCore::GraphicsContext3DPrivate::~GraphicsContext3DPrivate):
3261         (WebCore::GraphicsContext3DPrivate::createSurface):
3262         (WebCore::GraphicsContext3DPrivate::setCurrentGLContext):
3263         (WebCore::GraphicsContext3DPrivate::platformGraphicsContext3D):
3264         (WebCore::GraphicsContext3DPrivate::makeContextCurrent):
3265         (WebCore::GraphicsContext3DPrivate::createGraphicsSurfaces):
3266         (WebCore::GraphicsContext3DPrivate::copyToGraphicsSurface):
3267         (WebCore::GraphicsContext3DPrivate::graphicsSurfaceToken):
3268         * platform/graphics/efl/GraphicsContext3DPrivate.h:
3269         (GraphicsContext3DPrivate):
3270         * platform/graphics/opengl/GLDefs.h: Removed.
3271         * platform/graphics/opengl/GLPlatformContext.cpp: Removed.
3272         * platform/graphics/opengl/GLPlatformContext.h: Removed.
3273         * platform/graphics/opengl/GLPlatformSurface.cpp: Removed.
3274         * platform/graphics/opengl/GLPlatformSurface.h: Removed.
3275         * platform/graphics/surfaces/glx/GLXContext.cpp: Removed.
3276         * platform/graphics/surfaces/glx/GLXContext.h: Removed.
3277         * platform/graphics/surfaces/glx/GLXSurface.cpp: Removed.
3278         * platform/graphics/surfaces/glx/GLXSurface.h: Removed.
3279
3280 2012-11-18  Antti Koivisto  <antti@apple.com>
3281
3282         REGRESSION(r129644): User StyleSheet not applying
3283         https://bugs.webkit.org/show_bug.cgi?id=102110
3284
3285         Reviewed by Andreas Kling.
3286
3287         Injected stylesheets added as UserStyleAuthorLevel fail to apply. r129644 implicitly assumed that
3288         such things don't exists but on Chromium addUserStyleSheet() confusingly uses them.
3289         
3290         The patch adds injected author stylesheets to DocumentStyleSheetCollection::activeStyleSheets().
3291         It also generally cleans up the code around injected and user stylesheets.
3292
3293         Tests: userscripts/user-script-and-stylesheet.html
3294                userscripts/user-stylesheet-invalidate.html
3295
3296         * css/StyleResolver.cpp:
3297         (WebCore::StyleResolver::StyleResolver):
3298         (WebCore::StyleResolver::collectRulesFromUserStyleSheets):
3299         (WebCore::collectCSSOMWrappers):
3300         * css/StyleResolver.h:
3301         (StyleResolver):
3302         * dom/Document.cpp:
3303         (WebCore::Document::setCompatibilityMode):
3304         * dom/DocumentStyleSheetCollection.cpp:
3305         (WebCore::DocumentStyleSheetCollection::DocumentStyleSheetCollection):
3306         (WebCore::DocumentStyleSheetCollection::~DocumentStyleSheetCollection):
3307         (WebCore::DocumentStyleSheetCollection::injectedUserStyleSheets):
3308         (WebCore):
3309         (WebCore::DocumentStyleSheetCollection::injectedAuthorStyleSheets):
3310         (WebCore::DocumentStyleSheetCollection::updateInjectedStyleSheetCache):
3311         (WebCore::DocumentStyleSheetCollection::invalidateInjectedStyleSheetCache):
3312         (WebCore::DocumentStyleSheetCollection::addUserSheet):
3313         (WebCore::DocumentStyleSheetCollection::updateActiveStyleSheets):
3314         (WebCore::DocumentStyleSheetCollection::reportMemoryUsage):
3315         * dom/DocumentStyleSheetCollection.h:
3316         (WebCore::DocumentStyleSheetCollection::documentUserStyleSheets):
3317         (DocumentStyleSheetCollection):
3318         * page/PageGroup.cpp:
3319         (WebCore::PageGroup::addUserStyleSheetToWorld):
3320         (WebCore::PageGroup::removeUserStyleSheetFromWorld):
3321         (WebCore::PageGroup::removeUserStyleSheetsFromWorld):
3322         (WebCore::PageGroup::removeAllUserContent):
3323         (WebCore::PageGroup::invalidatedInjectedStyleSheetCacheInAllFrames):
3324         * page/PageGroup.h:
3325         (PageGroup):
3326
3327 2012-11-18  Adam Barth  <abarth@webkit.org>
3328
3329         Unreviewed.
3330
3331         Update run-bindings-tests baselines after
3332         http://trac.webkit.org/changeset/135063
3333
3334         * bindings/scripts/test/JS/JSTestActiveDOMObject.h:
3335         (JSTestActiveDOMObjectOwner):
3336         * bindings/scripts/test/JS/JSTestCustomNamedGetter.h:
3337         (JSTestCustomNamedGetterOwner):
3338         * bindings/scripts/test/JS/JSTestEventConstructor.h:
3339         (JSTestEventConstructorOwner):
3340         * bindings/scripts/test/JS/JSTestEventTarget.h:
3341         (JSTestEventTargetOwner):
3342         * bindings/scripts/test/JS/JSTestException.h:
3343         (JSTestExceptionOwner):
3344         * bindings/scripts/test/JS/JSTestInterface.h:
3345         (JSTestInterfaceOwner):
3346         * bindings/scripts/test/JS/JSTestMediaQueryListListener.h:
3347         (JSTestMediaQueryListListenerOwner):
3348         * bindings/scripts/test/JS/JSTestNamedConstructor.h:
3349         (JSTestNamedConstructorOwner):
3350         * bindings/scripts/test/JS/JSTestObj.h:
3351         (JSTestObjOwner):
3352         * bindings/scripts/test/JS/JSTestOverloadedConstructors.h:
3353         (JSTestOverloadedConstructorsOwner):
3354         * bindings/scripts/test/JS/JSTestSerializedScriptValueInterface.h:
3355         (JSTestSerializedScriptValueInterfaceOwner):
3356
3357 2012-11-18  Simon Fraser  <simon.fraser@apple.com>
3358
3359         Make convertToLayerCoords iterative, rather than recursive
3360         https://bugs.webkit.org/show_bug.cgi?id=102618
3361
3362         Reviewed by Antti Koivisto.
3363
3364         RenderLayer::convertToLayerCoords() is a hot function on profiles.
3365         Change it to be iterative, rather than recursive, so that the
3366         bulk of the function can be inlined.
3367         
3368         Was tested with assertions against the old code during development.
3369
3370         * rendering/RenderLayer.cpp:
3371         (WebCore::accumulateOffsetTowardsAncestor):
3372         (WebCore::RenderLayer::convertToLayerCoords):
3373
3374 2012-11-18  Andreas Kling  <akling@apple.com>
3375
3376         Inline the StyledElement constructor.
3377         <http://webkit.org/b/102615>
3378
3379         Reviewed by Antti Koivisto.
3380
3381         StyledElement sits between Element and HTMLElement in the inheritance chain, and both of those are inline. 
3382         Knocks ~0.4% of samples off of the DOM/CreateNodes performance test.
3383
3384         * dom/StyledElement.cpp:
3385         * dom/StyledElement.h:
3386         (WebCore::StyledElement::StyledElement):
3387
3388 2012-11-18  Andreas Kling  <akling@apple.com>
3389
3390         HTMLMediaElement: Skip unnecessary attribute lookup in parsing of "src" attribute.
3391         <http://webkit.org/b/102614>
3392
3393         Reviewed by Anders Carlsson.
3394
3395         When parsing the "src" attribute, we don't need to look it up with fastHasAttribute()
3396         to know if it's present. If it's not present, 'value' argument will be null.
3397
3398         * html/HTMLMediaElement.cpp:
3399         (WebCore::HTMLMediaElement::parseAttribute):
3400
3401 2012-11-18  Kondapally Kalyan  <kalyan.kondapally@intel.com>
3402
3403         [EFL] Refactor GraphicsContext3DEFL.
3404         https://bugs.webkit.org/show_bug.cgi?id=101291.
3405
3406         Reviewed by Kenneth Rohde Christiansen.
3407
3408         GraphicsContext3DEfl creates GraphicsContext3DPrivate, which acts as its platform Layer.
3409         GraphicsContext3DPrivate needs to handle the following cases:
3410         1) To provide an off-screen buffer for accelerated composition.
3411         2) Render to a current context.
3412         3) To render directly to host window. (currently not supported.)
3413
3414         Before this patch Evas was used to provide us an off-screen context and buffer. GLX was used in
3415         the other supported case. Evas acts as a glue layer to provide us with appropriate
3416         GL bindings (OpenGL functions), GL context and drawable (surface/offscreenbuffer).
3417         However, primitive rendering is handled by TextureMapper and OpenGLShims is used to load the needed GL functions.
3418
3419         It would be for our advantage to be able to take in to use any optimisations/extensions
3420         provided by underlying drivers, specific to a platform (e.g. GLX_MESA_copy_sub_buffer etc.).
3421         This patch introduces an abstraction layer to make it easy to add support for any GL backend (GLX, EGL etc.)
3422         and do any platform specific optimizations as needed without complicating GraphicsContext3DPrivate class.
3423         Two new classes are added with this implementation, GLPlatformContext and GLPlatformSurface.
3424         GraphicsContext3DPrivate would create and own a GLPlatformContext and GLPlatformSurface.
3425
3426         GLPlatformContext encapsulates an OpenGL context hiding any platform specific management.
3427         It uses GL extension ARB_robustness (when available) to detect driver resets.
3428         It defines a simple interface for things that need to be handled by the context. Support
3429         for multi-threaded usage and shared context-group would be added later.
3430
3431         GLPlatformSurface encapsulates an OpenGL drawable hiding any platform specific management.
3432         It defines a simple interface for things that need to be handled by the surface.
3433         It creates an off-screen rendering area. Any GLPlatformContext (compatible with the surface)
3434         can be used to render into this off-screen area.
3435
3436         This patch also adds GLX implementation. To keep the patch to minimum EGL support would be added in another changeset.
3437
3438         * PlatformEfl.cmake:
3439         * platform/graphics/efl/GraphicsContext3DEfl.cpp:
3440         (WebCore::GraphicsContext3D::create):
3441         (WebCore::GraphicsContext3D::GraphicsContext3D):
3442         (WebCore::GraphicsContext3D::~GraphicsContext3D):
3443         (WebCore::GraphicsContext3D::makeContextCurrent):
3444         (WebCore::GraphicsContext3D::setContextLostCallback):
3445         * platform/graphics/efl/GraphicsContext3DPrivate.cpp:
3446         (WebCore::GraphicsContext3DPrivate::GraphicsContext3DPrivate):
3447         (GraphicsContext3DPrivate::~GraphicsContext3DPrivate):
3448         (GraphicsContext3DPrivate::releaseResources):
3449         (GraphicsContext3DPrivate::setContextLostCallback):
3450         (GraphicsContext3DPrivate::platformGraphicsContext3D):
3451         (GraphicsContext3DPrivate::makeContextCurrent):
3452         (GraphicsContext3DPrivate::createGraphicsSurfaces):
3453         (GraphicsContext3DPrivate::copyToGraphicsSurface):
3454         (GraphicsContext3DPrivate::graphicsSurfaceToken):
3455         * platform/graphics/efl/GraphicsContext3DPrivate.h:
3456         (GraphicsContext3DPrivate):
3457         * platform/graphics/opengl/GLDefs.h: Added.
3458         (WebCore):
3459         * platform/graphics/opengl/GLPlatformContext.cpp: Added.
3460         (WebCore):
3461         (WebCore::GLPlatformContext::createContext):
3462         (WebCore::GLPlatformContext::createOffScreenContext):
3463         (WebCore::GLPlatformContext::createCurrentContextWrapper):
3464         (WebCore::GLPlatformContext::GLPlatformContext):
3465         (WebCore::GLPlatformContext::~GLPlatformContext):
3466         (WebCore::GLPlatformContext::makeCurrent):
3467         (WebCore::GLPlatformContext::isValid):
3468         (WebCore::GLPlatformContext::releaseCurrent):
3469         (WebCore::GLPlatformContext::handle):
3470         (WebCore::GLPlatformContext::isCurrentContext):
3471         (WebCore::GLPlatformContext::initialize):
3472         (WebCore::GLPlatformContext::getCurrent):
3473         (WebCore::GLPlatformContext::platformMakeCurrent):
3474         (WebCore::GLPlatformContext::platformReleaseCurrent):
3475         (WebCore::GLPlatformContext::destroy):
3476         * platform/graphics/opengl/GLPlatformContext.h: Added.
3477         (WebCore):
3478         (GLPlatformContext):
3479         * platform/graphics/opengl/GLPlatformSurface.cpp: Added.
3480         (WebCore):
3481         (WebCore::GLPlatformSurface::createOffscreenSurface):
3482         (WebCore::GLPlatformSurface::createTransportSurface):
3483         (WebCore::GLPlatformSurface::GLPlatformSurface):
3484         (WebCore::GLPlatformSurface::~GLPlatformSurface):
3485         (WebCore::GLPlatformSurface::handle):
3486         (WebCore::GLPlatformSurface::geometry):
3487         (WebCore::GLPlatformSurface::sharedDisplay):
3488         (WebCore::GLPlatformSurface::configuration):
3489         (WebCore::GLPlatformSurface::swapBuffers):
3490         (WebCore::GLPlatformSurface::copyTexture):
3491         (WebCore::GLPlatformSurface::updateContents):
3492         (WebCore::GLPlatformSurface::setGeometry):
3493         (WebCore::GLPlatformSurface::destroy):
3494         * platform/graphics/opengl/GLPlatformSurface.h: Added.
3495         (WebCore):
3496         (GLPlatformSurface):
3497             GLXOffScreenContext creates an off-screen context. This is used when
3498             renderstyle is RenderOffscreen.
3499             It uses GL extension GLX_ARB_create_context (when available)
3500             to create a context else falls back to use glXCreateNewContext.
3501         * platform/graphics/surfaces/glx/GLXContext.cpp: Added.
3502         (WebCore):
3503         (WebCore::initializeARBExtensions):
3504         (WebCore::GLXOffScreenContext::GLXOffScreenContext):
3505         (WebCore::GLXOffScreenContext::initialize):
3506         (WebCore::GLXOffScreenContext::~GLXOffScreenContext):
3507         (WebCore::GLXOffScreenContext::isCurrentContext):
3508         (WebCore::GLXOffScreenContext::platformMakeCurrent):
3509         (WebCore::GLXOffScreenContext::platformReleaseCurrent):
3510         (WebCore::GLXOffScreenContext::freeResources):
3511         (WebCore::GLXOffScreenContext::destroy):
3512             GLXCurrentContextWrapper acts as a wrapper for current context.
3513             This is used when renderstyle is RenderToCurrentGLContext.
3514         * platform/graphics/surfaces/glx/GLXContext.h: Added.
3515         (WebCore):
3516         (GLXCurrentContextWrapper):
3517         (WebCore::GLXCurrentContextWrapper::GLXCurrentContextWrapper):
3518         (WebCore::GLXCurrentContextWrapper::~GLXCurrentContextWrapper):
3519         (GLXOffScreenContext):
3520         * platform/graphics/surfaces/glx/GLXSurface.cpp: Added.
3521         (WebCore):
3522         (WebCore::GLXSurface::GLXSurface):
3523         (WebCore::GLXSurface::~GLXSurface):
3524         (WebCore::GLXSurface::visualInfo):
3525         (WebCore::GLXSurface::xWindow):
3526         (WebCore::GLXSurface::pBufferConfiguration):
3527         (WebCore::GLXSurface::transportSurfaceConfiguration):
3528         (WebCore::GLXSurface::isXRenderExtensionSupported):
3529             GLXTransportSurface creates Window and uses it as an off-screen surface.
3530             Any GLContext that was created with respect to configuration can be used
3531             to render into this.
3532             This is used when contents of the buffer are to be provided to UI Process
3533             for display.
3534         (WebCore::GLXTransportSurface::GLXTransportSurface):
3535         (WebCore::GLXTransportSurface::~GLXTransportSurface):
3536         (WebCore::GLXTransportSurface::configuration):
3537         (WebCore::GLXTransportSurface::swapBuffers):
3538         (WebCore::GLXTransportSurface::setGeometry):
3539         (WebCore::GLXTransportSurface::initialize):
3540         (WebCore::GLXTransportSurface::destroy):
3541         (WebCore::GLXTransportSurface::freeResources):
3542            GLXPBuffer, Creates a GL surface (PBuffer) used for offscreen rendering.
3543            Any GLContext that was created with respect to configuration can be used
3544            to render into this.
3545         (WebCore::GLXPBuffer::GLXPBuffer):
3546         (WebCore::GLXPBuffer::~GLXPBuffer):
3547         (WebCore::GLXPBuffer::initialize):
3548         (WebCore::GLXPBuffer::configuration):
3549         (WebCore::GLXPBuffer::destroy):
3550         (WebCore::GLXPBuffer::freeResources):
3551         * platform/graphics/surfaces/glx/GLXSurface.h: Added.
3552         (WebCore):
3553             Creates X resources which are shared between surface and context.
3554         (SharedX11Resources):
3555         (WebCore::SharedX11Resources::create):
3556         (WebCore::SharedX11Resources::deref):
3557         (WebCore::SharedX11Resources::getXWindow):
3558         (WebCore::SharedX11Resources::display):
3559         (WebCore::SharedX11Resources::visualInfo):
3560         (WebCore::SharedX11Resources::createConfig):
3561         (WebCore::SharedX11Resources::pBufferContextConfig):
3562         (WebCore::SharedX11Resources::surfaceContextConfig):
3563         (WebCore::SharedX11Resources::isXRenderExtensionSupported):
3564         (WebCore::SharedX11Resources::SharedX11Resources):
3565         (WebCore::SharedX11Resources::~SharedX11Resources):
3566         (GLXSurface):
3567         (GLXTransportSurface):
3568         (GLXPBuffer):
3569
3570 2012-11-18  Andreas Kling  <akling@apple.com>
3571
3572         Element::parseAttribute() should take name & value as separate arguments.
3573         <http://webkit.org/b/102608>
3574
3575         Reviewed by Antti Koivisto.
3576
3577         Update the signature of parseAttribute() to take a QualifiedName/AtomicString combo instead
3578         of an Attribute. This lets us pass avoid refcount churn in Element::attributeChanged() since
3579         creating a temporary Attribute is no longer necessary.
3580
3581         This was surprisingly hot (~1%) on the DOM/CreateNodes performance test.
3582
3583         * bindings/js/ScriptEventListener.cpp:
3584         (WebCore::createAttributeEventListener):
3585         * bindings/js/ScriptEventListener.h:
3586         (WebCore):
3587         * bindings/v8/ScriptEventListener.cpp:
3588         (WebCore::createAttributeEventListener):
3589         * bindings/v8/ScriptEventListener.h:
3590         (WebCore):
3591         * dom/Element.cpp:
3592         (WebCore::Element::attributeChanged):
3593         (WebCore::Element::parseAttribute):
3594         * dom/Element.h:
3595         (Element):
3596         * dom/StyledElement.cpp:
3597         (WebCore::StyledElement::parseAttribute):
3598         * dom/StyledElement.h:
3599         (StyledElement):
3600         * html/HTMLAnchorElement.cpp:
3601         (WebCore::HTMLAnchorElement::parseAttribute):
3602         * html/HTMLAnchorElement.h:
3603         (HTMLAnchorElement):
3604         * html/HTMLAppletElement.cpp:
3605         (WebCore::HTMLAppletElement::parseAttribute):
3606         * html/HTMLAppletElement.h:
3607         (HTMLAppletElement):
3608         * html/HTMLAreaElement.cpp:
3609         (WebCore::HTMLAreaElement::parseAttribute):
3610         * html/HTMLAreaElement.h:
3611         (HTMLAreaElement):
3612         * html/HTMLBaseElement.cpp:
3613         (WebCore::HTMLBaseElement::parseAttribute):
3614         * html/HTMLBaseElement.h:
3615         (HTMLBaseElement):
3616         * html/HTMLBodyElement.cpp:
3617         (WebCore::HTMLBodyElement::parseAttribute):
3618         * html/HTMLBodyElement.h:
3619         (HTMLBodyElement):
3620         * html/HTMLButtonElement.cpp:
3621         (WebCore::HTMLButtonElement::parseAttribute):
3622         * html/HTMLButtonElement.h:
3623         * html/HTMLCanvasElement.cpp:
3624         (WebCore::HTMLCanvasElement::parseAttribute):
3625         * html/HTMLCanvasElement.h:
3626         (HTMLCanvasElement):
3627         * html/HTMLDetailsElement.cpp:
3628         (WebCore::HTMLDetailsElement::parseAttribute):
3629         * html/HTMLDetailsElement.h:
3630         (HTMLDetailsElement):
3631         * html/HTMLElement.cpp:
3632         (WebCore::HTMLElement::parseAttribute):
3633         (WebCore::HTMLElement::dirAttributeChanged):
3634         * html/HTMLElement.h:
3635         (HTMLElement):
3636         * html/HTMLEmbedElement.cpp:
3637         (WebCore::HTMLEmbedElement::parseAttribute):
3638         * html/HTMLEmbedElement.h:
3639         (HTMLEmbedElement):
3640         * html/HTMLFormControlElement.cpp:
3641         (WebCore::HTMLFormControlElement::parseAttribute):
3642         * html/HTMLFormControlElement.h:
3643         (HTMLFormControlElement):
3644         * html/HTMLFormElement.cpp:
3645         (WebCore::HTMLFormElement::parseAttribute):
3646         * html/HTMLFormElement.h:
3647         (HTMLFormElement):
3648         * html/HTMLFrameElement.cpp:
3649         (WebCore::HTMLFrameElement::parseAttribute):
3650         * html/HTMLFrameElement.h:
3651         (HTMLFrameElement):
3652         * html/HTMLFrameElementBase.cpp:
3653         (WebCore::HTMLFrameElementBase::parseAttribute):
3654         * html/HTMLFrameElementBase.h:
3655         (HTMLFrameElementBase):
3656         * html/HTMLFrameSetElement.cpp:
3657         (WebCore::HTMLFrameSetElement::parseAttribute):
3658         * html/HTMLFrameSetElement.h:
3659         (HTMLFrameSetElement):
3660         * html/HTMLIFrameElement.cpp:
3661         (WebCore::HTMLIFrameElement::parseAttribute):
3662         * html/HTMLIFrameElement.h:
3663         (HTMLIFrameElement):
3664         * html/HTMLImageElement.cpp:
3665         (WebCore::HTMLImageElement::parseAttribute):
3666         * html/HTMLImageElement.h:
3667         (HTMLImageElement):
3668         * html/HTMLInputElement.cpp:
3669         (WebCore::HTMLInputElement::parseAttribute):
3670         (WebCore::HTMLInputElement::parseMaxLengthAttribute):
3671         * html/HTMLInputElement.h:
3672         (HTMLInputElement):
3673         * html/HTMLKeygenElement.cpp:
3674         (WebCore::HTMLKeygenElement::parseAttribute):
3675         * html/HTMLKeygenElement.h:
3676         (HTMLKeygenElement):
3677         * html/HTMLLIElement.cpp:
3678         (WebCore::HTMLLIElement::parseAttribute):
3679         * html/HTMLLIElement.h:
3680         (HTMLLIElement):
3681         * html/HTMLLinkElement.cpp:
3682         (WebCore::HTMLLinkElement::parseAttribute):
3683         * html/HTMLLinkElement.h:
3684         (HTMLLinkElement):
3685         * html/HTMLMapElement.cpp:
3686         (WebCore::HTMLMapElement::parseAttribute):
3687         * html/HTMLMapElement.h:
3688         (HTMLMapElement):
3689         * html/HTMLMediaElement.cpp:
3690         (WebCore::HTMLMediaElement::parseAttribute):
3691         * html/HTMLMediaElement.h:
3692         * html/HTMLMetaElement.cpp:
3693         (WebCore::HTMLMetaElement::parseAttribute):
3694         * html/HTMLMetaElement.h:
3695         (HTMLMetaElement):
3696         * html/HTMLMeterElement.cpp:
3697         (WebCore::HTMLMeterElement::parseAttribute):
3698         * html/HTMLMeterElement.h:
3699         (HTMLMeterElement):
3700         * html/HTMLOListElement.cpp:
3701         (WebCore::HTMLOListElement::parseAttribute):
3702         * html/HTMLOListElement.h:
3703         (HTMLOListElement):
3704         * html/HTMLObjectElement.cpp:
3705         (WebCore::HTMLObjectElement::parseAttribute):
3706         * html/HTMLObjectElement.h:
3707         (HTMLObjectElement):
3708         * html/HTMLOptGroupElement.cpp:
3709         (WebCore::HTMLOptGroupElement::parseAttribute):
3710         * html/HTMLOptGroupElement.h:
3711         * html/HTMLOptionElement.cpp:
3712         (WebCore::HTMLOptionElement::parseAttribute):
3713         * html/HTMLOptionElement.h:
3714         (HTMLOptionElement):
3715         * html/HTMLOutputElement.cpp:
3716         (WebCore::HTMLOutputElement::parseAttribute):
3717         * html/HTMLOutputElement.h:
3718         (HTMLOutputElement):
3719         * html/HTMLProgressElement.cpp:
3720         (WebCore::HTMLProgressElement::parseAttribute):
3721         * html/HTMLProgressElement.h:
3722         * html/HTMLScriptElement.cpp:
3723         (WebCore::HTMLScriptElement::parseAttribute):
3724         * html/HTMLScriptElement.h:
3725         (HTMLScriptElement):
3726         * html/HTMLSelectElement.cpp:
3727         (WebCore::HTMLSelectElement::parseAttribute):
3728         (WebCore::HTMLSelectElement::parseMultipleAttribute):
3729         * html/HTMLSelectElement.h:
3730         * html/HTMLStyleElement.cpp:
3731         (WebCore::HTMLStyleElement::parseAttribute):
3732         * html/HTMLStyleElement.h:
3733         (HTMLStyleElement):
3734         * html/HTMLTableCellElement.cpp:
3735         (WebCore::HTMLTableCellElement::parseAttribute):
3736         * html/HTMLTableCellElement.h:
3737         (HTMLTableCellElement):
3738         * html/HTMLTableColElement.cpp:
3739         (WebCore::HTMLTableColElement::parseAttribute):
3740         * html/HTMLTableColElement.h:
3741         (HTMLTableColElement):
3742         * html/HTMLTableElement.cpp:
3743         (WebCore::HTMLTableElement::parseAttribute):
3744         * html/HTMLTableElement.h:
3745         (HTMLTableElement):
3746         * html/HTMLTextAreaElement.cpp:
3747         (WebCore::HTMLTextAreaElement::parseAttribute):
3748         * html/HTMLTextAreaElement.h:
3749         (HTMLTextAreaElement):
3750         * html/HTMLTextFormControlElement.cpp:
3751         (WebCore::HTMLTextFormControlElement::parseAttribute):
3752         * html/HTMLTextFormControlElement.h:
3753         (HTMLTextFormControlElement):
3754         * html/HTMLTrackElement.cpp:
3755         (WebCore::HTMLTrackElement::parseAttribute):
3756         * html/HTMLTrackElement.h:
3757         (HTMLTrackElement):
3758         * html/HTMLVideoElement.cpp:
3759         (WebCore::HTMLVideoElement::parseAttribute):
3760         * html/HTMLVideoElement.h:
3761         (HTMLVideoElement):
3762         * html/shadow/HTMLContentElement.cpp:
3763         (WebCore::HTMLContentElement::parseAttribute):
3764         * html/shadow/HTMLContentElement.h:
3765         (HTMLContentElement):
3766         * mathml/MathMLElement.cpp:
3767         (WebCore::MathMLElement::parseAttribute):
3768         * mathml/MathMLElement.h:
3769         (MathMLElement):
3770         * svg/SVGAElement.cpp:
3771         (WebCore::SVGAElement::parseAttribute):
3772         * svg/SVGAElement.h:
3773         (SVGAElement):
3774         * svg/SVGAnimateMotionElement.cpp:
3775         (WebCore::SVGAnimateMotionElement::parseAttribute):
3776         * svg/SVGAnimateMotionElement.h:
3777         (SVGAnimateMotionElement):
3778         * svg/SVGAnimateTransformElement.cpp:
3779         (WebCore::SVGAnimateTransformElement::parseAttribute):
3780         * svg/SVGAnimateTransformElement.h:
3781         (SVGAnimateTransformElement):
3782         * svg/SVGAnimationElement.cpp:
3783         (WebCore::SVGAnimationElement::parseAttribute):
3784         * svg/SVGAnimationElement.h:
3785         (SVGAnimationElement):
3786         * svg/SVGCircleElement.cpp:
3787         (WebCore::SVGCircleElement::parseAttribute):
3788         * svg/SVGCircleElement.h:
3789         (SVGCircleElement):
3790         * svg/SVGClipPathElement.cpp:
3791         (WebCore::SVGClipPathElement::parseAttribute):
3792         * svg/SVGClipPathElement.h:
3793         (SVGClipPathElement):
3794         * svg/SVGComponentTransferFunctionElement.cpp:
3795         (WebCore::SVGComponentTransferFunctionElement::parseAttribute):
3796         * svg/SVGComponentTransferFunctionElement.h:
3797         (SVGComponentTransferFunctionElement):
3798         * svg/SVGCursorElement.cpp:
3799         (WebCore::SVGCursorElement::parseAttribute):
3800         * svg/SVGCursorElement.h:
3801         (SVGCursorElement):
3802         * svg/SVGElement.cpp:
3803         (WebCore::SVGElement::reportAttributeParsingError):
3804         (WebCore::SVGElement::parseAttribute):
3805         * svg/SVGElement.h:
3806         (SVGElement):
3807         * svg/SVGEllipseElement.cpp:
3808         (WebCore::SVGEllipseElement::parseAttribute):
3809         * svg/SVGEllipseElement.h:
3810         (SVGEllipseElement):
3811         * svg/SVGExternalResourcesRequired.cpp:
3812         (WebCore::SVGExternalResourcesRequired::parseAttribute):
3813         * svg/SVGExternalResourcesRequired.h:
3814         (SVGExternalResourcesRequired):
3815         * svg/SVGFEBlendElement.cpp:
3816         (WebCore::SVGFEBlendElement::parseAttribute):
3817         * svg/SVGFEBlendElement.h:
3818         (SVGFEBlendElement):
3819         * svg/SVGFEColorMatrixElement.cpp:
3820         (WebCore::SVGFEColorMatrixElement::parseAttribute):
3821         * svg/SVGFEColorMatrixElement.h:
3822         (SVGFEColorMatrixElement):
3823         * svg/SVGFEComponentTransferElement.cpp:
3824         (WebCore::SVGFEComponentTransferElement::parseAttribute):
3825         * svg/SVGFEComponentTransferElement.h:
3826         (SVGFEComponentTransferElement):
3827         * svg/SVGFECompositeElement.cpp:
3828         (WebCore::SVGFECompositeElement::parseAttribute):
3829         * svg/SVGFECompositeElement.h:
3830         (SVGFECompositeElement):
3831         * svg/SVGFEConvolveMatrixElement.cpp:
3832         (WebCore::SVGFEConvolveMatrixElement::parseAttribute):
3833         * svg/SVGFEConvolveMatrixElement.h:
3834         (SVGFEConvolveMatrixElement):
3835         * svg/SVGFEDiffuseLightingElement.cpp:
3836         (WebCore::SVGFEDiffuseLightingElement::parseAttribute):
3837         * svg/SVGFEDiffuseLightingElement.h:
3838         (SVGFEDiffuseLightingElement):
3839         * svg/SVGFEDisplacementMapElement.cpp:
3840         (WebCore::SVGFEDisplacementMapElement::parseAttribute):
3841         * svg/SVGFEDisplacementMapElement.h:
3842         (SVGFEDisplacementMapElement):
3843         * svg/SVGFEDropShadowElement.cpp:
3844         (WebCore::SVGFEDropShadowElement::parseAttribute):
3845         * svg/SVGFEDropShadowElement.h:
3846         (SVGFEDropShadowElement):
3847         * svg/SVGFEGaussianBlurElement.cpp:
3848         (WebCore::SVGFEGaussianBlurElement::parseAttribute):
3849         * svg/SVGFEGaussianBlurElement.h:
3850         (SVGFEGaussianBlurElement):
3851         * svg/SVGFEImageElement.cpp:
3852         (WebCore::SVGFEImageElement::parseAttribute):
3853         * svg/SVGFEImageElement.h:
3854         (SVGFEImageElement):
3855         * svg/SVGFELightElement.cpp:
3856         (WebCore::SVGFELightElement::parseAttribute):
3857         * svg/SVGFELightElement.h:
3858         (SVGFELightElement):
3859         * svg/SVGFEMergeNodeElement.cpp:
3860         (WebCore::SVGFEMergeNodeElement::parseAttribute):
3861         * svg/SVGFEMergeNodeElement.h:
3862         (SVGFEMergeNodeElement):
3863         * svg/SVGFEMorphologyElement.cpp:
3864         (WebCore::SVGFEMorphologyElement::parseAttribute):
3865         * svg/SVGFEMorphologyElement.h:
3866         (SVGFEMorphologyElement):
3867         * svg/SVGFEOffsetElement.cpp:
3868         (WebCore::SVGFEOffsetElement::parseAttribute):
3869         * svg/SVGFEOffsetElement.h:
3870         (SVGFEOffsetElement):
3871         * svg/SVGFESpecularLightingElement.cpp:
3872         (WebCore::SVGFESpecularLightingElement::parseAttribute):
3873         * svg/SVGFESpecularLightingElement.h:
3874         (SVGFESpecularLightingElement):
3875         * svg/SVGFETileElement.cpp:
3876         (WebCore::SVGFETileElement::parseAttribute):
3877         * svg/SVGFETileElement.h:
3878         (SVGFETileElement):
3879         * svg/SVGFETurbulenceElement.cpp:
3880         (WebCore::SVGFETurbulenceElement::parseAttribute):
3881         * svg/SVGFETurbulenceElement.h:
3882         (SVGFETurbulenceElement):
3883         * svg/SVGFilterElement.cpp:
3884         (WebCore::SVGFilterElement::parseAttribute):
3885         * svg/SVGFilterElement.h:
3886         (SVGFilterElement):
3887         * svg/SVGFilterPrimitiveStandardAttributes.cpp:
3888         (WebCore::SVGFilterPrimitiveStandardAttributes::parseAttribute):
3889         * svg/SVGFilterPrimitiveStandardAttributes.h:
3890         (SVGFilterPrimitiveStandardAttributes):
3891         * svg/SVGFitToViewBox.h:
3892         (WebCore::SVGFitToViewBox::parseAttribute):
3893         * svg/SVGFontFaceElement.cpp:
3894         (WebCore::SVGFontFaceElement::parseAttribute):
3895         * svg/SVGFontFaceElement.h:
3896         (SVGFontFaceElement):
3897         * svg/SVGFontFaceUriElement.cpp:
3898         (WebCore::SVGFontFaceUriElement::parseAttribute):
3899         * svg/SVGFontFaceUriElement.h:
3900         (SVGFontFaceUriElement):
3901         * svg/SVGForeignObjectElement.cpp:
3902         (WebCore::SVGForeignObjectElement::parseAttribute):
3903         * svg/SVGForeignObjectElement.h:
3904         (SVGForeignObjectElement):
3905         * svg/SVGGElement.cpp:
3906         (WebCore::SVGGElement::parseAttribute):
3907         * svg/SVGGElement.h:
3908         (SVGGElement):
3909         * svg/SVGGlyphElement.cpp:
3910         (WebCore::SVGGlyphElement::parseAttribute):
3911         * svg/SVGGlyphElement.h:
3912         (SVGGlyphElement):
3913         * svg/SVGGlyphRefElement.cpp:
3914         (WebCore::SVGGlyphRefElement::parseAttribute):
3915         * svg/SVGGlyphRefElement.h:
3916         * svg/SVGGradientElement.cpp:
3917         (WebCore::SVGGradientElement::parseAttribute):
3918         * svg/SVGGradientElement.h:
3919         * svg/SVGImageElement.cpp:
3920         (WebCore::SVGImageElement::parseAttribute):
3921         * svg/SVGImageElement.h:
3922         (SVGImageElement):
3923         * svg/SVGLangSpace.cpp:
3924         (WebCore::SVGLangSpace::parseAttribute):
3925         * svg/SVGLangSpace.h:
3926         (SVGLangSpace):
3927         * svg/SVGLineElement.cpp:
3928         (WebCore::SVGLineElement::parseAttribute):
3929         * svg/SVGLineElement.h:
3930         (SVGLineElement):
3931         * svg/SVGLinearGradientElement.cpp:
3932         (WebCore::SVGLinearGradientElement::parseAttribute):
3933         * svg/SVGLinearGradientElement.h:
3934         (SVGLinearGradientElement):
3935         * svg/SVGMPathElement.cpp:
3936         (WebCore::SVGMPathElement::parseAttribute):
3937         * svg/SVGMPathElement.h:
3938         (SVGMPathElement):
3939         * svg/SVGMarkerElement.cpp:
3940         (WebCore::SVGMarkerElement::parseAttribute):
3941         * svg/SVGMarkerElement.h:
3942         (SVGMarkerElement):
3943         * svg/SVGMaskElement.cpp:
3944         (WebCore::SVGMaskElement::parseAttribute):
3945         * svg/SVGMaskElement.h:
3946         (SVGMaskElement):
3947         * svg/SVGPathElement.cpp:
3948         (WebCore::SVGPathElement::parseAttribute):
3949         * svg/SVGPathElement.h:
3950         (SVGPathElement):
3951         * svg/SVGPatternElement.cpp:
3952         (WebCore::SVGPatternElement::parseAttribute):
3953         * svg/SVGPatternElement.h:
3954         (SVGPatternElement):
3955         * svg/SVGPolyElement.cpp:
3956         (WebCore::SVGPolyElement::parseAttribute):
3957         * svg/SVGPolyElement.h:
3958         (SVGPolyElement):
3959         * svg/SVGRadialGradientElement.cpp:
3960         (WebCore::SVGRadialGradientElement::parseAttribute):
3961         * svg/SVGRadialGradientElement.h:
3962         (SVGRadialGradientElement):
3963         * svg/SVGRectElement.cpp:
3964         (WebCore::SVGRectElement::parseAttribute):
3965         * svg/SVGRectElement.h:
3966         (SVGRectElement):
3967         * svg/SVGSVGElement.cpp:
3968         (WebCore::SVGSVGElement::parseAttribute):
3969         * svg/SVGSVGElement.h:
3970         (SVGSVGElement):
3971         * svg/SVGScriptElement.cpp:
3972         (WebCore::SVGScriptElement::parseAttribute):
3973         * svg/SVGScriptElement.h:
3974         (SVGScriptElement):
3975         * svg/SVGStopElement.cpp:
3976         (WebCore::SVGStopElement::parseAttribute):
3977         * svg/SVGStopElement.h:
3978         (SVGStopElement):
3979         * svg/SVGStyleElement.cpp:
3980         (WebCore::SVGStyleElement::parseAttribute):
3981         * svg/SVGStyleElement.h:
3982         (SVGStyleElement):
3983         * svg/SVGStyledElement.cpp:
3984         (WebCore::SVGStyledElement::parseAttribute):
3985         * svg/SVGStyledElement.h:
3986         (SVGStyledElement):
3987         * svg/SVGStyledTransformableElement.cpp:
3988         (WebCore::SVGStyledTransformableElement::parseAttribute):
3989         * svg/SVGStyledTransformableElement.h:
3990         (SVGStyledTransformableElement):
3991         * svg/SVGSymbolElement.cpp:
3992         (WebCore::SVGSymbolElement::parseAttribute):
3993         * svg/SVGSymbolElement.h:
3994         (SVGSymbolElement):
3995         * svg/SVGTRefElement.cpp:
3996         (WebCore::SVGTRefElement::parseAttribute):
3997         * svg/SVGTRefElement.h:
3998         (SVGTRefElement):
3999         * svg/SVGTests.cpp:
4000         (WebCore::SVGTests::parseAttribute):
4001         * svg/SVGTests.h:
4002         (SVGTests):
4003         * svg/SVGTextContentElement.cpp:
4004         (WebCore::SVGTextContentElement::parseAttribute):
4005         * svg/SVGTextContentElement.h:
4006         (SVGTextContentElement):
4007         * svg/SVGTextElement.cpp:
4008         (WebCore::SVGTextElement::parseAttribute):
4009         * svg/SVGTextElement.h:
4010         (SVGTextElement):
4011         * svg/SVGTextPathElement.cpp:
4012         (WebCore::SVGTextPathElement::parseAttribute):
4013         * svg/SVGTextPathElement.h:
4014         * svg/SVGTextPositioningElement.cpp:
4015         (WebCore::SVGTextPositioningElement::parseAttribute):
4016         * svg/SVGTextPositioningElement.h:
4017         (SVGTextPositioningElement):
4018         * svg/SVGURIReference.cpp:
4019         (WebCore::SVGURIReference::parseAttribute):
4020         * svg/SVGURIReference.h:
4021         (SVGURIReference):
4022         * svg/SVGUseElement.cpp:
4023         (WebCore::SVGUseElement::parseAttribute):
4024         * svg/SVGUseElement.h:
4025         (SVGUseElement):
4026         * svg/SVGViewElement.cpp:
4027         (WebCore::SVGViewElement::parseAttribute):
4028         * svg/SVGViewElement.h:
4029         (SVGViewElement):
4030         * svg/SVGZoomAndPan.h:
4031         (WebCore::SVGZoomAndPan::parseAttribute):
4032         * svg/animation/SVGSMILElement.cpp:
4033         (WebCore::SVGSMILElement::parseAttribute):
4034         * svg/animation/SVGSMILElement.h:
4035         (SVGSMILElement):
4036
4037 2012-11-18  Andreas Kling  <akling@apple.com>
4038
4039         StyleResolver: No need to compare "cellpadding" attributes when evaluating style sharing candidates.
4040         <http://webkit.org/b/102596>
4041
4042         Reviewed by Antti Koivisto.
4043
4044         Differences in the cellpadding attribute is caught by comparing additionalPresentationAttributeStyle()
4045         later on in canShareStyleWithElement() and we shouldn't waste time on comparing them.
4046
4047         * css/StyleResolver.cpp:
4048         (WebCore::haveIdenticalStyleAffectingAttributes):
4049
4050 2012-11-17  Jon Lee  <jonlee@apple.com>
4051
4052         Simulated mouse events should return an accurate offset
4053         https://bugs.webkit.org/show_bug.cgi?id=102606
4054         <rdar://problem/12725627>
4055
4056         Reviewed by Brady Eidson.
4057
4058         A check to see if the event is simulated prior to calculating the offset has existed for a
4059         long time (since at least r14916). Back then the check was needed because the offset was
4060         incrementally adjusted when the target was assigned (through
4061         MouseRelatedEvent::receivedTarget()).
4062
4063         Since r82225, we started calculating the offset only when needed, and calculating the offset
4064         from scratch rather than incrementally adjusting it. Since we recalculate from scratch,
4065         the isSimulated check is irrelevant, and we should remove it.
4066
4067         Tests are not possible because all uses of simulated mouse events provide no underlying
4068         event, so the offset is never recalculated.
4069
4070         * dom/MouseRelatedEvent.cpp:
4071         (WebCore::MouseRelatedEvent::computeRelativePosition): Remove the m_isSimulated check.
4072
4073 2012-11-17  Simon Fraser  <simon.fraser@apple.com>
4074
4075         Don't say there are dirty overlay scrollbars when they are clipped out
4076         https://bugs.webkit.org/show_bug.cgi?id=102609
4077
4078         Reviewed by Brady Eidson.
4079
4080         Painting overlay scrollbars involves a second painting pass over the entire
4081         RenderLayer subtree for a compositing layer, which can be very expensive.
4082         
4083         Avoid this when possible by detecting when overflow controls are not in
4084         the damage rect.
4085
4086         * rendering/RenderLayer.cpp:
4087         (WebCore::RenderLayer::rectForHorizontalScrollbar): Compute a local rect
4088         for the horizontal scrollbar.
4089         (WebCore::RenderLayer::rectForVerticalScrollbar): Compute a local rect
4090         for the vertical scrollbar.
4091         (WebCore::RenderLayer::positionOverflowControls): Use rectForHorizontalScrollbar()
4092         and rectForVerticalScrollbar().
4093         (WebCore::RenderLayer::overflowControlsIntersectRect): Return true if any
4094         of the present overflow controls intersect the given local rect.
4095         (WebCore::RenderLayer::paintOverflowControls): Bail if the damage rect
4096         doesn't intersect any of the overflow controls.
4097         * rendering/RenderLayer.h:
4098         (RenderLayer):
4099
4100 2012-11-17  Adam Barth  <abarth@webkit.org>
4101
4102         REGRESSION (r133633): ASSERTION FAILED: m_wrapper || !m_jsFunction
4103         https://bugs.webkit.org/show_bug.cgi?id=101428
4104
4105         Reviewed by Geoffrey Garen.
4106
4107         JSNodeOwner has some smarts that wrappers of subclasses of Node need to
4108         call during garbage collection. This patch teaches subclasses of Node
4109         to have their JSMumbleOwner objects inherit from JSNodeOwner.
4110
4111         The immediate benefit of this patch is that we correctly avoid
4112         collecting wrappers for HTMLAudioElements when they are reachable from
4113         the DOM.
4114
4115         * bindings/scripts/CodeGeneratorJS.pm:
4116         (GenerateHeader):
4117         (GenerateImplementation):
4118
4119 2012-11-17  Elliott Sprehn  <esprehn@chromium.org>
4120
4121         Expose JSObject::removeDirect and PrivateName to WebCore
4122         https://bugs.webkit.org/show_bug.cgi?id=102546
4123
4124         Reviewed by Geoffrey Garen.
4125
4126         Add forwarding header for PrivateName, so JSDependentRetained works.
4127
4128         No new tests, just adding headers.
4129
4130         * ForwardingHeaders/runtime/PrivateName.h: Added.
4131
4132 2012-11-17  Simon Fraser  <simon.fraser@apple.com>
4133
4134         Reduce the crazy number of parameters to RenderLayer clip-rect functions
4135         https://bugs.webkit.org/show_bug.cgi?id=102604
4136
4137         Reviewed by Dan Bernstein.
4138
4139         Many of the RenderLayer member functions related to clip rect computation
4140         took a long list of similar parameters. Gather these into a struct, ClipRectsContext,
4141         that we pass to these functions
4142         
4143         No functional changes.
4144
4145         * rendering/RenderLayer.cpp:
4146         (WebCore::RenderLayer::paintLayer):
4147         (WebCore::RenderLayer::paintLayerContents):
4148         (WebCore::RenderLayer::hitTestLayer):
4149         (WebCore::RenderLayer::updateClipRects):
4150         (WebCore::RenderLayer::calculateClipRects):
4151         (WebCore::RenderLayer::parentClipRects):
4152         (WebCore::RenderLayer::backgroundClipRect):
4153         (WebCore::RenderLayer::calculateRects):
4154         (WebCore::RenderLayer::childrenClipRect):
4155         (WebCore::RenderLayer::selfClipRect):
4156         (WebCore::RenderLayer::localClipRect):
4157         * rendering/RenderLayer.h:
4158         (WebCore::RenderLayer::ClipRectsContext::ClipRectsContext):
4159         (ClipRectsContext):
4160         (RenderLayer):
4161         (WebCore::RenderLayer::clipRects):
4162         * rendering/RenderLayerBacking.cpp:
4163         (WebCore::RenderLayerBacking::updateCompositedBounds):
4164         (WebCore::RenderLayerBacking::updateGraphicsLayerGeometry):
4165         * rendering/RenderLayerCompositor.cpp:
4166         (WebCore::RenderLayerCompositor::addToOverlapMap):
4167         (WebCore::RenderLayerCompositor::clippedByAncestor):
4168         * rendering/RenderTreeAsText.cpp:
4169         (WebCore::writeLayers):
4170
4171 2012-11-17  Simon Fraser  <simon.fraser@apple.com>
4172
4173         Simplify bounds computation for the RenderView's layer
4174         https://bugs.webkit.org/show_bug.cgi?id=102597
4175
4176         Reviewed by Anders Carlsson.
4177
4178         Computing the bounds of the main layer (that of the RenderView) used to do
4179         a full RenderLayer walk, taking the union of the bounds of all the sublayers,
4180         which is very expensive on large pages.
4181         
4182         For the RenderView we can avoid that entirely and just use the RenderView's
4183         document rect. Since page scaling happens as a transform on this layer,
4184         we want the unscaled document rect.
4185
4186         * rendering/RenderLayer.cpp:
4187         (WebCore::RenderLayer::calculateLayerBounds):
4188
4189 2012-11-17  Eric Seidel  <eric@webkit.org>
4190
4191         Add ScriptWrappable to more WebCore classes which are commonly JS-wrapped
4192         https://bugs.webkit.org/show_bug.cgi?id=102601
4193
4194         Reviewed by Adam Barth.
4195
4196         From my investigations all of these classes exist only to be exposed
4197         to the web (via JavaScript) and are not used internally by WebCore.
4198         I beleive all of them always have wrappers.
4199         These were found using this code:
4200         https://bugs.webkit.org/show_bug.cgi?id=102539#c2
4201
4202         Geolocation -- navigator.geolocation
4203         WebKitCSSMatrix -- represent matrixes in JS through various APIs
4204         DOMStringMap, NamedNodeMap, NodeIterator, TreeWalker -- exclusively for the DOM API
4205         Blob, FileList - used by the File, Clipboard and XHR, also exclusively as API
4206         ValidityState -- formControl.validity
4207         CanvasRenderingContext -- canvas.getContext()
4208         DOMApplicationCache -- window.appcache
4209         Screen -- window.screen
4210         DOMMimeTypeArray -- navigator.mimetypes
4211         DOMPlugin -- navigator.plugins[0]
4212         DOMPluginArray -- navigator.plugins
4213
4214         * Modules/geolocation/Geolocation.h:
4215         * css/WebKitCSSMatrix.h:
4216         * dom/DOMStringMap.h:
4217         * dom/NamedNodeMap.h:
4218         * dom/NodeIterator.h:
4219         * dom/TreeWalker.h:
4220         * fileapi/Blob.h:
4221         * fileapi/FileList.h: (had to un-indent to make check-webkit-style happy)
4222         (FileList):
4223         (WebCore::FileList::create):
4224         (WebCore::FileList::length):
4225         (WebCore::FileList::isEmpty):
4226         (WebCore::FileList::clear):
4227         (WebCore::FileList::append):
4228         * html/ValidityState.h:
4229         * html/canvas/CanvasRenderingContext.h:
4230         * loader/appcache/DOMApplicationCache.h:
4231         * page/Screen.h:
4232         * platform/graphics/wince/MediaPlayerProxy.cpp:
4233         (WebCore::WebMediaPlayerProxy::initEngine): This code was wrong, fixed to use internal APIs.
4234         * plugins/DOMMimeTypeArray.h:
4235         * plugins/DOMPlugin.h:
4236         * plugins/DOMPluginArray.h:
4237
4238 2012-11-17  Alexandru Chiculita  <achicu@adobe.com>
4239
4240         [Texmap][CSS Shaders] Reuse the precompiled shader for custom filters in TextureMapperGL
4241         https://bugs.webkit.org/show_bug.cgi?id=101801
4242
4243         Reviewed by Noam Rosenthal.
4244
4245         Added a HashMap in TextureMapperGL to store the precompiled versions of the shaders.
4246         Also added a new API on TextureMapper that receives a notification when the shader
4247         is no longer needed.
4248
4249         No new tests, the code is tested by existing tests.
4250
4251         * platform/graphics/filters/CustomFilterOperation.h:
4252         (WebCore::CustomFilterOperation::setProgram):
4253         (CustomFilterOperation): Made the constructor protected, so that we can overwrite the class in WK2.
4254         * platform/graphics/filters/CustomFilterValidatedProgram.cpp:
4255         (WebCore::CustomFilterValidatedProgram::validatedProgramInfo):
4256         (WebCore):
4257         * platform/graphics/filters/CustomFilterValidatedProgram.h:
4258         (CustomFilterValidatedProgram):
4259         * platform/graphics/texmap/TextureMapper.h:
4260         (WebCore):
4261         (TextureMapper):
4262         (WebCore::TextureMapper::removeCachedCustomFilterProgram):
4263         Function to be called by the platform code, when the shader is no longer
4264         needed. This implementation is empty and overridden in TextureMapperGL.
4265         * platform/graphics/texmap/TextureMapperGL.cpp:
4266         (WebCore::TextureMapperGL::removeCachedCustomFilterProgram):
4267         Removes the compiled shader from the cache. This is called from WK2 when the compiled shader
4268         is no longer needed.
4269         (WebCore):
4270         (WebCore::TextureMapperGL::drawUsingCustomFilter): The first time it uses a new
4271         shader it will cache the compiled version until removeCachedCustomFilterProgram is called.
4272         * platform/graphics/texmap/TextureMapperGL.h:
4273         (WebCore):
4274         (TextureMapperGL):
4275
4276 2012-11-17  Brady Eidson  <beidson@apple.com>
4277
4278         Add an integer identifier field to AuthenticationChallengeBase.
4279         https://bugs.webkit.org/show_bug.cgi?id=102593
4280
4281         Reviewed by Darin Adler.
4282
4283         This is to support linking two different challenges that might not compare as equal but that 
4284         represent the same logical authentication challenge.
4285
4286         One example is in an IPC environment where the platform challenge can only exist in one process.
4287
4288         No new tests (Platform support, no effect in tested configs).
4289
4290         * WebCore.exp.in:
4291
4292         * platform/network/AuthenticationChallengeBase.cpp:
4293         (WebCore::AuthenticationChallengeBase::AuthenticationChallengeBase):
4294         * platform/network/AuthenticationChallengeBase.h:
4295         (WebCore::AuthenticationChallengeBase::identifier):
4296
4297         * platform/network/cf/AuthenticationChallenge.h:
4298         * platform/network/mac/AuthenticationMac.mm:
4299         (WebCore::generateUniqueIdentifier):
4300         (WebCore::AuthenticationChallenge::AuthenticationChallenge): Generate a new unique identifier whenever
4301           constructing a challenge from an NSURLAuthenticationChallenge.
4302
4303         * platform/network/cf/AuthenticationCF.cpp:
4304         (WebCore::generateUniqueIdentifier):
4305         (WebCore::AuthenticationChallenge::AuthenticationChallenge): Generate a new unique identifier whenever
4306           constructing a challenge from a CFURLAuthChallengeRef.
4307
4308         Implement the new constructor form for ports relevant to WebKit2:
4309         * platform/network/qt/AuthenticationChallenge.h:
4310         (WebCore::AuthenticationChallenge::AuthenticationChallenge):
4311         * platform/network/soup/AuthenticationChallenge.h:
4312         (WebCore::AuthenticationChallenge::AuthenticationChallenge):
4313         * platform/network/win/AuthenticationChallenge.h:
4314         (WebCore::AuthenticationChallenge::AuthenticationChallenge):
4315
4316 2012-11-17  Simon Fraser  <simon.fraser@apple.com>
4317
4318         Dump the tile cache extent in layout tests
4319         https://bugs.webkit.org/show_bug.cgi?id=102600
4320
4321         Reviewed by Anders Carlsson.
4322
4323         When dumping tiled layer stats in layout tests, also dump the extent
4324         of the tile grid. This will allow us to detect issues related
4325         to zooming, which is not possible with the existing tile coverage rect,
4326         which is dumped in layer (not tile) coordinates.
4327
4328         * platform/graphics/TiledBacking.h: Added tileGridExtent().
4329         * platform/graphics/ca/GraphicsLayerCA.cpp:
4330         (WebCore::GraphicsLayerCA::dumpAdditionalProperties): Dump the tile grid extent.
4331         * platform/graphics/ca/mac/TileCache.h: tileCoverageRect() should be OVERRIDE.
4332         * platform/graphics/ca/mac/TileCache.mm:
4333         (WebCore::TileCache::getTileIndexRangeForRect):
4334         (WebCore::TileCache::tileGridExtent): Return a rect with the size of
4335         the grid as top,left width,height.
4336
4337 2012-11-17  Andreas Kling  <akling@apple.com>
4338
4339         Avoid full style recalc when 'style' attribute changes.
4340         <http://webkit.org/b/78718>
4341
4342         Reviewed by Anders Carlsson.
4343
4344         Use setNeedsStyleRecalc(InlineStyleChange) when the 'style' attribute changes
4345         to reduce the amount of work done in recalcStyle().
4346
4347         * dom/StyledElement.cpp:
4348         (WebCore::StyledElement::styleAttributeChanged):
4349
4350 2012-11-17  Li Yin  <li.yin@intel.com>
4351
4352         Remove coneGain and distanceGain attributes from PannerNode.idl
4353         https://bugs.webkit.org/show_bug.cgi?id=102343
4354
4355         Reviewed by Chris Rogers.
4356
4357         Removing .coneGain and .distanceGain as publicly accessible values,
4358         since normally they only need to be calculated internally.
4359
4360         No changes to tests, since these attributes were not tested and are being removed.
4361
4362         * Modules/webaudio/PannerNode.idl:
4363
4364 2012-11-17  Balazs Kelemen  <kbalazs@webkit.org>
4365
4366         [Coordinated Graphics] Resumed animations leave an obsolate GraphicsLayerAnimation behind
4367         https://bugs.webkit.org/show_bug.cgi?id=102530
4368
4369         Reviewed by Noam Rosenthal.
4370
4371         GraphicsLayer::addAnimation is called no only when a new animation is created
4372         but also when resuming a paused animation. If this is a resumed animation we
4373         should remove the obsolate GraphicsLayerAnimation object.
4374
4375         Tested by animations tests.
4376
4377         * platform/graphics/GraphicsLayerAnimation.cpp:
4378         (WebCore::GraphicsLayerAnimations::add):
4379
4380 2012-11-17  Martin Robinson  <mrobinson@igalia.com>
4381
4382         [Soup] CredentialStorage should only be used for HTTP-family requests
4383         https://bugs.webkit.org/show_bug.cgi?id=102582
4384
4385         Reviewed by Gustavo Noronha Silva.
4386
4387         Do not use CredentialStorage when handling non-HTTP family requests. CredentialStorage
4388         only expects to handle requests in the HTTP family.
4389
4390         No new tests. This is covered by existing tests.
4391
4392         * platform/network/ResourceHandle.h:
4393         (ResourceHandle): Add a shouldUseCredentialStorage helper to ResourceHandle. This
4394         helper returns false when firstRequest() is a non-HTTP family request.
4395         * platform/network/soup/ResourceHandleSoup.cpp:
4396         (WebCore::applyAuthenticationToRequest): Use the new helper.
4397         (WebCore::createSoupRequestAndMessageForHandle): Ditto.
4398         (WebCore::ResourceHandle::start): Ditto.
4399         (WebCore::ResourceHandle::shouldUseCredentialStorage): Ditto.
4400         (WebCore::ResourceHandle::didReceiveAuthenticationChallenge): Ditto.
4401         (WebCore::ResourceHandle::receivedCredential): Ditto.
4402
4403 2012-11-16  Patrick Gansterer  <paroga@webkit.org>
4404
4405         Build fix for !USE(ACCELERATED_COMPOSITING) after r135029.
4406
4407         * rendering/RenderLayer.cpp:
4408         (WebCore::RenderLayer::paintOverflowControls):
4409
4410 2012-11-16  Benjamin Poulain  <bpoulain@apple.com>
4411
4412         Improve the performance of rect transform
4413         https://bugs.webkit.org/show_bug.cgi?id=101828
4414
4415         Reviewed by Simon Fraser.
4416
4417         Mapping a rect and a quad by a transform is a common operation because
4418         we use it to recompute the repaint rect, overflow rect, etc.
4419
4420         The way it was done, is by transforming through mapRect()->mapQuad()->4 times mapPoint().
4421         Each of those functions tests isIdentityOrTranslation() which has to read the whole matrix
4422         and perform many comparison.
4423         Because of that, the simple mapping of a rect was loading and checking the matrix 5 times
4424         too many.
4425
4426         This patch just cut the intermediary calls.
4427
4428         On ARM, putting the operation together also has the advantage of loading the matrix
4429         only once in registers and reusing it for every point.
4430
4431         * platform/graphics/transforms/TransformationMatrix.cpp:
4432         (WebCore::TransformationMatrix::mapPoint):
4433         (WebCore::TransformationMatrix::mapRect):
4434         * platform/graphics/transforms/TransformationMatrix.h:
4435         (WebCore):
4436         (WebCore::TransformationMatrix::mapPointImpl): New convenience function to perform the
4437         point project without doing isIdentityOrTranslation().
4438
4439 2012-11-16  Simon Fraser  <simon.fraser@apple.com>
4440
4441         Avoid calling the virtual isBlockFlow() in RenderBox::computeRectForRepaint()
4442         https://bugs.webkit.org/show_bug.cgi?id=102581
4443
4444         Reviewed by Dan Bernstein.
4445
4446         isBlockFlow() is a virtual function call, and shows up in profiles of
4447         Facebook pages as called from RenderBox::computeRectForRepaint().
4448         
4449         It's faster to do the hasColumns() bit-check first. Also replace
4450         a call to layer() with the hasLayer() bit-check.        
4451
4452         * rendering/RenderBox.cpp:
4453         (WebCore::RenderBox::computeRectForRepaint):
4454
4455 2012-11-16  Sheriff Bot  <webkit.review.bot@gmail.com>
4456
4457         Unreviewed, rolling out r134817.
4458         http://trac.webkit.org/changeset/134817
4459         https://bugs.webkit.org/show_bug.cgi?id=102576
4460
4461         Broke iframes and causing tons of crashes on ClusterFuzz
4462         (Requested by inferno-sec on #webkit).
4463
4464         * dom/ContainerNode.cpp:
4465         (WebCore::willRemoveChildren):
4466         * dom/ContainerNodeAlgorithms.cpp:
4467         (WebCore::ChildFrameDisconnector::collectDescendant):
4468         * dom/ContainerNodeAlgorithms.h:
4469         (WebCore::ChildFrameDisconnector::ChildFrameDisconnector):
4470         (WebCore::ChildFrameDisconnector::~ChildFrameDisconnector):
4471         (ChildFrameDisconnector):
4472         (WebCore::ChildFrameDisconnector::collectDescendant):
4473         (WebCore::ChildFrameDisconnector::disconnect):
4474         * dom/Node.cpp:
4475         * dom/Node.h:
4476         (Node):
4477         * dom/NodeRareData.h:
4478         (WebCore::NodeRareData::NodeRareData):
4479         (NodeRareData):
4480         * html/HTMLFrameOwnerElement.cpp:
4481         (WebCore::HTMLFrameOwnerElement::setContentFrame):
4482         (WebCore::HTMLFrameOwnerElement::disconnectContentFrame):
4483
4484 2012-11-16  Simon Fraser  <simon.fraser@apple.com>
4485
4486         Fix overlay scrollbar painting in compositing layers
4487         https://bugs.webkit.org/show_bug.cgi?id=102442
4488
4489         Reviewed by Beth Dakin.
4490
4491         There were two issues with overlay scrollbar painting in
4492         compositing layers.
4493         
4494         First, we'd only ever call setContainsDirtyOverlayScrollbars()
4495         on the RenderView's layer, even when encountering an overlay scrollbar
4496         in some descendant compositing layer. This meant that we'd never
4497         run the paintOverlayScrollbars() code for those child compositing
4498         layers, so sometimes scrollbars were missing there.
4499         
4500         Even after fixing that, we would fail to render scrollbars that
4501         were not in the composited RenderLayer itself. This happened because
4502         we called into RenderLayer::paintOverlayScrollbars(), which called
4503         paintLayer() with flags that only said to paint the overlay scrollbars
4504         but not any descendants, so this paint path would not walk child
4505         RenderLayers.
4506         
4507         Also remove the containsScrollableAreaWithOverlayScrollbars() flag on
4508         ScrollView which is no longer used.
4509
4510         * platform/ScrollView.cpp:
4511         (WebCore::ScrollView::ScrollView): Remove containsScrollableAreaWithOverlayScrollbars().
4512         (WebCore::ScrollView::paint): Remove setting of m_containsScrollableAreaWithOverlayScrollbars.
4513         * platform/ScrollView.h:
4514         * rendering/RenderLayer.cpp:
4515         (WebCore::RenderLayer::paintOverflowControls): Call setContainsDirtyOverlayScrollbars()
4516         on the compositing ancestor or the root.
4517         Remove call to setContainsScrollableAreaWithOverlayScrollbars().
4518         (WebCore::RenderLayer::paintOverlayScrollbars): When painting overlay
4519         scrollbars, no need to say we have transparency, and no need to use 
4520         temporary clip rects.
4521         (WebCore::RenderLayer::paintLayer): The PaintLayerPaintingOverlayScrollbars
4522         check here was only needed because the compositing entrypoint to painting
4523         overlay scrollbars went via paintLayer(), which isn't normally used as
4524         a composited painting entry point. Now that we no longer call that, we
4525         don't need this special check.
4526         * rendering/RenderLayerBacking.cpp:
4527         (WebCore::RenderLayerBacking::paintIntoLayer): Jump into overlay scrollbar
4528         painting via paintLayerContents(), not paintOverlayScrollbars(), since
4529         the latter does not traverse sublayers.
4530
4531 2012-11-16  Joshua Bell  <jsbell@chromium.org>
4532
4533         IndexedDB: Assert hit when getting non-existent object store in version change transaction
4534         https://bugs.webkit.org/show_bug.cgi?id=102547
4535
4536         Reviewed by Tony Chang.
4537
4538         Code did not account for the not-found case in "versionchange" transactions, where all
4539         object stores are implicitly in scope.
4540
4541         Test: storage/indexeddb/object-lookups-in-versionchange.html
4542
4543         * Modules/indexeddb/IDBTransaction.cpp:
4544         (WebCore::IDBTransaction::objectStore):
4545
4546 2012-11-12  Simon Fraser  <simon.fraser@apple.com>
4547
4548         Eliminate ancestor tree walk computing outlineBoundsForRepaint() when updating layer positions
4549         https://bugs.webkit.org/show_bug.cgi?id=101874
4550
4551         Reviewed by Dave Hyatt.
4552
4553         RenderLayer::updateLayerPositions() and updateLayerPositionsAfterScroll() spend a
4554         lot of time in computeRepaintRects(), which does two ancestor tree walks, once
4555         for clippedOverflowRectForRepaint(), and one for outlineBoundsForRepaint().
4556
4557         Eliminate the ancestor tree walk in outlineBoundsForRepaint() by maintaining
4558         a RenderGeometryMap as we traverse the layer tree, and then using it to map
4559         the outline bounds to the repaint container. Replace the hokey cached offsetFromRoot
4560         now that the RenderGeometryMap can do a better job.
4561         
4562         The clipped overflow rect cannot be mapped simply, so cannot yet make use of
4563         the geometry map.
4564         
4565         Modify the RenderGeometryMap to support mapping to some repaintContainer ancestor.
4566         Add a RenderObject walk that is necessary to detect flipped writing mode blocks.
4567         
4568         Pass the RenderGeometryMap as an optional parameter to outlineBoundsForRepaint.
4569         
4570         * page/FrameView.cpp:
4571         (WebCore::FrameView::layout): Make a RenderGeometryMap and pass it down
4572         to updateLayerPositions(). For partial layouts, we have to push layers
4573         between the root and the enclosing layer of the layout subtree.
4574         The geometry map used for repainting does not use SnapOffsetForTransforms,
4575         so initialize it explicitly with just the UseTransforms flag.
4576         (WebCore::FrameView::repaintFixedElementsAfterScrolling): Make a RenderGeometryMap
4577         to pass along to updateLayerPositionsAfterScroll().
4578         * rendering/RenderBox.cpp:
4579         (WebCore::RenderBox::outlineBoundsForRepaint): Replace the optional cachedOffsetToRepaintContainer
4580         parameter with an optional RenderGeometryMap, and it use to map the compute rect to
4581         repaintContainer coordinates.
4582         * rendering/RenderBox.h:
4583         * rendering/RenderGeometryMap.cpp:
4584         (WebCore::RenderGeometryMap::RenderGeometryMap): This now has to store the mapping
4585         flags to use, so that its behavior can match that of mapLocalToContainer(). The
4586         pertinent flag is the confusingly named SnapOffsetForTransforms.
4587         (WebCore::RenderGeometryMap::absolutePoint): Call the new mapToContainer() with
4588         a null container.
4589         (WebCore::RenderGeometryMap::absoluteRect): Ditto.
4590         (WebCore::RenderGeometryMap::mapToContainer): Map to the supplied container,
4591         asserting that we found it. Add point- and rect-based mapping methods
4592         akin to the old absoluteRect/absolutePoint.
4593         (WebCore::canMapViaLayer): We need to test for isRenderFlowThread() here too.
4594         (WebCore::RenderGeometryMap::pushMappingsToAncestor): When mapping via
4595         layers, ensure that the RenderView is pushed as the first step.
4596         * rendering/RenderGeometryMap.h:
4597         (RenderGeometryMap):
4598         * rendering/RenderLayer.cpp:
4599         (WebCore::RenderLayer::updateLayerPositionsAfterLayout): New wrapper for updateLayerPositions()
4600         that makes the geometry map.
4601         (WebCore::RenderLayer::updateLayerPositionsAfterScroll): New wrapper for updateLayerPositionsAfterScroll
4602         that makes the geometry map.
4603         (WebCore::RenderLayer::updateLayerPositions): Now takes an optional RenderGeometryMap.
4604         Remove the old offsetFromRoot code. Push and pop layers to/from the geometry map. Use
4605         the geometry map to get the offsetFromRoot as needed by overflow controls. Pass
4606         it to computeRepaintRects().
4607         (WebCore::RenderLayer::computeRepaintRects): Pass the geometry map to outlineBoundsForRepaint().
4608         (WebCore::RenderLayer::updateLayerPositionsAfterScroll): Push and pop to/from the
4609         geometry map, and pass it to computeRepaintRects().
4610         (WebCore::RenderLayer::removeOnlyThisLayer): Remove the offsetFromRootBeforeMove
4611         computation; this could use a geometry map in future if it is shown to be a bottleneck.
4612         * rendering/RenderLayer.h:
4613         (WebCore::RenderLayer::canUseConvertToLayerCoords): It was thought that the isComposited()
4614         was there because the older cached offsetFromRoot logic was sensitive to compositing,
4615         but convertToLayerCoords() is not affected by compositing so this check is not needed,
4616         and actually harmful.
4617         * rendering/RenderLayerCompositor.cpp:
4618         (WebCore::RenderLayerCompositor::OverlapMap::OverlapMap): The geometry map
4619         used for overlap testing should not use SnapOffsetForTransforms, so initialize
4620         it explicitly with just the UseTransforms flag.
4621         * rendering/RenderObject.h:
4622         (WebCore::RenderObject::outlineBoundsForRepaint):
4623         * rendering/svg/RenderSVGModelObject.cpp:
4624         (WebCore::RenderSVGModelObject::outlineBoundsForRepaint):
4625         * rendering/svg/RenderSVGModelObject.h:
4626         (RenderSVGModelObject):
4627
4628 2012-11-16  Alec Flett  <alecflett@chromium.org>
4629
4630         Add tests for explicit serialization values
4631         https://bugs.webkit.org/show_bug.cgi?id=96818
4632
4633         Reviewed by Adam Barth.
4634
4635         Expose direct access to the serialization/deserialization mechanisms
4636         of SerializedScriptValue to DumpRenderTree.
4637
4638         * testing/Internals.cpp:
4639         (WebCore::Internals::serializeObject):
4640         (WebCore):
4641         (WebCore::Internals::deserializeBuffer):
4642         * testing/Internals.h:
4643         (WebCore):
4644         * testing/Internals.idl:
4645
4646 2012-11-16  Andreas Kling  <akling@apple.com>
4647
4648         Exploit shared attribute data to avoid parsing identical "style" attributes.
4649         <http://webkit.org/b/101163>
4650
4651         Reviewed by Antti Koivisto.
4652
4653         Track the "inline style dirty" state on ElementAttributeData instead of in a Node flag.
4654         This allows us to avoid duplicate work for ElementAttributeData that are shared between multiple elements,
4655         since the state is no longer per-Element.
4656
4657         * css/StyleResolver.cpp:
4658         (WebCore::isCacheableInMatchedPropertiesCache):
4659
4660             Disable the matched properties cache for styles with non-standard writing-mode.
4661             This is necessary because some CSS properties have different meaning depending on context -
4662             properties handled by CSSProperty::resolveDirectionAwareProperty().
4663
4664             Now that multiple elements may have identical inlineStyle() pointers, this is necessary to
4665             avoid mapping StylePropertySets with direction-aware properties to RenderStyles with differing
4666             writing-modes in the matched properties cache.
4667
4668         * dom/Node.h:
4669         * dom/ElementAttributeData.cpp:
4670         (WebCore::ElementAttributeData::ElementAttributeData):
4671         * dom/ElementAttributeData.h:
4672         (WebCore::ElementAttributeData::ElementAttributeData):
4673         (ElementAttributeData):
4674         * dom/Element.h:
4675         (WebCore::Element::updateInvalidAttributes):
4676         * dom/Element.cpp:
4677         (WebCore::Element::getAttribute):
4678         (WebCore::Element::removeAttribute):
4679         * dom/StyledElement.h:
4680         (WebCore::StyledElement::invalidateStyleAttribute):
4681         * dom/StyledElement.cpp:
4682         (WebCore::StyledElement::updateStyleAttribute):
4683
4684             Move "style attribute dirty" flag to ElementAttributeData.
4685
4686         (WebCore::Element::cloneAttributesFromElement):
4687
4688             Remove ugly optimization to avoid reparsing inline style when cloning elements. This now happens
4689             automagically since cloning nodes just refs the original attribute data.
4690
4691         * dom/StyledElement.cpp:
4692         (WebCore::StyledElement::updateStyleAttribute):
4693         (WebCore::StyledElement::setInlineStyleFromString):
4694         (WebCore::StyledElement::styleAttributeChanged):
4695         (WebCore::StyledElement::inlineStyleChanged):
4696
4697             Avoid reparsing the inline style if the element's attribute data is immutable and already has
4698             a parsed inlineStyle(). Split the set-inline-style-from-string code out of styleAttributeChanged()
4699             to make the code more understandable.
4700
4701 2012-11-16  Simon Fraser  <simon.fraser@apple.com>
4702
4703         Don't update layer positions on scrolling if we're in the middle of layout
4704         https://bugs.webkit.org/show_bug.cgi?id=102556
4705
4706         Reviewed by Dan Bernstein.
4707
4708         RenderLayer::scrollTo() can be called in the middle of layout. When
4709         that happens we should not waste time updating layer positions,
4710         compositing layers, or widget positions, because we'll do those at the
4711         end of layout anyway.
4712         
4713         This prevents us from having inconsistent RenderLayer state, which
4714         hinders future optimizations in this area.
4715
4716         * rendering/RenderLayer.cpp:
4717         (WebCore::RenderLayer::scrollTo):
4718
4719 2012-11-16  Tony Chang  <tony@chromium.org>
4720
4721         Remove ENABLE_CSS_HIERARCHIES since it's no longer in use
4722         https://bugs.webkit.org/show_bug.cgi?id=102554
4723
4724         Reviewed by Andreas Kling.
4725
4726         As mentioned in https://bugs.webkit.org/show_bug.cgi?id=79939#c41 ,
4727         we're going to revist this feature once additional vendor support is
4728         achieved.
4729
4730         No new tests, just removing an unused define.
4731
4732         * Configurations/FeatureDefines.xcconfig:
4733         * GNUmakefile.features.am:
4734
4735 2012-11-16  Mark Pilgrim  <pilgrim@chromium.org>
4736
4737         [Chromium] Remove cookie-related functions from PlatformSupport
4738         https://bugs.webkit.org/show_bug.cgi?id=99340
4739
4740         Reviewed by Adam Barth.
4741
4742         Move cookie-related functions out of PlatformSupport and implement
4743         new PlatformCookieJar interface via NetworkContext.
4744
4745         * WebCore.gyp/WebCore.gyp:
4746         * WebCore.gypi:
4747         * loader/CookieJar.cpp:
4748         * loader/chromium/CookieJarChromium.cpp: Removed.
4749         * platform/chromium/PlatformSupport.h:
4750         (WebCore):
4751         (PlatformSupport):
4752         * platform/network/NetworkingContext.h:
4753         (WebKit):
4754         (NetworkingContext):
4755         * platform/network/chromium/CookieJarChromium.cpp: Copied from Source/WebCore/loader/chromium/CookieJarChromium.cpp.
4756         (WebCore::setCookiesFromDOM):
4757         (WebCore::cookiesForDOM):
4758         (WebCore::cookieRequestHeaderFieldValue):
4759         (WebCore::cookiesEnabled):
4760         (WebCore::getRawCookies):
4761         (WebCore::deleteCookie):
4762         (WebCore::getHostnamesWithCookies):
4763         (WebCore::deleteCookiesForHostname):
4764         (WebCore::deleteAllCookies):
4765
4766 2012-11-16  Pablo Flouret  <pablof@motorola.com>
4767
4768         [JSC] Don't sanitize window.onerror information on crossorigin-enabled scripts
4769         https://bugs.webkit.org/show_bug.cgi?id=70574
4770
4771         Reviewed by Geoffrey Garen.
4772
4773         For scripts that use CORS (via the crossorigin attribute in this case),
4774         don't sanitize the information passed to the window's onerror handler (i.e.
4775         message, url, and line number). Useful for scripts hosted on CDNs.
4776
4777         Tests: http/tests/security/script-crossorigin-onerror-information.html
4778                http/tests/security/script-no-crossorigin-onerror-should-be-sanitized.html
4779
4780         * WebCore.exp.in:
4781         * WebCore.order:
4782
4783         * bindings/js/JSDOMBinding.cpp:
4784         (WebCore::reportException):
4785         * bindings/js/JSDOMBinding.h:
4786         (WebCore):
4787         * bindings/js/ScriptController.cpp:
4788         (WebCore::ScriptController::evaluateInWorld):
4789         * bindings/js/ScriptSourceCode.h:
4790         (WebCore::ScriptSourceCode::ScriptSourceCode):
4791         (WebCore::ScriptSourceCode::cachedScript):
4792         (ScriptSourceCode):
4793         * bindings/js/WorkerScriptController.cpp:
4794         (WebCore::WorkerScriptController::evaluate):
4795             Keep a reference to the cached script in the ScriptSourceCode, so
4796             that it can be passed around and be available when reporting the
4797             exception.
4798
4799         * dom/ScriptExecutionContext.cpp:
4800         (WebCore::ScriptExecutionContext::sanitizeScriptError):
4801         (WebCore::ScriptExecutionContext::reportException):
4802         (WebCore::ScriptExecutionContext::dispatchErrorEvent):
4803         * dom/ScriptExecutionContext.h:
4804         (WebCore):
4805         (ScriptExecutionContext):
4806             Check if the script passes the access control checks, and if so,
4807             don't sanitize the error information.
4808
4809         * html/parser/HTMLPreloadScanner.cpp:
4810         (WebCore::PreloadTask::processAttributes):
4811         (WebCore::PreloadTask::preload):
4812         (PreloadTask):
4813         (WebCore::PreloadTask::crossOriginModeAllowsCookies):
4814             When preloading script elements, check for the crossorigin attribute
4815             and adjust the request's allowCookies value accordingly. Otherwise
4816             when the script is loaded from the cache later on, the cross origin mode
4817             (anonymous/use-credentials) will be effectively ignored.
4818
4819 2012-11-16  Jon Lee  <jonlee@apple.com>
4820
4821         Change visual look of placeholder
4822         https://bugs.webkit.org/show_bug.cgi?id=102149
4823         <rdar://problem/12695566>
4824
4825         Reviewed by Darin Adler.
4826
4827         Move the button to the lower-right corner. Move the theming into
4828         RenderSnapshottedPlugin for now. Eventually we will want to migrate to using the
4829         shadow DOM instead, and the metrics of the button are needed for click passthrough.
4830
4831         * Resources/startButton.png: Added.
4832         * Resources/startButton@2x.png: Added.
4833         * Resources/startButtonPressed.png: Added.
4834         * Resources/startButtonPressed@2x.png: Added.
4835         * WebCore.xcodeproj/project.pbxproj: Add button images.
4836
4837         Maintain variables to track whether the mouse is over the button, and the rect
4838         for the button. If the user clicks in the rect, we render a pressed button.
4839         * rendering/RenderSnapshottedPlugIn.cpp:
4840         (WebCore): Add named constant for bottom and right padding of the button.
4841         (WebCore::RenderSnapshottedPlugIn::RenderSnapshottedPlugIn):
4842         (WebCore::RenderSnapshottedPlugIn::paintReplaced):
4843         (WebCore::startButtonImage): Returns button image.
4844         (WebCore::startButtonPressedImage): Returns pressed button image.
4845         (WebCore::RenderSnapshottedPlugIn::paintButton): Draw the button image in the
4846         lower right hand corner, but only if we are active or hovered.
4847         (WebCore::RenderSnapshottedPlugIn::repaintButton): Stubbed to call repaint().
4848         (WebCore::RenderSnapshottedPlugIn::handleEvent): Repaint the button if we are
4849         hovering over the plugin rect. With a mouse down event, calculate whether the
4850         mouse position is within the button rect.
4851         (WebCore::RenderSnapshottedPlugIn::layout): Cache the rect representing the button
4852         contents.
4853         * rendering/RenderSnapshottedPlugIn.h:
4854
4855         Remove theming function for now.
4856         * rendering/RenderTheme.h:
4857         (RenderTheme):
4858         * rendering/RenderThemeMacShared.h:
4859         * rendering/RenderThemeMacShared.mm:
4860
4861 2012-11-16  Eric Seidel  <eric@webkit.org>
4862
4863         Deploy ScriptWrappable to more always-wrapped objects
4864         https://bugs.webkit.org/show_bug.cgi?id=102539
4865
4866         Reviewed by Adam Barth.
4867
4868         Add the ScriptWrappable baseclass to:
4869         CSSStyleDeclaration (anttik tells me these should only be used from JS, even though some old Editing code used to use them)
4870         ClientRect (element.getBoundingClientRects)
4871         Event (Not all events end up wrapped, but any which live past dispatch do)
4872         NodeList (this covers Static and Dynamic node list types, like document.all)
4873         HTMLCollection (separate from NodeList, for things like table.rows)
4874         Storage (for window.storage, always wrapped)
4875         XMLHttpRequest (always wrapped, created from JS)
4876
4877         This should be a small memory savings as the inline pointer is only 4-8 bytes
4878         instead of the hashmap entry which would be 8-16.  This may also show up
4879         on benchmarks which repeatedly access these objects (like window.storage).
4880
4881         These were found by adding a couple lines of logging-code to
4882         WebCore::createWrapper when we were in the main world, but took the
4883         HashMap (instead of inline) storage path. I used sort and uniq -c
4884         to find the most-frequently wrapped objects (while surfing
4885         a few common sites) and came up with this list.  There are still a few
4886         more complicated objects (like CSSStyleDeclaration) which may benifit
4887         from inline-wrapper-access and will be covered in a later patch.
4888
4889         * css/CSSStyleDeclaration.h:
4890         * dom/ClientRect.h:
4891         * dom/Event.h:
4892         * dom/NodeList.h:
4893         * html/HTMLCollection.h:
4894         * storage/Storage.h:
4895         * xml/XMLHttpRequest.h:
4896
4897 2012-11-16  Jon Lee  <jonlee@apple.com>
4898
4899         Simulated events instances do not all have the same underlying event
4900         https://bugs.webkit.org/show_bug.cgi?id=102468
4901         <rdar://problem/12716331>
4902
4903         Reviewed by Alexey Proskuryakov.
4904
4905         The PassRefPtr with the underlying event is included as an argument for the mouse
4906         down, up, and click events. But the PassRefPtr loses its underlying pointer after
4907         the first simulated mouse down event because it gets assigned to that event's
4908         private m_underlyingEvent variable. We therefore send NULL to the other events.
4909
4910         The fix is for this and related functions to pass the raw pointer.
4911
4912         A layout test is not possible to put together because the call sites that use simulated
4913         events with an underlying event do not send mouse events, and those that send mouse
4914         events have a NULL underlying event.
4915
4916         * dom/EventDispatcher.cpp:
4917         (WebCore::EventDispatcher::dispatchSimulatedClick): Require passing in the raw pointer.
4918         * dom/EventDispatcher.h:
4919         * dom/Node.cpp:
4920         (WebCore::Node::dispatchSimulatedClick): Ditto.
4921         * dom/Node.h:
4922
4923 2012-11-16  Patrick Gansterer  <paroga@webkit.org>
4924
4925         Build fix for WinCE after r134936.
4926
4927         * platform/network/win/CookieJarWin.cpp:
4928         (WebCore::cookieRequestHeaderFieldValue):
4929
4930 2012-11-16  Dimitri Glazkov  <dglazkov@chromium.org>
4931
4932         Unreviewed, rolling out r134986.
4933         http://trac.webkit.org/changeset/134986
4934         https://bugs.webkit.org/show_bug.cgi?id=102110
4935
4936         Triggered ASSERT in fast/frames/seamless/seamless-inherited-
4937         origin.html.
4938
4939         * css/StyleResolver.cpp:
4940         (WebCore::StyleResolver::StyleResolver):
4941         (WebCore::StyleResolver::addAuthorRulesAndCollectUserRulesFromSheets):
4942         (WebCore::collectCSSOMWrappers):
4943         * css/StyleResolver.h:
4944         (StyleResolver):
4945         * dom/Document.cpp:
4946         (WebCore::Document::setCompatibilityMode):
4947         * dom/DocumentStyleSheetCollection.cpp:
4948         (WebCore::DocumentStyleSheetCollection::DocumentStyleSheetCollection):
4949         (WebCore::DocumentStyleSheetCollection::~DocumentStyleSheetCollection):
4950         (WebCore::DocumentStyleSheetCollection::pageGroupUserSheets):
4951         (WebCore):
4952         (WebCore::DocumentStyleSheetCollection::clearPageGroupUserSheets):
4953         (WebCore::DocumentStyleSheetCollection::updatePageGroupUserSheets):
4954         (WebCore::DocumentStyleSheetCollection::addUserSheet):
4955         (WebCore::DocumentStyleSheetCollection::updateActiveStyleSheets):
4956         (WebCore::DocumentStyleSheetCollection::reportMemoryUsage):
4957         * dom/DocumentStyleSheetCollection.h:
4958         (DocumentStyleSheetCollection):
4959         (WebCore::DocumentStyleSheetCollection::documentUserSheets):
4960         * page/PageGroup.cpp:
4961         (WebCore::PageGroup::addUserStyleSheetToWorld):
4962         (WebCore::PageGroup::removeUserStyleSheetFromWorld):
4963         (WebCore::PageGroup::removeUserStyleSheetsFromWorld):
4964         (WebCore::PageGroup::removeAllUserContent):
4965         (WebCore::PageGroup::resetUserStyleCacheInAllFrames):
4966         * page/PageGroup.h:
4967         (PageGroup):
4968
4969 2012-11-16  Michael Pruett  <michael@68k.org>
4970
4971         IndexedDB: Propagate DOMRequestState to IndexedDB binding utility functions
4972         https://bugs.webkit.org/show_bug.cgi?id=102430
4973
4974         Reviewed by Adam Barth.
4975
4976         DOMRequestState is currently propagated to some but not all of
4977         the IndexedDB binding utility functions. In order to implement
4978         these functions for JSC, this state must be propagated to all
4979         of the utility functions.
4980
4981         Tests: storage/indexeddb/*
4982
4983         * Modules/indexeddb/IDBCursor.cpp:
4984         (WebCore::IDBCursor::update):
4985         (WebCore::IDBCursor::setValueReady):
4986         * Modules/indexeddb/IDBObjectStore.cpp:
4987         (WebCore::generateIndexKeysForValue):
4988         (WebCore::IDBObjectStore::put):
4989         (WebCore):
4990         * Modules/indexeddb/IDBRequest.cpp:
4991         (WebCore::IDBRequest::onSuccess):
4992         (WebCore::IDBRequest::dispatchEvent):
4993         * Modules/indexeddb/IDBRequest.h:
4994         (WebCore::IDBRequest::requestState):
4995         (IDBRequest):
4996         * bindings/v8/IDBBindingUtilities.cpp:
4997         (WebCore::createIDBKeyFromScriptValueAndKeyPath):
4998         (WebCore::serializeIDBValue):
4999         (WebCore::injectIDBKeyIntoScriptValue):
5000         * bindings/v8/IDBBindingUtilities.h:
5001         (WebCore):
5002
5003 2012-11-16  Byungwoo Lee  <bw80.lee@samsung.com>
5004
5005         Rebaselined run-bindings-tests.
5006         https://bugs.webkit.org/show_bug.cgi?id=102523
5007
5008         Reviewed by Dimitri Glazkov.
5009
5010         Expected results need to be updated after r134931
5011
5012         * bindings/scripts/test/JS/JSTestObj.cpp:
5013         (WebCore::jsTestObjWithScriptArgumentsAndCallStackAttribute):
5014         (WebCore::setJSTestObjWithScriptArgumentsAndCallStackAttribute):
5015         (WebCore::jsTestObjPrototypeFunctionWithScriptArgumentsAndCallStack):
5016         * bindings/scripts/test/V8/V8TestObj.cpp:
5017         (WebCore::TestObjV8Internal::withScriptArgumentsAndCallStackAttributeAttrGetter):
5018         (WebCore::TestObjV8Internal::withScriptArgumentsAndCallStackAttributeAttrSetter):
5019         (WebCore::TestObjV8Internal::withScriptArgumentsAndCallStackCallback):
5020
5021 2012-11-16  Pratik Solanki  <psolanki@apple.com>
5022
5023         For single element arrays use the pointer into the CFDataRef instead of copying data
5024         https://bugs.webkit.org/show_bug.cgi?id=102306
5025         <rdar://problem/12267471>
5026
5027         Reviewed by Alexey Proskuryakov.
5028
5029         We generally copy the data received from CFNetwork into our own buffers. But if the
5030         CFArrayRef has exactly one CFDataRef inside it, then we can just hold on to the CFDataRef
5031         and access its memory directly and avoid making a copy.
5032
5033         This also moves the creation of PurgeableBuffer from CachedResource to SharedBuffer.
5034         SharedBuffer::createPurgeableBuffer() will avoid creating PurgeableBuffer when the
5035         SharedBuffer is backed by a NSData/CFDataRef and when we want to optimize and directly use
5036         the memory in the data array.
5037
5038         No new tests because no change in functionality.
5039
5040         * loader/ResourceBuffer.cpp:
5041         (WebCore::ResourceBuffer::createPurgeableBuffer): Added.
5042         * loader/ResourceBuffer.h:
5043         * loader/cache/CachedResource.cpp:
5044         (WebCore::CachedResource::makePurgeable):
5045         * platform/SharedBuffer.cpp:
5046         (WebCore::SharedBuffer::createPurgeableBuffer): Added.
5047         (WebCore::SharedBuffer::data):
5048         * platform/SharedBuffer.h:
5049         * platform/cf/SharedBufferCF.cpp:
5050         (WebCore::SharedBuffer::platformData): Use reinterpret_cast instead of C-style cast.
5051         (WebCore::SharedBuffer::maybeTransferPlatformData): Use reinterpret_cast instead of C-style cast.
5052         (WebCore::SharedBuffer::singleDataArrayBuffer): Added.
5053
5054 2012-11-16  Antti Koivisto  <antti@apple.com>
5055
5056         REGRESSION(r129644): User StyleSheet not applying
5057         https://bugs.webkit.org/show_bug.cgi?id=102110
5058
5059         Reviewed by Andreas Kling.
5060
5061         Injected stylesheets added as UserStyleAuthorLevel fail to apply. r129644 implicitly assumed that
5062         such things don't exists but on Chromium addUserStyleSheet() confusingly uses them.
5063         
5064         The patch adds injected author stylesheets to DocumentStyleSheetCollection::activeStyleSheets().
5065         It also generally cleans up the code around injected and user stylesheets.
5066
5067         Tests: userscripts/user-script-and-stylesheet.html
5068                userscripts/user-stylesheet-invalidate.html
5069
5070         * css/StyleResolver.cpp:
5071         (WebCore::StyleResolver::StyleResolver):
5072         (WebCore::StyleResolver::collectRulesFromUserStyleSheets):
5073         (WebCore::collectCSSOMWrappers):
5074         * css/StyleResolver.h:
5075         (StyleResolver):
5076         * dom/Document.cpp:
5077         (WebCore::Document::setCompatibilityMode):
5078         * dom/DocumentStyleSheetCollection.cpp:
5079         (WebCore::DocumentStyleSheetCollection::DocumentStyleSheetCollection):
5080         (WebCore::DocumentStyleSheetCollection::~DocumentStyleSheetCollection):
5081         (WebCore::DocumentStyleSheetCollection::injectedUserStyleSheets):
5082         (WebCore):
5083         (WebCore::DocumentStyleSheetCollection::injectedAuthorStyleSheets):
5084         (WebCore::DocumentStyleSheetCollection::updateInjectedStyleSheetCache):
5085         (WebCore::DocumentStyleSheetCollection::invalidateInjectedStyleSheetCache):
5086         (WebCore::DocumentStyleSheetCollection::addUserSheet):
5087         (WebCore::DocumentStyleSheetCollection::updateActiveStyleSheets):
5088         (WebCore::DocumentStyleSheetCollection::reportMemoryUsage):
5089         * dom/DocumentStyleSheetCollection.h:
5090         (WebCore::DocumentStyleSheetCollection::documentUserStyleSheets):
5091         (DocumentStyleSheetCollection):
5092         * page/PageGroup.cpp:
5093         (WebCore::PageGroup::addUserStyleSheetToWorld):
5094         (WebCore::PageGroup::removeUserStyleSheetFromWorld):
5095         (WebCore::PageGroup::removeUserStyleSheetsFromWorld):
5096         (WebCore::PageGroup::removeAllUserContent):
5097         (WebCore::PageGroup::invalidatedInjectedStyleSheetCacheInAllFrames):
5098         * page/PageGroup.h:
5099         (PageGroup):
5100
5101 2012-11-16  Andreas Kling  <akling@apple.com>
5102
5103         StyleResolver: Only input elements need equal "readonly" attribute for style sharing.
5104         <http://webkit.org/b/102536>
5105
5106         Reviewed by Antti Koivisto.
5107
5108         Move the comparison of the "readonly" attribute into canShareStyleWithControl() since it's only
5109         relevant for sharing style between <input> elements.
5110
5111         Also skip attribute comparisons for form control elements that share the same ElementAttributeData.
5112
5113         * css/StyleResolver.cpp:
5114         (WebCore::StyleResolver::canShareStyleWithControl):
5115         (WebCore::haveIdenticalStyleAffectingAttributes):
5116
5117 2012-11-16  Sheriff Bot  <webkit.review.bot@gmail.com>
5118
5119         Unreviewed, rolling out r134867.
5120         http://trac.webkit.org/changeset/134867
5121         https://bugs.webkit.org/show_bug.cgi?id=102544
5122
5123         Broke security fuzzier test (heap-buffer-overflow) (Requested
5124         by bfulgham on #webkit).
5125
5126         * platform/audio/Biquad.cpp:
5127         (WebCore::Biquad::process):
5128
5129 2012-11-16  Tommy Widenflycht  <tommyw@google.com>
5130
5131         MediaStream API: Update RTCPeerConnection states to match the latest editors draft
5132         https://bugs.webkit.org/show_bug.cgi?id=102382
5133
5134         Reviewed by Adam Barth.
5135
5136         Updating readyState & iceState, and adding iceGatheringState.
5137         Also safeguarding the event timer callback.
5138
5139         Patch covered by existing tests.
5140
5141         * Modules/mediastream/RTCPeerConnection.cpp:
5142         (WebCore::RTCPeerConnection::RTCPeerConnection):
5143         (WebCore::RTCPeerConnection::createOffer):
5144         (WebCore::RTCPeerConnection::createAnswer):
5145         (WebCore::RTCPeerConnection::setLocalDescription):
5146         (WebCore::RTCPeerConnection::localDescription):
5147         (WebCore::RTCPeerConnection::setRemoteDescription):
5148         (WebCore::RTCPeerConnection::remoteDescription):
5149         (WebCore::RTCPeerConnection::updateIce):
5150         (WebCore::RTCPeerConnection::addIceCandidate):
5151         (WebCore::RTCPeerConnection::readyState):
5152         (WebCore::RTCPeerConnection::iceGatheringState):
5153         (WebCore):
5154         (WebCore::RTCPeerConnection::iceState):
5155         (WebCore::RTCPeerConnection::addStream):
5156         (WebCore::RTCPeerConnection::close):
5157         (WebCore::RTCPeerConnection::didChangeIceGatheringState):
5158         (WebCore::RTCPeerConnection::stop):
5159         (WebCore::RTCPeerConnection::changeReadyState):
5160         (WebCore::RTCPeerConnection::scheduledEventTimerFired):
5161         * Modules/mediastream/RTCPeerConnection.h:
5162         (RTCPeerConnection):
5163         * Modules/mediastream/RTCPeerConnection.idl:
5164         * dom/EventNames.h:
5165         (WebCore):
5166         * platform/mediastream/RTCPeerConnectionHandlerClient.h:
5167         (RTCPeerConnectionHandlerClient):
5168         * platform/mediastream/chromium/RTCPeerConnectionHandlerChromium.cpp:
5169         (WebCore::RTCPeerConnectionHandlerChromium::didChangeICEGatheringState):
5170         (WebCore):
5171         * platform/mediastream/chromium/RTCPeerConnectionHandlerChromium.h:
5172         (RTCPeerConnectionHandlerChromium):
5173
5174 2012-11-16  Dimitri Glazkov  <dglazkov@chromium.org>
5175
5176         Unreviewed, rolling out r134973.
5177         http://trac.webkit.org/changeset/134973
5178         https://bugs.webkit.org/show_bug.cgi?id=99340
5179
5180         Broke compile on at least Mac and Linux.
5181
5182         * WebCore.gyp/WebCore.gyp:
5183         * WebCore.gypi:
5184         * loader/CookieJar.cpp:
5185         * loader/chromium/CookieJarChromium.cpp: Renamed from Source/WebKit/chromium/src/FrameNetworkingContextImpl.cpp.
5186         (WebCore):
5187         (WebCore::setCookies):
5188         (WebCore::cookies):
5189         (WebCore::cookieRequestHeaderFieldValue):
5190         (WebCore::cookiesEnabled):
5191         (WebCore::getRawCookies):
5192         (WebCore::deleteCookie):
5193         (WebCore::getHostnamesWithCookies):
5194         (WebCore::deleteCookiesForHostname):
5195         (WebCore::deleteAllCookies):
5196         * platform/chromium/PlatformSupport.h:
5197         (WebCore):
5198         (PlatformSupport):
5199         * platform/network/NetworkingContext.h:
5200         * platform/network/chromium/CookieJarChromium.cpp: Removed.
5201
5202 2012-11-16  Martin Robinson  <mrobinson@igalia.com>
5203
5204         [GTK] [WebKit2] Move GtkAuthenticationDialog to the UIProcess
5205         https://bugs.webkit.org/show_bug.cgi?id=101843
5206
5207         Reviewed by Gustavo Noronha Silva.
5208
5209         Make GtkAuthenticationDialog more general, so that it can be subclassed in 
5210         WebKit2. We cannot use the WebCore authentication-related classes directly there.
5211
5212         No new tests. This patch does not change behavior.
5213
5214         * platform/gtk/GtkAuthenticationDialog.cpp:
5215         (WebCore::GtkAuthenticationDialog::GtkAuthenticationDialog): Remove an unused include and reorder
5216         some field initializers.
5217         (WebCore::GtkAuthenticationDialog::authenticate): Now handle both the okay and cancel case here. This
5218         makes it simpler to subclass.
5219         (WebCore::GtkAuthenticationDialog::authenticationDialogResponseCallback): Handle fetching the username
5220         and password here, so that it can be shared with subclasses.
5221         * platform/gtk/GtkAuthenticationDialog.h: Make some methods virtual and protected so they can be
5222         subclasses.
5223
5224 2012-11-16  Mark Pilgrim  <pilgrim@chromium.org>
5225
5226         [Chromium] Remove cookie-related functions from PlatformSupport
5227         https://bugs.webkit.org/show_bug.cgi?id=99340
5228
5229         Reviewed by Adam Barth.
5230
5231         Move cookie-related functions out of PlatformSupport and implement
5232         new PlatformCookieJar interface via NetworkContext.
5233
5234         * WebCore.gyp/WebCore.gyp:
5235         * WebCore.gypi:
5236         * loader/CookieJar.cpp:
5237         * loader/chromium/CookieJarChromium.cpp: Removed.
5238         * platform/chromium/PlatformSupport.h:
5239         (WebCore):
5240         (PlatformSupport):
5241         * platform/network/NetworkingContext.h:
5242         (WebKit):
5243         (NetworkingContext):
5244         * platform/network/chromium/CookieJarChromium.cpp: Copied from Source/WebCore/loader/chromium/CookieJarChromium.cpp.
5245         (WebCore::setCookiesFromDOM):
5246         (WebCore::cookiesForDOM):
5247         (WebCore::cookieRequestHeaderFieldValue):
5248         (WebCore::cookiesEnabled):
5249         (WebCore::getRawCookies):
5250         (WebCore::deleteCookie):
5251         (WebCore::getHostnamesWithCookies):
5252         (WebCore::deleteCookiesForHostname):
5253         (WebCore::deleteAllCookies):
5254
5255 2012-11-16  Byungwoo Lee  <bw80.lee@samsung.com>
5256
5257         Fix assertion bug of build fix r134961
5258         https://bugs.webkit.org/show_bug.cgi?id=102533
5259
5260         Reviewed by Martin Robinson.
5261
5262         Assertion condition should be '!d->m_currentWebChallenge.isNull()'
5263
5264         * platform/network/soup/ResourceHandleSoup.cpp:
5265         (WebCore::ResourceHandle::continueDidReceiveAuthenticationChallenge):
5266
5267 2012-11-16  Tommy Widenflycht  <tommyw@google.com>
5268
5269         [chromium] MediaStream API: Add missing WebRTCPeerConnectionHandlerClient::didAddRemoteDataChannel
5270         https://bugs.webkit.org/show_bug.cgi?id=102386
5271
5272         Reviewed by Adam Barth.
5273
5274         Existing tests expanded to cover patch.
5275
5276         * platform/mediastream/RTCDataChannelDescriptor.cpp:
5277         (WebCore::RTCDataChannelDescriptor::RTCDataChannelDescriptor):
5278         (WebCore::RTCDataChannelDescriptor::readyStateChanged):
5279         * platform/mediastream/chromium/RTCPeerConnectionHandlerChromium.cpp:
5280         (WebCore::RTCPeerConnectionHandlerChromium::didAddRemoteDataChannel):
5281         (WebCore):
5282         * platform/mediastream/chromium/RTCPeerConnectionHandlerChromium.h:
5283         (WebKit):
5284         (RTCPeerConnectionHandlerChromium):
5285
5286 2012-11-16  Scott Violet  <sky@chromium.org>
5287
5288         [chromium] Copy linux theme related files to default
5289         https://bugs.webkit.org/show_bug.cgi?id=102403
5290
5291         Reviewed by Tony Chang
5292
5293         Transitional patch that copies linux WebThemeEngine to default directory.
5294
5295         No new tests, refactoring only.
5296
5297         * WebCore.gyp/WebCore.gyp: Update compile rules when use_default_render_theme is set.
5298         * WebCore.gypi: Adds new files.
5299         * platform/chromium/PlatformSupport.h:
5300         * platform/chromium/PlatformThemeChromiumDefault.cpp: Copied from Source/WebCore/platform/chromium/PlatformThemeChromiumLinux.cpp.
5301         * platform/chromium/PlatformThemeChromiumDefault.h: Copied from Source/WebCore/platform/chromium/PlatformThemeChromiumLinux.h.
5302         * platform/chromium/ScrollbarThemeChromiumDefault.cpp: Copied from Source/WebCore/platform/chromium/ScrollbarThemeChromiumLinux.cpp.
5303         * platform/chromium/ScrollbarThemeChromiumDefault.h: Copied from Source/WebCore/platform/chromium/ScrollbarThemeChromiumLinux.h.
5304         * rendering/RenderThemeChromiumDefault.cpp: Copied from Source/WebCore/rendering/RenderThemeChromiumLinux.cpp.
5305         * rendering/RenderThemeChromiumDefault.h: Copied from Source/WebCore/rendering/RenderThemeChromiumLinux.h.
5306
5307 2012-11-16  Alec Flett  <alecflett@chromium.org>
5308
5309         IndexedDB: add missing 'explicit' and fix backing store release
5310         https://bugs.webkit.org/show_bug.cgi?id=102450
5311
5312         Reviewed by Tony Chang.
5313
5314         A inconsequential regression was introduced in http://trac.webkit.org/changeset/134129
5315         which resulted in objects sticking around a bit longer than
5316         expected. This makes sure the LevelDBTransaction is released
5317         at the moment of commit/rollback rather than when IDBTransactionBackendImpl
5318         is destroyed.
5319
5320         No new tests, this is just internal state that will affect
5321         some future refactoring.
5322
5323         * Modules/indexeddb/IDBBackingStore.h:
5324         (Cursor):
5325         (Transaction):
5326         (WebCore::IDBBackingStore::Transaction::reset):
5327         * Modules/indexeddb/IDBTransactionBackendImpl.cpp:
5328         (WebCore::IDBTransactionBackendImpl::abort):
5329         (WebCore::IDBTransactionBackendImpl::commit):
5330
5331 2012-11-16  Dimitri Glazkov  <dglazkov@chromium.org>
5332
5333         [Chromium] One last tweak to WebCore.gypi to make Win build not sad.
5334
5335         * WebCore.gypi: Removed one last mention of accessibility/gtk file.
5336
5337 2012-11-16  Robert Flack  <flackr@chromium.org>
5338
5339         Handle gesture events on scrollbars.
5340         https://bugs.webkit.org/show_bug.cgi?id=101516
5341
5342         Reviewed by Antonio Gomes.
5343
5344         Adds a gesture event handler to scrollbars and sends gestures beginning
5345         over a scrollbar to this handler to allow touch scrolling scrollbars.
5346
5347         Test: fast/events/touch/gesture/gesture-scrollbar.html
5348
5349         * page/EventHandler.cpp:
5350         (WebCore::EventHandler::clear):
5351         (WebCore::EventHandler::handleGestureEvent):
5352         (WebCore::EventHandler::isScrollbarHandlingGestures):
5353         (WebCore):
5354         * page/EventHandler.h:
5355         (EventHandler):
5356         * platform/Scrollbar.cpp:
5357         (WebCore::Scrollbar::Scrollbar):
5358         (WebCore):
5359         (WebCore::Scrollbar::gestureEvent):
5360         (WebCore::Scrollbar::mouseMoved):
5361         (WebCore::Scrollbar::mouseUp):
5362         (WebCore::Scrollbar::mouseDown):
5363         * platform/Scrollbar.h:
5364         (WebCore):
5365         (Scrollbar):
5366         * platform/ScrollbarTheme.h:
5367         (WebCore::ScrollbarTheme::hitTest):
5368         * platform/ScrollbarThemeComposite.cpp:
5369         (WebCore::ScrollbarThemeComposite::hitTest):
5370         * platform/ScrollbarThemeComposite.h:
5371         (ScrollbarThemeComposite):
5372         * platform/qt/ScrollbarThemeQStyle.cpp:
5373         (WebCore::ScrollbarThemeQStyle::hitTest):
5374         * platform/qt/ScrollbarThemeQStyle.h:
5375         (ScrollbarThemeQStyle):
5376
5377 2012-11-16  Xianzhu Wang  <wangxianzhu@chromium.org>
5378
5379         [Chromium-Android] Stack overflow in MediaControlsChromiumAndroid.cpp
5380         https://bugs.webkit.org/show_bug.cgi?id=102444
5381
5382         Reviewed by Adam Barth.
5383
5384         No new tests. Have been covered by many existing layout tests.
5385
5386         * html/shadow/MediaControlsChromiumAndroid.cpp:
5387         (WebCore::MediaControls::create): Calls createControls instead of itself.
5388
5389 2012-11-16  Andreas Kling  <akling@apple.com>
5390
5391         StyleResolver: Optimize sharing candidate evaluation for elements with shared attribute data.
5392         <http://webkit.org/b/102507>
5393
5394         Reviewed by Antti Koivisto.
5395
5396         When evaluating two elements as potential style sharing candidate, we have a whole bunch of code
5397         comparing the various attributes that would prevent sharing.
5398
5399         If the two elements both share the same ElementAttributeData, we can skip all those checks
5400         since they are guaranteed to have equal attributes.
5401
5402         Cuts the time spent in canShareStyleWithElement() by 25% on the HTML5 spec at <http://whatwg.org/c>.
5403
5404         * css/StyleResolver.cpp:
5405         (WebCore::haveIdenticalStyleAffectingAttributes):
5406         (WebCore::StyleResolver::canShareStyleWithElement):
5407
5408 2012-11-16  Byungwoo Lee  <bw80.lee@samsung.com>
5409
5410         [EFL][GTK] Build fix after r134955
5411         https://bugs.webkit.org/show_bug.cgi?id=102527
5412
5413         Reviewed by Martin Robinson.
5414
5415         Fix the EFL,GTK debug bulid fails after r134955.
5416
5417         * platform/network/soup/ResourceHandleSoup.cpp:
5418         (WebCore::ResourceHandle::continueDidReceiveAuthenticationChallenge):
5419
5420 2012-11-15  Alexey Proskuryakov  <ap@apple.com>
5421
5422         Private Browsing is a per-page setting that sets a global value
5423         https://bugs.webkit.org/show_bug.cgi?id=67870
5424
5425         Reviewed by Sam Weinig.
5426
5427         Make ResourceHandle{Mac,CFNet} use context to access storage session.
5428
5429         * WebCore.exp.in: We track less session state in WebCore now, so we need fewer
5430         exports.
5431
5432         * loader/FrameNetworkingContext.h: Added an OVERRIDE.
5433
5434         * page/Settings.cpp: (WebCore::Settings::setPrivateBrowsingEnabled): WebCore
5435         no longer keeps track of a globally enabled private CFNetwork storage session.
5436
5437         * platform/CookiesStrategy.h: Added defaultCookieStorage(). Some cookie jar methods
5438         don't have a NetworkingContext pointer, and have to use whatever a client expects
5439         them to do. Perhaps we should move those methods away from WebCore eventually.
5440
5441         * platform/network/NetworkingContext.h: Added storageSession().
5442
5443         * platform/network/ResourceHandle.h: Removed sttaic methods for dealing with global
5444         sessions.
5445
5446         * platform/network/ResourceHandleInternal.h: Added m_storageSession. We need to
5447         remember it post-creation to do things in willSendRequest. Alternatively, we could
5448         keep a reference to NetworkingContext itself.
5449
5450         * platform/network/cf/CookieJarCFNet.cpp:
5451         (WebCore::setCookiesFromDOM): currentCFHTTPCookieStorage now needs a context,
5452         there is no globally current one any more. Also, we don't really expect cookie
5453         stirage to be 0 when not using NSURLConnection.
5454         (WebCore::cookiesForDOM): Ditto.
5455         (WebCore::cookieRequestHeaderFieldValue): Ditto.
5456         (WebCore::cookiesEnabled): Ditto.
5457         (WebCore::getRawCookies): Ditto.
5458         (WebCore::deleteCookie): Ditto.
5459         (WebCore::getHostnamesWithCookies): Ditto.
5460         (WebCore::deleteCookiesForHostname): Ditto.
5461         (WebCore::deleteAllCookies): Ditto.
5462         * platform/network/cf/CookieStorageCFNet.cpp:
5463         (WebCore::currentCFHTTPCookieStorage): Use a context.
5464         (WebCore::defaultCFHTTPCookieStorage): Except for Windows-only override session,
5465         this is implemented in a strategy.
5466         (WebCore::overridenCookieStorage): Exposed the override for WebKit use on Windows.
5467
5468         * platform/network/cf/CookieStorageCFNet.h: Ditto.
5469
5470         * platform/network/cf/ResourceHandleCFNet.cpp:
5471         (WebCore::willSendRequest): Use storage session from the context, not global one.
5472         (WebCore::makeFinalRequest): Merged this into the only remaining caller. This
5473         function didn't really make any sense on its own.
5474         (WebCore::shouldRelaxThirdPartyCookiePolicy): Factored out of createCFURLConnection
5475         to match Mac.
5476         (WebCore::ResourceHandle::createCFURLConnection): While merging makeFinalRequest()
5477         in, removed some seemingly nonsensical code that was getting and immediately re-applying
5478         cookie storage accept policy.
5479         (WebCore::ResourceHandle::start): Store context->storageSession() for use in willSendRequest.
5480         (WebCore::ResourceHandle::willSendRequest): Apply the stored session, not global one.
5481         (WebCore::ResourceHandle::storageSession): An accessor for static methods that cannot
5482         access "d".
5483         (WebCore::ResourceHandle::loadResourceSynchronously): Store context->storageSession() for use in willSendRequest.
5484         (WebCore::ResourceHandle::willLoadFromCache): Don't call makeFinalRequest here.
5485         It didn't match Mac, and nothing in makeFinalRequest should have affected the result.
5486
5487         * platform/network/cf/ResourceRequestCFNet.cpp: (WebCore::ResourceRequest::doUpdatePlatformRequest):
5488         This function used to apply current storage session to every request for no apparent
5489         reason.
5490
5491         * platform/network/mac/CookieJarMac.mm:
5492         (WebCore::cookiesForDOM): Changed to pass context to currentCFHTTPCookieStorage.
5493         (WebCore::cookieRequestHeaderFieldValue): Ditto.
5494         (WebCore::setCookiesFromDOM): Ditto.
5495         (WebCore::cookiesEnabled): Ditto.
5496         (WebCore::getRawCookies): Ditto.
5497         (WebCore::deleteCookie): Ditto.
5498         (WebCore::getHostnamesWithCookies): Ditto.
5499         (WebCore::deleteCookiesForHostname): Ditto.
5500         (WebCore::deleteAllCookies): Ditto.
5501         * platform/network/mac/ResourceHandleMac.mm:
5502         (WebCore::shouldRelaxThirdPartyCookiePolicy): There was no need to special case
5503         null currentCFHTTPCookieStorage, WKSI handles that internally. Added a context
5504         argument, so that the function can access current session.
5505         (WebCore::ResourceHandle::createNSURLConnection): Updated for other code changes.
5506         (WebCore::ResourceHandle::start): Store context->storageSession() for use in willSendRequest.
5507         (WebCore::ResourceHandle::willLoadFromCache): Style fix.
5508         (WebCore::ResourceHandle::loadResourceSynchronously): Store context->storageSession()
5509         for use in willSendRequest. 
5510         (WebCore::ResourceHandle::willSendRequest): Use stored session, not global one.
5511
5512 2012-11-16  Dimitri Glazkov  <dglazkov@chromium.org>
5513
5514         [Chromium] Land a proper fix for r134939.
5515
5516         * WebCore.gyp/WebCore.gyp: Added exclusion for "atk".
5517         * WebCore.gypi: Put the accessibility/atk directory back into WebCore.gypi.
5518
5519 2012-11-16  Dimitri Glazkov  <dglazkov@chromium.org>
5520
5521         [Chromium] Just yank the whole accessibility/atk dir out of WebCore.gypi.
5522
5523 2012-11-16  Dimitri Glazkov  <dglazkov@chromium.org>
5524
5525         [Chromium] Updated WebCore.gypi after r134939.
5526
5527         * WebCore.gypi: Renamed acessibility/gtk to accessibility/atk.
5528
5529 2012-11-16  Martin Robinson  <mrobinson@igalia.com>
5530
5531         [GTK] Move CredentialBackingStore usage from GtkAuthenticationDialog to ResourceHandleSoup
5532         https://bugs.webkit.org/show_bug.cgi?id=101840
5533
5534         Reviewed by Gustavo Noronha Silva.
5535
5536         Make ResourceHandleSoup aware of per-session CredentialStorage and persistent CredentialStorage.
5537         Persistent credential storage interaction is moved from GtkAuthenticationDialog, so that it can
5538         be used whether or not GtkAuthenticationDialog is used or not. We try to properly handle redirects
5539         in the manner that the CFNet backend does.
5540
5541         No new tests. There are tests for this behavior, but they cannot be activated until we finish
5542         plumbing this through to the API layer. Once that patch lands, the tests will be turned on.
5543
5544         * platform/gtk/GtkAuthenticationDialog.cpp: No longer store credentials into the persistent
5545         storage manually, instead rely on ResourceHandleSoup. Also, we no longer get proposed credentials
5546         from the persistent storage here as well. They are pre-loaded by the ResourceHanndle.
5547         * platform/gtk/GtkAuthenticationDialog.h: Remove callbacks and members associated with saving
5548         credentials to the persistent credential store.
5549         * platform/network/ResourceHandle.h:
5550         (ResourceHandle): Add a method which is used to continue asynchronously after looking for
5551         proposed credentials in the persistent credential store.
5552         * platform/network/ResourceHandleInternal.h: Add a member which tracks persistent credentials to be added once we know
5553         an authentication succeeded.
5554         * platform/network/gtk/CredentialBackingStore.cpp:
5555         (CredentialForChallengeAsyncReadyCallbackData): Added this data structure used for asynchronous access
5556         of stored credentials.
5557         (WebCore::credentialForChallengeAsyncReadyCallback): Ditto for this callback.
5558         (WebCore::CredentialBackingStore::credentialForChallenge): Make this method asynchronous.
5559         * platform/network/gtk/CredentialBackingStore.h:
5560         (CredentialBackingStore): Update method signatures for for making credentialForChallenge asynchronous.
5561         * platform/network/soup/AuthenticationChallenge.h:
5562         (WebCore::AuthenticationChallenge::setProposedCredential): Added a setter so that ResourceHandleSoup
5563         can set proposed credentials from the persistent credential store.
5564         * platform/network/soup/ResourceHandleSoup.cpp:
5565         (WebCore::gotHeadersCallback): For GTK+ save any pending credential in the persistent credential storage
5566         if the authentication succeeded.
5567         (WebCore::applyAuthenticationToRequest): Added this method which generically embeds stored credentials
5568         in the request URI. This is the method that Soup uses to override any soup-stored session credential.
5569         (WebCore::restartedCallback): Strip credentials for requests that span a security origin. Handle
5570         authenticating requests from the session store.
5571         (WebCore::createSoupRequestAndMessageForHandle): Make the local request reference mutable.
5572         (WebCore::ResourceHandle::start): Remove some code which is now part of applyAuthenticationToRequest.
5573         Call applyAuthenticationToRequest and clear the user and password members like the CFNet backend does.
5574         (WebCore::getCredentialFromPersistentStoreCallback): Added this callback for getting persistently stored credentials.
5575         (WebCore::ResourceHandle::continueDidReceiveAuthenticationChallenge): Split out didReceiveAuthenticationChallenge
5576         into this asynchronous bit.
5577         (WebCore::ResourceHandle::didReceiveAuthenticationChallenge): For GTK+ continue handling this situation after
5578         first looking in the persistent credential store.
5579         (WebCore::ResourceHandle::receivedCredential): Store session credentials in the session storage, which is
5580         at the moment a redundant version of the Soup session storage and also prepare any persistent credentials
5581         for storage later (see gotHeadersCallback).
5582
5583 2012-11-16  Erik Arvidsson  <arv@chromium.org>
5584
5585         Update DOMException name: TypeMismatchError
5586         https://bugs.webkit.org/show_bug.cgi?id=102418
5587
5588         Reviewed by Kentaro Hara.
5589
5590         Patch 17 of 25 to update DOMException name to match the spec and Firefox.
5591
5592         Updated existing tests.
5593
5594         * dom/DOMCoreException.cpp:
5595         (WebCore):
5596         * dom/ExceptionCode.h:
5597
5598 2012-11-16  Balazs Kelemen  <kbalazs@webkit.org>
5599
5600         Coordinated Graphics: support the "freeze animations" API
5601         https://bugs.webkit.org/show_bug.cgi?id=100703
5602
5603         Reviewed by Noam Rosenthal.
5604
5605         Typo fix after previous patch.
5606
5607         No new tests, it's just a typo that only takes effect in the browser.
5608
5609         * platform/graphics/GraphicsLayerAnimation.cpp:
5610         (WebCore::GraphicsLayerAnimation::GraphicsLayerAnimation):
5611         Initialize members.
5612
5613 2012-11-16  Dan Carney  <dcarney@google.com>
5614
5615         add 7 bit strings capabilities to the v8 binding layer
5616         https://bugs.webkit.org/show_bug.cgi?id=91850
5617
5618         Reviewed by Adam Barth.
5619
5620         This change enables the v8 binding layer to make use of webkit's
5621         8 bit string capabilities. Using 8 bit strings leads to certain
5622         benchmark performance improvemnts as can be seen in
5623         https://bug-91850-attachments.webkit.org/attachment.cgi?id=163334.
5624
5625         No new tests.  Test coverage already extensive.
5626
5627         * bindings/v8/V8PerIsolateData.cpp:
5628         (WebCore::V8PerIsolateData::visitExternalStrings):
5629         * bindings/v8/V8StringResource.cpp:
5630         (StringTraits):
5631         (WebCore::false):
5632         (WebCore):
5633         (WebCore::true):
5634         (WebCore::v8StringToWebCoreString):
5635         * bindings/v8/V8ValueCache.cpp:
5636         (WebCore::makeExternalString):
5637         (WebCore::WebCoreStringResourceBase::toWebCoreStringResourceBase):
5638         (WebCore):
5639         (WebCore::WebCoreStringResourceBase::visitStrings):
5640         * bindings/v8/V8ValueCache.h:
5641         (WebCoreStringResourceBase):
5642         (WebCore::WebCoreStringResourceBase::WebCoreStringResourceBase):
5643         (WebCore::WebCoreStringResourceBase::~WebCoreStringResourceBase):
5644         (WebCore::WebCoreStringResourceBase::atomicString):
5645         (WebCore::WebCoreStringResourceBase::memoryConsumption):
5646         (WebCoreStringResource16):
5647         (WebCore::WebCoreStringResource16::WebCoreStringResource16):
5648         (WebCore):
5649         (WebCoreStringResource8):
5650         (WebCore::WebCoreStringResource8::WebCoreStringResource8):
5651
5652 2012-11-16  Erik Arvidsson  <arv@chromium.org>
5653
5654         Update DOMException name: InvalidAccessError
5655         https://bugs.webkit.org/show_bug.cgi?id=102400
5656
5657         Reviewed by Kentaro Hara.
5658
5659         Patch 15 of 25 to update DOMException name to match the spec and Firefox.
5660
5661         Updated existing tests.
5662
5663         * dom/DOMCoreException.cpp:
5664
5665 2012-11-16  Alexandru Chiculita  <achicu@adobe.com>
5666
5667         [Texmap][CSS Shaders] Make the CustomFilterValidatedProgram maintain the platform compiled program
5668         https://bugs.webkit.org/show_bug.cgi?id=102414
5669
5670         Reviewed by Noam Rosenthal.
5671
5672         Added WebCore classes needed for the WebKit2 implementation of Texture Mapper to keep a reference to the 
5673         platform compiled custom filter. It is just used to maintain the life-time of the objects. WebKit2 injects a
5674         client in TextureMapperPlatformCompiledProgram and receives a callback when the custom filter program is not
5675         used to render any layer on the page. 
5676
5677         Note that CustomFilterValidatedProgram are reused across multiple elements of the same page. Also, the instances
5678         are reused across frames, so animations should reuse the same pre-validated program. In this case, the mechanism is
5679         extended and reused in the platform compositor.
5680         
5681         No new tests, existing tests for CSS Custom Filters already cover this path.
5682
5683         * CMakeLists.txt:
5684         * GNUmakefile.am:
5685         * GNUmakefile.list.am:
5686         * Target.pri:
5687         * WebCore.pri:
5688         * platform/graphics/filters/CustomFilterValidatedProgram.cpp:
5689         (WebCore):
5690         * platform/graphics/filters/CustomFilterValidatedProgram.h:
5691         (WebCore):
5692         (CustomFilterValidatedProgram):
5693         * platform/graphics/filters/texmap/CustomFilterValidatedProgramTextureMapper.cpp: Added.
5694         (WebCore):
5695         (WebCore::CustomFilterValidatedProgram::platformCompiledProgram): Platform implementation for creating and deleting the reference.
5696         (WebCore::CustomFilterValidatedProgram::platformInit):
5697         (WebCore::CustomFilterValidatedProgram::platformDestroy):
5698         * platform/graphics/filters/texmap/TextureMapperPlatformCompiledProgram.h: Added.
5699         (WebCore):
5700         (TextureMapperPlatformCompiledProgramClient):
5701         (WebCore::TextureMapperPlatformCompiledProgramClient::ref):
5702         (WebCore::TextureMapperPlatformCompiledProgramClient::deref):
5703         (TextureMapperPlatformCompiledProgram):
5704         Stores a link to a TextureMapperPlatformCompiledProgramClient. It's main purpose is to call unref on the client when
5705         the shader is not needed anymore. WebKit2 can use that to delete the corresponding shader from the compositor side.
5706         (WebCore::TextureMapperPlatformCompiledProgram::create):
5707         (WebCore::TextureMapperPlatformCompiledProgram::setClient): Used by WebKit2 to inject the platform client.
5708         (WebCore::TextureMapperPlatformCompiledProgram::client):
5709         (WebCore::TextureMapperPlatformCompiledProgram::TextureMapperPlatformCompiledProgram):
5710
5711 2012-11-16  Andreas Kling  <akling@apple.com>
5712
5713         Short-circuit Element::hasEquivalentAttributes() if elements share attribute data.
5714         <http://webkit.org/b/102498>
5715
5716         Reviewed by Antti Koivisto.
5717
5718         Add a fast path to hasEquivalentAttributes() that checks if both elements are using
5719         the same ElementAttributeData.
5720
5721         * dom/Element.cpp:
5722         (WebCore::Element::hasEquivalentAttributes):
5723
5724 2012-11-16  Zeno Albisser  <zeno@webkit.org>
5725
5726         [Qt] Adding a null pointer check for currentContext to GraphicsContext3DQt.
5727         https://bugs.webkit.org/show_bug.cgi?id=102360
5728
5729         QOpenGLContext::currentContext() will return null, in case there is
5730         no current context. Therefore currentContext must be null-checked
5731         before it can be reused.
5732         Making a context current on a null-surface on the other hand is
5733         perfectly possible.
5734
5735         Reviewed by Kenneth Rohde Christiansen.
5736
5737         * platform/graphics/qt/GraphicsContext3DQt.cpp:
5738         (WebCore::GraphicsContext3DPrivate::blitMultisampleFramebufferAndRestoreContext):
5739
5740 2012-11-16  Eugene Klyuchnikov  <eustas.bug@gmail.com>
5741
5742         Web Inspector: Workaround to show shortcuts for panels that hasn't been loaded.
5743         https://bugs.webkit.org/show_bug.cgi?id=102488
5744
5745         Reviewed by Vsevolod Vlasov.
5746
5747         Panels are lazily loaded / instantiated.
5748         Panel constructors register keyboard shortcuts.
5749
5750         When user open shortcuts screen all panel should be loaded.
5751         Otherwise some shortcuts will be missing.
5752
5753         * inspector/front-end/ShortcutsScreen.js: Added callback invokation.
5754         * inspector/front-end/inspector.js:
5755         Provided callback that loads all panels.
5756
5757 2012-11-16  Kentaro Hara  <haraken@chromium.org>
5758
5759         [V8] Remove IsSubType() from CodeGeneratorV8.pm
5760         https://bugs.webkit.org/show_bug.cgi?id=102348
5761
5762         Reviewed by Adam Barth.
5763
5764         CodeGenerator.pm has IsStrictSubType(). CodeGeneratorV8.pm should use it.
5765
5766         No tests. No change in behavior.
5767
5768         * bindings/scripts/CodeGenerator.pm:
5769         (IsSubType):
5770         * bindings/scripts/CodeGeneratorJS.pm:
5771         (GenerateImplementation):
5772         * bindings/scripts/CodeGeneratorV8.pm:
5773         (GenerateHeader):
5774         (GetInternalFields):
5775         (GenerateNormalAttrGetter):
5776         (GenerateNormalAttrSetter):
5777         (GenerateFunctionCallback):
5778         (GenerateImplementationIndexer):
5779         (GenerateToV8Converters):
5780
5781 2012-11-16  Mario Sanchez Prada  <mario@webkit.org>
5782
5783         [EFL] Share WebKit-Gtk's Accessibility implementation with others WebKit ports.
5784         https://bugs.webkit.org/show_bug.cgi?id=99578
5785
5786         Reviewed by Martin Robinson.
5787
5788         Renamed WebCore/accessibility/gtk to WebCore/accessibility/atk.
5789
5790         * GNUmakefile.am:
5791         * GNUmakefile.list.am:
5792         * accessibility/atk/AXObjectCacheAtk.cpp: Renamed from
5793         Source/WebCore/accessibility/gtk/AXObjectCacheAtk.cpp.
5794         * accessibility/atk/AccessibilityObjectAtk.cpp: Renamed from
5795         Source/WebCore/accessibility/gtk/AccessibilityObjectAtk.cpp.
5796         * accessibility/atk/WebKitAccessibleHyperlink.cpp: Renamed from
5797         Source/WebCore/accessibility/gtk/WebKitAccessibleHyperlink.cpp.
5798         * accessibility/atk/WebKitAccessibleHyperlink.h: Renamed from
5799         Source/WebCore/accessibility/gtk/WebKitAccessibleHyperlink.h.
5800         * accessibility/atk/WebKitAccessibleInterfaceAction.cpp: Renamed
5801         from Source/WebCore/accessibility/gtk/WebKitAccessibleInterfaceAction.cpp.
5802         * accessibility/atk/WebKitAccessibleInterfaceAction.h: Renamed
5803         from Source/WebCore/accessibility/gtk/WebKitAccessibleInterfaceAction.h.
5804         * accessibility/atk/WebKitAccessibleInterfaceComponent.cpp:
5805         Renamed from Source/WebCore/accessibility/gtk/WebKitAccessibleInterfaceComponent.cpp.
5806         * accessibility/atk/WebKitAccessibleInterfaceComponent.h: Renamed
5807         from Source/WebCore/accessibility/gtk/WebKitAccessibleInterfaceComponent.h.
5808         * accessibility/atk/WebKitAccessibleInterfaceDocument.cpp: Renamed
5809         from Source/WebCore/accessibility/gtk/WebKitAccessibleInterfaceDocument.cpp.
5810         * accessibility/atk/WebKitAccessibleInterfaceDocument.h: Renamed
5811         from Source/WebCore/accessibility/gtk/WebKitAccessibleInterfaceDocument.h.
5812         * accessibility/atk/WebKitAccessibleInterfaceEditableText.cpp:
5813         Renamed from Source/WebCore/accessibility/gtk/WebKitAccessibleInterfaceEditableText.cpp.
5814         * accessibility/atk/WebKitAccessibleInterfaceEditableText.h:
5815         Renamed from Source/WebCore/accessibility/gtk/WebKitAccessibleInterfaceEditableText.h.
5816         * accessibility/atk/WebKitAccessibleInterfaceHyperlinkImpl.cpp:
5817         Renamed from Source/WebCore/accessibility/gtk/WebKitAccessibleInterfaceHyperlinkImpl.cpp.
5818         * accessibility/atk/WebKitAccessibleInterfaceHyperlinkImpl.h:
5819         Renamed from Source/WebCore/accessibility/gtk/WebKitAccessibleInterfaceHyperlinkImpl.h.
5820         * accessibility/atk/WebKitAccessibleInterfaceHypertext.cpp:
5821         Renamed from Source/WebCore/accessibility/gtk/WebKitAccessibleInterfaceHypertext.cpp.
5822         * accessibility/atk/WebKitAccessibleInterfaceHypertext.h: Renamed
5823         from Source/WebCore/accessibility/gtk/WebKitAccessibleInterfaceHypertext.h.
5824         * accessibility/atk/WebKitAccessibleInterfaceImage.cpp: Renamed
5825         from Source/WebCore/accessibility/gtk/WebKitAccessibleInterfaceImage.cpp.
5826         * accessibility/atk/WebKitAccessibleInterfaceImage.h: Renamed from
5827         Source/WebCore/accessibility/gtk/WebKitAccessibleInterfaceImage.h.
5828         * accessibility/atk/WebKitAccessibleInterfaceSelection.cpp:
5829         Renamed from Source/WebCore/accessibility/gtk/WebKitAccessibleInterfaceSelection.cpp.
5830         * accessibility/atk/WebKitAccessibleInterfaceSelection.h: Renamed
5831         from Source/WebCore/accessibility/gtk/WebKitAccessibleInterfaceSelection.h.
5832         * accessibility/atk/WebKitAccessibleInterfaceTable.cpp: Renamed
5833         from Source/WebCore/accessibility/gtk/WebKitAccessibleInterfaceTable.cpp.
5834         * accessibility/atk/WebKitAccessibleInterfaceTable.h: Renamed from
5835         Source/WebCore/accessibility/gtk/WebKitAccessibleInterfaceTable.h.
5836         * accessibility/atk/WebKitAccessibleInterfaceText.cpp: Renamed
5837         from Source/WebCore/accessibility/gtk/WebKitAccessibleInterfaceText.cpp.
5838         * accessibility/atk/WebKitAccessibleInterfaceText.h: Renamed from
5839         Source/WebCore/accessibility/gtk/WebKitAccessibleInterfaceText.h.
5840         * accessibility/atk/WebKitAccessibleInterfaceValue.cpp: Renamed
5841         from Source/WebCore/accessibility/gtk/WebKitAccessibleInterfaceValue.cpp.
5842         * accessibility/atk/WebKitAccessibleInterfaceValue.h: Renamed from
5843         Source/WebCore/accessibility/gtk/WebKitAccessibleInterfaceValue.h.
5844         * accessibility/atk/WebKitAccessibleUtil.cpp: Renamed from
5845         Source/WebCore/accessibility/gtk/WebKitAccessibleUtil.cpp.
5846         * accessibility/atk/WebKitAccessibleUtil.h: Renamed from
5847         Source/WebCore/accessibility/gtk/WebKitAccessibleUtil.h.
5848         * accessibility/atk/WebKitAccessibleWrapperAtk.cpp: Renamed from
5849         Source/WebCore/accessibility/gtk/WebKitAccessibleWrapperAtk.cpp.
5850         * accessibility/atk/WebKitAccessibleWrapperAtk.h: Renamed from
5851         Source/WebCore/accessibility/gtk/WebKitAccessibleWrapperAtk.h.
5852
5853 2012-11-16  Shinya Kawanaka  <shinyak@chromium.org>
5854
5855         Changing pseudoClass (:indeterminate) should cause distribution
5856         https://bugs.webkit.org/show_bug.cgi?id=101903
5857
5858         Reviewed by Dimitri Glazkov.
5859
5860         <progress> and <input type="checkbox"> have 'indeterminate' state. When their state is changed, we have to
5861         invalidate distribution if necessary. To check it, we collect a feature that :invalidate is used in select attributes.
5862
5863         For <input>, we also have to see 'type' is changed. According to the spec, :indeterminate should match only
5864         progress element or <input type="checkbox">. So changing 'type' might also change :indeterminate state.
5865
5866         Tests: fast/dom/shadow/pseudoclass-update-indeterminate-input.html
5867                fast/dom/shadow/pseudoclass-update-indeterminate-progress.html
5868
5869         * html/HTMLInputElement.cpp:
5870         (WebCore::HTMLInputElement::updateType):
5871         (WebCore::HTMLInputElement::setIndeterminate):
5872         * html/HTMLProgressElement.cpp:
5873         (WebCore::HTMLProgressElement::didElementStateChange):
5874
5875 2012-11-16  Alexis Menard  <alexis@webkit.org>
5876
5877         Factorize the creation of primitive values with a pair into a function.
5878         https://bugs.webkit.org/show_bug.cgi?id=102485
5879
5880         Reviewed by Antti Koivisto.
5881
5882         The pattern is already existing in various call sites inside CSSParser
5883         and more will be added in the future (see bug 102104).
5884
5885         No new tests : It's a refactoring only, the tests should cover it.
5886
5887         * css/CSSParser.cpp:
5888         (WebCore):
5889         (WebCore::createPrimitiveValuePair):
5890         (WebCore::CSSParser::parseValue):
5891         (WebCore::CSSParser::parseFillSize):
5892         (WebCore::CSSParser::parseBorderImageRepeat):
5893         (WebCore::CSSParser::parseBorderRadius):
5894         (WebCore::CSSParser::parseCounter):
5895
5896 2012-11-16  Mark Pilgrim  <pilgrim@chromium.org>
5897
5898         Expand PlatformCookieJar interface to allow for other ports
5899         https://bugs.webkit.org/show_bug.cgi?id=102456
5900
5901         Reviewed by Adam Barth.
5902
5903         Add firstParty and cookieURL arguments to several functions to
5904         prepare for integrating Chromium port into new PlatformCookieJar
5905         interface.
5906
5907         * loader/CookieJar.cpp:
5908         (WebCore::cookiesEnabled):
5909         (WebCore::cookieRequestHeaderFieldValue):
5910         (WebCore::getRawCookies):
5911         * platform/network/PlatformCookieJar.h:
5912         (WebCore):
5913         * platform/network/cf/CookieJarCFNet.cpp:
5914         (WebCore::cookieRequestHeaderFieldValue):
5915         (WebCore::cookiesEnabled):
5916         (WebCore::getRawCookies):
5917         * platform/network/curl/CookieJarCurl.cpp:
5918         (WebCore::cookieRequestHeaderFieldValue):
5919         (WebCore::cookiesEnabled):
5920         (WebCore::getRawCookies):
5921         * platform/network/mac/CookieJarMac.mm:
5922         (WebCore::cookieRequestHeaderFieldValue):
5923         (WebCore::cookiesEnabled):
5924         (WebCore::getRawCookies):
5925         * platform/network/qt/CookieJarQt.cpp:
5926         (WebCore::cookieRequestHeaderFieldValue):
5927         (WebCore::cookiesEnabled):
5928         (WebCore::getRawCookies):
5929         * platform/network/soup/CookieJarSoup.cpp:
5930         (WebCore::cookieRequestHeaderFieldValue):
5931         (WebCore::cookiesEnabled):
5932         (WebCore::getRawCookies):
5933         * platform/network/win/CookieJarWin.cpp:
5934         (WebCore::cookieRequestHeaderFieldValue):
5935         (WebCore::cookiesEnabled):
5936         (WebCore::getRawCookies):
5937
5938 2012-11-16  Julien Chaffraix  <jchaffraix@webkit.org>
5939
5940         RenderGrid should have a function to resolve grid position
5941         https://bugs.webkit.org/show_bug.cgi?id=102441
5942
5943         Reviewed by Ojan Vafai.
5944
5945         The code was doing this conversion implicitly inside RenderGrid::findChildLogicalPosition.
5946         Also note that we also provided a fallback by returning LayoutPoint() (ie the (0, 0) position
5947         on the grid) if we couldn't handle the value. The explicit conversion is needed in order to
5948         support render areas and add a proper grid model to RenderGrid.
5949
5950         No expected change in behavior.
5951
5952         * rendering/RenderGrid.h:
5953         * rendering/RenderGrid.cpp:
5954         (WebCore::RenderGrid::resolveGridPosition):
5955         Added this new function to handle the conversion. We re-use Length but should never see
5956         a lot of the <length> values so I added some ASSERTs to enforce and catch that.
5957
5958         (WebCore::RenderGrid::findChildLogicalPosition):
5959         Simplified the function now that it just use resolveGridPosition.
5960
5961 2012-11-16  Ulan Degenbaev  <ulan@chromium.org>
5962
5963         [V8] Increment the amount of externally allocated memory for the receiving V8 isolate when transferring ArrayBuffer
5964         https://bugs.webkit.org/show_bug.cgi?id=94463
5965
5966         Reviewed by Kentaro Hara.
5967
5968         Call AdjustAmountOfExternalAllocatedMemory when V8ArrayBuffer is deserialized and transferred.
5969
5970         Test: ManualTests/typed-array-memory.html
5971
5972         * bindings/v8/SerializedScriptValue.cpp:
5973
5974 2012-11-16  Sheriff Bot  <webkit.review.bot@gmail.com>
5975
5976         Unreviewed, rolling out r134694.
5977         http://trac.webkit.org/changeset/134694
5978         https://bugs.webkit.org/show_bug.cgi?id=102481
5979
5980         it made API test crash on EFL port (Requested by gyuyoung on
5981         #webkit).
5982
5983         * platform/efl/RenderThemeEfl.cpp:
5984         (WebCore::fillColorsFromEdjeClass):
5985         (WebCore::RenderThemeEfl::setColorFromThemeClass):
5986         (WebCore::RenderThemeEfl::loadTheme):
5987         (WebCore::RenderThemeEfl::RenderThemeEfl):
5988         * platform/efl/RenderThemeEfl.h:
5989         (RenderThemeEfl):
5990
5991 2012-11-16  Mike West  <mkwst@chromium.org>
5992
5993         Web Inspector: Move call stack generation out of bindings.
5994         https://bugs.webkit.org/show_bug.cgi?id=101331
5995
5996         Reviewed by Yury Semikhatsky.
5997
5998         Currently, we generate stack traces for console messages at each call
5999         site. Bug 100650 has the end goal of moving all stack trace generation
6000         inside of the Inspector in order to ensure that we never send a console
6001         message without a stack trace if it's possible to generate one. This
6002         also ensures that we never generate unused call stacks.
6003
6004         This patch is the first step in that direction, moving stack trace
6005         generation out of the Console bindings, and into either Console or
6006         InspectorConsoleAgent.
6007
6008         No visible change in behavior should result; this refactoring should
6009         continue to pass all existing inspector tests.
6010
6011         * bindings/js/JSConsoleCustom.cpp:
6012         (WebCore::JSConsole::profile):
6013         (WebCore::JSConsole::profileEnd):
6014             Adjust custom JSC Console bindings to drop call stack generation.
6015         * bindings/scripts/CodeGeneratorJS.pm:
6016         (GenerateCallWith):
6017         * bindings/scripts/CodeGeneratorV8.pm:
6018         (GenerateCallWith):
6019             Drop call stack generation from JSC and V8 bindings.
6020         * bindings/scripts/CodeGeneratorGObject.pm:
6021             Skip timeEnd explicitly in these bindings; it used to include
6022             ScriptArguments, which autoskipped it. Now it doesn't, so it needs
6023             to be called out on its own.
6024         * bindings/v8/ScriptCallStackFactory.cpp:
6025         (WebCore::createScriptCallStackForConsole):
6026         (WebCore::createScriptCallStack):
6027         (WebCore):
6028         * bindings/v8/ScriptCallStackFactory.h:
6029         (WebCore):
6030             Add 'createScriptCallStack(ScriptState*, size_t)' to V8's
6031             ScriptCallStackFactory in order to match JCS' implementation.
6032             It simply delegates to 'createScriptCallStackForConsole', which
6033             now also accepts a 'maxStackSize' parameter.
6034         * bindings/v8/custom/V8ConsoleCustom.cpp:
6035         (WebCore::V8Console::traceCallback):
6036         (WebCore::V8Console::assertCallback):
6037         (WebCore::V8Console::profileCallback):
6038         (WebCore::V8Console::profileEndCallback):
6039             Adjust custom V8 bindings to drop call stack generation.
6040         * inspector/InspectorConsoleAgent.cpp:
6041         (WebCore::InspectorConsoleAgent::addMessageToConsole):
6042             With the eventual goal of getting rid of the call stack parameter
6043             entirely, this patch drops it from one version of
6044             'addMessageToConsole' (replacing it with ScriptState*), and creates
6045             a new version that only accepts a call stack. We should be able to
6046             migrate most (all?) external call sites over to the arguments
6047             version in future patches.
6048         (WebCore):
6049         (WebCore::InspectorConsoleAgent::count):
6050             Count takes 'ScriptState*' instead of a call stack, and generates
6051             the stack as needed.
6052         * inspector/InspectorConsoleAgent.h:
6053         (InspectorConsoleAgent):
6054         * inspector/InspectorConsoleInstrumentation.h:
6055         (WebCore::InspectorInstrumentation::addMessageToConsole):
6056         (WebCore):
6057         (WebCore::InspectorInstrumentation::consoleCount):
6058         * inspector/InspectorInstrumentation.cpp:
6059         (WebCore):
6060         (WebCore::InspectorInstrumentation::addMessageToConsoleImpl):
6061         (WebCore::InspectorInstrumentation::consoleCountImpl):
6062         * inspector/InspectorInstrumentation.h:
6063         (InspectorInstrumentation):
6064             Changes the InspectorInstrumentation pipeline to match the
6065             InspectorConsoleAgent changes.
6066         * page/Console.cpp:
6067         (WebCore::Console::addMessage):
6068             We now (always) generate one frame of a stack trace in order to
6069             populate line numbers and caller URLs. If we need to print the whole
6070             trace here, we generate a full stack.
6071         (WebCore::Console::debug):
6072         (WebCore::Console::error):
6073         (WebCore::Console::info):
6074         (WebCore::Console::log):
6075         (WebCore::Console::warn):
6076         (WebCore::Console::dir):
6077         (WebCore::Console::dirxml):
6078         (WebCore::Console::clear):
6079         (WebCore::Console::trace):
6080         (WebCore::Console::assertCondition):
6081         (WebCore::Console::count):
6082         (WebCore::Console::markTimeline):
6083         (WebCore::Console::timeEnd):
6084         (WebCore::Console::timeStamp):
6085         (WebCore::Console::group):
6086         (WebCore::Console::groupCollapsed):
6087         (WebCore::Console::profile):
6088         (WebCore::Console::profileEnd):
6089             s/ScriptCallStack/ScriptState*/g. Also, printing the stack trace
6090             has been moved out of 'trace' and into 'addMessage'.
6091         * page/Console.h:
6092         (Console):
6093         * page/Console.idl:
6094             Drop the call stack, add the script state.
6095         * workers/WorkerContext.cpp:
6096         (WebCore::WorkerContext::addMessageToWorkerConsole):
6097             Use the new, explicitly call stacked addMessageToConsole. We'll kill
6098             this in a future patch.
6099
6100 2012-11-16  Marja Hölttä  <marja@chromium.org>
6101
6102         Add initiator to CachedResourceRequest.
6103         https://bugs.webkit.org/show_bug.cgi?id=101935
6104
6105         Reviewed by Adam Barth.
6106
6107         Motivation: Chromium needs to know which elements request a
6108         resource (such as an image or a script) (bug 92761). In addition,
6109         for exposing resource timing information (bug 84883) we need to
6110         store the initiator, and this is the first step towards it.
6111
6112         No new tests: No visible change in behavior.
6113
6114         * CMakeLists.txt:
6115         * GNUmakefile.list.am:
6116         * Target.pri:
6117         * WebCore.gypi:
6118         * WebCore.vcproj/WebCore.vcproj:
6119         * WebCore.xcodeproj/project.pbxproj:
6120         * css/CSSCursorImageValue.cpp:
6121         (WebCore::CSSCursorImageValue::cachedImage):
6122         * css/CSSFontFaceSrcValue.cpp:
6123         (WebCore::CSSFontFaceSrcValue::cachedFont):
6124         * css/CSSImageSetValue.cpp:
6125         (WebCore::CSSImageSetValue::cachedImageSet):
6126         * css/CSSImageValue.cpp:
6127         (WebCore::CSSImageValue::cachedImage):
6128         * css/CSSImageValue.h:
6129         (WebCore):
6130         (CSSImageValue):
6131         * css/StyleResolver.cpp:
6132         (WebCore::StyleResolver::loadPendingImage):
6133         * css/StyleRuleImport.cpp:
6134         (WebCore::StyleRuleImport::requestStyleSheet):
6135         * css/WebKitCSSSVGDocumentValue.cpp:
6136         (WebCore::WebKitCSSSVGDocumentValue::load):
6137         * css/WebKitCSSShaderValue.cpp:
6138         (WebCore::WebKitCSSShaderValue::cachedShader):
6139         * dom/ScriptElement.cpp:
6140         (WebCore::ScriptElement::requestScript):
6141         * html/HTMLLinkElement.cpp:
6142         (WebCore::HTMLLinkElement::process):
6143         * html/parser/CSSPreloadScanner.cpp:
6144         (WebCore::CSSPreloadScanner::emitRule):
6145         * html/parser/CSSPreloadScanner.h:
6146         (CSSPreloadScanner):
6147         * html/parser/HTMLPreloadScanner.cpp:
6148         (WebCore::PreloadTask::preload):
6149         * loader/ImageLoader.cpp:
6150         (WebCore::ImageLoader::updateFromElement):
6151         * loader/cache/CachedResourceLoader.cpp:
6152         (WebCore::CachedResourceLoader::requestImage):
6153         (WebCore::CachedResourceLoader::requestResource):
6154         (WebCore::CachedResourceLoader::determineRevalidationPolicy):
6155         (WebCore):
6156         (WebCore::CachedResourceLoader::preload):
6157         * loader/cache/CachedResourceLoader.h:
6158         (WebCore):
6159         (CachedResourceLoader):
6160         * loader/cache/CachedResourceRequest.cpp:
6161         (WebCore::CachedResourceRequest::CachedResourceRequest):
6162         (WebCore):
6163         (WebCore::CachedResourceRequest::~CachedResourceRequest):
6164         (WebCore::CachedResourceRequest::setInitiator):
6165         (WebCore::CachedResourceRequest::initiatorName):
6166         (WebCore::CachedResourceRequest::initiatorDocument):
6167         (WebCore::CachedResourceRequest::initiatorElement):
6168         * loader/cache/CachedResourceRequest.h:
6169         (WebCore):
6170         (WebCore::CachedResourceRequest::setOptions):
6171         (WebCore::CachedResourceRequest::defer):
6172         (WebCore::CachedResourceRequest::setDefer):
6173         (CachedResourceRequest):
6174         * loader/cache/CachedResourceRequestInitiators.cpp: Copied from Source/WebCore/loader/cache/CachedResourceRequest.cpp.
6175         (WebCore):
6176         (WebCore::CachedResourceRequestInitiators::CachedResourceRequestInitiators):
6177         * loader/cache/CachedResourceRequestInitiators.h: Copied from Source/WebCore/loader/cache/CachedResourceRequest.cpp.
6178         (WebCore):
6179         (CachedResourceRequestInitiators):
6180         (WebCore::cachedResourceRequestInitiators):
6181         * loader/icon/IconLoader.cpp:
6182         (WebCore::IconLoader::startLoading):
6183         * platform/ThreadGlobalData.cpp:
6184         (WebCore::ThreadGlobalData::ThreadGlobalData):
6185         * platform/ThreadGlobalData.h:
6186         (WebCore):
6187         (WebCore::ThreadGlobalData::cachedResourceRequestInitiators):
6188         (ThreadGlobalData):
6189         * svg/SVGFEImageElement.cpp:
6190         (WebCore::SVGFEImageElement::requestImageResource):
6191         * svg/SVGFontFaceUriElement.cpp:
6192         (WebCore::SVGFontFaceUriElement::loadFont):
6193         * svg/SVGUseElement.cpp:
6194         (WebCore::SVGUseElement::svgAttributeChanged):
6195
6196 2012-11-16  Yury Semikhatsky  <yurys@chromium.org>
6197
6198         Web Inspector: don't show an Error when evaluating a watch expression results in an exception
6199         https://bugs.webkit.org/show_bug.cgi?id=102470
6200
6201         Reviewed by Vsevolod Vlasov.
6202
6203         Dim watch expression and show "<not available>" as its value in cases when it evaluates
6204         into an exception.
6205
6206         * English.lproj/localizedStrings.js:
6207         * inspector/front-end/WatchExpressionsSidebarPane.js:
6208         (WebInspector.WatchExpressionTreeElement.prototype.update):
6209         * inspector/front-end/inspector.css:
6210
6211 2012-11-16  Vsevolod Vlasov  <vsevik@chromium.org>
6212
6213         Web Inspector: Rollout 134404 134548 134552 Temporarily rolling out to ease merging.
6214         https://bugs.webkit.org/show_bug.cgi?id=102476
6215
6216         Unreviewed rolling out.
6217
6218         * English.lproj/localizedStrings.js:
6219         * WebCore.gypi:
6220         * WebCore.vcproj/WebCore.vcproj:
6221         * inspector/compile-front-end.py:
6222         * inspector/front-end/AdvancedSearchController.js:
6223         * inspector/front-end/CallStackSidebarPane.js:
6224         (WebInspector.CallStackSidebarPane.prototype.registerShortcuts):
6225         * inspector/front-end/ConsoleView.js:
6226         (WebInspector.ConsoleView.prototype._registerShortcuts):
6227         * inspector/front-end/ElementsPanel.js:
6228         (WebInspector.ElementsPanel):
6229         (WebInspector.ElementsPanel.prototype._registerShortcuts):
6230         * inspector/front-end/ElementsPanelDescriptor.js:
6231         * inspector/front-end/GoToLineDialog.js:
6232         (WebInspector.GoToLineDialog.install):
6233         * inspector/front-end/KeyboardShortcut.js:
6234         (WebInspector.KeyboardShortcut._keyName):
6235         * inspector/front-end/Panel.js:
6236         (WebInspector.Panel.prototype.registerShortcut):
6237         (WebInspector.Panel.prototype.unregisterShortcut):
6238         (WebInspector.PanelDescriptor.prototype.panel):
6239         * inspector/front-end/ScriptsPanel.js:
6240         (WebInspector.ScriptsPanel):
6241         (WebInspector.ScriptsPanel.prototype._createDebugToolbar):
6242         (WebInspector.ScriptsPanel.prototype._createButtonAndRegisterShortcuts):
6243         * inspector/front-end/ScriptsPanelDescriptor.js:
6244         * inspector/front-end/ShortcutsScreen.js:
6245         (WebInspector.ShortcutsScreen):
6246         (WebInspector.ShortcutsSection):
6247         (WebInspector.ShortcutsSection.prototype._renderKey):
6248         * inspector/front-end/StylesSidebarPane.js:
6249         (WebInspector.StylesSidebarPane.prototype.registerShortcuts):
6250         * inspector/front-end/TimelinePanel.js:
6251         (WebInspector.TimelinePanel.prototype._registerShortcuts):
6252         * inspector/front-end/TimelinePanelDescriptor.js: Removed.
6253         * inspector/front-end/WebKit.qrc:
6254         * inspector/front-end/inspector.html:
6255         * inspector/front-end/inspector.js:
6256         (WebInspector._panelDescriptors):
6257         (WebInspector._registerShortcuts):
6258
6259 2012-11-16  Eugene Klyuchnikov  <eustas.bug@gmail.com>
6260
6261         Web Inspector: Memory Timeline Crash
6262         https://bugs.webkit.org/show_bug.cgi?id=102390
6263
6264         Reviewed by Vsevolod Vlasov.
6265
6266         Crash seems to be caused by IPC overflow.
6267         Messages "ParsedScriptSource" are routed to
6268         ResourceScriptMapping.prototype.addScript that process them in time
6269         linear to number of already registered non-anonymous non-inline scripts.
6270
6271         Fixed this with replacing repreated filtering with "on-line" bucketing.
6272
6273         * inspector/front-end/ResourceScriptMapping.js:
6274         (WebInspector.ResourceScriptMapping):
6275         Removed duplicating initialization code.
6276         (WebInspector.ResourceScriptMapping.prototype.addScript):
6277         Added script bucketing by sourceURL/isInline parameters.
6278         (WebInspector.ResourceScriptMapping.prototype._scriptsForSourceURL):
6279         Avoid filterfig.
6280         (WebInspector.ResourceScriptMapping.prototype._createUISourceCode):
6281         Added outgoing muatable array safeguard.
6282         (WebInspector.ResourceScriptMapping.prototype._reset):
6283         Added type information and added two new maps.
6284
6285 2012-11-16  Helder Correia  <helder.correia@nokia.com>
6286
6287         [CoordGfx] Follow coding style on explicit constructors
6288         https://bugs.webkit.org/show_bug.cgi?id=102451
6289
6290         Reviewed by Noam Rosenthal.
6291
6292         Use the explicit keyword on single argument constructors.
6293
6294         No new tests needed.
6295
6296         * platform/graphics/texmap/GraphicsLayerTextureMapper.h:
6297         (GraphicsLayerTextureMapper):
6298         * platform/graphics/texmap/TextureMapper.h:
6299         (TextureMapper):
6300         * platform/graphics/texmap/TextureMapperBackingStore.h:
6301         (WebCore::TextureMapperTile::TextureMapperTile):
6302         * platform/graphics/texmap/TextureMapperGL.cpp:
6303         (WebCore::TextureMapperGLData::SharedGLData::SharedGLData):
6304         (WebCore::TextureMapperGLData::TextureMapperGLData):
6305         * platform/graphics/texmap/TextureMapperGL.h:
6306         (BitmapTextureGL):
6307         * platform/graphics/texmap/TextureMapperShaderManager.h:
6308         (TextureMapperShaderManager):
6309
6310 2012-11-16  Kihong Kwon  <kihong.kwon@samsung.com>
6311
6312         Add DeviceController base-class to remove duplication of DeviceXXXControler
6313         https://bugs.webkit.org/show_bug.cgi?id=96894
6314
6315         Reviewed by Hajime Morita.
6316
6317         Add DeviceController which is extracted from DeviceOrientationController to remove duplication.
6318         And soon-to-be-added DeviceMotionController and ProximityController.
6319
6320         Covered by existing tests.
6321
6322         * CMakeLists.txt:
6323         * GNUmakefile.list.am:
6324         * Target.pri:
6325         * WebCore.gypi:
6326         * WebCore.vcproj/WebCore.vcproj:
6327         * WebCore.xcodeproj/project.pbxproj:
6328         * dom/DeviceOrientationClient.h:
6329         * dom/DeviceOrientationController.cpp:
6330         Remove member functions to move to DeviceController.
6331         - addListener(), removeListener(), removeAllListeners(), isActive()
6332         (WebCore::DeviceOrientationController::DeviceOrientationController):
6333         (WebCore::DeviceOrientationController::didChangeDeviceOrientation):
6334         (WebCore::DeviceOrientationController::client):
6335         (WebCore::DeviceOrientationController::hasLastData):
6336         (WebCore::DeviceOrientationController::getLastEvent):
6337         (WebCore::DeviceOrientationController::from):
6338         (WebCore):
6339         * dom/DeviceOrientationController.h:
6340         (WebCore):
6341         (WebCore::DeviceOrientationController::~DeviceOrientationController):
6342         (DeviceOrientationController):
6343         * dom/Document.cpp:
6344         Remove suspendEventsForAllListeners() and resumeEventsForAllListeners() function calls.
6345         These calls can be made by checking activeDOMObjectsAreSuspended() and activeDOMObjectsAreStopped() before dispatchEvent.
6346         (WebCore::Document::suspendActiveDOMObjects):
6347         (WebCore::Document::resumeActiveDOMObjects):
6348         * loader/EmptyClients.h:
6349         (EmptyDeviceClient):
6350         (WebCore::EmptyDeviceClient::startUpdating):
6351         (WebCore::EmptyDeviceClient::stopUpdating):
6352         (WebCore):
6353         * page/DOMWindow.cpp:
6354         (WebCore::DOMWindow::addEventListener):
6355         (WebCore::DOMWindow::removeEventListener):
6356         (WebCore::DOMWindow::removeAllEventListeners):
6357         * page/DeviceClient.h: Added.
6358         (WebCore):
6359         (DeviceClient):
6360         (WebCore::DeviceClient::~DeviceClient):
6361         * page/DeviceController.cpp: Added.
6362         DeviceController has extracted functions from DeviceOrientationController and DeviceMotionController.
6363         - addDeviceEventListener(), removeDeviceEventlistener(), removeAllDeviceEventListeners(), dispatchDeviceEvent()
6364         All kind of device event controller which has DeviceClient can be inherited from DeviceController.
6365         (WebCore):
6366         (WebCore::DeviceController::DeviceController):
6367         (WebCore::DeviceController::addDeviceEventListener):
6368         (WebCore::DeviceController::removeDeviceEventListener):
6369         (WebCore::DeviceController::removeAllDeviceEventListeners):
6370         (WebCore::DeviceController::dispatchDeviceEvent):
6371         (WebCore::DeviceController::fireDeviceEvent):
6372         * page/DeviceController.h: Added.
6373         (WebCore):
6374         (DeviceController):
6375         (WebCore::DeviceController::~DeviceController):
6376         (WebCore::DeviceController::isActive):
6377         (WebCore::DeviceController::client):
6378         (WebCore::DeviceController::hasLastData):
6379         (WebCore::DeviceController::getLastEvent):
6380
6381 2012-11-16  Alexander Pavlov  <apavlov@chromium.org>
6382
6383         Web Inspector: [Overrides] Device metrics get reset on navigation, yet remain in the Overrides view
6384         https://bugs.webkit.org/show_bug.cgi?id=102467
6385
6386         Reviewed by Pavel Feldman.
6387
6388         Restore the device metrics overrides from the inspector cookie in InspectorPageAgent::restore().
6389         Drive-by: move the script execution and FPS counter display state restoration from enable() into restore(),
6390         so that they will get restored only upon page navigation, not upon any agent enablement.
6391
6392         * inspector/InspectorPageAgent.cpp:
6393         (WebCore::InspectorPageAgent::restore): Restore device metrics overrides, script execution and FPS counter display state.
6394         (WebCore::InspectorPageAgent::enable): Don't restore script execution and FPS counter display state on any enablement.
6395
6396 2012-11-16  Sheriff Bot  <webkit.review.bot@gmail.com>
6397
6398         Unreviewed, rolling out r134908.
6399         http://trac.webkit.org/changeset/134908
6400         https://bugs.webkit.org/show_bug.cgi?id=102473
6401
6402         Broke the Apple Windows Debug build. (Requested by dydx on
6403         #webkit).
6404
6405         * WebCore.exp.in:
6406         * dom/ViewportArguments.cpp:
6407         (WebCore::computeViewportAttributes):
6408         * dom/ViewportArguments.h:
6409         (WebCore):
6410
6411 2012-11-16  Peter Rybin  <prybin@chromium.org>
6412
6413         Web Inspector: show internal properties in inspector frontend
6414         https://bugs.webkit.org/show_bug.cgi?id=100021
6415
6416         Reviewed by Yury Semikhatsky.
6417
6418         New field 'internalProperties' is parsed and passed via all callbacks to Object Properties section.
6419
6420         Test: inspector/debugger/properties-special.html
6421
6422         * inspector/front-end/ObjectPropertiesSection.js:
6423         (WebInspector.ObjectPropertiesSection.prototype.update.callback):
6424         (WebInspector.ObjectPropertiesSection.prototype.update):
6425         (.callback):
6426         (WebInspector.ObjectPropertyTreeElement.populate):
6427         (.processProperties):
6428         (WebInspector.ArrayGroupingTreeElement._populateAsFragment):
6429         (WebInspector.ArrayGroupingTreeElement._populateNonIndexProperties):
6430         * inspector/front-end/RemoteObject.js:
6431         (WebInspector.RemoteObject.prototype.set else):
6432
6433 2012-11-06  Alexander Pavlov  <apavlov@chromium.org>
6434
6435         Web Inspector: metrics, geolocation, orientation overrides do not belong to the settings panel
6436         https://bugs.webkit.org/show_bug.cgi?id=93691
6437
6438         Reviewed by Vsevolod Vlasov.
6439
6440         - The Overrides tab contents have been moved from the Settings dialog into a brand new Overrides drawer view,
6441         both receiving a new, more light-weight design.
6442         - The Cog button now brings up a popup menu with the "Overrides" and "Settings" items.
6443
6444         * WebCore.gypi:
6445         * WebCore.vcproj/WebCore.vcproj:
6446         * inspector/compile-front-end.py:
6447         * inspector/front-end/ContextMenu.js:
6448         (WebInspector.ContextMenu.prototype.showSoftMenu): Display the ContextMenu as a soft menu.
6449         * inspector/front-end/OverridesView.js: Copied from Source/WebCore/inspector/front-end/SettingsScreen.js.
6450         (WebInspector.OverridesView.appendBlockTo):
6451         (WebInspector.OverridesView):
6452         (WebInspector.OverridesView.showInDrawer):
6453         (WebInspector.OverridesView.prototype.get listener):
6454         (WebInspector.OverridesView.prototype._createUserAgentSelectRowElement.get const):
6455         (WebInspector.OverridesView.prototype._createUserAgentSelectRowElement.textDoubleClicked):
6456         (WebInspector.OverridesView.prototype._createUserAgentSelectRowElement.textChanged):
6457         (WebInspector.OverridesView.prototype._createUserAgentSelectRowElement.set checkboxClicked):
6458         (WebInspector.OverridesView.prototype._createUserAgentSelectRowElement):
6459         (WebInspector.OverridesView.prototype._createInput):
6460         (WebInspector.OverridesView.prototype._onMetricsCheckboxClicked):
6461         (WebInspector.OverridesView.prototype._applyDeviceMetricsUserInput):
6462         (WebInspector.OverridesView.prototype.):
6463         (WebInspector.OverridesView.prototype.set if):
6464         (WebInspector.OverridesView.prototype._createDeviceMetricsElement.swapDimensionsClicked):
6465         (WebInspector.OverridesView.prototype._createDeviceMetricsElement):
6466         (WebInspector.OverridesView.prototype._onGeolocationOverrideCheckboxClicked):
6467         (WebInspector.OverridesView.prototype._applyGeolocationUserInput):
6468         (WebInspector.OverridesView.prototype._setGeolocationPosition):
6469         (WebInspector.OverridesView.prototype._createGeolocationOverrideElement):
6470         (WebInspector.OverridesView.prototype._onDeviceOrientationOverrideCheckboxClicked):
6471         (WebInspector.OverridesView.prototype._applyDeviceOrientationUserInput):
6472         (WebInspector.OverridesView.prototype._setDeviceOrientation):
6473         (WebInspector.OverridesView.prototype._createDeviceOrientationOverrideElement):
6474         * inspector/front-end/ScriptsPanel.js:
6475         (WebInspector.ScriptsPanel): Fix the "DOM Breakpoints" pane move upon the panel creation.
6476         * inspector/front-end/SettingsScreen.js:
6477         (WebInspector.SettingsTab):
6478         (WebInspector.SettingsTab.prototype._appendSection):
6479         (WebInspector.GenericSettingsTab):
6480         (WebInspector.ExperimentsSettingsTab):
6481         (WebInspector.SettingsController): Implement the popup menu upon the button click.
6482         (WebInspector.SettingsController.prototype.showOverrides):
6483         (WebInspector.SettingsController.prototype.showSettings):
6484         (WebInspector.SettingsController.prototype.appendApplicableItems):
6485         (WebInspector.SettingsController.prototype._buttonPressed):
6486         (WebInspector.SettingsController.prototype._onHideSettingsScreen):
6487         (WebInspector.SettingsController.prototype.showSettingsScreen):
6488         * inspector/front-end/ShortcutsScreen.js: Add "Shortcuts" header.
6489         (WebInspector.ShortcutsScreen.prototype.createShortcutsTabView):
6490         * inspector/front-end/SoftContextMenu.js: Enable in all cases, implement the alignToCurrentTarget mode in show().
6491         (WebInspector.SoftContextMenu.prototype.show):
6492         * inspector/front-end/TabbedPane.js: Implement vertical tab layout (skipping the tab width computations).
6493         (WebInspector.TabbedPane.prototype.set verticalTabLayout):
6494         (WebInspector.TabbedPane.prototype._updateWidths):
6495         (WebInspector.TabbedPaneTab.prototype.setWidth):
6496         (WebInspector.TabbedPaneTab.prototype._createTabElement):
6497         * inspector/front-end/WebKit.qrc:
6498         * inspector/front-end/helpScreen.css: Update styles for the new Settings and Overrides look-and-feel.
6499         * inspector/front-end/inspector.css: Drive-by fix small artifacts in the soft menu and drawer view statusbar item label.
6500         (.soft-context-menu-item):
6501         (.drawer-header):
6502         * inspector/front-end/inspector.html:
6503
6504 2012-11-16  Sheriff Bot  <webkit.review.bot@gmail.com>
6505
6506         Unreviewed, rolling out r134865.
6507         http://trac.webkit.org/changeset/134865
6508         https://bugs.webkit.org/show_bug.cgi?id=102466
6509
6510         Broke the Apple Windows Debug build. (Requested by dydx on
6511         #webkit).
6512
6513         * WebCore.exp.in:
6514         * bindings/js/SerializedScriptValue.h:
6515         * testing/Internals.cpp:
6516         * testing/Internals.h:
6517         (WebCore):
6518         * testing/Internals.idl:
6519
6520 2012-11-16  Takashi Sakamoto  <tasak@google.com>
6521
6522         ASSERT_NOT_REACHED() when building a CSSOM wrapper for StyleRuleHost
6523         https://bugs.webkit.org/show_bug.cgi?id=102116
6524
6525         Reviewed by Alexander Pavlov.
6526
6527         Provide a CSSUnknownRule instance as a CSSOM wrapper for StyleRuleHost
6528         rules. Since there is no CSSOM wrapper for @host @-rules and
6529         ASSERT_NOT_REACHED is used when a CSSOM wrapper is requested,
6530         this crash occurs.
6531
6532         Tests: fast/css/at-host-cssom-crash.html
6533                inspector/styles/styles-include-host-rules-crash.html
6534
6535         * css/StyleRule.cpp:
6536         (WebCore::StyleRuleBase::createCSSOMWrapper):
6537         Return a CSSUnknownRule instance for StyleRuleHost rules instead of
6538         calling ASSERT_NOT_REACHED().
6539
6540 2012-11-16  Mikhail Pozdnyakov  <mikhail.pozdnyakov@intel.com>
6541
6542         Avoid copying of ViewportArguments in computeViewportAttributes function
6543         https://bugs.webkit.org/show_bug.cgi?id=102354
6544
6545         Reviewed by Kenneth Rohde Christiansen.
6546
6547         Since r134749 we do not need copying of ViewportArguments parameter in
6548         computeViewportAttributes() as it is not modified any more.
6549
6550         Tested by existing tests fast/viewport.
6551
6552         * WebCore.exp.in: Updated exported symbols for MAC.
6553         * dom/ViewportArguments.cpp:
6554         (WebCore::computeViewportAttributes):
6555         * dom/ViewportArguments.h:
6556         (WebCore):
6557
6558 2012-11-15  Yury Semikhatsky  <yurys@chromium.org>
6559
6560         Memory instrumentation: add code for reporting stack traces of unknown instrumented objects
6561         https://bugs.webkit.org/show_bug.cgi?id=102384
6562
6563         Reviewed by Pavel Feldman.
6564
6565         * inspector/InspectorMemoryAgent.cpp:
6566         (WebCore::MemoryInstrumentationClientImpl::checkCountedObject): return false
6567         if the check fails.
6568         * inspector/MemoryInstrumentationImpl.h:
6569         (MemoryInstrumentationClientImpl):
6570
6571 2012-11-15  Jer Noble  <jer.noble@apple.com>
6572
6573         Crash at WebCore::PluginData::pluginFileForMimeType const + 38
6574         https://bugs.webkit.org/show_bug.cgi?id=102454
6575
6576         Reviewed by Dan Bernstein.
6577
6578         NULL-check the return value of Page::pluginData().
6579
6580         * loader/SubframeLoader.cpp:
6581         (WebCore::logPluginRequest):
6582
6583 2012-11-15  Kenichi Ishibashi  <bashi@chromium.org>
6584
6585         [Chromium] Unreviewed build fix attempt on win
6586
6587         Include OpenTypeVerticalData.h
6588
6589         * platform/graphics/chromium/FontPlatformDataChromiumWin.h:
6590         (WebCore):
6591
6592 2012-11-15  Kentaro Hara  <haraken@chromium.org>
6593
6594         Unreviewed, rolling out r134881.
6595         http://trac.webkit.org/changeset/134881
6596         https://bugs.webkit.org/show_bug.cgi?id=102348
6597
6598         http/tests/appcache tests on JSC platforms are broken
6599
6600         * bindings/scripts/CodeGenerator.pm:
6601         (IsStrictSubtype):
6602         * bindings/scripts/CodeGeneratorJS.pm:
6603         (GenerateImplementation):
6604         * bindings/scripts/CodeGeneratorV8.pm:
6605         (GenerateHeader):
6606         (GetInternalFields):
6607         (IsSubType):
6608         (IsNodeSubType):
6609         (GenerateNormalAttrGetter):
6610         (GenerateNormalAttrSetter):
6611         (GenerateFunctionCallback):
6612         (GenerateImplementationIndexer):
6613         (GenerateToV8Converters):
6614
6615 2012-11-15  Viatcheslav Ostapenko  <v.ostapenko@samsung.com>
6616
6617         [TexMap][Cairo][Qt] Refactor BitmapTextureGL::updateContents().
6618         https://bugs.webkit.org/show_bug.cgi?id=102420
6619
6620         Reviewed by Gyuyoung Kim.
6621
6622         Moved out texture upload without swizzle to the separate method and changed
6623         drawRepaintCounter to use no-swizzle method. This also fixes blue background
6624         of repaint counters in Qt Minibrowser.
6625         Added condition for sub-image buffer creation to not create it if full image is
6626         uploaded. This should give noticeable improvement for platforms that do not
6627         support sub-image upload to texture.
6628
6629         Covered by existing tests.
6630
6631         * platform/graphics/texmap/TextureMapperGL.cpp:
6632         (WebCore::TextureMapperGL::drawRepaintCounter):
6633         (WebCore::BitmapTextureGL::updateContentsNoSwizzle):
6634         (WebCore):
6635         (WebCore::BitmapTextureGL::updateContents):
6636         * platform/graphics/texmap/TextureMapperGL.h:
6637         (BitmapTextureGL):
6638
6639 2012-11-15  Kent Tamura  <tkent@chromium.org>
6640
6641         A Spin button should release mouse event capturing when a modal dialog opens
6642         https://bugs.webkit.org/show_bug.cgi?id=98007
6643
6644         Reviewed by Hajime Morita.
6645
6646         Description of bug:
6647         If the mouse left button is pressed on a spin button in
6648         input[type=number] and a 'change' event handler opens a modal dialog
6649         such as alert(), a repeating timer doesn't stop and mouse event
6650         capturing isn't released even though the mouse pointer isn't on the spin
6651         button.
6652         A user will see repeating alert dialogs for a document like <input
6653         type=number value=1 onchange="if (this.value==1) {alert(...);
6654         this.value=1;}"> by clicking the up button.
6655
6656         How to solve:
6657         We should notify modal dialog or popup open to a spin button.
6658         This patch introduce PopupOpeningObserver. Chrome notifies it when
6659         any dialogs / popups is opening. SpinButtonElement implements
6660         PopupOpeningObserver and registers/unregisters itself to/from
6661         Chrome.
6662
6663         No new tests. This is a behavior change, but it's very hard to make an
6664         automated test for timer-related behavior.
6665
6666         * page/PopupOpeningObserver.h: Added.
6667         * GNUmakefile.list.am: Add PopupOpeningObserver.h
6668         * Target.pri: Ditto.
6669         * WebCore.gypi: Ditto.
6670         * WebCore.vcproj/WebCore.vcproj: Ditto.
6671         * WebCore.xcodeproj/project.pbxproj: Ditto.
6672
6673         * page/Chrome.cpp:
6674         (WebCore::Chrome::runJavaScriptAlert): Calls notifyPopupOpeningObservers.
6675         (WebCore::Chrome::runJavaScriptConfirm): Ditto.
6676         (WebCore::Chrome::runJavaScriptPrompt): Ditto.
6677         (WebCore::Chrome::createColorChooser): Ditto.
6678         (WebCore::Chrome::openDateTimeChooser):
6679         Added. Calls notifyPopupOpeningObservers before calling
6680         ChromeClient::openDateTimeChooser.
6681         (WebCore::Chrome::runOpenPanel): Calls notifyPopupOpeningObservers.
6682         (WebCore::Chrome::createPopupMenu): Ditto.
6683         (WebCore::Chrome::createSearchPopupMenu): Ditto.
6684         (WebCore::Chrome::registerPopupOpeningObserver): Added.
6685         (WebCore::Chrome::unregisterPopupOpeningObserver): Added.
6686         (WebCore::Chrome::notifyPopupOpeningObservers): Added.
6687         * page/Chrome.h: Added new members and required class/struct declarations.
6688
6689         * html/BaseChooserOnlyDateAndTimeInputType.cpp:
6690         (WebCore::BaseChooserOnlyDateAndTimeInputType::handleDOMActivateEvent):
6691         Use Chrome::openDateTimeChooser instead of ChromeClient::openDateTimeChooser.
6692         * html/shadow/PickerIndicatorElement.cpp:
6693         (WebCore::PickerIndicatorElement::openPopup): Ditto.
6694
6695         * html/shadow/SpinButtonElement.h:
6696         (SpinButtonElement): Declare willOpenPopup.
6697         * html/shadow/SpinButtonElement.cpp:
6698         (WebCore::SpinButtonElement::defaultEventHandler):
6699         Change the order of timer start and changing the value so that we
6700         can cancel the timer correctly.
6701         Calls Chrome::registerPopupOpeningObserver on starting mouse capturing.
6702         (WebCore::SpinButtonElement::willOpenPopup):
6703         Release mouse event capturing before opening a modal dialog.
6704         (WebCore::SpinButtonElement::releaseCapture):
6705         Calls Chrome::unregisterPopupOpeningObserver.
6706
6707
6708 2012-11-15  Shinya Kawanaka  <shinyak@chromium.org>
6709
6710         Chaging pseudoClass (:enabled) should cause distribution
6711         https://bugs.webkit.org/show_bug.cgi?id=101900
6712
6713         Reviewed by Dimitri Glazkov.
6714
6715         When element's 'enabled' state is changed, we have to invalidate distribution.
6716
6717         According to the spec, :enabled matches anchor/area/link element having href attribute,
6718         and several form control elements which is not disabled. However, currently :enalbed does not match
6719         anchor/area/link yet. See https://bugs.webkit.org/show_bug.cgi?id=102349
6720
6721         Tests: fast/dom/shadow/pseudoclass-update-enabled-anchor.html
6722                fast/dom/shadow/pseudoclass-update-enabled-area.html
6723                fast/dom/shadow/pseudoclass-update-enabled-button.html
6724                fast/dom/shadow/pseudoclass-update-enabled-fieldset.html
6725                fast/dom/shadow/pseudoclass-update-enabled-input.html
6726                fast/dom/shadow/pseudoclass-update-enabled-optgroup.html
6727                fast/dom/shadow/pseudoclass-update-enabled-option.html
6728                fast/dom/shadow/pseudoclass-update-enabled-select.html
6729                fast/dom/shadow/pseudoclass-update-enabled-textarea.html
6730
6731         * html/HTMLAnchorElement.cpp:
6732         (WebCore::HTMLAnchorElement::parseAttribute):
6733         * html/HTMLFormControlElement.cpp:
6734         (WebCore::HTMLFormControlElement::disabledAttributeChanged):
6735         * html/HTMLOptGroupElement.cpp:
6736         (WebCore::HTMLOptGroupElement::parseAttribute):
6737         * html/HTMLOptionElement.cpp:
6738         (WebCore::HTMLOptionElement::parseAttribute):
6739
6740 2012-11-15  Erik Arvidsson  <arv@chromium.org>
6741
6742         Update DOMException name: ValidationError
6743         https://bugs.webkit.org/show_bug.cgi?id=102416
6744
6745         Reviewed by Kentaro Hara.
6746
6747         Patch 16 of 25 to update DOMException name to match the spec and Firefox.
6748
6749         VALIDATION_ERR is historical and not used in any spec or our code.
6750
6751         * dom/DOMCoreException.cpp:
6752         * dom/ExceptionCode.h:
6753
6754 2012-11-15  Kentaro Hara  <haraken@chromium.org>
6755
6756         [V8] Remove IsSubType() from CodeGeneratorV8.pm
6757         https://bugs.webkit.org/show_bug.cgi?id=102348
6758
6759         Reviewed by Adam Barth.
6760
6761         CodeGenerator.pm has IsStrictSubType(). CodeGeneratorV8.pm should use it.
6762
6763         No tests. No change in behavior.
6764
6765         * bindings/scripts/CodeGenerator.pm:
6766         (IsSubType):
6767         * bindings/scripts/CodeGeneratorJS.pm:
6768         (GenerateImplementation):
6769         * bindings/scripts/CodeGeneratorV8.pm:
6770         (GenerateHeader):
6771         (GetInternalFields):
6772         (GenerateNormalAttrGetter):
6773         (GenerateNormalAttrSetter):
6774         (GenerateFunctionCallback):
6775         (GenerateImplementationIndexer):
6776         (GenerateToV8Converters):
6777
6778 2012-11-15  Erik Arvidsson  <arv@chromium.org>
6779
6780         Update DOMException name: NamespaceError
6781         https://bugs.webkit.org/show_bug.cgi?id=102395
6782
6783         Reviewed by Kentaro Hara.
6784
6785         Patch 14 of 25 to update DOMException name to match the spec and Firefox.
6786
6787         Updated existing tests.
6788
6789         * dom/DOMCoreException.cpp:
6790
6791 2012-11-15  Tien-Ren Chen  <trchen@chromium.org>
6792
6793         Add Settings to disable custom scrollbars on main frame
6794         https://bugs.webkit.org/show_bug.cgi?id=102323
6795
6796         Reviewed by Adam Barth.
6797
6798         Custom scrollbars on main frame don't really work well on touch devices.
6799         Add a setting to inhibit their creation.
6800
6801         No new tests. No change in default layout behavior.
6802
6803         * page/FrameView.cpp:
6804         (WebCore::FrameView::createScrollbar):
6805         * page/Settings.in:
6806
6807 2012-11-15  Rick Byers  <rbyers@chromium.org>
6808
6809         custom CSS cursors ignore hotspot values embedded in CUR files
6810         https://bugs.webkit.org/show_bug.cgi?id=100059
6811
6812         Reviewed by Kenneth Russell.
6813
6814         Add reading the hotspot values to the ICOImageDecoder (for CUR files only),
6815         and plumb it through so that the existing calls to ImageSource::getHotSpot
6816         actually return the hot spot value when there is one.
6817
6818         Tests: fast/events/mouse-cursor.html, fast/events/mouse-cursor-multiframecur.html
6819
6820         * platform/graphics/ImageSource.cpp:
6821         (WebCore::ImageSource::getHotSpot):
6822         * platform/graphics/chromium/DeferredImageDecoder.cpp:
6823         (WebCore::DeferredImageDecoder::hotSpot):
6824         (WebCore::DeferredImageDecoder::hotSpotAtIndex):
6825         * platform/graphics/chromium/DeferredImageDecoder.h:
6826         (DeferredImageDecoder):
6827         * platform/image-decoders/ImageDecoder.h:
6828         (WebCore::ImageDecoder::hotSpot):
6829         (WebCore::ImageDecoder::hotSpotAtIndex):
6830         (ImageDecoder):
6831         * platform/image-decoders/ico/ICOImageDecoder.cpp:
6832         (WebCore::ICOImageDecoder::hotSpot):
6833         (WebCore::ICOImageDecoder::hotSpotAtIndex):
6834         (WebCore::ICOImageDecoder::processDirectory):
6835         (WebCore::ICOImageDecoder::readDirectoryEntry):
6836         * platform/image-decoders/ico/ICOImageDecoder.h:
6837         (ICOImageDecoder):
6838         (IconDirectoryEntry):
6839
6840 2012-11-15  Kenichi Ishibashi  <bashi@chromium.org>
6841
6842         Make OpenTypeVerticalData be ref-counted
6843         https://bugs.webkit.org/show_bug.cgi?id=101971
6844
6845         Reviewed by Tony Chang.
6846
6847         FontCache::purgeInactiveFontData() uses mark & sweep algorithm to remove unused
6848         OpenTypeVerticalData objects. It marks only OpenTypeVerticalData which can be reached
6849         via SimpleFontData in gFontDataCache. However, OpenTypeVerticalData can be referred by
6850         SimpleFontData which resides in CSSFontFaceSource::m_fontDataTable so the algorithm can
6851         delete active OpenTypeVerticalData. To avoid deleting active OpenTypeVerticalData, make
6852         it be ref-counted.
6853
6854         No new tests. No changes in behavior. Checked manually that the use-after-free was fixed.
6855
6856         * platform/graphics/FontCache.cpp:
6857         (WebCore): Use RefPtr instead of OwnPtr for FontVerticalDataCache.
6858         (WebCore::FontCache::getVerticalData): Return PassRefPtr<OpenTypeVerticalData>.
6859         (WebCore::FontCache::purgeInactiveFontData): Follow the change of OwnPtr -> RefPtr.
6860         * platform/graphics/FontCache.h:
6861         * platform/graphics/SimpleFontData.cpp:
6862         (WebCore::SimpleFontData::SimpleFontData):
6863         * platform/graphics/SimpleFontData.h:
6864         Use RefPtr instead of raw const pointer for OpenTypeVerticalData.
6865         (WebCore::SimpleFontData::verticalData):
6866         * platform/graphics/chromium/FontPlatformDataChromiumWin.cpp:
6867         (WebCore::FontPlatformData::verticalData): Return PassRefPtr<OpenTypeVerticalData>.
6868         * platform/graphics/chromium/FontPlatformDataChromiumWin.h:
6869         (FontPlatformData):
6870         * platform/graphics/harfbuzz/FontPlatformDataHarfBuzz.cpp:
6871         (WebCore::FontPlatformData::verticalData): Ditto.
6872         * platform/graphics/harfbuzz/FontPlatformDataHarfBuzz.h:
6873         (WebCore):
6874         (FontPlatformData):
6875         * platform/graphics/opentype/OpenTypeVerticalData.h:
6876         (WebCore::OpenTypeVerticalData::create): Added.
6877         (OpenTypeVerticalData):
6878
6879 2012-11-15  Xingnan Wang  <xingnan.wang@intel.com>
6880
6881         Optimize the multiply-add in Biquad.cpp::process
6882         https://bugs.webkit.org/show_bug.cgi?id=75528
6883
6884         Reviewed by Brent Fulgham.
6885
6886         Pipeline the multiply-add with SSE2 intrinsics.
6887         Get ~45% performance improvement for the function.
6888
6889         * platform/audio/Biquad.cpp:
6890         (WebCore::Biquad::process):
6891
6892 2012-11-15  Alec Flett  <alecflett@chromium.org>
6893
6894         Add tests for explicit serialization values
6895         https://bugs.webkit.org/show_bug.cgi?id=96818
6896
6897         Reviewed by Adam Barth.
6898
6899         Expose direct access to the serialization/deserialization mechanisms
6900         of SerializedScriptValue to DumpRenderTree.
6901
6902         * testing/Internals.cpp:
6903         (WebCore::Internals::serializeObject):
6904         (WebCore):
6905         (WebCore::Internals::deserializeBuffer):
6906         * testing/Internals.h:
6907         (WebCore):
6908         * testing/Internals.idl:
6909
6910 2012-11-15  Gustavo Noronha Silva  <gns@gnome.org>
6911
6912         [GTK] Split WebCore/platform into a separate library
6913         https://bugs.webkit.org/show_bug.cgi?id=94435
6914
6915         Reviewed by Martin Robinson.
6916
6917         More people have been reporting problems when linking WebCore because
6918         the command line limit is being exceeded. Splitting WebCore a bit more
6919         is in order.
6920
6921         * GNUmakefile.am: add new libWebCorePlatform convenience library.
6922         * GNUmakefile.list.am: move list of platform/* files to its own variable.
6923
6924 2012-11-15  Luke Macpherson   <macpherson@chromium.org>
6925
6926         Remove unused macro HANDLE_INHERIT_AND_INITIAL_WITH_VALUE in StyleResolver.cpp
6927         https://bugs.webkit.org/show_bug.cgi?id=102036
6928
6929         Reviewed by Darin Adler.
6930
6931         Remove HANDLE_INHERIT_AND_INITIAL_WITH_VALUE macro, as it is not used anywhere.
6932
6933         No tests added because code is unused, and compile is enough to verify that conculsively.
6934
6935         * css/StyleResolver.cpp:
6936
6937 2012-11-15  Erik Arvidsson  <arv@chromium.org>
6938
6939         Update DOMException name: SyntaxError
6940         https://bugs.webkit.org/show_bug.cgi?id=102279
6941
6942         Reviewed by Kentaro Hara.
6943
6944         Patch 12 of 25 to update DOMException name to match the spec and Firefox.
6945
6946         Updated existing tests.
6947
6948         * dom/DOMCoreException.cpp:
6949
6950 2012-11-15  Takashi Sakamoto  <tasak@google.com>
6951
6952         [Win] key event's location does not work on Windows platform.
6953         https://bugs.webkit.org/show_bug.cgi?id=89742
6954
6955         Reviewed by Brent Fulgham.
6956
6957         As WM_KEYDOWN, WM_KEYUP, WM_SYSKEYDOWN, and WM_SYSKEYUP doesn't
6958         directly provide a virtual keycode which distinguish between left-hand
6959         and right-hand keys. To obtain a virtual keycode, we have to look at
6960         lparam, i.e. scancode and extended key bit. So if the given virtual
6961         keycode is control, shift, or menu, use MapVirtualKey with scancode and
6962         extended key bit and recreate a virtual keycode which distinguishes
6963         between left-hand and right-hand.
6964
6965         No new tests, because left-hand keys, right-hand keys layout tests
6966         have been already added.
6967
6968         * platform/win/KeyEventWin.cpp:
6969         (WebCore::windowsKeycodeWithLocation):
6970         Use wparam and lparam to recreate a virtual keycode which distinguishes
6971         between left-hand and right-hand if the given wparam (=virtual keycode)
6972         is control, shift, or menu.
6973         (WebCore):
6974         (WebCore::PlatformKeyboardEvent::PlatformKeyboardEvent):
6975         Use the newly added function to obtain windows virtual keycode.
6976
6977 2012-11-15  Joe Mason  <jmason@rim.com>
6978
6979         [BlackBerry] Don't assert when notifyAuthReceived is called with a different auth type
6980         https://bugs.webkit.org/show_bug.cgi?id=102436
6981
6982         Reviewed by Rob Buis.
6983
6984         The server type could change if we contact a site taking HTTP auth, through an HTTP proxy
6985         taking auth of its own. First we get a 407 from the proxy, and then when get past the
6986         proxy, we get a 401 from the end site - so notifyAuthReceived gets called again with auth
6987         type Proxy instead of HTTP.
6988
6989         The correct thing to do when that happens is skip the "update the auth type in the
6990         credentials" step, since these are actually new credentials and not just credentials being
6991         reused for a different auth type on the same server.
6992
6993         PR 241637
6994
6995         * platform/network/blackberry/NetworkJob.cpp:
6996         (WebCore::NetworkJob::notifyAuthReceived):
6997
6998 2012-11-15  Stephen Chenney  <schenney@chromium.org>
6999
7000         mpath elements do not clear resource lists before destruction
7001         https://bugs.webkit.org/show_bug.cgi?id=101505
7002
7003         Reviewed by Abhishek Arya.
7004
7005         The destructor for SVGMPathElement should clear its resources before
7006         deletion, so as not to leave hanging pointers in resource lists.
7007
7008         Test: svg/animations/mpath-remove-from-dependents-on-delete-crash.html
7009
7010         * svg/SVGMPathElement.cpp:
7011         (WebCore::SVGMPathElement::~SVGMPathElement): Add destructor that calls clearResourceReferences.
7012         (WebCore):
7013         * svg/SVGMPathElement.h:
7014         (SVGMPathElement): Add destructor.
7015
7016 2012-11-15  Kentaro Hara  <haraken@chromium.org>
7017
7018         Remove CodeGenerator::StripModule
7019         https://bugs.webkit.org/show_bug.cgi?id=102338
7020
7021         Reviewed by Adam Barth.
7022
7023         Now WebKit IDL files have no modules. (The Web IDL spec has no modules.)
7024         We can remove CodeGenerator::StripModule.
7025         This might break some internal builds if the internal builds are still
7026         using modules. Ping haraken@ you observe it.
7027
7028         No tests. No change in behavior.
7029
7030         * bindings/scripts/CodeGenerator.pm:
7031         (ForAllParents):
7032         (AttributeNameForGetterAndSetter):
7033         (IsStrictSubtype):
7034         * bindings/scripts/CodeGeneratorCPP.pm:
7035         (GetClassName):
7036         (GetImplClassName):
7037         (GetParentImplClassName):
7038         (GetParent):
7039         (ConversionNeeded):
7040         (GetCPPTypeGetter):
7041         (AddForwardDeclarationsForType):
7042         (AddIncludesForType):
7043         (GenerateImplementation):
7044         * bindings/scripts/CodeGeneratorGObject.pm:
7045         (GetParentClassName):
7046         (GetParentGObjType):
7047         (GetClassName):
7048         * bindings/scripts/CodeGeneratorJS.pm:
7049         (GetParentClassName):
7050         (AddIncludesForTypeInImpl):
7051         (AddIncludesForTypeInHeader):
7052         (GenerateParametersCheckExpression):
7053         (GenerateImplementation):
7054         (GenerateParametersCheck):
7055         (GetNativeTypeFromSignature):
7056         (JSValueToNative):
7057         (NativeToJSValue):
7058         * bindings/scripts/CodeGeneratorObjC.pm:
7059         (GetClassName):
7060         (GetImplClassName):
7061         (GetParentImplClassName):
7062         (GetParentAndProtocols):
7063         (GetPropertyAttributes):
7064         (ConversionNeeded):
7065         (GetObjCTypeGetter):
7066         (AddForwardDeclarationsForType):
7067         (AddIncludesForType):
7068         (GenerateImplementation):
7069         * bindings/scripts/CodeGeneratorV8.pm:
7070         (AddIncludesForType):
7071         (GenerateHeader):
7072         (IsSubType):
7073         (GenerateSingleBatchedAttribute):
7074         (GenerateImplementation):
7075         (BaseInterfaceName):
7076         (GetTypeFromSignature):
7077         (IsWrapperType):
7078
7079 2012-11-15  Luke Macpherson   <macpherson@chromium.org>
7080
7081         Make assumptions about m_parentStyle consistent within StyleResolver::applyProperty()
7082         https://bugs.webkit.org/show_bug.cgi?id=101696
7083
7084         Reviewed by Tony Chang.
7085
7086         Most of the code in StyleResolver::applyProperty assumes that isInherit implies that m_parentStyle is available.
7087         This patch ASSERTs that this assumption is correct, and removes the few existing checks to maintain consistency.
7088
7089         No new tests / covered by all existing CSS tests.
7090
7091         * css/StyleResolver.cpp:
7092         (WebCore::StyleResolver::applyProperty):
7093
7094 2012-11-15  Kentaro Hara  <haraken@chromium.org>
7095
7096         [V8] Remove redundant $interfaceName from function parameters
7097         https://bugs.webkit.org/show_bug.cgi?id=102334
7098
7099         Reviewed by Adam Barth.
7100
7101         'sub func { my $dataNode = shift; my $interfaceName = shift; }'
7102         is redundant. We can get $interfaceName by $dataNode->name.
7103
7104         No tests. No change in behavior.
7105
7106         * bindings/scripts/CodeGeneratorV8.pm:
7107         (GenerateOpaqueRootForGC):
7108         (GenerateHeader):
7109         (GenerateConstructorGetter):
7110         (GenerateNormalAttrGetter):
7111         (GenerateReplaceableAttrSetter):
7112         (GenerateNormalAttrSetter):
7113         (GenerateOverloadedFunctionCallback):
7114         (GenerateFunctionCallback):
7115         (GenerateOverloadedConstructorCallback):
7116         (GenerateSingleConstructorCallback):
7117         (GenerateConstructorCallback):
7118         (GenerateEventConstructorCallback):
7119         (GenerateTypedArrayConstructorCallback):
7120         (GenerateNamedConstructorCallback):
7121         (GenerateBatchedAttributeData):
7122         (GenerateImplementation):
7123         (GenerateToV8Converters):
7124         (GetNativeTypeForConversions):
7125
7126 2012-11-15  Simon Fraser  <simon.fraser@apple.com>
7127
7128         Ensure that scrollbar layers show debug borders
7129         https://bugs.webkit.org/show_bug.cgi?id=102429
7130
7131         Reviewed by Anders Carlsson.
7132
7133         After r133517, scrollbar layers no longer showed debug borders, which
7134         was very confusing. Fix this by explicitly calling setShowDebugBorder()
7135         on the scrollbar-related layers owned by RenderLayerCompositor
7136         and RenderLayerBacking.
7137         
7138         * rendering/RenderLayerBacking.cpp:
7139         (WebCore::RenderLayerBacking::updateDebugIndicators):
7140         * rendering/RenderLayerCompositor.cpp:
7141         (WebCore::RenderLayerCompositor::cacheAcceleratedCompositingFlags):
7142         (WebCore::RenderLayerCompositor::updateOverflowControlsLayers):
7143
7144 2012-11-15  Andreas Kling  <akling@apple.com>
7145
7146         ASSERTION FAILED: fastAttributeLookupAllowed(name) for 7 layout tests
7147         <http://webkit.org/b/102423>
7148
7149         Reviewed by Anders Carlsson.
7150
7151         Use Element::getAttributeItem() to find out if the element has a given attribute
7152         instead of fastHasAttribute() since that causes assertions for the "style" attribute.
7153
7154         * html/parser/HTMLConstructionSite.cpp:
7155         (WebCore::HTMLConstructionSite::mergeAttributesFromTokenIntoElement):
7156
7157 2012-11-15  Erik Arvidsson  <arv@chromium.org>
7158
7159         Update DOMException name: DOMStringSizeError
7160         https://bugs.webkit.org/show_bug.cgi?id=102089
7161
7162         Reviewed by Ojan Vafai.
7163
7164         Patch 2 of 25 to update DOMException name to match the spec and Firefox.
7165
7166         DOMSTRING_SIZE_ERR is historical and not used in any spec or in our code.
7167
7168         * dom/DOMCoreException.cpp:
7169         * dom/ExceptionCode.h:
7170
7171 2012-11-15  Joshua Bell  <jsbell@chromium.org>
7172
7173         IndexedDB: Indexing tests are flaky-crashing
7174         https://bugs.webkit.org/show_bug.cgi?id=102283
7175
7176         Reviewed by Tony Chang.
7177
7178         Processing the final task can cause IDBTransactionBackendImpl references to be released
7179         by all holders. Prior to looping over the tasks (or, in an even earlier implementation,
7180         swapping queues) control would fall off the end of the function. The loop termination
7181         check introduced in http://wkrev.com/134529 requires that |this| be kept alive until
7182         the method completes.
7183
7184         Test: storage/indexeddb/transaction-crash-in-tasks.html
7185
7186         * Modules/indexeddb/IDBTransactionBackendImpl.cpp:
7187         (WebCore::IDBTransactionBackendImpl::abort): Rename self => protect.
7188         (WebCore::IDBTransactionBackendImpl::commit): Rename self => protect.
7189         (WebCore::IDBTransactionBackendImpl::taskTimerFired): New self-ref.
7190
7191 2012-11-15  Elliott Sprehn  <esprehn@chromium.org>
7192
7193         MutationObserver wrapper should not be collected while still observing
7194         https://bugs.webkit.org/show_bug.cgi?id=102328
7195
7196         Reviewed by Adam Barth.
7197
7198         Make MutationObserver an ActiveDOMObject so that the wrapper is not
7199         collected while it is still observing the DOM. This is needed because
7200         the wrapper is passed into the callback and expandos on the wrapper
7201         should be preserved.
7202
7203         Test: fast/mutation/observer-wrapper-dropoff.html
7204
7205         * bindings/js/JSMutationObserverCustom.cpp:
7206         (WebCore::JSMutationObserverConstructor::constructJSMutationObserver):
7207         * bindings/v8/custom/V8MutationObserverCustom.cpp:
7208         (WebCore::V8MutationObserver::constructorCallback):
7209         * dom/MutationObserver.cpp:
7210         (WebCore::MutationObserver::create):
7211         (WebCore::MutationObserver::MutationObserver):
7212         (WebCore::MutationObserver::observationStarted):
7213         (WebCore::MutationObserver::observationEnded):
7214         * dom/MutationObserver.h:
7215         (WebCore):
7216         * dom/MutationObserver.idl:
7217
7218 2012-11-15  Tony Chang  <tony@chromium.org>
7219
7220         Generate Settings from a .in file
7221         https://bugs.webkit.org/show_bug.cgi?id=100393
7222
7223         Reviewed by Adam Barth.
7224
7225         Generate most settings from an .in file to reduce human mistakes and
7226         to make it easier to add/remove new settings.
7227
7228         I only moved settings that are easy to move at this point.  There are many more that
7229         have some minor naming inconsistencies that we can also move to Settings.in, but I'll
7230         do that in a follow up patch.
7231
7232         This doesn't generate SettingInternals.* yet-- we can do that in a follow up patch.
7233
7234         No new tests, this is a refactor.
7235
7236         * CMakeLists.txt:
7237         * DerivedSources.make: Run make_settings.pl.
7238         * DerivedSources.pri: Run make_settings.pl.
7239         * GNUmakefile.am: Run make_settings.pl.
7240         * GNUmakefile.list.am:
7241         * WebCore.exp.in: Remove functions that are now inline in the header.
7242         * WebCore.gyp/WebCore.gyp: Run action_makenames.py, which will run make_settings.pl.
7243         * WebCore.gyp/scripts/action_makenames.py:
7244         (main): Allow make_settings.pl.
7245         * WebCore.order: Remove functions that are now inline in the header.
7246         * html/ValidationMessage.cpp:
7247         (WebCore::ValidationMessage::setMessageDOMAndStartTimer): Fix a typo in "magnification".
7248         * page/Settings.cpp:
7249         (WebCore::Settings::Settings): Replace generated settings with SETTINGS_INITIALIZER_LIST.
7250         * page/Settings.h:
7251         (Settings): Replace generated settings with SETTINGS_GETTERS_AND_SETTERS and SETTINGS_MEMBER_VARIABLES.
7252         * page/Settings.in: Added.
7253         * page/make_settings.pl: Added.
7254         (defaultItemFactory):
7255         (generateCode):
7256         (generateHeader): Use a similar model as make_names.pl.
7257         (printConditionalMacros):
7258         (printGettersAndSetters):
7259         (printMemberVariables):
7260         (printGetterAndSetter):
7261         (printInitializerList):
7262         (printInitializer):
7263
7264 2012-11-15  Alpha Lam  <hclam@chromium.org>
7265
7266         [chromium] Refactoring to move logic of creating lazy decoded SkBitmap into DeferredImageDecoder
7267         https://bugs.webkit.org/show_bug.cgi?id=102019
7268
7269         Reviewed by Stephen White.
7270
7271         Goal of this change is to keep ImageDecodingStore clean and only do
7272         image caching. Logic of creating lazily decoded SkBitmaps is moved into
7273         DeferredImageDecoder.
7274
7275         In particular these two methods are moved:
7276         - ImageDecodingStore::createLazyDecodedSkBitmap
7277         - ImageDecodingStore::resizeLazyDecodedSkBitmap
7278
7279         No new tests. There is no new code (really). It is just moved from
7280         ImageDecodingStore to DeferredImageDecoder.
7281
7282         No change in behavior. Code is tested with:
7283         Unit tests: webkit_unit_tests
7284         Layout test: platform/chromium/virtual/deferred
7285
7286         * platform/graphics/chromium/DeferredImageDecoder.cpp:
7287         (WebCore::DeferredImageDecoder::isLazyDecoded):
7288         (WebCore):
7289         (WebCore::DeferredImageDecoder::resizeLazyDecodedSkBitmap):
7290         (WebCore::DeferredImageDecoder::frameBufferAtIndex):
7291         (WebCore::DeferredImageDecoder::setData):
7292         (WebCore::DeferredImageDecoder::createLazyDecodedSkBitmap):
7293         * platform/graphics/chromium/DeferredImageDecoder.h:
7294         (WebCore):
7295         (DeferredImageDecoder):
7296         * platform/graphics/chromium/ImageDecodingStore.cpp:
7297         * platform/graphics/chromium/ImageDecodingStore.h:
7298         (ImageDecodingStore):
7299         * platform/graphics/chromium/ImageFrameGenerator.cpp:
7300         (WebCore::ImageFrameGenerator::ImageFrameGenerator):
7301         * platform/graphics/chromium/ImageFrameGenerator.h:
7302         (WebCore::ImageFrameGenerator::create):
7303         (ImageFrameGenerator):
7304         * platform/graphics/skia/NativeImageSkia.cpp:
7305         (WebCore::NativeImageSkia::resizedBitmap):
7306
7307 2012-11-15  Roger Fong  <roger_fong@apple.com>
7308
7309         Unreviewed. Build fix for Windows after r134767.
7310
7311         Update vsprops and vcproj files to reflect changes to file locations in r134767.
7312
7313         * WebCore.vcproj/WebCore.vcproj:
7314         * WebCore.vcproj/WebCoreCommon.vsprops:
7315
7316 2012-11-15  Elliott Sprehn  <esprehn@chromium.org>
7317
7318         Track subframe count to avoid traversing the tree when there's no subframes
7319         https://bugs.webkit.org/show_bug.cgi?id=101821
7320
7321         Reviewed by Ojan Vafai.
7322
7323         Bug 101619 showed a 9-14% improvement from not walking the children during
7324         removeChild looking for frames when there's known to be no frames. The fix
7325         in that bug only avoids this walk when the whole document has no frames, this
7326         patch extends it to skip traversing subtrees that have no iframes by hooking
7327         the frame assignment to walk up the tree and keep track of the count of frames
7328         in the subtree on contentFrame assignment and then decrement it on disconnect.
7329
7330         No new tests, this is just a perf refactor.
7331
7332         * dom/ContainerNode.cpp:
7333         (WebCore::willRemoveChildren):
7334         * dom/ContainerNodeAlgorithms.cpp:
7335         (WebCore::ChildFrameDisconnector::collectFrameOwners):
7336         * dom/ContainerNodeAlgorithms.h:
7337         (WebCore::ChildFrameDisconnector::ChildFrameDisconnector):
7338         (ChildFrameDisconnector):
7339         (WebCore::ChildFrameDisconnector::collectFrameOwners):
7340           Renamed from collectDescendant() to better reflect what it really does.
7341         (WebCore::ChildFrameDisconnector::disconnectCollectedFrameOwners):
7342           Renamed from disconnect() to better reflect what it really does.
7343         (WebCore::ChildFrameDisconnector::disconnect):
7344           New method that does the collection of frame owners on either the root
7345           or only it's descendants.
7346         * dom/Node.cpp:
7347         (WebCore::Node::connectedSubframeCount):
7348         (WebCore::Node::incrementConnectedSubframeCount):
7349         (WebCore::Node::decrementConnectedSubframeCount):
7350         * dom/Node.h:
7351         * dom/NodeRareData.h:
7352         (WebCore::NodeRareData::NodeRareData):
7353         (WebCore::NodeRareData::connectedSubframeCount):
7354         (WebCore::NodeRareData::incrementConnectedSubframeCount):
7355         (WebCore::NodeRareData::decrementConnectedSubframeCount):
7356         * html/HTMLFrameOwnerElement.cpp:
7357         (WebCore::HTMLFrameOwnerElement::setContentFrame):
7358         (WebCore::HTMLFrameOwnerElement::disconnectContentFrame):
7359
7360 2012-11-15  Alpha Lam  <hclam@chromium.org>
7361
7362         [chromium] WebGL texImage2D fails with deferred image decoding
7363         https://bugs.webkit.org/show_bug.cgi?id=102310
7364
7365         Reviewed by Kenneth Russell.
7366
7367         Skia's implementation of GraphicsContext3D::getImageData() uses ImageSource
7368         to decode an image. When deferred image decoding is enabled this class
7369         generates an ImageFrame marked as incomplete, which WebGL rejects. This results
7370         in failing of texImage2D.
7371
7372         This change uses ImageDecoder directly instead of ImageSource. This skips
7373         the code path of deferred image decoding. This behavior is correct because
7374         GraphicsContext3D wants to decode the image differently with alpha not
7375         premultiplied and color profile applied optionally.
7376
7377         Added a test to prove this change fixed the bug.
7378
7379         Test: fast/images/webgl-teximage2d.html
7380
7381         * platform/graphics/skia/GraphicsContext3DSkia.cpp:
7382         (WebCore::GraphicsContext3D::getImageData):
7383
7384 2012-11-15  Jer Noble  <jer.noble@apple.com>
7385
7386         Further unreviewed build fix. Add explicit static_casts to avoid implicit precision warnings.
7387
7388         * platform/graphics/avfoundation/objc/WebCoreAVFResourceLoader.mm:
7389         (WebCore::WebCoreAVFResourceLoader::fulfillRequestWithResource):
7390
7391 2012-11-15  Jer Noble  <jer.noble@apple.com>
7392
7393         Unreviewed build fix. Avoid implicit precision and unused parameter warnings.
7394
7395         * platform/graphics/avfoundation/objc/WebCoreAVFResourceLoader.mm:
7396         (WebCore::WebCoreAVFResourceLoader::responseReceived):
7397         (WebCore::WebCoreAVFResourceLoader::fulfillRequestWithResource):
7398
7399 2012-11-15  Adam Barth  <abarth@webkit.org>
7400
7401         [V8] We shouldn't call deprecated V8 APIs
7402         https://bugs.webkit.org/show_bug.cgi?id=102407
7403
7404         Reviewed by Eric Seidel.
7405
7406         This patch was written by Sven Panne on the V8 team. He would prefer
7407         that we not call deprecated V8 APIs. This patch updates these call
7408         sites to more modern idioms.
7409
7410         * bindings/scripts/CodeGeneratorV8.pm:
7411         (GenerateConstructorGetter):
7412         (GenerateImplementation):
7413         * bindings/scripts/test/V8/V8TestObj.cpp:
7414         (WebCore::TestObjV8Internal::TestObjConstructorGetter):
7415         * bindings/v8/PageScriptDebugServer.cpp:
7416         (WebCore::PageScriptDebugServer::addListener):
7417         * bindings/v8/ScriptController.cpp:
7418         (WebCore::ScriptController::setContextDebugId):
7419         (WebCore::ScriptController::contextDebugId):
7420         * bindings/v8/ScriptProfiler.cpp:
7421         (WebCore::ScriptProfiler::objectByHeapObjectId):
7422             - This code doesn't seem to do anything anymore.
7423         * bindings/v8/V8DOMConfiguration.h:
7424         (WebCore::V8DOMConfiguration::configureAttribute):
7425         * bindings/v8/V8DOMWindowShell.cpp:
7426         (WebCore::setInjectedScriptContextDebugId):
7427         * bindings/v8/V8DOMWrapper.cpp:
7428         (WebCore::V8DOMWrapper::maybeDOMWrapper):
7429         (WebCore::V8DOMWrapper::isWrapperOfType):
7430         * bindings/v8/V8EventListenerList.h:
7431         (WebCore::V8EventListenerList::doFindWrapper):
7432         (WebCore::V8EventListenerList::findOrCreateWrapper):
7433         * bindings/v8/WorkerContextExecutionProxy.cpp:
7434         (WebCore::WorkerContextExecutionProxy::initializeIfNeeded):
7435         * bindings/v8/WrapperTypeInfo.h:
7436         (WebCore::WrapperTypeInfo::unwrap):
7437
7438 2012-11-15  Sheriff Bot  <webkit.review.bot@gmail.com>
7439
7440         Unreviewed, rolling out r134800 and r134805.
7441         http://trac.webkit.org/changeset/134800
7442         http://trac.webkit.org/changeset/134805
7443         https://bugs.webkit.org/show_bug.cgi?id=102417
7444
7445         This patch broke chromium port (Requested by jianli on
7446         #webkit).
7447
7448         * Modules/mediastream/RTCPeerConnection.cpp:
7449         (WebCore::RTCPeerConnection::RTCPeerConnection):
7450         (WebCore::RTCPeerConnection::createOffer):
7451         (WebCore::RTCPeerConnection::createAnswer):
7452         (WebCore::RTCPeerConnection::setLocalDescription):
7453         (WebCore::RTCPeerConnection::localDescription):
7454         (WebCore::RTCPeerConnection::setRemoteDescription):
7455         (WebCore::RTCPeerConnection::remoteDescription):
7456         (WebCore::RTCPeerConnection::updateIce):
7457         (WebCore::RTCPeerConnection::addIceCandidate):
7458         (WebCore::RTCPeerConnection::readyState):
7459         (WebCore::RTCPeerConnection::iceState):
7460         (WebCore::RTCPeerConnection::addStream):
7461         (WebCore::RTCPeerConnection::close):
7462         (WebCore::RTCPeerConnection::stop):
7463         (WebCore::RTCPeerConnection::changeReadyState):
7464         (WebCore::RTCPeerConnection::scheduledEventTimerFired):
7465         * Modules/mediastream/RTCPeerConnection.h:
7466         (RTCPeerConnection):
7467         * Modules/mediastream/RTCPeerConnection.idl:
7468         * dom/EventNames.h:
7469         (WebCore):
7470         * platform/mediastream/RTCDataChannelDescriptor.cpp:
7471         (WebCore::RTCDataChannelDescriptor::RTCDataChannelDescriptor):
7472         (WebCore::RTCDataChannelDescriptor::readyStateChanged):
7473         * platform/mediastream/RTCPeerConnectionHandlerClient.h:
7474         (RTCPeerConnectionHandlerClient):
7475         * platform/mediastream/chromium/RTCPeerConnectionHandlerChromium.cpp:
7476         * platform/mediastream/chromium/RTCPeerConnectionHandlerChromium.h:
7477         (RTCPeerConnectionHandlerChromium):
7478
7479 2012-11-15  Elliott Sprehn  <esprehn@chromium.org>
7480
7481         Remove Node::aboutToUnload and be more explicit about what it was for
7482         https://bugs.webkit.org/show_bug.cgi?id=102357
7483
7484         Reviewed by Ryosuke Niwa.
7485
7486         Node::aboutToUnload was confusingly named because it was only called on
7487         the focused node, and it really only existed to support notifying the
7488         embedder that inputs should stop being editable on unload. Instead add
7489         a new method to HTMLInputElement that ends editing and call that
7490         explicitly in the FrameLoader so it's clear what this is about.
7491
7492         No new tests, this is just a refactoring.
7493
7494         * dom/Node.h:
7495         * html/HTMLInputElement.cpp:
7496         (WebCore::HTMLInputElement::endEditing):
7497             New method that handles finishing editing.
7498         * html/HTMLInputElement.h:
7499         (HTMLInputElement):
7500         * html/TextFieldInputType.cpp:
7501         (WebCore::TextFieldInputType::handleBlurEvent):
7502             Use the new method to reduce code duplication.
7503         * loader/FrameLoader.cpp:
7504         (WebCore::FrameLoader::stopLoading):
7505             Be explicit about what this check was for.
7506
7507 2012-11-15  Tommy Widenflycht  <tommyw@google.com>
7508
7509         [chromium] MediaStream API: Add missing WebRTCPeerConnectionHandlerClient::didAddRemoteDataChannel
7510         https://bugs.webkit.org/show_bug.cgi?id=102386
7511
7512         Reviewed by Adam Barth.
7513
7514         Existing tests expanded to cover patch.
7515
7516         * platform/mediastream/RTCDataChannelDescriptor.cpp:
7517         (WebCore::RTCDataChannelDescriptor::RTCDataChannelDescriptor):
7518         (WebCore::RTCDataChannelDescriptor::readyStateChanged):
7519         * platform/mediastream/chromium/RTCPeerConnectionHandlerChromium.cpp:
7520         (WebCore::RTCPeerConnectionHandlerChromium::didAddRemoteDataChannel):
7521         (WebCore):
7522         * platform/mediastream/chromium/RTCPeerConnectionHandlerChromium.h:
7523         (WebKit):
7524         (RTCPeerConnectionHandlerChromium):
7525
7526 2012-11-15  Rick Byers  <rbyers@chromium.org>
7527
7528         No tests for changing mouse cursors
7529         https://bugs.webkit.org/show_bug.cgi?id=100550
7530
7531         Reviewed by Brent Fulgham.
7532
7533         Add infrastructure to keep track of the last set mouse cursor,
7534         and then to query it from DumpRenderTree.  Also adds ASSERTs to help ensure
7535         we can reliably detect when an uninitialized Cursor object is used (such as
7536         the one that can be returned from OptionalCursor in the NoCursorChange scenario).
7537
7538         Test: fast/events/mouse-cursor.html
7539
7540         * WebCore.exp.in: Add Cursor copy ctor export
7541         * page/EventHandler.cpp:
7542         (WebCore::OptionalCursor::cursor):
7543         (WebCore::EventHandler::handleMouseMoveEvent): Keep track of last set mouse cursor
7544         * page/EventHandler.h:
7545         (WebCore::EventHandler::currentMouseCursor): New getter for last set mouse cursor
7546         * platform/Cursor.h:
7547         (WebCore::Cursor::Cursor): Mark uninitialized cursor types as invalid.
7548         (WebCore::Cursor::type): Assert cursor type is valid.
7549         * testing/Internals.cpp:
7550         (WebCore::cursorTypeToString): Helper to convert cursor type to enum
7551         (WebCore):
7552         (WebCore::Internals::getCurrentCursorInfo): New function to return a string describing the last set mouse cursor
7553         * testing/Internals.h: Declare getCurrentCursorInfo
7554         * testing/Internals.idl: Declare getCurrentCursorInfo
7555
7556 2012-11-13  Jer Noble  <jer.noble@apple.com>
7557
7558         Support loading of blob URLs in AVFoundation.
7559         https://bugs.webkit.org/show_bug.cgi?id=102182
7560
7561         Reviewed by Eric Carlson.
7562
7563         Add support for BLOB (and other non-natively supported schemed) URLs through the AVAssetResourceLoader API.
7564
7565         Test: media/video-src-blob.html
7566
7567         * platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.h:
7568         * platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
7569         (WebCore::MediaPlayerPrivateAVFoundationObjC::shouldWaitForLoadingOfResource): Only go down the encrypted
7570             media path if the key scheme is skp://.
7571         (WebCore::MediaPlayerPrivateAVFoundationObjC::didCancelLoadingRequest): Added.  Cancel resource loading if
7572             the media engine requests it.
7573         (WebCore::MediaPlayerPrivateAVFoundationObjC::addKey): Use the new, non-deprecated API.
7574         
7575         Use the dispatch_main_queue() as the AVAssetResourceLoadDelegate queue now that <rdar://problem/12362461> is fixed.
7576         * platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
7577         (WebCore::MediaPlayerPrivateAVFoundationObjC::createAVAssetForURL):
7578         (-[WebCoreAVFLoaderDelegate resourceLoader:shouldWaitForLoadingOfRequestedResource:]):
7579         (-[WebCoreAVFLoaderDelegate resourceLoader:didCancelLoadingRequest:]):
7580
7581         Add a new helper class to manage loading the CachedRawResource and feed the incoming
7582         data to the AVAssetResourceLoader.
7583         * platform/graphics/avfoundation/objc/WebCoreAVFResourceLoader.h: Added.
7584         * platform/graphics/avfoundation/objc/WebCoreAVFResourceLoader.mm: Added.
7585         (WebCore::WebCoreAVFResourceLoader::create): Simple factory.
7586         (WebCore::WebCoreAVFResourceLoader::WebCoreAVFResourceLoader): Simple constructor.
7587         (WebCore::WebCoreAVFResourceLoader::~WebCoreAVFResourceLoader): Simple destructor.
7588         (WebCore::WebCoreAVFResourceLoader::startLoading): Tell the cachedResourceLoader to schedule loading.
7589         (WebCore::WebCoreAVFResourceLoader::stopLoading): Remove this as a client of the resource.
7590         (WebCore::WebCoreAVFResourceLoader::responseReceived): Fill in the contentInformation field of the 
7591             AVAssetResourceLoadingRequest.
7592         (WebCore::WebCoreAVFResourceLoader::dataReceived): Call fulfillRequestWithResource.
7593         (WebCore::WebCoreAVFResourceLoader::notifyFinished): Tell the AVAssetResourceLoadingRequest that loading
7594             has completed.
7595         (WebCore::WebCoreAVFResourceLoader::fulfillRequestWithResource): Fill in (if possible) the dataRequest
7596             field of the AVAssetResourceLoadingRequest.
7597
7598         Add a MediaPlayerClient method allowing MediaPlayerPrivate subclasses to access the HTMLMediaElement's
7599         document's cachedResourceLoader.
7600         * html/HTMLMediaElement.cpp:
7601         (WebCore::HTMLMediaElement::mediaPlayerCachedResourceLoader):
7602         * html/HTMLMediaElement.h:
7603         * platform/graphics/MediaPlayer.cpp:
7604         (WebCore::MediaPlayer::cachedResourceLoader):
7605         * platform/graphics/MediaPlayer.h:
7606         (WebCore::MediaPlayerClient::mediaPlayerCachedResourceLoader):
7607
7608         Add a convenience method to convert from MIME type -> UTI.
7609         * platform/network/mac/UTIUtilities.h:
7610         * platform/network/mac/UTIUtilities.mm:
7611         (WebCore::UTIFromMIMEType):
7612
7613         Add new files to project.
7614         * WebCore.xcodeproj/project.pbxproj:
7615
7616 2012-11-15  Kenneth Rohde Christiansen  <kenneth@webkit.org>
7617
7618         Remove initiallyFitToViewport attribute
7619         https://bugs.webkit.org/show_bug.cgi?id=102392
7620
7621         Reviewed by Noam Rosenthal.
7622
7623         Remove the initiallyFitToViewport which shouldn't have been
7624         added in the first place. We now reset userScalable to auto (-1)
7625         in case it was not explicitly set by the web author.
7626
7627         Same behavior, covered by existing tests.
7628
7629         * dom/ViewportArguments.cpp:
7630         (WebCore::ViewportArguments::resolve):
7631         * dom/ViewportArguments.h:
7632         (ViewportAttributes):
7633
7634 2012-11-15  Tommy Widenflycht  <tommyw@google.com>
7635
7636         MediaStream API: Update RTCPeerConnection states to match the latest editors draft
7637         https://bugs.webkit.org/show_bug.cgi?id=102382
7638
7639         Reviewed by Adam Barth.
7640
7641         Updating readyState & iceState, and adding iceGatheringState.
7642         Also safeguarding the event timer callback.
7643
7644         Patch covered by existing tests.
7645
7646         * Modules/mediastream/RTCPeerConnection.cpp:
7647         (WebCore::RTCPeerConnection::RTCPeerConnection):
7648         (WebCore::RTCPeerConnection::createOffer):
7649         (WebCore::RTCPeerConnection::createAnswer):
7650         (WebCore::RTCPeerConnection::setLocalDescription):
7651         (WebCore::RTCPeerConnection::localDescription):
7652         (WebCore::RTCPeerConnection::setRemoteDescription):
7653         (WebCore::RTCPeerConnection::remoteDescription):
7654         (WebCore::RTCPeerConnection::updateIce):
7655         (WebCore::RTCPeerConnection::addIceCandidate):
7656         (WebCore::RTCPeerConnection::readyState):
7657         (WebCore::RTCPeerConnection::iceGatheringState):
7658         (WebCore):
7659         (WebCore::RTCPeerConnection::iceState):
7660         (WebCore::RTCPeerConnection::addStream):
7661         (WebCore::RTCPeerConnection::close):
7662         (WebCore::RTCPeerConnection::didChangeIceGatheringState):
7663         (WebCore::RTCPeerConnection::stop):
7664         (WebCore::RTCPeerConnection::changeReadyState):
7665         (WebCore::RTCPeerConnection::scheduledEventTimerFired):
7666         * Modules/mediastream/RTCPeerConnection.h:
7667         (RTCPeerConnection):
7668         * Modules/mediastream/RTCPeerConnection.idl:
7669         * dom/EventNames.h:
7670         (WebCore):
7671         * platform/mediastream/RTCPeerConnectionHandlerClient.h:
7672         (RTCPeerConnectionHandlerClient):
7673         * platform/mediastream/chromium/RTCPeerConnectionHandlerChromium.cpp:
7674         (WebCore::RTCPeerConnectionHandlerChromium::didChangeICEGatheringState):
7675         (WebCore):
7676         * platform/mediastream/chromium/RTCPeerConnectionHandlerChromium.h:
7677         (RTCPeerConnectionHandlerChromium):
7678
7679 2012-11-15  Sheriff Bot  <webkit.review.bot@gmail.com>
7680
7681         Unreviewed, rolling out r134649 and r134665.
7682         http://trac.webkit.org/changeset/134649
7683         http://trac.webkit.org/changeset/134665
7684         https://bugs.webkit.org/show_bug.cgi?id=102413
7685
7686         Broke a ton of downstream chromium tests (Requested by japhet
7687         on #webkit).
7688
7689         * loader/DocumentLoader.cpp:
7690         (WebCore::DocumentLoader::DocumentLoader):
7691         (WebCore::DocumentLoader::~DocumentLoader):
7692         (WebCore::DocumentLoader::finishedLoading):
7693         (WebCore::DocumentLoader::clearMainResourceLoader):
7694         (WebCore::DocumentLoader::isLoadingInAPISense):
7695         (WebCore::DocumentLoader::documentURL):
7696         (WebCore::DocumentLoader::isLoadingMainResource):
7697         (WebCore::DocumentLoader::startLoadingMainResource):
7698         * loader/DocumentLoader.h:
7699         (DocumentLoader):
7700         * loader/FrameLoader.cpp:
7701         (WebCore::FrameLoader::FrameLoader):
7702         (WebCore::FrameLoader::init):
7703         * loader/FrameLoaderStateMachine.cpp:
7704         (WebCore::FrameLoaderStateMachine::FrameLoaderStateMachine):
7705         * loader/FrameLoaderStateMachine.h:
7706         * loader/MainResourceLoader.cpp:
7707         (WebCore::shouldLoadAsEmptyDocument):
7708         (WebCore):
7709         (WebCore::MainResourceLoader::continueAfterContentPolicy):
7710         (WebCore::MainResourceLoader::didReceiveResponse):
7711         (WebCore::MainResourceLoader::didFinishLoading):
7712         (WebCore::MainResourceLoader::handleEmptyLoad):
7713         (WebCore::MainResourceLoader::loadNow):
7714         (WebCore::MainResourceLoader::load):
7715         * loader/MainResourceLoader.h:
7716         (MainResourceLoader):
7717
7718 2012-11-15  Kentaro Hara  <haraken@chromium.org>
7719
7720         Correct syntax of old-style IDL files
7721         https://bugs.webkit.org/show_bug.cgi?id=102335
7722
7723         Reviewed by Adam Barth.
7724
7725         Recently tasak@ corrected an IDL syntax of almost all IDL files.
7726         We should correct the rest of them.
7727
7728         No tests. No change in behavior.
7729
7730         * html/canvas/OESElementIndexUint.idl:
7731         * page/PerformanceMark.idl:
7732         * page/PerformanceMeasure.idl:
7733
7734 2012-11-15  Elliott Sprehn  <esprehn@chromium.org>
7735
7736         Remove isHTMLInputElement since it's unused and toInputElement exists 
7737         https://bugs.webkit.org/show_bug.cgi?id=102358
7738
7739         Reviewed by Ojan Vafai.
7740
7741         Remove isHTMLInputElement as no one uses it. Everyone just uses
7742         Node::toInputElement and checks for a 0 return value instead.
7743
7744         toInputElement is also more reliable as there's no requirement that
7745         subclasses of HTMLInputElement have the tag name of inputTag so using
7746         this method in a check could potentially miss future subclasses with
7747         different tag names, though none exist right now.
7748
7749         No new tests, this just deletes dead code.
7750
7751         * html/HTMLInputElement.h:
7752
7753 2012-11-15  Erik Arvidsson  <arv@chromium.org>
7754
7755         Update DOMException name: NotSupportedError
7756         https://bugs.webkit.org/show_bug.cgi?id=102139
7757
7758         Reviewed by Ojan Vafai.
7759
7760         Patch 9 of 25 to update DOMException name to match the spec and Firefox.
7761
7762         Updated existing tests.
7763
7764         * dom/DOMCoreException.cpp:
7765
7766 2012-11-15  Elliott Sprehn  <esprehn@chromium.org>
7767
7768         Remove isHTMLInputElement since it's unused and toInputElement exists 
7769         https://bugs.webkit.org/show_bug.cgi?id=102358
7770
7771         Reviewed by Ojan Vafai.
7772
7773         Remove isHTMLInputElement as no one uses it. Everyone just uses
7774         Node::toInputElement and checks for a 0 return value instead.
7775
7776         toInputElement is also more reliable as there's no requirement that
7777         subclasses of HTMLInputElement have the tag name of inputTag so using
7778         this method in a check could potentially miss future subclasses with
7779         different tag names, though none exist right now.
7780
7781         No new tests, this just deletes dead code.
7782
7783         * html/HTMLInputElement.h:
7784
7785 2012-11-15  Erik Arvidsson  <arv@chromium.org>
7786
7787         Update DOMException name: NoModificationAllowedError
7788         https://bugs.webkit.org/show_bug.cgi?id=102134
7789
7790         Reviewed by Ojan Vafai.
7791
7792         Patch 7 of 25 to update DOMException name to match the spec and Firefox.
7793
7794         Updated existing tests.
7795
7796         * dom/DOMCoreException.cpp:
7797
7798 2012-11-15  Miguel Garcia  <miguelg@chromium.org>
7799
7800         Remove unnecesary dependencies INPUT_TYPE_COLOR
7801         https://bugs.webkit.org/show_bug.cgi?id=102379
7802
7803         Reviewed by Darin Adler.
7804
7805         Platforms should be able to enable INPUT_TYPE_COLOR without enabling
7806         CALENDAR_PICKER and DATALIST_ELEMENT. Before this patch however there would be
7807         compile errors in such configuration.
7808
7809         No new tests since this is not adding any extra functionality.
7810
7811         * WebCore.gyp/WebCore.gyp:
7812         * html/ColorInputType.cpp:
7813         (WebCore::ColorInputType::shouldShowSuggestions):
7814         * make-file-arrays.py:
7815         (main):
7816
7817 2012-11-15  Eric Carlson  <eric.carlson@apple.com>
7818
7819         Update computed line position algorithm
7820         https://bugs.webkit.org/show_bug.cgi?id=93779
7821
7822         Reviewed by Philippe Normand.
7823
7824         Compute the position of a text track relative to rendered tracks. This is needed to position
7825         cues correctly when there is more than one text track.
7826
7827         Test: media/track/track-cue-container-rendering-position.html
7828
7829         * html/track/TextTrack.cpp:
7830         (WebCore::TextTrack::invalidateTrackIndex): Invalidate both cached track indices.
7831         (WebCore::TextTrack::trackIndexRelativeToRenderedTracks): Return the index of the track relative
7832             to other rendered tracks.
7833         * html/track/TextTrack.h:
7834
7835         * html/track/TextTrackCue.cpp:
7836         (WebCore::TextTrackCue::calculateComputedLinePosition): Use trackIndexRelativeToRenderedTracks()
7837             instead of trackIndex() so cues are positioned correctly.
7838
7839         * html/track/TextTrackList.cpp:
7840         (TextTrackList::getTrackIndex): Change return type from unsigned to int.
7841         (TextTrackList::getTrackIndexRelativeToRenderedTracks): New.
7842         * html/track/TextTrackList.h:
7843
7844 2012-11-15  Dominik Röttsches  <dominik.rottsches@intel.com>
7845
7846         [EFL] Bump Harfbuzz to allow fixing bug 101009 on EFL
7847         https://bugs.webkit.org/show_bug.cgi?id=101323
7848
7849         Reviewed by Martin Robinson.
7850
7851         Removing ifdef since we bumped Harfbuzz dependency. This is the
7852         real fix replacing the previous workaround of having a Chromium
7853         specific ifdef here, since Chromium uses a newer HarfBuzz version
7854         already.
7855
7856         No new tests, covered by css3/flexbox/inline-flex-crash.html
7857         which will not crash anymore even with the ifdef removed.
7858
7859         * platform/graphics/harfbuzz/ng/HarfBuzzShaper.cpp:
7860         (WebCore::HarfBuzzShaper::shapeHarfBuzzRuns):
7861
7862 2012-11-15  Andreas Kling  <kling@webkit.org>
7863
7864         REGRESSION(r134408): Heap-use-after-free in WebCore::HTMLConstructionSite::mergeAttributesFromTokenIntoElement().
7865         <http://webkit.org/b/102304>
7866
7867         Reviewed by Anders Carlsson.
7868
7869         Test: fast/dom/cloneNode-below-body-attribute-merging.html
7870
7871         * html/parser/HTMLConstructionSite.cpp:
7872         (WebCore::HTMLConstructionSite::mergeAttributesFromTokenIntoElement):
7873
7874             Use Element::fastHasAttribute() to determine if a given attribute is already present on the element
7875             we're merging attributes into.
7876
7877         * dom/ElementAttributeData.h:
7878         (ElementAttributeData):
7879
7880             Remove a now-unnecessary friend declaration.
7881
7882 2012-11-15  Elliott Sprehn  <esprehn@chromium.org>
7883
7884         Prevent creation of detached frames in ShadowRoot
7885         https://bugs.webkit.org/show_bug.cgi?id=102333
7886
7887         Reviewed by Dimitri Glazkov.
7888
7889         Similar to Bug 94717 you can create a loaded iframe in a detached
7890         subtree using ShadowRoot. To fix this we just need to make
7891         SubframeLoadingDisabler traverse through shadow boundaries.
7892
7893         Test: fast/frames/detached-shadow-frame.html
7894
7895         * html/HTMLFrameOwnerElement.h:
7896         (WebCore::SubframeLoadingDisabler::canLoadFrame):
7897
7898 2012-11-15  Shinya Kawanaka  <shinyak@chromium.org>
7899
7900         Changing pseudoClass (:visited) should cause distribution.
7901         https://bugs.webkit.org/show_bug.cgi?id=101700
7902
7903         Reviewed by Dimitri Glazkov.
7904
7905         When href attribute of an anchor or area element is changed, we have to invalidate distribution.
7906
7907         Since we would like to check a few pseudoClasses at once, we make the argument of
7908         SelectRuleFeatureSet::hasSelectorFor int.
7909
7910         Tests: fast/dom/shadow/pseudoclass-update-visited-anchor.html
7911                fast/dom/shadow/pseudoclass-update-visited-area.html
7912
7913         * dom/ElementShadow.cpp:
7914         (WebCore::invalidateParentDistributionIfNecessary):
7915         * dom/ElementShadow.h:
7916         (WebCore):
7917         * html/HTMLAnchorElement.cpp:
7918         (WebCore::HTMLAnchorElement::parseAttribute):
7919         * html/shadow/SelectRuleFeatureSet.h:
7920         (WebCore::SelectRuleFeatureSet::hasSelectorFor):
7921
7922 2012-11-15  Balazs Kelemen  <kbalazs@webkit.org>
7923
7924         Coordinated Graphics: support the "freeze animations" API
7925         https://bugs.webkit.org/show_bug.cgi?id=100703
7926
7927         Reviewed by Noam Rosenthal.
7928
7929         Make animations resumable in Coordinated Graphics.
7930         Pausing was already implemented.
7931
7932         Tested with animations and transitions tests. No tests to be
7933         unskipped because these tests has been working without this API
7934         as well (although this is the preferred way).
7935
7936         * platform/graphics/GraphicsLayerAnimation.cpp:
7937         (WebCore::GraphicsLayerAnimation::apply):
7938         (WebCore::GraphicsLayerAnimation::computeTotalRunningTime):
7939         Do not consider the time while we was suspended as part of
7940         the total running time.
7941         (WebCore):
7942         (WebCore::GraphicsLayerAnimation::resume):
7943         (WebCore::GraphicsLayerAnimations::suspend):
7944         (WebCore::GraphicsLayerAnimations::resume):
7945         * platform/graphics/GraphicsLayerAnimation.h:
7946         (GraphicsLayerAnimation):
7947         (GraphicsLayerAnimations):
7948
7949 2012-11-15  Gabor Rapcsanyi  <rgabor@webkit.org>
7950
7951         Relocate the ARM NEON SVG filter optimizations
7952         https://bugs.webkit.org/show_bug.cgi?id=102214
7953
7954         Reviewed by Zoltan Herczeg.
7955
7956         Relocate the ARM filter optimizations into platform/graphics/cpu/arm
7957         to keep them together with the others.
7958         From now all graphics optimization for ARM NEON should go here.
7959
7960         * CMakeLists.txt:
7961         * GNUmakefile.am:
7962         * GNUmakefile.list.am:
7963         * Target.pri:
7964         * WebCore.gyp/WebCore.gyp:
7965         * WebCore.gypi:
7966         * WebCore.pri:
7967         * WebCore.xcodeproj/project.pbxproj:
7968         * platform/graphics/cpu/arm/filters/FEBlendNEON.h: Renamed from Source/WebCore/platform/graphics/filters/arm/FEBlendNEON.h.
7969         (WebCore):
7970         (FEBlendUtilitiesNEON):
7971         (WebCore::FEBlendUtilitiesNEON::div255):
7972         (WebCore::FEBlendUtilitiesNEON::normal):
7973         (WebCore::FEBlendUtilitiesNEON::multiply):
7974         (WebCore::FEBlendUtilitiesNEON::screen):
7975         (WebCore::FEBlendUtilitiesNEON::darken):
7976         (WebCore::FEBlendUtilitiesNEON::lighten):
7977         (WebCore::FEBlend::platformApplyNEON):
7978         * platform/graphics/cpu/arm/filters/FECompositeArithmeticNEON.h: Renamed from Source/WebCore/platform/graphics/filters/arm/FECompositeArithmeticNEON.h.
7979         (WebCore):
7980         (WebCore::FEComposite::computeArithmeticPixelsNeon):
7981         (WebCore::FEComposite::platformArithmeticNeon):
7982         * platform/graphics/cpu/arm/filters/FEGaussianBlurNEON.h: Renamed from Source/WebCore/platform/graphics/filters/arm/FEGaussianBlurNEON.h.
7983         (WebCore):
7984         (WebCore::boxBlurNEON):
7985         * platform/graphics/cpu/arm/filters/FELightingNEON.cpp: Renamed from Source/WebCore/platform/graphics/filters/arm/FELightingNEON.cpp.
7986         (WebCore):
7987         (WebCore::feLightingConstantsForNeon):
7988         (WebCore::FELighting::platformApplyNeonWorker):
7989         (WebCore::FELighting::getPowerCoefficients):
7990         * platform/graphics/cpu/arm/filters/FELightingNEON.h: Renamed from Source/WebCore/platform/graphics/filters/arm/FELightingNEON.h.
7991         (WebCore):
7992         (FELightingFloatArgumentsForNeon):
7993         (FELightingPaintingDataForNeon):
7994         (WebCore::FELighting::platformApplyNeon):
7995         * platform/graphics/cpu/arm/filters/NEONHelpers.h: Renamed from Source/WebCore/platform/graphics/filters/arm/NEONHelpers.h.
7996         (WebCore):
7997         (WebCore::loadRGBA8AsFloat):
7998         (WebCore::storeFloatAsRGBA8):
7999
8000 2012-11-15  Mike West  <mkwst@chromium.org>
8001
8002         We should trigger a console warning when we encounter invalid sandbox flags.
8003         https://bugs.webkit.org/show_bug.cgi?id=101956
8004
8005         Reviewed by Adam Barth.
8006
8007         A developer who writes '<iframe sandbox="allowScripts">' probably has
8008         something in mind other than what the browser interprets. In these
8009         situations, we should log a console warning that notes 'allowScripts'
8010         is an invalid sandbox flag ('allow-scripts' is probably what she
8011         meant).
8012
8013         This patch does the simplest thing possible: it throws a warning that
8014         lists the invalid flags encountered for sandbox attributes on iframes,
8015         and for sandbox Content Security Policy directives.
8016
8017         Tests: http/tests/security/contentSecurityPolicy/sandbox-invalid-header.html
8018                http/tests/security/sandboxed-iframe-invalid.html
8019
8020         * dom/SecurityContext.cpp:
8021         (WebCore::SecurityContext::parseSandboxPolicy):
8022         * dom/SecurityContext.h:
8023         (SecurityContext):
8024             Accept a new out parameter, invalidTokensErrorMessage. If invalid
8025             tokens are encountered, build an error message string, and pass it
8026             back to the caller through this parameter.
8027         * html/HTMLIFrameElement.cpp:
8028         (WebCore::HTMLIFrameElement::parseAttribute):
8029         * page/ContentSecurityPolicy.cpp:
8030         (WebCore::CSPDirectiveList::applySandboxPolicy):
8031             When applying a sandbox policy, pass a string into
8032             SecurityContext::parseSandboxPolicy to grab any errors that might
8033             be encountered, and log a warning in that event.
8034         (WebCore::ContentSecurityPolicy::reportInvalidSandboxFlags):
8035         (WebCore):
8036         * page/ContentSecurityPolicy.h:
8037             Adding a new method to report invalid sandbox flags.
8038
8039 2012-11-15  Kenneth Rohde Christiansen  <kenneth@webkit.org>
8040
8041         Rename member vars in ViewportArgument to match css-device-adapt
8042         https://bugs.webkit.org/show_bug.cgi?id=102355
8043
8044         Reviewed by Gyuyoung Kim.
8045
8046         No behavior change, thus no new tests.
8047
8048         * dom/ViewportArguments.cpp:
8049         (WebCore::ViewportArguments::resolve):
8050         (WebCore::setViewportFeature):
8051         * dom/ViewportArguments.h:
8052         (WebCore::ViewportArguments::ViewportArguments):
8053         (ViewportArguments):
8054         (WebCore::ViewportArguments::operator==):
8055
8056 2012-11-15  Andrey Adaikin  <aandrey@chromium.org>
8057
8058         Web Inspector: [WebGL] cloneNode for images with revoked Blob URIs fails
8059         https://bugs.webkit.org/show_bug.cgi?id=102366
8060
8061         Reviewed by Vsevolod Vlasov.
8062
8063         * inspector/InjectedScriptCanvasModuleSource.js:
8064         (.):
8065
8066 2012-11-15  Mark Rowe  <mrowe@apple.com>
8067
8068         Build fix.
8069
8070         Disable deprecation warnings in a few places that need it.
8071
8072         * platform/graphics/ca/mac/TileCache.mm:
8073         (WebCore::TileCache::drawRepaintCounter):
8074         * platform/graphics/mac/FontMac.mm:
8075         (WebCore::showGlyphsWithAdvances):
8076         * platform/graphics/mac/WebLayer.mm:
8077         (drawLayerContents):
8078
8079 2012-11-15  Kent Tamura  <tkent@chromium.org>
8080
8081         Support stand-alone month names in calendar picker
8082         https://bugs.webkit.org/show_bug.cgi?id=102196
8083
8084         Reviewed by Kentaro Hara.
8085
8086         We have showed non stand-alone month names in any locales. However
8087         we should show stand-alone month names in some locales such as
8088         Russian.
8089
8090         This patch introduce PagePopupController::formatMonth. It is
8091         exposed to page-popups, and format year-month pairs in the same
8092         way as input[type=month].
8093
8094         No new tests. Affects platform/chromium/fast/forms/calendar-picker/calendar-picker-appearance-ru.html.
8095
8096         * Resources/pagepopups/calendarPicker.js:
8097         (Month.prototype.toLocaleString):
8098         Calls pagePopupController.formatMonth except Japanese locale.
8099         (handleArgumentsTimeout):
8100         Remove unnecessary default monthLabels.
8101         * page/PagePopupController.cpp:
8102         (WebCore::PagePopupController::formatMonth): Added.
8103         * page/PagePopupController.h:
8104         (PagePopupController): Declare formatMonth.
8105         * page/PagePopupController.idl: Add formatMonth.
8106
8107 2012-11-15  Eugene Klyuchnikov  <eustas.bug@gmail.com>
8108
8109         Web Inspector: Fix new JS compiler warnings.
8110         https://bugs.webkit.org/show_bug.cgi?id=102341
8111
8112         Reviewed by Yury Semikhatsky.
8113
8114         New version of compiler finds new inconsistencies.
8115
8116         * inspector/front-end/DOMAgent.js: Replaced 2 simiar cases with loop.
8117         * inspector/front-end/DOMBreakpointsSidebarPane.js:
8118         Declared instance property on WebInspector.
8119         * inspector/front-end/Script.js: Normalized parameter notation.
8120
8121 2012-11-15  Kenneth Rohde Christiansen  <kenneth@webkit.org>
8122
8123         Unreviewed build fix.
8124
8125         * dom/ViewportArguments.cpp:
8126         (WebCore::convertToUserSpace): Add static
8127
8128 2012-11-14  Kenneth Rohde Christiansen  <kenneth@webkit.org>
8129
8130         Refactor ViewportArguments to only use CSS units
8131         https://bugs.webkit.org/show_bug.cgi?id=102287
8132
8133         Reviewed by Noam Rosenthal.
8134
8135         Refactor the ViewportArgument code to use a member method for
8136         resolving the viewport. This new method only uses arguments in
8137         CSS units.
8138
8139         This is preparation for adding the CSS Device Adaptation support.
8140
8141         Tested by existing tests fast/viewport.
8142
8143         * dom/ViewportArguments.cpp:
8144         (WebCore::clampLengthValue):
8145         (WebCore::clampScaleValue): New utility functions.
8146         (WebCore::ViewportArguments::resolve):
8147         (WebCore::convertToUserSpace): Added until everyone provides arguments
8148         only in CSS units and not device ones.
8149         (WebCore::computeViewportAttributes):
8150         (WebCore::computeMinimumScaleFactorForContentContained):
8151         (WebCore):
8152         (WebCore::restrictMinimumScaleFactorToViewportSize):
8153         * dom/ViewportArguments.h:
8154         (ViewportArguments):
8155
8156 2012-11-14  Shinya Kawanaka  <shinyak@chromium.org> 
8157
8158         Changing pseudoClass (:disabled) should cause distribution.
8159         https://bugs.webkit.org/show_bug.cgi?id=101901
8160
8161         Reviewed by Hajime Morita.
8162
8163         We have to invalidate distribution when pseudo-class (:disabled) is changed.
8164
8165         According to the HTML5 spec, :disabled will match button, input, select, textarea, optgroup,
8166         option, command, li, and fieldset. However, command is not implemented yet, we skip li and command. li might
8167         have 'disabled' state, but we need a command element to make it 'disabled' state.
8168
8169         Tests: fast/dom/shadow/pseudoclass-update-disabled-button.html
8170                fast/dom/shadow/pseudoclass-update-disabled-fieldset.html
8171                fast/dom/shadow/pseudoclass-update-disabled-input.html
8172                fast/dom/shadow/pseudoclass-update-disabled-optgroup.html
8173                fast/dom/shadow/pseudoclass-update-disabled-option.html
8174                fast/dom/shadow/pseudoclass-update-disabled-select.html
8175                fast/dom/shadow/pseudoclass-update-disabled-textarea.html
8176
8177         * html/HTMLFormControlElement.cpp:
8178         (WebCore::HTMLFormControlElement::disabledAttributeChanged):
8179         * html/HTMLOptGroupElement.cpp:
8180         (WebCore::HTMLOptGroupElement::parseAttribute):
8181         * html/HTMLOptionElement.cpp:
8182         (WebCore::HTMLOptionElement::parseAttribute):
8183
8184 2012-11-14  Sheriff Bot  <webkit.review.bot@gmail.com>
8185
8186         Unreviewed, rolling out r134691, r134703, r134715, r134716,
8187         and r134733.
8188         http://trac.webkit.org/changeset/134691
8189         http://trac.webkit.org/changeset/134703
8190         http://trac.webkit.org/changeset/134715
8191         http://trac.webkit.org/changeset/134716
8192         http://trac.webkit.org/changeset/134733
8193         https://bugs.webkit.org/show_bug.cgi?id=102342
8194
8195         "Broke the Apple Windows Debug and GTK builds." (Requested by
8196         dydx on #webkit).
8197
8198         * WebCore.exp.in:
8199         * bindings/js/SerializedScriptValue.h:
8200         * testing/Internals.cpp:
8201         * testing/Internals.h:
8202         (WebCore):
8203         * testing/Internals.idl:
8204
8205 2012-11-14  Pavel Feldman  <pfeldman@chromium.org>
8206
8207         Not reviewed: fixing inspector tests under Qt.
8208
8209         * inspector/front-end/TestController.js:
8210         * inspector/front-end/utilities.js:
8211         (.):
8212
8213 2012-11-14  Kentaro Hara  <haraken@chromium.org>
8214
8215         Unreviewed. Rebaselined run-bindings-tests.
8216
8217         * bindings/scripts/test/V8/V8TestNode.h:
8218         (WebCore::toV8Fast):
8219
8220 2012-11-14  Simon Fraser  <simon.fraser@apple.com>
8221
8222         Don't use temporary clip rects when hit testing
8223         https://bugs.webkit.org/show_bug.cgi?id=102329
8224
8225         Reviewed by Beth Dakin.
8226
8227         We now cache clip rects separately for painting, hit testing etc. Hit testing
8228         clip rects are always shrunk to exclude scrollbars (so that hit testing on
8229         the scrollbars works), so we no longer every need to use temporary clip rects
8230         during hit testing.
8231
8232         Added an assertion that the scrollbar relevancy when we computed the clip rects
8233         is the same as that when using them.
8234         
8235         * rendering/RenderLayer.cpp:
8236         (WebCore::RenderLayer::hitTestLayer):
8237         (WebCore::RenderLayer::updateClipRects):
8238         * rendering/RenderLayer.h:
8239         (WebCore::ClipRectsCache::ClipRectsCache):
8240         (ClipRectsCache):
8241
8242 2012-11-14  Dirk Schulze  <krit@webkit.org>
8243
8244         Support animation of basic shape 'polygon'
8245         https://bugs.webkit.org/show_bug.cgi?id=102080
8246
8247         Reviewed by Daniel Bates.
8248
8249         The basic shapes 'circle', 'rectangle' and 'ellipse' are animatable with the committed
8250         patch http://trac.webkit.org/changeset/134352.
8251         This is a follow-up patch to make 'polygon' animatable as well, as long as the number
8252         of vertices between start and end polygon is the same.
8253
8254         Added polygon animation test to existing test:
8255             fast/exclusions/shape-inside/shape-inside-animation.html
8256             css3/masking/clip-path-animation.html
8257
8258         * page/animation/CSSPropertyAnimation.cpp: Forgot to add copyright with last commits.
8259         * rendering/style/BasicShapes.cpp:
8260         (WebCore::BasicShape::canBlend): Polygons are allowed now.
8261         (WebCore::BasicShapePolygon::blend): Interpolate polygon shapes.
8262
8263 2012-11-14  Kentaro Hara  <haraken@chromium.org>
8264
8265         Unreviewed. Fix code generator warnings.
8266
8267         * bindings/scripts/CodeGeneratorV8.pm:
8268         (GenerateFunctionCallback):
8269         (GenerateImplementation):
8270
8271 2012-11-14  Shinya Kawanaka  <shinyak@chromium.org>
8272
8273         Changing pseudoClass (:checked) should cause distribution.
8274         https://bugs.webkit.org/show_bug.cgi?id=101902
8275
8276         Reviewed by Dimitri Glazkov.
8277
8278         When the 'checked' state is changed, we have to invalidate distribution.
8279
8280         According to the HTML5 spec, :checked should match a checked input[type="checkbox"],
8281         a checked input[type="radio"], a selected option, and commands. However, we don't have a command element yet.
8282
8283         Tests: fast/dom/shadow/pseudoclass-update-checked-input.html
8284                fast/dom/shadow/pseudoclass-update-checked-option.html
8285
8286         * html/HTMLInputElement.cpp:
8287         (WebCore::HTMLInputElement::setChecked):
8288         * html/HTMLOptionElement.cpp:
8289         (WebCore::HTMLOptionElement::setSelectedState):
8290
8291 2012-11-14  Kentaro Hara  <haraken@chromium.org>
8292
8293         [V8] Kill $implClassName from CodeGeneratorV8.pm
8294         https://bugs.webkit.org/show_bug.cgi?id=102312
8295
8296         Reviewed by Adam Barth.
8297
8298         $implClassName and $interfaceName are the same.
8299         Sometimes we are passing both $implClassName and $interfaceName to
8300         subroutines. We can kill $implClassName.
8301
8302         No tests. No change in behavior.
8303
8304         * bindings/scripts/CodeGeneratorV8.pm:
8305         (GenerateOpaqueRootForGC):
8306         (GenerateHeader):
8307         (GenerateDomainSafeFunctionGetter):
8308         (GenerateDomainSafeFunctionSetter):
8309         (GenerateConstructorGetter):
8310         (GenerateNormalAttrGetter):
8311         (GenerateReplaceableAttrSetter):
8312         (GenerateNormalAttrSetter):
8313         (GenerateEventListenerCallback):
8314         (GenerateOverloadedFunctionCallback):
8315         (GenerateFunctionCallback):
8316         (GenerateParametersCheck):
8317         (GenerateOverloadedConstructorCallback):
8318         (GenerateSingleConstructorCallback):
8319         (GenerateConstructorCallback):
8320         (GenerateEventConstructorCallback):
8321         (GenerateTypedArrayConstructorCallback):
8322         (GenerateNamedConstructorCallback):
8323         (GenerateImplementation):
8324         (GenerateFunctionCallString):
8325
8326 2012-11-14  Adam Barth  <abarth@webkit.org>
8327
8328         [V8] We can shave one instruction off toV8Fast
8329         https://bugs.webkit.org/show_bug.cgi?id=102297
8330
8331         Reviewed by Kentaro Hara.
8332
8333         There's no reason to store info.Holder in a local variable. Calling
8334         Holder() is essentially free because it's inlined to an offset read.
8335
8336         I doubt this patch moves the performance needle in any measurable way,
8337         but it makes the code slightly prettier.
8338
8339         * bindings/scripts/CodeGeneratorV8.pm:
8340         (GenerateHeader):
8341         * bindings/scripts/test/V8/V8TestNode.h:
8342         (WebCore::toV8Fast):
8343
8344 2012-11-14  Kentaro Hara  <haraken@chromium.org>
8345
8346         [V8] Get rid of a redundant branch in JSValueToNative()
8347         https://bugs.webkit.org/show_bug.cgi?id=102311
8348
8349         Reviewed by Adam Barth.
8350
8351         No tests. No change in behavior.
8352
8353         * bindings/scripts/CodeGeneratorV8.pm:
8354         (JSValueToNative):
8355         (NativeToJSValue):
8356
8357 2012-11-14  Shinya Kawanaka  <shinyak@chromium.org>
8358
8359         Changing pseudoClass (:link) should cause distribution
8360         https://bugs.webkit.org/show_bug.cgi?id=101698
8361
8362         Reviewed by Hajime Morita.
8363
8364         CSSSelector :link matches anchor element with href attribute. When href attribute of an anchor element is changed,
8365         we have to invalidate distribution.
8366
8367         According to the HTML spec, :link matches a link element having href attribute, currently we have not implemented it yet.
8368
8369         Tests: fast/dom/shadow/pseudoclass-update-link-anchor.html
8370                fast/dom/shadow/pseudoclass-update-link-area.html
8371
8372         * html/HTMLAnchorElement.cpp:
8373         (WebCore::HTMLAnchorElement::parseAttribute):
8374
8375 2012-11-14  Kentaro Hara  <haraken@chromium.org>
8376
8377         Remove unused functions from CodeGenerator.pm
8378         https://bugs.webkit.org/show_bug.cgi?id=102316
8379
8380         Reviewed by Adam Barth.
8381
8382         No tests. No change in behavior.
8383
8384         * bindings/scripts/CodeGenerator.pm:
8385         (GenerateCompileTimeCheckForEnumsIfNeeded):
8386
8387 2012-11-14  Tiancheng Jiang  <tijiang@rim.com>
8388
8389         [BlackBerry] Update BB10 form theme.
8390         https://bugs.webkit.org/show_bug.cgi?id=100760
8391
8392         Reviewed by Rob Buis.
8393
8394         RIM PR 225755
8395         Internally Reviewed by Eli Fidler.
8396         Update checkbox, radio and menulist button style. Adjust border width
8397         and line height.
8398
8399         * platform/blackberry/RenderThemeBlackBerry.cpp:
8400         (WebCore::RenderThemeBlackBerry::adjustMenuListButtonStyle):
8401         * platform/blackberry/RenderThemeBlackBerry.h:
8402         (RenderThemeBlackBerry):
8403
8404 2012-11-14  Erik Arvidsson  <arv@chromium.org>
8405
8406         Update DOMException name: InvalidModificationError
8407         https://bugs.webkit.org/show_bug.cgi?id=102281
8408
8409         Reviewed by Kentaro Hara.
8410
8411         Patch 13 of 25 to update DOMException name to match the spec and Firefox.
8412
8413         DOMExcecption INVALID_MODIFICATION_ERR is not used in our code.
8414
8415         * dom/DOMCoreException.cpp:
8416
8417 2012-11-14  Adam Barth  <abarth@webkit.org>
8418
8419         document variable in Document::axObjectCache is actually the topDocument
8420         https://bugs.webkit.org/show_bug.cgi?id=101966
8421
8422         Reviewed by Chris Fleizach.
8423
8424         Name change requested by Darin Adler.
8425
8426         * dom/Document.cpp:
8427         (WebCore::Document::axObjectCache):
8428
8429 2012-11-14  Joseph Pecoraro  <pecoraro@apple.com>
8430
8431         [CF]: XMLHttpRequest "timeout" events firing as "error" events
8432         https://bugs.webkit.org/show_bug.cgi?id=102271
8433
8434         Reviewed by David Kilzer.
8435
8436         Initialize the tiemout flag if the error results from a timeout
8437         in the USE(CFNETWORK) cases.
8438
8439         No new tests. This is covered by http/tests/xmlhttprequest/timeout
8440         tests on ports that USE(CFNETWORK).
8441
8442         * platform/network/cf/ResourceErrorCF.cpp:
8443         (WebCore::ResourceError::ResourceError):
8444         * platform/network/mac/ResourceErrorMac.mm:
8445         (WebCore::ResourceError::ResourceError):
8446
8447 2012-11-14  Nico Weber  <thakis@chromium.org>
8448
8449         [chromium/mac] Fix drawing of buttons, checkboxes, radio boxes, and steppers when the page is scaled
8450         https://bugs.webkit.org/show_bug.cgi?id=102282
8451
8452         Reviewed by James Robinson.
8453
8454         Chromium uses skia, and skia state is synced with CG context state at
8455         LocalCurrentGraphicsContext construction time. So delay that
8456         construction after context transforms have happened.
8457         (This regressed in http://trac.webkit.org/changeset/125830)
8458
8459         Covered by the new pixel test fast/forms/zoomed-controls.html. I
8460         couldn't find an existing test for this.
8461
8462         * platform/mac/ThemeMac.mm:
8463         (WebCore::paintCheckbox):
8464         (WebCore::paintRadio):
8465         (WebCore::paintButton):
8466
8467 2012-11-14  Mark Lam  <mark.lam@apple.com>
8468
8469         Change JSEventListener::m_jsFunction to be a weak ref.
8470         https://bugs.webkit.org/show_bug.cgi?id=101989.
8471
8472         Reviewed by Geoffrey Garen.
8473
8474         No new tests.
8475
8476         * ForwardingHeaders/heap/SlotVisitor.h: Added.
8477         * bindings/js/JSDOMBinding.h: Added #include <heap/SlotVisitor.h>
8478         * bindings/js/JSEventListener.cpp:
8479         (WebCore::JSEventListener::JSEventListener):
8480         (WebCore::JSEventListener::visitJSFunction):
8481         (WebCore::JSEventListener::operator==):
8482          - Removed the m_wrapper checks in operator==() because they are not
8483            needed. There is no longer any threat of m_jsFunction pointing to
8484            recycled memory. The use of weak refs will ensure that m_jsFunction
8485            is either still holding on to its old memory exclusively, or is 0'ed
8486            out when the GC collects it.
8487         * bindings/js/JSEventListener.h:
8488         (JSEventListener):
8489         (WebCore::JSEventListener::jsFunction):
8490
8491 2012-11-14  Dan Carney  <dcarney@google.com>
8492
8493         [V8] Rename dispatchWrap
8494         https://bugs.webkit.org/show_bug.cgi?id=102240
8495
8496         Reviewed by Adam Barth.
8497
8498         Mostly a rename:
8499         dispatchWrap->wrap
8500         wrapSlow->createWrapper
8501         dispatchWrapCustom->wrap
8502
8503         No new tests. No change in functionality.
8504
8505         * bindings/scripts/CodeGeneratorV8.pm:
8506         (GenerateHeader):
8507         (GenerateNormalAttrGetter):
8508         (GenerateImplementation):
8509         (GenerateToV8Converters):
8510         * bindings/scripts/IDLAttributes.txt:
8511         * bindings/scripts/test/V8/V8Float64Array.cpp:
8512         (WebCore::wrap):
8513         (WebCore::V8Float64Array::createWrapper):
8514         * bindings/scripts/test/V8/V8Float64Array.h:
8515         (V8Float64Array):
8516         (WebCore):
8517         (WebCore::toV8Object):
8518         (WebCore::toV8):
8519         * bindings/scripts/test/V8/V8TestActiveDOMObject.cpp:
8520         (WebCore::V8TestActiveDOMObject::createWrapper):
8521         * bindings/scripts/test/V8/V8TestActiveDOMObject.h:
8522         (V8TestActiveDOMObject):
8523         (WebCore::wrap):
8524         (WebCore::toV8Object):
8525         (WebCore::toV8):
8526         * bindings/scripts/test/V8/V8TestCustomNamedGetter.cpp:
8527         (WebCore::V8TestCustomNamedGetter::createWrapper):
8528         * bindings/scripts/test/V8/V8TestCustomNamedGetter.h:
8529         (V8TestCustomNamedGetter):
8530         (WebCore::wrap):
8531         (WebCore::toV8Object):
8532         (WebCore::toV8):
8533         * bindings/scripts/test/V8/V8TestEventConstructor.cpp:
8534         (WebCore::V8TestEventConstructor::createWrapper):
8535         * bindings/scripts/test/V8/V8TestEventConstructor.h:
8536         (V8TestEventConstructor):
8537         (WebCore::wrap):
8538         (WebCore::toV8Object):
8539         (WebCore::toV8):
8540         * bindings/scripts/test/V8/V8TestEventTarget.cpp:
8541         (WebCore::V8TestEventTarget::createWrapper):
8542         * bindings/scripts/test/V8/V8TestEventTarget.h:
8543         (V8TestEventTarget):
8544         (WebCore::wrap):
8545         (WebCore::toV8Object):
8546         (WebCore::toV8):
8547         * bindings/scripts/test/V8/V8TestException.cpp:
8548         (WebCore::V8TestException::createWrapper):
8549         * bindings/scripts/test/V8/V8TestException.h:
8550         (V8TestException):
8551         (WebCore::wrap):
8552         (WebCore::toV8Object):
8553         (WebCore::toV8):
8554         * bindings/scripts/test/V8/V8TestInterface.cpp:
8555         (WebCore::V8TestInterface::createWrapper):
8556         * bindings/scripts/test/V8/V8TestInterface.h:
8557         (V8TestInterface):
8558         (WebCore::wrap):
8559         (WebCore::toV8Object):
8560         (WebCore::toV8):
8561         * bindings/scripts/test/V8/V8TestMediaQueryListListener.cpp:
8562         (WebCore::V8TestMediaQueryListListener::createWrapper):
8563         * bindings/scripts/test/V8/V8TestMediaQueryListListener.h:
8564         (V8TestMediaQueryListListener):
8565         (WebCore::wrap):
8566         (WebCore::toV8Object):
8567         (WebCore::toV8):
8568         * bindings/scripts/test/V8/V8TestNamedConstructor.cpp:
8569         (WebCore::V8TestNamedConstructor::createWrapper):
8570         * bindings/scripts/test/V8/V8TestNamedConstructor.h:
8571         (V8TestNamedConstructor):
8572         (WebCore::wrap):
8573         (WebCore::toV8Object):
8574         (WebCore::toV8):
8575         * bindings/scripts/test/V8/V8TestNode.cpp:
8576         (WebCore::V8TestNode::createWrapper):
8577         * bindings/scripts/test/V8/V8TestNode.h:
8578         (V8TestNode):
8579         (WebCore::wrap):
8580         (WebCore::toV8Object):
8581         (WebCore::toV8):
8582         (WebCore::toV8Fast):
8583         * bindings/scripts/test/V8/V8TestObj.cpp:
8584         (WebCore::V8TestObj::createWrapper):
8585         * bindings/scripts/test/V8/V8TestObj.h:
8586         (V8TestObj):
8587         (WebCore::wrap):
8588         (WebCore::toV8Object):
8589         (WebCore::toV8):
8590         * bindings/scripts/test/V8/V8TestOverloadedConstructors.cpp:
8591         (WebCore::V8TestOverloadedConstructors::createWrapper):
8592         * bindings/scripts/test/V8/V8TestOverloadedConstructors.h:
8593         (V8TestOverloadedConstructors):
8594         (WebCore::wrap):
8595         (WebCore::toV8Object):
8596         (WebCore::toV8):
8597         * bindings/scripts/test/V8/V8TestSerializedScriptValueInterface.cpp:
8598         (WebCore::V8TestSerializedScriptValueInterface::createWrapper):
8599         * bindings/scripts/test/V8/V8TestSerializedScriptValueInterface.h:
8600         (V8TestSerializedScriptValueInterface):
8601         (WebCore::wrap):
8602         (WebCore::toV8Object):
8603         (WebCore::toV8):
8604         * bindings/v8/custom/V8BlobCustom.cpp:
8605         (WebCore::wrap):
8606         * bindings/v8/custom/V8CSSRuleCustom.cpp:
8607         (WebCore::wrap):
8608         * bindings/v8/custom/V8CSSValueCustom.cpp:
8609         (WebCore::wrap):
8610         * bindings/v8/custom/V8CanvasRenderingContextCustom.cpp:
8611         (WebCore::wrap):
8612         * bindings/v8/custom/V8DataViewCustom.cpp:
8613         (WebCore::wrap):
8614         * bindings/v8/custom/V8DocumentCustom.cpp:
8615         (WebCore::wrap):
8616         * bindings/v8/custom/V8ElementCustom.cpp:
8617         (WebCore):
8618         (WebCore::wrap):
8619         * bindings/v8/custom/V8EntryCustom.cpp:
8620         (WebCore::wrap):
8621         * bindings/v8/custom/V8EntrySyncCustom.cpp:
8622         (WebCore::wrap):
8623         * bindings/v8/custom/V8EventCustom.cpp:
8624         (WebCore):
8625         (WebCore::wrap):
8626         * bindings/v8/custom/V8HTMLCollectionCustom.cpp:
8627         (WebCore::wrap):
8628         * bindings/v8/custom/V8HTMLDocumentCustom.cpp:
8629         (WebCore::wrap):
8630         * bindings/v8/custom/V8HTMLElementCustom.cpp:
8631         (WebCore::wrap):
8632         * bindings/v8/custom/V8ImageDataCustom.cpp:
8633         (WebCore::wrap):
8634         * bindings/v8/custom/V8NodeCustom.cpp:
8635         (WebCore::wrap):
8636         * bindings/v8/custom/V8PerformanceEntryCustom.cpp:
8637         (WebCore::wrap):
8638         * bindings/v8/custom/V8SVGDocumentCustom.cpp:
8639         (WebCore::wrap):
8640         * bindings/v8/custom/V8SVGElementCustom.cpp:
8641         (WebCore::wrap):
8642         * bindings/v8/custom/V8SVGPathSegCustom.cpp:
8643         (WebCore::wrap):
8644         * bindings/v8/custom/V8StyleSheetCustom.cpp:
8645         (WebCore::wrap):
8646         * dom/make_names.pl:
8647         (printWrapperFunctions):
8648         (printWrapperFactoryCppFile):
8649
8650 2012-11-14  Ryuan Choi  <ryuan.choi@gmail.com>
8651
8652         [EFL] Refactor theme to choose whether to support foreground color of selection
8653         https://bugs.webkit.org/show_bug.cgi?id=102037
8654
8655         Reviewed by Gyuyoung Kim.
8656
8657         RenderThemeEfl can change foreground color of selection using theme file.
8658         But it can not disable supports of foreground color to keep the text color
8659         which is selected.
8660
8661         This patch refactors color classes of theme file from active/inactive classes
8662         to foreground/background classes so that RenderThemeEfl checks whether
8663         theme file supports foreground color class.
8664
8665         * platform/efl/RenderThemeEfl.cpp:
8666         (WebCore::fillColorsFromEdjeClass):
8667         (WebCore::RenderThemeEfl::setColorFromThemeClass):
8668         (WebCore::RenderThemeEfl::loadTheme):
8669         (WebCore::RenderThemeEfl::RenderThemeEfl):
8670         (WebCore::RenderThemeEfl::supportsSelectionForegroundColors):
8671         (WebCore):
8672         * platform/efl/RenderThemeEfl.h:
8673         (RenderThemeEfl):
8674
8675 2012-11-14  Tony Chang  <tony@chromium.org>
8676
8677         Convert m_selectorVector back to a stack allocated m_reusableSelectorVector
8678         https://bugs.webkit.org/show_bug.cgi?id=102295
8679
8680         Reviewed by Andreas Kling.
8681
8682         Revert r125252 because we're not going to go forward with implementing CSS hierarchies at this time.
8683
8684         No new tests because there should be no change in behavior.
8685
8686         * css/CSSGrammar.y.in:
8687         * css/CSSParser.cpp:
8688         (WebCore::CSSParser::CSSParser):
8689         (WebCore::CSSParser::parseValue):
8690         (WebCore::CSSParser::parseColor):
8691         (WebCore::CSSParser::parseDeclaration):
8692         (WebCore):
8693         (WebCore::filterProperties):
8694         (WebCore::CSSParser::createStylePropertySet):
8695         (WebCore::CSSParser::addProperty):
8696         (WebCore::CSSParser::rollbackLastProperties):
8697         (WebCore::CSSParser::clearProperties):
8698         (WebCore::CSSParser::parse4Values):
8699         (WebCore::CSSParser::parseFlowThread):
8700         (WebCore::CSSParser::addTextDecorationProperty):
8701         (WebCore::CSSParser::createFloatingSelectorVector):
8702         (WebCore::CSSParser::sinkFloatingSelectorVector):
8703         (WebCore::CSSParser::createStyleRule):
8704         (WebCore::CSSParser::createFontFaceRule):
8705         (WebCore::CSSParser::createPageRule):
8706         (WebCore::CSSParser::setReusableRegionSelectorVector):
8707         (WebCore::CSSParser::startDeclarationsForMarginBox):
8708         (WebCore::CSSParser::endDeclarationsForMarginBox):
8709         (WebCore::CSSParser::deleteFontFaceOnlyValues):
8710         * css/CSSParser.h:
8711         (WebCore::CSSParser::hasProperties):
8712         (WebCore::CSSParser::reusableSelectorVector):
8713         (CSSParser):
8714         (WebCore::CSSParser::reusableRegionSelectorVector):
8715         * css/CSSParserValues.cpp:
8716         (WebCore::CSSParserSelector::adoptSelectorVector):
8717         * css/CSSParserValues.h:
8718         (CSSParserSelector):
8719         * css/CSSSelectorList.cpp:
8720         (WebCore::CSSSelectorList::adoptSelectorVector):
8721         * css/CSSSelectorList.h:
8722         (CSSSelectorList):
8723         * css/SVGCSSParser.cpp:
8724         (WebCore::CSSParser::parseSVGValue):
8725         * css/StyleRule.cpp:
8726         (WebCore::StyleRuleRegion::StyleRuleRegion):
8727         * css/StyleRule.h:
8728         (WebCore::StyleRule::parserAdoptSelectorVector):
8729         (WebCore::StyleRulePage::parserAdoptSelectorVector):
8730         (WebCore::StyleRuleRegion::create):
8731         (StyleRuleRegion):
8732
8733 2012-11-14  Alec Flett  <alecflett@chromium.org>
8734
8735         Add tests for explicit serialization values
8736         https://bugs.webkit.org/show_bug.cgi?id=96818
8737
8738         Reviewed by Adam Barth.
8739
8740         Expose direct access to the serialization/deserialization mechanisms
8741         of SerializedScriptValue to DumpRenderTree.
8742
8743         * testing/Internals.cpp:
8744         (WebCore::Internals::serializeObject):
8745         (WebCore):
8746         (WebCore::Internals::deserializeBuffer):
8747         * testing/Internals.h:
8748         (WebCore):
8749         * testing/Internals.idl:
8750
8751 2012-11-14  Michael Pruett  <michael@68k.org>
8752
8753         IndexedDB: Add clear() method to JSC ScriptValue
8754         https://bugs.webkit.org/show_bug.cgi?id=102288
8755
8756         Reviewed by Kentaro Hara.
8757
8758         IndexedDB uses the ScriptValue::clear() method, which existed
8759         previously only in the V8 implementation of ScriptValue. This
8760         change is necessary to implement IndexedDB for JSC.
8761
8762         Tests: storage/indexeddb/*
8763
8764         * bindings/js/ScriptValue.h:
8765         (WebCore::ScriptValue::clear):
8766         (ScriptValue):
8767
8768 2012-11-14  Joshua Bell  <jsbell@chromium.org>
8769
8770         IndexedDB: Indexing tests are flaky-crashing
8771         https://bugs.webkit.org/show_bug.cgi?id=102283
8772
8773         Reviewed by Tony Chang.
8774
8775         Don't commit the transaction if there are outstanding pre-emptive events
8776         from indexing operations.
8777
8778         Speculative fix for the flakiness.
8779
8780         * Modules/indexeddb/IDBTransactionBackendImpl.cpp:
8781         (WebCore::IDBTransactionBackendImpl::taskEventTimerFired):
8782
8783 2012-11-14  Tony Chang  <tony@chromium.org>
8784
8785         Crash in flexbox when removing absolutely positioned children
8786         https://bugs.webkit.org/show_bug.cgi?id=100465
8787
8788         Reviewed by Ojan Vafai.
8789
8790         We use m_numberOfChildrenOnFirstLine when computing baseline alignment.
8791         This value gets set during flexbox layout. When we remove an absolutely
8792         positioned child, we don't relayout and this value would get stale.
8793
8794         Change m_numberOfChildrenOnFirstLine to m_numberOfInFlowChildrenOnFirstLine
8795         so the value doesn't get stale when we remove absolutely positioned children.
8796         Also change the loop in firstLineBoxBaseline to bail if we run off the end of
8797         the iterator.
8798
8799         Test: css3/flexbox/crash-removing-out-of-flow-child.html
8800
8801         * rendering/RenderFlexibleBox.cpp:
8802         (WebCore::RenderFlexibleBox::RenderFlexibleBox):
8803         (WebCore::RenderFlexibleBox::firstLineBoxBaseline):
8804         (WebCore::RenderFlexibleBox::layoutBlock):
8805         (WebCore::RenderFlexibleBox::repositionLogicalHeightDependentFlexItems):
8806         (WebCore::RenderFlexibleBox::layoutAndPlaceChildren):
8807         * rendering/RenderFlexibleBox.h:
8808
8809 2012-11-14  Joshua Bell  <jsbell@chromium.org>
8810
8811         IndexedDB: Remove magic numbers in record comparator, handle missing case
8812         https://bugs.webkit.org/show_bug.cgi?id=102255
8813
8814         Reviewed by Tony Chang.
8815
8816         For some ranges of metadata entries, a simple type byte comparison is sufficient
8817         for the backing store comparator. In two places those ranges used magic numbers,
8818         one of which was incorrect - which could lead to failed reads/writes.
8819
8820         Test: webkit_unit_tests --gtest_filter='IDBLevelDBCodingTest.ComparisonTest'
8821
8822         * Modules/indexeddb/IDBLevelDBCoding.cpp:
8823         (IDBLevelDBCoding):
8824         (WebCore::IDBLevelDBCoding::compare):
8825         * Modules/indexeddb/IDBLevelDBCoding.h:
8826
8827 2012-11-14  Dirk Schulze  <krit@webkit.org>
8828
8829         Cleanup BasicShape blending check
8830         https://bugs.webkit.org/show_bug.cgi?id=102289
8831
8832         Reviewed by Daniel Bates.
8833
8834         CSSPropertyAnimation had the same code for varifying that two BasicShape objects can be blended 
8835         twice. Refactor the code and add a canBlend method in BasicShape that combines both checks. This
8836         is a preparation for follow-up patches.
8837
8838         Pure refactoring without behavior change, no new tests.
8839
8840         * page/animation/CSSPropertyAnimation.cpp:
8841         (WebCore::blendFunc): Call new canBlend method for blending verification.
8842         * rendering/style/BasicShapes.cpp:
8843         (WebCore::BasicShape::canBlend): Check if two BasicShape objects can be blended.
8844         (WebCore):
8845         * rendering/style/BasicShapes.h:
8846
8847 2012-11-14  Dirk Schulze  <krit@webkit.org>
8848
8849         [CSS Exclusions] Basic shapes on 'shape-inside' should be animatable
8850         https://bugs.webkit.org/show_bug.cgi?id=102123
8851
8852         Reviewed by Antti Koivisto.
8853
8854         The '-webkit-shape-inside' propery takes a BasicShape as input like
8855         '-webkit-clip-path'. Follow up on http://trac.webkit.org/changeset/134352 and
8856         make '-webkit-shape-inside' animatable as well.
8857
8858         Test: fast/exclusions/shape-inside/shape-inside-animation.html
8859
8860         * page/animation/CSSPropertyAnimation.cpp:
8861         (WebCore::blendFunc): Blend fuction for exclusion shapes. The property takes another
8862             input then '-webkit-clip-path'.
8863         (WebCore):
8864         (PropertyWrapperBasicShape): Add wrapper for BasicShape object. Can be reused by
8865             '-webkit-shape-ourside' as well.
8866         (WebCore::PropertyWrapperBasicShape::PropertyWrapperBasicShape):
8867         (WebCore::CSSPropertyAnimation::ensurePropertyMap):
8868
8869 2012-11-14  Helder Correia  <helder.correia@nokia.com>
8870
8871         [TexMap][Cairo] Accelerated compositing debug visuals
8872         https://bugs.webkit.org/show_bug.cgi?id=101883
8873
8874         Reviewed by Kenneth Rohde Christiansen.
8875
8876         No new tests, just introducing a debug feature.
8877
8878         Add a Cairo implementation to complement the patch from bug 90116
8879         (http://trac.webkit.org/changeset/122275).
8880
8881         For this feature to be enabled, the environment variable
8882         WEBKIT_SHOW_COMPOSITING_DEBUG_VISUALS must be set to 1. Once enabled,
8883         both repaint counters and tile borders will be painted.
8884
8885         A Cairo-specific drawRepaintCounter() implementation was added to
8886         TextureMapperGL. A cairo_surface_t is used as scratch buffer to paint
8887         the counters. It is then uploaded to a BitmapTexture acquired
8888         from the pool and finally draw by TextureMapper. The actual compositing
8889         happens inside LayerBackingStore::paintToTextureMapper(). Each
8890         LayerBackingStoreTile has a repaint counter which gets incremented in
8891         LayerBackingStore::updateTile().
8892
8893         * platform/graphics/texmap/TextureMapperGL.cpp:
8894         (WebCore::TextureMapperGL::drawRepaintCounter):
8895
8896 2012-11-14  Michael Pruett  <michael@68k.org>
8897
8898         IndexedDB: Add JSNoStaticTables to IndexedDB interfaces
8899         https://bugs.webkit.org/show_bug.cgi?id=102268
8900
8901         Reviewed by Geoffrey Garen.
8902
8903         Add JSNoStaticTables attribute to IndexedDB interface
8904         definitions. This attribute must be specified in interfaces
8905         which can be accessed from workers.
8906
8907         Tests: storage/indexeddb/*
8908
8909         * Modules/indexeddb/IDBAny.idl:
8910         * Modules/indexeddb/IDBCursor.idl:
8911         * Modules/indexeddb/IDBCursorWithValue.idl:
8912         * Modules/indexeddb/IDBDatabase.idl:
8913         * Modules/indexeddb/IDBDatabaseException.idl:
8914         * Modules/indexeddb/IDBFactory.idl:
8915         * Modules/indexeddb/IDBIndex.idl:
8916         * Modules/indexeddb/IDBKey.idl:
8917         * Modules/indexeddb/IDBKeyRange.idl:
8918         * Modules/indexeddb/IDBObjectStore.idl:
8919         * Modules/indexeddb/IDBOpenDBRequest.idl:
8920         * Modules/indexeddb/IDBRequest.idl:
8921         * Modules/indexeddb/IDBTransaction.idl:
8922         * Modules/indexeddb/IDBUpgradeNeededEvent.idl:
8923         * Modules/indexeddb/IDBVersionChangeEvent.idl:
8924         * Modules/indexeddb/IDBVersionChangeRequest.idl:
8925         * dom/DOMStringList.idl:
8926
8927 2012-11-14  Michael Pruett  <michael@68k.org>
8928
8929         IndexedDB: Replace int64 with int64_t
8930         https://bugs.webkit.org/show_bug.cgi?id=102270
8931
8932         Reviewed by Tony Chang.
8933
8934         Cleaning up coding inconsistencies, no change in behavior.
8935
8936         Tests: storage/indexeddb/*
8937
8938         * Modules/indexeddb/IDBDatabase.cpp:
8939         (WebCore::IDBDatabase::deleteObjectStore):
8940         * Modules/indexeddb/IDBObjectStoreBackendImpl.cpp:
8941         (WebCore::IDBObjectStoreBackendImpl::putInternal):
8942
8943 2012-11-14  Viatcheslav Ostapenko  <v.ostapenko@samsung.com>
8944
8945         [EFL][WK2] White flicker when scrolling big pages with dark background on slower hardware.
8946         https://bugs.webkit.org/show_bug.cgi?id=102000
8947
8948         Reviewed by Noam Rosenthal.
8949
8950         Add helper functions to clear viewport before painting. Those functions
8951         used by EFL Webkit2 port to set view background to match page background
8952         in order to reduce visibility of flicker during scrolling/scaling/repainting
8953         where page tiles are not ready.
8954
8955         * platform/graphics/texmap/TextureMapper.h:
8956         * platform/graphics/texmap/TextureMapperGL.cpp:
8957         (WebCore::TextureMapperGL::drawSolidColor):
8958         (WebCore):
8959         * platform/graphics/texmap/TextureMapperGL.h:
8960         * platform/graphics/texmap/TextureMapperImageBuffer.cpp:
8961         (WebCore::TextureMapperImageBuffer::drawSolidColor):
8962         (WebCore):
8963         * platform/graphics/texmap/TextureMapperImageBuffer.h:
8964
8965 2012-11-14  Mark Lam  <mark.lam@apple.com>
8966
8967         Fixed regressions due to adding JSEventListener::m_wrapper null checks.
8968         https://bugs.webkit.org/show_bug.cgi?id=102183.
8969
8970         Reviewed by Geoffrey Garen.
8971
8972         Fixed JSEventListener::operator==() to work within the contract that
8973         when m_wrapper is 0, m_jsFunction is also expected to be 0. Also fixed
8974         some typos in comments.
8975
8976         No new tests.
8977
8978         * bindings/js/JSEventListener.cpp:
8979         (WebCore::JSEventListener::visitJSFunction):
8980         (WebCore::JSEventListener::operator==):
8981         * bindings/js/JSEventListener.h:
8982         (WebCore::JSEventListener::jsFunction):
8983
8984 2012-11-14  Nate Chapin  <japhet@chromium.org>
8985
8986         Fix chromium asserts from r134649.
8987
8988         Rubber-stamped by Adam Barth.
8989
8990         MainResourceLoader was calling releaseResources() twice when cancelled
8991         within MainResourceLoader::load(), so check reachedTerminalState() before
8992         calling releaseResources() there.
8993
8994         * loader/MainResourceLoader.cpp:
8995         (WebCore::MainResourceLoader::load):
8996
8997 2012-11-14  Andreas Kling  <kling@webkit.org>
8998
8999         Only resolve presentation attribute style once per shared ElementAttributeData.
9000         <http://webkit.org/b/100990>
9001
9002         Reviewed by Antti Koivisto.
9003
9004         Track the "presentation attribute style dirty" state on ElementAttributeData instead of in a Node flag.
9005         This allows us to avoid duplicate work for ElementAttributeData that are shared between multiple elements,
9006         since the state is no longer per-Element.
9007
9008         I've left the presentation attribute cache in there for now, since it still covers the case where
9009         two elements have the same presentation attributes but different non-presentation attributes.
9010         It's likely that we're not gaining much from it anymore, but that's a topic for another patch.
9011
9012         (WebCore::StyledElement::rebuildPresentationAttributeStyle):
9013         * dom/StyledElement.h:
9014         (WebCore::StyledElement::presentationAttributeStyle):
9015         (WebCore::ElementAttributeData::ElementAttributeData):
9016         * dom/ElementAttributeData.h:
9017         (WebCore::ElementAttributeData::ElementAttributeData):
9018         (ElementAttributeData):
9019         * dom/Node.h:
9020
9021             Move presentation attribute style dirty flag from Node to ElementAttributeData.
9022
9023         * dom/ElementAttributeData.cpp:
9024         (SameSizeAsElementAttributeData):
9025
9026             Add a compile-time object size assertion for ElementAttributeData.
9027
9028         * dom/StyledElement.cpp:
9029         (WebCore::StyledElement::attributeChanged):
9030
9031             Don't mark the presentation attribute style dirty if the element is using an immutable (implies
9032             shared) ElementAttributeData and another element has already generated the StylePropertySet.
9033             The element itself is still marked for style recalc like before, this just avoids the process
9034             of converting the attributes to CSS properties.
9035
9036 2012-11-14  Scott Violet  <sky@chromium.org>
9037
9038         [Chromium] Refactor theme font lookup into a factory
9039         https://bugs.webkit.org/show_bug.cgi?id=101949
9040
9041         Reviewed by Tony Chang.
9042
9043         This will ultimately allow us to use what is currently in RenderThemeChromiumLinux on windows.
9044
9045         No new tests. Refactoring only.
9046
9047         * WebCore.gyp/WebCore.gyp:
9048         * WebCore.gypi:
9049         * rendering/RenderThemeChromiumFontProvider.cpp: Added.
9050         (WebCore):
9051         (WebCore::RenderThemeChromiumFontProvider::defaultGUIFont): Moved into RenderThemeFontProvider.
9052         * rendering/RenderThemeChromiumFontProvider.h: Added.
9053         (WTF):
9054         (WebCore):
9055         (RenderThemeChromiumFontProvider): This is the font related methods.
9056         * rendering/RenderThemeChromiumFontProviderLinux.cpp: Added.
9057         (WebCore):
9058         (WebCore::RenderThemeChromiumFontProvider::setDefaultFontSize): What was in RenderThemeChromiumSkia::setDefaultFontSize.
9059         (WebCore::RenderThemeChromiumFontProvider::systemFont): What was in RenderThemeChromiumSkia::systemFont.
9060         * rendering/RenderThemeChromiumFontProviderWin.cpp: Added.
9061         (WebCore):
9062         (WebCore::pointsToPixels): Moved from RenderThemeChromiumWin.
9063         (WebCore::getNonClientMetrics): Moved from RenderThemeChromiumWin.
9064         (WebCore::systemFontSize): Moved from RenderThemeChromiumWin.
9065         (WebCore::RenderThemeChromiumFontProvider::systemFont): Moved from RenderThemeChromiumWin.
9066         (WebCore::RenderThemeChromiumFontProvider::setDefaultFontSize): Moved from RenderThemeChromiumWin.
9067         * rendering/RenderThemeChromiumSkia.cpp:
9068         (WebCore::RenderThemeChromiumSkia::RenderThemeChromiumSkia): Moved into RenderThemeFontProvider.
9069         (WebCore::RenderThemeChromiumSkia::systemFont): Calls to RenderThemeChromiumFontProvider.
9070         (WebCore::RenderThemeChromiumSkia::setDefaultFontSize): Calls to RenderThemeChromiumFontProvider.
9071         * rendering/RenderThemeChromiumSkia.h:
9072         (RenderThemeChromiumSkia): Moves defaultFontSize into RenderThemeChromiumFontProvider.
9073         * rendering/RenderThemeChromiumWin.cpp: Moves font code into RenderThemeFontProviderWin.
9074         (WebCore):
9075         * rendering/RenderThemeChromiumWin.h: Removed overriden methods now handled by RenderThemeChromiumSkia.
9076         (RenderThemeChromiumWin):
9077
9078 2012-11-14  Erik Arvidsson  <arv@chromium.org>
9079
9080         Update DOMException name: InUseAttributeError
9081         https://bugs.webkit.org/show_bug.cgi?id=102141
9082
9083         Reviewed by Ojan Vafai.
9084
9085         Patch 10 of 25 to update DOMException name to match the spec and Firefox.
9086
9087         The name for this is not in the spec but the case was selected to match
9088         Firefox. http://mxr.mozilla.org/mozilla-central/source/dom/base/domerr.msg#18
9089
9090         INUSE_ATTRIBUTE_ERR is historical and not used in any spec or any of our tests.
9091
9092         * dom/DOMCoreException.cpp:
9093         * dom/ExceptionCode.h:
9094
9095 2012-11-14  Lynn Neir  <lynn.neir@skype.net>
9096
9097         [WinCairo] Incorrect line-height for styled menulist (select tag)
9098         in windows theme.
9099         https://bugs.webkit.org/show_bug.cgi?id=79435
9100
9101         Reviewed by Brent Fulgham
9102
9103         Applied same fix as in RenderThemeSafari::adjustMenuListButtonStyle
9104         to Windows theme to fix issue.
9105
9106         Tests: fast/forms/menulist-restrict-line-height.html
9107                fast/forms/control-restrict-line-height.html
9108                fast/forms/basic-selects.html
9109
9110         * rendering/RenderThemeWin.cpp:
9111         (WebCore::RenderThemeWin::adjustMenuListButtonStyle): Set line
9112         height to the correct initial height.
9113
9114 2012-11-14  Erik Arvidsson  <arv@chromium.org>
9115
9116         Update DOMException name: WrongDocumentError
9117         https://bugs.webkit.org/show_bug.cgi?id=102096
9118
9119         Reviewed by Ojan Vafai.
9120
9121         Patch 4 of 25 to update DOMException name to match the spec and Firefox.
9122
9123         Updated existing tests.
9124
9125         * dom/DOMCoreException.cpp:
9126
9127 2012-11-14  Nate Chapin  <japhet@chromium.org>
9128
9129         Move empty loading to DocumentLoader, simplify FrameLoader::init()
9130         https://bugs.webkit.org/show_bug.cgi?id=101512
9131
9132         Reviewed by Adam Barth.
9133
9134         No new tests, though several outputs changed because we no longer send resource
9135             load callbacks for empty loads.
9136
9137         * loader/DocumentLoader.cpp:
9138         (WebCore::DocumentLoader::startLoadingMainResource): Handle empty main resource
9139             loads directly here.
9140         * loader/DocumentLoader.h:
9141         * loader/FrameLoader.cpp:
9142         (WebCore::FrameLoader::FrameLoader): Initialize some variables whose values
9143             were previously being reset in init(). Given that the FrameLoader is in
9144             an inconsistent state before init() is called anyway, there doesn't seem
9145             to be a disadvantage to just initializing them to their post-init() values.
9146         (WebCore::FrameLoader::init): Just call startLoadingMainResource(), instead of
9147             doing a bunch of direct calls to functions FrameLoader shouldn't know about.
9148         * loader/FrameLoaderStateMachine.cpp:
9149         * loader/FrameLoaderStateMachine.h:
9150         * loader/MainResourceLoader.cpp: Throughout, remove the concept of an empty load.
9151         (WebCore::MainResourceLoader::loadNow): This only returned true when an empty
9152             load got deferred, which won't happen now. Return void and always treat
9153             as returning false.
9154         * loader/MainResourceLoader.h:
9155
9156 2012-11-14  Erik Arvidsson  <arv@chromium.org>
9157
9158         Update DOMException name: InvalidStateError
9159         https://bugs.webkit.org/show_bug.cgi?id=102241
9160
9161         Reviewed by Ojan Vafai.
9162
9163         Patch 11 of 25 to update DOMException name to match the spec and Firefox.
9164
9165         Updated existing tests.
9166
9167         * dom/DOMCoreException.cpp:
9168
9169 2012-11-14  Joshua Bell  <jsbell@chromium.org>
9170
9171         Rename NATIVE_TYPE_ERR to TypeError
9172         https://bugs.webkit.org/show_bug.cgi?id=102114
9173
9174         Reviewed by Kentaro Hara.
9175
9176         Defines names (mostly) matching WebIDL exception types for use by dom (etc) code.
9177         V8 binding code had colliding enum members, which required prefixing.
9178
9179         No new tests - just internal renames.
9180
9181         * Modules/indexeddb/IDBCursor.cpp: s/NATIVE_TYPE_ERR/TypeError/g
9182         (WebCore::IDBCursor::advance):
9183         (WebCore::IDBCursor::stringToDirection):
9184         (WebCore::IDBCursor::directionToString):
9185         * Modules/indexeddb/IDBDatabase.cpp: Ditto.
9186         (WebCore::IDBDatabase::setVersion):
9187         * Modules/indexeddb/IDBFactory.cpp: Ditto.
9188         (WebCore::IDBFactory::open):
9189         (WebCore::IDBFactory::openInternal):
9190         (WebCore::IDBFactory::deleteDatabase):
9191         * Modules/indexeddb/IDBObjectStore.cpp: Ditto.
9192         (WebCore::IDBObjectStore::createIndex):
9193         * Modules/indexeddb/IDBTransaction.cpp: Ditto.
9194         (WebCore::IDBTransaction::stringToMode):
9195         (WebCore::IDBTransaction::modeToString):
9196         * bindings/js/JSDOMBinding.cpp: Ditto.
9197         (WebCore::setDOMException):
9198         * bindings/v8/DateExtension.cpp: Prefix ErrorType enum/members w/ V8/v8.
9199         (WebCore::DateExtension::OnSleepDetected):
9200         * bindings/v8/NPV8Object.cpp: Ditto.
9201         (_NPN_SetException):
9202         * bindings/v8/V8Binding.cpp: Ditto.
9203         (WebCore::throwError):
9204         (WebCore::handleMaxRecursionDepthExceeded):
9205         * bindings/v8/V8Binding.h: Ditto.
9206         (WebCore):
9207         * bindings/v8/V8NPObject.cpp: Ditto.
9208         (WebCore::npObjectInvokeImpl):
9209         (WebCore::npObjectGetProperty):
9210         (WebCore::npObjectSetProperty):
9211         (WebCore::npObjectPropertyEnumerator):
9212         * bindings/v8/V8ThrowException.cpp: Rename ALL the errors!
9213         (WebCore::V8ThrowException::setDOMException):
9214         (WebCore::V8ThrowException::throwError):
9215         (WebCore::V8ThrowException::throwTypeError):
9216         (WebCore::V8ThrowException::throwNotEnoughArgumentsError):
9217         * bindings/v8/V8ThrowException.h:
9218         (V8ThrowException):
9219         * bindings/v8/WorkerContextExecutionProxy.cpp: Prefixing (continued)
9220         (WebCore::WorkerContextExecutionProxy::evaluate):
9221         * bindings/v8/custom/V8ArrayBufferCustom.cpp: Ditto.
9222         (WebCore::V8ArrayBuffer::constructorCallback):
9223         * bindings/v8/custom/V8ArrayBufferViewCustom.h: Ditto.
9224         (WebCore::constructWebGLArrayWithArrayBufferArgument):
9225         (WebCore::constructWebGLArray):
9226         (WebCore::setWebGLArrayHelper):
9227         * bindings/v8/custom/V8AudioContextCustom.cpp: Ditto.
9228         (WebCore::V8AudioContext::constructorCallback):
9229         * bindings/v8/custom/V8BlobCustom.cpp: Ditto.
9230         (WebCore::V8Blob::constructorCallback):
9231         * bindings/v8/custom/V8ClipboardCustom.cpp: Ditto.
9232         (WebCore::V8Clipboard::clearDataCallback):
9233         (WebCore::V8Clipboard::setDragImageCallback):
9234         * bindings/v8/custom/V8DOMFormDataCustom.cpp: Ditto.
9235         (WebCore::V8DOMFormData::appendCallback):
9236         * bindings/v8/custom/V8SQLResultSetRowListCustom.cpp: Ditto.
9237         (WebCore::V8SQLResultSetRowList::itemCallback):
9238         * dom/ExceptionCode.h: Add WebIDL exception types.
9239
9240 2012-11-14  Tiancheng Jiang  <tijiang@rim.com>
9241
9242         [BlackBerry] Style BB10 time input field font.
9243         https://bugs.webkit.org/show_bug.cgi?id=102260.
9244
9245         Reviewed by Rob Buis.
9246
9247         RIM PR 243355
9248         Adjust time input field font using BB10 system default font.
9249
9250         * css/themeBlackBerry.css:
9251         (input[type="date"], input[type="datetime"], input[type="datetime-local"], input[type="time"], input[type="month"]):
9252
9253 2012-11-14  Li Yin  <li.yin@intel.com>
9254
9255         createDelay should raise exception when the maxDelayTime parameter is incorrect.
9256         https://bugs.webkit.org/show_bug.cgi?id=102173
9257
9258         Reviewed by Chris Rogers.
9259
9260         Spec: https://dvcs.w3.org/hg/audio/raw-file/tip/webaudio/specification.html
9261         The specified value must be greater than zero and less than three minutes or a
9262         NOT_SUPPORTED_ERR exception will be thrown.
9263
9264         Tests: webaudio/delaynode-maxdelaylimit.html
9265
9266         * Modules/webaudio/AudioContext.cpp:
9267         (WebCore::AudioContext::createDelay):
9268         * Modules/webaudio/AudioContext.h:
9269         (AudioContext):
9270         * Modules/webaudio/AudioContext.idl: Add raising exception for createDelay.
9271         * Modules/webaudio/DelayNode.cpp:
9272         (WebCore):
9273         (WebCore::DelayNode::DelayNode):
9274         * Modules/webaudio/DelayNode.h:
9275         (WebCore::DelayNode::create):
9276         (DelayNode):
9277
9278 2012-11-14  Simon Fraser  <simon.fraser@apple.com>
9279
9280         Don't pass a paintingRoot when painting from RenderLayerBacking
9281         https://bugs.webkit.org/show_bug.cgi?id=102256
9282
9283         Reviewed by David Hyatt.
9284
9285         The 'paintingRoot' parameter to the RenderLayer paint functions
9286         is used when painting just a subtree (e.g. when painting dragged
9287         selections). There is no need to pass it when a RenderLayerBacking
9288         paints its contents or overlay scrollbars.
9289         
9290         Passing it requires an expensive isDescendant() check, so passing
9291         null is more efficient.
9292         
9293         * rendering/RenderLayer.h:
9294         (WebCore::RenderLayer::LayerPaintingInfo::LayerPaintingInfo):
9295         * rendering/RenderLayerBacking.cpp:
9296         (WebCore::RenderLayerBacking::paintIntoLayer):
9297         (WebCore::RenderLayerBacking::paintContents):
9298         * rendering/RenderLayerBacking.h:
9299         (RenderLayerBacking):
9300
9301 2012-11-14  Alec Flett  <alecflett@chromium.org>
9302
9303         Add DOMRequestState to maintain world/ScriptExecutionContext state
9304         https://bugs.webkit.org/show_bug.cgi?id=102102
9305
9306         Reviewed by Adam Barth.
9307
9308         Introduce DOMRequestState, and convert IndexedDB over.
9309
9310         No new tests, this is an abstraction layer for existing code.
9311
9312         * Modules/indexeddb/IDBRequest.cpp:
9313         (WebCore::IDBRequest::IDBRequest):
9314         (WebCore::IDBRequest::onSuccess):
9315         (WebCore::IDBRequest::dispatchEvent):
9316         * Modules/indexeddb/IDBRequest.h:
9317         (IDBRequest):
9318         * WebCore.gypi:
9319         * bindings/v8/DOMRequestState.h: Added.
9320         (WebCore):
9321         (DOMRequestState):
9322         (WebCore::DOMRequestState::DOMRequestState):
9323         (Scope):
9324         (WebCore::DOMRequestState::Scope::Scope):
9325         (WebCore::DOMRequestState::scope):
9326
9327 2012-11-14  Justin Novosad  <junov@google.com>
9328
9329         Boxes with rounded corners and thin borders are too slow to draw
9330         https://bugs.webkit.org/show_bug.cgi?id=101974
9331
9332         Reviewed by Simon Fraser.
9333
9334         With the current implementation RenderBox::
9335         determineBackgroundBleedAvoidance() uses the slow path
9336         BackgroundBleedUseTransparencyLayer for some very common use cases,
9337         notably for drawing rectangles with rounded corners that have thin
9338         borders. This is because the BackgroundBleedShrinkBackground
9339         strategy requires a border at least two pixels wide on all sides. This
9340         patch introduce drawing strategy BackgroundBleedBackgroundOverBorder.
9341         This approach consists in drawing the border first, with an inset inner
9342         edge (for anti-aliased compositing to work well).  This approach only
9343         works with opaque solid edges and opaque single-layer backgrounds.
9344         By using this approach rather than BackgroundBleedUseTransparencyLayer,
9345         we save two clipPath, one save and one saveLayer on the
9346         GraphicsContext. This patch gets good coverage from existing layout
9347         tests. One additional test was added to exercise mitring, thick edges
9348         and anti-aliasing edge cases under the new painting algorithm.
9349
9350         Test: fast/borders/border-radius-wide-border-05.html
9351
9352         * rendering/RenderBox.cpp:
9353         (WebCore::RenderBox::determineBackgroundBleedAvoidance):
9354         Added selection criteria for BackgroundOverBorder
9355         (WebCore::RenderBox::paintBoxDecorations):
9356         Added a preliminary paintBorder pass for BackgroundOverBorder
9357         (WebCore::RenderBox::paintBackground):
9358         Insetting the background to to innerBorder when bleedAvoidance is
9359         BackgroundOverBorder.  This why BackgroundOverBorder only works for
9360         Opaque solid edges.
9361         (WebCore):
9362         (WebCore::RenderBox::backgroundIsSingleOpaqueLayer):
9363         Utility method use by determineBackgroundBleedAvoidance to test the
9364         background's eligibility for BackgroundOverBorder bleed avoidance
9365         strategy.  The reason the background must be a single layer is to avoid
9366         color bleeding from layer compositing along anti-aliased edges
9367         * rendering/RenderBox.h:
9368         (RenderBox):
9369         * rendering/RenderBoxModelObject.cpp:
9370         (WebCore::RenderBoxModelObject::getBackgroundRoundedRect):
9371         (WebCore::RenderBoxModelObject::borderInnerRectAdjustedForBleedAvoidance):
9372         Added support for BackgroundOverBorder by applying a one pixel inset.
9373         (WebCore::RenderBoxModelObject::backgroundRoundedRectAdjustedForBleedAvoidance):
9374         Set the background rect to the inner border for BackgroundOverBorder
9375         (WebCore):
9376         (WebCore::RenderBoxModelObject::paintFillLayerExtended):
9377         Added support for BackgroundOverBorder by using 
9378         backgroundRoundedRectAdjustedForBleedAvoidance
9379         (WebCore::RenderBoxModelObject::paintBorderSides):
9380         Added support for BackgroundOverBorder by applying per-side inset
9381         adjustments.
9382         (WebCore::RenderBoxModelObject::paintTranslucentBorderSides):
9383         (WebCore::RenderBoxModelObject::paintBorder):
9384         Added support for BackgroundOverBorder by using an adjusted inner
9385         border, but not if sides are painted individually.
9386         * rendering/RenderBoxModelObject.h:
9387         (RenderBoxModelObject):
9388
9389 2012-11-14  Hideki Yoshida  <yoshida-hxa@necst.nec.co.jp>
9390
9391         [WinCairo] Fix cairo_t* memory leak in GraphicsContext::platformInit
9392         https://bugs.webkit.org/show_bug.cgi?id=76219
9393
9394         Reviewed by Brent Fulgham.
9395
9396         This patch is to fix a memory leak problem which occurs
9397         in every rendering process on Wincairo port.
9398         By applying this patch, the memory allocated in cairo 
9399         library will be released by calling cairo_destroy.
9400
9401         * platform/graphics/win/GraphicsContextCairoWin.cpp:
9402         (WebCore::GraphicsContext::platformInit):
9403
9404 2012-11-14  Sami Kyostila  <skyostil@chromium.org>
9405
9406         Optimize painting of composited scrolling layers
9407         https://bugs.webkit.org/show_bug.cgi?id=96087
9408
9409         Reviewed by Simon Fraser.
9410
9411         Don't completely repaint accelerated scrolling layers when the scroll offset
9412         changes.
9413
9414         Test: compositing/overflow/scrolling-without-painting.html
9415
9416         * platform/graphics/GraphicsLayer.cpp:
9417         (WebCore::GraphicsLayer::setOffsetFromRenderer):
9418         * platform/graphics/GraphicsLayer.h:
9419         (GraphicsLayer):
9420         * rendering/RenderLayerBacking.cpp:
9421         (WebCore::RenderLayerBacking::updateGraphicsLayerGeometry):
9422
9423 2012-11-14  Pavel Feldman  <pfeldman@chromium.org>
9424
9425         Web Inspector: keep track of mutation observers and disconnect them upon upload
9426         https://bugs.webkit.org/show_bug.cgi?id=102239
9427
9428         Reviewed by Vsevolod Vlasov.
9429
9430         Otherwise we hit memory leaks.
9431
9432         * inspector/front-end/DefaultTextEditor.js:
9433         (WebInspector.DefaultTextEditor.prototype.wasShown):
9434         (WebInspector.DefaultTextEditor.prototype.willHide):
9435         (WebInspector.TextEditorMainPanel.prototype._wasShown):
9436         (WebInspector.TextEditorMainPanel.prototype._willHide):
9437         (WebInspector.TextEditorMainPanel.prototype._attachMutationObserver):
9438         (WebInspector.TextEditorMainPanel.prototype._detachMutationObserver):
9439         * inspector/front-end/utilities.js:
9440
9441 2012-11-14  Sergio Villar Senin  <svillar@igalia.com>
9442
9443         [Qt] Use a node image if there is no drag image set for Drag&Drop
9444         https://bugs.webkit.org/show_bug.cgi?id=102124
9445
9446         Reviewed by Simon Hausmann.
9447
9448         Use the nodeImage provided by the frame if there is no dragImage in
9449         the clipboard for the current drag&drop operation.
9450
9451         * platform/qt/ClipboardQt.cpp:
9452         (WebCore::ClipboardQt::createDragImage):
9453
9454 2012-11-14  Max Vujovic  <mvujovic@adobe.com>
9455
9456         Call to enclosingFilterLayer() in RenderObject::containerForRepaint() is expensive
9457         https://bugs.webkit.org/show_bug.cgi?id=101846
9458
9459         Reviewed by Simon Fraser.
9460
9461         If software-rendered CSS Filters have not been used in the document, avoid doing the second
9462         tree walk in RenderObject::containerForRepaint, which determines the RenderObject's
9463         enclosing filter layer.
9464
9465         No new tests. We now avoid a filters related code path for a performance improvement when
9466         we're not using filters.
9467
9468         * page/FrameView.cpp:
9469         (WebCore::FrameView::FrameView):
9470         * page/FrameView.h:
9471         (FrameView):
9472         (WebCore::FrameView::setHasSoftwareFilters):
9473         (WebCore::FrameView::hasSoftwareFilters):
9474         * rendering/RenderLayer.cpp:
9475         (WebCore::RenderLayer::updateOrRemoveFilterEffectRenderer):
9476         * rendering/RenderObject.cpp:
9477         (WebCore::RenderObject::containerForRepaint):
9478
9479 2012-11-14  Erik Arvidsson  <arv@chromium.org>
9480
9481         Update DOMException name: NotFoundError
9482         https://bugs.webkit.org/show_bug.cgi?id=102137
9483
9484         Reviewed by Ojan Vafai.
9485
9486         Patch 8 of 25 to update DOMException name to match the spec and Firefox.
9487
9488         Updated existing tests.
9489
9490         * dom/DOMCoreException.cpp:
9491
9492 2012-11-14  Otto Derek Cheung  <otcheung@rim.com>
9493
9494         [BlackBerry] Updating BB Cookie database to use WAL
9495         https://bugs.webkit.org/show_bug.cgi?id=102237
9496
9497         Reviewed by Rob Buis.
9498
9499         The cookie database is accessed by one process only and should be updated to
9500         use the WAL journal mode for better I/O performance.
9501
9502         PR 236553
9503
9504         cookieCollection.db-wal is created after the conversion to WAL.
9505         Tested cookie persistence by logging on to random sites and restarting the browser and
9506         check if it automatically logs in.
9507         Also tested using Opera's cookie persistence test.
9508
9509         * platform/blackberry/CookieDatabaseBackingStore/CookieDatabaseBackingStore.cpp:
9510         (WebCore::CookieDatabaseBackingStore::invokeOpen):
9511
9512 2012-11-14  Erik Arvidsson  <arv@chromium.org>
9513
9514         Update DOMException name: IndexSizeError
9515         https://bugs.webkit.org/show_bug.cgi?id=102087
9516
9517         Reviewed by Ojan Vafai.
9518
9519         This is the first in a series of updates to DOMException name to match
9520         the spec and Firefox.
9521
9522         Patch 1 of 25
9523
9524         Updated existing tests.
9525
9526         * dom/DOMCoreException.cpp:
9527         (WebCore):
9528
9529 2012-11-14  Gabor Rapcsanyi  <rgabor@webkit.org>
9530
9531         Fix [-Wmissing-braces] warnings in graphics/cpu/arm/GraphicsContext3DNEON.h
9532         https://bugs.webkit.org/show_bug.cgi?id=102205
9533
9534         Reviewed by Csaba Osztrogonác.
9535
9536         Fixing some warnings in GraphicsContext3DNEON.h which have been caused by missing braces.
9537
9538         * platform/graphics/cpu/arm/GraphicsContext3DNEON.h:
9539         (WebCore::ARM::unpackOneRowOfRGBA4444ToRGBA8NEON):
9540         (WebCore::ARM::unpackOneRowOfRGBA5551ToRGBA8NEON):
9541         (WebCore::ARM::unpackOneRowOfRGB565ToRGBA8NEON):
9542
9543 2012-11-14  Erik Arvidsson  <arv@chromium.org>
9544
9545         Update DOMException name: NoDataAllowedError
9546         https://bugs.webkit.org/show_bug.cgi?id=102132
9547
9548         Reviewed by Darin Adler.
9549
9550         Patch 6 of 25 to update DOMException name to match the spec and Firefox.
9551
9552         NO_DATA_ALLOWED_ERR is historical and not used in any spec or in our code.
9553
9554         * dom/DOMCoreException.cpp:
9555         (WebCore):
9556         * dom/ExceptionCode.h:
9557
9558 2012-11-14  Pavel Feldman  <pfeldman@chromium.org>
9559
9560         Web Inspector: "Reveal in Element Panel" doesn't work if Elements panel hasn't been opened
9561         https://bugs.webkit.org/show_bug.cgi?id=102219
9562
9563         Reviewed by Alexander Pavlov.
9564
9565         Force elements module load upon context menu invocation.
9566
9567         * inspector/front-end/ElementsTreeOutline.js:
9568         (WebInspector.ElementsTreeOutline.prototype._contextMenuEventFired.focusElement):
9569         (WebInspector.ElementsTreeOutline.prototype._contextMenuEventFired):
9570
9571 2012-11-14  Sheriff Bot  <webkit.review.bot@gmail.com>
9572
9573         Unreviewed, rolling out r134523.
9574         http://trac.webkit.org/changeset/134523
9575         https://bugs.webkit.org/show_bug.cgi?id=102218
9576
9577         brake chrome windows build, as it references a non existing
9578         header js/DOMRequestState.h (Requested by jochen__ on
9579         #webkit).
9580
9581         * Modules/indexeddb/IDBCursor.cpp:
9582         (WebCore::IDBCursor::setValueReady):
9583         * Modules/indexeddb/IDBCursor.h:
9584         (IDBCursor):
9585         * Modules/indexeddb/IDBRequest.cpp:
9586         (WebCore::IDBRequest::IDBRequest):
9587         (WebCore::IDBRequest::onSuccess):
9588         (WebCore::IDBRequest::stop):
9589         (WebCore::IDBRequest::dispatchEvent):
9590         * Modules/indexeddb/IDBRequest.h:
9591         (IDBRequest):
9592         * WebCore.gypi:
9593         * bindings/v8/DOMRequestState.h: Removed.
9594         * bindings/v8/IDBBindingUtilities.cpp:
9595         (WebCore::deserializeIDBValue):
9596         (WebCore::idbKeyToScriptValue):
9597         * bindings/v8/IDBBindingUtilities.h:
9598         (WebCore):
9599
9600 2012-11-14  Anton Obzhirov  <a.obzhirov@samsung.com>
9601
9602         Add platform implementation of remote web inspector server for GTK port.
9603         https://bugs.webkit.org/show_bug.cgi?id=88094 
9604
9605         Reviewed by Gustavo Noronha Silva.
9606
9607         Extra SocketStreamHandle constructor is added to accept existing GSocketConnection.
9608         Needed to pass remote inspector server socket connection. The change is tested with 
9609         inspector server API tests.
9610
9611         * platform/network/soup/SocketStreamHandle.h:
9612         (WebCore::SocketStreamHandle::create):
9613         (SocketStreamHandle):
9614         * platform/network/soup/SocketStreamHandleSoup.cpp:
9615         (WebCore::SocketStreamHandle::SocketStreamHandle):
9616         (WebCore):
9617         (WebCore::SocketStreamHandle::connected):
9618         (WebCore::SocketStreamHandle::platformSend):
9619         (WebCore::SocketStreamHandle::platformClose):
9620
9621 2012-11-14  Pavel Feldman  <pfeldman@chromium.org>
9622
9623         Web Inspector: context menu on ObjectPropertyTreeElement's values is masked by the section.
9624         https://bugs.webkit.org/show_bug.cgi?id=102212
9625
9626         Reviewed by Vsevolod Vlasov.
9627
9628         * inspector/front-end/ObjectPropertiesSection.js:
9629         (WebInspector.ObjectPropertiesSection.prototype.enableContextMenu):
9630
9631 2012-11-09  Ilya Tikhonovsky  <loislo@chromium.org>
9632
9633         Web Inspector: NMI add instrumentation for WebAudo related stuff.
9634         They use about 16Mb for shared data on pages with webaudio.
9635         As example Angry Birds app.
9636         https://bugs.webkit.org/show_bug.cgi?id=101729
9637
9638         Reviewed by Yury Semikhatsky.
9639
9640         Plain vanilla instrumentation for audio and webaudio classes.
9641         AudioContext is a kind of ActiveDOMObject. I found that these objects
9642         are accessible through ScriptExecutuionContext and ScriptExecutionContext
9643         is an ancestor of Document. Document class was instrumented earler.
9644         I instrumented ActiveDOMObject, ScriptExecutionContext and other ancestors
9645         and now AudioContext and other ActiveDOMObjects are reacheable from Document.
9646
9647         Test: inspector-protocol/nmi-webaudio.html
9648
9649         * Modules/webaudio/AudioContext.cpp:
9650         (WebCore::AudioContext::reportMemoryUsage):
9651         (WebCore):
9652         * Modules/webaudio/AudioContext.h:
9653         (AudioContext):
9654         * Modules/webaudio/AudioNode.cpp:
9655         (WebCore::AudioNode::reportMemoryUsage):
9656         (WebCore):
9657         * Modules/webaudio/AudioNode.h:
9658         (AudioNode):
9659         * dom/ActiveDOMObject.cpp:
9660         (WebCore::ActiveDOMObject::reportMemoryUsage):
9661         (WebCore):
9662         * dom/ActiveDOMObject.h:
9663         (ActiveDOMObject):
9664         * dom/Document.cpp:
9665         (WebCore::Document::reportMemoryUsage):
9666         * dom/ScriptExecutionContext.cpp:
9667         (WebCore::ScriptExecutionContext::reportMemoryUsage):
9668         (WebCore):
9669         * dom/ScriptExecutionContext.h:
9670         (ScriptExecutionContext):
9671         * dom/SecurityContext.cpp:
9672         (WebCore::SecurityContext::reportMemoryUsage):
9673         (WebCore):
9674         * dom/SecurityContext.h:
9675         (SecurityContext):
9676         * dom/WebCoreMemoryInstrumentation.cpp:
9677         (WebCore):
9678         * dom/WebCoreMemoryInstrumentation.h:
9679         (WebCoreMemoryTypes):
9680         * platform/audio/AudioArray.h:
9681         (AudioArray):
9682         (WebCore::AudioArray::reportMemoryUsage):
9683         * platform/audio/FFTFrame.cpp:
9684         (WebCore::FFTFrame::reportMemoryUsage):
9685         (WebCore):
9686         * platform/audio/FFTFrame.h:
9687         (FFTFrame):
9688         * platform/audio/HRTFDatabase.cpp:
9689         (WebCore::HRTFDatabase::reportMemoryUsage):
9690         (WebCore):
9691         * platform/audio/HRTFDatabase.h:
9692         (HRTFDatabase):
9693         * platform/audio/HRTFDatabaseLoader.cpp:
9694         (WebCore::HRTFDatabaseLoader::reportMemoryUsage):
9695         (WebCore):
9696         * platform/audio/HRTFDatabaseLoader.h:
9697         (HRTFDatabaseLoader):
9698         * platform/audio/HRTFElevation.cpp:
9699         (WebCore::HRTFElevation::reportMemoryUsage):
9700         (WebCore):
9701         * platform/audio/HRTFElevation.h:
9702         (HRTFElevation):
9703         * platform/audio/HRTFKernel.cpp:
9704         (WebCore::HRTFKernel::reportMemoryUsage):
9705         (WebCore):
9706         * platform/audio/HRTFKernel.h:
9707         (HRTFKernel):
9708
9709 2012-11-14  Eugene Klyuchnikov  <eustas.bug@gmail.com>
9710
9711         Web Inspector: Settings screen: close button overlays view title on mac.
9712         https://bugs.webkit.org/show_bug.cgi?id=102198
9713
9714         Reviewed by Pavel Feldman.
9715
9716         Added margin-left for mac. Adjusted title height and vertical positioning.
9717
9718         * inspector/front-end/helpScreen.css:
9719         (.help-window-caption): Adjusted title height.
9720         (.help-window-title): Adjusted title vertical positioning. 
9721         (body.platform-mac .help-window-main .help-window-title): Fixed margin.
9722
9723 2012-11-13  Pavel Feldman  <pfeldman@chromium.org>
9724
9725         Web Inspector: use last selection as complementary signal when applying DOM changes to the text model.
9726         https://bugs.webkit.org/show_bug.cgi?id=101905
9727
9728         Reviewed by Vsevolod Vlasov.
9729
9730         Currently we use heuristics for detecting damaged model range upon DOM mutation.
9731         This change adds signals from the last selection and keyboard events in order to
9732         further improve the heuristics quality.
9733
9734         * inspector/front-end/DefaultTextEditor.js:
9735         (WebInspector.DefaultTextEditor):
9736         (WebInspector.DefaultTextEditor.EditInfo):
9737         (WebInspector.DefaultTextEditor.prototype._handleTextInput):
9738         (WebInspector.DefaultTextEditor.prototype._handleKeyDown):
9739         (WebInspector.DefaultTextEditor.prototype.lastSelection):
9740         (WebInspector.DefaultTextEditor.prototype.wasShown):
9741         (WebInspector.TextEditorMainPanel.prototype._applyDomUpdates):
9742         (WebInspector.TextEditorMainPanel.prototype._guessEditRangeBasedOnSelection):
9743         (WebInspector.TextEditorMainPanel.prototype._guessEditRangeBasedOnDiff):
9744         (WebInspector.TextEditorMainPanel.prototype._closingBlockOffset):
9745         (WebInspector.TextEditorMainPanel.prototype._handleSelectionChange):
9746         * inspector/front-end/TextEditorModel.js:
9747         (WebInspector.TextRange.prototype.compareTo):
9748         (WebInspector.TextRange.prototype.shift):
9749         (WebInspector.TextEditorModel.endsWithBracketRegex.):
9750
9751 2012-11-14  Dan Carney  <dcarney@google.com>
9752
9753         [V8] use toV8Fast in all relevant Node getters
9754         https://bugs.webkit.org/show_bug.cgi?id=100851
9755
9756         Reviewed by Kentaro Hara.
9757
9758         The toV8Fast function for Node objects is now called in all getters
9759         instead of toV8.
9760
9761         No new tests. Test coverage extensive.
9762
9763         * bindings/scripts/CodeGeneratorV8.pm:
9764         (GenerateHeader):
9765         (GenerateNormalAttrGetter):
9766         (IsDOMNodeType):
9767         * bindings/scripts/test/V8/V8TestNode.h:
9768         (WebCore::toV8Fast):
9769
9770 2012-11-14  Kenneth Rohde Christiansen  <kenneth@webkit.org>
9771
9772         Clean up use of adjustWindowRect
9773         https://bugs.webkit.org/show_bug.cgi?id=102072
9774
9775         Reviewed by Gyuyoung Kim.
9776
9777         Tested by fast/dom/Window/open-window-min-size.html
9778
9779         * loader/FrameLoader.cpp:
9780         (WebCore::createWindow):
9781
9782             Validate the window size here so that it is not just done for
9783             .open, but also for .showModalDialog. This is compatible with
9784             other browsers such as IE and Firefox (though IE > 6, enforces
9785             a minimum width of 250 instead of 100 as Firefox and us.)
9786
9787         * page/DOMWindow.cpp:
9788         (WebCore):
9789         (WebCore::DOMWindow::adjustWindowRect):
9790
9791             Make it a static method which only takes page. It was never
9792             called from anywhere without a valid page, so the page check
9793             has been turned into an assert, and two of the arguments have
9794             been removed as they can be accessed via the page.
9795
9796         (WebCore::DOMWindow::moveBy):
9797         (WebCore::DOMWindow::moveTo):
9798         (WebCore::DOMWindow::resizeBy):
9799         (WebCore::DOMWindow::resizeTo):
9800
9801             Update use of adjustWindowRect.
9802
9803         (WebCore::DOMWindow::open):
9804
9805             Avoid modifying the WindowFeatures as the WebCore::createWindow
9806             validates and adjusts the arguments.
9807
9808         * page/DOMWindow.h:
9809         (DOMWindow):
9810
9811 2012-11-14  Takashi Sakamoto  <tasak@google.com>
9812
9813         Crash when replacing parts of text inputs with content: url(...)
9814         https://bugs.webkit.org/show_bug.cgi?id=101133
9815
9816         Reviewed by Kent Tamura.
9817
9818         Disable directly setting content of elements in an input element's
9819         shadow dom tree, because the setting breaks input element's behavior.
9820
9821         Tests: fast/forms/number/number-content-url-crash.html
9822                fast/forms/search/search-content-url-crash.html
9823
9824         * css/html.css:
9825         (input::-webkit-textfield-decoration-container):
9826         Use important to disable overriding an input element's content
9827         property.
9828         * html/TextFieldInputType.cpp:
9829         (WebCore::TextFieldInputType::attach):
9830         Added ASSERTION. No content should be applied to
9831         input::-webkit-textfield-decoration-container.
9832
9833 2012-11-14  Kentaro Hara  <haraken@chromium.org>
9834
9835         Unreviewed. Rebaselined run-bindings-tests results.
9836
9837         * bindings/scripts/test/V8/V8TestOverloadedConstructors.cpp:
9838         (WebCore::V8TestOverloadedConstructors::constructor1Callback):
9839         (WebCore::V8TestOverloadedConstructors::constructor2Callback):
9840         (WebCore::V8TestOverloadedConstructors::constructor3Callback):
9841         (WebCore::V8TestOverloadedConstructors::constructor4Callback):
9842         (WebCore::V8TestOverloadedConstructors::wrapSlow):
9843
9844 2012-11-14  Anton Muhin  <antonm@chromium.org>
9845
9846         Provide return types for custom WebGLRenderingContext methods
9847         https://bugs.webkit.org/show_bug.cgi?id=100777
9848
9849         Reviewed by Kenneth Russell.
9850
9851         No new tests as doesn't change generated code.
9852
9853         * html/canvas/WebGLRenderingContext.idl:
9854
9855 2012-11-14  Kent Tamura  <tkent@chromium.org>
9856
9857         Support for localization tests of calendar picker
9858         https://bugs.webkit.org/show_bug.cgi?id=102181
9859
9860         Reviewed by Kentaro Hara.
9861
9862         Introduce DateTimeChooserParameters::locale to inform locale to
9863         DateTimeChooser implementations. However we pass defaultLanguage
9864         unless tests calls internals.settings.
9865         setLangAttributeAwareFormControlUIEnabled(true) explicitly.
9866
9867         Test: platform/chromium/fast/forms/calendar-picker/calendar-picker-appearance-ru.html
9868
9869         * html/HTMLInputElement.cpp:
9870         (WebCore::HTMLInputElement::setupDateTimeChooserParameters):
9871         Set DateTimeChooserParameters::locale up.
9872         * platform/DateTimeChooser.h:
9873         (DateTimeChooserParameters): Add 'locale' member.
9874
9875 2012-11-14  Pavel Feldman  <pfeldman@chromium.org>
9876
9877         Web Inspector: highlight is not updating as one edits CSS properties
9878         https://bugs.webkit.org/show_bug.cgi?id=102191
9879
9880         Reviewed by Alexander Pavlov.
9881
9882         We should update highlight upon layout / style recalculation.
9883
9884         * inspector/InspectorInstrumentation.cpp:
9885         (WebCore):
9886         (WebCore::InspectorInstrumentation::didRecalculateStyleImpl):
9887         * inspector/InspectorPageAgent.cpp:
9888         (WebCore::InspectorPageAgent::InspectorPageAgent):
9889         (WebCore::InspectorPageAgent::enable):
9890         (WebCore::InspectorPageAgent::disable):
9891         (WebCore::InspectorPageAgent::domContentEventFired):
9892         (WebCore::InspectorPageAgent::didPaint):
9893         (WebCore::InspectorPageAgent::didLayout):
9894         (WebCore::InspectorPageAgent::didScroll):
9895         (WebCore):
9896         (WebCore::InspectorPageAgent::didRecalculateStyle):
9897         * inspector/InspectorPageAgent.h:
9898
9899 2012-11-14  Sheriff Bot  <webkit.review.bot@gmail.com>
9900
9901         Unreviewed, rolling out r134566.
9902         http://trac.webkit.org/changeset/134566
9903         https://bugs.webkit.org/show_bug.cgi?id=102197
9904
9905         "it broke Chromium Android Release build" (Requested by
9906         haraken on #webkit).
9907
9908         * html/HTMLInputElement.cpp:
9909         (WebCore::HTMLInputElement::setupDateTimeChooserParameters):
9910         * platform/DateTimeChooser.h:
9911         (DateTimeChooserParameters):
9912
9913 2012-11-08  Vsevolod Vlasov  <vsevik@chromium.org>
9914
9915         Web Inspector: No content available for requests made from flash
9916         https://bugs.webkit.org/show_bug.cgi?id=101560
9917
9918         Reviewed by Pavel Feldman.
9919
9920         Network request data is now saved to inspector cache in following cases:
9921          - Error status code;
9922          - No cached resource available;
9923          - Cached resource has ShouldNotBufferData option set.
9924         Drive-by: refactored didReceiveResponse logic to be clearer.
9925
9926         * inspector/InspectorResourceAgent.cpp:
9927         (WebCore::InspectorResourceAgent::didReceiveResponse):
9928         (WebCore::InspectorResourceAgent::didReceiveData):
9929         * loader/cache/CachedResource.h:
9930         (WebCore::CachedResource::shouldBufferData):
9931
9932 2012-11-14  Shinya Kawanaka  <shinyak@chromium.org>
9933
9934         Changing pseudoClass (:target) should cause distribution
9935         https://bugs.webkit.org/show_bug.cgi?id=101699
9936
9937         Reviewed by Hajime Morita.
9938
9939         When cssTarget element is changed, we might have to invalidate distribution. We check its necessity
9940         by consulting with SelectRuleFeatureSet.
9941
9942         We also implement invalidateParentDistributionIfNecessary for all collected features in this patch.
9943
9944         Test: fast/dom/shadow/pseudoclass-update-target.html
9945
9946         * dom/Document.cpp:
9947         (WebCore::Document::setCSSTarget):
9948         * dom/ElementShadow.cpp:
9949         (WebCore::invalidateParentDistributionIfNecessary):
9950         (WebCore):
9951         * dom/ElementShadow.h:
9952         (WebCore):
9953         * html/shadow/SelectRuleFeatureSet.h:
9954         (WebCore::SelectRuleFeatureSet::hasSelectorFor):
9955         (SelectRuleFeatureSet):
9956
9957 2012-11-14  Kentaro Hara  <haraken@chromium.org>
9958
9959         [V8] DOM wrapper objects should be collected in minor GC cycles
9960         https://bugs.webkit.org/show_bug.cgi?id=98725
9961
9962         Reviewed by Adam Barth.
9963
9964         Previously minor GC cycles cannot collect DOM Nodes. All DOM Nodes
9965         have to survive two minor GC cycles, be promoted to the old space
9966         and wait for a heavy major GC cycle.
9967
9968         This patch enables V8 to collect DOM Nodes in minor GC cycles.
9969         For real world applications, I confirmed that minor GC cycles
9970         reclaims a substantial amount of memory (24 MB for Facebook,
9971         235 MB for Google Calendar) with acceptable overhead (~10 ms
9972         per minor GC cycle). No performance regression in Dromaeo
9973         DOM tests.
9974
9975         A design document: https://docs.google.com/a/google.com/document/d/16DeHrzkm3cO9XCPT1aK3Y5qgUxXB3RFmueqQWYmN2rI/edit
9976         Performance results: https://docs.google.com/a/google.com/document/d/1h0-EsHu7T0sSMuZm5eE0r1e8sCAzY3weLvsDUpOSngE/edit
9977         A slide: https://docs.google.com/a/google.com/presentation/d/1uifwVYGNYTZDoGLyCb7sXa7g49mWNMW2gaWvMN5NLk8/edit#slide=id.p
9978
9979         * bindings/v8/IntrusiveDOMWrapperMap.h:
9980         (WebCore::IntrusiveDOMWrapperMap::set):
9981         * bindings/v8/V8DOMWindowShell.cpp:
9982         (WebCore::initializeV8IfNeeded):
9983         * bindings/v8/V8GCController.cpp:
9984         (WebCore):
9985         (WebCore::gcTree):
9986         (WebCore::V8GCController::newWrapperBorn):
9987         (WebCore::V8GCController::gcPrologue):
9988         (WebCore::V8GCController::minorGCPrologue):
9989         (WebCore::V8GCController::majorGCPrologue):
9990         (WebCore::V8GCController::gcEpilogue):
9991         (WebCore::V8GCController::minorGCEpilogue):
9992         (WebCore::V8GCController::majorGCEpilogue):
9993         * bindings/v8/V8GCController.h:
9994         (WebCore):
9995         (V8GCController):
9996         * bindings/v8/WorkerContextExecutionProxy.cpp:
9997         (WebCore::WorkerContextExecutionProxy::initIsolate):
9998         * dom/Element.cpp:
9999         (WebCore::Element::focus):
10000         * dom/Node.h:
10001         (WebCore::Node::inEden):
10002         (WebCore::Node::setEden):
10003         (Node):
10004
10005 2012-11-14  Kentaro Hara  <haraken@chromium.org>
10006
10007         [V8] Replace setDOMWrapper() + setJSWrapperForDOMObject() with createDOMWrapper()
10008         https://bugs.webkit.org/show_bug.cgi?id=101917
10009
10010         Reviewed by Adam Barth.
10011
10012         setJSWrapperForDOMObject() is always coupled with setDOMWrapper().
10013         We can replace setDOMWrapper() + setJSWrapperForDOMObject() with
10014         createDOMWrapper(). (c.f. CREATE_DOM_WRAPPER() in JSC)
10015
10016         No tests. No change in behavior.
10017
10018         * bindings/scripts/CodeGeneratorV8.pm:
10019         (GenerateConstructorCallback):
10020         (GenerateEventConstructorCallback):
10021         (GenerateNamedConstructorCallback):
10022         (GenerateToV8Converters):
10023         * bindings/v8/V8DOMWindowShell.cpp:
10024         (WebCore::V8DOMWindowShell::installDOMWindow):
10025         * bindings/v8/V8DOMWrapper.cpp:
10026         (WebCore::V8DOMWrapper::instantiateV8Object):
10027         * bindings/v8/V8DOMWrapper.h:
10028         (V8DOMWrapper):
10029         (WebCore::V8DOMWrapper::createDOMWrapper):
10030         * bindings/v8/WorkerContextExecutionProxy.cpp:
10031         (WebCore::WorkerContextExecutionProxy::initializeIfNeeded):
10032         * bindings/v8/custom/V8ArrayBufferCustom.cpp:
10033         (WebCore::V8ArrayBuffer::constructorCallback):
10034         * bindings/v8/custom/V8ArrayBufferViewCustom.h:
10035         (WebCore::wrapArrayBufferView):
10036         (WebCore::constructWebGLArray):
10037         * bindings/v8/custom/V8DOMFormDataCustom.cpp:
10038         (WebCore::V8DOMFormData::constructorCallback):
10039         * bindings/v8/custom/V8DataViewCustom.cpp:
10040         (WebCore::V8DataView::constructorCallback):
10041         * bindings/v8/custom/V8HTMLImageElementConstructor.cpp:
10042         (WebCore::v8HTMLImageElementConstructorCallback):
10043         * bindings/v8/custom/V8IntentConstructor.cpp:
10044         (WebCore::V8Intent::constructorCallback):
10045         * bindings/v8/custom/V8MessageChannelConstructor.cpp:
10046         (WebCore::V8MessageChannel::constructorCallback):
10047         * bindings/v8/custom/V8MutationObserverCustom.cpp:
10048         (WebCore::V8MutationObserver::constructorCallback):
10049         * bindings/v8/custom/V8WebKitPointConstructor.cpp:
10050         (WebCore::V8WebKitPoint::constructorCallback):
10051         * bindings/v8/custom/V8WebSocketCustom.cpp:
10052         (WebCore::V8WebSocket::constructorCallback):
10053         * bindings/v8/custom/V8XMLHttpRequestConstructor.cpp:
10054         (WebCore::V8XMLHttpRequest::constructorCallback):
10055
10056 2012-11-14  Kent Tamura  <tkent@chromium.org>
10057
10058         Support for localization tests of calendar picker
10059         https://bugs.webkit.org/show_bug.cgi?id=102181
10060
10061         Reviewed by Kentaro Hara.
10062
10063         Introduce DateTimeChooserParameters::locale to inform locale to
10064         DateTimeChooser implementations. However we pass defaultLanguage
10065         unless tests calls internals.settings.
10066         setLangAttributeAwareFormControlUIEnabled(true) explicitly.
10067
10068         Test: platform/chromium/fast/forms/calendar-picker/calendar-picker-appearance-ru.html
10069
10070         * html/HTMLInputElement.cpp:
10071         (WebCore::HTMLInputElement::setupDateTimeChooserParameters):
10072         Set DateTimeChooserParameters::locale up.
10073         * platform/DateTimeChooser.h:
10074         (DateTimeChooserParameters): Add 'locale' member.
10075
10076 2012-11-14  Alexei Filippov  <alph@chromium.org>
10077
10078         Web Inspector: Show total memory in the NMI snapshot header
10079         https://bugs.webkit.org/show_bug.cgi?id=101922
10080
10081         Reviewed by Pavel Feldman.
10082
10083         * inspector/front-end/NativeMemorySnapshotView.js:
10084         (WebInspector.NativeMemoryProfileType.prototype.buttonClicked.didReceiveMemorySnapshot):
10085         (WebInspector.NativeMemoryProfileType.prototype.buttonClicked):
10086
10087 2012-11-14  Jan Keromnes  <janx@linux.com>
10088
10089         Web Inspector: CodeMirrorTextEditor fails to scroll breakpoint into view after the first time
10090         https://bugs.webkit.org/show_bug.cgi?id=102142
10091
10092         Reviewed by Pavel Feldman.
10093
10094         Calling revealLine in highlightLine like in DefaultTextEditor does the trick.
10095
10096         * inspector/front-end/CodeMirrorTextEditor.js:
10097         (WebInspector.CodeMirrorTextEditor.prototype.highlightLine):
10098
10099 2012-11-13  Kent Tamura  <tkent@chromium.org>
10100
10101         Use menulist-button instead of menulist for date/time input types
10102         https://bugs.webkit.org/show_bug.cgi?id=101886
10103
10104         Reviewed by Hajime Morita.
10105
10106         Both of Chromium-Android and iOS use -webkit-appearance:menulist-button,
10107         not menulist. We had better apply common one by default.
10108
10109         No new tests. Covered by fast/forms/*/*-appearance-*.html.
10110
10111         * css/html.css:
10112         (input[type="date"]): Switch menulist-button from menulist.
10113         (input[type="datetime"]): Ditto.
10114         (input[type="datetime-local"]): Ditto.
10115         (input[type="month"]): Ditto.
10116         (input[type="time"]): Ditto.
10117         (input[type="week"]): Ditto.
10118         (input::-webkit-date-and-time-value):
10119         Add top, right, bottom margins. The right margin is important when
10120         dir=rtl is specified.
10121         whitespace:pre is needed to align baseline in a case of empty values.
10122         * css/themeChromiumAndroid.css:
10123         Remove redundant style declaration.
10124         * css/themeWin.css:
10125         Remove padding adjustment for date/time input types. It is for
10126         textfields.
10127
10128 2012-11-13  Vincent Scheib  <scheib@chromium.org>
10129
10130         Remove RuntimeEnabledFeatures::isPointerLockEnabled.
10131         https://bugs.webkit.org/show_bug.cgi?id=102107
10132
10133         Reviewed by Adam Barth.
10134
10135         The runtime flag is always true now that the feature is enabled by default in Chromium.
10136
10137         * bindings/generic/RuntimeEnabledFeatures.cpp:
10138         (WebCore):
10139         * bindings/generic/RuntimeEnabledFeatures.h:
10140         (RuntimeEnabledFeatures):
10141         * dom/Document.idl:
10142         * dom/Element.idl:
10143         * dom/MouseEvent.idl:
10144
10145 2012-11-13  Eugene Klyuchnikov  <eustas.bug@gmail.com>
10146
10147         Web Inspector: JsDoc-annotate KeyboardShortcuts
10148         https://bugs.webkit.org/show_bug.cgi?id=101301
10149
10150         Reviewed by Pavel Feldman.
10151
10152         JsDoc-annotate KeyboardShortcuts to improve readability.
10153
10154         * inspector/front-end/AdvancedSearchController.js: Fix parameter type.
10155         * inspector/front-end/KeyboardShortcut.js: Add annotations.
10156         * inspector/front-end/Panel.js: Make event parameter typed.
10157         * inspector/front-end/inspector.js: Ditto.
10158
10159 2012-11-13  Eugene Klyuchnikov  <eustas.bug@gmail.com>
10160
10161         Web Inspector: Extract common interface for StatusBarButton and StatusBarCombo
10162         https://bugs.webkit.org/show_bug.cgi?id=101907
10163
10164         Reviewed by Pavel Feldman.
10165
10166         Status bar control element should have common interface for
10167         easier management.
10168         In this patch getter/setter for StatusBarButton "disabled" are replaced
10169         with regular functions "enabled"/"setEnabled"; added "setEnabled"
10170         to StatusBarCombo; added new base class StatusBarItem with
10171         method "setEnabled" and member "element".
10172
10173         * inspector/front-end/CPUProfileView.js: Adopted refactoring.
10174         * inspector/front-end/DockController.js: Ditto.
10175         * inspector/front-end/ScriptsPanel.js: Ditto.
10176         * inspector/front-end/TimelinePanel.js: Ditto.
10177         * inspector/front-end/inspector.js: Ditto.
10178         * inspector/front-end/StatusBarButton.js:
10179         (WebInspector.StatusBarItem): Added.
10180         (WebInspector.StatusBarButton): Replaced getter/setter with
10181         regular functions.
10182         (WebInspector.StatusBarComboBox.prototype.setEnabled): Added.
10183
10184 2012-11-13  Eugene Klyuchnikov  <eustas.bug@gmail.com>
10185
10186         Web Inspector: Console: update tab/shift-tab shortcut description.
10187         https://bugs.webkit.org/show_bug.cgi?id=102175
10188
10189         Reviewed by Pavel Feldman.
10190
10191         For "Tab / Shift-Tab" it said "Next/previous suggestion".
10192         Actually, shift-tab to do nothing, and tab auto-completes common prefix.
10193
10194         * English.lproj/localizedStrings.js: Replaced string.
10195         * inspector/front-end/ConsoleView.js: Updated shortcut registration.
10196
10197 2012-11-13  Dana Jansens  <danakj@chromium.org>
10198
10199         [chromium] Pass showDebugBorders directly to WebLayerTreeSettings, don't use the GraphicsLayer border width setting.
10200         https://bugs.webkit.org/show_bug.cgi?id=102130
10201
10202         Reviewed by James Robinson.
10203
10204         The current method of setting debug borders on GraphicsLayers requires
10205         every GraphicsLayerClient to set the value on the layer(s) it
10206         represents. This skips the NonCompositedContentHost as well as any
10207         other clients other than RenderLayerBacking - including layers from the
10208         inspector.
10209
10210         Instead, pass the debug border setting directly to the
10211         WebLayerTreeSettings where the compositor can use the flag to enable
10212         borders on all layers globally.
10213
10214         * platform/graphics/chromium/GraphicsLayerChromium.cpp:
10215         (WebCore::GraphicsLayerChromium::GraphicsLayerChromium):
10216         (WebCore::GraphicsLayerChromium::updateMasksToBounds):
10217         (WebCore::GraphicsLayerChromium::updateLayerIsDrawable):
10218         (WebCore::GraphicsLayerChromium::setupContentsLayer):
10219         * platform/graphics/chromium/GraphicsLayerChromium.h:
10220         (GraphicsLayerChromium):
10221
10222 2012-11-13  Kunihiko Sakamoto  <ksakamoto@chromium.org>
10223
10224         Enable calendar picker for input types datetime/datetime-local
10225         https://bugs.webkit.org/show_bug.cgi?id=101889
10226
10227         Reviewed by Kent Tamura.
10228
10229         This adds calendar picker to <input type=datetime> and <input type=datetime-local>.
10230         When a user choose a date from calendar picker, year/month/day fields of the input
10231         element are updated and hour/minute/second fields are unchanged.
10232
10233         Tests: platform/chromium/fast/forms/calendar-picker/calendar-picker-datetime-local.html
10234                platform/chromium/fast/forms/calendar-picker/calendar-picker-datetime.html
10235
10236         * Resources/pagepopups/calendarPicker.js: Day.parse accepts datetime string (just drops time part).
10237         * html/BaseMultipleFieldsDateAndTimeInputType.cpp:
10238         (WebCore::BaseMultipleFieldsDateAndTimeInputType::pickerIndicatorChooseValue):
10239         If the given value is not valid for the element, try to parse it as a date string.
10240         * html/DateTimeInputType.cpp:
10241         (WebCore::DateTimeInputType::formatDateTimeFieldsState): DateTimeFieldsState::month() returns 1-12, not 0-11.
10242         * html/DateTimeLocalInputType.cpp:
10243         (WebCore::DateTimeLocalInputType::formatDateTimeFieldsState): Ditto.
10244         * html/shadow/DateTimeEditElement.cpp:
10245         (WebCore::DateTimeEditElement::setOnlyYearMonthDay): Added.
10246         (WebCore):
10247         * html/shadow/DateTimeEditElement.h:
10248         (DateTimeEditElement):
10249         * rendering/RenderThemeChromiumCommon.cpp:
10250         (WebCore::RenderThemeChromiumCommon::supportsCalendarPicker): Return true for datetime and datetimelocal too.
10251
10252 2012-11-13  Sheriff Bot  <webkit.review.bot@gmail.com>
10253
10254         Unreviewed, rolling out r134524.
10255         http://trac.webkit.org/changeset/134524
10256         https://bugs.webkit.org/show_bug.cgi?id=102177
10257
10258         "Chromiium build broken" (Requested by haraken on #webkit).
10259
10260         * WebCore.gyp/WebCore.gyp:
10261         * WebCore.gypi:
10262         * rendering/RenderThemeChromiumFontProvider.cpp: Removed.
10263         * rendering/RenderThemeChromiumFontProvider.h: Removed.
10264         * rendering/RenderThemeChromiumFontProviderLinux.cpp: Removed.
10265         * rendering/RenderThemeChromiumFontProviderWin.cpp: Removed.
10266         * rendering/RenderThemeChromiumSkia.cpp:
10267         (WebCore::RenderThemeChromiumSkia::defaultGUIFont):
10268         (WebCore::RenderThemeChromiumSkia::systemFont):
10269         (WebCore::RenderThemeChromiumSkia::setDefaultFontSize):
10270         * rendering/RenderThemeChromiumSkia.h:
10271         (RenderThemeChromiumSkia):
10272         * rendering/RenderThemeChromiumWin.cpp:
10273         (WebCore):
10274         (WebCore::getNonClientMetrics):
10275         (WebCore::systemFontSize):
10276         (WebCore::pointsToPixels):
10277         (WebCore::RenderThemeChromiumWin::systemFont):
10278         (WebCore::RenderThemeChromiumWin::setDefaultFontSize):
10279         * rendering/RenderThemeChromiumWin.h:
10280         (RenderThemeChromiumWin):
10281
10282 2012-11-13  KyungTae Kim  <ktf.kim@samsung.com>
10283
10284         Fix compile warning [-Wsign-compare]
10285         https://bugs.webkit.org/show_bug.cgi?id=101458
10286
10287         Reviewed by Alexey Proskuryakov.
10288
10289         Currently, lossy check has been done by comparing file size(posix signed integral value) with conversioned(standard c++ unsigned integral value).
10290         However, it leads -Wsign-compare compile warning.
10291         Therefore, this patch assigns the file size to the biggest possible unsigned variable, then does the lossy check.
10292
10293         * platform/posix/SharedBufferPOSIX.cpp:
10294         (WebCore::SharedBuffer::createWithContentsOfFile):
10295
10296 2012-11-13  Keishi Hattori  <keishi@webkit.org>
10297
10298         Enable datalist UI for input types week and month
10299         https://bugs.webkit.org/show_bug.cgi?id=102041
10300
10301         Reviewed by Kent Tamura.
10302
10303         Enabling datalist UI for input types week and month.
10304
10305         No new tests. Tests will be added later in Bug 102039 and Bug 102040.
10306
10307         * rendering/RenderThemeChromiumCommon.cpp:
10308         (WebCore::RenderThemeChromiumCommon::supportsDataListUI): Add month and week to the list.
10309
10310 2012-11-13  Eberhard Graether  <egraether@google.com>
10311
10312         checkbox to toggle FPS counter in the inspector's settings
10313         https://bugs.webkit.org/show_bug.cgi?id=99660
10314
10315         Reviewed by Pavel Feldman.
10316
10317         Added a checkbox to the inspector's settings to toggle a FPS counter. The checkbox appears when InspectorClient::canShowFPSCounter() returns true.
10318
10319         No new tests.
10320
10321         * English.lproj/localizedStrings.js:
10322         * inspector/Inspector.json:
10323         * inspector/InspectorClient.h:
10324         (WebCore::InspectorClient::canShowFPSCounter):
10325         (WebCore::InspectorClient::setShowFPSCounter):
10326         (InspectorClient):
10327         * inspector/InspectorPageAgent.cpp:
10328         (PageAgentState):
10329         (WebCore::InspectorPageAgent::enable):
10330         (WebCore::InspectorPageAgent::disable):
10331         (WebCore::InspectorPageAgent::canShowFPSCounter):
10332         (WebCore):
10333         (WebCore::InspectorPageAgent::setShowFPSCounter):
10334         * inspector/InspectorPageAgent.h:
10335         * inspector/front-end/Settings.js:
10336         * inspector/front-end/SettingsScreen.js:
10337         (WebInspector.GenericSettingsTab):
10338         (WebInspector.GenericSettingsTab.prototype.get _showFPSCounterChanged):
10339         * inspector/front-end/inspector.js:
10340         (WebInspector.doLoadedDone):
10341
10342 2012-11-13  Shinya Kawanaka  <shinyak@chromium.org>
10343
10344         Collect necessary features for SelectRuleFeatureSet
10345         https://bugs.webkit.org/show_bug.cgi?id=102160
10346
10347         Reviewed by Dimitri Glazkov.
10348
10349         When pseudo class is changed, we might have to invalidate distribution. To determine whether we should invalidate
10350         distribution, we would like to collect RuleFeature from select attributes.
10351
10352         According to ShadowDOM spec, we have to collect the following pseudo classes: checked, enabled, disabled,
10353         indeterminate, link, target, and visited. We collect them in this patch.
10354
10355         Test: fast/dom/shadow/shadow-select-attribute-featureset.html
10356
10357         * html/shadow/SelectRuleFeatureSet.cpp:
10358         (WebCore::SelectRuleFeatureSet::SelectRuleFeatureSet): Uses int as bitset so that we can use bit operator.
10359         (WebCore::SelectRuleFeatureSet::add):
10360         (WebCore::SelectRuleFeatureSet::clear):
10361         (WebCore::SelectRuleFeatureSet::collectFeaturesFromSelector): Collects necessary features from CSSSelector.
10362         * html/shadow/SelectRuleFeatureSet.h:
10363         (WebCore::SelectRuleFeatureSet::hasSelectorForChecked):
10364         (WebCore::SelectRuleFeatureSet::hasSelectorForEnabled):
10365         (WebCore::SelectRuleFeatureSet::hasSelectorForDisabled):
10366         (WebCore::SelectRuleFeatureSet::hasSelectorForIndeterminate):
10367         (WebCore::SelectRuleFeatureSet::hasSelectorForLink):
10368         (WebCore::SelectRuleFeatureSet::hasSelectorForTarget):
10369         (WebCore::SelectRuleFeatureSet::hasSelectorForVisited):
10370         (SelectRuleFeatureSet):
10371         (WebCore::SelectRuleFeatureSet::setSelectRuleFeature):
10372         (WebCore::SelectRuleFeatureSet::hasSelectorFor):
10373         * testing/Internals.cpp:
10374         (WebCore::Internals::hasSelectorForPseudoClassInShadow):
10375         (WebCore):
10376         * testing/Internals.h:
10377         (Internals):
10378         * testing/Internals.idl:
10379
10380 2012-11-13  Andreas Kling  <kling@webkit.org>
10381
10382         Move inline style logic from ElementAttributeData to StyledElement.
10383         <http://webkit.org/b/102120>
10384
10385         Reviewed by Antti Koivisto.
10386
10387         Move all the logic dealing with element inline style from ElementAttributeData to StyledElement.
10388         No difference in behavior, just making ElementAttributeData dumber.
10389
10390         * css/StylePropertySet.cpp:
10391         * css/StylePropertySet.h:
10392         (WebCore::StylePropertySet::hasCSSOMWrapper):
10393         (WebCore::StylePropertySet::cssStyleDeclaration):
10394
10395             Added as complements to ensureCSSStyleDeclaration() for the case where we don't want
10396             to instantiate a CSSOM wrapper unnecessarily.
10397
10398         * dom/StyledElement.h:
10399         (WebCore::StyledElement::inlineStyle):
10400         * dom/ElementAttributeData.cpp:
10401         (WebCore::ImmutableElementAttributeData::ImmutableElementAttributeData):
10402         (WebCore::MutableElementAttributeData::MutableElementAttributeData):
10403         (WebCore::ElementAttributeData::reportMemoryUsage):
10404         * dom/ElementAttributeData.h:
10405         (WebCore::ElementAttributeData::inlineStyle):
10406         (ElementAttributeData):
10407
10408             Renamed m_inlineStyleDecl to m_inlineStyle. Finally.
10409
10410         * dom/StyledElement.cpp:
10411         (WebCore::StyledElement::~StyledElement):
10412
10413             Detach the CSSOM wrapper from the inline style if there is one.
10414
10415         (WebCore::StyledElement::ensureMutableInlineStyle):
10416         (WebCore::StyledElement::style):
10417
10418             Renamed ensureInlineStyle() to ensureMutableInlineStyle() since that's what it
10419             actually does. Update call sites accordingly.
10420
10421         (WebCore::StyledElement::inlineStyleCSSOMWrapper):
10422
10423             Added helper to get the CSSOM wrapper for the element's inline style if there is one.
10424
10425         (WebCore::StyledElement::styleAttributeChanged):
10426
10427             Do the work to parse/update/replace the inline style attribute here instead of
10428             in an ElementAttributeData method.
10429
10430         (WebCore::StyledElement::setInlineStyleProperty):
10431         (WebCore::StyledElement::removeInlineStyleProperty):
10432         (WebCore::StyledElement::removeAllInlineStyleProperties):
10433         * editing/ApplyStyleCommand.cpp:
10434         (WebCore::ApplyStyleCommand::applyRelativeFontStyleChange):
10435         (WebCore::ApplyStyleCommand::removeEmbeddingUpToEnclosingBlock):
10436         (WebCore::ApplyStyleCommand::applyInlineStyleToNodeRange):
10437         * editing/ReplaceSelectionCommand.cpp:
10438         (WebCore::ReplaceSelectionCommand::handleStyleSpans):
10439         * html/canvas/CanvasStyle.cpp:
10440         (WebCore::currentColor):
10441
10442             s/ensureInlineStyle/ensureMutableInlineStyle/
10443
10444 2012-11-13  Li Yin  <li.yin@intel.com>
10445
10446         fast/forms/file/input-file-write-files.html should cover correct setting value
10447         https://bugs.webkit.org/show_bug.cgi?id=100085
10448
10449         Reviewed by Kentaro Hara.
10450
10451         Fix the GObject and Objective C bindings comparibility issue. Preserving existing
10452         behavior for those may be important in idl.
10453
10454         No new tests, because fast/forms/file/input-file-value.html has covered it.
10455
10456         * html/HTMLInputElement.idl:
10457
10458 2012-11-13  KyungTae Kim  <ktf.kim@samsung.com>
10459
10460         [EFL] Fix build warning in NetworkStateNotifierEfl.cpp
10461         https://bugs.webkit.org/show_bug.cgi?id=102061
10462
10463         Reviewed by Gyuyoung Kim.
10464
10465         The second argument for NLMSG_OK needs to be unsigned to avoid the -Wsign-compare warning.
10466
10467         * platform/network/efl/NetworkStateNotifierEfl.cpp:
10468         (WebCore::readSocketCallback):
10469
10470 2012-11-13  Sami Kyostila  <skyostil@chromium.org>
10471
10472         Don't mark scrolling contents as dirty if RenderLayerBacking is going away
10473         https://bugs.webkit.org/show_bug.cgi?id=101947
10474
10475         Reviewed by Simon Fraser.
10476
10477         When a scrolling contents graphics layer is created or destroyed, the
10478         associated graphics layer is marked as needing display because some of
10479         the painted content may have migrated between the primary graphics layer
10480         and the scrolling layer.
10481
10482         This causes a problem when the RenderLayerBacking is being destroyed,
10483         because setNeedsDisplay() needs to check from the compositor whether to
10484         track repaints or not. If the RenderLayerBacking is being destroyed, the
10485         value returned by compositor() is garbage and this causes a crash.
10486
10487         This patch fixes the problem by making RenderLayer::compositor() return a null
10488         pointer when the renderer no longer has a view.
10489
10490         Covered by existing layout tests in compositing/overflow/.
10491
10492         * rendering/RenderLayer.cpp:
10493         (WebCore::RenderLayer::compositor):
10494
10495 2012-11-13  Erik Arvidsson  <arv@chromium.org>
10496
10497         Update DOMException name: InvalidCharacterError
10498         https://bugs.webkit.org/show_bug.cgi?id=102128
10499
10500         Reviewed by Darin Adler.
10501
10502         Patch 5 of 25 to update DOMException name to match the spec and Firefox.
10503
10504         Updated existing tests.
10505
10506         * dom/DOMCoreException.cpp:
10507
10508 2012-11-13  Joshua Bell  <jsbell@chromium.org>
10509
10510         IndexedDB: Run multiple tasks per transaction tick
10511         https://bugs.webkit.org/show_bug.cgi?id=97738
10512
10513         Reviewed by Tony Chang.
10514
10515         Process multiple tasks from the pending queue(s) when the timer fires. The
10516         task may initiate new tasks that change which queue is active (e.g. indexing
10517         operations) so the loop must re-check each tick which queue to use.
10518
10519         In DumpRenderTree, time to make 20k puts/20k gets dropped from 3.2s to 2.0s (-37%);
10520         in Chromium's content_shell, the time dropped from 8.1s to 4.6s (-42%).
10521
10522         No new tests - just perf improvements, covered by (nearly) all existing IDB tests.
10523
10524         * Modules/indexeddb/IDBTransactionBackendImpl.cpp:
10525         (WebCore::IDBTransactionBackendImpl::abort): Use takeFirst() to clean up code.
10526         (WebCore::IDBTransactionBackendImpl::taskTimerFired): Process as many tasks as are available.
10527
10528 2012-11-13  Elliott Sprehn  <esprehn@chromium.org>
10529
10530         Disable frame loading instead of throwing exceptions on subtree modifications in ChildFrameDisconnector
10531         https://bugs.webkit.org/show_bug.cgi?id=102012
10532
10533         Reviewed by Ojan Vafai.
10534
10535         Previously if you modified the subtree that was being removed from a
10536         removeChild from inside an unload handler on an <iframe> inside the
10537         subtree you'd get an exception which is wrong. Instead we just need to
10538         disable all frame loading there.
10539
10540         This works because either the subtree will be removed and the frame never
10541         loading doesn't matter, or some section of the subtree that contains the
10542         frame will be moved to another part of the document which will cause the
10543         frame to load when it's inserted there.
10544
10545         I also added a check for <object> elements. It doesn't seem this is actually
10546         reachable in the existing code, but I'm not entirely sure since the frame
10547         loading and object/plugin handling is very confusing.
10548
10549         A better fix could be to repeatedly walk the subtree until all frames
10550         were disconnected or some iteration limit was hit and then force all leftover
10551         subframes to disconnect without firing unload handlers but this is such an
10552         edge case I don't think the complexity is necessary.
10553
10554         Test: fast/frames/modifications-in-subtree-unload.html
10555
10556         * dom/ContainerNodeAlgorithms.h:
10557         (WebCore::ChildFrameDisconnector::ChildFrameDisconnector):
10558         (WebCore::ChildFrameDisconnector::~ChildFrameDisconnector):
10559         (ChildFrameDisconnector):
10560         (WebCore::ChildFrameDisconnector::disconnect):
10561         * dom/Node.cpp:
10562         (WebCore::checkAcceptChild): Removed exception.
10563         * html/HTMLFrameElementBase.cpp:
10564         (WebCore::HTMLFrameElementBase::didNotifySubtreeInsertions): Check canLoadFrame().
10565         * html/HTMLFrameOwnerElement.h:
10566         (SubframeLoadingDisabler):
10567         (WebCore::SubframeLoadingDisabler::SubframeLoadingDisabler):
10568         (WebCore::SubframeLoadingDisabler::~SubframeLoadingDisabler):
10569         (WebCore::SubframeLoadingDisabler::canLoadFrame):
10570           Returns true if frames can be loaded in the subtree.
10571         (WebCore::SubframeLoadingDisabler::disabledSubtreeRoots):
10572         * html/HTMLObjectElement.cpp:
10573         (WebCore::HTMLObjectElement::updateWidget):
10574           Check canLoadFrame(). I think this case is impossible, but it's better
10575           to be safe than sorry later.
10576
10577 2012-11-13  Joshua Bell  <jsbell@chromium.org>
10578
10579         [V8] Add missing ENABLE(SVG) test in header
10580         https://bugs.webkit.org/show_bug.cgi?id=102143
10581
10582         Reviewed by Kentaro Hara.
10583
10584         Need to wrap the #include of a header that's only conditionally generated.
10585
10586         Fixes build error if compiling e.g. w/ GYP_DEFINES="enable_svg=0"
10587
10588         * bindings/v8/custom/V8ElementCustom.cpp:
10589
10590 2012-11-13  Jon Lee  <jonlee@apple.com>
10591
10592         Automatically run small plugins
10593         https://bugs.webkit.org/show_bug.cgi?id=102148
10594         <rdar://problem/12695560>
10595
10596         Reviewed by Darin Adler.
10597
10598         * rendering/RenderEmbeddedObject.h: Promote layout() to protected.
10599         * rendering/RenderSnapshottedPlugIn.cpp: Add constants for threshold size for plugins that will auto-start.
10600         (WebCore::RenderSnapshottedPlugIn::layout): After layout, obtain the width and height of the element.
10601         If either dimension is 0, or the overall size of the plugin is smaller that the threshold size, move the
10602         display state to Playing. Assuming we will always layout before first paint, changing the state here
10603         should be safe.
10604         * rendering/RenderSnapshottedPlugIn.h:
10605
10606 2012-11-13  Kenneth Russell  <kbr@google.com>
10607
10608         Notify embedder of lost contexts and allow overriding of WebGL support
10609         https://bugs.webkit.org/show_bug.cgi?id=101826
10610
10611         Reviewed by Adam Barth.
10612
10613         Add hooks notifying the embedder when OpenGL contexts are lost and
10614         allowing overriding of WebGL support on a per-frame basis.
10615
10616         No tests yet; don't know how to test this solely within WebKit.
10617         Currently developing tests in the Chromium port exercising the
10618         notifications end-to-end. Once those are in place, I'm prepared to
10619         investigate adding tests for all ports.
10620
10621         * html/canvas/WebGLRenderingContext.cpp:
10622         (WebCore):
10623         (WebCore::WebGLRenderingContext::create):
10624           Check whether embedder vetoes creation of new WebGL contexts.
10625         (WebCore::WebGLRenderingContext::loseContextImpl):
10626           Notify embedder that context was lost.
10627         (WebCore::WebGLRenderingContext::maybeRestoreContext):
10628           Check whether embedder vetoes restoration of existing WebGL contexts.
10629         * loader/FrameLoaderClient.h:
10630         (FrameLoaderClient):
10631         (WebCore::FrameLoaderClient::allowWebGL):
10632         (WebCore::FrameLoaderClient::didLoseWebGLContext):
10633           Hooks notifying embedder of lost contexts and asking permission to run WebGL.
10634
10635 2012-11-13  Scott Violet  <sky@chromium.org>
10636
10637         [Chromium] Refactor theme font lookup into a factory
10638         https://bugs.webkit.org/show_bug.cgi?id=101949
10639
10640         Reviewed by Tony Chang.
10641
10642         This will ultimately allow us to use what is currently in RenderThemeChromiumLinux on windows.
10643
10644         No new tests. Refactoring only.
10645
10646         * WebCore.gyp/WebCore.gyp:
10647         * WebCore.gypi:
10648         * rendering/RenderThemeChromiumFontProvider.cpp: Added.
10649         (WebCore):
10650         (WebCore::RenderThemeChromiumFontProvider::defaultGUIFont): Moved into RenderThemeFontProvider.
10651         * rendering/RenderThemeChromiumFontProvider.h: Added.
10652         (WTF):
10653         (WebCore):
10654         (RenderThemeChromiumFontProvider): This is the font related methods.
10655         * rendering/RenderThemeChromiumFontProviderLinux.cpp: Added.
10656         (WebCore):
10657         (WebCore::RenderThemeChromiumFontProvider::setDefaultFontSize): What was in RenderThemeChromiumSkia::setDefaultFontSize.
10658         (WebCore::RenderThemeChromiumFontProvider::systemFont): What was in RenderThemeChromiumSkia::systemFont.
10659         * rendering/RenderThemeChromiumFontProviderWin.cpp: Added.
10660         (WebCore):
10661         (WebCore::pointsToPixels): Moved from RenderThemeChromiumWin.
10662         (WebCore::getNonClientMetrics): Moved from RenderThemeChromiumWin.
10663         (WebCore::systemFontSize): Moved from RenderThemeChromiumWin.
10664         (WebCore::RenderThemeChromiumFontProvider::systemFont): Moved from RenderThemeChromiumWin.
10665         (WebCore::RenderThemeChromiumFontProvider::setDefaultFontSize): Moved from RenderThemeChromiumWin.
10666         * rendering/RenderThemeChromiumSkia.cpp:
10667         (WebCore::RenderThemeChromiumSkia::RenderThemeChromiumSkia): Moved into RenderThemeFontProvider.
10668         (WebCore::RenderThemeChromiumSkia::systemFont): Calls to RenderThemeChromiumFontProvider.
10669         (WebCore::RenderThemeChromiumSkia::setDefaultFontSize): Calls to RenderThemeChromiumFontProvider.
10670         * rendering/RenderThemeChromiumSkia.h:
10671         (RenderThemeChromiumSkia): Moves defaultFontSize into RenderThemeChromiumFontProvider.
10672         * rendering/RenderThemeChromiumWin.cpp: Moves font code into RenderThemeFontProviderWin.
10673         (WebCore):
10674         * rendering/RenderThemeChromiumWin.h: Removed overriden methods now handled by RenderThemeChromiumSkia.
10675         (RenderThemeChromiumWin):
10676
10677 2012-11-13  Alec Flett  <alecflett@chromium.org>
10678
10679         Add DOMRequestState to maintain world/ScriptExecutionContext state
10680         https://bugs.webkit.org/show_bug.cgi?id=102102
10681
10682         Reviewed by Adam Barth.
10683
10684         Introduce DOMRequestState, and convert IndexedDB over.
10685
10686         No new tests, this is an abstraction layer for existing code.
10687
10688         * Modules/indexeddb/IDBRequest.cpp:
10689         (WebCore::IDBRequest::IDBRequest):
10690         (WebCore::IDBRequest::onSuccess):
10691         (WebCore::IDBRequest::dispatchEvent):
10692         * Modules/indexeddb/IDBRequest.h:
10693         (IDBRequest):
10694         * WebCore.gypi:
10695         * bindings/v8/DOMRequestState.h: Added.
10696         (WebCore):
10697         (DOMRequestState):
10698         (WebCore::DOMRequestState::DOMRequestState):
10699         (Scope):
10700         (WebCore::DOMRequestState::Scope::Scope):
10701         (WebCore::DOMRequestState::scope):
10702
10703 2012-11-13  Robert Sesek  <rsesek@chromium.org>
10704
10705         Sever Chromium's dependence on WebKitSystemInterface media control drawing functions in RenderThemeMac
10706         https://bugs.webkit.org/show_bug.cgi?id=101634
10707
10708         Reviewed by Adam Barth.
10709
10710         This splits out the common methods between RenderThemeMac and RenderThemeChromiumMac
10711         into RenderThemeMacShared.
10712
10713         No new tests, just refactoring.
10714
10715         * WebCore.gyp/WebCore.gyp: Remove RenderThemeMac.mm from platform/ sources list, since it's part of rendering/
10716         * WebCore.gypi: Add RenderThemeMacShared.{h,mm}
10717         * WebCore.xcodeproj/project.pbxproj: Add RenderThemeMacShared.{h,mm}
10718         * rendering/RenderThemeChromiumMac.h:
10719         * rendering/RenderThemeChromiumMac.mm:
10720         (WebCore::RenderThemeChromiumMac::popupInternalPaddingLeft):
10721         (WebCore::RenderThemeChromiumMac::popupInternalPaddingRight):
10722         (WebCore::RenderThemeChromiumMac::extraDefaultStyleSheet):
10723         * rendering/RenderThemeMac.h:
10724         (RenderThemeMac):
10725         * rendering/RenderThemeMac.mm:
10726         (WebCore):
10727         (WebCore::RenderTheme::themeForPage):
10728         (WebCore::RenderThemeMac::create):
10729         (WebCore::RenderThemeMac::RenderThemeMac):
10730         (WebCore::RenderThemeMac::~RenderThemeMac):
10731         (WebCore::RenderThemeMac::documentViewFor):
10732         (WebCore::mediaControllerTheme):
10733         (WebCore::RenderThemeMac::paintMediaSliderTrack):
10734         (WebCore::RenderThemeMac::paintMediaRewindButton):
10735         (WebCore::RenderThemeMac::paintMediaReturnToRealtimeButton):
10736         (WebCore::RenderThemeMac::paintMediaFullScreenVolumeSliderTrack):
10737         (WebCore::RenderThemeMac::paintMediaFullScreenVolumeSliderThumb):
10738         (WebCore::RenderThemeMac::extraMediaControlsStyleSheet):
10739         (WebCore::RenderThemeMac::extraFullScreenStyleSheet):
10740         * rendering/RenderThemeMacShared.h: Copied from Source/WebCore/rendering/RenderThemeMac.h.
10741         (WebCore):
10742         (RenderThemeMacShared):
10743         (WebCore::RenderThemeMacShared::supportsControlTints):
10744         (WebCore::RenderThemeMacShared::scrollbarControlSizeForPart):
10745         (WebCore::RenderThemeMacShared::supportsSelectionForegroundColors):
10746         (WebCore::RenderThemeMacShared::supportsClosedCaptioning):
10747         (WebCore::RenderThemeMacShared::updateActiveState):
10748         * rendering/RenderThemeMacShared.mm: Copied from Source/WebCore/rendering/RenderThemeMac.mm.
10749         (-[WebCoreRenderThemeNotificationObserver initWithTheme:WebCore::]):
10750         (-[WebCoreRenderThemeNotificationObserver systemColorsDidChange:]):
10751         (-[WebCoreTextFieldCell _coreUIDrawOptionsWithFrame:inView:includeFocus:]):
10752         (WebCore):
10753         (WebCore::RenderThemeMacShared::RenderThemeMacShared):
10754         (WebCore::RenderThemeMacShared::~RenderThemeMacShared):
10755         (WebCore::RenderThemeMacShared::platformActiveSelectionBackgroundColor):
10756         (WebCore::RenderThemeMacShared::platformInactiveSelectionBackgroundColor):
10757         (WebCore::RenderThemeMacShared::platformActiveListBoxSelectionBackgroundColor):
10758         (WebCore::RenderThemeMacShared::platformActiveListBoxSelectionForegroundColor):
10759         (WebCore::RenderThemeMacShared::platformInactiveListBoxSelectionForegroundColor):
10760         (WebCore::RenderThemeMacShared::platformFocusRingColor):
10761         (WebCore::RenderThemeMacShared::platformInactiveListBoxSelectionBackgroundColor):
10762         (WebCore::toFontWeight):
10763         (WebCore::RenderThemeMacShared::systemFont):
10764         (WebCore::convertNSColorToColor):
10765         (WebCore::menuBackgroundColor):
10766         (WebCore::RenderThemeMacShared::platformColorsDidChange):
10767         (WebCore::RenderThemeMacShared::systemColor):
10768         (WebCore::RenderThemeMacShared::usesTestModeFocusRingColor):
10769         (WebCore::RenderThemeMacShared::isControlStyled):
10770         (WebCore::RenderThemeMacShared::adjustRepaintRect):
10771         (WebCore::RenderThemeMacShared::inflateRect):
10772         (WebCore::RenderThemeMacShared::convertToPaintingRect):
10773         (WebCore::RenderThemeMacShared::updateCheckedState):
10774         (WebCore::RenderThemeMacShared::updateEnabledState):
10775         (WebCore::RenderThemeMacShared::updateFocusedState):
10776         (WebCore::RenderThemeMacShared::updatePressedState):
10777         (WebCore::RenderThemeMacShared::controlSupportsTints):
10778         (WebCore::RenderThemeMacShared::controlSizeForFont):
10779         (WebCore::RenderThemeMacShared::setControlSize):
10780         (WebCore::RenderThemeMacShared::sizeForFont):
10781         (WebCore::RenderThemeMacShared::sizeForSystemFont):
10782         (WebCore::RenderThemeMacShared::setSizeFromFont):
10783         (WebCore::RenderThemeMacShared::setFontFromControlSize):
10784         (WebCore::RenderThemeMacShared::controlSizeForSystemFont):
10785         (WebCore::RenderThemeMacShared::paintTextField):
10786         (WebCore::RenderThemeMacShared::adjustTextFieldStyle):
10787         (WebCore::RenderThemeMacShared::paintCapsLockIndicator):
10788         (WebCore::RenderThemeMacShared::paintTextArea):
10789         (WebCore::RenderThemeMacShared::adjustTextAreaStyle):
10790         (WebCore::RenderThemeMacShared::popupButtonMargins):
10791         (WebCore::RenderThemeMacShared::popupButtonSizes):
10792         (WebCore::RenderThemeMacShared::popupButtonPadding):
10793         (WebCore::RenderThemeMacShared::paintMenuList):
10794         (WebCore::RenderThemeMacShared::meterSizeForBounds):
10795         (WebCore::RenderThemeMacShared::paintMeter):
10796         (WebCore::RenderThemeMacShared::supportsMeter):
10797         (WebCore::RenderThemeMacShared::levelIndicatorStyleFor):
10798         (WebCore::RenderThemeMacShared::levelIndicatorFor):
10799         (WebCore::RenderThemeMacShared::progressBarSizes):
10800         (WebCore::RenderThemeMacShared::progressBarMargins):
10801         (WebCore::RenderThemeMacShared::minimumProgressBarHeight):
10802         (WebCore::RenderThemeMacShared::animationRepeatIntervalForProgressBar):
10803         (WebCore::RenderThemeMacShared::animationDurationForProgressBar):
10804         (WebCore::RenderThemeMacShared::adjustProgressBarStyle):
10805         (WebCore::RenderThemeMacShared::paintProgressBar):
10806         (WebCore::TopGradientInterpolate):
10807         (WebCore::BottomGradientInterpolate):
10808         (WebCore::MainGradientInterpolate):
10809         (WebCore::TrackGradientInterpolate):
10810         (WebCore::RenderThemeMacShared::paintMenuListButtonGradients):
10811         (WebCore::RenderThemeMacShared::paintMenuListButton):
10812         (WebCore::menuListButtonSizes):
10813         (WebCore::RenderThemeMacShared::adjustMenuListStyle):
10814         (WebCore::RenderThemeMacShared::popupInternalPaddingLeft):
10815         (WebCore::RenderThemeMacShared::popupInternalPaddingRight):
10816         (WebCore::RenderThemeMacShared::popupInternalPaddingTop):
10817         (WebCore::RenderThemeMacShared::popupInternalPaddingBottom):
10818         (WebCore::RenderThemeMacShared::adjustMenuListButtonStyle):
10819         (WebCore::RenderThemeMacShared::setPopupButtonCellState):
10820         (WebCore::RenderThemeMacShared::menuListSizes):
10821         (WebCore::RenderThemeMacShared::minimumMenuListSize):
10822         (WebCore::RenderThemeMacShared::adjustSliderTrackStyle):
10823         (WebCore::RenderThemeMacShared::paintSliderTrack):
10824         (WebCore::RenderThemeMacShared::adjustSliderThumbStyle):
10825         (WebCore::RenderThemeMacShared::paintSliderThumb):
10826         (WebCore::RenderThemeMacShared::paintSearchField):
10827         (WebCore::RenderThemeMacShared::setSearchCellState):
10828         (WebCore::RenderThemeMacShared::searchFieldSizes):
10829         (WebCore::RenderThemeMacShared::setSearchFieldSize):
10830         (WebCore::RenderThemeMacShared::adjustSearchFieldStyle):
10831         (WebCore::RenderThemeMacShared::paintSearchFieldCancelButton):
10832         (WebCore::RenderThemeMacShared::cancelButtonSizes):
10833         (WebCore::RenderThemeMacShared::adjustSearchFieldCancelButtonStyle):
10834         (WebCore::RenderThemeMacShared::resultsButtonSizes):
10835         (WebCore::RenderThemeMacShared::adjustSearchFieldDecorationStyle):
10836         (WebCore::RenderThemeMacShared::paintSearchFieldDecoration):
10837         (WebCore::RenderThemeMacShared::adjustSearchFieldResultsDecorationStyle):
10838         (WebCore::RenderThemeMacShared::paintSearchFieldResultsDecoration):
10839         (WebCore::RenderThemeMacShared::adjustSearchFieldResultsButtonStyle):
10840         (WebCore::RenderThemeMacShared::paintSearchFieldResultsButton):
10841         (WebCore::RenderThemeMacShared::sliderTickSize):
10842         (WebCore::RenderThemeMacShared::sliderTickOffsetFromTrackCenter):
10843         (WebCore::RenderThemeMacShared::adjustSliderThumbSize):
10844         (WebCore::RenderThemeMacShared::shouldShowPlaceholderWhenFocused):
10845         (WebCore::RenderThemeMacShared::popupButton):
10846         (WebCore::RenderThemeMacShared::search):
10847         (WebCore::RenderThemeMacShared::searchMenuTemplate):
10848         (WebCore::RenderThemeMacShared::sliderThumbHorizontal):
10849         (WebCore::RenderThemeMacShared::sliderThumbVertical):
10850         (WebCore::RenderThemeMacShared::textField):
10851         (WebCore::RenderThemeMacShared::fileListNameForWidth):
10852         (WebCore::RenderThemeMacShared::paintPlugInSnapshotOverlay):
10853
10854 2012-11-13  Tab Atkins  <jackalmage@gmail.com>
10855
10856         CSS @charset parsing is too loose, doesn't match other browsers
10857         https://bugs.webkit.org/show_bug.cgi?id=101527
10858
10859         Reviewed by Alexey Proskuryakov.
10860
10861         Per <https://www.w3.org/Bugs/Public/show_bug.cgi?id=19882#attach_1244>,
10862         IE and FF have changed to be strict about @charset parsing,
10863         as the CSS 2.1 spec requires.
10864         Since @charset use is very uncommon anyway,
10865         we should match the new behavior and the spec for platform consistency.
10866
10867         Test: fast/encoding/css-charset-evil/css-charset-evil.html
10868
10869         * loader/TextResourceDecoder.cpp:
10870         (WebCore::bytesEqual):
10871         (WebCore::TextResourceDecoder::checkForCSSCharset):
10872
10873 2012-11-13  Kenichi Ishibashi  <bashi@chromium.org>
10874
10875         [WebSocket] send() and close() should not throw an exception for an unpaired surrogate but use the replacement character
10876         https://bugs.webkit.org/show_bug.cgi?id=101569
10877
10878         Reviewed by Alexey Proskuryakov.
10879
10880         Replace unpaired surrogates with replacing character (U+FFFD) when
10881         encoding text messages and close reasons. This change is aimed at
10882         following the changes on the WebSocket API specification.
10883
10884         Test: http/tests/websocket/tests/hybi/close-reason-too-long.html
10885
10886         * Modules/websockets/WebSocket.cpp:
10887         (WebCore::WebSocket::close):
10888         Use String::StrictConversionReplacingUnpairedSurrogatesWithFFFD mode to encode
10889         text message. Remove invalid utf-8 check.
10890         * Modules/websockets/WebSocketChannel.cpp:
10891         (WebCore::WebSocketChannel::send):
10892         Use String::StrictConversionReplacingUnpairedSurrogatesWithFFFD mode to encode
10893         close reason. Remove invalid utf-8 check.
10894
10895 2012-11-13  Christophe Dumez  <christophe.dumez@intel.com>
10896
10897         Make HTMLLegendElement.form behave according to specification
10898         https://bugs.webkit.org/show_bug.cgi?id=101044
10899
10900         Reviewed by Kent Tamura.
10901
10902         According to the HTML5 specification (http://dev.w3.org/html5/spec/single-page.html#dom-legend-form),
10903         The form IDL attribute's behavior depends on whether the legend element is in a fieldset element or
10904         not. If the legend has a fieldset element as its parent, then the form IDL attribute must return the
10905         same value as the form IDL attribute on that fieldset element. Otherwise, it must return null.
10906
10907         This patch makes WebKit behaves according to specification (and Firefox). Previously, legend.form was
10908         not returning null if the element was not inside a fieldset. Also, legend.form did not necessarily
10909         return the same value as the parent fieldset's form attribute.
10910
10911         Test: fast/forms/legend/legend-form.html
10912
10913         * html/HTMLLegendElement.cpp:
10914         (WebCore):
10915         (WebCore::HTMLLegendElement::virtualForm):
10916         * html/HTMLLegendElement.h:
10917         (HTMLLegendElement):
10918
10919 2012-11-13  Mark Lam  <mark.lam@apple.com>
10920
10921         Make an assertion in JSEventListener::jsFunction() more useful.
10922         https://bugs.webkit.org/show_bug.cgi?id=101985.
10923
10924         Reviewed by Geoffrey Garen.
10925
10926         The assertion was weakened in r134495. This strengthens it again.
10927
10928         No new tests.
10929
10930         * bindings/js/JSEventListener.h:
10931         (WebCore::JSEventListener::jsFunction):
10932
10933 2012-11-13  Dean Jackson  <dino@apple.com>
10934
10935         Support list of tracks in caption media controls
10936         https://bugs.webkit.org/show_bug.cgi?id=101669
10937
10938         Reviewed by Eric Carlson.
10939
10940         Attempt four of commit. The first two times caused build failures on Chromium. The third time
10941         crashed the Windows test bot. It's also been rebased since r134488.
10942
10943         Add some new elements to the media control shadow DOM that display the list of available
10944         tracks on an audio/video element. The UI is hidden by default everywhere but on Mac,
10945         where it is given a very basic design. At the moment only the list of available tracks
10946         are displayed; The followup bug will make the UI active: https://bugs.webkit.org/show_bug.cgi?id=101670
10947
10948         No new tests - this doesn't expose any testable surface.
10949
10950         * css/mediaControls.css: Added default rules that hide the new elements.
10951         * css/mediaControlsQuickTime.css: Specific rules that give a basic rendering of the new track list.
10952         * html/shadow/MediaControlElements.cpp:
10953         (WebCore::MediaControlElement::isShowing): Tests for the visibility of a control.
10954         (WebCore::MediaControlClosedCaptionsContainerElement::MediaControlClosedCaptionsContainerElement):
10955         (WebCore::MediaControlClosedCaptionsContainerElement::create):
10956         (WebCore::MediaControlClosedCaptionsContainerElement::shadowPseudoId):
10957         (WebCore::MediaControlToggleClosedCaptionsButtonElement::MediaControlToggleClosedCaptionsButtonElement):
10958         (WebCore::MediaControlToggleClosedCaptionsButtonElement::create): Now takes a reference to the media controls as a parameter.
10959         (WebCore::MediaControlToggleClosedCaptionsButtonElement::updateDisplayType):
10960         (WebCore::MediaControlToggleClosedCaptionsButtonElement::defaultEventHandler):
10961         (WebCore::MediaControlToggleClosedCaptionsButtonElement::shadowPseudoId):
10962         (WebCore::MediaControlClosedCaptionsTrackListElement::MediaControlClosedCaptionsTrackListElement): New element for holding a list of tracks to display.
10963         * html/shadow/MediaControlElements.h:
10964         (MediaControlElement):
10965         (MediaControlToggleClosedCaptionsButtonElement):
10966         (MediaControlClosedCaptionsContainerElement):
10967         (MediaControlClosedCaptionsTrackListElement): Examines the media element to build a shadow DOM that lists all the tracks available.
10968         * html/shadow/MediaControlsApple.cpp:
10969         (WebCore::MediaControlsApple::MediaControlsApple):
10970         (WebCore::MediaControlsApple::create): New track container and list elements created.
10971         (WebCore::MediaControlsApple::setMediaController): Hook up the new elements to the controller..
10972         (WebCore::MediaControlsApple::hide):
10973         (WebCore::MediaControlsApple::makeTransparent):
10974         (WebCore::MediaControlsApple::reset):
10975         (WebCore::MediaControlsApple::reportedError):
10976         (WebCore::MediaControlsApple::toggleClosedCaptionTrackList): Shows or hides the popup with the list of tracks.
10977         (WebCore):
10978         * html/shadow/MediaControlsApple.h:
10979         (MediaControlsApple):
10980         * html/shadow/MediaControlsChromium.cpp:
10981         (WebCore::MediaControlsChromium::initializeControls): Pass in the controls as a parameter.
10982         * html/shadow/MediaControls.h:
10983         (MediaControls):
10984         * platform/Language.cpp:
10985         (WebCore::displayNameForLanguageLocale): New function to return a human-readable name for a locale, given the identifier input.
10986         * platform/Language.h:
10987         (WebCore):
10988         * rendering/RenderMediaControls.cpp:
10989         (WebCore::RenderMediaControls::paintMediaControlsPart): New enum values into switch.
10990         * rendering/RenderMediaControlsChromium.cpp:
10991         (WebCore::RenderMediaControlsChromium::paintMediaControlsPart): New enum values into switch.
10992
10993 2012-11-13  Dimitri Glazkov  <dglazkov@chromium.org>
10994
10995         Unreviewed, rolling out r134377.
10996         http://trac.webkit.org/changeset/134377
10997         https://bugs.webkit.org/show_bug.cgi?id=101133
10998
10999         Caused a mysterious Android Clang build failure, needs
11000         investigation before landing again.
11001
11002         * css/html.css:
11003         (input::-webkit-textfield-decoration-container):
11004         * html/TextFieldInputType.cpp:
11005         (WebCore::TextFieldInputType::attach):
11006
11007 2012-11-13  Sheriff Bot  <webkit.review.bot@gmail.com>
11008
11009         Unreviewed, rolling out r134482.
11010         http://trac.webkit.org/changeset/134482
11011         https://bugs.webkit.org/show_bug.cgi?id=102140
11012
11013         The patch causes fast/regions/moved-content-node-crash.html to
11014         crash in Debug mode due to ASSERTION. (Requested by abucur on
11015         #webkit).
11016
11017         * rendering/InlineFlowBox.cpp:
11018         (SameSizeAsInlineFlowBox):
11019         * rendering/InlineFlowBox.h:
11020         (WebCore::InlineFlowBox::InlineFlowBox):
11021         (InlineFlowBox):
11022         * rendering/RenderBlock.cpp:
11023         (WebCore::RenderBlock::lineWidthForPaginatedLineChanged):
11024         * rendering/RenderBlockLineLayout.cpp:
11025         (WebCore::RenderBlock::layoutRunsAndFloatsInRange):
11026         (WebCore::RenderBlock::linkToEndLineIfNeeded):
11027         (WebCore::RenderBlock::determineStartPosition):
11028         * rendering/RootInlineBox.cpp:
11029         (WebCore::RootInlineBox::RootInlineBox):
11030         * rendering/RootInlineBox.h:
11031         (WebCore):
11032         (WebCore::RootInlineBox::paginationStrut):
11033         (WebCore::RootInlineBox::setPaginationStrut):
11034         (WebCore::RootInlineBox::isFirstAfterPageBreak):
11035         (WebCore::RootInlineBox::setIsFirstAfterPageBreak):
11036         (WebCore::RootInlineBox::paginatedLineWidth):
11037         (WebCore::RootInlineBox::setPaginatedLineWidth):
11038         (RootInlineBox):
11039
11040 2012-11-13  Xianzhu Wang  <wangxianzhu@chromium.org>
11041
11042         Missing NodeRenderStyle.h include in WebCore/html/TextFieldInputType.cpp
11043         https://bugs.webkit.org/show_bug.cgi?id=102108
11044
11045         Reviewed by Adam Barth.
11046
11047         No new tests. Fix clang build break.
11048
11049         * html/TextFieldInputType.cpp: Added #include "NodeRenderStyle.h"
11050
11051 2012-11-13  Chris Fleizach  <cfleizach@apple.com>
11052
11053         AX: MathML types need to be semantically identified in AX tree
11054         https://bugs.webkit.org/show_bug.cgi?id=101263
11055
11056         Reviewed by Beth Dakin.
11057
11058         Semantically identify various MathML elements within the AX tree. This will allow
11059         screen readers to identify math types so that equations can be output more accurately.
11060
11061         Test: platform/mac/accessibility/mathml-elements.html
11062
11063         * accessibility/AccessibilityObject.h:
11064         (AccessibilityObject):
11065         (WebCore::AccessibilityObject::isMathElement):
11066         (WebCore::AccessibilityObject::isMathFraction):
11067         (WebCore::AccessibilityObject::isMathFenced):
11068         (WebCore::AccessibilityObject::isMathSubscriptSuperscript):
11069         (WebCore::AccessibilityObject::isMathRow):
11070         (WebCore::AccessibilityObject::isMathUnderOver):
11071         (WebCore::AccessibilityObject::isMathRoot):
11072         (WebCore::AccessibilityObject::isMathSquareRoot):
11073         (WebCore::AccessibilityObject::isMathText):
11074         (WebCore::AccessibilityObject::isMathNumber):
11075         (WebCore::AccessibilityObject::isMathOperator):
11076         (WebCore::AccessibilityObject::isMathFenceOperator):
11077         (WebCore::AccessibilityObject::isMathSeparatorOperator):
11078         (WebCore::AccessibilityObject::isMathIdentifier):
11079         (WebCore::AccessibilityObject::isMathTable):
11080         (WebCore::AccessibilityObject::isMathTableRow):
11081         (WebCore::AccessibilityObject::isMathTableCell):
11082         (WebCore::AccessibilityObject::mathRadicandObject):
11083         (WebCore::AccessibilityObject::mathRootIndexObject):
11084         (WebCore::AccessibilityObject::mathUnderObject):
11085         (WebCore::AccessibilityObject::mathOverObject):
11086         (WebCore::AccessibilityObject::mathNumeratorObject):
11087         (WebCore::AccessibilityObject::mathDenominatorObject):
11088         (WebCore::AccessibilityObject::mathBaseObject):
11089         (WebCore::AccessibilityObject::mathSubscriptObject):
11090         (WebCore::AccessibilityObject::mathSuperscriptObject):
11091         (WebCore::AccessibilityObject::mathFencedOpenString):
11092         (WebCore::AccessibilityObject::mathFencedCloseString):
11093         * accessibility/AccessibilityRenderObject.cpp:
11094         (WebCore::startOfContinuations):
11095             Handle a case where a MathML render element is created with the node of their parent (which could lead to an assert).
11096         (WebCore::AccessibilityRenderObject::textUnderElement):
11097             Handle the cases for RenderMathMLOperators which use the node of their parent, which confuses the normal textUnderElement() routine.
11098         (WebCore::AccessibilityRenderObject::accessibilityIsIgnored):
11099             Handle ignored cases for math elements
11100         (WebCore::AccessibilityRenderObject::determineAccessibilityRole):
11101         (WebCore::AccessibilityRenderObject::isMathElement):
11102         (WebCore::AccessibilityRenderObject::isMathFraction):
11103         (WebCore::AccessibilityRenderObject::isMathFenced):
11104         (WebCore::AccessibilityRenderObject::isMathSubscriptSuperscript):
11105         (WebCore::AccessibilityRenderObject::isMathRow):
11106         (WebCore::AccessibilityRenderObject::isMathUnderOver):
11107         (WebCore::AccessibilityRenderObject::isMathSquareRoot):
11108         (WebCore::AccessibilityRenderObject::isMathRoot):
11109         (WebCore::AccessibilityRenderObject::isMathOperator):
11110         (WebCore::AccessibilityRenderObject::isMathFenceOperator):
11111         (WebCore::AccessibilityRenderObject::isMathSeparatorOperator):
11112         (WebCore::AccessibilityRenderObject::isMathText):
11113         (WebCore::AccessibilityRenderObject::isMathNumber):
11114         (WebCore::AccessibilityRenderObject::isMathIdentifier):
11115         (WebCore::AccessibilityRenderObject::isMathTable):
11116         (WebCore::AccessibilityRenderObject::isMathTableRow):
11117         (WebCore::AccessibilityRenderObject::isMathTableCell):
11118         (WebCore::AccessibilityRenderObject::isIgnoredElementWithinMathTree):
11119             Make sure anonymouse blocks are ignored within math tree; make sure non-element type objects are ignored (like <mstyle>).
11120         (WebCore::AccessibilityRenderObject::mathRadicandObject):
11121         (WebCore::AccessibilityRenderObject::mathRootIndexObject):
11122         (WebCore::AccessibilityRenderObject::mathNumeratorObject):
11123         (WebCore::AccessibilityRenderObject::mathDenominatorObject):
11124         (WebCore::AccessibilityRenderObject::mathUnderObject):
11125         (WebCore::AccessibilityRenderObject::mathOverObject):
11126         (WebCore::AccessibilityRenderObject::mathBaseObject):
11127         (WebCore::AccessibilityRenderObject::mathSubscriptObject):
11128         (WebCore::AccessibilityRenderObject::mathSuperscriptObject):
11129         (WebCore::AccessibilityRenderObject::mathFencedOpenString):
11130         (WebCore::AccessibilityRenderObject::mathFencedCloseString):
11131         * accessibility/AccessibilityRenderObject.h:
11132         (AccessibilityRenderObject):
11133         * accessibility/mac/WebAccessibilityObjectWrapper.mm:
11134         (-[WebAccessibilityObjectWrapper additionalAccessibilityAttributeNames]):
11135         (createAccessibilityRoleMap):
11136         (-[WebAccessibilityObjectWrapper subrole]):
11137         (-[WebAccessibilityObjectWrapper accessibilityAttributeValue:]):
11138         * rendering/mathml/RenderMathMLBlock.cpp:
11139         (WebCore::RenderMathMLBlock::RenderMathMLBlock):
11140         * rendering/mathml/RenderMathMLBlock.h:
11141         (WebCore::RenderMathMLBlock::isRenderMathMLFenced):
11142         (WebCore::RenderMathMLBlock::isRenderMathMLFraction):
11143         (WebCore::RenderMathMLBlock::isRenderMathMLRoot):
11144         (WebCore::RenderMathMLBlock::isRenderMathMLSquareRoot):
11145         (WebCore::RenderMathMLBlock::isRenderMathMLSubSup):
11146         (WebCore::RenderMathMLBlock::isRenderMathMLUnderOver):
11147         (WebCore::RenderMathMLBlock::setIgnoreInAccessibilityTree):
11148         (WebCore::RenderMathMLBlock::ignoreInAccessibilityTree):
11149             Add ability to identify anonymous render blocks as items that AX should ignore.
11150         (RenderMathMLBlock):
11151         * rendering/mathml/RenderMathMLFenced.cpp:
11152         (WebCore::RenderMathMLFenced::createMathMLOperator):
11153             Identify which kind of math operator is being created on the fly (Fence or Separator)
11154         (WebCore::RenderMathMLFenced::makeFences):
11155         (WebCore::RenderMathMLFenced::addChild):
11156         * rendering/mathml/RenderMathMLFenced.h:
11157         (WebCore::RenderMathMLFenced::isRenderMathMLFenced):
11158         (RenderMathMLFenced):
11159         * rendering/mathml/RenderMathMLFraction.h:
11160         (WebCore::RenderMathMLFraction::isRenderMathMLFraction):
11161         * rendering/mathml/RenderMathMLOperator.cpp:
11162         (WebCore::RenderMathMLOperator::RenderMathMLOperator):
11163         (WebCore::RenderMathMLOperator::updateFromElement):
11164         (WebCore::RenderMathMLOperator::createGlyph):
11165              Mark anonymous render blocks as AX ignored.
11166         * rendering/mathml/RenderMathMLOperator.h:
11167         (WebCore::RenderMathMLOperator::setOperatorType):
11168         (WebCore::RenderMathMLOperator::operatorType):
11169         (RenderMathMLOperator):
11170         * rendering/mathml/RenderMathMLRoot.h:
11171         (WebCore::RenderMathMLRoot::isRenderMathMLRoot):
11172         * rendering/mathml/RenderMathMLSquareRoot.h:
11173         (WebCore::RenderMathMLSquareRoot::isRenderMathMLSquareRoot):
11174         * rendering/mathml/RenderMathMLSubSup.h:
11175         (WebCore::RenderMathMLSubSup::isRenderMathMLSubSup):
11176         * rendering/mathml/RenderMathMLUnderOver.h:
11177         (WebCore::RenderMathMLUnderOver::isRenderMathMLUnderOver):
11178         
11179 2012-11-13  Mark Lam  <mark.lam@apple.com>
11180
11181         JSEventListener should not access m_jsFunction when its wrapper is gone.
11182         https://bugs.webkit.org/show_bug.cgi?id=101985.
11183
11184         Reviewed by Geoffrey Garen.
11185
11186         Added a few null checks for m_wrapper before we do anything with m_jsFunction.
11187
11188         No new tests.
11189
11190         * bindings/js/JSEventListener.cpp:
11191         (WebCore::JSEventListener::initializeJSFunction):
11192         - Removed a now invalid assertion. m_wrapper is expected to have a
11193           valid non-zero value when jsFunction is valid. However, in the case
11194           of JSLazyEventListener (which extends JSEventListener), m_wrapper is
11195           initially 0 when m_jsFunction has not been realized yet. When
11196           JSLazyEventListener::initializeJSFunction() realizes m_jsFunction,
11197           it will set m_wrapper to an appropriate wrapper object.
11198
11199           For this reason, JSEventListener::jsFunction() cannot do the null
11200           check on m_wrapper until after the call to initializeJSFunction.
11201
11202           This, in turns, means that in the case of the non-lazy
11203           JSEventListener, initializeJSFunction() will also be called, and
11204           if the GC has collected the m_wrapper but the JSEventListener has
11205           not been removed yet, it is possible to see a null m_wrapper while
11206           m_jsFunction contains a non-zero stale value.
11207
11208           Hence, this assertion of (m_wrapper || !m_jsFunction) in
11209           JSEventListener::initializeJSFunction() is not always true and
11210           should be removed.
11211
11212         (WebCore::JSEventListener::visitJSFunction):
11213         (WebCore::JSEventListener::operator==):
11214         * bindings/js/JSEventListener.h:
11215         (WebCore::JSEventListener::jsFunction):
11216
11217 2012-11-13  Adam Barth  <abarth@webkit.org>
11218
11219         [V8] instantiateV8Object should encapulate the tricky creationContext logic
11220         https://bugs.webkit.org/show_bug.cgi?id=102117
11221
11222         Reviewed by Eric Seidel.
11223
11224         The logic around creationContext is tricky. Rather than putting the
11225         logic in the code generator, we can centralize the logic in
11226         instantiateV8Object.
11227
11228         This patch shouldn't have any behavior change.
11229
11230         * bindings/scripts/CodeGeneratorV8.pm:
11231         (GenerateToV8Converters):
11232         * bindings/v8/V8DOMWrapper.cpp:
11233         (V8WrapperInstantiationScope):
11234         (WebCore::V8WrapperInstantiationScope::V8WrapperInstantiationScope):
11235         (WebCore::V8WrapperInstantiationScope::~V8WrapperInstantiationScope):
11236         (WebCore::V8WrapperInstantiationScope::context):
11237         (WebCore):
11238         (WebCore::V8DOMWrapper::instantiateV8Object):
11239         * bindings/v8/V8DOMWrapper.h:
11240         (V8DOMWrapper):
11241
11242 2012-11-13  Silvia Pfeiffer  <silviapf@chromium.org>
11243
11244         Clean up the inheritance tree under the MediaControls Class.
11245         https://bugs.webkit.org/show_bug.cgi?id=88871
11246
11247         Reviewed by Eric Carlson.
11248
11249         This patch removes code duplication between the Chromium and Safari
11250         media controls shadow DOMs.
11251         This is achieved by pulling common functions that are identical (or
11252         almost identical) between the different platforms into the base class.
11253         The derived classes are renamed based on their platform:
11254         - MediaControlRootElement                to MediaControlsApple.
11255         - MediaControlRootElementChromium        to MediaControlsChromium.
11256         - MediaControlRootElementChromiumAndroid to MediaControlsChromiumAndroid.
11257         MediaControls is now no longer an abstract base class, but its "create"
11258         function is only implemented in the port-specific header file, so it's
11259         on purpose incomplete in the MediaControls.cpp file.
11260
11261         No new tests because this is refactoring work only.
11262
11263         * CMakeLists.txt:
11264           Rename MediaControlRootElement.cpp to MediaControlsApple.cpp .
11265         * GNUmakefile.list.am:
11266           Rename MediaControlRootElement.[cpp,h] to MediaControlsApple.[cpp,h] .
11267         * Target.pri:
11268           Rename MediaControlRootElement.cpp to MediaControlsApple.cpp .
11269         * WebCore.gypi:
11270           Rename MediaControlRootElement[Chromium[Android]].[cpp,h] to MediaControls[Apple,Chromium[Android]].[cpp,h] .
11271         * WebCore.order:
11272           Rename MediaControlRootElement symbols to MediaControlsApple symbols.
11273         * WebCore.vcproj/WebCore.vcproj:
11274           Rename MediaControlRootElement.[cpp,h] to MediaControlsApple.[cpp,h] .
11275         * WebCore.xcodeproj/project.pbxproj:
11276           Rename MediaControlRootElement.[cpp,h] to MediaControlsApple.[cpp,h] .
11277         * html/shadow/MediaControlElements.cpp:
11278         (WebCore::MediaControlTimelineElement::defaultEventHandler):
11279           Remove dependency on MediaControlRootElement.h (base class MediaControls.h is still there).
11280           Rename updateTimeDisplay() to updateCurrentTimeDisplay().
11281         * html/shadow/MediaControls.cpp:
11282         (WebCore::MediaControls::MediaControls):
11283           Added initialization for media elements that all platform controls share.
11284         (WebCore):
11285           Removed include files that are already included in header file.
11286         (WebCore::MediaControls::setMediaController):
11287           Added controller assignment for media elements that all platform controls share.
11288         (WebCore::MediaControls::reset):
11289           Added resets for media elements that all platform controls share.
11290         (WebCore::MediaControls::reportedError):
11291           Added error handling for media elements that all platform controls share.
11292         (WebCore::MediaControls::loadedMetadata):
11293           Added default action for loadedMetadata event.
11294         (WebCore::MediaControls::show):
11295         (WebCore::MediaControls::hide):
11296         (WebCore::MediaControls::makeOpaque):
11297         (WebCore::MediaControls::makeTransparent):
11298         (WebCore::MediaControls::shouldHideControls):
11299         (WebCore::MediaControls::bufferingProgressed):
11300         (WebCore::MediaControls::playbackStarted):
11301         (WebCore::MediaControls::playbackProgressed):
11302         (WebCore::MediaControls::playbackStopped):
11303         (WebCore::MediaControls::updateCurrentTimeDisplay):
11304         (WebCore::MediaControls::showVolumeSlider):
11305         (WebCore::MediaControls::changedMute):
11306         (WebCore::MediaControls::changedVolume):
11307         (WebCore::MediaControls::changedClosedCaptionsVisibility):
11308         (WebCore::MediaControls::enteredFullscreen):
11309         (WebCore::MediaControls::exitedFullscreen):
11310         (WebCore::MediaControls::defaultEventHandler):
11311         (WebCore::MediaControls::hideFullscreenControlsTimerFired):
11312         (WebCore::MediaControls::startHideFullscreenControlsTimer):
11313         (WebCore::MediaControls::stopHideFullscreenControlsTimer):
11314         (WebCore::MediaControls::shadowPseudoId):
11315         (WebCore::MediaControls::containsRelatedTarget):
11316         (WebCore::MediaControls::createTextTrackDisplay):
11317         (WebCore::MediaControls::showTextTrackDisplay):
11318         (WebCore::MediaControls::hideTextTrackDisplay):
11319         (WebCore::MediaControls::updateTextTrackDisplay):
11320           Added default actions for all these media controls member functions.
11321         * html/shadow/MediaControls.h:
11322         (WebCore):
11323           Added include files and forward class declarations that all media controls share.
11324         (MediaControls):
11325           Make all pure virtual functions that have default implementations just virtual.
11326         (WebCore::MediaControls::updateStatusDisplay):
11327           Add an empty virtual updateStatusDisplay function which is used by media elements.
11328         * html/shadow/MediaControlsApple.cpp: Renamed from Source/WebCore/html/shadow/MediaControlRootElement.cpp.
11329           Reduced Apple-specific media control functions by relying on default implementations in the base class.
11330         * html/shadow/MediaControlsApple.h: Renamed from Source/WebCore/html/shadow/MediaControlRootElement.h.
11331           Reduced Apple-specific media control elements by relying on some elements in the base class.
11332         * html/shadow/MediaControlsChromium.cpp: Renamed from Source/WebCore/html/shadow/MediaControlRootElementChromium.cpp.
11333           Reduced Chromium-specific media control functions by relying on default implementations in the base class.
11334         * html/shadow/MediaControlsChromium.h: Renamed from Source/WebCore/html/shadow/MediaControlRootElementChromium.h.
11335           Reduced Chromium-specific media control functions by relying on default implementations in the base class.
11336         * html/shadow/MediaControlsChromiumAndroid.cpp: Renamed from Source/WebCore/html/shadow/MediaControlRootElementChromiumAndroid.cpp.
11337           Renamed class name and base class name.
11338         * html/shadow/MediaControlsChromiumAndroid.h: Renamed from Source/WebCore/html/shadow/MediaControlRootElementChromiumAndroid.h.
11339           Renamed class name and base class name.
11340         * rendering/RenderTheme.h:
11341         (WebCore::RenderTheme::timeWithoutMouseMovementBeforeHidingControls):
11342           Moved timeWithoutMouseMovementBeforeHidingControls variable from all classes to a theme-specific function.
11343
11344 2012-11-13  Benjamin Poulain  <benjamin@webkit.org>
11345
11346         CSSParser::setStyleSheet() should be inline
11347         https://bugs.webkit.org/show_bug.cgi?id=101829
11348
11349         Reviewed by Andreas Kling.
11350
11351         * css/CSSParser.cpp:
11352         * css/CSSParser.h:
11353         (WebCore::CSSParser::setStyleSheet):
11354         CSSParser::setStyleSheet() just assign a pointer, it does not even
11355         change a ref-count. The function should probably be in the header.
11356
11357 2012-11-13  Andrei Bucur  <abucur@adobe.com>
11358
11359         [CSS Regions] Add Region info for RootLineBoxes and pack the pagination data
11360         https://bugs.webkit.org/show_bug.cgi?id=101332
11361
11362         Reviewed by David Hyatt.
11363
11364         Currently the pagination information for lines is spread between the RootInlineBox and InlineFlowBox classes, consuming memory even though
11365         the boxes were not the result of an pagination layout. To overcome this, a new struct (LineFragmentationData) is created that wraps all the data,
11366         including a new member, the containing Region for the line.
11367         The containing Region is used to detect if a line changed the Region where it resides. This will be helpful especially when implementing region
11368         styling for layout properties (e.g. the font-size property https://bugs.webkit.org/show_bug.cgi?id=95559 ).
11369         A line can change the region when it is shifted inside the containing block or if the entire block moves. This means it's better to delegate
11370         the task of updating the containing Region to the block.
11371
11372         Tests: No new tests because there is no functional change.
11373
11374         * rendering/InlineFlowBox.cpp:
11375         (SameSizeAsInlineFlowBox):
11376         * rendering/InlineFlowBox.h:
11377         (WebCore::InlineFlowBox::InlineFlowBox):
11378         (InlineFlowBox):
11379         * rendering/RenderBlock.cpp:
11380         (WebCore::RenderBlock::lineWidthForPaginatedLineChanged):
11381         * rendering/RenderBlockLineLayout.cpp:
11382         (WebCore::RenderBlock::layoutRunsAndFloatsInRange):
11383         (WebCore::RenderBlock::linkToEndLineIfNeeded):
11384         (WebCore::RenderBlock::determineStartPosition):
11385         * rendering/RootInlineBox.cpp:
11386         (WebCore::RootInlineBox::RootInlineBox):
11387         (WebCore::RootInlineBox::setContainingRegion):
11388         (WebCore):
11389         * rendering/RootInlineBox.h:
11390         (WebCore):
11391         (WebCore::RootInlineBox::paginationStrut):
11392         (WebCore::RootInlineBox::setPaginationStrut):
11393         (WebCore::RootInlineBox::isFirstAfterPageBreak):
11394         (WebCore::RootInlineBox::setIsFirstAfterPageBreak):
11395         (WebCore::RootInlineBox::paginatedLineWidth):
11396         (WebCore::RootInlineBox::setPaginatedLineWidth):
11397         (RootInlineBox):
11398         (WebCore::RootInlineBox::containingRegion):
11399         (WebCore::RootInlineBox::ensureLineFragmentationData):
11400         (LineFragmentationData):
11401         (WebCore::RootInlineBox::LineFragmentationData::LineFragmentationData):
11402
11403 2012-11-13  Milian Wolff  <milian.wolff@kdab.com>
11404
11405         [Qt] QNX build fails due to signature change in gl2.h header (glShaderSource)
11406         https://bugs.webkit.org/show_bug.cgi?id=98038
11407
11408         Reviewed by Simon Hausmann.
11409
11410         Cast the function to the expected type, just like it is done on non-Qt/OpenGL2 ES platforms.
11411
11412         * platform/graphics/OpenGLShims.cpp:
11413         (WebCore):
11414
11415 2012-11-13  Chris Fleizach  <cfleizach@apple.com>
11416
11417         WebKit exposes ARIA rowheader role as AXUnknown when not contained in table/grid
11418         https://bugs.webkit.org/show_bug.cgi?id=101616
11419
11420         Reviewed by Beth Dakin.
11421
11422         If the rowheader role is exposed because the element is not within a table, the mac platform
11423         should map that to a generic group.
11424
11425         Test: platform/mac/accessibility/rowheader-outside-table-role.html
11426
11427         * accessibility/mac/WebAccessibilityObjectWrapper.mm:
11428         (createAccessibilityRoleMap):
11429
11430 2012-11-13  Stephen White  <senorblanco@chromium.org>
11431
11432         [Chromium] Fix SkImageFilter DAG path to pass all css3/filters tests
11433         https://bugs.webkit.org/show_bug.cgi?id=101952
11434
11435         Reviewed by James Robinson.
11436
11437         With these changes, all of the css3/filters tests pass when the
11438         if-test in GraphicsLayerChromium::setFilters() is forced true (for
11439         now, it remains true only if there's a reference filter in the chain).
11440
11441         Covered by the css3/filters tests (when the switch is thrown in
11442         GraphicsLayerChromium::setFilters()).
11443
11444         * WebCore.gypi:
11445         * platform/graphics/chromium/GraphicsLayerChromium.cpp:
11446         Drop to software rendering if there's a custom filter in the chain.
11447         This is the same as the WebFilterOperations path is doing.
11448         * platform/graphics/filters/skia/DropShadowImageFilter.cpp: Added.
11449         * platform/graphics/filters/skia/DropShadowImageFilter.h: Added.
11450         New implementation of drop-shadow filter; equivalent to
11451         the path in cc/render_surface_filters.cc.
11452         * platform/graphics/filters/skia/SkiaImageFilterBuilder.cpp:
11453         Fix the sepia and grayscale filters (value was inverted).
11454
11455 2012-11-13  Sheriff Bot  <webkit.review.bot@gmail.com>
11456
11457         Unreviewed, rolling out r134442.
11458         http://trac.webkit.org/changeset/134442
11459         https://bugs.webkit.org/show_bug.cgi?id=102111
11460
11461         Does not compile on apple-mac (Requested by abarth on
11462         #webkit).
11463
11464         * CMakeLists.txt:
11465         * GNUmakefile.list.am:
11466         * Target.pri:
11467         * WebCore.gypi:
11468         * WebCore.vcproj/WebCore.vcproj:
11469         * WebCore.xcodeproj/project.pbxproj:
11470         * css/CSSCursorImageValue.cpp:
11471         (WebCore::CSSCursorImageValue::cachedImage):
11472         * css/CSSFontFaceSrcValue.cpp:
11473         (WebCore::CSSFontFaceSrcValue::cachedFont):
11474         * css/CSSImageSetValue.cpp:
11475         (WebCore::CSSImageSetValue::cachedImageSet):
11476         * css/CSSImageValue.cpp:
11477         (WebCore::CSSImageValue::cachedImage):
11478         * css/CSSImageValue.h:
11479         (WebCore):
11480         (CSSImageValue):
11481         * css/StyleResolver.cpp:
11482         (WebCore::StyleResolver::loadPendingImage):
11483         * css/StyleRuleImport.cpp:
11484         (WebCore::StyleRuleImport::requestStyleSheet):
11485         * css/WebKitCSSSVGDocumentValue.cpp:
11486         (WebCore::WebKitCSSSVGDocumentValue::load):
11487         * css/WebKitCSSShaderValue.cpp:
11488         (WebCore::WebKitCSSShaderValue::cachedShader):
11489         * dom/ScriptElement.cpp:
11490         (WebCore::ScriptElement::requestScript):
11491         * html/HTMLLinkElement.cpp:
11492         (WebCore::HTMLLinkElement::process):
11493         * html/parser/CSSPreloadScanner.cpp:
11494         (WebCore::CSSPreloadScanner::emitRule):
11495         * html/parser/CSSPreloadScanner.h:
11496         (CSSPreloadScanner):
11497         * html/parser/HTMLPreloadScanner.cpp:
11498         (WebCore::PreloadTask::preload):
11499         * loader/ImageLoader.cpp:
11500         (WebCore::ImageLoader::updateFromElement):
11501         * loader/cache/CachedResourceLoader.cpp:
11502         (WebCore::CachedResourceLoader::requestImage):
11503         (WebCore::CachedResourceLoader::requestResource):
11504         (WebCore::CachedResourceLoader::determineRevalidationPolicy):
11505         (WebCore):
11506         (WebCore::CachedResourceLoader::preload):
11507         * loader/cache/CachedResourceLoader.h:
11508         (WebCore):
11509         (CachedResourceLoader):
11510         * loader/cache/CachedResourceRequest.cpp:
11511         (WebCore::CachedResourceRequest::CachedResourceRequest):
11512         * loader/cache/CachedResourceRequest.h:
11513         (CachedResourceRequest):
11514         (WebCore::CachedResourceRequest::defer):
11515         (WebCore::CachedResourceRequest::setDefer):
11516         * loader/cache/CachedResourceRequestInitiators.cpp: Removed.
11517         * loader/cache/CachedResourceRequestInitiators.h: Removed.
11518         * loader/icon/IconLoader.cpp:
11519         (WebCore::IconLoader::startLoading):
11520         * platform/ThreadGlobalData.cpp:
11521         (WebCore::ThreadGlobalData::ThreadGlobalData):
11522         * platform/ThreadGlobalData.h:
11523         (ThreadGlobalData):
11524         * svg/SVGFEImageElement.cpp:
11525         (WebCore::SVGFEImageElement::requestImageResource):
11526         * svg/SVGFontFaceUriElement.cpp:
11527         (WebCore::SVGFontFaceUriElement::loadFont):
11528         * svg/SVGUseElement.cpp:
11529         (WebCore::SVGUseElement::svgAttributeChanged):
11530
11531 2012-11-13  Chris Fleizach  <cfleizach@apple.com>
11532
11533         AX: file upload input text value is not exposed through accessibility
11534         https://bugs.webkit.org/show_bug.cgi?id=100583
11535
11536         Reviewed by Beth Dakin.
11537
11538         This is a hard problem to solve on the Mac because there are three pieces of information
11539              1) The type of button 2) The text on the button 3) The text for the value.
11540         I think the best compromise is to label this as a file upload button type in the role description, 
11541         and then expose the file path text as the AXTitle. 
11542         This will give the more relevant information and should be clear what is happening.
11543
11544         Test: platform/mac/accessibility/file-upload-button-subrole.html
11545
11546         * English.lproj/Localizable.strings:
11547         * accessibility/mac/WebAccessibilityObjectWrapper.mm:
11548         (-[WebAccessibilityObjectWrapper subrole]):
11549         (-[WebAccessibilityObjectWrapper roleDescription]):
11550         (-[WebAccessibilityObjectWrapper accessibilityTitle]):
11551         * platform/LocalizedStrings.cpp:
11552         (WebCore::AXFileUploadButtonText):
11553         * platform/LocalizedStrings.h:
11554
11555 2012-11-13  Sheriff Bot  <webkit.review.bot@gmail.com>
11556
11557         Unreviewed, rolling out r133944.
11558         http://trac.webkit.org/changeset/133944
11559         https://bugs.webkit.org/show_bug.cgi?id=102118
11560
11561         Only JS bindings support NATIVE_TYPE_ERR (Requested by arv on
11562         #webkit).
11563
11564         * bindings/scripts/CodeGeneratorV8.pm:
11565         (GenerateFunctionCallback):
11566         (GenerateParametersCheck):
11567         (GenerateSingleConstructorCallback):
11568         (GenerateNamedConstructorCallback):
11569         (TypeCanFailConversion):
11570         * dom/Element.cpp:
11571         (WebCore::Element::setAttributeNode):
11572         (WebCore::Element::removeAttributeNode):
11573         * dom/Element.idl:
11574
11575 2012-11-13  Adam Barth  <abarth@webkit.org>
11576
11577         Unreviewed.
11578
11579         Update run-bindings-tests results.
11580
11581         * bindings/scripts/test/V8/V8Float64Array.cpp:
11582         (WebCore::V8Float64Array::dispatchWrapCustom):
11583         (WebCore::V8Float64Array::wrapSlow):
11584         * bindings/scripts/test/V8/V8Float64Array.h:
11585         (WebCore::V8Float64Array::toNative):
11586         (V8Float64Array):
11587         (WebCore):
11588         (WebCore::dispatchWrap):
11589         (WebCore::toV8Object):
11590         (WebCore::toV8):
11591         * bindings/scripts/test/V8/V8TestActiveDOMObject.cpp:
11592         (WebCore::V8TestActiveDOMObject::wrapSlow):
11593         * bindings/scripts/test/V8/V8TestActiveDOMObject.h:
11594         (WebCore::V8TestActiveDOMObject::toNative):
11595         (V8TestActiveDOMObject):
11596         (WebCore):
11597         (WebCore::dispatchWrap):
11598         (WebCore::toV8Object):
11599         (WebCore::toV8):
11600         * bindings/scripts/test/V8/V8TestCustomNamedGetter.cpp:
11601         (WebCore::V8TestCustomNamedGetter::wrapSlow):
11602         * bindings/scripts/test/V8/V8TestCustomNamedGetter.h:
11603         (WebCore::V8TestCustomNamedGetter::toNative):
11604         (V8TestCustomNamedGetter):
11605         (WebCore):
11606         (WebCore::dispatchWrap):
11607         (WebCore::toV8Object):
11608         (WebCore::toV8):
11609         * bindings/scripts/test/V8/V8TestEventConstructor.cpp:
11610         (WebCore::V8TestEventConstructor::wrapSlow):
11611         * bindings/scripts/test/V8/V8TestEventConstructor.h:
11612         (WebCore::V8TestEventConstructor::toNative):
11613         (V8TestEventConstructor):
11614         (WebCore):
11615         (WebCore::dispatchWrap):
11616         (WebCore::toV8Object):
11617         (WebCore::toV8):
11618         * bindings/scripts/test/V8/V8TestEventTarget.cpp:
11619         (WebCore::V8TestEventTarget::wrapSlow):
11620         * bindings/scripts/test/V8/V8TestEventTarget.h:
11621         (WebCore::V8TestEventTarget::toNative):
11622         (V8TestEventTarget):
11623         (WebCore):
11624         (WebCore::dispatchWrap):
11625         (WebCore::toV8Object):
11626         (WebCore::toV8):
11627         * bindings/scripts/test/V8/V8TestException.cpp:
11628         (WebCore::V8TestException::wrapSlow):
11629         * bindings/scripts/test/V8/V8TestException.h:
11630         (WebCore::V8TestException::toNative):
11631         (V8TestException):
11632         (WebCore):
11633         (WebCore::dispatchWrap):
11634         (WebCore::toV8Object):
11635         (WebCore::toV8):
11636         * bindings/scripts/test/V8/V8TestInterface.cpp:
11637         (WebCore::V8TestInterface::wrapSlow):
11638         * bindings/scripts/test/V8/V8TestInterface.h:
11639         (WebCore::V8TestInterface::toNative):
11640         (V8TestInterface):
11641         (WebCore):
11642         (WebCore::dispatchWrap):
11643         (WebCore::toV8Object):
11644         (WebCore::toV8):
11645         * bindings/scripts/test/V8/V8TestMediaQueryListListener.cpp:
11646         (WebCore::V8TestMediaQueryListListener::wrapSlow):
11647         * bindings/scripts/test/V8/V8TestMediaQueryListListener.h:
11648         (WebCore::V8TestMediaQueryListListener::toNative):
11649         (V8TestMediaQueryListListener):
11650         (WebCore):
11651         (WebCore::dispatchWrap):
11652         (WebCore::toV8Object):
11653         (WebCore::toV8):
11654         * bindings/scripts/test/V8/V8TestNamedConstructor.cpp:
11655         (WebCore::V8TestNamedConstructor::wrapSlow):
11656         * bindings/scripts/test/V8/V8TestNamedConstructor.h:
11657         (WebCore::V8TestNamedConstructor::toNative):
11658         (V8TestNamedConstructor):
11659         (WebCore):
11660         (WebCore::dispatchWrap):
11661         (WebCore::toV8Object):
11662         (WebCore::toV8):
11663         * bindings/scripts/test/V8/V8TestNode.cpp:
11664         (WebCore::V8TestNode::wrapSlow):
11665         * bindings/scripts/test/V8/V8TestNode.h:
11666         (WebCore::V8TestNode::toNative):
11667         (V8TestNode):
11668         (WebCore):
11669         (WebCore::dispatchWrap):
11670         (WebCore::toV8Object):
11671         (WebCore::toV8):
11672         (WebCore::toV8Fast):
11673         * bindings/scripts/test/V8/V8TestObj.cpp:
11674         (WebCore::V8TestObj::wrapSlow):
11675         * bindings/scripts/test/V8/V8TestObj.h:
11676         (WebCore::V8TestObj::toNative):
11677         (V8TestObj):
11678         (WebCore):
11679         (WebCore::dispatchWrap):
11680         (WebCore::toV8Object):
11681         (WebCore::toV8):
11682         * bindings/scripts/test/V8/V8TestOverloadedConstructors.cpp:
11683         (WebCore::V8TestOverloadedConstructors::wrapSlow):
11684         * bindings/scripts/test/V8/V8TestOverloadedConstructors.h:
11685         (WebCore::V8TestOverloadedConstructors::toNative):
11686         (V8TestOverloadedConstructors):
11687         (WebCore):
11688         (WebCore::dispatchWrap):
11689         (WebCore::toV8Object):
11690         (WebCore::toV8):
11691         * bindings/scripts/test/V8/V8TestSerializedScriptValueInterface.cpp:
11692         (WebCore::V8TestSerializedScriptValueInterface::wrapSlow):
11693         * bindings/scripts/test/V8/V8TestSerializedScriptValueInterface.h:
11694         (WebCore::V8TestSerializedScriptValueInterface::toNative):
11695         (V8TestSerializedScriptValueInterface):
11696         (WebCore):
11697         (WebCore::dispatchWrap):
11698         (WebCore::toV8Object):
11699         (WebCore::toV8):
11700
11701 2012-11-13  Adam Barth  <abarth@webkit.org>
11702
11703         Unreviewed.
11704
11705         Speculative build fix for Qt.
11706
11707         * dom/make_names.pl:
11708         (printWrapperFactoryCppFile):
11709
11710 2012-11-13  Sami Kyostila  <skyostil@chromium.org>
11711
11712         Allow painting outside overflow clip in accelerated scrolling layers
11713         https://bugs.webkit.org/show_bug.cgi?id=100524
11714
11715         Reviewed by Simon Fraser.
11716
11717         In preparation for avoiding repaints when scrolling child layers, make it
11718         possible to paint outside the overflow clip.
11719
11720         Test: compositing/overflow/updating-scrolling-content.html
11721
11722         * rendering/LayoutState.h:
11723         (LayoutState):
11724         * rendering/RenderBlock.cpp:
11725         (WebCore::RenderBlock::paint):
11726         * rendering/RenderBox.cpp:
11727         (WebCore::RenderBox::applyCachedClipAndScrollOffsetForRepaint):
11728         * rendering/RenderLayer.cpp:
11729         (WebCore::RenderLayer::repaintBlockSelectionGaps):
11730
11731 2012-11-13  Patrick Gansterer  <paroga@webkit.org>
11732
11733         Port SimpleFontDataWin.cpp to WinCE
11734         https://bugs.webkit.org/show_bug.cgi?id=97889
11735
11736         Reviewed by Brent Fulgham.
11737
11738         Add #if !OS(WINCE) around some parts of the code, so it can be used by the WinCE port too in a next step.
11739         Also cleaned up the include headers.
11740
11741         * platform/graphics/win/SimpleFontDataWin.cpp:
11742         (WebCore::SimpleFontData::initGDIFont):
11743         (WebCore::SimpleFontData::platformDestroy):
11744         (WebCore::SimpleFontData::boundsForGDIGlyph):
11745         (WebCore):
11746         (WebCore::SimpleFontData::widthForGDIGlyph):
11747
11748 2012-11-13  Pavel Feldman  <pfeldman@chromium.org>
11749
11750         Web Inspector: [Chromium] move spectrum.css into the standalone css files group.
11751
11752         Not reviewed: moved css file in gypi.
11753
11754         * WebCore.gypi:
11755
11756 2012-11-13  Dimitri Glazkov  <dglazkov@chromium.org>
11757
11758         Unreviewed, rolling out r134434.
11759         http://trac.webkit.org/changeset/134434
11760         https://bugs.webkit.org/show_bug.cgi?id=102072
11761
11762         The test that was added asserts in loader.
11763
11764         * loader/FrameLoader.cpp:
11765         (WebCore::createWindow):
11766         * page/DOMWindow.cpp:
11767         (WebCore):
11768         (WebCore::DOMWindow::adjustWindowRect):
11769         (WebCore::DOMWindow::moveBy):
11770         (WebCore::DOMWindow::moveTo):
11771         (WebCore::DOMWindow::resizeBy):
11772         (WebCore::DOMWindow::resizeTo):
11773         (WebCore::DOMWindow::open):
11774         (WebCore::DOMWindow::showModalDialog):
11775         * page/DOMWindow.h:
11776         (DOMWindow):
11777
11778 2012-11-13  Dan Carney  <dcarney@google.com>
11779
11780         [V8] More efficient wrapper dispatch
11781         https://bugs.webkit.org/show_bug.cgi?id=102082
11782
11783         Reviewed by Adam Barth.
11784
11785         Dispatching a call to V8Whatever::wrap involved a chain
11786         of calls, each of which checked its wrapper cache.
11787         This refactor gives calls only 2 choices of functions to call:
11788         toV8 and toV8Object instead of wrap. wrap has been renamed to
11789         dispatchWrap and no longer contains cache checks.
11790         Additionally, classes which require a custom toV8 function
11791         have had all wrapping and caching calls removed, as they could
11792         not have been accessed.
11793
11794         No new tests. Sufficiently covered.
11795
11796         * Modules/indexeddb/IDBAny.idl:
11797         * Modules/indexeddb/IDBKey.idl:
11798         * WebCore.gypi:
11799         * bindings/scripts/CodeGeneratorV8.pm:
11800         (GenerateHeader):
11801         (GenerateNormalAttrGetter):
11802         (GenerateImplementation):
11803         (GenerateToV8Converters):
11804         * bindings/scripts/IDLAttributes.txt:
11805         * bindings/v8/SerializedScriptValue.cpp:
11806         * bindings/v8/custom/V8BlobCustom.cpp:
11807         (WebCore::V8Blob::dispatchWrapCustom):
11808         * bindings/v8/custom/V8CSSRuleCustom.cpp:
11809         (WebCore::V8CSSRule::dispatchWrapCustom):
11810         * bindings/v8/custom/V8CSSValueCustom.cpp:
11811         (WebCore::V8CSSValue::dispatchWrapCustom):
11812         * bindings/v8/custom/V8CanvasRenderingContextCustom.cpp:
11813         (WebCore::V8CanvasRenderingContext::dispatchWrapCustom):
11814         * bindings/v8/custom/V8DataViewCustom.cpp:
11815         (WebCore):
11816         (WebCore::V8DataView::dispatchWrapCustom):
11817         * bindings/v8/custom/V8DocumentCustom.cpp:
11818         (WebCore::V8Document::dispatchWrapCustom):
11819         * bindings/v8/custom/V8ElementCustom.cpp: Copied from Source/WebCore/bindings/v8/custom/V8PerformanceEntryCustom.cpp.
11820         (WebCore):
11821         (WebCore::V8Element::dispatchWrapCustom):
11822         * bindings/v8/custom/V8EntryCustom.cpp:
11823         (WebCore::V8Entry::dispatchWrapCustom):
11824         * bindings/v8/custom/V8EntrySyncCustom.cpp:
11825         (WebCore::V8EntrySync::dispatchWrapCustom):
11826         * bindings/v8/custom/V8EventCustom.cpp:
11827         (WebCore):
11828         (WebCore::V8Event::dispatchWrapCustom):
11829         * bindings/v8/custom/V8HTMLCollectionCustom.cpp:
11830         (WebCore::V8HTMLCollection::dispatchWrapCustom):
11831         * bindings/v8/custom/V8HTMLDocumentCustom.cpp:
11832         (WebCore::V8HTMLDocument::dispatchWrapCustom):
11833         * bindings/v8/custom/V8HTMLElementCustom.cpp:
11834         (WebCore::V8HTMLElement::dispatchWrapCustom):
11835         * bindings/v8/custom/V8ImageDataCustom.cpp:
11836         (WebCore::V8ImageData::dispatchWrapCustom):
11837         * bindings/v8/custom/V8NodeCustom.cpp:
11838         (WebCore::V8Node::dispatchWrapCustom):
11839         * bindings/v8/custom/V8PerformanceEntryCustom.cpp:
11840         (WebCore::V8PerformanceEntry::dispatchWrapCustom):
11841         * bindings/v8/custom/V8SVGDocumentCustom.cpp:
11842         (WebCore::V8SVGDocument::dispatchWrapCustom):
11843         * bindings/v8/custom/V8SVGElementCustom.cpp:
11844         (WebCore::V8SVGElement::dispatchWrapCustom):
11845         * bindings/v8/custom/V8SVGPathSegCustom.cpp:
11846         (WebCore::V8SVGPathSeg::dispatchWrapCustom):
11847         * bindings/v8/custom/V8StyleSheetCustom.cpp:
11848         (WebCore::V8StyleSheet::dispatchWrapCustom):
11849         * dom/Element.idl:
11850         * dom/make_names.pl:
11851         (printWrapperFunctions):
11852         (printWrapperFactoryCppFile):
11853         (printWrapperFactoryHeaderFile):
11854         * html/MicroDataItemValue.idl:
11855         * inspector/ScriptProfile.idl:
11856         * inspector/ScriptProfileNode.idl:
11857         * page/DOMWindow.idl:
11858         * workers/WorkerContext.idl:
11859
11860 2012-11-13  Dimitri Glazkov  <dglazkov@chromium.org>
11861
11862         Unreviewed, rolling out r134367.
11863         http://trac.webkit.org/changeset/134367
11864         https://bugs.webkit.org/show_bug.cgi?id=100738
11865
11866         Speculative rollout, could have cause Dromaeo setAttribute
11867         perf regression.
11868
11869         * dom/Element.cpp:
11870         (WebCore::Element::attributeChanged):
11871         (WebCore::checkNeedsStyleInvalidationForClassChange):
11872         (WebCore::Element::classAttributeChanged):
11873
11874 2012-11-13  Marja Hölttä  <marja@chromium.org>
11875
11876         Add initiator to CachedResourceRequest.
11877         https://bugs.webkit.org/show_bug.cgi?id=101935
11878
11879         Reviewed by Adam Barth.
11880
11881         Motivation: Chromium needs to know which elements request a
11882         resource (such as an image or a script) (bug 92761). In addition,
11883         for exposing resource timing information (bug 84883) we need to
11884         store the initiator, and this is the first step towards it.
11885
11886         No new tests: No visible change in behavior.
11887
11888         * CMakeLists.txt:
11889         * GNUmakefile.list.am:
11890         * Target.pri:
11891         * WebCore.gypi:
11892         * WebCore.vcproj/WebCore.vcproj:
11893         * WebCore.xcodeproj/project.pbxproj:
11894         * css/CSSCrossfadeValue.cpp:
11895         (WebCore::cachedImageForCSSValue):
11896         * css/CSSCursorImageValue.cpp:
11897         (WebCore::CSSCursorImageValue::cachedImage):
11898         * css/CSSFontFaceSrcValue.cpp:
11899         (WebCore::CSSFontFaceSrcValue::cachedFont):
11900         * css/CSSImageSetValue.cpp:
11901         (WebCore::CSSImageSetValue::cachedImageSet):
11902         * css/CSSImageValue.cpp:
11903         (WebCore::CSSImageValue::cachedImage):
11904         * css/CSSImageValue.h:
11905         (WebCore):
11906         (CSSImageValue):
11907         * css/StyleResolver.cpp:
11908         (WebCore::StyleResolver::loadPendingImage):
11909         * css/StyleRuleImport.cpp:
11910         (WebCore::StyleRuleImport::requestStyleSheet):
11911         * css/WebKitCSSSVGDocumentValue.cpp:
11912         (WebCore::WebKitCSSSVGDocumentValue::load):
11913         * css/WebKitCSSShaderValue.cpp:
11914         (WebCore::WebKitCSSShaderValue::cachedShader):
11915         * dom/ScriptElement.cpp:
11916         (WebCore::ScriptElement::requestScript):
11917         * html/HTMLLinkElement.cpp:
11918         (WebCore::HTMLLinkElement::process):
11919         * html/parser/CSSPreloadScanner.cpp:
11920         (WebCore::CSSPreloadScanner::emitRule):
11921         * html/parser/CSSPreloadScanner.h:
11922         (CSSPreloadScanner):
11923         * html/parser/HTMLPreloadScanner.cpp:
11924         (WebCore::PreloadTask::preload):
11925         * loader/ImageLoader.cpp:
11926         (WebCore::ImageLoader::updateFromElement):
11927         * loader/cache/CachedResourceLoader.cpp:
11928         (WebCore::CachedResourceLoader::requestImage):
11929         (WebCore::CachedResourceLoader::requestResource):
11930         (WebCore::CachedResourceLoader::determineRevalidationPolicy):
11931         (WebCore):
11932         (WebCore::CachedResourceLoader::preload):
11933         * loader/cache/CachedResourceLoader.h:
11934         (WebCore):
11935         (CachedResourceLoader):
11936         * loader/cache/CachedResourceRequest.cpp:
11937         (WebCore::CachedResourceRequest::CachedResourceRequest):
11938         (WebCore):
11939         (WebCore::CachedResourceRequest::~CachedResourceRequest):
11940         (WebCore::CachedResourceRequest::setInitiator):
11941         (WebCore::CachedResourceRequest::initiatorName):
11942         (WebCore::CachedResourceRequest::initiatorDocument):
11943         (WebCore::CachedResourceRequest::initiatorElement):
11944         * loader/cache/CachedResourceRequest.h:
11945         (WebCore):
11946         (WebCore::CachedResourceRequest::setOptions):
11947         (WebCore::CachedResourceRequest::defer):
11948         (WebCore::CachedResourceRequest::setDefer):
11949         (CachedResourceRequest):
11950         * loader/cache/CachedResourceRequestInitiators.cpp: Copied from Source/WebCore/loader/cache/CachedResourceRequest.cpp.
11951         (WebCore):
11952         (WebCore::CachedResourceRequestInitiators::CachedResourceRequestInitiators):
11953         * loader/cache/CachedResourceRequestInitiators.h: Copied from Source/WebCore/loader/cache/CachedResourceRequest.cpp.
11954         (WebCore):
11955         (CachedResourceRequestInitiators):
11956         (WebCore::cachedResourceRequestInitiators):
11957         * loader/icon/IconLoader.cpp:
11958         (WebCore::IconLoader::startLoading):
11959         * platform/ThreadGlobalData.cpp:
11960         (WebCore::ThreadGlobalData::ThreadGlobalData):
11961         * platform/ThreadGlobalData.h:
11962         (WebCore):
11963         (WebCore::ThreadGlobalData::cachedResourceRequestInitiators):
11964         (ThreadGlobalData):
11965         * svg/SVGFEImageElement.cpp:
11966         (WebCore::SVGFEImageElement::requestImageResource):
11967         * svg/SVGFontFaceUriElement.cpp:
11968         (WebCore::SVGFontFaceUriElement::loadFont):
11969         * svg/SVGUseElement.cpp:
11970         (WebCore::SVGUseElement::svgAttributeChanged):
11971
11972 2012-11-13  Sheriff Bot  <webkit.review.bot@gmail.com>
11973
11974         Unreviewed, rolling out r134345.
11975         http://trac.webkit.org/changeset/134345
11976         https://bugs.webkit.org/show_bug.cgi?id=102106
11977
11978         Incomplete support for NATIVE_TYPE_ERR in objc and other
11979         bindings (Requested by jsbell on #webkit).
11980
11981         * Modules/mediastream/MediaConstraintsImpl.cpp:
11982         (WebCore::MediaConstraintsImpl::create):
11983         * Modules/mediastream/MediaStreamTrackList.cpp:
11984         (WebCore::MediaStreamTrackList::add):
11985         (WebCore::MediaStreamTrackList::remove):
11986         * Modules/mediastream/RTCDataChannel.cpp:
11987         (WebCore::RTCDataChannel::setBinaryType):
11988         * Modules/mediastream/RTCIceCandidate.cpp:
11989         (WebCore::RTCIceCandidate::create):
11990         * Modules/mediastream/RTCPeerConnection.cpp:
11991         (WebCore::RTCPeerConnection::parseConfiguration):
11992         (WebCore::RTCPeerConnection::createOffer):
11993         (WebCore::RTCPeerConnection::createAnswer):
11994         (WebCore::RTCPeerConnection::setLocalDescription):
11995         (WebCore::RTCPeerConnection::setRemoteDescription):
11996         (WebCore::RTCPeerConnection::addIceCandidate):
11997         (WebCore::RTCPeerConnection::addStream):
11998         (WebCore::RTCPeerConnection::removeStream):
11999         * Modules/mediastream/RTCSessionDescription.cpp:
12000         (WebCore::RTCSessionDescription::create):
12001         (WebCore::RTCSessionDescription::setType):
12002         * bindings/js/CallbackFunction.cpp:
12003         (WebCore::checkFunctionOnlyCallback):
12004         * bindings/js/JSCustomXPathNSResolver.cpp:
12005         (WebCore::JSCustomXPathNSResolver::create):
12006         * bindings/js/JSHTMLOptionsCollectionCustom.cpp:
12007         (WebCore::JSHTMLOptionsCollection::add):
12008         * bindings/js/JSHTMLSelectElementCustom.cpp:
12009         (WebCore::selectIndexSetter):
12010         * bindings/js/JSMutationObserverCustom.cpp:
12011         (WebCore::JSMutationObserverConstructor::constructJSMutationObserver):
12012         * bindings/js/JSSQLResultSetRowListCustom.cpp:
12013         (WebCore::JSSQLResultSetRowList::item):
12014         * bindings/js/JSSQLTransactionCustom.cpp:
12015         (WebCore::JSSQLTransaction::executeSql):
12016         * bindings/js/JSSQLTransactionSyncCustom.cpp:
12017         (WebCore::JSSQLTransactionSync::executeSql):
12018         * bindings/scripts/CodeGeneratorJS.pm:
12019         (GenerateParametersCheck):
12020         * bindings/scripts/CodeGeneratorObjC.pm:
12021         (GenerateImplementation):
12022         * bindings/scripts/CodeGeneratorV8.pm:
12023         (GenerateFunctionCallString):
12024         * bindings/v8/V8Callback.h:
12025         (WebCore::createFunctionOnlyCallback):
12026         * bindings/v8/V8Collection.cpp:
12027         (WebCore::toOptionsCollectionSetter):
12028         * bindings/v8/custom/V8DocumentCustom.cpp:
12029         (WebCore::V8Document::evaluateCallback):
12030         * bindings/v8/custom/V8HTMLOptionsCollectionCustom.cpp:
12031         (WebCore::V8HTMLOptionsCollection::addCallback):
12032         * bindings/v8/custom/V8MutationObserverCustom.cpp:
12033         (WebCore::V8MutationObserver::constructorCallback):
12034         * bindings/v8/custom/V8SQLTransactionCustom.cpp:
12035         (WebCore::V8SQLTransaction::executeSqlCallback):
12036         * bindings/v8/custom/V8SQLTransactionSyncCustom.cpp:
12037         (WebCore::V8SQLTransactionSync::executeSqlCallback):
12038         * dom/DOMCoreException.idl:
12039         * html/HTMLElement.cpp:
12040         (WebCore::HTMLElement::insertAdjacentElement):
12041         * html/HTMLMediaElement.cpp:
12042         (WebCore::HTMLMediaElement::webkitAddKey):
12043         * html/HTMLOptionsCollection.cpp:
12044         (WebCore::HTMLOptionsCollection::add):
12045         * html/canvas/CanvasRenderingContext2D.cpp:
12046         (WebCore::CanvasRenderingContext2D::drawImage):
12047         (WebCore::CanvasRenderingContext2D::createPattern):
12048         (WebCore::CanvasRenderingContext2D::putImageData):
12049         (WebCore::CanvasRenderingContext2D::webkitPutImageDataHD):
12050         * page/Crypto.cpp:
12051         (WebCore::Crypto::getRandomValues):
12052         * page/DOMSelection.cpp:
12053         (WebCore::DOMSelection::extend):
12054         * svg/properties/SVGTransformListPropertyTearOff.h:
12055         (WebCore::SVGTransformListPropertyTearOff::createSVGTransformFromMatrix):
12056
12057 2012-11-13  Erik Arvidsson  <arv@chromium.org>
12058
12059         Update DOMException name: HierarchyRequestError
12060         https://bugs.webkit.org/show_bug.cgi?id=102092
12061
12062         Reviewed by Ojan Vafai.
12063
12064         Patch 3 of 25 to update DOMException name to match the spec and Firefox.
12065
12066         Updated existing tests.
12067
12068         * dom/DOMCoreException.cpp:
12069
12070 2012-11-13  Kenneth Rohde Christiansen  <kenneth@webkit.org>
12071
12072         Clean up use of adjustWindowRect
12073         https://bugs.webkit.org/show_bug.cgi?id=102072
12074
12075         Reviewed by Alexis Menard.
12076
12077         Tested by fast/dom/Window/open-window-min-size.html
12078
12079         * loader/FrameLoader.cpp:
12080         (WebCore::createWindow):
12081
12082             Validate the window size here so that it is not just done for
12083             .open, but also for .showModalDialog. This is compatible with
12084             other browsers such as IE and Firefox (though IE > 6, enforces
12085             a minimum width of 250 instead of 100 as Firefox and us.)
12086
12087         * page/DOMWindow.cpp:
12088         (WebCore):
12089         (WebCore::DOMWindow::adjustWindowRect):
12090
12091             Make it a static method which only takes page. It was never
12092             called from anywhere without a valid page, so the page check
12093             has been turned into an assert, and two of the arguments have
12094             been removed as they can be accessed via the page.
12095
12096         (WebCore::DOMWindow::moveBy):
12097         (WebCore::DOMWindow::moveTo):
12098         (WebCore::DOMWindow::resizeBy):
12099         (WebCore::DOMWindow::resizeTo):
12100
12101             Update use of adjustWindowRect.
12102
12103         (WebCore::DOMWindow::open):
12104
12105             Avoid modifying the WindowFeatures as the WebCore::createWindow
12106             validates and adjusts the arguments.
12107
12108         * page/DOMWindow.h:
12109         (DOMWindow):
12110
12111 2012-11-13  Bem Jones-Bey  <bjonesbe@adobe.com>
12112
12113         [CSS Exclusions] Update wrap-margin/padding to shape-margin/padding
12114         https://bugs.webkit.org/show_bug.cgi?id=97736
12115
12116         Reviewed by Andreas Kling.
12117
12118         Rename properties to match updated spec.
12119
12120         Tests: fast/exclusions/shape-margin-parsing.html
12121                fast/exclusions/shape-padding-parsing.html
12122
12123         * css/CSSComputedStyleDeclaration.cpp:
12124         (WebCore):
12125         (WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue):
12126         * css/CSSParser.cpp:
12127         (WebCore::isSimpleLengthPropertyID):
12128         (WebCore::CSSParser::parseValue):
12129         * css/CSSProperty.cpp:
12130         (WebCore::CSSProperty::isInheritedProperty):
12131         * css/CSSPropertyNames.in:
12132         * css/StyleBuilder.cpp:
12133         (WebCore::StyleBuilder::StyleBuilder):
12134         * css/StylePropertySet.cpp:
12135         (WebCore::StylePropertySet::asText):
12136         * css/StylePropertyShorthand.cpp:
12137         (WebCore::webkitWrapShorthand):
12138         * css/StyleResolver.cpp:
12139         (WebCore::StyleResolver::applyProperty):
12140         * rendering/style/RenderStyle.cpp:
12141         (WebCore::RenderStyle::diff):
12142         * rendering/style/RenderStyle.h:
12143         * rendering/style/StyleRareNonInheritedData.cpp:
12144         (WebCore::StyleRareNonInheritedData::StyleRareNonInheritedData):
12145         (WebCore::StyleRareNonInheritedData::operator==):
12146         * rendering/style/StyleRareNonInheritedData.h:
12147         (StyleRareNonInheritedData):
12148
12149 2012-11-13  Dimitri Glazkov  <dglazkov@chromium.org>
12150
12151         Unreviewed, rolling out r134418.
12152         http://trac.webkit.org/changeset/134418
12153         https://bugs.webkit.org/show_bug.cgi?id=101903
12154
12155         The newly added test is crashing on cr-win.
12156
12157         * dom/ElementShadow.cpp:
12158         * dom/ElementShadow.h:
12159         * html/HTMLInputElement.cpp:
12160         (WebCore::HTMLInputElement::updateType):
12161         (WebCore::HTMLInputElement::setIndeterminate):
12162         * html/HTMLProgressElement.cpp:
12163         (WebCore::HTMLProgressElement::didElementStateChange):
12164         * html/shadow/SelectRuleFeatureSet.cpp:
12165         (WebCore::SelectRuleFeatureSet::add):
12166         (WebCore::SelectRuleFeatureSet::clear):
12167         (WebCore::SelectRuleFeatureSet::collectFeaturesFromSelector):
12168         * html/shadow/SelectRuleFeatureSet.h:
12169         (SelectRuleFeatureSet):
12170
12171 2012-11-13  Dimitri Glazkov  <dglazkov@chromium.org>
12172
12173         Unreviewed, rolling out r134391.
12174         http://trac.webkit.org/changeset/134391
12175         https://bugs.webkit.org/show_bug.cgi?id=99660
12176
12177         Speculative rollout, trying to fix browser_tests failure.
12178
12179         * English.lproj/localizedStrings.js:
12180         * inspector/Inspector.json:
12181         * inspector/InspectorClient.h:
12182         * inspector/InspectorPageAgent.cpp:
12183         (PageAgentState):
12184         (WebCore::InspectorPageAgent::enable):
12185         (WebCore::InspectorPageAgent::disable):
12186         * inspector/InspectorPageAgent.h:
12187         * inspector/front-end/Settings.js:
12188         * inspector/front-end/SettingsScreen.js:
12189         (WebInspector.GenericSettingsTab):
12190         * inspector/front-end/inspector.js:
12191         (WebInspector.doLoadedDone):
12192
12193 2012-11-13  Sheriff Bot  <webkit.review.bot@gmail.com>
12194
12195         Unreviewed, rolling out r134205.
12196         http://trac.webkit.org/changeset/134205
12197         https://bugs.webkit.org/show_bug.cgi?id=102093
12198
12199         Broke webkit-flow-inlines-dynamic.html on several ports
12200         (Requested by mihnea on #webkit).
12201
12202         * css/StyleResolver.cpp:
12203         (WebCore::StyleResolver::isValidRegionStyleProperty):
12204         * rendering/InlineBox.cpp:
12205         * rendering/InlineBox.h:
12206         (WebCore):
12207         (InlineBox):
12208         * rendering/InlineFlowBox.cpp:
12209         (WebCore::InlineFlowBox::addToLine):
12210         (WebCore::InlineFlowBox::addTextBoxVisualOverflow):
12211         * rendering/RenderRegion.cpp:
12212         (WebCore::RenderRegion::setRegionObjectsRegionStyle):
12213         (WebCore::RenderRegion::restoreRegionObjectsOriginalStyle):
12214         (WebCore::RenderRegion::computeStyleInRegion):
12215         (WebCore::RenderRegion::computeChildrenStyleInRegion):
12216         (WebCore::RenderRegion::setObjectStyleInRegion):
12217         (WebCore::RenderRegion::clearObjectStyleInRegion):
12218         * rendering/RenderRegion.h:
12219         (RenderRegion):
12220         (ObjectRegionStyleInfo):
12221
12222 2012-11-13  Andreas Kling  <kling@webkit.org>
12223
12224         Remove the non-const overload of ElementAttributeData::inlineStyle().
12225
12226         Rubber-stamped by Anders Koivisto.
12227
12228         No call sites actually needed a mutable StylePropertySet* from inlineStyle() anyway.
12229
12230         * dom/ElementAttributeData.h:
12231
12232 2012-11-13  Keishi Hattori  <keishi@webkit.org>
12233
12234         [Chromium] Enable input type month/week
12235         https://bugs.webkit.org/show_bug.cgi?id=102042
12236
12237         Reviewed by Kent Tamura.
12238
12239         Enable input type month/week for Chromium.
12240
12241         No new tests. Tests will be added later in Bug 102045 and Bug 102046.
12242
12243         * bindings/generic/RuntimeEnabledFeatures.cpp:
12244         (WebCore):
12245
12246 2012-11-13  Shinya Kawanaka  <shinyak@chromium.org>
12247
12248         [Refactoring] Remove shadowPseudoId() and use setPseudo() in <meter> ElementShadow.
12249         https://bugs.webkit.org/show_bug.cgi?id=101906
12250
12251         Reviewed by Dimitri Glazkov.
12252
12253         We're migrating shadowPseudoId() to pseudo(). We remove shadowPseudoId() from HTMLKeygenElement and use
12254         setPseudo()/pseudo() instead.
12255
12256         No new tests, covered by existing tests.
12257
12258         * html/HTMLMeterElement.cpp:
12259         (WebCore::HTMLMeterElement::didElementStateChange): Since shadowPseudoId() was returning pseudo id without setting
12260         it anywhere, we have to set it into pseudo attribute here.
12261         (WebCore::HTMLMeterElement::createShadowSubtree): ditto.
12262         * html/shadow/MeterShadowElement.cpp:
12263         (WebCore::MeterInnerElement::MeterInnerElement):
12264         (WebCore::MeterValueElement::valuePseudoId):
12265         * html/shadow/MeterShadowElement.h:
12266         (MeterInnerElement):
12267         (WebCore::MeterBarElement::MeterBarElement):
12268         (MeterBarElement):
12269         (WebCore::MeterValueElement::MeterValueElement):
12270         (WebCore::MeterValueElement::updatePseudo):
12271         (MeterValueElement):
12272
12273 2012-11-13  Shinya Kawanaka  <shinyak@chromium.org>
12274
12275         Changing pseudoClass (:indeterminate) should cause distribution
12276         https://bugs.webkit.org/show_bug.cgi?id=101903
12277
12278         Reviewed by Dimitri Glazkov.
12279
12280         <progress> and <input type="checkbox"> have 'indeterminate' state. When their state is changed, we have to
12281         invalidate distribution if necessary. To check it, we collect a feature that :invalidate is used in select attributes.
12282
12283         For <input>, we also have to see 'type' is changed. According to the spec, :indeterminate should match only
12284         progress element or <input type="checkbox">. So changing 'type' might also change :indeterminate state.
12285
12286         Tests: fast/dom/shadow/pseudoclass-update-indeterminate-input.html
12287                fast/dom/shadow/pseudoclass-update-indeterminate-progress.html
12288
12289         * dom/ElementShadow.cpp:
12290         (WebCore::invalidateParentDistributionIfNecessary): Since we will add a lot of pseudoClass check later, we would like to
12291         have this kind of helper method. We will add various pseudoClass check (see Bug 101697), we reuse CSSSelector::PseudoType
12292         here.
12293         (WebCore):
12294         * dom/ElementShadow.h:
12295         (WebCore):
12296         * html/HTMLInputElement.cpp:
12297         (WebCore::HTMLInputElement::updateType): Invalidate parent distribution anyway, since it changes various internal states.
12298         (WebCore::HTMLInputElement::setIndeterminate): Invalidate parent distribution if necessary.
12299         * html/HTMLProgressElement.cpp:
12300         (WebCore::HTMLProgressElement::didElementStateChange):
12301         * html/shadow/SelectRuleFeatureSet.cpp:
12302         (WebCore::SelectRuleFeatureSet::SelectRuleFeatureSet): Adds m_usesIndeterminate feature.
12303         (WebCore::SelectRuleFeatureSet::add):
12304         (WebCore::SelectRuleFeatureSet::clear):
12305         (WebCore::SelectRuleFeatureSet::collectFeaturesFromSelector):
12306         * html/shadow/SelectRuleFeatureSet.h:
12307         (WebCore::SelectRuleFeatureSet::hasSelectorForIndeterminate):
12308         (SelectRuleFeatureSet):
12309
12310 2012-11-13  Andreas Kling  <kling@webkit.org>
12311
12312         Exploit ElementAttributeData sharing in Node.cloneNode.
12313         <http://webkit.org/b/101374>
12314
12315         Reviewed by Anders Carlsson.
12316
12317         Instead of blindly creating a new ElementAttributeData for Node.cloneNode, let's be clever!
12318         If the source data is immutable, simply ref it from the new node at virtually no cost.
12319
12320         If the source data is mutable, convert it to immutable data so it can be shared between both nodes.
12321         Since the typical use-case for Node.cloneNode is to create-once/clone-many, this saves both time
12322         and memory in the long run.
12323
12324         ~8% speed-up on PerformanceTests/DOM/CloneNodes on my MBP.
12325
12326         * dom/Element.cpp:
12327         (WebCore::Element::cloneAttributesFromElement):
12328
12329             Move attribute data cloning logic from ElementAttributeData to Element.
12330
12331         * dom/ElementAttributeData.cpp:
12332         (WebCore::ImmutableElementAttributeData::~ImmutableElementAttributeData):
12333         (WebCore::ImmutableElementAttributeData::ImmutableElementAttributeData):
12334         (WebCore::ElementAttributeData::ElementAttributeData):
12335         (WebCore::MutableElementAttributeData::MutableElementAttributeData):
12336         (WebCore::ElementAttributeData::makeMutableCopy):
12337         (WebCore::ElementAttributeData::makeImmutableCopy):
12338         * dom/ElementAttributeData.h:
12339         (ElementAttributeData):
12340         (ImmutableElementAttributeData):
12341         (MutableElementAttributeData):
12342
12343             Add facilities for converting a mutable ElementAttributeData to an immutable one.
12344             Share some code in the common base class constructor.
12345
12346 2012-11-13  Kentaro Hara  <haraken@chromium.org>
12347
12348         Unreviewed. Build fix of V8 bindings.
12349
12350         * bindings/v8/V8DOMWrapper.cpp:
12351         (WebCore::V8DOMWrapper::maybeDOMWrapper):
12352
12353 2012-11-13  Andrey Adaikin  <aandrey@chromium.org>
12354
12355         Web Inspector: [Canvas] UI: make the Grid save scrolling position, show wait spinner icon
12356         https://bugs.webkit.org/show_bug.cgi?id=102071
12357
12358         Reviewed by Pavel Feldman.
12359
12360         * inspector/front-end/CanvasProfileView.js:
12361         (WebInspector.CanvasProfileView):
12362         (WebInspector.CanvasProfileView.prototype.dispose):
12363         (WebInspector.CanvasProfileView.prototype.elementsToRestoreScrollPositionsFor):
12364         (WebInspector.CanvasProfileView.prototype._enableWaitIcon):
12365         (WebInspector.CanvasProfileView.prototype._replayTraceLog.didReplayTraceLog):
12366         (WebInspector.CanvasProfileView.prototype._replayTraceLog):
12367         (WebInspector.CanvasProfileView.prototype._didReceiveTraceLog):
12368         (WebInspector.CanvasProfileView.prototype._createCallNode):
12369         * inspector/front-end/canvasProfiler.css:
12370         (#canvas-replay-image.wait):
12371
12372 2012-11-13  Eugene Klyuchnikov  <eustas.bug@gmail.com>
12373
12374         Web Inspector: Settings screen: some panel shortcuts are missing
12375         https://bugs.webkit.org/show_bug.cgi?id=101026
12376
12377         Reviewed by Pavel Feldman.
12378
12379         Panels, that have not been loaded by the time shortcuts view was
12380         initialized, had no chance to register shortcuts.
12381
12382         Solution: move shortcut registration (for shortcuts screen) to panel
12383         descriptors.
12384
12385         More changes: add JsDoc annotations to ShortcutScreen and change "key"
12386         parameter type for raw string to key descriptor object.
12387
12388         * WebCore.gypi: Added TimelinePanelDescriptor.js file.
12389         * WebCore.vcproj/WebCore.vcproj: Ditto.
12390         * inspector/compile-front-end.py: Ditto.
12391         * inspector/front-end/WebKit.qrc: Ditto.
12392         * inspector/front-end/inspector.html: Ditto.
12393         * inspector/front-end/AdvancedSearchController.js: Add JsDoc annotation.
12394         * inspector/front-end/GoToLineDialog.js: Ditto.
12395         * inspector/front-end/CallStackSidebarPane.js: Removed shortcut-screen
12396         shortcuts registration.
12397         * inspector/front-end/ElementsPanel.js: Ditto.
12398         * inspector/front-end/ScriptsPanel.js: Ditto.
12399         * inspector/front-end/StylesSidebarPane.js: Ditto.
12400         * inspector/front-end/TimelinePanel.js: Ditto.
12401         * inspector/front-end/ConsoleView.js: Changes order of lines to increase
12402         readability.
12403         * inspector/front-end/ElementsPanelDescriptor.js: Add shortcut-screen
12404         shortcuts registration and key descriptor constants.
12405         * inspector/front-end/ScriptsPanelDescriptor.js: Ditto.
12406         * inspector/front-end/TimelinePanelDescriptor.js: Ditto.
12407         * inspector/front-end/Panel.js: Removed unused "uregisterShortcut"; made
12408         "registerShortcuts" method accept array of key descriptors.
12409         (WebInspector.PanelDescriptor.prototype.registerShortcuts): Added.
12410         * inspector/front-end/ShortcutsScreen.js: Added JsDoc; changed parameter
12411         type from string to key descriptor.
12412         * inspector/front-end/inspector.js: Register shortcuts using
12413         panel descriptors.
12414         (WebInspector._panelDescriptors): Removed duplicate line.
12415
12416 2012-11-13  Gabor Rapcsanyi  <rgabor@webkit.org>
12417
12418         Optimize RGB565 and RGBA5551 packing/unpacking functions with NEON intrinsics
12419         https://bugs.webkit.org/show_bug.cgi?id=102060
12420
12421         Reviewed by Zoltan Herczeg.
12422
12423         Adding more NEONized packing functions to GraphicsContext3DNEON.h.
12424         These functions are three times faster with this intrinsics optimizations.
12425
12426         * platform/graphics/GraphicsContext3D.cpp:
12427         (WebCore):
12428         * platform/graphics/cpu/arm/GraphicsContext3DNEON.h:
12429         (WebCore::ARM::unpackOneRowOfRGBA5551ToRGBA8NEON):
12430         (ARM):
12431         (WebCore::ARM::packOneRowOfRGBA8ToUnsignedShort5551NEON):
12432         (WebCore::ARM::unpackOneRowOfRGB565ToRGBA8NEON):
12433         (WebCore::ARM::packOneRowOfRGBA8ToUnsignedShort565NEON):
12434
12435 2012-11-13  Csaba Osztrogonác  <ossy@webkit.org>
12436
12437         [Qt] Enable Mutation observer
12438         https://bugs.webkit.org/show_bug.cgi?id=102066
12439
12440         Reviewed by Pavel Feldman.
12441
12442         * DerivedSources.pri: Add missing IDL files.
12443
12444 2012-11-13  Kentaro Hara  <haraken@chromium.org>
12445
12446         [V8] Make isValidDOMObject() static
12447         https://bugs.webkit.org/show_bug.cgi?id=101914
12448
12449         Reviewed by Adam Barth.
12450
12451         isValidDOMObject() is used by DOMWrapper.cpp only.
12452
12453         No tests. No change in behavior.
12454
12455         * bindings/v8/V8DOMWrapper.cpp:
12456         (WebCore::isValidDOMObject):
12457         (WebCore):
12458         (WebCore::V8DOMWrapper::maybeDOMWrapper):
12459         * bindings/v8/V8DOMWrapper.h:
12460         (V8DOMWrapper):
12461
12462 2012-11-13  Mihnea Ovidenie  <mihnea@adobe.com>
12463
12464         [CSSRegions] Incorrect computed height for content with region-break-before
12465         https://bugs.webkit.org/show_bug.cgi?id=101862
12466
12467         Reviewed by Julien Chaffraix.
12468
12469         When processing the region breaks for auto-height regions, we skipped the case
12470         when the region-break-before occurred in the first region in the chain which was
12471         an auto-height region. Because of that, the region computed height was not 0
12472         as it was supposed to be, but rather LayoutUnit::max() / 2.
12473
12474         Test: fast/regions/autoheight-breakbefore-wrongheight.html
12475
12476         * rendering/RenderFlowThread.cpp:
12477         (WebCore::RenderFlowThread::addForcedRegionBreak):
12478         Make sure we process also the case when the region-break occurs at offset 0 in the flow thread
12479         and the first region in chain is an auto-height region.
12480         * rendering/RenderRegion.cpp:
12481         (WebCore::RenderRegion::updateLogicalHeight):
12482         Add an assert to make sure that the computed height for auto-height regions is always less than LayoutUnit::max() / 2.
12483
12484 2012-11-13  Yury Semikhatsky  <yurys@chromium.org>
12485
12486         Memory instrumentation: remove reportMemoryUsage method from ImageObserver
12487         https://bugs.webkit.org/show_bug.cgi?id=102058
12488
12489         Reviewed by Pavel Feldman.
12490
12491         * bindings/v8/V8PerIsolateData.cpp:
12492         (WebCore::V8PerIsolateData::reportMemoryUsage): drive-by fix, no need to report
12493         each element of the vector as generic vector instrumentation will take care of it.
12494         * platform/graphics/Image.cpp: the client is reported as weak pointer to make sure
12495         we don't count its by the pointer to the base class which may differ from the actual
12496         object address.
12497         (WebCore::Image::reportMemoryUsage):
12498         * platform/graphics/ImageObserver.h: removed reportMemoryUsage method from the interface.
12499         (ImageObserver):
12500
12501 2012-11-13  Eberhard Graether  <egraether@google.com>
12502
12503         checkbox to toggle FPS counter in the inspector's settings
12504         https://bugs.webkit.org/show_bug.cgi?id=99660
12505
12506         Reviewed by Pavel Feldman.
12507
12508         Added a checkbox to the inspector's settings to toggle a FPS counter. The checkbox appears when InspectorClient::canShowFPSCounter() returns true.
12509
12510         No new tests.
12511
12512         * English.lproj/localizedStrings.js:
12513         * inspector/Inspector.json:
12514         * inspector/InspectorClient.h:
12515         (WebCore::InspectorClient::canShowFPSCounter):
12516         (WebCore::InspectorClient::setShowFPSCounter):
12517         (InspectorClient):
12518         * inspector/InspectorPageAgent.cpp:
12519         (PageAgentState):
12520         (WebCore::InspectorPageAgent::enable):
12521         (WebCore::InspectorPageAgent::disable):
12522         (WebCore::InspectorPageAgent::canShowFPSCounter):
12523         (WebCore):
12524         (WebCore::InspectorPageAgent::setShowFPSCounter):
12525         * inspector/InspectorPageAgent.h:
12526         * inspector/front-end/Settings.js:
12527         * inspector/front-end/SettingsScreen.js:
12528         (WebInspector.GenericSettingsTab):
12529         (WebInspector.GenericSettingsTab.prototype.get _showFPSCounterChanged):
12530         * inspector/front-end/inspector.js:
12531         (WebInspector.doLoadedDone):
12532
12533 2012-11-12  Kent Tamura  <tkent@chromium.org>
12534
12535         Unable to set valid time value to input[type=time] with user interaction in some cases
12536         https://bugs.webkit.org/show_bug.cgi?id=102048
12537
12538         Reviewed by Kentaro Hara.
12539
12540         The implementations of shouldMillisecondFieldReadOnly,
12541         shouldMinuteFieldReadOnly, and shouldSecondFieldReadOnly were
12542         incorrect. We need to check if a part of the minimum value matches to
12543         the corresponding part of the current value.
12544
12545         Also, we had better check hour field editability.
12546
12547         Test: fast/forms/time-multiple-fields/time-multiple-fields-readonly-subfield.html
12548
12549         * html/BaseMultipleFieldsDateAndTimeInputType.cpp:
12550         (WebCore::BaseMultipleFieldsDateAndTimeInputType::shouldHaveSecondField):
12551         Fix a problem that hh:mm:00.sss didn't create a seconds field.
12552         * html/shadow/DateTimeEditElement.cpp:
12553         (DateTimeEditBuilder): Add shouldHourFieldReadOnly declaration.
12554         (WebCore::DateTimeEditBuilder::visitField):
12555         Add shouldHourFieldReadOnly check to Hour11/Hour12/Hour23/Hour24/Period fields.
12556         (WebCore::DateTimeEditBuilder::shouldHourFieldReadOnly):
12557         Added. An hour field should be read-only if the step value is a multiple
12558         of a day and the hour part of the minimum value matches to the hour part
12559         of the value.
12560         (WebCore::DateTimeEditBuilder::shouldMillisecondFieldReadOnly):
12561         A millisecond field should be read-only if the step value is a multiple
12562         of one second and the millisecond part of the minimum value matches to
12563         the millisecond part of the value.
12564         (WebCore::DateTimeEditBuilder::shouldMinuteFieldReadOnly):
12565         A minute field should be read-only if the step value is a multiple of
12566         one hour and the minute part of the minimum value matches to the minute
12567         part of the value.
12568         (WebCore::DateTimeEditBuilder::shouldSecondFieldReadOnly):
12569         A second field should be read-only if the step value is a multiple of
12570         one minute and the second part of the minimum value matches to the second
12571         part of the value.
12572         * platform/Decimal.cpp:
12573         (WebCore::Decimal::remainder):
12574         Fix a bug in case that the fractional part of quotient is >= 0.5. Also
12575         make this matches to C99, C++11, ECMAScript behavior.
12576
12577 2012-11-13  Yury Semikhatsky  <yurys@chromium.org>
12578
12579         Memory instrumentation: MemoryBlock name should not include full path to the block
12580         https://bugs.webkit.org/show_bug.cgi?id=102055
12581
12582         Reviewed by Pavel Feldman.
12583
12584         * inspector/InspectorMemoryAgent.cpp: pass only last path component as MemoryBlock name
12585         intead of fully qualified name.
12586
12587 2012-11-13  Pavel Feldman  <pfeldman@chromium.org>
12588
12589         Web Inspector: get rid of enter/exitTextChangeMode in the editor
12590         https://bugs.webkit.org/show_bug.cgi?id=101845
12591
12592         Reviewed by Vsevolod Vlasov.
12593
12594         They seem to do nothing.
12595
12596         * inspector/front-end/DefaultTextEditor.js:
12597         (WebInspector.DefaultTextEditor.prototype._textChanged):
12598         (WebInspector.DefaultTextEditor.prototype.editRange):
12599         (WebInspector.TextEditorMainPanel):
12600         (WebInspector.TextEditorMainPanel.prototype.handleUndoRedo):
12601         (WebInspector.TextEditorMainPanel.prototype.handleEnterKey.get var):
12602         (WebInspector.TextEditorMainPanel.prototype.handleEnterKey):
12603         (WebInspector.TextEditorMainPanel.prototype._applyDomUpdates):
12604         * inspector/front-end/TextEditorModel.js:
12605         (WebInspector.TextEditorModel.endsWithBracketRegex.):
12606
12607 2012-11-13  Tommy Widenflycht  <tommyw@google.com>
12608
12609         Remove the custom WebSocket::send for both V8 and JSC
12610         https://bugs.webkit.org/show_bug.cgi?id=101936
12611
12612         Reviewed by Kentaro Hara.
12613
12614         This patch removes the custom WebSocket::send since it isn't needed anymore.
12615
12616         Patch covered by existing tests.
12617
12618         * Modules/websockets/WebSocket.idl:
12619         * UseV8.cmake:
12620         * WebCore.gypi:
12621         * bindings/js/JSWebSocketCustom.cpp:
12622         * bindings/v8/custom/V8WebSocketCustom.cpp: Removed.
12623
12624 2012-11-13  Pavel Feldman  <pfeldman@chromium.org>
12625
12626         Web Inspector: move indentation logic into TextEditorModel
12627         https://bugs.webkit.org/show_bug.cgi?id=101842
12628
12629         Reviewed by Vsevolod Vlasov.
12630
12631         I'd like to move as much headless logic into the TextEditorModel as possible.
12632         Drive by: removed some dead code, converted getter into function and moved undo
12633         mark state into the model as well.
12634
12635         * inspector/front-end/DefaultTextEditor.js:
12636         (WebInspector.DefaultTextEditor.prototype.editRange):
12637         (WebInspector.DefaultTextEditor.prototype._syncDecorationsForLine):
12638         (WebInspector.TextEditorChunkedPanel.prototype._splitChunkOnALine):
12639         (WebInspector.TextEditorMainPanel.prototype.handleEnterKey.get var):
12640         (WebInspector.TextEditorMainPanel.prototype.handleEnterKey):
12641         (WebInspector.TextEditorMainPanel.prototype._applyDomUpdates):
12642         (WebInspector.TextEditorMainPanel.prototype._updateChunksForRanges):
12643         (WebInspector.TextEditorMainChunk):
12644         (WebInspector.TextEditorMainChunk.prototype.isDecorated):
12645         (WebInspector.TextEditorMainChunk.prototype.set expanded):
12646         * inspector/front-end/TextEditorModel.js:
12647         (WebInspector.TextEditorModel.endsWithBracketRegex.):
12648
12649 2012-11-13  Hayato Ito  <hayato@chromium.org>
12650
12651         Unreviewed attempt to fix the chromium mac-build after r134348.
12652
12653         * platform/graphics/mac/FontMac.mm:
12654         (WebCore::Font::drawGlyphs):
12655         * platform/mac/WebCoreSystemInterface.h:
12656         * platform/mac/WebCoreSystemInterface.mm:
12657
12658 2012-11-13  Pavel Feldman  <pfeldman@chromium.org>
12659
12660         Web Inspector: migrate text editor to mutation observers
12661         https://bugs.webkit.org/show_bug.cgi?id=101841
12662
12663         Reviewed by Vsevolod Vlasov.
12664
12665         Otherwise, we miss notifications on the removed lines.
12666
12667         * inspector/front-end/DefaultTextEditor.js:
12668         (WebInspector.DefaultTextEditor.prototype.wasShown):
12669         (WebInspector.DefaultTextEditor.prototype.willHide):
12670         (WebInspector.TextEditorChunkedPanel.prototype._repaintAll):
12671         (WebInspector.TextEditorMainPanel):
12672         (WebInspector.TextEditorMainPanel.prototype._wasShown):
12673         (WebInspector.TextEditorMainPanel.prototype._willHide):
12674         (WebInspector.TextEditorMainPanel.prototype.markAndRevealRange):
12675         (WebInspector.TextEditorMainPanel.prototype.beginDomUpdates):
12676         (WebInspector.TextEditorMainPanel.prototype.endDomUpdates):
12677         (WebInspector.TextEditorMainPanel.prototype._paintScheduledLines):
12678         (WebInspector.TextEditorMainPanel.prototype._paintLineChunks):
12679         (WebInspector.TextEditorMainPanel.prototype._paintLine):
12680         (WebInspector.TextEditorMainPanel.prototype._insertSpanBefore):
12681         (WebInspector.TextEditorMainPanel.prototype._handleMutations.else.get if):
12682         (WebInspector.TextEditorMainPanel.prototype._handleMutations):
12683         (WebInspector.TextEditorMainPanel.prototype._collectDirtyLines):
12684         (WebInspector.TextEditorMainPanel.prototype._applyDomUpdates):
12685         * inspector/front-end/externs.js:
12686         (WebKitMutation):
12687         (WebKitMutationObserver.prototype.observe):
12688         (WebKitMutationObserver.prototype.disconnect):
12689         * inspector/front-end/textEditor.css:
12690         (.debug-fadeout):
12691         (@-webkit-keyframes debug-fadeout):
12692         (to):
12693
12694 2012-11-13  Gabor Rapcsanyi  <rgabor@webkit.org>
12695
12696         Optimize RGBA4444ToRGBA8 packing/unpacking functions with NEON intrinsics in GraphicsContext3D
12697         https://bugs.webkit.org/show_bug.cgi?id=101473
12698
12699         Reviewed by Zoltan Herczeg.
12700
12701         With NEON intrinsics the packing/unpacking functions can be optimized well.
12702         This particular function is about 3 times faster with ARM NEON. On top level tests
12703         the speed up was 1.18x.
12704
12705         * CMakeLists.txt:
12706         * GNUmakefile.am:
12707         * GNUmakefile.list.am:
12708         * Target.pri:
12709         * WebCore.gyp/WebCore.gyp:
12710         * WebCore.gypi:
12711         * WebCore.pri:
12712         * WebCore.xcodeproj/project.pbxproj:
12713         * platform/graphics/GraphicsContext3D.cpp:
12714         (WebCore):
12715         * platform/graphics/cpu/arm/GraphicsContext3DNEON.h: Added.
12716         (WebCore):
12717         (ARM):
12718         (WebCore::ARM::unpackOneRowOfRGBA4444ToRGBA8NEON):
12719         (WebCore::ARM::packOneRowOfRGBA8ToUnsignedShort4444NEON):
12720
12721 2012-11-13  Takashi Sakamoto  <tasak@google.com>
12722
12723         Crash when replacing parts of text inputs with content: url(...)
12724         https://bugs.webkit.org/show_bug.cgi?id=101133
12725
12726         Reviewed by Kent Tamura.
12727
12728         Disable directly setting content of elements in an input element's
12729         shadow dom tree, because the setting breaks input element's behavior.
12730
12731         Tests: fast/forms/number/number-content-url-crash.html
12732                fast/forms/search/search-content-url-crash.html
12733
12734         * css/html.css:
12735         (input::-webkit-textfield-decoration-container):
12736         Use important to disable overriding an input element's content
12737         property.
12738         * html/TextFieldInputType.cpp:
12739         (WebCore::TextFieldInputType::attach):
12740         Added ASSERTION. No content should be applied to
12741         input::-webkit-textfield-decoration-container.
12742
12743 2012-11-12  Huang Dongsung  <luxtella@company100.net>
12744
12745         [Qt] REGRESSION(134142): overscaled tiles in pixel test results and MiniBrowser
12746         https://bugs.webkit.org/show_bug.cgi?id=101918
12747
12748         Reviewed by Noam Rosenthal.
12749
12750         Remove TiledBackingStore::rect(), because it is not used anymore.
12751
12752         * platform/graphics/TiledBackingStore.h:
12753         (TiledBackingStore):
12754
12755 2012-11-12  Adam Barth  <abarth@webkit.org>
12756
12757         [V8] We should be able to recover the V8DOMWindowShell more quickly
12758         https://bugs.webkit.org/show_bug.cgi?id=102020
12759
12760         Reviewed by Kentaro Hara.
12761
12762         For isolated worlds, we used to store the V8DOMWindowShell as an
12763         internal field of the inner DOM window. This patch moves the pointer to
12764         an internal field of the v8::Context, which saves us the work of
12765         looking up the inner DOM window.
12766
12767         Unfortunately, we cannot store the V8DOMWindowShell in V8PerContextData
12768         because the V8DOMWindowShell outlives the V8PerContextData. (We destroy
12769         the V8PerContextData when we detach the V8DOMWindowShell from the
12770         frame.)
12771
12772         * bindings/scripts/CodeGeneratorV8.pm:
12773         (GetInternalFields):
12774         * bindings/v8/V8DOMWindowShell.cpp:
12775         (WebCore::V8DOMWindowShell::initializeIfNeeded):
12776         * bindings/v8/V8DOMWindowShell.h:
12777         (WebCore::V8DOMWindowShell::getEntered):
12778         * bindings/v8/V8PerContextData.h:
12779
12780 2012-11-12  Kentaro Hara  <haraken@chromium.org>
12781
12782         [V8] Add ASSERT() to guarantee that we don't store NULL pointers to V8 internal fields
12783         https://bugs.webkit.org/show_bug.cgi?id=101054
12784
12785         Reviewed by Adam Barth.
12786
12787         I'm investigating a Chromium crash bug:
12788         http://code.google.com/p/chromium/issues/detail?id=155942
12789
12790         I've not yet identified the root cause (because I can't reproduce
12791         the crash), but it looks like we are storing NULL pointers to
12792         V8 internal fields. Just in case, we can add an ASSERT() to
12793         guarantee that NULL pointers are never stored. (Also I'm hoping
12794         that this ASSERT() will give me more debug information.)
12795
12796         No tests. No change in behavior.
12797
12798         * bindings/v8/V8DOMWrapper.h:
12799         (WebCore::V8DOMWrapper::setDOMWrapper):
12800
12801 2012-11-12  Shinya Kawanaka  <shinyak@chromium.org>
12802
12803         Changing id, className, or attribute should invalidate distribution
12804         https://bugs.webkit.org/show_bug.cgi?id=100738
12805
12806         Reviewed by Dimitri Glazkov.
12807
12808         When id, className, or attribute is changed, we might have to invalidate distribution.
12809         However, we don't want to do useless invalidation. So we consult with the RuleFeatureSet of ElementShadow,
12810         and invalidate distribution only if necessary.
12811
12812         When className is changed, we can share a lot of code between invalidating distribution and invalidating style.
12813         So we made checkNeedsStyleInvalidationForClassChange a template method, and share it.
12814
12815         Also we've measured how this patch makes changing attribute slow. By converting checkNeedsStyleInvalidationForClassChange
12816         to template, actually this improves the performance of changing attribute code. I've measured each code 3 times.
12817
12818         DOM/ModifyAttribute.html
12819         Before this patch:
12820                 median  stdev  min      max    [ms]
12821           1st   115.62   0.67  114.75   117.00
12822           2nd   115.08   1.13  113.25   117.58
12823           3rd   114.75   1.16  113.42   117.83
12824
12825         After this patch:
12826                 median  stdev  min      max    [ms]
12827           1st   102.55   0.95  101.25   104.50
12828           2nd   103.10   0.86  102.20   100.95
12829           3rd   103.30   1.05  102.10   106.65
12830
12831         Tests: fast/dom/shadow/distribution-attribute-modified.html
12832                fast/dom/shadow/distribution-className-modified.html
12833                fast/dom/shadow/distribution-id-modified.html
12834                fast/dom/shadow/reprojection-attribute-modified.html
12835                fast/dom/shadow/reprojection-className-modified.html
12836                fast/dom/shadow/reprojection-id-modified.html
12837
12838         * dom/Element.cpp:
12839         (WebCore::Element::attributeChanged):
12840         (WebCore::HasSelectorForClassStyleFunctor::HasSelectorForClassStyleFunctor):
12841         (HasSelectorForClassStyleFunctor):
12842         (WebCore::HasSelectorForClassStyleFunctor::operator()): Returns true if StyleResolver::hasSelectorForClass returns true.
12843         (WebCore):
12844         (WebCore::HasSelectorForClassDistributionFunctor::HasSelectorForClassDistributionFunctor):
12845         (HasSelectorForClassDistributionFunctor):
12846         (WebCore::HasSelectorForClassDistributionFunctor::operator()): Returns true if ElementShadow::hasSelectorForClass returns true.
12847         (WebCore::checkFunctorForClassChange):
12848         (WebCore::checkNeedsStyleInvalidationForClassChange): Extacted the implementation to checkFunctorForClassChange.
12849         (WebCore::checkNeedsDistributionInvalidationForClassChange):
12850         (WebCore::Element::classAttributeChanged):
12851
12852 2012-11-12  Joe Mason  <jmason@rim.com>
12853
12854         [BlackBerry] NetworkJob should not check if data is received with HEAD
12855         https://bugs.webkit.org/show_bug.cgi?id=102034
12856
12857         Reviewed by George Staikos.
12858
12859         Internal PR: 241391
12860
12861         Make HEAD requests call didFinish instead of didFail on a 404 response, even though they
12862         have no data.
12863
12864         Tests: ManualTests/blackberry/head-xhr-nonexistant-file.html
12865
12866         * platform/network/blackberry/NetworkJob.cpp:
12867         (WebCore::NetworkJob::NetworkJob):
12868         (WebCore::NetworkJob::initialize):
12869         (WebCore::NetworkJob::shouldNotifyClientFailed):
12870         * platform/network/blackberry/NetworkJob.h:
12871         (NetworkJob):
12872
12873 2012-11-12  Adam Barth  <abarth@webkit.org>
12874
12875         [V8] V8DOMWrapper::instantiateV8Object shouldn't use deprecatedDocument
12876         https://bugs.webkit.org/show_bug.cgi?id=102015
12877
12878         Reviewed by Kentaro Hara.
12879
12880         Previously, Nodes had a special path through
12881         V8DOMWrapper::instantiateV8Object using deprecatedDocument so that we
12882         could find the V8PerContextData quickly. Now that we can get the
12883         V8PerContextData from the v8::Context quickly, we can move Nodes to the
12884         general case. The net consequence is that creation of all DOM objects
12885         should be as fast as Nodes are.
12886
12887         * bindings/scripts/CodeGeneratorV8.pm:
12888         (GenerateToV8Converters):
12889         * bindings/scripts/test/V8/V8Float64Array.cpp:
12890         (WebCore::V8Float64Array::wrapSlow):
12891         * bindings/scripts/test/V8/V8TestActiveDOMObject.cpp:
12892         (WebCore::V8TestActiveDOMObject::wrapSlow):
12893         * bindings/scripts/test/V8/V8TestCustomNamedGetter.cpp:
12894         (WebCore::V8TestCustomNamedGetter::wrapSlow):
12895         * bindings/scripts/test/V8/V8TestEventConstructor.cpp:
12896         (WebCore::V8TestEventConstructor::wrapSlow):
12897         * bindings/scripts/test/V8/V8TestEventTarget.cpp:
12898         (WebCore::V8TestEventTarget::wrapSlow):
12899         * bindings/scripts/test/V8/V8TestException.cpp:
12900         (WebCore::V8TestException::wrapSlow):
12901         * bindings/scripts/test/V8/V8TestInterface.cpp:
12902         (WebCore::V8TestInterface::wrapSlow):
12903         * bindings/scripts/test/V8/V8TestMediaQueryListListener.cpp:
12904         (WebCore::V8TestMediaQueryListListener::wrapSlow):
12905         * bindings/scripts/test/V8/V8TestNamedConstructor.cpp:
12906         (WebCore::V8TestNamedConstructor::wrapSlow):
12907         * bindings/scripts/test/V8/V8TestNode.cpp:
12908         (WebCore::V8TestNode::wrapSlow):
12909         * bindings/scripts/test/V8/V8TestObj.cpp:
12910         (WebCore::V8TestObj::wrapSlow):
12911         * bindings/scripts/test/V8/V8TestOverloadedConstructors.cpp:
12912         (WebCore::V8TestOverloadedConstructors::wrapSlow):
12913         * bindings/scripts/test/V8/V8TestSerializedScriptValueInterface.cpp:
12914         (WebCore::V8TestSerializedScriptValueInterface::wrapSlow):
12915         * bindings/v8/V8Binding.cpp:
12916         * bindings/v8/V8Binding.h:
12917         (WebCore):
12918         * bindings/v8/V8DOMWrapper.cpp:
12919         (WebCore::V8DOMWrapper::instantiateV8Object):
12920         * bindings/v8/V8DOMWrapper.h:
12921         (V8DOMWrapper):
12922
12923 2012-11-12  KyungTae Kim  <ktf.kim@samsung.com>
12924
12925         Some CSS properties are not handled on StyleResolver::applyProperty
12926         https://bugs.webkit.org/show_bug.cgi?id=102027
12927
12928         Reviewed by Gyuyoung Kim.
12929
12930         The CSSPropertyMaxZoom, CSSPropertyMinZoom, CSSPropertyOrientation and CSSPropertyUserZoom
12931         need to be handled on StyleResolver::applyProperty.
12932
12933         * css/StyleResolver.cpp:
12934         (WebCore::StyleResolver::applyProperty):
12935
12936 2012-11-12  Simon Fraser  <simon.fraser@apple.com>
12937
12938         Avoid calling calculateLayerBounds() and convertToLayerCoords() more than once per layer paint
12939         https://bugs.webkit.org/show_bug.cgi?id=102031
12940
12941         Reviewed by Beth Dakin.
12942
12943         RenderLayer::paintLayerContents() and callees could end up calling convertToLayerCoords()
12944         and calculateLayerBounds() multiple times for painting a single layer.
12945         
12946         Keep track of whether we've computed the root-relative bounds and do it on demand.
12947         Compute the offset relative to rootLayer once, and pass it around as an optional parameter
12948         to functions that need it.
12949
12950         * rendering/RenderLayer.cpp:
12951         (WebCore::RenderLayer::paintLayerContents):
12952         (WebCore::RenderLayer::hitTestLayer):
12953         (WebCore::RenderLayer::calculateRects):
12954         (WebCore::RenderLayer::intersectsDamageRect):
12955         (WebCore::RenderLayer::boundingBox):
12956         (WebCore::RenderLayer::calculateLayerBounds):
12957         * rendering/RenderLayer.h:
12958         * rendering/RenderLayerCompositor.cpp:
12959         (WebCore::RenderLayerCompositor::calculateCompositedBounds):
12960
12961 2012-11-12  Simon Fraser  <simon.fraser@apple.com>
12962
12963         Change calculateLayerBounds() from a static function to a member function
12964         https://bugs.webkit.org/show_bug.cgi?id=102022
12965
12966         Reviewed by Beth Dakin.
12967
12968         calculateLayerBounds() has grown into a substantial function after
12969         starting live as a little utility function, so make it a member function
12970         of RenderLayer, and adjust callers accordingly.
12971
12972         * rendering/RenderLayer.cpp:
12973         (WebCore::RenderLayer::setFilterBackendNeedsRepaintingInRect):
12974         (WebCore::RenderLayer::paintLayerContents):
12975         (WebCore::RenderLayer::calculateLayerBounds):
12976         * rendering/RenderLayer.h:
12977         * rendering/RenderLayerCompositor.cpp:
12978         (WebCore::RenderLayerCompositor::calculateCompositedBounds):
12979
12980 2012-11-12  Alexei Filippov  <alph@chromium.org>
12981
12982         Web Inspector: Add an option to switch display of "Other" memory on/off in NMI
12983         https://bugs.webkit.org/show_bug.cgi?id=101601
12984
12985         Reviewed by Yury Semikhatsky.
12986
12987         * English.lproj/localizedStrings.js:
12988         * inspector/front-end/NativeMemorySnapshotView.js:
12989         * inspector/front-end/Settings.js:
12990         * inspector/front-end/SettingsScreen.js:
12991         (WebInspector.GenericSettingsTab):
12992
12993 2012-11-10  Dirk Schulze  <krit@webkit.org>
12994
12995         BasicShapes 'circle', 'rectangle', 'ellipse' should be animatable with themselves
12996         https://bugs.webkit.org/show_bug.cgi?id=101854
12997
12998         Reviewed by Andreas Kling.
12999
13000         The basic shapes BasicShapeCircle, BasicShapeEllipse and BasicShapeRectangle should
13001         blend with themselves. This patch introduces simple interpolation of BasicShapes for
13002         the -webkit-clip-path property.
13003
13004         Test: css3/masking/clip-path-animation.html
13005
13006         * page/animation/CSSPropertyAnimation.cpp:
13007         (WebCore::blendFunc): Added a new function that blends between two BasicShape objects.
13008             It skips blending on <clipPath> references, polygons and if the shapes are not of
13009             the same type.
13010         (WebCore):
13011         (PropertyWrapperClipPath): Added new wrapper for ClipPathShapes.
13012         (WebCore::PropertyWrapperClipPath::PropertyWrapperClipPath): Ditto.
13013         (WebCore::CSSPropertyAnimation::ensurePropertyMap): Add -webkit-clip-path to animatable
13014             properties.
13015         * rendering/style/BasicShapes.cpp:
13016             The blending is done by each shape itself. This is similar to FilterOperations or
13017             TransformOperations.
13018         (WebCore::BasicShapeRectangle::blend):
13019         (WebCore):
13020         (WebCore::BasicShapeCircle::blend):
13021         (WebCore::BasicShapeEllipse::blend):
13022         (WebCore::BasicShapePolygon::blend):
13023         * rendering/style/BasicShapes.h:
13024             Added new blending functions to header.
13025         (BasicShape):
13026         (BasicShapeRectangle):
13027         (BasicShapeCircle):
13028         (BasicShapeEllipse):
13029         (BasicShapePolygon):
13030
13031 2012-11-12  Adam Barth  <abarth@webkit.org>
13032
13033         [V8] We should be able to get V8PerContextData from a v8::Context more quickly
13034         https://bugs.webkit.org/show_bug.cgi?id=102008
13035
13036         Reviewed by Ojan Vafai.
13037
13038         This patch uses the new v8::Context::GetAlignedPointerFromEmbedderData
13039         API to get the V8PerContextData associated with a v8::Context much more
13040         quickly. We no longer need to use a hidden property on the inner global
13041         object. This patch will enable future optimizations.
13042
13043         * bindings/v8/V8HiddenPropertyName.h:
13044         (WebCore):
13045         * bindings/v8/V8PerContextData.cpp:
13046         (WebCore::V8PerContextData::dispose):
13047         (WebCore::V8PerContextData::init):
13048         * bindings/v8/V8PerContextData.h:
13049         (WebCore::V8PerContextData::from):
13050
13051 2012-11-12  Elliott Sprehn  <esprehn@chromium.org>
13052
13053         Make Frames and HTMLFrameOwnerElement less friendly
13054         https://bugs.webkit.org/show_bug.cgi?id=102003
13055
13056         Reviewed by Ojan Vafai.
13057
13058         Frame used to assign HTMLFrameOwnerElement's m_contentFrame directly
13059         this patch makes it go through a method to allow future hooks when frames
13060         are associated with owners.
13061
13062         No new tests, this is just a refactor.
13063
13064         * html/HTMLFrameOwnerElement.cpp:
13065         (WebCore::HTMLFrameOwnerElement::setContentFrame):
13066         * html/HTMLFrameOwnerElement.h:
13067         (HTMLFrameOwnerElement):
13068         (WebCore::HTMLFrameOwnerElement::clearContentFrame):
13069         * page/Frame.cpp:
13070         (WebCore::Frame::Frame): Use new methods.
13071
13072 2012-11-12  Beth Dakin  <bdakin@apple.com>
13073
13074         Zoomed-in scrolling is very slow when deviceScaleFactor > 1
13075         https://bugs.webkit.org/show_bug.cgi?id=101787
13076
13077         Reviewed by Simon Fraser.
13078
13079         This patch adds a new member to the GraphicsContextState that tracks 
13080         whether or not fonts should be subpixel-quantized. We want to default 
13081         to sibpixel-quantizing, but we'll turn it off if we're scrolling 
13082         content that cannot be scrolled on the scrolling thread.
13083
13084         State has a new bool shouldSubpixelQuantizeFonts. It defaults to true 
13085         since normally we do want to quantize.
13086         * platform/graphics/GraphicsContext.cpp:
13087         (WebCore::GraphicsContext::setShouldSubpixelQuantizeFonts):
13088         (WebCore::GraphicsContext::shouldSubpixelQuantizeFonts):
13089         * platform/graphics/GraphicsContext.h:
13090         (WebCore::GraphicsContextState::GraphicsContextState):
13091         (GraphicsContextState):
13092         (GraphicsContext):
13093
13094         wkSetCGFontRenderingMode now takes a BOOL parameter which indicates 
13095         whether or not it should try to subpixel-quantize the fonts.
13096         * platform/graphics/mac/FontMac.mm:
13097         (WebCore::Font::drawGlyphs):
13098         * platform/mac/WebCoreSystemInterface.h:
13099         * platform/mac/WebCoreSystemInterface.mm:
13100
13101         Disable subpixel-quantization for overflow areas, subframes, and 
13102         content that is scrolling on the main thread.
13103         * rendering/RenderLayer.cpp:
13104         (WebCore::RenderLayer::paintLayerContents):
13105
13106 2012-11-12  Timothy Hatcher  <timothy@apple.com>
13107
13108         Expose InspectorFrontendClientLocal::setAttachedWindow as public.
13109
13110         This allows external actions to update the docked state in the frontend.
13111
13112         https://bugs.webkit.org/show_bug.cgi?id=102023
13113
13114         Reviewed by Anders Carlsson.
13115
13116         * inspector/InspectorFrontendClientLocal.h:
13117         Moved InspectorFrontendClientLocal::setAttachedWindow to public section.
13118
13119 2012-11-12  Erik Arvidsson  <arv@chromium.org>
13120
13121         Replace DOMException TYPE_MISMATCH_ERR with TypeError
13122         https://bugs.webkit.org/show_bug.cgi?id=101604
13123
13124         Reviewed by Adam Barth.
13125
13126         DOMException.TYPE_MISMATCH_ERR is deprecated in favor of using TypeError.
13127
13128         We have historically used TYPE_MISMATCH_ERR as a blanket DOMException code when
13129         the spec mandates TypeError being thrown.
13130
13131         Updated existing tests.
13132
13133         * Modules/mediastream/MediaConstraintsImpl.cpp:
13134         * Modules/mediastream/MediaStreamTrackList.cpp:
13135         * Modules/mediastream/PeerConnection00.cpp:
13136         * Modules/mediastream/RTCDataChannel.cpp:
13137         * Modules/mediastream/RTCIceCandidate.cpp:
13138         * Modules/mediastream/RTCPeerConnection.cpp:
13139         * Modules/mediastream/RTCSessionDescription.cpp:
13140         * Modules/mediastream/SessionDescription.cpp:
13141         * bindings/js/CallbackFunction.cpp:
13142         * bindings/js/JSCustomXPathNSResolver.cpp:
13143         * bindings/js/JSHTMLOptionsCollectionCustom.cpp:
13144         * bindings/js/JSHTMLSelectElementCustom.cpp:
13145         * bindings/js/JSMutationObserverCustom.cpp:
13146         * bindings/js/JSSQLResultSetRowListCustom.cpp:
13147         * bindings/js/JSSQLTransactionCustom.cpp:
13148         * bindings/js/JSSQLTransactionSyncCustom.cpp:
13149         * bindings/scripts/CodeGeneratorJS.pm:
13150         * bindings/scripts/CodeGeneratorObjC.pm:
13151         * bindings/scripts/CodeGeneratorV8.pm:
13152         * bindings/v8/V8Callback.h:
13153         * bindings/v8/V8Collection.cpp:
13154         * bindings/v8/custom/V8DocumentCustom.cpp:
13155         * bindings/v8/custom/V8HTMLOptionsCollectionCustom.cpp:
13156         * bindings/v8/custom/V8MutationObserverCustom.cpp:
13157         * bindings/v8/custom/V8SQLTransactionCustom.cpp:
13158         * bindings/v8/custom/V8SQLTransactionSyncCustom.cpp:
13159         * dom/DOMCoreException.idl:
13160         * html/HTMLElement.cpp:
13161         * html/HTMLMediaElement.cpp:
13162         * html/HTMLOptionsCollection.cpp:
13163         * html/canvas/CanvasRenderingContext2D.cpp:
13164         * page/Crypto.cpp:
13165         * page/DOMSelection.cpp:
13166         * svg/properties/SVGTransformListPropertyTearOff.h:
13167
13168 2012-11-12  Joshua Bell  <jsbell@chromium.org>
13169
13170         IndexedDB: Use sequence<> instead of DOMString[] in IDL
13171         https://bugs.webkit.org/show_bug.cgi?id=100539
13172
13173         Reviewed by Adam Barth.
13174
13175         In the binding layer, DOMString[] is implemented as an alias for DOMStringList.
13176         WebIDL usage is tending towards sequence<DOMString> anyway for inputs, so switch
13177         to that. Note webkit.org/b/100537 which requires sequence<String> instead.
13178
13179         Covered by storage/indexeddb/transaction-basics.html and objectstore-basics.html
13180
13181         * Modules/indexeddb/IDBDatabase.cpp:
13182         (WebCore::IDBDatabase::transaction): DOMStringList -> Vector<String>
13183         * Modules/indexeddb/IDBDatabase.h:
13184         (WebCore::IDBDatabase::transaction):
13185         (IDBDatabase):
13186         * Modules/indexeddb/IDBDatabase.idl: DOMString[] -> sequence<String>
13187         * Modules/indexeddb/IDBObjectStore.cpp: Move trivial impls to header.
13188         * Modules/indexeddb/IDBObjectStore.h:
13189         (WebCore::IDBObjectStore::createIndex):
13190         * Modules/indexeddb/IDBObjectStore.idl: DOMString[] -> sequence<String>
13191
13192 2012-11-12  Anders Carlsson  <andersca@apple.com>
13193
13194         Remove Leopard only gradient code
13195         https://bugs.webkit.org/show_bug.cgi?id=102033
13196
13197         Reviewed by Dan Bernstein.
13198
13199         USE_CG_SHADING was only ever true on Leopard, so we can remove it now.
13200
13201         * platform/graphics/Gradient.h:
13202         * platform/graphics/cg/GradientCG.cpp:
13203         (WebCore::Gradient::platformDestroy):
13204         (WebCore::Gradient::platformGradient):
13205         (WebCore::Gradient::paint):
13206
13207 2012-11-12  Tiancheng Jiang  <tijiang@rim.com>
13208
13209         [BlackBerry] Update BB10 form theme.
13210         https://bugs.webkit.org/show_bug.cgi?id=100760
13211
13212         Reviewed by Rob Buis.
13213
13214         RIM PR 237003
13215         Internally Reviewed by Eli Fidler.
13216         Since we nolonger use small font for form controls, adjust paddingDivisor
13217         ratio to decrease the padding value.
13218
13219         * platform/blackberry/RenderThemeBlackBerry.cpp:
13220         (WebCore):
13221
13222 2012-11-12  Simon Fraser  <simon.fraser@apple.com>
13223
13224         Fix filter dirty rect regression from r134311
13225         https://bugs.webkit.org/show_bug.cgi?id=102002
13226
13227         Reviewed by Beth Dakin.
13228
13229         When rendering with filters, the code can inflate the root-relative
13230         paintDirtyRect in RenderLayer::paintLayerContents(), and my cleanup
13231         broke this behavior.
13232     
13233         Fix by making a local copy of LayerPaintingInfo, updating its paintDirtyRect,
13234         and using it for the rest of the function.
13235
13236         * rendering/RenderLayer.cpp:
13237         (WebCore::RenderLayer::paintLayerContents):
13238
13239 2012-11-12  Kentaro Hara  <haraken@chromium.org>
13240
13241         [V8] V8Event::valueAccessorGetter() in custom binding is not used
13242         https://bugs.webkit.org/show_bug.cgi?id=101893
13243
13244         Reviewed by Adam Barth.
13245
13246         No tests. No change in behavior.
13247
13248         * bindings/v8/custom/V8EventCustom.cpp:
13249
13250 2012-11-12  Roger Fong  <roger_fong@apple.com>
13251
13252         Web Inspector: Fix docking behaviour on Windows.
13253         https://bugs.webkit.org/show_bug.cgi?id=101978
13254
13255         Reviewed by Brian Weinstein.
13256
13257         There are a number of problems with docking behaviour on Windows.
13258         For starters, it does not ever constrain the inspector's size properly while docked.
13259         It also does not properly set the whether or not the inspector can be docked/undocked.
13260         This patch fixes both issues.
13261
13262         * inspector/InspectorFrontendClientLocal.cpp:
13263         (WebCore::InspectorFrontendClientLocal::frontendLoaded):
13264         Switch order of calling bringToFront and setDockingUnavailable.
13265
13266 2012-11-12  Adam Barth  <abarth@webkit.org>
13267
13268         [V8] Update callers to use the aligned pointer API rather than the deprecated unaligned pointer API
13269         https://bugs.webkit.org/show_bug.cgi?id=101519
13270
13271         Reviewed by Ojan Vafai.
13272
13273         There should be no change in behavior.  The new API is slightly faster
13274         than the old API (and apparently works correctly internally in V8).
13275
13276         * bindings/scripts/CodeGeneratorV8.pm:
13277         (GenerateHeader):
13278         * bindings/scripts/test/V8/V8Float64Array.h:
13279         (WebCore::V8Float64Array::toNative):
13280         * bindings/scripts/test/V8/V8TestActiveDOMObject.h:
13281         (WebCore::V8TestActiveDOMObject::toNative):
13282         * bindings/scripts/test/V8/V8TestCustomNamedGetter.h:
13283         (WebCore::V8TestCustomNamedGetter::toNative):
13284         * bindings/scripts/test/V8/V8TestEventConstructor.h:
13285         (WebCore::V8TestEventConstructor::toNative):
13286         * bindings/scripts/test/V8/V8TestEventTarget.h:
13287         (WebCore::V8TestEventTarget::toNative):
13288         * bindings/scripts/test/V8/V8TestException.h:
13289         (WebCore::V8TestException::toNative):
13290         * bindings/scripts/test/V8/V8TestInterface.h:
13291         (WebCore::V8TestInterface::toNative):
13292         * bindings/scripts/test/V8/V8TestMediaQueryListListener.h:
13293         (WebCore::V8TestMediaQueryListListener::toNative):
13294         * bindings/scripts/test/V8/V8TestNamedConstructor.h:
13295         (WebCore::V8TestNamedConstructor::toNative):
13296         * bindings/scripts/test/V8/V8TestNode.h:
13297         (WebCore::V8TestNode::toNative):
13298         * bindings/scripts/test/V8/V8TestObj.h:
13299         (WebCore::V8TestObj::toNative):
13300         * bindings/scripts/test/V8/V8TestSerializedScriptValueInterface.h:
13301         (WebCore::V8TestSerializedScriptValueInterface::toNative):
13302         * bindings/v8/NPV8Object.cpp:
13303         (WebCore::v8ObjectToNPObject):
13304         (WebCore::npCreateV8ScriptObject):
13305         * bindings/v8/V8Collection.h:
13306         (WebCore::toNativeCollection):
13307         * bindings/v8/V8DOMWindowShell.cpp:
13308         (WebCore::setIsolatedWorldField):
13309         (WebCore::V8DOMWindowShell::enteredIsolatedWorldContext):
13310         * bindings/v8/V8DOMWrapper.cpp:
13311         (WebCore::V8DOMWrapper::isWrapperOfType):
13312         * bindings/v8/V8DOMWrapper.h:
13313         (WebCore::V8DOMWrapper::setDOMWrapper):
13314         (WebCore::V8DOMWrapper::clearDOMWrapper):
13315         * bindings/v8/WrapperTypeInfo.h:
13316         (WebCore::toNative):
13317         (WebCore::toWrapperTypeInfo):
13318
13319 2012-11-12  Andreas Kling  <kling@webkit.org>
13320
13321         Rename AttributeStyle => PresentationAttributeStyle across WebCore.
13322         <http://webkit.org/b/101975>
13323
13324         Rubber-stamped by Antti Koivisto.
13325
13326         The completely separate concepts of "attribute style" and "style attribute" were a bit too
13327         easy to confuse in variable and method names. Reconfigure our terminology to call it
13328         "presentation attribute style" instead of "attribute style".
13329
13330         * css/StyleResolver.cpp:
13331         (WebCore::StyleResolver::sweepMatchedPropertiesCache):
13332         (WebCore::StyleResolver::matchAllRules):
13333         (WebCore::StyleResolver::canShareStyleWithElement):
13334         * dom/Attr.cpp:
13335         (WebCore::Attr::style):
13336         * dom/ElementAttributeData.cpp:
13337         (WebCore::MutableElementAttributeData::MutableElementAttributeData):
13338         (WebCore::ElementAttributeData::reportMemoryUsage):
13339         * dom/ElementAttributeData.h:
13340         (WebCore::ElementAttributeData::presentationAttributeStyle):
13341         (WebCore::ElementAttributeData::setPresentationAttributeStyle):
13342         (ElementAttributeData):
13343         * dom/Node.h:
13344         (WebCore::Node::attributeStyleDirty):
13345         (WebCore::Node::setPresentationAttributeStyleDirty):
13346         (WebCore::Node::clearPresentationAttributeStyleDirty):
13347         * dom/StyledElement.cpp:
13348         (WebCore::StyledElement::attributeChanged):
13349         (WebCore::StyledElement::rebuildPresentationAttributeStyle):
13350         (WebCore::StyledElement::addPropertyToPresentationAttributeStyle):
13351         * dom/StyledElement.h:
13352         (WebCore::StyledElement::additionalPresentationAttributeStyle):
13353         (StyledElement):
13354         (WebCore::StyledElement::collectStyleForPresentationAttribute):
13355         (WebCore::StyledElement::presentationAttributeStyle):
13356         * html/HTMLBRElement.cpp:
13357         (WebCore::HTMLBRElement::collectStyleForPresentationAttribute):
13358         * html/HTMLBRElement.h:
13359         (HTMLBRElement):
13360         * html/HTMLBodyElement.cpp:
13361         (WebCore::HTMLBodyElement::collectStyleForPresentationAttribute):
13362         * html/HTMLBodyElement.h:
13363         (HTMLBodyElement):
13364         * html/HTMLDivElement.cpp:
13365         (WebCore::HTMLDivElement::collectStyleForPresentationAttribute):
13366         * html/HTMLDivElement.h:
13367         (HTMLDivElement):
13368         * html/HTMLElement.cpp:
13369         (WebCore::HTMLElement::applyBorderAttributeToStyle):
13370         (WebCore::HTMLElement::mapLanguageAttributeToLocale):
13371         (WebCore::HTMLElement::collectStyleForPresentationAttribute):
13372         (WebCore::HTMLElement::applyAlignmentAttributeToStyle):
13373         (WebCore::HTMLElement::addHTMLLengthToStyle):
13374         * html/HTMLElement.h:
13375         (HTMLElement):
13376         * html/HTMLEmbedElement.cpp:
13377         (WebCore::HTMLEmbedElement::collectStyleForPresentationAttribute):
13378         * html/HTMLEmbedElement.h:
13379         (HTMLEmbedElement):
13380         * html/HTMLFontElement.cpp:
13381         (WebCore::HTMLFontElement::collectStyleForPresentationAttribute):
13382         * html/HTMLFontElement.h:
13383         (HTMLFontElement):
13384         * html/HTMLFrameSetElement.cpp:
13385         (WebCore::HTMLFrameSetElement::collectStyleForPresentationAttribute):
13386         * html/HTMLFrameSetElement.h:
13387         (HTMLFrameSetElement):
13388         * html/HTMLHRElement.cpp:
13389         (WebCore::HTMLHRElement::collectStyleForPresentationAttribute):
13390         * html/HTMLHRElement.h:
13391         (HTMLHRElement):
13392         * html/HTMLIFrameElement.cpp:
13393         (WebCore::HTMLIFrameElement::collectStyleForPresentationAttribute):
13394         * html/HTMLIFrameElement.h:
13395         (HTMLIFrameElement):
13396         * html/HTMLImageElement.cpp:
13397         (WebCore::HTMLImageElement::collectStyleForPresentationAttribute):
13398         * html/HTMLImageElement.h:
13399         (HTMLImageElement):
13400         * html/HTMLInputElement.cpp:
13401         (WebCore::HTMLInputElement::collectStyleForPresentationAttribute):
13402         * html/HTMLInputElement.h:
13403         (HTMLInputElement):
13404         * html/HTMLLIElement.cpp:
13405         (WebCore::HTMLLIElement::collectStyleForPresentationAttribute):
13406         * html/HTMLLIElement.h:
13407         (HTMLLIElement):
13408         * html/HTMLMarqueeElement.cpp:
13409         (WebCore::HTMLMarqueeElement::collectStyleForPresentationAttribute):
13410         * html/HTMLMarqueeElement.h:
13411         (HTMLMarqueeElement):
13412         * html/HTMLOListElement.cpp:
13413         (WebCore::HTMLOListElement::collectStyleForPresentationAttribute):
13414         * html/HTMLOListElement.h:
13415         (HTMLOListElement):
13416         * html/HTMLObjectElement.cpp:
13417         (WebCore::HTMLObjectElement::collectStyleForPresentationAttribute):
13418         * html/HTMLObjectElement.h:
13419         (HTMLObjectElement):
13420         * html/HTMLParagraphElement.cpp:
13421         (WebCore::HTMLParagraphElement::collectStyleForPresentationAttribute):
13422         * html/HTMLParagraphElement.h:
13423         (HTMLParagraphElement):
13424         * html/HTMLPlugInElement.cpp:
13425         (WebCore::HTMLPlugInElement::collectStyleForPresentationAttribute):
13426         * html/HTMLPlugInElement.h:
13427         (HTMLPlugInElement):
13428         * html/HTMLPreElement.cpp:
13429         (WebCore::HTMLPreElement::collectStyleForPresentationAttribute):
13430         * html/HTMLPreElement.h:
13431         (HTMLPreElement):
13432         * html/HTMLTableCaptionElement.cpp:
13433         (WebCore::HTMLTableCaptionElement::collectStyleForPresentationAttribute):
13434         * html/HTMLTableCaptionElement.h:
13435         (HTMLTableCaptionElement):
13436         * html/HTMLTableCellElement.cpp:
13437         (WebCore::HTMLTableCellElement::collectStyleForPresentationAttribute):
13438         (WebCore::HTMLTableCellElement::additionalPresentationAttributeStyle):
13439         * html/HTMLTableCellElement.h:
13440         (HTMLTableCellElement):
13441         * html/HTMLTableColElement.cpp:
13442         (WebCore::HTMLTableColElement::collectStyleForPresentationAttribute):
13443         (WebCore::HTMLTableColElement::additionalPresentationAttributeStyle):
13444         * html/HTMLTableColElement.h:
13445         (HTMLTableColElement):
13446         * html/HTMLTableElement.cpp:
13447         (WebCore::HTMLTableElement::collectStyleForPresentationAttribute):
13448         (WebCore::HTMLTableElement::additionalPresentationAttributeStyle):
13449         * html/HTMLTableElement.h:
13450         (HTMLTableElement):
13451         * html/HTMLTablePartElement.cpp:
13452         (WebCore::HTMLTablePartElement::collectStyleForPresentationAttribute):
13453         * html/HTMLTablePartElement.h:
13454         (HTMLTablePartElement):
13455         * html/HTMLTableSectionElement.cpp:
13456         (WebCore::HTMLTableSectionElement::additionalPresentationAttributeStyle):
13457         * html/HTMLTableSectionElement.h:
13458         (HTMLTableSectionElement):
13459         * html/HTMLTextAreaElement.cpp:
13460         (WebCore::HTMLTextAreaElement::collectStyleForPresentationAttribute):
13461         * html/HTMLTextAreaElement.h:
13462         (HTMLTextAreaElement):
13463         * html/HTMLUListElement.cpp:
13464         (WebCore::HTMLUListElement::collectStyleForPresentationAttribute):
13465         * html/HTMLUListElement.h:
13466         (HTMLUListElement):
13467         * html/HTMLVideoElement.cpp:
13468         (WebCore::HTMLVideoElement::collectStyleForPresentationAttribute):
13469         * html/HTMLVideoElement.h:
13470         (HTMLVideoElement):
13471         * inspector/InspectorCSSAgent.cpp:
13472         (WebCore::InspectorCSSAgent::buildObjectForAttributesStyle):
13473         * mathml/MathMLElement.cpp:
13474         (WebCore::MathMLElement::collectStyleForPresentationAttribute):
13475         * mathml/MathMLElement.h:
13476         (MathMLElement):
13477         * svg/SVGImageElement.cpp:
13478         (WebCore::SVGImageElement::collectStyleForPresentationAttribute):
13479         * svg/SVGImageElement.h:
13480         (SVGImageElement):
13481         * svg/SVGStyledElement.cpp:
13482         (WebCore::SVGStyledElement::collectStyleForPresentationAttribute):
13483         * svg/SVGStyledElement.h:
13484         (SVGStyledElement):
13485         * svg/SVGTextContentElement.cpp:
13486         (WebCore::SVGTextContentElement::collectStyleForPresentationAttribute):
13487         * svg/SVGTextContentElement.h:
13488         (SVGTextContentElement):
13489
13490 2012-11-12  Adam Barth  <abarth@webkit.org>
13491
13492         [V8] Many things crash when switching to V8's new aligned pointer API
13493         https://bugs.webkit.org/show_bug.cgi?id=101994
13494
13495         Reviewed by Eric Seidel.
13496
13497         When using the aligned pointer API, we need to make sure to initialize
13498         every internal field that we later read because the new API has better
13499         error checks than the old API. This patch explicitly initializes the
13500         enteredIsolatedWorldIndex internal field to zero for main worlds,
13501         fixing the LayoutTest crashes from our previous attempt to move the
13502         aligned pointer API.
13503
13504         * bindings/v8/V8DOMWindowShell.cpp:
13505         (WebCore::V8DOMWindowShell::initializeIfNeeded):
13506
13507 2012-11-12  Simon Fraser  <simon.fraser@apple.com>
13508
13509         Reduce the crazy number of parameters to RenderLayer painting member functions
13510         https://bugs.webkit.org/show_bug.cgi?id=101895
13511
13512         Reviewed by Beth Dakin.
13513
13514         The various RenderLayer::paintLayer* functions took a lot of arguments, most
13515         of which were passed down directly to descendants.
13516         
13517         Gather these arguments into a LayerPaintingInfo struct.
13518
13519         * rendering/RenderLayer.cpp:
13520         (WebCore::RenderLayer::paint): Create a LayerPaintingInfo struct to pass
13521         to descendant paint calls.
13522         (WebCore::RenderLayer::paintOverlayScrollbars): Ditto.
13523         (WebCore::RenderLayer::paintLayer): When painting transformed layers, we
13524         make a new LayerPaintingInfo because the root layer is shifted.
13525         (WebCore::RenderLayer::paintLayerContentsAndReflection):
13526         (WebCore::RenderLayer::paintLayerContents):
13527         (WebCore::RenderLayer::paintList):
13528         (WebCore::RenderLayer::paintPaginatedChildLayer):
13529         (WebCore::RenderLayer::paintChildLayerIntoColumns): Create a new LayerPaintingInfo
13530         struct for column painting.
13531         * rendering/RenderLayer.h:
13532         (WebCore::RenderLayer::LayerPaintingInfo::LayerPaintingInfo):
13533         (LayerPaintingInfo):
13534         * rendering/RenderLayerBacking.cpp:
13535         (WebCore::RenderLayerBacking::paintIntoLayer): Build a LayerPaintingInfo
13536         to enter layer painting.
13537         * rendering/RenderReplica.cpp:
13538         (WebCore::RenderReplica::paint): Ditto.
13539
13540 2012-11-12  Brady Eidson  <beidson@apple.com>
13541
13542         NetworkProcess: Use an accurate shouldContentSniff value when creating ResourceHandles
13543         https://bugs.webkit.org/show_bug.cgi?id=101872
13544
13545         Reviewed by Alexey Proskuryakov.
13546
13547         Expose shouldSniffContent to pass it along to the NetworkProcess.
13548
13549         * loader/ResourceLoader.h:
13550         (WebCore::ResourceLoader::shouldSniffContent):
13551
13552 2012-11-12  Christophe Dumez  <christophe.dumez@intel.com>
13553
13554         Fix memory leak in createSurfaceForBackingStore()
13555         https://bugs.webkit.org/show_bug.cgi?id=101941
13556
13557         Reviewed by Kenneth Rohde Christiansen.
13558
13559         Fix memory leak in createSurfaceForBackingStore(),
13560         the RefPtr<cairo_surface_t> should be released
13561         when returned since we pass ownership to the
13562         caller.
13563
13564         No new tests, no behavior change for layout tests.
13565
13566         * platform/graphics/efl/CairoUtilitiesEfl.cpp:
13567         (WebCore::createSurfaceForBackingStore):
13568
13569 2012-11-12  Joe Mason  <jmason@rim.com>
13570
13571         [BlackBerry] Update to new proxyInfo API
13572         https://bugs.webkit.org/show_bug.cgi?id=101945
13573
13574         Reviewed by George Staikos.
13575
13576         Internal PR: 234680
13577         Reviewed internally by: Leo Yang
13578
13579         The proxyAddress, proxyUsername and proxyPassword methods in BlackBerry::Platform::Settings
13580         have been replaced with a single, more efficient proxyInfo method.
13581
13582         No new tests because this is an API update with no behaviour change.
13583
13584         * platform/network/blackberry/NetworkJob.cpp:
13585         (WebCore::NetworkJob::sendRequestWithCredentials):
13586         (WebCore::NetworkJob::storeCredentials):
13587
13588 2012-11-12  Sheriff Bot  <webkit.review.bot@gmail.com>
13589
13590         Unreviewed, rolling out r126157.
13591         http://trac.webkit.org/changeset/126157
13592         https://bugs.webkit.org/show_bug.cgi?id=101954
13593
13594         This patch caused (untestable) regression of the volume
13595         property on Mac, Win, and Blackberry ports. (Requested by
13596         jernoble on #webkit).
13597
13598         * platform/graphics/MediaPlayer.cpp:
13599         (WebCore::MediaPlayer::loadWithNextMediaEngine):
13600         (WebCore::MediaPlayer::setVolume):
13601         (WebCore::MediaPlayer::setMuted):
13602         (WebCore::MediaPlayer::setPreservesPitch):
13603         (WebCore::MediaPlayer::setSize):
13604         (WebCore::MediaPlayer::setVisible):
13605         (WebCore::MediaPlayer::setPreload):
13606
13607 2012-11-12  Arpita Bahuguna  <arpitabahuguna@gmail.com>
13608
13609         Specified width CSS tables should not include border and padding as part of that width.
13610         https://bugs.webkit.org/show_bug.cgi?id=77028
13611
13612         Reviewed by Julien Chaffraix.
13613
13614         CSS table width should not include border and padding even though HTML
13615         tables size as though their width includes border/padding.
13616
13617         This is applicable for all CSS tables with specified widths.
13618
13619         The change would also make our rendering of CSS tables with specified
13620         width similar to that of Opera, IE and FF.
13621
13622         Test: fast/table/css-table-width-with-border-padding.html
13623
13624         * rendering/RenderTable.cpp:
13625         (WebCore::RenderTable::convertStyleLogicalWidthToComputedWidth):
13626         Added check for all (positive) specified widths for CSS tables to
13627         consider border and padding outside of the specified width.
13628
13629 2012-11-12  Allan Sandfeld Jensen  <allan.jensen@digia.com>
13630
13631         Move resolving blob references to FormData.
13632         https://bugs.webkit.org/show_bug.cgi?id=101754
13633
13634         Reviewed by Simon Hausmann.
13635
13636         Resolving Blob-references to a set of just File and Data is done similar by several platforms.
13637         This patch adds a generic implementation in FormData and uses that from CFNetwork, Qt and
13638         BlackBerry network implementation.
13639
13640         * platform/network/FormData.cpp:
13641         (WebCore::appendBlobResolved):
13642         (WebCore::FormData::resolveBlobReferences):
13643         * platform/network/FormData.h:
13644         * platform/network/blackberry/ResourceRequestBlackBerry.cpp:
13645         (WebCore::ResourceRequest::initializePlatformRequest):
13646         * platform/network/cf/FormDataStreamCFNet.cpp:
13647         (WebCore::setHTTPBody):
13648         * platform/network/qt/QNetworkReplyHandler.cpp:
13649         (WebCore::FormDataIODevice::prepareFormElements):
13650
13651 2012-11-12  Zeno Albisser  <zeno@webkit.org>
13652
13653         GraphicsSurfaceGLX does not handle transparency correctly.
13654         https://bugs.webkit.org/show_bug.cgi?id=101943
13655
13656         GraphicsSurfacGLX must consistently use RGBA texture format.
13657         glXCreateWindow must be called after creating the XWindow
13658         that serves as a temporary offscreen texture storage, in order
13659         to allow for transparency.
13660         When creating the offscreen XWindow we must make sure,
13661         that we use a framebuffer configuration that supports
13662         an alpha mask.
13663
13664         Reviewed by Noam Rosenthal.
13665
13666         * platform/graphics/surfaces/qt/GraphicsSurfaceGLX.cpp:
13667         (WebCore):
13668         (WebCore::GraphicsSurfacePrivate::GraphicsSurfacePrivate):
13669         (WebCore::GraphicsSurfacePrivate::~GraphicsSurfacePrivate):
13670         (WebCore::GraphicsSurfacePrivate::createSurface):
13671         (GraphicsSurfacePrivate):
13672         (WebCore::GraphicsSurface::platformPaintToTextureMapper):
13673
13674 2012-11-12  Sheriff Bot  <webkit.review.bot@gmail.com>
13675
13676         Unreviewed, rolling out r134225.
13677         http://trac.webkit.org/changeset/134225
13678         https://bugs.webkit.org/show_bug.cgi?id=101948
13679
13680         Appears to have broken the EFL and GTK builds (Requested by
13681         abarth on #webkit).
13682
13683         * bindings/js/JSHTMLElementCustom.cpp:
13684         (WebCore):
13685         (WebCore::JSHTMLElement::itemValue):
13686         (WebCore::JSHTMLElement::setItemValue):
13687         * bindings/v8/custom/V8HTMLElementCustom.cpp:
13688         (WebCore):
13689         (WebCore::V8HTMLElement::itemValueAccessorGetter):
13690         (WebCore::V8HTMLElement::itemValueAccessorSetter):
13691         * html/HTMLElement.idl:
13692
13693 2012-11-12  Allan Sandfeld Jensen  <allan.jensen@digia.com>
13694
13695         hitTestResultAtPoint does two hit-tests if called on non main frame
13696         https://bugs.webkit.org/show_bug.cgi?id=101915
13697
13698         Reviewed by Antonio Gomes.
13699
13700         Always redirect hitTestResultAtPoint to the main-frame. This used to being
13701         done on every result that hit anything, which caused running the expensive 
13702         hit-tests multiple times in almost all cases.
13703
13704         * page/EventHandler.cpp:
13705         (WebCore::EventHandler::hitTestResultAtPoint):
13706
13707 2012-11-12  Kentaro Hara  <haraken@chromium.org>
13708
13709         [V8][JSC] ScriptProfileNode::callUID needs not to be [Custom]
13710         https://bugs.webkit.org/show_bug.cgi?id=101892
13711
13712         Reviewed by Adam Barth.
13713
13714         We can remove [Custom] from callUID in ScriptProfileNode.idl.
13715
13716         No tests. No change in behavior.
13717
13718         * GNUmakefile.list.am:
13719         * Target.pri:
13720         * UseJSC.cmake:
13721         * WebCore.gypi:
13722         * WebCore.vcproj/WebCore.vcproj:
13723         * WebCore.xcodeproj/project.pbxproj:
13724         * bindings/js/JSBindingsAllInOne.cpp:
13725         * bindings/js/JSScriptProfileNodeCustom.cpp: Removed.
13726         * bindings/v8/custom/V8ScriptProfileNodeCustom.cpp:
13727         * inspector/ScriptProfileNode.idl:
13728
13729 2012-11-12  Kentaro Hara  <haraken@chromium.org>
13730
13731         [V8] Performance::memory getter needs not to be [Custom]
13732         https://bugs.webkit.org/show_bug.cgi?id=101890
13733
13734         Reviewed by Adam Barth.
13735
13736         No tests. No change in behavior.
13737
13738         * UseV8.cmake:
13739         * WebCore.gypi:
13740         * bindings/v8/custom/V8PerformanceCustom.cpp: Removed.
13741         * page/Performance.idl:
13742
13743 2012-11-12  Kentaro Hara  <haraken@chromium.org>
13744
13745         [V8][JSC] HTMLOptionsCollection::length needs not to be [Custom]
13746         https://bugs.webkit.org/show_bug.cgi?id=101888
13747
13748         Reviewed by Adam Barth.
13749
13750         We can remove [Custom] from getter. It is possible to remove [Custom]
13751         from setter, but it changes the current behavior.
13752         (I think the current implementation of the setter is wrong.
13753         I'll fix it in another patch.)
13754
13755         No tests. No change in behavior.
13756
13757         * bindings/js/JSHTMLOptionsCollectionCustom.cpp:
13758         * bindings/v8/custom/V8HTMLOptionsCollectionCustom.cpp:
13759         * html/HTMLOptionsCollection.idl:
13760
13761 2012-11-12  Yael Aharon  <yael.aharon@intel.com>
13762
13763         [EFL][WK2][AC] Black screen when applications use software backend.
13764         https://bugs.webkit.org/show_bug.cgi?id=101659
13765
13766         Reviewed by Kenneth Rohde Christiansen.
13767
13768         Add a utility method to create a cairo_surface_t from a given Evas_Object_Image.
13769
13770         No new tests. Will be covered when running existing tests without enabling openGL.
13771
13772         * platform/graphics/efl/CairoUtilitiesEfl.cpp:
13773         (WebCore::createSurfaceForImage):
13774         (WebCore):
13775         * platform/graphics/efl/CairoUtilitiesEfl.h:
13776         (WebCore):
13777
13778 2012-11-12  Carlos Garcia Campos  <cgarcia@igalia.com>
13779
13780         Unreviewed. Fix make distcheck.
13781
13782         * GNUmakefile.am: Remove editing from IDL_PATH since it doesn't
13783         contain idl files anymore.
13784         * GNUmakefile.list.am: Add missing header files.
13785
13786 2012-11-12  Tommy Widenflycht  <tommyw@google.com>
13787
13788         MediaStream API: Make sure that MediaConstraints only has optional and mandatory at the top level
13789         https://bugs.webkit.org/show_bug.cgi?id=101733
13790
13791         Reviewed by Jochen Eisinger.
13792
13793         This patch adds better verification to MediaConstraintsImpl.
13794
13795         Existing tests expanded to cover this change.
13796
13797         * Modules/mediastream/MediaConstraintsImpl.cpp:
13798         (WebCore::MediaConstraintsImpl::initialize):
13799
13800 2012-11-12  Sheriff Bot  <webkit.review.bot@gmail.com>
13801
13802         Unreviewed, rolling out r134223.
13803         http://trac.webkit.org/changeset/134223
13804         https://bugs.webkit.org/show_bug.cgi?id=101939
13805
13806         Breaks inspector tests (Requested by pfeldman on #webkit).
13807
13808         * inspector/front-end/DefaultTextEditor.js:
13809         (WebInspector.TextEditorChunkedPanel.prototype._repaintAll):
13810         (WebInspector.TextEditorMainPanel):
13811         (WebInspector.TextEditorMainPanel.prototype.markAndRevealRange):
13812         (WebInspector.TextEditorMainPanel.prototype.beginDomUpdates):
13813         (WebInspector.TextEditorMainPanel.prototype.endDomUpdates):
13814         (WebInspector.TextEditorMainPanel.prototype._paintScheduledLines):
13815         (WebInspector.TextEditorMainPanel.prototype._paintLineChunks):
13816         (WebInspector.TextEditorMainPanel.prototype._paintLine):
13817         (WebInspector.TextEditorMainPanel.prototype._insertSpanBefore):
13818         (WebInspector.TextEditorMainPanel.prototype._handleDOMUpdates):
13819         (WebInspector.TextEditorMainPanel.prototype._applyDomUpdates):
13820         * inspector/front-end/externs.js:
13821         * inspector/front-end/textEditor.css:
13822
13823 2012-11-12  Allan Sandfeld Jensen  <allan.jensen@digia.com>
13824
13825         [Qt] Support ResourceRequest's setTimeoutInterval
13826         https://bugs.webkit.org/show_bug.cgi?id=101731
13827
13828         Reviewed by Simon Hausmann.
13829
13830         Establish a timeout and return the correct error when it is triggered.
13831
13832         Tested by existing http/tests/xmlhttprequest/timeout tests.
13833
13834         * platform/network/ResourceRequestBase.cpp:
13835         * platform/network/qt/QNetworkReplyHandler.cpp:
13836         (WebCore::QNetworkReplyHandler::release):
13837         (WebCore::QNetworkReplyHandler::finish):
13838         (WebCore::QNetworkReplyHandler::timeout):
13839         (WebCore::QNetworkReplyHandler::timerEvent):
13840         (WebCore::QNetworkReplyHandler::start):
13841         * platform/network/qt/QNetworkReplyHandler.h:
13842         (QNetworkReplyHandler):
13843
13844 2012-11-12  Sheriff Bot  <webkit.review.bot@gmail.com>
13845
13846         Unreviewed, rolling out r134224.
13847         http://trac.webkit.org/changeset/134224
13848         https://bugs.webkit.org/show_bug.cgi?id=101937
13849
13850         asserting on bawts (Requested by kling on #webkit).
13851
13852         * rendering/style/RenderStyle.cpp:
13853         (WebCore::RenderStyle::diff):
13854         (WebCore::RenderStyle::setColor):
13855         (WebCore::RenderStyle::setVisitedLinkColor):
13856         * rendering/style/RenderStyle.h:
13857         * rendering/style/StyleBackgroundData.cpp:
13858         (WebCore::StyleBackgroundData::StyleBackgroundData):
13859         * rendering/style/StyleBackgroundData.h:
13860         (WebCore::StyleBackgroundData::color):
13861         (StyleBackgroundData):
13862         * rendering/style/StyleInheritedData.cpp:
13863         (WebCore::StyleInheritedData::StyleInheritedData):
13864         * rendering/style/StyleInheritedData.h:
13865         (StyleInheritedData):
13866         * rendering/style/StyleMultiColData.cpp:
13867         (WebCore::StyleMultiColData::StyleMultiColData):
13868         * rendering/style/StyleMultiColData.h:
13869         (StyleMultiColData):
13870         * rendering/style/StyleRareInheritedData.cpp:
13871         (SameSizeAsStyleRareInheritedData):
13872         (WebCore::StyleRareInheritedData::StyleRareInheritedData):
13873         (WebCore::StyleRareInheritedData::operator==):
13874         * rendering/style/StyleRareInheritedData.h:
13875         (WebCore):
13876         (StyleRareInheritedData):
13877         * rendering/style/StyleRareNonInheritedData.cpp:
13878         (WebCore::StyleRareNonInheritedData::StyleRareNonInheritedData):
13879         (WebCore::StyleRareNonInheritedData::operator==):
13880         * rendering/style/StyleRareNonInheritedData.h:
13881         (StyleRareNonInheritedData):
13882
13883 2012-11-12  Tiancheng Jiang  <tijiang@rim.com>
13884
13885         [BlackBerry] Update BB10 form theme.
13886         https://bugs.webkit.org/show_bug.cgi?id=100760
13887
13888         Reviewed by Rob Buis.
13889
13890         RIM PR 236993
13891         Internally Reviewed by Jeff Rogers.
13892         Use slide and paint method on slider range and media controls.
13893
13894         * platform/blackberry/RenderThemeBlackBerry.cpp:
13895         (WebCore):
13896         (WebCore::drawThreeSliceHorizontal):
13897         (WebCore::drawThreeSliceVertical):
13898         (WebCore::RenderThemeBlackBerry::paintSliderTrackRect):
13899         (WebCore::RenderThemeBlackBerry::paintMediaSliderTrack):
13900         (WebCore::RenderThemeBlackBerry::paintMediaSliderThumb):
13901         (WebCore::RenderThemeBlackBerry::paintMediaVolumeSliderTrack):
13902         * platform/blackberry/RenderThemeBlackBerry.h:
13903         (RenderThemeBlackBerry):
13904
13905 2012-11-12  Kent Tamura  <tkent@chromium.org>
13906
13907         Refactoring: set read-only values on layout in DateTimeEditElement
13908         https://bugs.webkit.org/show_bug.cgi?id=101916
13909
13910         Reviewed by Kentaro Hara.
13911
13912         We have always updated read-only values when we set an empty value or
13913         DateTimeFieldsState. It has wasted CPU time because such read-only
13914         values are never updated after layout() essentially. So, we set
13915         read-only values in DateTimeEditBuilder used by layout(), and remove
13916         dateForReadOnlyField arguments of setEmptyValue and
13917         setValueAsDateTimeFieldsState.
13918
13919         No new tests. This should not make behavior changes.
13920
13921         * html/BaseMultipleFieldsDateAndTimeInputType.cpp:
13922         (WebCore::BaseMultipleFieldsDateAndTimeInputType::restoreFormControlState):
13923         We removed dateForReadOnlyField argument because read-only values are
13924         already set in DateTimeFieldElement::layout().
13925         * html/shadow/DateTimeEditElement.cpp:
13926         (WebCore::DateTimeEditBuilder::visitField):
13927         Set a value to a read-only minute/second/millisecond field while
13928         building UI elements.
13929         Also, changed variable types for millisecond and second fields to
13930         RefPtr<DateTimeNumericFieldElement> because we'd like to call
13931         setValueAsDate, which is private in DateTimeMillisecondFieldElement and
13932         DateTimeSecondFieldElement
13933         (WebCore::DateTimeEditElement::setValueAsDateTimeFieldsState):
13934         We removed dateForReadOnlyField argument because read-only values are
13935         already set in DateTimeFieldElement::layout().
13936         (WebCore::DateTimeEditElement::setEmptyValue): Ditto.
13937         * html/shadow/DateTimeEditElement.h:
13938         (DateTimeEditElement):
13939         Removed dateForReadOnlyField argument for setValueAsDateTimeFieldsState.
13940
13941         * html/shadow/DateTimeFieldElement.cpp:
13942         (WebCore::DateTimeFieldElement::defaultKeyboardEventHandler):
13943         We removed dateForReadOnlyField argument because read-only values are
13944         already set in DateTimeFieldElement::layout().
13945         * html/shadow/DateTimeFieldElement.h:
13946         (DateTimeFieldElement): Ditto.
13947
13948         * html/shadow/DateTimeFieldElements.cpp: Ditto.
13949         * html/shadow/DateTimeFieldElements.h: Ditto.
13950         * html/shadow/DateTimeNumericFieldElement.cpp:
13951         (WebCore::DateTimeNumericFieldElement::setEmptyValue):
13952         It should do nothing if it is read-only because a read-only value was
13953         already set just after construction.
13954         * html/shadow/DateTimeNumericFieldElement.h:
13955         (DateTimeNumericFieldElement):
13956         Removed dateForReadOnlyField argument of setEmptyValue.
13957         * html/shadow/DateTimeSymbolicFieldElement.cpp:
13958         (WebCore::DateTimeSymbolicFieldElement::setEmptyValue): Ditto.
13959         * html/shadow/DateTimeSymbolicFieldElement.h:
13960         (DateTimeSymbolicFieldElement): Ditto.
13961
13962 2012-11-12  Tiancheng Jiang  <tijiang@rim.com>
13963
13964         [BlackBerry] Update BB10 form theme.
13965         https://bugs.webkit.org/show_bug.cgi?id=100760
13966
13967         Reviewed by Rob Buis.
13968
13969         RIM PR 236993
13970         Internally Reviewed by Jeff Rogers.
13971         Enable GL slider.
13972
13973         * platform/blackberry/RenderThemeBlackBerry.cpp:
13974         (WebCore::drawThreeSlice):
13975         (WebCore):
13976         (WebCore::RenderThemeBlackBerry::paintSliderTrackRect):
13977         (WebCore::RenderThemeBlackBerry::paintSliderThumb):
13978
13979 2012-11-12  Kentaro Hara  <haraken@chromium.org>
13980
13981         [V8][JSC] HTMLElement::itemValue() needs not to be custom
13982         https://bugs.webkit.org/show_bug.cgi?id=101882
13983
13984         Reviewed by Adam Barth.
13985
13986         We can remove a [Custom] IDL attribute.
13987
13988         No tests. No change in behavior.
13989
13990         * bindings/js/JSHTMLElementCustom.cpp:
13991         * bindings/v8/custom/V8HTMLElementCustom.cpp:
13992         * html/HTMLElement.idl:
13993
13994 2012-11-12  Andreas Kling  <kling@webkit.org>
13995
13996         RenderStyle: Pack Color members tighter in substructures.
13997         <http://webkit.org/b/101860>
13998
13999         Reviewed by Antti Koivisto.
14000
14001         For RenderStyle substructures (StyleInheritedData, et al.), unfold all WebCore::Color
14002         members into RGBA32/bool variables OR just an RGBA32 if the color can never be invalid.
14003
14004         Memory saved per instance:
14005
14006             - StyleMultiColData:          4 bytes
14007             - StyleBackgroundData:        8 bytes
14008             - StyleInheritedData:         8 bytes
14009             - StyleRareInheritedData:    24 bytes
14010             - StyleRareNonInheritedData: 24 bytes
14011
14012         323kB progression on Membuster3.
14013
14014         * rendering/style/RenderStyle.cpp:
14015         (WebCore::RenderStyle::diff):
14016         (WebCore::RenderStyle::setColor):
14017         (WebCore::RenderStyle::setVisitedLinkColor):
14018         (WebCore::RenderStyle::setVisitedLinkColumnRuleColor):
14019         (WebCore::RenderStyle::setBackgroundColor):
14020         * rendering/style/RenderStyle.h:
14021         * rendering/style/StyleBackgroundData.cpp:
14022         (WebCore::StyleBackgroundData::StyleBackgroundData):
14023         * rendering/style/StyleBackgroundData.h:
14024         (WebCore::StyleBackgroundData::color):
14025         (StyleBackgroundData):
14026         * rendering/style/StyleInheritedData.cpp:
14027         (WebCore::StyleInheritedData::StyleInheritedData):
14028         * rendering/style/StyleInheritedData.h:
14029         (StyleInheritedData):
14030         * rendering/style/StyleMultiColData.cpp:
14031         (WebCore::StyleMultiColData::StyleMultiColData):
14032         (WebCore::StyleMultiColData::setVisitedLinkColumnRuleColor):
14033         * rendering/style/StyleMultiColData.h:
14034         (StyleMultiColData):
14035         (WebCore::StyleMultiColData::visitedLinkColumnRuleColor):
14036         * rendering/style/StyleRareInheritedData.cpp:
14037         (SameSizeAsStyleRareInheritedData):
14038         (WebCore::StyleRareInheritedData::StyleRareInheritedData):
14039         (WebCore::StyleRareInheritedData::operator==):
14040         (WebCore::StyleRareInheritedData::setTextStrokeColor):
14041         (WebCore::StyleRareInheritedData::setTextFillColor):
14042         (WebCore::StyleRareInheritedData::setTextEmphasisColor):
14043         (WebCore::StyleRareInheritedData::setVisitedLinkTextStrokeColor):
14044         (WebCore::StyleRareInheritedData::setVisitedLinkTextFillColor):
14045         (WebCore::StyleRareInheritedData::setVisitedLinkTextEmphasisColor):
14046         * rendering/style/StyleRareInheritedData.h:
14047         (StyleRareInheritedData):
14048         (WebCore::StyleRareInheritedData::textStrokeColor):
14049         (WebCore::StyleRareInheritedData::textFillColor):
14050         (WebCore::StyleRareInheritedData::textEmphasisColor):
14051         (WebCore::StyleRareInheritedData::visitedLinkTextStrokeColor):
14052         (WebCore::StyleRareInheritedData::visitedLinkTextFillColor):
14053         (WebCore::StyleRareInheritedData::visitedLinkTextEmphasisColor):
14054         * rendering/style/StyleRareNonInheritedData.cpp:
14055         (WebCore::StyleRareNonInheritedData::StyleRareNonInheritedData):
14056         (WebCore::StyleRareNonInheritedData::operator==):
14057         (WebCore::StyleRareNonInheritedData::setVisitedLinkBorderLeftColor):
14058         (WebCore::StyleRareNonInheritedData::setVisitedLinkBorderRightColor):
14059         (WebCore::StyleRareNonInheritedData::setVisitedLinkBorderTopColor):
14060         (WebCore::StyleRareNonInheritedData::setVisitedLinkBorderBottomColor):
14061         (WebCore::StyleRareNonInheritedData::setVisitedLinkOutlineColor):
14062         (WebCore::StyleRareNonInheritedData::setVisitedLinkBackgroundColor):
14063         * rendering/style/StyleRareNonInheritedData.h:
14064         (WebCore::StyleRareNonInheritedData::visitedLinkBackgroundColor):
14065         (WebCore::StyleRareNonInheritedData::visitedLinkOutlineColor):
14066         (WebCore::StyleRareNonInheritedData::visitedLinkBorderLeftColor):
14067         (WebCore::StyleRareNonInheritedData::visitedLinkBorderRightColor):
14068         (WebCore::StyleRareNonInheritedData::visitedLinkBorderTopColor):
14069         (WebCore::StyleRareNonInheritedData::visitedLinkBorderBottomColor):
14070         (StyleRareNonInheritedData):
14071
14072 2012-11-12  Pavel Feldman  <pfeldman@chromium.org>
14073
14074         Web Inspector: migrate text editor to mutation observers
14075         https://bugs.webkit.org/show_bug.cgi?id=101841
14076
14077         Reviewed by Vsevolod Vlasov.
14078
14079         Otherwise, we miss notifications on the removed lines.
14080
14081         * inspector/front-end/DefaultTextEditor.js:
14082         (WebInspector.TextEditorMainPanel):
14083         (WebInspector.TextEditorMainPanel.prototype.beginDomUpdates):
14084         (WebInspector.TextEditorMainPanel.prototype.endDomUpdates):
14085         (WebInspector.TextEditorMainPanel.prototype._handleMutations):
14086         (WebInspector.TextEditorMainPanel.prototype._handleMutation):
14087         * inspector/front-end/externs.js:
14088         (WebKitMutation):
14089         (WebKitMutationObserver.prototype.observe):
14090         (WebKitMutationObserver.prototype.disconnect):
14091
14092 2012-11-12  Allan Sandfeld Jensen  <sandfeld@kde.org>
14093
14094         [Qt] Flash-plugin starts with wrong width
14095         https://bugs.webkit.org/show_bug.cgi?id=101836
14096
14097         Reviewed by Simon Hausmann.
14098
14099         Defer the setWindow call, so that the one time it is called it will have its final size.
14100
14101         * plugins/PluginPackage.cpp:
14102         (WebCore::PluginPackage::determineQuirks):
14103
14104 2012-11-12  Tommy Widenflycht  <tommyw@google.com>
14105
14106         Remove the V8 custom code for WebSockets constructor
14107         https://bugs.webkit.org/show_bug.cgi?id=100801
14108
14109         Reviewed by Kentaro Hara.
14110
14111         This patch does the following:
14112
14113         1) Modifies the V8 code generator to support overloaded constructors,
14114            the JS generator is fixed to work as before. Proper support for JS will come later.
14115
14116         2) Modifies WebSocket.h/.cpp for the new constructors.
14117
14118         Tested by running WebSockets layout tests.
14119
14120         * Modules/websockets/WebSocket.cpp:
14121         (WebCore::WebSocket::create):
14122         (WebCore):
14123         * Modules/websockets/WebSocket.h:
14124         (WebSocket):
14125         * Modules/websockets/WebSocket.idl:
14126         * bindings/scripts/CodeGeneratorJS.pm:
14127         (GenerateConstructorDefinition):
14128         * bindings/scripts/CodeGeneratorV8.pm:
14129         (GenerateHeader):
14130         (GenerateOverloadedConstructorCallback):
14131         (GenerateSingleConstructorCallback):
14132         (GenerateConstructorCallback):
14133         (GenerateImplementation):
14134         * bindings/scripts/IDLParser.pm:
14135         (copyAttributes):
14136         (parseExtendedAttributeList):
14137         (parseExtendedAttributes):
14138         (applyExtendedAttributeList):
14139         * bindings/scripts/IDLStructure.pm:
14140         * bindings/scripts/test/CPP/WebDOMTestOverloadedConstructors.cpp: Added.
14141         (WebDOMTestOverloadedConstructors::WebDOMTestOverloadedConstructorsPrivate::WebDOMTestOverloadedConstructorsPrivate):
14142         (WebDOMTestOverloadedConstructors::WebDOMTestOverloadedConstructorsPrivate):
14143         (WebDOMTestOverloadedConstructors::WebDOMTestOverloadedConstructors):
14144         (WebDOMTestOverloadedConstructors::operator=):
14145         (WebDOMTestOverloadedConstructors::impl):
14146         (WebDOMTestOverloadedConstructors::~WebDOMTestOverloadedConstructors):
14147         (toWebCore):
14148         (toWebKit):
14149         * bindings/scripts/test/CPP/WebDOMTestOverloadedConstructors.h: Added.
14150         (WebCore):
14151         (WebDOMTestOverloadedConstructors):
14152         * bindings/scripts/test/GObject/WebKitDOMTestOverloadedConstructors.cpp: Added.
14153         (WebKit):
14154         (WebKit::kit):
14155         (WebKit::core):
14156         (WebKit::wrapTestOverloadedConstructors):
14157         (webkit_dom_test_overloaded_constructors_finalize):
14158         (webkit_dom_test_overloaded_constructors_set_property):
14159         (webkit_dom_test_overloaded_constructors_get_property):
14160         (webkit_dom_test_overloaded_constructors_constructed):
14161         (webkit_dom_test_overloaded_constructors_class_init):
14162         (webkit_dom_test_overloaded_constructors_init):
14163         * bindings/scripts/test/GObject/WebKitDOMTestOverloadedConstructors.h: Added.
14164         (_WebKitDOMTestOverloadedConstructors):
14165         (_WebKitDOMTestOverloadedConstructorsClass):
14166         * bindings/scripts/test/GObject/WebKitDOMTestOverloadedConstructorsPrivate.h: Added.
14167         (WebKit):
14168         * bindings/scripts/test/JS/JSTestOverloadedConstructors.cpp: Added.
14169         (WebCore):
14170         (WebCore::JSTestOverloadedConstructorsConstructor::JSTestOverloadedConstructorsConstructor):
14171         (WebCore::JSTestOverloadedConstructorsConstructor::finishCreation):
14172         (WebCore::JSTestOverloadedConstructorsConstructor::getOwnPropertySlot):
14173         (WebCore::JSTestOverloadedConstructorsConstructor::getOwnPropertyDescriptor):
14174         (WebCore::JSTestOverloadedConstructorsConstructor::constructJSTestOverloadedConstructors):
14175         (WebCore::JSTestOverloadedConstructorsConstructor::getConstructData):
14176         (WebCore::JSTestOverloadedConstructorsPrototype::self):
14177         (WebCore::JSTestOverloadedConstructors::JSTestOverloadedConstructors):
14178         (WebCore::JSTestOverloadedConstructors::finishCreation):
14179         (WebCore::JSTestOverloadedConstructors::createPrototype):
14180         (WebCore::JSTestOverloadedConstructors::destroy):
14181         (WebCore::JSTestOverloadedConstructors::~JSTestOverloadedConstructors):
14182         (WebCore::JSTestOverloadedConstructors::getOwnPropertySlot):
14183         (WebCore::JSTestOverloadedConstructors::getOwnPropertyDescriptor):
14184         (WebCore::jsTestOverloadedConstructorsConstructor):
14185         (WebCore::JSTestOverloadedConstructors::getConstructor):
14186         (WebCore::isObservable):
14187         (WebCore::JSTestOverloadedConstructorsOwner::isReachableFromOpaqueRoots):
14188         (WebCore::JSTestOverloadedConstructorsOwner::finalize):
14189         (WebCore::toJS):
14190         (WebCore::toTestOverloadedConstructors):
14191         * bindings/scripts/test/JS/JSTestOverloadedConstructors.h: Added.
14192         (WebCore):
14193         (JSTestOverloadedConstructors):
14194         (WebCore::JSTestOverloadedConstructors::create):
14195         (WebCore::JSTestOverloadedConstructors::createStructure):
14196         (WebCore::JSTestOverloadedConstructors::impl):
14197         (WebCore::JSTestOverloadedConstructors::releaseImpl):
14198         (WebCore::JSTestOverloadedConstructors::releaseImplIfNotNull):
14199         (JSTestOverloadedConstructorsOwner):
14200         (WebCore::wrapperOwner):
14201         (WebCore::wrapperContext):
14202         (JSTestOverloadedConstructorsPrototype):
14203         (WebCore::JSTestOverloadedConstructorsPrototype::create):
14204         (WebCore::JSTestOverloadedConstructorsPrototype::createStructure):
14205         (WebCore::JSTestOverloadedConstructorsPrototype::JSTestOverloadedConstructorsPrototype):
14206         (JSTestOverloadedConstructorsConstructor):
14207         (WebCore::JSTestOverloadedConstructorsConstructor::create):
14208         (WebCore::JSTestOverloadedConstructorsConstructor::createStructure):
14209         * bindings/scripts/test/ObjC/DOMTestOverloadedConstructors.h: Added.
14210         * bindings/scripts/test/ObjC/DOMTestOverloadedConstructors.mm: Added.
14211         (-[DOMTestOverloadedConstructors dealloc]):
14212         (-[DOMTestOverloadedConstructors finalize]):
14213         (core):
14214         (kit):
14215         * bindings/scripts/test/ObjC/DOMTestOverloadedConstructorsInternal.h: Added.
14216         (WebCore):
14217         * bindings/scripts/test/TestOverloadedConstructors.idl: Copied from Source/WebCore/bindings/scripts/test/TestSerializedScriptValueInterface.idl.
14218         * bindings/scripts/test/TestSerializedScriptValueInterface.idl:
14219         * bindings/scripts/test/V8/V8TestOverloadedConstructors.cpp: Added.
14220         (WebCore):
14221         (TestOverloadedConstructorsV8Internal):
14222         (WebCore::TestOverloadedConstructorsV8Internal::V8_USE):
14223         (WebCore::V8TestOverloadedConstructors::constructor1Callback):
14224         (WebCore::V8TestOverloadedConstructors::constructor2Callback):
14225         (WebCore::V8TestOverloadedConstructors::constructor3Callback):
14226         (WebCore::V8TestOverloadedConstructors::constructor4Callback):
14227         (WebCore::V8TestOverloadedConstructors::constructorCallback):
14228         (WebCore::ConfigureV8TestOverloadedConstructorsTemplate):
14229         (WebCore::V8TestOverloadedConstructors::GetRawTemplate):
14230         (WebCore::V8TestOverloadedConstructors::GetTemplate):
14231         (WebCore::V8TestOverloadedConstructors::HasInstance):
14232         (WebCore::V8TestOverloadedConstructors::wrapSlow):
14233         (WebCore::V8TestOverloadedConstructors::derefObject):
14234         * bindings/scripts/test/V8/V8TestOverloadedConstructors.h: Added.
14235         (WebCore):
14236         (V8TestOverloadedConstructors):
14237         (WebCore::V8TestOverloadedConstructors::toNative):
14238         (WebCore::V8TestOverloadedConstructors::installPerContextProperties):
14239         (WebCore::V8TestOverloadedConstructors::installPerContextPrototypeProperties):
14240         (WebCore::V8TestOverloadedConstructors::wrap):
14241         (WebCore::toV8):
14242         * bindings/v8/custom/V8WebSocketCustom.cpp:
14243
14244 2012-11-12  Shinya Kawanaka  <shinyak@chromium.org>
14245
14246         [Refactoring] Create SelectRuleFeatureSet for collecting RuleFeatureSet for select attribute
14247         https://bugs.webkit.org/show_bug.cgi?id=101891
14248
14249         Reviewed by Hajime Morita.
14250
14251         We would like to have another class for RuleFeatureSet to collect 'select' attribute features,
14252         since it will have more features than the original RuleFeatureSet has.
14253
14254         Also, some methods of ElementShadow are removed and we provide a method to get SelectRuleFeatureSet itself.
14255
14256         No new tests, no change in behavior.
14257
14258         * CMakeLists.txt:
14259         * GNUmakefile.list.am:
14260         * Target.pri:
14261         * WebCore.gypi:
14262         * WebCore.vcproj/WebCore.vcproj:
14263         * WebCore.xcodeproj/project.pbxproj:
14264         * dom/ElementShadow.h:
14265         (ElementShadow):
14266         (WebCore::ElementShadow::selectRuleFeatureSet):
14267         (WebCore):
14268         * html/shadow/SelectRuleFeatureSet.cpp: Added.
14269         (WebCore):
14270         (WebCore::SelectRuleFeatureSet::SelectRuleFeatureSet):
14271         (WebCore::SelectRuleFeatureSet::add):
14272         (WebCore::SelectRuleFeatureSet::clear):
14273         (WebCore::SelectRuleFeatureSet::collectFeaturesFromSelector):
14274         * html/shadow/SelectRuleFeatureSet.h: Added.
14275         (WebCore):
14276         (SelectRuleFeatureSet):
14277         (WebCore::SelectRuleFeatureSet::hasSelectorForId):
14278         (WebCore::SelectRuleFeatureSet::hasSelectorForClass):
14279         (WebCore::SelectRuleFeatureSet::hasSelectorForAttribute):
14280         * testing/Internals.cpp:
14281         (WebCore::Internals::hasSelectorForIdInShadow):
14282         (WebCore::Internals::hasSelectorForClassInShadow):
14283         (WebCore::Internals::hasSelectorForAttributeInShadow):
14284
14285 2012-11-13  Keishi Hattori  <keishi@webkit.org>
14286
14287         Build fix for Chromium Android (caused by r134216)
14288
14289         Unreviewed.
14290
14291         No new tests.
14292
14293         * platform/text/PlatformLocale.cpp:
14294         (WebCore::Locale::formatDateTime):
14295
14296 2012-11-12  Keishi Hattori  <keishi@webkit.org>
14297
14298         Add support for week/month to Locale::formatDateTime()
14299         https://bugs.webkit.org/show_bug.cgi?id=101878
14300
14301         Reviewed by Kent Tamura.
14302
14303         Adding support for week/month to Locale::formatDateTime() in preparation for datalist support for <input type=week/month>.
14304
14305         Added Chromium tests LocaleMacTest.formatWeek and LocaleMacTest.formatMonth.
14306
14307         * platform/text/PlatformLocale.cpp:
14308         (WebCore::DateTimeStringBuilder::visitField):
14309         (WebCore::Locale::formatDateTime): Support week and month types.
14310
14311 2012-11-12  Allan Sandfeld Jensen  <allan.jensen@digia.com>
14312
14313         [Qt] Can not load MHTML documents
14314         https://bugs.webkit.org/show_bug.cgi?id=101765
14315
14316         Reviewed by Simon Hausmann.
14317
14318         Recognize common MHTML extensions so that we can recognize MHTML tests on the file-system.
14319
14320         Tested by existing mhtml/ tests.
14321
14322         * platform/qt/MIMETypeRegistryQt.cpp:
14323         (WebCore):
14324
14325 2012-11-12  Andreas Kling  <akling@apple.com>
14326
14327         Tighten vector in ResourceRequestBase::setResponseContentDispositionEncodingFallbackArray().
14328         <http://webkit.org/b/101850>
14329
14330         Reviewed by Antti Koivisto.
14331
14332         Reserve the exact amount of space needed for m_responseContentDispositionEncodingFallbackArray.
14333         222kB progression on Membuster3.
14334
14335         * platform/network/ResourceRequestBase.cpp:
14336         (WebCore::ResourceRequestBase::setResponseContentDispositionEncodingFallbackArray):
14337
14338 2012-11-12  Tommy Widenflycht  <tommyw@google.com>
14339
14340         MediaStream API: Schedule the RTCDataChannel events to be triggered at idle state
14341         https://bugs.webkit.org/show_bug.cgi?id=101751
14342
14343         Reviewed by Adam Barth.
14344
14345         This patch queues the events until the JS interpreter is in an idle state.
14346
14347         Existing tests cover this patch.
14348
14349         * Modules/mediastream/RTCDataChannel.cpp:
14350         (WebCore::RTCDataChannel::RTCDataChannel):
14351         (WebCore::RTCDataChannel::readyStateChanged):
14352         (WebCore::RTCDataChannel::dataArrived):
14353         (WebCore::RTCDataChannel::error):
14354         (WebCore::RTCDataChannel::scheduleDispatchEvent):
14355         (WebCore):
14356         (WebCore::RTCDataChannel::scheduledEventTimerFired):
14357         * Modules/mediastream/RTCDataChannel.h:
14358         (RTCDataChannel):
14359         * platform/chromium/support/WebRTCDataChannel.cpp:
14360         (WebKit::WebRTCDataChannel::setBufferedAmount):
14361         (WebKit::WebRTCDataChannel::readyStateChanged):
14362         (WebKit::WebRTCDataChannel::dataArrived):
14363         (WebKit::WebRTCDataChannel::error):
14364
14365 2012-11-12  Kunihiko Sakamoto  <ksakamoto@chromium.org>
14366
14367         Remove HTMLInputElement dependency from PickerIndicatorElement
14368         https://bugs.webkit.org/show_bug.cgi?id=101913
14369
14370         Reviewed by Kent Tamura.
14371
14372         Introduced PickerIndicatorOwner interface that replaces the role of hostInput() in
14373         PickerIndicatorElement. It makes easier to add interactions between picker indicator
14374         and its owner without having to add functions to HTMLInputElement.
14375
14376         No new tests. This is just a refactor.
14377
14378         * html/BaseMultipleFieldsDateAndTimeInputType.cpp:
14379         (WebCore::BaseMultipleFieldsDateAndTimeInputType::isPickerIndicatorOwnerDisabledOrReadOnly): Added.
14380         (WebCore):
14381         (WebCore::BaseMultipleFieldsDateAndTimeInputType::pickerIndicatorChooseValue): Added.
14382         (WebCore::BaseMultipleFieldsDateAndTimeInputType::setupDateTimeChooserParameters): Added.
14383         (WebCore::BaseMultipleFieldsDateAndTimeInputType::~BaseMultipleFieldsDateAndTimeInputType):
14384         (WebCore::BaseMultipleFieldsDateAndTimeInputType::createShadowSubtree):
14385         (WebCore::BaseMultipleFieldsDateAndTimeInputType::destroyShadowSubtree):
14386         * html/BaseMultipleFieldsDateAndTimeInputType.h:
14387         (WebCore):
14388         (BaseMultipleFieldsDateAndTimeInputType): Implements PickerIndicatorOwner.
14389         * html/shadow/PickerIndicatorElement.cpp: Replaced all the use of hostInput() by using PickerIndicatorOwner.
14390         (WebCore::PickerIndicatorElement::PickerIndicatorElement):
14391         (WebCore::PickerIndicatorElement::create):
14392         (WebCore::PickerIndicatorElement::defaultEventHandler):
14393         (WebCore::PickerIndicatorElement::willRespondToMouseClickEvents):
14394         (WebCore::PickerIndicatorElement::didChooseValue):
14395         (WebCore::PickerIndicatorElement::openPopup):
14396         * html/shadow/PickerIndicatorElement.h:
14397         (PickerIndicatorElement): Added a PickerIndicatorOwner member.
14398         (PickerIndicatorOwner): An interface class for communicating picker indicator and its owner.
14399         (WebCore::PickerIndicatorElement::PickerIndicatorOwner::~PickerIndicatorOwner):
14400         (WebCore::PickerIndicatorElement::removePickerIndicatorOwner):
14401
14402 2012-11-12  Mihnea Ovidenie  <mihnea@adobe.com>
14403
14404         [CSSRegions]Add support for text-shadow in region styling
14405         https://bugs.webkit.org/show_bug.cgi?id=94472
14406
14407         Reviewed by David Hyatt.
14408
14409         Original patch by Andrei Onea.
14410         Add support for text-shadow in region styling (@-webkit-region rule).
14411         In addition to the previously supported region styling properties (background-color and color),
14412         text-shadow requires the computation of an element style in region at layout time.
14413
14414         This patch adds a new method on RenderRegion - ensureRegionStyleForObject - that
14415         can be used to retrieve the object style in region (if already cached) or to compute it
14416         on the spot. When computing the object style in region, we need to compute the style in region
14417         also for the object ancestor, up to the content nodes.
14418
14419         This patch also refactors the way styles in region are computed and stored, because
14420         we can compute the style in region not only at paint time, but also at layout time.
14421
14422         Test: fast/regions/region-style-text-shadow.html
14423
14424         * css/StyleResolver.cpp:
14425         (WebCore::StyleResolver::isValidRegionStyleProperty):
14426         Allow text-shadow to be used in region styling.
14427         * rendering/InlineBox.cpp:
14428         (WebCore::InlineBox::styleInRegion):
14429         Retrieve the region style for an InlineBox's renderer, given its RenderRegion.
14430         Compute the style in region if not computed yet.
14431         (WebCore::InlineBox::regionDuringLayout):
14432         Retrieve the region in which an InlineBox is being flowed.
14433         * rendering/InlineBox.h:
14434         * rendering/InlineFlowBox.cpp: Take region styling into account.
14435         (WebCore::InlineFlowBox::addToLine):
14436         (WebCore::InlineFlowBox::addTextBoxVisualOverflow):
14437         * rendering/RenderRegion.cpp:
14438         (WebCore::RenderRegion::setRegionObjectsRegionStyle):
14439         (WebCore::canCacheObjectStyleInRegion):
14440         Test if we can cache the computed style in region.
14441         (WebCore::RenderRegion::restoreRegionObjectsOriginalStyle):
14442         (WebCore::RenderRegion::computeStyleInRegion):
14443         (WebCore::RenderRegion::setChildrenStyleInRegion):
14444         (WebCore::setObjectHasBoxDecorationsFlag):
14445         (WebCore::RenderRegion::setObjectStyleInRegion):
14446         (WebCore::RenderRegion::clearObjectStyleInRegion):
14447         (WebCore::RenderRegion::ensureRegionStyleForObject):
14448         * rendering/RenderRegion.h:
14449
14450 2012-11-12  Sheriff Bot  <webkit.review.bot@gmail.com>
14451
14452         Unreviewed, rolling out r134154.
14453         http://trac.webkit.org/changeset/134154
14454         https://bugs.webkit.org/show_bug.cgi?id=101919
14455
14456         Causes plenty of crashes on GTK and Apple Win builders
14457         (Requested by zdobersek on #webkit).
14458
14459         * css/mediaControls.css:
14460         * css/mediaControlsQuickTime.css:
14461         (audio::-webkit-media-controls-toggle-closed-captions-button, video::-webkit-media-controls-toggle-closed-captions-button):
14462         (audio::-webkit-media-controls-volume-slider-mute-button, video::-webkit-media-controls-volume-slider-mute-button):
14463         * html/shadow/MediaControlElements.cpp:
14464         (WebCore::MediaControlToggleClosedCaptionsButtonElement::MediaControlToggleClosedCaptionsButtonElement):
14465         (WebCore::MediaControlToggleClosedCaptionsButtonElement::create):
14466         (WebCore::MediaControlToggleClosedCaptionsButtonElement::defaultEventHandler):
14467         (WebCore::MediaControlToggleClosedCaptionsButtonElement::updateDisplayType):
14468         (WebCore::MediaControlToggleClosedCaptionsButtonElement::shadowPseudoId):
14469         * html/shadow/MediaControlElements.h:
14470         (MediaControlElement):
14471         (MediaControlToggleClosedCaptionsButtonElement):
14472         * html/shadow/MediaControlRootElement.cpp:
14473         (WebCore::MediaControlRootElement::MediaControlRootElement):
14474         (WebCore::MediaControlRootElement::create):
14475         (WebCore::MediaControlRootElement::setMediaController):
14476         (WebCore::MediaControlRootElement::hide):
14477         (WebCore::MediaControlRootElement::makeTransparent):
14478         (WebCore::MediaControlRootElement::reset):
14479         (WebCore::MediaControlRootElement::reportedError):
14480         * html/shadow/MediaControlRootElement.h:
14481         (WebCore):
14482         (MediaControlRootElement):
14483         * html/shadow/MediaControlRootElementChromium.cpp:
14484         (WebCore::MediaControlRootElementChromium::initializeControls):
14485         * html/shadow/MediaControls.h:
14486         (MediaControls):
14487         * platform/Language.cpp:
14488         (WebCore):
14489         * platform/Language.h:
14490         (WebCore):
14491         * rendering/RenderMediaControls.cpp:
14492         (WebCore::RenderMediaControls::paintMediaControlsPart):
14493         * rendering/RenderMediaControlsChromium.cpp:
14494         (WebCore::RenderMediaControlsChromium::paintMediaControlsPart):
14495
14496 2012-11-12  Mike West  <mkwst@chromium.org>
14497
14498         'for (x in y)' requires 'var' declaration in ConsoleMessage.js
14499         https://bugs.webkit.org/show_bug.cgi?id=101908
14500
14501         Reviewed by Pavel Feldman.
14502
14503         r134166 should have included a 'var' declaration in its 'for (x in y)'
14504         loop. This patch adds the missing 'var' in order to prevent leakage into
14505         the global context.
14506
14507         * inspector/front-end/ConsoleMessage.js:
14508         (WebInspector.ConsoleMessageImpl.prototype.append):
14509         (WebInspector.ConsoleMessageImpl.prototype._formatWithSubstitutionString):
14510
14511 2012-11-12  Zeno Albisser  <zeno@webkit.org>
14512
14513         [Qt] MiniBrowser should not strongly depend on QtTestSupport.
14514         https://bugs.webkit.org/show_bug.cgi?id=101775
14515
14516         Introducing HAVE(QTTESTSUPPORT) to allow building
14517         MiniBrowser without QtTestSupport.
14518         This is necessary when using a production build.
14519
14520         Reviewed by Tor Arne Vestbø.
14521
14522         * Target.pri:
14523         * platform/qt/QtTestSupport.h:
14524
14525 2012-11-12  Pavel Feldman  <pfeldman@chromium.org>
14526
14527         Web Inspector: wasShown is called twice when show() is called from within wasShown
14528         https://bugs.webkit.org/show_bug.cgi?id=101858
14529
14530         Reviewed by Vsevolod Vlasov.
14531
14532         When we attach views lazily from within wasShown, the views were getting wasShown notification twice.
14533         We now mute one of them.
14534
14535         * inspector/front-end/View.js:
14536         (WebInspector.View):
14537         (WebInspector.View.prototype._inNotification):
14538         (WebInspector.View.prototype._parentIsShowing):
14539         (WebInspector.View.prototype._callOnVisibleChildren):
14540         (WebInspector.View.prototype._processWasShown):
14541         (WebInspector.View.prototype._processWillHide):
14542         (WebInspector.View.prototype._processOnResize):
14543         (WebInspector.View.prototype._notify):
14544         (WebInspector.View.prototype.show):
14545
14546 2012-11-12  Ryosuke Niwa  <rniwa@webkit.org>
14547
14548         Build fix after r134191. Turns out that FrameView::performPostLayoutTasks calls FrameSelection::updateAppearance
14549         in the middle of a layout. So we can't have assertions in recomputeCaretRect and updateAppearance.
14550
14551         Furthermore, we can't update layout in updateAppearance. So do that in its call sites.
14552
14553         * editing/FrameSelection.cpp:
14554         (WebCore::FrameSelection::setSelection):
14555         (WebCore::FrameSelection::recomputeCaretRect):
14556         (WebCore::FrameSelection::updateAppearance):
14557         (WebCore::FrameSelection::setCaretVisibility):
14558
14559 2012-11-12  Shinya Kawanaka  <shinyak@chromium.org>
14560
14561         Don't update style when attaching in HTMLMeterElement
14562         https://bugs.webkit.org/show_bug.cgi?id=101714
14563
14564         Reviewed by Hajime Morita.
14565
14566         HTMLMeterElement was updating style when it's being attached. However, updating style when attaching
14567         can cause style-update prevention. The similar thing has already happened in Bug 100507.
14568
14569         Since we have already set the default value in creating ShadowDOM subtree, we don't need to update style actually.
14570
14571         Test: fast/dom/HTMLMeterElement/meter-bar-set-value.html
14572
14573         * html/HTMLMeterElement.cpp:
14574         * html/HTMLMeterElement.h:
14575         (HTMLMeterElement): Removed attach(). We don't need it.
14576
14577 2012-11-09  Ryosuke Niwa  <rniwa@webkit.org>
14578
14579         Multiple Layout Tests (e.g. fast/repaint/japanese-rl-selection-clear.html) is failing after r133840.
14580         https://bugs.webkit.org/show_bug.cgi?id=101547
14581
14582         Reviewed by Simon Fraser.
14583
14584         I overlooked the fact when the selection is null, we still have to invalidate the caret rect that
14585         previously existed. Revert the optimization added in r133840 to skip caret invalidation when new
14586         selection is null, and add a special method to be called by FrameLoader prior to destruction instead.
14587         This will let us avoid doing an extra layout upon destruction and not regress repaint tests.
14588
14589         Covered by existing tests.
14590
14591         * editing/FrameSelection.cpp:
14592         (WebCore::FrameSelection::setSelection): Added DoNotUpdateAppearance option.
14593         (WebCore::FrameSelection::prepareForDestruction): Added.
14594         (WebCore::FrameSelection::updateAppearance): Reverted the flawed optimization added in r133840.
14595         Also, don't update style before updating selection unless text caret is disabled since we always
14596         update the layout (including style) when text caret is enabled.
14597         * editing/FrameSelection.h:
14598         (FrameSelection):
14599         * loader/FrameLoader.cpp:
14600         (WebCore::FrameLoader::clear): Call prepareForDestruction instead of clear to avoid a layout.
14601
14602 2012-11-11  Dongwoo Joshua Im  <dw.im@samsung.com>
14603
14604         [CSS3] Parsing the property, text-align-last.
14605         https://bugs.webkit.org/show_bug.cgi?id=99439
14606
14607         Reviewed by Julien Chaffraix.
14608
14609         This patch implements the parsing side of the "text-align-last" property specified
14610         in CSS3 working draft, with "-webkit-" prefix, under ENABLE_CSS3_TEXT flag.
14611         Specification link : http://www.w3.org/TR/css3-text/#text-align-last
14612
14613         Tests: fast/css3-text/css3-text-align-last/getComputedStyle/getComputedStyle-text-align-last-inherited.html
14614                fast/css3-text/css3-text-align-last/getComputedStyle/getComputedStyle-text-align-last.html
14615
14616         * css/CSSComputedStyleDeclaration.cpp:
14617         (WebCore):
14618         (WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue): Get the value of the text-align-last property.
14619         * css/CSSParser.cpp:
14620         (WebCore::CSSParser::parseValue): Parse the value, and check whether it is a proper value which text-align-last can have.
14621         * css/CSSPrimitiveValueMappings.h:
14622         (WebCore):
14623         (WebCore::CSSPrimitiveValue::CSSPrimitiveValue):
14624         (WebCore::CSSPrimitiveValue::operator ETextAlignLast):
14625         * css/CSSProperty.cpp:
14626         (WebCore::CSSProperty::isInheritedProperty):
14627         * css/CSSPropertyNames.in: Add '-webkit-text-align-last' property.
14628         * css/StyleBuilder.cpp:
14629         (WebCore::StyleBuilder::StyleBuilder):
14630         * css/StylePropertySet.cpp:
14631         (WebCore):
14632         * css/StyleResolver.cpp:
14633         (WebCore::StyleResolver::applyProperty):
14634         * rendering/style/RenderStyle.h:
14635         * rendering/style/RenderStyleConstants.h:
14636         * rendering/style/StyleRareInheritedData.cpp:
14637         (WebCore::StyleRareInheritedData::StyleRareInheritedData):
14638         (WebCore::StyleRareInheritedData::operator==):
14639         * rendering/style/StyleRareInheritedData.h:
14640         (StyleRareInheritedData): Add m_textAlignLast.
14641
14642 2012-11-11  Shinya Kawanaka  <shinyak@chromium.org>
14643
14644         [Refactoring] Remove shadowPseudoId() and use setPseudo() in HTMLKeygenElement
14645         https://bugs.webkit.org/show_bug.cgi?id=101881
14646
14647         Reviewed by Kent Tamura.
14648
14649         We're migrating shadowPseudoId() to pseudo(). We remove shadowPseudoId() from HTMLKeygenElement and use
14650         setPseudo()/pseudo() instead.
14651
14652         No new tests, simple refacotring.
14653
14654         * html/HTMLKeygenElement.cpp:
14655         (WebCore::KeygenSelectElement::KeygenSelectElement):
14656         (KeygenSelectElement):
14657
14658 2012-11-11  Adam Barth  <abarth@webkit.org>
14659
14660         Many DOMWindowProperties would benefit from being ScriptWrappable
14661         https://bugs.webkit.org/show_bug.cgi?id=101887
14662
14663         Reviewed by Kentaro Hara.
14664
14665         These object are only ever created at the behest of script, which means
14666         making them ScriptWrappable is a win.
14667
14668         * page/BarInfo.h:
14669         * page/Console.h:
14670         * page/Crypto.h:
14671         * page/History.h:
14672         * page/Location.h:
14673         * page/Navigator.h:
14674         * page/Performance.h:
14675
14676 2012-11-11  Kentaro Hara  <haraken@chromium.org>
14677
14678         [V8] HTMLDocument::all() needs not to be custom
14679         https://bugs.webkit.org/show_bug.cgi?id=101875
14680
14681         Reviewed by Adam Barth.
14682
14683         We can easily remove the custom getter from V8 because the
14684         custom setter sets .all by ForceSet(). On the other hand,
14685         it is non-trivial to remove the custom getter from JSC
14686         because the custom setter sets .all by putDirect()
14687         and the custom getter wants to get it by getDirect().
14688
14689         No tests. No change in behavior.
14690
14691         * bindings/v8/custom/V8HTMLDocumentCustom.cpp:
14692         * html/HTMLDocument.idl:
14693
14694 2012-11-11  Kentaro Hara  <haraken@chromium.org>
14695
14696         [V8] V8Console::memoryAttrGetter() needs not to be custom
14697         https://bugs.webkit.org/show_bug.cgi?id=101873
14698
14699         Reviewed by Adam Barth.
14700
14701         No tests. No change in behavior.
14702
14703         * bindings/v8/custom/V8ConsoleCustom.cpp:
14704         (WebCore):
14705         * page/Console.idl:
14706
14707 2012-11-11  Shinya Kawanaka  <shinyak@chromium.org>
14708
14709         [Shadow] ElementShadow should have RuleFeatureSet for select attribute selectors.
14710         https://bugs.webkit.org/show_bug.cgi?id=101180
14711
14712         Reviewed by Dimitri Glazkov.
14713
14714         This is a preparation patch for Bug 100451.
14715
14716         We preserve RuleFeatureSet collected from select attributes in ShadowDOM.
14717         When an element attribute is changed, we might have to invalidate content distribution,
14718         however it's high cost operation. So we would like to check RuleFeatureSet used in
14719         select attributes to determine we really need to invalidate distribution.
14720
14721         Like StyleResolver, ElementShadow has several rule features. When nested ShadowDOM is used,
14722         first we collect features in nested ShadowDOM, and merge it to the parent ShadowDOM.
14723         For the performance reason, we have a flag to check whether we need to collect features again.
14724
14725         Test: fast/dom/shadow/shadow-select-attribute-featureset.html
14726
14727         * WebCore.exp.in:
14728         * dom/ElementShadow.cpp:
14729         (WebCore::ElementShadow::ElementShadow):
14730         (WebCore::ElementShadow::setShouldCollectSelectFeatureSet): Enable a flag to collect feature set of descendant
14731         nodes (and their ShadowDOM).
14732         (WebCore):
14733         (WebCore::ElementShadow::ensureSelectFeatureSetCollected):
14734         (WebCore::ElementShadow::collectSelectFeatureSetFrom): Collect RuleFeatureSet from all descendant Nodes and their
14735         ShadowDOM. We need to collect id, class, and attribute names.
14736         * dom/ElementShadow.h:
14737         (WebCore::ElementShadow::shouldCollectSelectFeatureSet):
14738         (ElementShadow):
14739         (WebCore::ElementShadow::hasSelectorForId):
14740         (WebCore):
14741         (WebCore::ElementShadow::hasSelectorForClass):
14742         (WebCore::ElementShadow::hasSelectorForAttribute):
14743         * html/shadow/HTMLContentElement.cpp:
14744         (WebCore::HTMLContentElement::parseAttribute): When select attribute is changed, enable a flag to recollect features.
14745         (WebCore::HTMLContentElement::insertedInto): We have to recollect features when HTMLContentElement is moved.
14746         (WebCore::HTMLContentElement::removedFrom): ditto.
14747         * html/shadow/HTMLContentElement.h:
14748         (WebCore::toHTMLContentElement):
14749         (WebCore):
14750         * testing/Internals.cpp:
14751         (WebCore::Internals::hasSelectorForIdInShadow):
14752         (WebCore):
14753         (WebCore::Internals::hasSelectorForClassInShadow):
14754         (WebCore::Internals::hasSelectorForAttributeInShadow):
14755         * testing/Internals.h:
14756         (Internals):
14757         * testing/Internals.idl:
14758
14759 2012-11-11  Sheriff Bot  <webkit.review.bot@gmail.com>
14760
14761         Unreviewed, rolling out r134144.
14762         http://trac.webkit.org/changeset/134144
14763         https://bugs.webkit.org/show_bug.cgi?id=101876
14764
14765         seems to break win 7 chromium browser test (Requested by
14766         hayato on #webkit).
14767
14768         * WebCore.exp.in:
14769         * page/EventHandler.cpp:
14770         (WebCore):
14771         (WebCore::EventHandler::handleMouseMoveEvent):
14772         * page/EventHandler.h:
14773         (EventHandler):
14774         * testing/Internals.cpp:
14775         * testing/Internals.h:
14776         * testing/Internals.idl:
14777
14778 2012-11-11  Kent Tamura  <tkent@chromium.org>
14779
14780         Internals: MockPagePopup should not update DOM structure during detach()
14781         https://bugs.webkit.org/show_bug.cgi?id=101710
14782
14783         Reviewed by Hajime Morita.
14784
14785         PickerIndicatorElement::detach calls
14786         MockPagePopupDriver::closePagePopup, MockPagePopup::~MockPagePopup,
14787         which remove the mock iframe from the tree. But updating the tree during
14788         detach() is dangerous.
14789
14790         MockPagePopupDriver::closePagePopup calls MockpagePopup::closeLater, it
14791         requests to call 'close' asynchronously, and 'close' removes the mock
14792         iframe. We need to change MockPagePopup so that it is ref-couted and has
14793         a timer.
14794
14795         No new tests. This is a change for the test harness.
14796
14797         * testing/MockPagePopupDriver.cpp:
14798         (MockPagePopup): Make this ref-counted, add closeLater, add close, and
14799         add m_closeTimer.
14800         (WebCore::MockPagePopup::MockPagePopup): Initialize the timer.
14801         (WebCore::MockPagePopup::create): PassOwnPtr -> PassRefPtr
14802         (WebCore::MockPagePopup::closeLater):
14803         - Add one reference to avoid destruction by m_mockPagePopup.clear() in
14804           closePagePopup.
14805         - Notify didClosePopup here because the client expects didClosePopup is
14806           called synchronously.
14807         - Invoke the timer to call 'close'
14808         (WebCore::MockPagePopup::close):
14809         Just remove one reference. This means calling the desructor.
14810         (WebCore::MockPagePopup::~MockPagePopup):
14811         Move didClosePopup call to caloseLater.
14812         (WebCore::MockPagePopupDriver::closePagePopup):
14813         Request to close PagePopup.
14814         Clear PagePopupClient in m_pagePopupController because this object is
14815         necessary until MockPagePopup is closed, but it should not have a
14816         reference to the PagePopupClient.
14817         * testing/MockPagePopupDriver.h:
14818         (MockPagePopupDriver): Make MockPagePopup ref-counted.
14819
14820 2012-11-11  Adam Barth  <abarth@webkit.org>
14821
14822         axObjectCache code is more complicated than necessary
14823         https://bugs.webkit.org/show_bug.cgi?id=101820
14824
14825         Reviewed by Darin Adler.
14826
14827         This code should use OwnPtr rather than manually calling new/delete.
14828         Also, instead of using a "double check" pattern, we can just access the
14829         private fields on the top document directly.
14830
14831         * dom/Document.cpp:
14832         (WebCore::Document::Document):
14833         (WebCore::Document::clearAXObjectCache):
14834         (WebCore::Document::axObjectCacheExists):
14835         (WebCore):
14836         (WebCore::Document::axObjectCache):
14837         * dom/Document.h:
14838         (Document):
14839
14840 2012-11-10  Simon Fraser  <simon.fraser@apple.com>
14841
14842         Save one call to containerForRepaint() when updating layer positions
14843         https://bugs.webkit.org/show_bug.cgi?id=101856
14844
14845         Reviewed by Dan Bernstein.
14846
14847          RenderLayer::updateLayerPositions() has already computed the repaint container,
14848          but calls computeRepaintRects() which computes it again. Computing the repaint
14849          container involves a walk back up the layer tree, so calling it during a tree
14850          traversal is costly.
14851          
14852          Fix by passing the repaint container down into computeRepaintRects().
14853
14854         * rendering/RenderLayer.cpp:
14855         (WebCore::RenderLayer::updateLayerPositions):
14856         (WebCore::RenderLayer::computeRepaintRects):
14857         (WebCore::RenderLayer::computeRepaintRectsIncludingDescendants):
14858         (WebCore::RenderLayer::updateLayerPositionsAfterScroll):
14859         (WebCore::RenderLayer::setHasVisibleContent):
14860         * rendering/RenderLayer.h:
14861         (RenderLayer):
14862
14863 2012-11-11  Kenichi Ishibashi  <bashi@chromium.org>
14864
14865         WTFString::utf8() should have a mode of conversion to use replacement character
14866         https://bugs.webkit.org/show_bug.cgi?id=101678
14867
14868         Reviewed by Alexey Proskuryakov.
14869
14870         Follow the change on String::utf8()
14871
14872         No new tests. No changes in behavior.
14873
14874         * Modules/websockets/WebSocket.cpp:
14875         (WebCore::WebSocket::close): Pass String::StrictConversion instead of true to String::utf8().
14876         * Modules/websockets/WebSocketChannel.cpp:
14877         (WebCore::WebSocketChannel::send): Ditto.
14878         * html/MediaFragmentURIParser.cpp:
14879         (WebCore::MediaFragmentURIParser::parseFragments): Ditto.
14880         * platform/graphics/blackberry/MediaPlayerPrivateBlackBerry.cpp:
14881         (WebCore::MediaPlayerPrivate::notifyChallengeResult): Ditto.
14882         * platform/network/blackberry/rss/RSSFilterStream.cpp:
14883         (WebCore::RSSFilterStream::convertContentToHtml): Ditto.
14884         * platform/network/blackberry/rss/RSSGenerator.cpp:
14885         (WebCore::RSSGenerator::generateHtml): Ditto.
14886
14887 2012-11-10  Simon Fraser  <simon.fraser@apple.com>
14888
14889         Coalesce main thread scroll position updates
14890         https://bugs.webkit.org/show_bug.cgi?id=101855
14891
14892         Reviewed by Anders Carlsson.
14893
14894         When using threaded scrolling, the dispatched updateMainFrameScrollPosition() calls 
14895         from ScrollingTree would pile up on the main thread, and we'd handle several per
14896         runloop cycle when scrolling fast. This causes extra work especially on pages
14897         with position:fixed elements which must update RenderLayers on scrolling.
14898         
14899         Fix by using a zero-delay timer in ScrollingCoordinator to coalesce these
14900         scrolling updates to one per runloop.
14901
14902         * page/scrolling/ScrollingCoordinator.cpp:
14903         (WebCore::ScrollingCoordinator::ScrollingCoordinator): Initialized data members
14904         for the scheduled scroll position update.
14905         (WebCore::ScrollingCoordinator::scheduleUpdateMainFrameScrollPosition): If 
14906         the timer is active and the parameters match, just update the target scroll
14907         position and return. If the params don't match, dispatch the scheduled update,
14908         and then the new one. Otherwise, prime the timer.
14909         (WebCore::ScrollingCoordinator::updateMainFrameScrollPositionTimerFired): Call
14910         the existing updateMainFrameScrollPosition() with the saved values.
14911         * page/scrolling/ScrollingCoordinator.h:
14912         * page/scrolling/ScrollingTree.cpp:
14913         (WebCore::ScrollingTree::updateMainFrameScrollPosition): Call scheduleUpdateMainFrameScrollPosition()
14914         rather than updateMainFrameScrollPosition().
14915         * page/scrolling/mac/ScrollingCoordinatorMac.mm:
14916         (WebCore::ScrollingCoordinatorMac::syncChildPositions): Fixed a bug that caused fixed
14917         position elements to jiggle with the patch; we should be calling syncPosition() (which just
14918         sets the position data, without touching CA layers).
14919
14920 2012-11-10  Simon Fraser  <simon.fraser@apple.com>
14921
14922         Remove ScrollingCoordinatorMac::updateMainFrameScrollPositionAndScrollLayerPosition()
14923         https://bugs.webkit.org/show_bug.cgi?id=101514
14924
14925         Reviewed by Tim Horton.
14926
14927         ScrollingCoordinatorMac::updateMainFrameScrollPositionAndScrollLayerPosition() is very similar to
14928         ScrollingCoordinator::updateMainFrameScrollPosition(). In order to eliminate updateMainFrameScrollPositionAndScrollLayerPosition(),
14929         we just need to plumb through a flag that says that updateMainFrameScrollPosition() should
14930         set the layer position (rather than just doing a 'sync').
14931
14932         * page/scrolling/ScrollingCoordinator.cpp:
14933         (WebCore::ScrollingCoordinator::updateMainFrameScrollPosition):
14934         * page/scrolling/ScrollingCoordinator.h:
14935         * page/scrolling/ScrollingTree.cpp:
14936         (WebCore::ScrollingTree::updateMainFrameScrollPosition):
14937         * page/scrolling/ScrollingTree.h:
14938         * page/scrolling/mac/ScrollingCoordinatorMac.h:
14939         * page/scrolling/mac/ScrollingCoordinatorMac.mm:
14940         * page/scrolling/mac/ScrollingTreeScrollingNodeMac.mm:
14941         (WebCore::ScrollingTreeScrollingNodeMac::setScrollPositionWithoutContentEdgeConstraints):
14942
14943 2012-11-10  Sheriff Bot  <webkit.review.bot@gmail.com>
14944
14945         Unreviewed, rolling out r134069.
14946         http://trac.webkit.org/changeset/134069
14947         https://bugs.webkit.org/show_bug.cgi?id=101852
14948
14949         "It is a wrong way to fix the problem. See discussions in bug
14950         96614" (Requested by 1JTAAPQFJ on #webkit).
14951
14952         * bindings/js/JSDictionary.cpp:
14953         (WebCore::JSDictionary::getWithUndefinedOrNullCheck):
14954
14955 2012-11-10  Mike West  <mkwst@chromium.org>
14956
14957         Web Inspector: Multiple '%c' formatting options should all have effect.
14958         https://bugs.webkit.org/show_bug.cgi?id=101495
14959
14960         Reviewed by Pavel Feldman.
14961
14962         This patch supports multiple '%c' formatting blocks in console messages.
14963         'console.log("%cblue! %cgreen!", "color: blue;", "color: green;")' will
14964         do exactly what you expect: "blue!" will be blue, and "green!" will be
14965         green.
14966
14967         The implementation moves the styles off the message's parent 'span', and
14968         onto new 'span' elements that wrap the various textual bits of the
14969         message.
14970
14971         * inspector/front-end/ConsoleMessage.js:
14972         (WebInspector.ConsoleMessageImpl.prototype.):
14973         (WebInspector.ConsoleMessageImpl.prototype.append):
14974         (WebInspector.ConsoleMessageImpl.prototype._formatWithSubstitutionString):
14975
14976 2012-11-10  Mike West  <mkwst@chromium.org>
14977
14978         Including <CoreText/CoreText.h> breaks the chromium/mac build.
14979         https://bugs.webkit.org/show_bug.cgi?id=101851
14980
14981         Reviewed by Dan Bernstein.
14982
14983         r134146 introduced inclusion of 'CoreText/CoreText.h' in
14984         SimpleFontDataCoreText.cpp, which broke the chromium/mac build. Grepping
14985         around, it looks like this needs to be modified to include
14986         'ApplicationServices/ApplicationServices.h'.
14987
14988         * platform/graphics/mac/SimpleFontDataCoreText.cpp:
14989             Drop 'CoreText.h' in favor of 'ApplicationServices.h'.
14990         * platform/graphics/mac/ComplexTextControllerCoreText.mm:
14991             Drop the platform-specific '#if' logic; just include 'ApplicationServices.h'.
14992
14993 2012-11-10  Andreas Kling  <kling@webkit.org>
14994
14995         Don't detach from shared ElementAttributeData when overwriting attribute with identical value.
14996         <http://webkit.org/b/101849>
14997
14998         Reviewed by Anders Carlsson.
14999
15000         Defer the mutableAttributeData() call in Element::setAttributeInternal() until the last
15001         possible moment, to avoid unnecessarily detaching and cloning from attribute data.
15002
15003         120 kB progression on Membuster3.
15004
15005         * dom/Element.cpp:
15006         (WebCore::Element::setAttributeInternal):
15007         (WebCore::Element::addAttributeInternal):
15008
15009 2012-11-10  Simon Fraser  <simon.fraser@apple.com>
15010
15011         Some minor optimizations in RenderLayer
15012         https://bugs.webkit.org/show_bug.cgi?id=101847
15013
15014         Reviewed by Anders Carlsson.
15015
15016         Some minor performance improvements in RenderLayer code.
15017
15018         * rendering/RenderLayer.cpp:
15019         (WebCore::RenderLayer::updateLayerPosition): isRenderInline() is a virtual call,
15020         so prefix it with an isInline() check which tests a bit on RenderObject.
15021         (WebCore::RenderLayer::localBoundingBox): Ditto.
15022         (WebCore::RenderLayer::calculateLayerBounds): Pull layer->renderer()
15023         into a local variable.
15024
15025 2012-11-10  Anders Carlsson  <andersca@apple.com>
15026
15027         Document::m_fullScreenElementStack should be a Vector
15028         https://bugs.webkit.org/show_bug.cgi?id=101844
15029
15030         Reviewed by Andreas Kling.
15031
15032         m_fullScreenElementStack is currently a Deque where elements are being prepended
15033         and removed from the beginning in LIFO order, so it can be replaced with a Vector.
15034
15035         * dom/Document.cpp:
15036         (WebCore::Document::requestFullScreenForElement):
15037         (WebCore::Document::webkitCancelFullScreen):
15038         (WebCore::Document::popFullscreenElementStack):
15039         (WebCore::Document::pushFullscreenElementStack):
15040         * dom/Document.h:
15041         (WebCore::Document::webkitFullscreenElement):
15042         (Document):
15043
15044 2012-11-10  Adam Barth  <abarth@webkit.org>
15045
15046         [V8] Clean up header includes and ifdefs in V8GCController
15047         https://bugs.webkit.org/show_bug.cgi?id=101691
15048
15049         Reviewed by Kentaro Hara.
15050
15051         This file doesn't need to include all these headers anymore.
15052
15053         * bindings/v8/V8GCController.cpp:
15054         (WebCore::workingSetEstimateMBMutex):
15055         (WebCore::V8GCController::majorGCEpilogue):
15056         (WebCore::V8GCController::checkMemoryUsage):
15057
15058 2012-11-10  Joseph Pecoraro  <pecoraro@apple.com>
15059
15060         [Mac] Guard WebCore PageVisibility Symbol Export
15061         https://bugs.webkit.org/show_bug.cgi?id=101817
15062
15063         Reviewed by Andreas Kling.
15064
15065         Guard the export with the same ENABLE guards around its definition
15066         and implementation.
15067
15068         * WebCore.exp.in:
15069
15070 2012-11-10  Bruno de Oliveira Abinader  <bruno.abinader@basyskom.com>
15071
15072         [css] text-decoration:none no longer valid
15073         https://bugs.webkit.org/show_bug.cgi?id=101529
15074
15075         Reviewed by Ojan Vafai.
15076
15077         This patch fixes an issue where the 'none' value was parsed as explicitly
15078         'initial' value. However true in a sense that the initial value for the
15079         'text-decoration' property is 'none', the value itself could not be parsed as
15080         'initial'.
15081
15082         The getComputedStyle layout tests for 'text-decoration' and
15083         '-webkit-text-decoration-line' CSS properties are updated with the correct
15084         results.
15085
15086         * css/CSSParser.cpp:
15087         (WebCore::CSSParser::parseTextDecoration): When parsed, 'none' value
15088         gets its own identifier value instead of explicit initial.
15089
15090 2012-11-09  Dean Jackson  <dino@apple.com>
15091
15092         Support list of tracks in caption media controls
15093         https://bugs.webkit.org/show_bug.cgi?id=101669
15094
15095         Reviewed by Eric Carlson.
15096
15097         Attempt three of commit. The first two times caused build failures on Chromium.
15098
15099         Add some new elements to the media control shadow DOM that display the list of available
15100         tracks on an audio/video element. The UI is hidden by default everywhere but on Mac,
15101         where it is given a very basic design. At the moment only the list of available tracks
15102         are displayed; The followup bug will make the UI active: https://bugs.webkit.org/show_bug.cgi?id=101670
15103
15104         No new tests - this doesn't expose any testable surface.
15105
15106         * css/mediaControls.css: Added default rules that hide the new elements.
15107         * css/mediaControlsQuickTime.css: Specific rules that give a basic rendering of the new track list.
15108         * html/shadow/MediaControlElements.cpp:
15109         (WebCore::MediaControlElement::isShowing): Tests for the visibility of a control.
15110         (WebCore::MediaControlClosedCaptionsContainerElement::MediaControlClosedCaptionsContainerElement):
15111         (WebCore::MediaControlClosedCaptionsContainerElement::create):
15112         (WebCore::MediaControlClosedCaptionsContainerElement::shadowPseudoId):
15113         (WebCore::MediaControlToggleClosedCaptionsButtonElement::MediaControlToggleClosedCaptionsButtonElement):
15114         (WebCore::MediaControlToggleClosedCaptionsButtonElement::create): Now takes a reference to the media controls as a parameter.
15115         (WebCore::MediaControlToggleClosedCaptionsButtonElement::updateDisplayType):
15116         (WebCore::MediaControlToggleClosedCaptionsButtonElement::defaultEventHandler):
15117         (WebCore::MediaControlToggleClosedCaptionsButtonElement::shadowPseudoId):
15118         (WebCore::MediaControlClosedCaptionsTrackListElement::MediaControlClosedCaptionsTrackListElement): New element for holding a list of tracks to display.
15119         * html/shadow/MediaControlElements.h:
15120         (MediaControlElement):
15121         (MediaControlToggleClosedCaptionsButtonElement):
15122         (MediaControlClosedCaptionsContainerElement):
15123         (MediaControlClosedCaptionsTrackListElement): Examines the media element to build a shadow DOM that lists all the tracks available.
15124         * html/shadow/MediaControlRootElement.cpp:
15125         (WebCore::MediaControlRootElement::MediaControlRootElement):
15126         (WebCore::MediaControlRootElement::create): New track container and list elements created.
15127         (WebCore::MediaControlRootElement::setMediaController): Hook up the new elements to the controller..
15128         (WebCore::MediaControlRootElement::hide):
15129         (WebCore::MediaControlRootElement::makeTransparent):
15130         (WebCore::MediaControlRootElement::reset):
15131         (WebCore::MediaControlRootElement::reportedError):
15132         (WebCore::MediaControlRootElement::toggleClosedCaptionTrackList): Shows or hides the popup with the list of tracks.
15133         (WebCore):
15134         * html/shadow/MediaControlRootElement.h:
15135         (WebCore):
15136         (MediaControlRootElement):
15137         * html/shadow/MediaControlRootElementChromium.cpp:
15138         (WebCore::MediaControlRootElementChromium::initializeControls): Pass in the controls as a parameter.
15139         * html/shadow/MediaControls.h:
15140         (MediaControls):
15141         * platform/Language.cpp:
15142         (WebCore::displayNameForLanguageLocale): New function to return a human-readable name for a locale, given the identifier input.
15143         * platform/Language.h:
15144         (WebCore):
15145         * rendering/RenderMediaControls.cpp:
15146         (WebCore::RenderMediaControls::paintMediaControlsPart): New enum values into switch.
15147         * rendering/RenderMediaControlsChromium.cpp:
15148         (WebCore::RenderMediaControlsChromium::paintMediaControlsPart): New enum values into switch.
15149
15150 2012-11-09  Sheriff Bot  <webkit.review.bot@gmail.com>
15151
15152         Unreviewed, rolling out r134152.
15153         http://trac.webkit.org/changeset/134152
15154         https://bugs.webkit.org/show_bug.cgi?id=101831
15155
15156         broke chromium again (Requested by dino_ on #webkit).
15157
15158         * css/mediaControls.css:
15159         * css/mediaControlsQuickTime.css:
15160         (audio::-webkit-media-controls-toggle-closed-captions-button, video::-webkit-media-controls-toggle-closed-captions-button):
15161         (audio::-webkit-media-controls-volume-slider-mute-button, video::-webkit-media-controls-volume-slider-mute-button):
15162         * html/shadow/MediaControlElements.cpp:
15163         (WebCore::MediaControlToggleClosedCaptionsButtonElement::MediaControlToggleClosedCaptionsButtonElement):
15164         (WebCore::MediaControlToggleClosedCaptionsButtonElement::create):
15165         (WebCore::MediaControlToggleClosedCaptionsButtonElement::defaultEventHandler):
15166         (WebCore::MediaControlToggleClosedCaptionsButtonElement::updateDisplayType):
15167         (WebCore::MediaControlToggleClosedCaptionsButtonElement::shadowPseudoId):
15168         * html/shadow/MediaControlElements.h:
15169         (MediaControlElement):
15170         (MediaControlToggleClosedCaptionsButtonElement):
15171         * html/shadow/MediaControlRootElement.cpp:
15172         (WebCore::MediaControlRootElement::MediaControlRootElement):
15173         (WebCore::MediaControlRootElement::create):
15174         (WebCore::MediaControlRootElement::setMediaController):
15175         (WebCore::MediaControlRootElement::hide):
15176         (WebCore::MediaControlRootElement::makeTransparent):
15177         (WebCore::MediaControlRootElement::reset):
15178         (WebCore::MediaControlRootElement::reportedError):
15179         * html/shadow/MediaControlRootElement.h:
15180         (WebCore):
15181         (MediaControlRootElement):
15182         * html/shadow/MediaControlRootElementChromium.cpp:
15183         (WebCore::MediaControlRootElementChromium::initializeControls):
15184         * html/shadow/MediaControls.h:
15185         (MediaControls):
15186         * platform/Language.cpp:
15187         (WebCore):
15188         * platform/Language.h:
15189         (WebCore):
15190         * rendering/RenderMediaControls.cpp:
15191         (WebCore::RenderMediaControls::paintMediaControlsPart):
15192         * rendering/RenderMediaControlsChromium.cpp:
15193         (WebCore::RenderMediaControlsChromium::paintMediaControlsPart):
15194
15195 2012-11-09  Dean Jackson  <dino@apple.com>
15196
15197         Support list of tracks in caption media controls
15198         https://bugs.webkit.org/show_bug.cgi?id=101669
15199
15200         Reviewed by Eric Carlson.
15201
15202         Attempt two of commit. The first time caused a build failure on Chromium.
15203
15204         Add some new elements to the media control shadow DOM that display the list of available
15205         tracks on an audio/video element. The UI is hidden by default everywhere but on Mac,
15206         where it is given a very basic design. At the moment only the list of available tracks
15207         are displayed; The followup bug will make the UI active: https://bugs.webkit.org/show_bug.cgi?id=101670
15208
15209         No new tests - this doesn't expose any testable surface.
15210
15211         * css/mediaControls.css: Added default rules that hide the new elements.
15212         * css/mediaControlsQuickTime.css: Specific rules that give a basic rendering of the new track list.
15213         * html/shadow/MediaControlElements.cpp:
15214         (WebCore::MediaControlElement::isShowing): Tests for the visibility of a control.
15215         (WebCore::MediaControlClosedCaptionsContainerElement::MediaControlClosedCaptionsContainerElement):
15216         (WebCore::MediaControlClosedCaptionsContainerElement::create):
15217         (WebCore::MediaControlClosedCaptionsContainerElement::shadowPseudoId):
15218         (WebCore::MediaControlToggleClosedCaptionsButtonElement::MediaControlToggleClosedCaptionsButtonElement):
15219         (WebCore::MediaControlToggleClosedCaptionsButtonElement::create): Now takes a reference to the media controls as a parameter.
15220         (WebCore::MediaControlToggleClosedCaptionsButtonElement::updateDisplayType):
15221         (WebCore::MediaControlToggleClosedCaptionsButtonElement::defaultEventHandler):
15222         (WebCore::MediaControlToggleClosedCaptionsButtonElement::shadowPseudoId):
15223         (WebCore::MediaControlClosedCaptionsTrackListElement::MediaControlClosedCaptionsTrackListElement): New element for holding a list of tracks to display.
15224         * html/shadow/MediaControlElements.h:
15225         (MediaControlElement):
15226         (MediaControlToggleClosedCaptionsButtonElement):
15227         (MediaControlClosedCaptionsContainerElement):
15228         (MediaControlClosedCaptionsTrackListElement): Examines the media element to build a shadow DOM that lists all the tracks available.
15229         * html/shadow/MediaControlRootElement.cpp:
15230         (WebCore::MediaControlRootElement::MediaControlRootElement):
15231         (WebCore::MediaControlRootElement::create): New track container and list elements created.
15232         (WebCore::MediaControlRootElement::setMediaController): Hook up the new elements to the controller..
15233         (WebCore::MediaControlRootElement::hide):
15234         (WebCore::MediaControlRootElement::makeTransparent):
15235         (WebCore::MediaControlRootElement::reset):
15236         (WebCore::MediaControlRootElement::reportedError):
15237         (WebCore::MediaControlRootElement::toggleClosedCaptionTrackList): Shows or hides the popup with the list of tracks.
15238         (WebCore):
15239         * html/shadow/MediaControlRootElement.h:
15240         (WebCore):
15241         (MediaControlRootElement):
15242         * html/shadow/MediaControlRootElementChromium.cpp:
15243         (WebCore::MediaControlRootElementChromium::initializeControls): Pass in the controls as a parameter.
15244         * html/shadow/MediaControls.h:
15245         (MediaControls):
15246         * platform/Language.cpp:
15247         (WebCore::displayNameForLanguageLocale): New function to return a human-readable name for a locale, given the identifier input.
15248         * platform/Language.h:
15249         (WebCore):
15250         * rendering/RenderMediaControls.cpp:
15251         (WebCore::RenderMediaControls::paintMediaControlsPart): New enum values into switch.
15252         * rendering/RenderMediaControlsChromium.cpp:
15253         (WebCore::RenderMediaControlsChromium::paintMediaControlsPart): New enum values into switch.
15254
15255 2012-11-09  Ojan Vafai  <ojan@chromium.org>
15256
15257         Should only fire a single set of mouse events and update hover state once when scrolling is done
15258         https://bugs.webkit.org/show_bug.cgi?id=99940
15259
15260         Reviewed by Levi Weintraub.
15261
15262         -Use a DeferrableOneShotTimer instead of a Timer. By resetting when the
15263         timer is fired, we ensure the actual goal of not firing fake mouse events
15264         until the scroll is completed. This is the core part of this change.
15265         -Change our mouse event throttling to keep a running average of how long
15266         mouse events take and adjust throttling appropriately.
15267         Test: fast/scrolling/fake-mouse-event-throttling.html
15268         -Maintain a minimum throttle of 100ms.
15269
15270         * page/EventHandler.cpp:
15271         (WebCore):
15272         (WebCore::RunningAverageDurationTracker::RunningAverageDurationTracker):
15273         (WebCore::RunningAverageDurationTracker::~RunningAverageDurationTracker):
15274         Keep track of a running average instead of max. This lets us adjust throttling
15275         dynamically without punishing a page for having a single mouse event handler
15276         that takes disproportionately long.
15277         (RunningAverageDurationTracker):
15278         (WebCore::EventHandler::EventHandler):
15279         (WebCore::EventHandler::clear):
15280         (WebCore::EventHandler::mouseMoved):
15281         (WebCore::EventHandler::handleMouseMoveEvent):
15282         (WebCore::EventHandler::dispatchFakeMouseMoveEventSoon):
15283         (WebCore::EventHandler::fakeMouseMoveEventTimerFired):
15284         * page/EventHandler.h:
15285         (EventHandler):
15286         * platform/Timer.h:
15287         (WebCore::DeferrableOneShotTimer::setDelay):
15288         (WebCore::DeferrableOneShotTimer::delay):
15289         Add a way of adjusting the timer delay.
15290
15291 2012-11-09  Rick Byers  <rbyers@chromium.org>
15292
15293         Move chromium to USE(LAZY_NATIVE_CURSOR)
15294         https://bugs.webkit.org/show_bug.cgi?id=101501
15295
15296         Reviewed by Adam Barth.
15297
15298         This simplifies cursor handling in chromium and unifies it with other
15299         ports for easier code sharing and testing by moving to the
15300         USE_LAZY_CURSOR model and eliminating PlatformCursor entirely.
15301
15302         PlatformCursor adds no value in chromium since the sandboxing model
15303         requires the cursor information be marshalled to the browser process
15304         before being turned into a real OS cursor.
15305
15306         Test: fast/events/mouse-cursor.html
15307
15308         * WebCore.gypi:
15309         * platform/Cursor.h:
15310         (WebCore):
15311         * platform/chromium/CursorChromium.cpp:
15312         (WebCore::Cursor::Cursor):
15313         (WebCore::Cursor::operator=):
15314         (WebCore::Cursor::~Cursor):
15315         (WebCore::Cursor::ensurePlatformCursor):
15316         * platform/chromium/PlatformCursor.h: Removed.
15317
15318 2012-11-09  Noam Rosenthal  <noam.rosenthal@nokia.com>
15319
15320         Allow ports to decide whether an image should be directly composited
15321         https://bugs.webkit.org/show_bug.cgi?id=101827
15322
15323         Reviewed by Simon Fraser.
15324
15325         Tested by compositing/tiling/huge-layer-img.html.
15326
15327         * platform/graphics/GraphicsLayer.h:
15328         (WebCore::GraphicsLayer::shouldDirectlyCompositeImage):
15329             Allow the GraphicsLayer implementation to decide if the image can be composited.
15330
15331         * rendering/RenderLayerBacking.cpp:
15332         (WebCore::RenderLayerBacking::isDirectlyCompositedImage):
15333             Take onto account the new shouldDirectlyCompositeImage check.
15334
15335 2012-11-09  Dan Bernstein  <mitz@apple.com>
15336
15337         SimpleFontData::getCFStringAttributes sets some attributes to their default values, but shouldn’t
15338         https://bugs.webkit.org/show_bug.cgi?id=101799
15339
15340         Reviewed by Alexey Proskuryakov.
15341
15342         In some configurations, setting kCTLigatureAttributeName to its default value of 1 yields
15343         different behavior from not setting it at all. We can get the correct behavior and greatly
15344         simplify the code by not setting attributes to their default values.
15345
15346         * platform/graphics/mac/SimpleFontDataCoreText.cpp:
15347         Removed redundant #import directives and changed the remaining ones to #include.
15348         (WebCore::SimpleFontData::getCFStringAttributes): Changed to use a mutable dictionary and
15349         only add attributes that have non-default values.
15350
15351 2012-11-09  Rick Byers  <rbyers@chromium.org>
15352
15353         No tests for changing mouse cursors
15354         https://bugs.webkit.org/show_bug.cgi?id=100550
15355
15356         Reviewed by Adam Barth.
15357
15358         Add infrastructure to keep track of the last set mouse cursor,
15359         and then to query it from DumpRenderTree.
15360
15361         Test: fast/events/mouse-cursor.html
15362
15363         * WebCore.exp.in: Add Cursor copy ctor export
15364         * page/EventHandler.cpp:
15365         (WebCore::EventHandler::handleMouseMoveEvent): Keep track of last set mouse cursor
15366         * page/EventHandler.h:
15367         (WebCore::EventHandler::currentMouseCursor): New getter for last set mouse cursor
15368         * testing/Internals.cpp:
15369         (WebCore::cursorTypeToString): Helper to convert cursor type to enum
15370         (WebCore):
15371         (WebCore::Internals::getCurrentCursorInfo): New function to return a string describing the last set mouse cursor
15372         * testing/Internals.h: Declare getCurrentCursorInfo
15373         * testing/Internals.idl: Declare getCurrentCursorInfo
15374
15375 2012-11-09  Huang Dongsung  <luxtella@company100.net>
15376
15377         Coordinated Graphics: Amend CoordinatedBackingStore::paintToTextureMapper to fit its own semantic.
15378         https://bugs.webkit.org/show_bug.cgi?id=101701
15379
15380         Reviewed by Noam Rosenthal.
15381
15382         Add TiledBackingStore::rect() because CoordinatedTile needs to know
15383         m_rect of TiledBackingStore.
15384
15385         * platform/graphics/TiledBackingStore.h:
15386         (WebCore::TiledBackingStore::rect):
15387
15388 2012-11-09  Sheriff Bot  <webkit.review.bot@gmail.com>
15389
15390         Unreviewed, rolling out r134139.
15391         http://trac.webkit.org/changeset/134139
15392         https://bugs.webkit.org/show_bug.cgi?id=101823
15393
15394         breaks chromium (android) build (Requested by thorton on
15395         #webkit).
15396
15397         * css/mediaControls.css:
15398         * css/mediaControlsQuickTime.css:
15399         (audio::-webkit-media-controls-toggle-closed-captions-button, video::-webkit-media-controls-toggle-closed-captions-button):
15400         (audio::-webkit-media-controls-volume-slider-mute-button, video::-webkit-media-controls-volume-slider-mute-button):
15401         * html/shadow/MediaControlElements.cpp:
15402         (WebCore::MediaControlToggleClosedCaptionsButtonElement::MediaControlToggleClosedCaptionsButtonElement):
15403         (WebCore::MediaControlToggleClosedCaptionsButtonElement::create):
15404         (WebCore::MediaControlToggleClosedCaptionsButtonElement::defaultEventHandler):
15405         (WebCore::MediaControlToggleClosedCaptionsButtonElement::updateDisplayType):
15406         (WebCore::MediaControlToggleClosedCaptionsButtonElement::shadowPseudoId):
15407         * html/shadow/MediaControlElements.h:
15408         (MediaControlElement):
15409         (MediaControlToggleClosedCaptionsButtonElement):
15410         * html/shadow/MediaControlRootElement.cpp:
15411         (WebCore::MediaControlRootElement::MediaControlRootElement):
15412         (WebCore::MediaControlRootElement::create):
15413         (WebCore::MediaControlRootElement::setMediaController):
15414         (WebCore::MediaControlRootElement::hide):
15415         (WebCore::MediaControlRootElement::makeTransparent):
15416         (WebCore::MediaControlRootElement::reset):
15417         (WebCore::MediaControlRootElement::reportedError):
15418         * html/shadow/MediaControlRootElement.h:
15419         (WebCore):
15420         (MediaControlRootElement):
15421         * html/shadow/MediaControlRootElementChromium.cpp:
15422         (WebCore::MediaControlRootElementChromium::initializeControls):
15423         * html/shadow/MediaControls.h:
15424         (MediaControls):
15425         * platform/Language.cpp:
15426         (WebCore):
15427         * platform/Language.h:
15428         (WebCore):
15429
15430 2012-11-09  Huang Dongsung  <luxtella@company100.net>
15431
15432         [TexMap] Initialize m_compositedNativeImagePtr in GraphicsLayerTextureMapper.
15433         https://bugs.webkit.org/show_bug.cgi?id=101675
15434
15435         Reviewed by Noam Rosenthal.
15436
15437         Fix a potential bug in GraphicsLayerTextureMapper. If the member's uninitialized
15438         value equals image->nativeImageForCurrentFrame() by change, we can encounter
15439         undefined behavior.
15440
15441         * platform/graphics/texmap/GraphicsLayerTextureMapper.cpp:
15442         (WebCore::GraphicsLayerTextureMapper::GraphicsLayerTextureMapper):
15443         (WebCore::GraphicsLayerTextureMapper::setContentsToImage):
15444
15445 2012-11-09  Dean Jackson  <dino@apple.com>
15446
15447         Support list of tracks in caption media controls
15448         https://bugs.webkit.org/show_bug.cgi?id=101669
15449
15450         Reviewed by Eric Carlson.
15451
15452         Add some new elements to the media control shadow DOM that display the list of available
15453         tracks on an audio/video element. The UI is hidden by default everywhere but on Mac,
15454         where it is given a very basic design. At the moment only the list of available tracks
15455         are displayed; The followup bug will make the UI active: https://bugs.webkit.org/show_bug.cgi?id=101670
15456
15457         No new tests - this doesn't expose any testable surface.
15458
15459         * css/mediaControls.css: Added default rules that hide the new elements.
15460         * css/mediaControlsQuickTime.css: Specific rules that give a basic rendering of the new track list.
15461         * html/shadow/MediaControlElements.cpp:
15462         (WebCore::MediaControlElement::isShowing): Tests for the visibility of a control.
15463         (WebCore::MediaControlClosedCaptionsContainerElement::MediaControlClosedCaptionsContainerElement):
15464         (WebCore::MediaControlClosedCaptionsContainerElement::create):
15465         (WebCore::MediaControlClosedCaptionsContainerElement::shadowPseudoId):
15466         (WebCore::MediaControlToggleClosedCaptionsButtonElement::MediaControlToggleClosedCaptionsButtonElement):
15467         (WebCore::MediaControlToggleClosedCaptionsButtonElement::create): Now takes a reference to the media controls as a parameter.
15468         (WebCore::MediaControlToggleClosedCaptionsButtonElement::updateDisplayType):
15469         (WebCore::MediaControlToggleClosedCaptionsButtonElement::defaultEventHandler):
15470         (WebCore::MediaControlToggleClosedCaptionsButtonElement::shadowPseudoId):
15471         (WebCore::MediaControlClosedCaptionsTrackListElement::MediaControlClosedCaptionsTrackListElement): New element for holding a list of tracks to display.
15472         * html/shadow/MediaControlElements.h:
15473         (MediaControlElement):
15474         (MediaControlToggleClosedCaptionsButtonElement):
15475         (MediaControlClosedCaptionsContainerElement):
15476         (MediaControlClosedCaptionsTrackListElement): Examines the media element to build a shadow DOM that lists all the tracks available.
15477         * html/shadow/MediaControlRootElement.cpp:
15478         (WebCore::MediaControlRootElement::MediaControlRootElement):
15479         (WebCore::MediaControlRootElement::create): New track container and list elements created.
15480         (WebCore::MediaControlRootElement::setMediaController): Hook up the new elements to the controller..
15481         (WebCore::MediaControlRootElement::hide):
15482         (WebCore::MediaControlRootElement::makeTransparent):
15483         (WebCore::MediaControlRootElement::reset):
15484         (WebCore::MediaControlRootElement::reportedError):
15485         (WebCore::MediaControlRootElement::toggleClosedCaptionTrackList): Shows or hides the popup with the list of tracks.
15486         (WebCore):
15487         * html/shadow/MediaControlRootElement.h:
15488         (WebCore):
15489         (MediaControlRootElement):
15490         * html/shadow/MediaControlRootElementChromium.cpp:
15491         (WebCore::MediaControlRootElementChromium::initializeControls): Pass in the controls as a parameter.
15492         * html/shadow/MediaControls.h:
15493         (MediaControls):
15494         * platform/Language.cpp:
15495         (WebCore::displayNameForLanguageLocale): New function to return a human-readable name for a locale, given the identifier input.
15496         * platform/Language.h:
15497         (WebCore):
15498
15499 2012-11-09  Noel Gordon  <noel.gordon@gmail.com>
15500
15501         [chromium] Should pass fast/images/paletted-png-with-color-profile.html
15502         https://bugs.webkit.org/show_bug.cgi?id=101551
15503
15504         Reviewed by Adam Barth.
15505
15506         Support decoding color PALETTE images that have an ICC color profile.
15507
15508         Covered by fast/images/png-suite/test.html and many other fast/image tests.
15509
15510         * platform/image-decoders/png/PNGImageDecoder.cpp:
15511         (WebCore::PNGImageDecoder::headerAvailable): Move the color profile code after the
15512         transparency (tRNS) reader. Allow color PNG images: RGB, RGBA, PALLETE to be color
15513         corrected. Use the transparency count from the tRNS reader to detect the expansion
15514         of RGB and PALLETE image pixels to RGBA.
15515
15516 2012-11-09  Tien-Ren Chen  <trchen@chromium.org>
15517
15518         Correct hit-test point scaling for document.elementFromPoint
15519         https://bugs.webkit.org/show_bug.cgi?id=101798
15520
15521         Reviewed by Adam Barth.
15522
15523         The hit-test point come from user JavaScript is in the document coordinate.
15524         Convert to the frame coordinate with correct scale factor for hit test.
15525
15526         Test: fast/dom/elementFromPoint-scaled-scrolled.html
15527
15528         * dom/Document.cpp:
15529         (WebCore::nodeFromPoint):
15530
15531 2012-11-09  Alec Flett  <alecflett@chromium.org>
15532
15533         IndexedDB: Combine IDBBackingStore and IDBLevelDBBackingStore
15534         https://bugs.webkit.org/show_bug.cgi?id=101415
15535
15536         Reviewed by Tony Chang.
15537
15538         Combine abstract interface IDBBackingStore with its only
15539         implementation, IDBLevelDBBackingStore, to reduce code
15540         complexity. The legacy structure existed to support a SQLLite
15541         IDBBackingStore, but it is no longer worth the complexity to
15542         support this abstraction.
15543
15544         Changes include:
15545         1) Merging IDBLevelDBBackingStore into IDBBackingStore.
15546
15547         2) Merge together IDBBackingStore's inner classes: Cursor,
15548         Transaction, and ObjectStoreRecordIdentfier with their respective
15549         subclasses in IDBLevelDBBackingStore.
15550
15551         3) Simplifying the inner Transaction class to not be refcounted or
15552         virtualized, to allow it to be a simple concrete member of its
15553         owner, IDBTransactionBackendImpl.
15554
15555         No new tests as this is purely a refactor.
15556
15557         * Modules/indexeddb/IDBBackingStore.cpp:
15558         (WebCore::recordInternalError):
15559         (WebCore::setUpMetadata):
15560         (WebCore::IDBBackingStore::IDBBackingStore):
15561         (WebCore):
15562         (WebCore::IDBBackingStore::~IDBBackingStore):
15563         (WebCore::IDBBackingStore::open):
15564         (WebCore::IDBBackingStore::getDatabaseNames):
15565         (WebCore::IDBBackingStore::getIDBDatabaseMetaData):
15566         (WebCore::IDBBackingStore::createIDBDatabaseMetaData):
15567         (WebCore::IDBBackingStore::updateIDBDatabaseIntVersion):
15568         (WebCore::IDBBackingStore::updateIDBDatabaseMetaData):
15569         (WebCore::deleteRange):
15570         (WebCore::IDBBackingStore::deleteDatabase):
15571         (WebCore::IDBBackingStore::getObjectStores):
15572         (WebCore::setMaxObjectStoreId):
15573         (WebCore::IDBBackingStore::createObjectStore):
15574         (WebCore::IDBBackingStore::deleteObjectStore):
15575         (WebCore::IDBBackingStore::getRecord):
15576         (WebCore::IDBBackingStore::putRecord):
15577         (WebCore::IDBBackingStore::clearObjectStore):
15578         (WebCore::IDBBackingStore::deleteRecord):
15579         (WebCore::IDBBackingStore::getKeyGeneratorCurrentNumber):
15580         (WebCore::IDBBackingStore::maybeUpdateKeyGeneratorCurrentNumber):
15581         (WebCore::IDBBackingStore::keyExistsInObjectStore):
15582         (WebCore::IDBBackingStore::getIndexes):
15583         (WebCore::setMaxIndexId):
15584         (WebCore::IDBBackingStore::createIndex):
15585         (WebCore::IDBBackingStore::deleteIndex):
15586         (WebCore::IDBBackingStore::putIndexDataForRecord):
15587         (WebCore::IDBBackingStore::deleteIndexDataForRecord):
15588         (WebCore::IDBBackingStore::findKeyInIndex):
15589         (WebCore::IDBBackingStore::getPrimaryKeyViaIndex):
15590         (WebCore::IDBBackingStore::keyExistsInIndex):
15591         (WebCore::IDBBackingStore::Cursor::Cursor):
15592         (WebCore::IDBBackingStore::Cursor::firstSeek):
15593         (WebCore::IDBBackingStore::Cursor::advance):
15594         (WebCore::IDBBackingStore::Cursor::continueFunction):
15595         (WebCore::IDBBackingStore::Cursor::haveEnteredRange):
15596         (WebCore::IDBBackingStore::Cursor::isPastBounds):
15597         (WebCore::ObjectStoreKeyCursorImpl::create):
15598         (ObjectStoreKeyCursorImpl):
15599         (WebCore::ObjectStoreKeyCursorImpl::value):
15600         (WebCore::ObjectStoreKeyCursorImpl::ObjectStoreKeyCursorImpl):
15601         (WebCore::ObjectStoreKeyCursorImpl::loadCurrentRow):
15602         (WebCore::ObjectStoreCursorImpl::create):
15603         (ObjectStoreCursorImpl):
15604         (WebCore::ObjectStoreCursorImpl::value):
15605         (WebCore::ObjectStoreCursorImpl::ObjectStoreCursorImpl):
15606         (WebCore::ObjectStoreCursorImpl::loadCurrentRow):
15607         (WebCore::IndexKeyCursorImpl::create):
15608         (IndexKeyCursorImpl):
15609         (WebCore::IndexKeyCursorImpl::value):
15610         (WebCore::IndexKeyCursorImpl::primaryKey):
15611         (WebCore::IndexKeyCursorImpl::recordIdentifier):
15612         (WebCore::IndexKeyCursorImpl::IndexKeyCursorImpl):
15613         (WebCore::IndexKeyCursorImpl::loadCurrentRow):
15614         (WebCore::IndexCursorImpl::create):
15615         (IndexCursorImpl):
15616         (WebCore::IndexCursorImpl::value):
15617         (WebCore::IndexCursorImpl::primaryKey):
15618         (WebCore::IndexCursorImpl::recordIdentifier):
15619         (WebCore::IndexCursorImpl::IndexCursorImpl):
15620         (WebCore::IndexCursorImpl::loadCurrentRow):
15621         (WebCore::objectStoreCursorOptions):
15622         (WebCore::indexCursorOptions):
15623         (WebCore::IDBBackingStore::openObjectStoreCursor):
15624         (WebCore::IDBBackingStore::openObjectStoreKeyCursor):
15625         (WebCore::IDBBackingStore::openIndexKeyCursor):
15626         (WebCore::IDBBackingStore::openIndexCursor):
15627         (WebCore::IDBBackingStore::Transaction::Transaction):
15628         (WebCore::IDBBackingStore::Transaction::begin):
15629         (WebCore::IDBBackingStore::Transaction::commit):
15630         (WebCore::IDBBackingStore::Transaction::rollback):
15631         * Modules/indexeddb/IDBBackingStore.h:
15632         (WebCore):
15633         (IDBBackingStore):
15634         (RecordIdentifier):
15635         (WebCore::IDBBackingStore::RecordIdentifier::create):
15636         (WebCore::IDBBackingStore::RecordIdentifier::~RecordIdentifier):
15637         (WebCore::IDBBackingStore::RecordIdentifier::isValid):
15638         (WebCore::IDBBackingStore::RecordIdentifier::primaryKey):
15639         (WebCore::IDBBackingStore::RecordIdentifier::setPrimaryKey):
15640         (WebCore::IDBBackingStore::RecordIdentifier::version):
15641         (WebCore::IDBBackingStore::RecordIdentifier::setVersion):
15642         (WebCore::IDBBackingStore::RecordIdentifier::RecordIdentifier):
15643         (Transaction):
15644         (WebCore::IDBBackingStore::Transaction::levelDBTransactionFrom):
15645         (CursorOptions):
15646         (Cursor):
15647         (WebCore::IDBBackingStore::Cursor::Cursor):
15648         (WebCore::IDBBackingStore::Cursor::key):
15649         (WebCore::IDBBackingStore::Cursor::primaryKey):
15650         (WebCore::IDBBackingStore::Cursor::~Cursor):
15651         * Modules/indexeddb/IDBFactoryBackendImpl.cpp:
15652         (WebCore::IDBFactoryBackendImpl::openBackingStore):
15653         * Modules/indexeddb/IDBIndexBackendImpl.cpp:
15654         (WebCore::IDBIndexBackendImpl::countInternal):
15655         * Modules/indexeddb/IDBLevelDBBackingStore.h: Removed.
15656         * Modules/indexeddb/IDBObjectStoreBackendImpl.cpp:
15657         (WebCore::IDBObjectStoreBackendImpl::setIndexKeys):
15658         (WebCore::IDBObjectStoreBackendImpl::putInternal):
15659         (WebCore::IDBObjectStoreBackendImpl::deleteInternal):
15660         * Modules/indexeddb/IDBTransactionBackendImpl.cpp:
15661         (WebCore::IDBTransactionBackendImpl::IDBTransactionBackendImpl):
15662         (WebCore::IDBTransactionBackendImpl::abort):
15663         (WebCore::IDBTransactionBackendImpl::commit):
15664         (WebCore::IDBTransactionBackendImpl::taskTimerFired):
15665         * Modules/indexeddb/IDBTransactionBackendImpl.h:
15666         (WebCore::IDBTransactionBackendImpl::backingStoreTransaction):
15667         * WebCore.xcodeproj/project.pbxproj:
15668
15669 2012-11-09  Tien-Ren Chen  <trchen@chromium.org>
15670
15671         Correct scroll adjustment for touchEvent.clientX/clientY
15672         https://bugs.webkit.org/show_bug.cgi?id=101800
15673
15674         Reviewed by Adam Barth.
15675
15676         FrameView::scrollX/scrollY returns scroll offset in (scaled) frame coordinate.
15677         Convert to document coordinate before passing to JavaScript.
15678
15679         Test: fast/events/touch/touch-scaled-scrolled.html
15680
15681         * dom/Touch.cpp:
15682         (WebCore::contentsX):
15683         (WebCore::contentsY):
15684
15685 2012-11-09  Alexandru Chiculita  <achicu@adobe.com>
15686
15687         [Texmap][CSS Shaders] Enable CSS Shaders in TextureMapperGL
15688         https://bugs.webkit.org/show_bug.cgi?id=98990
15689
15690         Reviewed by Noam Rosenthal.
15691
15692         Added code that draws the Custom Filter in the TextureMapperGL. Also added 
15693         required code to make a depth buffer for a BitmapTextureGL.
15694
15695         Note that the code is not optimized yet, so it will always recompile the shader.
15696
15697         Test: css3/filters/custom/composited/custom-filter-blend-modes.html
15698
15699         * platform/graphics/texmap/TextureMapperGL.cpp:
15700         (WebCore::BitmapTextureGL::BitmapTextureGL):
15701         (WebCore::getPassesRequiredForFilter):
15702         (WebCore):
15703         (WebCore::TextureMapperGL::drawUsingCustomFilter):
15704         (WebCore::BitmapTextureGL::applyFilters):
15705         (WebCore::BitmapTextureGL::initializeDepthBuffer):
15706         (WebCore::BitmapTextureGL::~BitmapTextureGL):
15707         * platform/graphics/texmap/TextureMapperGL.h:
15708         (BitmapTextureGL):
15709
15710 2012-11-09  Sadrul Habib Chowdhury  <sadrul@chromium.org>
15711
15712         CustomEvent: Allow taking in a serialized value during initialization.
15713         https://bugs.webkit.org/show_bug.cgi?id=101348
15714
15715         Reviewed by Adam Barth.
15716
15717         If a CustomEvent is initialized using a serialized value, then for each access
15718         to |detail|, the value is deserialized first. This way, each world gets a different
15719         deserialization.
15720
15721         * UseV8.cmake:
15722         * WebCore.gypi:
15723         * bindings/v8/V8HiddenPropertyName.h:
15724         (WebCore):
15725         * bindings/v8/custom/V8CustomEventCustom.cpp: Copied from Source/WebCore/bindings/v8/V8HiddenPropertyName.h.
15726         (WebCore):
15727         (WebCore::V8CustomEvent::detailAccessorGetter):
15728         * dom/CustomEvent.cpp:
15729         (WebCore::CustomEvent::initCustomEvent):
15730         (WebCore):
15731         * dom/CustomEvent.h:
15732         (CustomEvent):
15733         (WebCore::CustomEvent::serializedScriptValue):
15734         * dom/CustomEvent.idl:
15735
15736 2012-11-09  Brady Eidson  <beidson@apple.com>
15737
15738         Implement WebResourceBuffer::isEmpty()
15739         https://bugs.webkit.org/show_bug.cgi?id=101805
15740
15741         Reviewed by Alexey Proskuryakov.
15742
15743         This is required to make the existing subresource loading in NetworkProcess work correctly,
15744         as there's an isEmpty() check in the WebProcess that decides whether or not to actually deliver 
15745         the data to the ResourceLoader.
15746
15747         No new tests (No change in behavior in any configuration we test.)
15748
15749         * loader/ResourceBuffer.h: Make isEmpty() virtual.
15750
15751 2012-11-09  Michael Saboff  <msaboff@apple.com>
15752
15753         HTML Attributes names and values should be created as 8 bit string where possible
15754         https://bugs.webkit.org/show_bug.cgi?id=101781
15755
15756         Reviewed by Filip Pizlo.
15757
15758         Given that almost all attribute names and values are lower case ASCII, we should try to
15759         create 8 bit strings to process them.  Creating an AtomicString already tries to make
15760         an 8 bit string, so that didn't need to change.
15761
15762         No new tests, functionality covered by existing tests.
15763
15764         * html/HTMLViewSourceDocument.cpp:
15765         (WebCore::HTMLViewSourceDocument::processTagToken):
15766         * html/parser/HTMLMetaCharsetParser.cpp:
15767         (WebCore::HTMLMetaCharsetParser::processMeta):
15768         * html/parser/HTMLPreloadScanner.cpp:
15769         (WebCore::PreloadTask::processAttributes):
15770
15771 2012-11-09  Dana Jansens  <danakj@chromium.org>
15772
15773         [chromium] Define WEBKIT_IMPLEMENTATION everywhere inside WebCore
15774         https://bugs.webkit.org/show_bug.cgi?id=101795
15775
15776         Reviewed by James Robinson.
15777
15778         * WebCore.gyp/WebCore.gyp:
15779
15780 2012-11-09  Sheriff Bot  <webkit.review.bot@gmail.com>
15781
15782         Unreviewed, rolling out r134101.
15783         http://trac.webkit.org/changeset/134101
15784         https://bugs.webkit.org/show_bug.cgi?id=101790
15785
15786         IDBDatabaseBackendTest.BackingStoreRetention failing
15787         (Requested by jsbell|gardener on #webkit).
15788
15789         * GNUmakefile.list.am:
15790         * Modules/indexeddb/IDBBackingStore.cpp:
15791         (WebCore::IDBLevelDBBackingStore::IDBLevelDBBackingStore):
15792         (WebCore::IDBLevelDBBackingStore::~IDBLevelDBBackingStore):
15793         (WebCore::IDBLevelDBBackingStore::open):
15794         (WebCore::IDBLevelDBBackingStore::getDatabaseNames):
15795         (WebCore::IDBLevelDBBackingStore::getIDBDatabaseMetaData):
15796         (WebCore::IDBLevelDBBackingStore::createIDBDatabaseMetaData):
15797         (WebCore::IDBLevelDBBackingStore::updateIDBDatabaseIntVersion):
15798         (WebCore::IDBLevelDBBackingStore::updateIDBDatabaseMetaData):
15799         (WebCore::IDBLevelDBBackingStore::deleteDatabase):
15800         (WebCore::IDBLevelDBBackingStore::getObjectStores):
15801         (WebCore::IDBLevelDBBackingStore::createObjectStore):
15802         (WebCore::IDBLevelDBBackingStore::deleteObjectStore):
15803         (WebCore::IDBLevelDBBackingStore::getRecord):
15804         (WebCore):
15805         (WebCore::IDBLevelDBBackingStore::putRecord):
15806         (WebCore::IDBLevelDBBackingStore::clearObjectStore):
15807         (WebCore::IDBLevelDBBackingStore::createInvalidRecordIdentifier):
15808         (WebCore::IDBLevelDBBackingStore::deleteRecord):
15809         (WebCore::IDBLevelDBBackingStore::getKeyGeneratorCurrentNumber):
15810         (WebCore::IDBLevelDBBackingStore::maybeUpdateKeyGeneratorCurrentNumber):
15811         (WebCore::IDBLevelDBBackingStore::keyExistsInObjectStore):
15812         (WebCore::IDBLevelDBBackingStore::getIndexes):
15813         (WebCore::IDBLevelDBBackingStore::createIndex):
15814         (WebCore::IDBLevelDBBackingStore::deleteIndex):
15815         (WebCore::IDBLevelDBBackingStore::putIndexDataForRecord):
15816         (WebCore::IDBLevelDBBackingStore::deleteIndexDataForRecord):
15817         (WebCore::IDBLevelDBBackingStore::findKeyInIndex):
15818         (WebCore::IDBLevelDBBackingStore::getPrimaryKeyViaIndex):
15819         (WebCore::IDBLevelDBBackingStore::keyExistsInIndex):
15820         (WebCore::IDBLevelDBBackingStore::openObjectStoreCursor):
15821         (WebCore::IDBLevelDBBackingStore::openObjectStoreKeyCursor):
15822         (WebCore::IDBLevelDBBackingStore::openIndexKeyCursor):
15823         (WebCore::IDBLevelDBBackingStore::openIndexCursor):
15824         (WebCore::IDBLevelDBBackingStore::createTransaction):
15825         (WebCore::IDBLevelDBBackingStore::Transaction::create):
15826         (WebCore::IDBLevelDBBackingStore::Transaction::Transaction):
15827         (WebCore::IDBLevelDBBackingStore::Transaction::begin):
15828         (WebCore::IDBLevelDBBackingStore::Transaction::commit):
15829         (WebCore::IDBLevelDBBackingStore::Transaction::rollback):
15830         (WebCore::IDBLevelDBBackingStore::backingStoreExists):
15831         * Modules/indexeddb/IDBBackingStore.h:
15832         (WebCore):
15833         (WebCore::IDBBackingStore::~IDBBackingStore):
15834         (IDBBackingStore):
15835         (RecordIdentifier):
15836         (WebCore::IDBBackingStore::Cursor::~Cursor):
15837         (WebCore::IDBBackingStore::Transaction::~Transaction):
15838         (Transaction):
15839         * Modules/indexeddb/IDBFactoryBackendImpl.cpp:
15840         (WebCore::IDBFactoryBackendImpl::openBackingStore):
15841         * Modules/indexeddb/IDBLevelDBBackingStore.h: Copied from Source/WebCore/Modules/indexeddb/IDBBackingStore.h.
15842         (WebCore):
15843         (IDBLevelDBBackingStore):
15844         (Transaction):
15845         (WebCore::IDBLevelDBBackingStore::Transaction::levelDBTransactionFrom):
15846         * Modules/indexeddb/IDBObjectStoreBackendImpl.cpp:
15847         (WebCore::IDBObjectStoreBackendImpl::setIndexKeys):
15848         (WebCore::IDBObjectStoreBackendImpl::putInternal):
15849         (WebCore::IDBObjectStoreBackendImpl::deleteInternal):
15850         * Modules/indexeddb/IDBTransactionBackendImpl.cpp:
15851         (WebCore::IDBTransactionBackendImpl::IDBTransactionBackendImpl):
15852         (WebCore::IDBTransactionBackendImpl::abort):
15853         (WebCore::IDBTransactionBackendImpl::commit):
15854         (WebCore::IDBTransactionBackendImpl::taskTimerFired):
15855         * Modules/indexeddb/IDBTransactionBackendImpl.h:
15856         (WebCore::IDBTransactionBackendImpl::backingStoreTransaction):
15857         * WebCore.xcodeproj/project.pbxproj:
15858
15859 2012-11-09  Erik Arvidsson  <arv@chromium.org>
15860
15861         REGRESSION (r125239): classList contains() doesn't work after element was moved from strict mode document to quirks mode document
15862         https://bugs.webkit.org/show_bug.cgi?id=101627
15863
15864         Reviewed by Alexey Proskuryakov.
15865
15866         We used to only create m_classNamesForQuirksMode in the constructor or when the class attribute
15867         was changed. If an element is moved from a standards document to a quirks mode document the
15868         m_classNamesForQuirksMode would not be up to date which lead to wrong results.
15869
15870         Now we alway check if m_classNamesForQuirksMode is up to date (in quirks mode only).
15871
15872         Test: fast/dom/Element/class-list-move-between-document-with-different-quirks-mode.html
15873
15874         * html/ClassList.cpp:
15875         (WebCore::ClassList::classNames): Create the m_classNamesForQuirksMode lazily as needed so that
15876                                           it is up to date.
15877         * html/ClassList.h:
15878
15879 2012-11-09  Alec Flett  <alecflett@chromium.org>
15880
15881         IndexedDB: Combine IDBBackingStore and IDBLevelDBBackingStore
15882         https://bugs.webkit.org/show_bug.cgi?id=101415
15883
15884         Reviewed by Tony Chang.
15885
15886         Combine abstract interface IDBBackingStore with its only
15887         implementation, IDBLevelDBBackingStore, to reduce code
15888         complexity. The legacy structure existed to support a SQLLite
15889         IDBBackingStore, but it is no longer worth the complexity to
15890         support this abstraction.
15891
15892         Changes include:
15893         1) Merging IDBLevelDBBackingStore into IDBBackingStore.
15894
15895         2) Merge together IDBBackingStore's inner classes: Cursor,
15896         Transaction, and ObjectStoreRecordIdentfier with their respective
15897         subclasses in IDBLevelDBBackingStore.
15898
15899         3) Simplifying the inner Transaction class to not be refcounted or
15900         virtualized, to allow it to be a simple concrete member of its
15901         owner, IDBTransactionBackendImpl.
15902
15903         No new tests as this is purely a refactor.
15904
15905         * Modules/indexeddb/IDBBackingStore.cpp:
15906         (WebCore::recordInternalError):
15907         (WebCore::setUpMetadata):
15908         (WebCore::IDBBackingStore::IDBBackingStore):
15909         (WebCore):
15910         (WebCore::IDBBackingStore::~IDBBackingStore):
15911         (WebCore::IDBBackingStore::open):
15912         (WebCore::IDBBackingStore::getDatabaseNames):
15913         (WebCore::IDBBackingStore::getIDBDatabaseMetaData):
15914         (WebCore::IDBBackingStore::createIDBDatabaseMetaData):
15915         (WebCore::IDBBackingStore::updateIDBDatabaseIntVersion):
15916         (WebCore::IDBBackingStore::updateIDBDatabaseMetaData):
15917         (WebCore::deleteRange):
15918         (WebCore::IDBBackingStore::deleteDatabase):
15919         (WebCore::IDBBackingStore::getObjectStores):
15920         (WebCore::setMaxObjectStoreId):
15921         (WebCore::IDBBackingStore::createObjectStore):
15922         (WebCore::IDBBackingStore::deleteObjectStore):
15923         (WebCore::IDBBackingStore::getRecord):
15924         (WebCore::IDBBackingStore::putRecord):
15925         (WebCore::IDBBackingStore::clearObjectStore):
15926         (WebCore::IDBBackingStore::deleteRecord):
15927         (WebCore::IDBBackingStore::getKeyGeneratorCurrentNumber):
15928         (WebCore::IDBBackingStore::maybeUpdateKeyGeneratorCurrentNumber):
15929         (WebCore::IDBBackingStore::keyExistsInObjectStore):
15930         (WebCore::IDBBackingStore::getIndexes):
15931         (WebCore::setMaxIndexId):
15932         (WebCore::IDBBackingStore::createIndex):
15933         (WebCore::IDBBackingStore::deleteIndex):
15934         (WebCore::IDBBackingStore::putIndexDataForRecord):
15935         (WebCore::IDBBackingStore::deleteIndexDataForRecord):
15936         (WebCore::IDBBackingStore::findKeyInIndex):
15937         (WebCore::IDBBackingStore::getPrimaryKeyViaIndex):
15938         (WebCore::IDBBackingStore::keyExistsInIndex):
15939         (WebCore::IDBBackingStore::Cursor::Cursor):
15940         (WebCore::IDBBackingStore::Cursor::firstSeek):
15941         (WebCore::IDBBackingStore::Cursor::advance):
15942         (WebCore::IDBBackingStore::Cursor::continueFunction):
15943         (WebCore::IDBBackingStore::Cursor::haveEnteredRange):
15944         (WebCore::IDBBackingStore::Cursor::isPastBounds):
15945         (WebCore::ObjectStoreKeyCursorImpl::create):
15946         (ObjectStoreKeyCursorImpl):
15947         (WebCore::ObjectStoreKeyCursorImpl::value):
15948         (WebCore::ObjectStoreKeyCursorImpl::ObjectStoreKeyCursorImpl):
15949         (WebCore::ObjectStoreKeyCursorImpl::loadCurrentRow):
15950         (WebCore::ObjectStoreCursorImpl::create):
15951         (ObjectStoreCursorImpl):
15952         (WebCore::ObjectStoreCursorImpl::value):
15953         (WebCore::ObjectStoreCursorImpl::ObjectStoreCursorImpl):
15954         (WebCore::ObjectStoreCursorImpl::loadCurrentRow):
15955         (WebCore::IndexKeyCursorImpl::create):
15956         (IndexKeyCursorImpl):
15957         (WebCore::IndexKeyCursorImpl::value):
15958         (WebCore::IndexKeyCursorImpl::primaryKey):
15959         (WebCore::IndexKeyCursorImpl::recordIdentifier):
15960         (WebCore::IndexKeyCursorImpl::IndexKeyCursorImpl):
15961         (WebCore::IndexKeyCursorImpl::loadCurrentRow):
15962         (WebCore::IndexCursorImpl::create):
15963         (IndexCursorImpl):
15964         (WebCore::IndexCursorImpl::value):
15965         (WebCore::IndexCursorImpl::primaryKey):
15966         (WebCore::IndexCursorImpl::recordIdentifier):
15967         (WebCore::IndexCursorImpl::IndexCursorImpl):
15968         (WebCore::IndexCursorImpl::loadCurrentRow):
15969         (WebCore::objectStoreCursorOptions):
15970         (WebCore::indexCursorOptions):
15971         (WebCore::IDBBackingStore::openObjectStoreCursor):
15972         (WebCore::IDBBackingStore::openObjectStoreKeyCursor):
15973         (WebCore::IDBBackingStore::openIndexKeyCursor):
15974         (WebCore::IDBBackingStore::openIndexCursor):
15975         (WebCore::IDBBackingStore::Transaction::Transaction):
15976         (WebCore::IDBBackingStore::Transaction::begin):
15977         (WebCore::IDBBackingStore::Transaction::commit):
15978         (WebCore::IDBBackingStore::Transaction::rollback):
15979         * Modules/indexeddb/IDBBackingStore.h:
15980         (WebCore):
15981         (IDBBackingStore):
15982         (RecordIdentifier):
15983         (WebCore::IDBBackingStore::RecordIdentifier::create):
15984         (WebCore::IDBBackingStore::RecordIdentifier::~RecordIdentifier):
15985         (WebCore::IDBBackingStore::RecordIdentifier::isValid):
15986         (WebCore::IDBBackingStore::RecordIdentifier::primaryKey):
15987         (WebCore::IDBBackingStore::RecordIdentifier::setPrimaryKey):
15988         (WebCore::IDBBackingStore::RecordIdentifier::version):
15989         (WebCore::IDBBackingStore::RecordIdentifier::setVersion):
15990         (WebCore::IDBBackingStore::RecordIdentifier::RecordIdentifier):
15991         (Transaction):
15992         (WebCore::IDBBackingStore::Transaction::levelDBTransactionFrom):
15993         (CursorOptions):
15994         (Cursor):
15995         (WebCore::IDBBackingStore::Cursor::Cursor):
15996         (WebCore::IDBBackingStore::Cursor::key):
15997         (WebCore::IDBBackingStore::Cursor::primaryKey):
15998         (WebCore::IDBBackingStore::Cursor::~Cursor):
15999         * Modules/indexeddb/IDBFactoryBackendImpl.cpp:
16000         (WebCore::IDBFactoryBackendImpl::openBackingStore):
16001         * Modules/indexeddb/IDBIndexBackendImpl.cpp:
16002         (WebCore::IDBIndexBackendImpl::countInternal):
16003         * Modules/indexeddb/IDBLevelDBBackingStore.h: Removed.
16004         * Modules/indexeddb/IDBObjectStoreBackendImpl.cpp:
16005         (WebCore::IDBObjectStoreBackendImpl::setIndexKeys):
16006         (WebCore::IDBObjectStoreBackendImpl::putInternal):
16007         (WebCore::IDBObjectStoreBackendImpl::deleteInternal):
16008         * Modules/indexeddb/IDBTransactionBackendImpl.cpp:
16009         (WebCore::IDBTransactionBackendImpl::IDBTransactionBackendImpl):
16010         (WebCore::IDBTransactionBackendImpl::abort):
16011         (WebCore::IDBTransactionBackendImpl::commit):
16012         (WebCore::IDBTransactionBackendImpl::taskTimerFired):
16013         * Modules/indexeddb/IDBTransactionBackendImpl.h:
16014         (WebCore::IDBTransactionBackendImpl::backingStoreTransaction):
16015         * WebCore.xcodeproj/project.pbxproj:
16016
16017 2012-10-28  Timothy Hatcher  <timothy@apple.com>
16018
16019         Make -webkit-canvas in CSS use the full backing store instead
16020         of always 1x when rendering.
16021
16022         https://bugs.webkit.org/show_bug.cgi?id=100611
16023
16024         Reviewed by Dean Jackson.
16025
16026         Test: fast/canvas/canvas-as-image-hidpi.html
16027
16028         * html/HTMLCanvasElement.cpp:
16029         (WebCore::HTMLCanvasElement::makePresentationCopy): Pass Unscaled to copyImage.
16030         (WebCore::HTMLCanvasElement::copiedImage): Ditto.
16031         * platform/graphics/ImageBuffer.h:
16032         * platform/graphics/cg/ImageBufferCG.cpp:
16033         (WebCore::ImageBuffer::copyImage): Added Scale parameter and use copyNativeImage for Unscaled.
16034         * platform/graphics/cairo/ImageBufferCairo.cpp:
16035         (WebCore::ImageBuffer::copyImage): Added unnamed ScaleBehavior parameter.
16036         * platform/graphics/qt/ImageBufferQt.cpp:
16037         (WebCore::ImageBuffer::copyImage): Ditto.
16038         * platform/graphics/skia/ImageBufferSkia.cpp:
16039         (WebCore::ImageBuffer::copyImage): Ditto.
16040         * platform/graphics/wince/ImageBufferWinCE.cpp:
16041         (WebCore::ImageBuffer::copyImage): Ditto.
16042         * platform/graphics/wx/ImageBufferWx.cpp:
16043         (WebCore::ImageBuffer::copyImage): Ditto.
16044
16045 2012-10-28  Timothy Hatcher  <timothy@apple.com>
16046
16047         Reset the canvas backing store pixel ratio when the buffer resizes.
16048
16049         The backing store was not being recreated using the current page pixel ratio
16050         when a resize occurred.
16051
16052         https://bugs.webkit.org/show_bug.cgi?id=100608
16053
16054         Reviewed by Darin Adler.
16055
16056         Test: fast/canvas/canvas-resize-reset-pixelRatio.html
16057
16058         * html/HTMLCanvasElement.cpp:
16059         (WebCore::HTMLCanvasElement::HTMLCanvasElement): Use targetDeviceScaleFactor.
16060         (WebCore::HTMLCanvasElement::reset): Do a clear only if the pixel ratios also
16061         match. Store the new pixel ratio in m_deviceScaleFactor.
16062         (WebCore::HTMLCanvasElement::targetDeviceScaleFactor): Added.
16063         * html/HTMLCanvasElement.h:
16064         (WebCore::HTMLCanvasElement::setSize): Return early only if the sizes and
16065         pixel ratios match.
16066
16067 2012-11-08  Ryosuke Niwa  <rniwa@webkit.org>
16068
16069         RemoveFormat command doesn't remove background color
16070         https://bugs.webkit.org/show_bug.cgi?id=101682
16071
16072         Reviewed by Tony Chang.
16073
16074         Fixed the bug by removing all non-transparent background-color properties.
16075
16076         Test: editing/execCommand/remove-format-background-color.html
16077
16078         * editing/RemoveFormatCommand.cpp:
16079         (WebCore::RemoveFormatCommand::doApply):
16080
16081 2012-11-09  Alec Flett  <alecflett@chromium.org>
16082
16083         IndexedDB: switch frontend to use int64_t-based references
16084         https://bugs.webkit.org/show_bug.cgi?id=100426
16085
16086         Reviewed by Tony Chang.
16087
16088         Remove String-based objectStore/index references, obsoleted by
16089         https://bugs.webkit.org/show_bug.cgi?id=100425.
16090
16091         No new tests as this is the second half of a refactor.
16092
16093         * Modules/indexeddb/IDBCallbacks.h:
16094         * Modules/indexeddb/IDBDatabase.cpp:
16095         (WebCore::IDBDatabase::deleteObjectStore):
16096         (WebCore::IDBDatabase::transaction):
16097         * Modules/indexeddb/IDBDatabaseBackendImpl.cpp:
16098         (WebCore::IDBDatabaseBackendImpl::setVersion):
16099         (WebCore::IDBDatabaseBackendImpl::transaction):
16100         (WebCore::IDBDatabaseBackendImpl::runIntVersionChangeTransaction):
16101         * Modules/indexeddb/IDBDatabaseBackendImpl.h:
16102         (IDBDatabaseBackendImpl):
16103         * Modules/indexeddb/IDBDatabaseBackendInterface.h:
16104         (IDBDatabaseBackendInterface):
16105         * Modules/indexeddb/IDBMetadata.h:
16106         (WebCore::IDBObjectStoreMetadata::findIndex):
16107         (IDBObjectStoreMetadata):
16108         (WebCore::IDBObjectStoreMetadata::containsIndex):
16109         * Modules/indexeddb/IDBObjectStore.cpp:
16110         (WebCore::IDBObjectStore::put):
16111         (WebCore):
16112         (WebCore::IDBObjectStore::index):
16113         (WebCore::IDBObjectStore::deleteIndex):
16114         * Modules/indexeddb/IDBObjectStoreBackendImpl.cpp:
16115         (WebCore::IDBObjectStoreBackendImpl::put):
16116         (WebCore):
16117         * Modules/indexeddb/IDBObjectStoreBackendImpl.h:
16118         (IDBObjectStoreBackendImpl):
16119         * Modules/indexeddb/IDBObjectStoreBackendInterface.h:
16120         * inspector/Inspector-1.0.json:
16121         * inspector/Inspector.json:
16122         * inspector/InspectorIndexedDBAgent.cpp:
16123         (WebCore):
16124         (WebCore::InspectorIndexedDBAgent::requestData):
16125         * inspector/InspectorIndexedDBAgent.h:
16126         (InspectorIndexedDBAgent):
16127
16128 2012-11-09  Mario Sanchez Prada  <mario@webkit.org>
16129
16130         [GTK] Isolate the GTK/Gail/Pango specific code in accessibility/gtk
16131         https://bugs.webkit.org/show_bug.cgi?id=101727
16132
16133         Reviewed by Chris Fleizach.
16134
16135         Added conditional compilation checks for GTK+ specific
16136         accessibility code, to pave the way for sharing this
16137         implementation with other ports (e.g WebKitEFL).
16138
16139         * accessibility/gtk/WebKitAccessibleInterfaceText.cpp:
16140         (webkitAccessibleTextGetTextAfterOffset): Added conditional
16141         compilation checks, only implementing it in GTK so far.
16142         (webkitAccessibleTextGetTextAtOffset): Ditto.
16143         (webkitAccessibleTextGetTextBeforeOffset): Ditto.
16144         * accessibility/gtk/WebKitAccessibleWrapperAtk.cpp:
16145         (atkParentOfRootObject): Added conditional compilation checks,
16146         only implementing in GTK the part of getting the accessible object
16147         for the root object.
16148         (webkitAccessibleGetParent): Updated comments.
16149         (webkitAccessibleGetNChildren): Ditto.
16150         (webkitAccessibleRefChild): Ditto.
16151         (webkitAccessibleGetIndexInParent): Ditto.
16152         (webkitAccessibleGetAttributes): Only set the 'toolkit' attribute
16153         for GTK. Other ports might be interested in this too.
16154         (setAtkStateSetFromCoreObject): Updated comments.
16155
16156 2012-11-09  Tommy Widenflycht  <tommyw@google.com>
16157
16158         MediaStream API: Don't trigger any object deletion during RTCPeerConnection::stop
16159         https://bugs.webkit.org/show_bug.cgi?id=101586
16160
16161         Reviewed by Adam Barth.
16162
16163         Stop calling stop on the RTCPeerConnectionHandler, and don't delete it, when
16164         ActiveDOMObject::stop is called on RTCPeerConnection. Due to the async nature of the new
16165         API some WebCore objects might be cleaned away which is not allowed at this stage.
16166
16167         This behaviour is not possible to test unfortunately in webkit.
16168
16169         * Modules/mediastream/RTCPeerConnection.cpp:
16170         (WebCore::RTCPeerConnection::stop):
16171
16172 2012-11-09  Joshua Bell  <jsbell@chromium.org>
16173
16174         [Chromium] Unreviewed gardening. Fix chromium-win builds following r134082
16175
16176         * WebCore.gypi:
16177
16178 2012-11-09  Dan Carney  <dcarney@google.com>
16179
16180         [V8] Remove ScriptController::windowShell()
16181         https://bugs.webkit.org/show_bug.cgi?id=100235
16182
16183         Reviewed by Adam Barth.
16184
16185         Refactored windowShell(DOMWrapperWorld*) and
16186         existingWindowShell(DOMWrapperWorld*) to be like JSC.
16187
16188         No new tests. No change in functionality.
16189
16190         * bindings/scripts/CodeGeneratorV8.pm:
16191         (GenerateToV8Converters):
16192         * bindings/v8/DOMWrapperWorld.cpp:
16193         (WebCore::isolatedWorldMap):
16194         (WebCore::DOMWrapperWorld::getAllWorlds):
16195         (WebCore):
16196         * bindings/v8/DOMWrapperWorld.h:
16197         (DOMWrapperWorld):
16198         * bindings/v8/PageScriptDebugServer.cpp:
16199         (WebCore::PageScriptDebugServer::addListener):
16200         * bindings/v8/ScriptController.cpp:
16201         (WebCore::ScriptController::~ScriptController):
16202         (WebCore::ScriptController::clearForOutOfMemory):
16203         (WebCore):
16204         (WebCore::ScriptController::clearForClose):
16205         (WebCore::ScriptController::updateSecurityOrigin):
16206         (WebCore::ScriptController::initializeMainWorld): Returns true if the main world was initialized.
16207         (WebCore::existingWindowShellWorkaroundWorld):
16208         (WebCore::ScriptController::existingWindowShell):
16209         (WebCore::ScriptController::windowShell):
16210         (WebCore::ScriptController::evaluateInIsolatedWorld):
16211         (WebCore::ScriptController::currentWorldContext):
16212         (WebCore::ScriptController::mainWorldContext):
16213         (WebCore::ScriptController::haveInterpreter):
16214         (WebCore::ScriptController::enableEval):
16215         (WebCore::ScriptController::disableEval):
16216         (WebCore::ScriptController::clearWindowShell):
16217         (WebCore::ScriptController::setContextDebugId):
16218         (WebCore::ScriptController::updateDocument):
16219         (WebCore::ScriptController::namedItemAdded):
16220         (WebCore::ScriptController::namedItemRemoved):
16221         * bindings/v8/ScriptController.h:
16222         (ScriptController):
16223         (WebCore::ScriptController::getAllWorlds):
16224         * bindings/v8/V8Binding.cpp:
16225         (WebCore::perContextDataForCurrentWorld):
16226         (WebCore::handleOutOfMemory):
16227         * bindings/v8/V8DOMWindowShell.cpp:
16228         (WebCore::V8DOMWindowShell::initializeIfNeeded):
16229         (WebCore::V8DOMWindowShell::updateDocument):
16230         (WebCore::V8DOMWindowShell::namedItemAdded):
16231         (WebCore::V8DOMWindowShell::namedItemRemoved):
16232         * bindings/v8/V8DOMWindowShell.h:
16233         (WebCore::V8DOMWindowShell::isContextInitialized):
16234         (WebCore::V8DOMWindowShell::isGlobalInitialized):
16235         * bindings/v8/custom/V8DocumentCustom.cpp:
16236         (WebCore::toV8):
16237         * bindings/v8/custom/V8HTMLDocumentCustom.cpp:
16238         (WebCore::toV8):
16239         * bindings/v8/custom/V8SVGDocumentCustom.cpp:
16240         (WebCore::toV8):
16241
16242 2012-11-09  Adam Barth  <abarth@webkit.org>
16243
16244         [V8] Remove a level of indirection in DOMDataStore
16245         https://bugs.webkit.org/show_bug.cgi?id=101690
16246
16247         Reviewed by Kentaro Hara.
16248
16249         There is no longer any reason for the DOMDataStore to hold the wrapper
16250         map via a pointer. It can just hold the wrapper map directly, saving a
16251         level of indirection. I doubt this has any measurable performance gain.
16252
16253         * bindings/v8/DOMDataStore.cpp:
16254         (WebCore::DOMDataStore::DOMDataStore):
16255         (WebCore::DOMDataStore::~DOMDataStore):
16256         (WebCore::DOMDataStore::reportMemoryUsage):
16257         * bindings/v8/DOMDataStore.h:
16258         (WebCore::DOMDataStore::get):
16259         (WebCore::DOMDataStore::set):
16260         (DOMDataStore):
16261
16262 2012-11-09  Mihnea Ovidenie  <mihnea@adobe.com>
16263
16264         [CSSRegions] Region styling properties are not filtered correctly
16265         https://bugs.webkit.org/show_bug.cgi?id=101768
16266
16267         Reviewed by Andreas Kling.
16268
16269         Region styling allows only a handful of css properties. There is a mechanism in place,
16270         in StyleResolver::isValidRegionStyleProperty that filters the supported region style properties.
16271         In order to be effective, this mechanism relies on RuleData::m_isInRegionRule being set correctly.
16272         This patch makes sure that the flag RuleData::m_isInRegionRule is set properly in RuleData constructor.
16273
16274         Test: fast/regions/region-style-not-supported-properties.html
16275
16276         * css/RuleSet.cpp:
16277         (WebCore::RuleData::RuleData):
16278
16279 2012-11-09  Tommy Widenflycht  <tommyw@google.com>
16280
16281         MediaStream API: Deleting all files relating to the deprecated PeerConnection00
16282         https://bugs.webkit.org/show_bug.cgi?id=101730
16283
16284         Reviewed by Adam Barth.
16285
16286         Since RTCPeerConenction has superseeded PeerConnection00 this patch removes all
16287         files relating to the old API.
16288
16289         No testing needed, the remaining tests makes sure that nothing else breaks.
16290
16291         * CMakeLists.txt:
16292         * GNUmakefile.list.am:
16293         * Modules/mediastream/DOMWindowMediaStream.idl:
16294         * Modules/mediastream/IceCallback.h: Removed.
16295         * Modules/mediastream/IceCallback.idl: Removed.
16296         * Modules/mediastream/IceCandidate.cpp: Removed.
16297         * Modules/mediastream/IceCandidate.h: Removed.
16298         * Modules/mediastream/IceCandidate.idl: Removed.
16299         * Modules/mediastream/PeerConnection00.cpp: Removed.
16300         * Modules/mediastream/PeerConnection00.h: Removed.
16301         * Modules/mediastream/PeerConnection00.idl: Removed.
16302         * Modules/mediastream/SessionDescription.cpp: Removed.
16303         * Modules/mediastream/SessionDescription.h: Removed.
16304         * Modules/mediastream/SessionDescription.idl: Removed.
16305         * WebCore.gypi:
16306         * bindings/generic/RuntimeEnabledFeatures.cpp:
16307         (WebCore):
16308         * bindings/generic/RuntimeEnabledFeatures.h:
16309         (RuntimeEnabledFeatures):
16310         * dom/EventTargetFactory.in:
16311         * platform/chromium/support/WebICECandidateDescriptor.cpp: Removed.
16312         * platform/chromium/support/WebICEOptions.cpp: Removed.
16313         * platform/chromium/support/WebMediaHints.cpp: Removed.
16314         * platform/mediastream/IceCandidateDescriptor.cpp: Removed.
16315         * platform/mediastream/IceCandidateDescriptor.h: Removed.
16316         * platform/mediastream/IceOptions.cpp: Removed.
16317         * platform/mediastream/IceOptions.h: Removed.
16318         * platform/mediastream/MediaHints.cpp: Removed.
16319         * platform/mediastream/MediaHints.h: Removed.
16320         * platform/mediastream/MediaStreamCenter.h:
16321         (WebCore):
16322         (MediaStreamCenter):
16323         * platform/mediastream/PeerConnection00Handler.cpp: Removed.
16324         * platform/mediastream/PeerConnection00Handler.h: Removed.
16325         * platform/mediastream/PeerConnection00HandlerClient.h: Removed.
16326         * platform/mediastream/SessionDescriptionDescriptor.cpp: Removed.
16327         * platform/mediastream/SessionDescriptionDescriptor.h: Removed.
16328         * platform/mediastream/blackberry/MediaStreamCenterBlackBerry.cpp:
16329         * platform/mediastream/blackberry/MediaStreamCenterBlackBerry.h:
16330         (WebCore):
16331         (MediaStreamCenterBlackBerry):
16332         * platform/mediastream/chromium/MediaStreamCenterChromium.cpp:
16333         * platform/mediastream/chromium/MediaStreamCenterChromium.h:
16334         (WebCore):
16335         (MediaStreamCenterChromium):
16336         * platform/mediastream/chromium/PeerConnection00Handler.cpp: Removed.
16337         * platform/mediastream/chromium/PeerConnection00HandlerInternal.cpp: Removed.
16338         * platform/mediastream/chromium/PeerConnection00HandlerInternal.h: Removed.
16339         * platform/mediastream/gstreamer/MediaStreamCenterGStreamer.cpp:
16340         * platform/mediastream/gstreamer/MediaStreamCenterGStreamer.h:
16341         (WebCore):
16342         (MediaStreamCenterGStreamer):
16343
16344 2012-11-09  Jer Noble  <jer.noble@apple.com>
16345
16346         Plugin diagnostic logging should send plugin file basename instead of MIME type.
16347         https://bugs.webkit.org/show_bug.cgi?id=101679
16348
16349         Reviewed by Eric Carlson.
16350
16351         Log the basename of the plugin file rather than the mime type so as to more
16352         accurately log which plugin was used to handle the request.
16353
16354         * loader/SubframeLoader.cpp:
16355         (WebCore::logPluginRequest): Log the plugin 'file' field, if present.
16356         * plugins/PluginData.cpp:
16357         (WebCore::PluginData::pluginInfoForMimeType): Factored out from pluginNameForMimeType.
16358         (WebCore::PluginData::pluginNameForMimeType): Use pluginInfoForMimeType to retrieve name field.
16359         (WebCore::PluginData::pluginFileForMimeType): Use pluginInfoForMimeType to retrieve file field.
16360         * plugins/PluginData.h:
16361
16362 2012-11-09  Alexey Proskuryakov  <ap@apple.com>
16363
16364         CookieJar uses Document class, which is a layering violation
16365         https://bugs.webkit.org/show_bug.cgi?id=101621
16366
16367         Reviewed by Brady Eidson.
16368
16369         Split CookieJar in two parts, one that takes a Document, and another that is a pure
16370         platform one, using NetworkingContext to access the correct platform storage.
16371
16372         * GNUmakefile.list.am:
16373         * PlatformBlackBerry.cmake:
16374         * Target.pri:
16375         * WebCore.gypi:
16376         * WebCore.gyp/WebCore.gyp:
16377         * WebCore.vcproj/WebCore.vcproj:
16378         * WebCore.xcodeproj/project.pbxproj:
16379         Updated.
16380
16381         * loader/CookieJar.cpp: Added.
16382         (WebCore::networkingContext):
16383         (WebCore::cookies):
16384         (WebCore::setCookies):
16385         (WebCore::cookiesEnabled):
16386         (WebCore::cookieRequestHeaderFieldValue):
16387         (WebCore::getRawCookies):
16388         (WebCore::deleteCookie):
16389         (WebCore::getHostnamesWithCookies):
16390         (WebCore::deleteCookiesForHostname):
16391         (WebCore::deleteAllCookies):
16392         * loader/CookieJar.h: Copied from Source/WebCore/platform/CookieJar.h.
16393         This is an adaptor for pure platform implementations. Clients continue to use the
16394         old interface unchanged.
16395
16396         * platform/blackberry/CookieJarBlackBerry.cpp: Removed.
16397         * loader/blackberry/CookieJarBlackBerry.cpp: Copied from Source/WebCore/platform/blackberry/CookieJarBlackBerry.cpp.
16398         * platform/network/chromium/CookieJarChromium.cpp: Removed.
16399         * loader/chromium/CookieJarChromium.cpp: Copied from Source/WebCore/platform/network/chromium/CookieJarChromium.cpp.
16400         These platforms do not have a pure platform implementation yet, so they just keep
16401         to use original implementations. Since the code is not in platform/ any more, the
16402         violation is resolved for Chromium and Blackberry, too.
16403
16404         * platform/CookieJar.h: Removed.
16405         * platform/network/PlatformCookieJar.h: Copied from Source/WebCore/platform/CookieJar.h.
16406         The platform interface is now more uniform - all functions take a NetworkingContext
16407         instead of hardcoding which cookie storage to use in some cases.
16408         Renamed functions that are only useful for document.cookie implementation to look
16409         less generic.
16410
16411         * platform/mac/CookieJar.mm: Removed.
16412         * platform/network/mac/CookieJarMac.mm: Copied from Source/WebCore/platform/mac/CookieJar.mm.
16413         (WebCore::cookiesForDOM): This now takes a context instead of Document, and also
16414         takes a firstParty URL (unused on Mac, but used on some other platforms).
16415         (WebCore::cookieRequestHeaderFieldValue): Get cookie storage from context (and
16416         use shared one if context is null).
16417         (WebCore::setCookiesFromDOM): Ditto.
16418         (WebCore::cookiesEnabled): Ditto.
16419         (WebCore::getRawCookies): Ditto.
16420         (WebCore::deleteCookie): Ditto.
16421         (WebCore::getHostnamesWithCookies): Ditto. This used to only support default storage,
16422         but its cleaner to have a uniform interface.
16423         (WebCore::deleteCookiesForHostname): Ditto.
16424         (WebCore::deleteAllCookies): Ditto.
16425
16426         * platform/network/cf/CookieJarCFNet.cpp:
16427         Same changes as on Mac.
16428
16429         * platform/network/curl/CookieJarCurl.cpp:
16430         Updated for new interface. Implementation is largely a dummy one.
16431
16432         * platform/qt/CookieJarQt.h: Removed.
16433         * platform/network/qt/CookieJarQt.h: Copied from Source/WebCore/platform/qt/CookieJarQt.h.
16434         Moved to a common location, most cookie files were in network/ already.
16435
16436         * platform/qt/CookieJarQt.cpp: Removed.
16437         * platform/network/qt/CookieJarQt.cpp: Copied from Source/WebCore/platform/qt/CookieJarQt.cpp.
16438         (WebCore::setCookiesFromDOM): Use context's or shared cooke jar as appropriate.
16439         (WebCore::cookiesForDOM): Ditto.
16440         (WebCore::cookieRequestHeaderFieldValue): Ditto.
16441         (WebCore::cookiesEnabled): Ditto.
16442         (WebCore::getRawCookies): Ditto.
16443         (WebCore::deleteCookie): Ditto.
16444         (WebCore::getHostnamesWithCookies): Back-end implementation can only handle shared
16445         jar here, assert that argument does not request another one.
16446         (WebCore::deleteCookiesForHostname): Ditto.
16447         (WebCore::deleteAllCookies): Ditto.
16448
16449         * platform/network/soup/CookieJarSoup.cpp:
16450         (WebCore::cookieJarForContext):
16451         (WebCore::setCookiesFromDOM):
16452         (WebCore::cookiesForContext):
16453         (WebCore::cookiesForDOM):
16454         (WebCore::cookieRequestHeaderFieldValue):
16455         (WebCore::cookiesEnabled):
16456         (WebCore::getRawCookies):
16457         (WebCore::deleteCookie):
16458         (WebCore::getHostnamesWithCookies):
16459         (WebCore::deleteCookiesForHostname):
16460         (WebCore::deleteAllCookies):
16461         Updated for new function signatures, and use the same cross-platform logic for
16462         choosing a cookie jar.
16463
16464         * platform/network/soup/CookieJarSoup.h: Don't include unnecessary CooieJar.h.
16465         
16466         * platform/network/win/CookieJarWin.cpp:
16467         (WebCore::setCookiesFromDOM):
16468         (WebCore::cookiesForDOM):
16469         (WebCore::cookieRequestHeaderFieldValue):
16470         (WebCore::cookiesEnabled):
16471         (WebCore::getRawCookies):
16472         (WebCore::deleteCookie):
16473         (WebCore::getHostnamesWithCookies):
16474         (WebCore::deleteCookiesForHostname):
16475         (WebCore::deleteAllCookies):
16476         Updated for new function signatures.
16477
16478 2012-11-09  Bruno de Oliveira Abinader  <bruno.abinader@basyskom.com>
16479
16480         [css] Text decoration's "blink" not valid when CSS3_TEXT is enabled
16481         https://bugs.webkit.org/show_bug.cgi?id=101750
16482
16483         Reviewed by Ojan Vafai.
16484
16485         This patch fixes an issue regarding "blink" value, which is valid for CSS 2.1
16486         "text-decoration" property, but recently have its parser function modified by
16487         the addition of CSS3 "-webkit-text-decoration-line" property.
16488
16489         The 'fast/css/getComputedStyle/getComputedStyle-text-decoration.html'
16490         layout test is updated with all possible value combinations.
16491
16492         * css/CSSParser.cpp:
16493         (WebCore::CSSParser::parseTextDecoration): Added 'blink' value to list
16494         if accepted.
16495
16496 2012-11-09  Xan Lopez  <xlopez@igalia.com>
16497
16498         [GTK] Do not use 'ls' to list IDL files in EXTRA_DIST
16499         https://bugs.webkit.org/show_bug.cgi?id=101581
16500
16501         Reviewed by Martin Robinson.
16502
16503         Use normal GNU Make wildcards instead of 'ls' to list files in
16504         EXTRA_DIST, it's safer and more straightforward.
16505
16506         * GNUmakefile.am: ditto.
16507
16508 2012-11-09  Charles Wei  <charles.wei@torchmobile.com.cn>
16509
16510         Need to clear exception in JSDictionary that might have been caused by previous operation.
16511         https://bugs.webkit.org/show_bug.cgi?id=96614
16512
16513         Reviewed by George Staikos.
16514
16515         IndexedDB IDBDatabase::createObjectStore supports both String type of KeyPath and
16516         String Array type of KeyPath. It will first try to get the keyPath as a String Array,
16517         if fails, it will try to get KeyPath as a String, from the Dictionary. The first get
16518         will leave the internal ExecState of Dictionary in exception state. We need to clear
16519         the exception state before the 2nd query, otherwise the second query will also fail.
16520
16521         No new tests. The existing test case LayoutTests/storage/indexeddb/tutorial.html should
16522         now work with this patch.
16523         * bindings/js/JSDictionary.cpp:
16524         (WebCore::JSDictionary::getWithUndefinedOrNullCheck):
16525
16526 2012-11-09  Keishi Hattori  <keishi@webkit.org>
16527
16528         Month/week picker should submit month/week string
16529         https://bugs.webkit.org/show_bug.cgi?id=101744
16530
16531         Reviewed by Kent Tamura.
16532
16533         Month/week picker should submit month/week string and not yyyy-mm-dd.
16534
16535         No new tests. Test will be added in Bug 101555 and Bug 101556.
16536
16537         * Resources/pagepopups/calendarPicker.js:
16538         (DaysTable.prototype._handleDayClick):
16539
16540 2012-11-07  Pavel Feldman  <pfeldman@chromium.org>
16541
16542         Web Inspector: wrong output for empty object {}
16543         https://bugs.webkit.org/show_bug.cgi?id=101356
16544
16545         Reviewed by Vsevolod Vlasov.
16546
16547         Changed preview formatting to iterate over enumerable properties only + visit the prototypes.
16548
16549         * inspector/InjectedScriptSource.js:
16550         (.):
16551         * inspector/front-end/ConsoleMessage.js:
16552         (WebInspector.ConsoleMessageImpl.prototype._appendObjectPreview):
16553
16554 2012-11-09  Keishi Hattori  <keishi@webkit.org>
16555
16556         Fix annotations in page popup files
16557         https://bugs.webkit.org/show_bug.cgi?id=101736
16558
16559         Reviewed by Kent Tamura.
16560
16561         Add @constructor where needed. Replacing /* with /** for annotations.
16562
16563         No new tests. No behavior change.
16564
16565         * Resources/pagepopups/calendarPicker.js:
16566         * Resources/pagepopups/pickerCommon.js:
16567         * Resources/pagepopups/suggestionPicker.js:
16568
16569 2012-11-09  Huang Dongsung  <luxtella@company100.net>
16570
16571         Coordinated Graphics: Remove a backing store of GraphicsLayer when the layer is far from the viewport.
16572         https://bugs.webkit.org/show_bug.cgi?id=101656
16573
16574         Reviewed by Kenneth Rohde Christiansen.
16575
16576         TiledBackingStore computes cover and keep rects to create, keep or remove tiles
16577         smartly, but currently TiledBackingStore expects a contents rect is big enough
16578         to cover the visibleRect. However, when CoordinatedGraphicsLayer uses TBS, it
16579         is usually wrong expectation.
16580
16581         We must compute cover and keep rects using the visibleRect, instead of
16582         the rect intersecting the visibleRect with m_rect, because TBS can be
16583         used as a backing store of GraphicsLayer and the visible rect usually
16584         does not intersect with m_rect.
16585         In the below case, the intersecting rect is an empty.
16586
16587          +---------------+
16588          |               |
16589          |   m_rect      |
16590          |       +-------|-----------------------+
16591          |       | HERE  |  cover or keep        |
16592          +---------------+      rect             |
16593                  |         +---------+           |
16594                  |         | visible |           |
16595                  |         |  rect   |           |
16596                  |         +---------+           |
16597                  |                               |
16598                  |                               |
16599                  +-------------------------------+
16600
16601         We must create or keep the tiles in the HERE region. Currently in the
16602         case, we do not create or keep tiles on the HERE region. Moreover, in
16603         the case, we early return, which means we don't remove any tiles. It
16604         causes to waste heap and video memory.
16605
16606         This patch changes TiledBackingStore to manage tiles smartly for
16607         Coordinated Graphics.
16608
16609         Changing cache policy is not testable in layout tests.
16610
16611         * platform/graphics/TiledBackingStore.cpp:
16612         (WebCore::TiledBackingStore::visibleRect):
16613         (WebCore::TiledBackingStore::visibleAreaIsCovered):
16614         (WebCore::TiledBackingStore::createTiles):
16615         (WebCore::TiledBackingStore::adjustForContentsRect):
16616         (WebCore::TiledBackingStore::removeAllNonVisibleTiles):
16617         * platform/graphics/TiledBackingStore.h:
16618         (TiledBackingStore):
16619
16620 2012-11-09  Keishi Hattori  <keishi@webkit.org>
16621
16622         Fix undefined variable in Week constructor for calendar picker
16623         https://bugs.webkit.org/show_bug.cgi?id=101734
16624
16625         Reviewed by Kent Tamura.
16626
16627         Closer compiler found an undefined variable in the Week constructor.
16628
16629         No new tests. This code isn't used.
16630
16631         * Resources/pagepopups/calendarPicker.js:
16632         (Week): Used wrong variable name.
16633
16634 2012-11-09  Pavel Feldman  <pfeldman@chromium.org>
16635
16636         Web Inspector: render canvas log as a grid.
16637         https://bugs.webkit.org/show_bug.cgi?id=101732
16638
16639         Reviewed by Vsevolod Vlasov.
16640
16641         * English.lproj/localizedStrings.js:
16642         * inspector/front-end/CanvasProfileView.js:
16643         (WebInspector.CanvasProfileView):
16644         (WebInspector.CanvasProfileView.prototype._onSelectTraceLog):
16645         (WebInspector.CanvasProfileView.prototype._replayTraceLog.didReplayTraceLog):
16646         (WebInspector.CanvasProfileView.prototype._replayTraceLog):
16647         (WebInspector.CanvasProfileHeader.prototype.traceLogId):
16648         (WebInspector.CanvasLogGrid):
16649         (WebInspector.CanvasLogGrid.prototype._didReceiveTraceLog):
16650         (WebInspector.CanvasLogGrid.prototype._createCallNode):
16651         * inspector/front-end/DataGrid.js:
16652         (WebInspector.DataGridNode.prototype.createCell):
16653         * inspector/front-end/canvasProfiler.css:
16654         (#canvas-replay-image-container):
16655
16656 2012-11-09  Allan Sandfeld Jensen  <allan.jensen@digia.com>
16657
16658         Regression(r107593) Crash in ContextMenuController::addInspectElementItem()
16659         https://bugs.webkit.org/show_bug.cgi?id=101595
16660
16661         Reviewed by Simon Hausmann.
16662
16663         If the contextMenu is a null pointer treat it as empty, appendItem will later
16664         create it if necessary.
16665
16666         * page/ContextMenuController.cpp:
16667         (WebCore::ContextMenuController::addInspectElementItem):
16668
16669 2012-11-09  Christophe Dumez  <christophe.dumez@intel.com>
16670
16671         [EFL][WK2] Add support for custom cursors
16672         https://bugs.webkit.org/show_bug.cgi?id=101723
16673
16674         Reviewed by Kenneth Rohde Christiansen.
16675
16676         Add getEvasObject() virtual method to Image class and
16677         provide implementation for BitmapImage.
16678
16679         No new tests, no behavior change.
16680
16681         * platform/efl/CursorEfl.cpp:
16682         (WebCore::cursorString):
16683         * platform/graphics/BitmapImage.h:
16684         (BitmapImage):
16685         * platform/graphics/Image.h:
16686         (Image):
16687         (WebCore::Image::getEvasObject):
16688         * platform/graphics/efl/ImageEfl.cpp:
16689         (WebCore::BitmapImage::getEvasObject):
16690         (WebCore):
16691
16692 2012-11-09  Adam Barth  <abarth@webkit.org>
16693
16694         IndexedDB should use mostly ScriptWrappable DOM objects
16695         https://bugs.webkit.org/show_bug.cgi?id=101694
16696
16697         Reviewed by Kentaro Hara.
16698
16699         These object always have JavaScript wrappers, so we should store the
16700         wrappers inline to use less memory and be faster.
16701
16702         * Modules/indexeddb/IDBAny.h:
16703         * Modules/indexeddb/IDBCursor.h:
16704         * Modules/indexeddb/IDBDatabase.h:
16705         * Modules/indexeddb/IDBFactory.h:
16706         * Modules/indexeddb/IDBIndex.h:
16707         * Modules/indexeddb/IDBKey.h:
16708         * Modules/indexeddb/IDBKeyRange.h:
16709         * Modules/indexeddb/IDBObjectStore.h:
16710         * Modules/indexeddb/IDBRequest.h:
16711         * Modules/indexeddb/IDBTransaction.h:
16712
16713 2012-11-09  Vsevolod Vlasov  <vsevik@chromium.org>
16714
16715         Web Inspector: Add meaningful error message when request content was evicted from inspector cache.
16716         https://bugs.webkit.org/show_bug.cgi?id=101578
16717
16718         Reviewed by Yury Semikhatsky.
16719
16720         Added specific error message when request content was evicted from inspector cache.
16721         Replaced purge with evict in fields/methods names.
16722
16723         * inspector/InspectorResourceAgent.cpp:
16724         (WebCore::InspectorResourceAgent::getResponseBody):
16725         * inspector/NetworkResourcesData.cpp:
16726         (WebCore::NetworkResourcesData::ResourceData::ResourceData):
16727         (WebCore::NetworkResourcesData::ResourceData::evictContent):
16728         (WebCore::NetworkResourcesData::setResourceContent):
16729         (WebCore::NetworkResourcesData::maybeAddResourceData):
16730         (WebCore::NetworkResourcesData::maybeDecodeDataToContent):
16731         (WebCore::NetworkResourcesData::ensureNoDataForRequestId):
16732         (WebCore::NetworkResourcesData::ensureFreeSpace):
16733         * inspector/NetworkResourcesData.h:
16734         (WebCore::NetworkResourcesData::ResourceData::isContentEvicted):
16735         (ResourceData):
16736
16737 2012-11-09  Kent Tamura  <tkent@chromium.org>
16738
16739         Don't use RenderTextControlSingleLine for date/time input types without the multiple-fields UI
16740         https://bugs.webkit.org/show_bug.cgi?id=101722
16741
16742         Reviewed by Hajime Morita.
16743
16744         Because the date/time input types are not textfields, we should not use
16745         RenderTextControlSingleLine, and don't need to create shadow trees for
16746         RenderTextControlSingleLine.
16747
16748         No new tests. Covered by fast/forms/*/*-appearance-*.html.
16749
16750         * css/html.css:
16751         (input[type="date"]):
16752         It has menulist appeanrace by default, and should be a flexible box to
16753         center the inner text. 10em width is almost same as the default width of
16754         text fields.
16755         (input[type="datetime"]): Ditto.
16756         (input[type="datetime-local"]): Ditto.
16757         (input[type="month"]): Ditto.
16758         (input[type="time"]): Ditto.
16759         (input[type="week"]): Ditto.
16760         (input::-webkit-date-and-time-value):
16761         Added. A style for the inner text block.
16762         * html/BaseChooserOnlyDateAndTimeInputType.cpp:
16763         (WebCore::BaseChooserOnlyDateAndTimeInputType::createRenderer):
16764         Don't create RenderTextControlSingleLine.
16765         (WebCore::BaseChooserOnlyDateAndTimeInputType::updateInnerTextValue):
16766         Skip TextFieldInputType::updateInnerTextValue.
16767         (WebCore::BaseChooserOnlyDateAndTimeInputType::forwardEvent):
16768         Skip TextFieldInputType::forwardEvent.
16769         (WebCore::BaseChooserOnlyDateAndTimeInputType::createShadowSubtree):
16770         Just add one element to the shadow root.
16771         (WebCore::BaseChooserOnlyDateAndTimeInputType::updateAppearance):
16772         Sets a localized value to the inner text block.
16773         (WebCore::BaseChooserOnlyDateAndTimeInputType::setValue):
16774         Calls updateAppearance if the value is updated.
16775         * html/BaseChooserOnlyDateAndTimeInputType.h:
16776         (BaseChooserOnlyDateAndTimeInputType): Declare updateAppearance,
16777         createRenderer, updateInnerTextValue, forwardEvent, createShadowSubtree,
16778         and setValue.
16779         * html/BaseDateAndTimeInputType.h:
16780         (WebCore): Add a FIXME comment.
16781         (BaseDateAndTimeInputType):
16782         Make visibleValue protected. It is used by BaseChooserOnlyDateAndTimeInputType.
16783         * html/TextFieldInputType.h:
16784         (TextFieldInputType):
16785         Make setValue protected. It is used by BaseChooserOnlyDateAndTimeInputType.
16786
16787 2012-11-09  Vsevolod Vlasov  <vsevik@chromium.org>
16788
16789         Web Inspector: Clarify meaning of different urls in protocol.
16790         https://bugs.webkit.org/show_bug.cgi?id=101582
16791
16792         Reviewed by Yury Semikhatsky.
16793
16794         * inspector/Inspector.json:
16795
16796 2012-11-09  Keishi Hattori  <keishi@webkit.org>
16797
16798         Month picker should select the current month when navigating while keeping selection position.
16799         https://bugs.webkit.org/show_bug.cgi?id=101724
16800
16801         Reviewed by Kent Tamura.
16802
16803         Month picker needs to behave differently because selection won't be in the same position when changing current month.
16804
16805         No new tests. Test will be added in Bug 101556.
16806
16807         * Resources/pagepopups/calendarPicker.js:
16808         (DaysTable.prototype.navigateToMonth): Date/Week picker should keep selection position for first selected date node.
16809         (DaysTable.prototype._startMoveInAnimation): Moving shared code to separate function.
16810         (MonthPickerDaysTable.prototype.navigateToMonth): Month picker should just select the month.
16811
16812 2012-11-09  Alexei Filippov  <alph@chromium.org>
16813
16814         Web Inspector: Fix heap snapshots counted several times by NMI
16815         https://bugs.webkit.org/show_bug.cgi?id=101085
16816
16817         The fix moves snapshots size counting to V8PerIsolateData class. As long
16818         as it has one instance per isolate its reportMemoryUsage should be
16819         called once per isolate.
16820
16821         Reviewed by Yury Semikhatsky.
16822
16823         * bindings/v8/V8PerIsolateData.cpp:
16824         (WebCore::V8PerIsolateData::reportMemoryUsage):
16825         * inspector/InspectorProfilerAgent.cpp:
16826         (WebCore::InspectorProfilerAgent::reportMemoryUsage):
16827
16828 2012-11-08  Pavel Feldman  <pfeldman@chromium.org>
16829
16830         Web Inspector: split SplitView into SplitView and SidebarView
16831         https://bugs.webkit.org/show_bug.cgi?id=101612
16832
16833         Reviewed by Vsevolod Vlasov.
16834
16835         Currently, SplitView is rather a sidebar view. I'm extracting the reusable split component from it.
16836
16837         * WebCore.gypi:
16838         * WebCore.vcproj/WebCore.vcproj:
16839         * inspector/compile-front-end.py:
16840         * inspector/front-end/AuditsPanel.js:
16841         (WebInspector.AuditsPanel):
16842         * inspector/front-end/CSSNamedFlowCollectionsView.js:
16843         (WebInspector.CSSNamedFlowCollectionsView):
16844         (WebInspector.CSSNamedFlowCollectionsView.prototype.wasShown):
16845         * inspector/front-end/ElementsPanel.js:
16846         * inspector/front-end/FileSystemView.js:
16847         (WebInspector.FileSystemView):
16848         * inspector/front-end/MemoryStatistics.js:
16849         (WebInspector.CounterUI):
16850         (WebInspector.MemoryStatistics.prototype.setTopPosition):
16851         (WebInspector.MemoryStatistics.prototype.setSidebarWidth):
16852         (WebInspector.MemoryStatistics.prototype.visible):
16853         (WebInspector.MemoryStatistics.prototype.show):
16854         (WebInspector.MemoryStatistics.prototype.hide):
16855         * inspector/front-end/NavigatorOverlayController.js:
16856         (WebInspector.NavigatorOverlayController.prototype.set _pinNavigator):
16857         (WebInspector.NavigatorOverlayController.prototype.set showNavigatorOverlay):
16858         (WebInspector.NavigatorOverlayController.prototype.hideNavigatorOverlay):
16859         (WebInspector.NavigatorOverlayController.prototype._innerHideNavigatorOverlay):
16860         * inspector/front-end/NetworkPanel.js:
16861         * inspector/front-end/Panel.js:
16862         (WebInspector.Panel.prototype.createSidebarView):
16863         (WebInspector.Panel.prototype.createSidebarViewWithTree):
16864         * inspector/front-end/ProfilesPanel.js:
16865         (WebInspector.ProfilesPanel):
16866         * inspector/front-end/ResourcesPanel.js:
16867         * inspector/front-end/ScriptsPanel.js:
16868         (WebInspector.ScriptsPanel):
16869         * inspector/front-end/SidebarView.js: Added.
16870         (WebInspector.SidebarView):
16871         (WebInspector.SidebarView.prototype._hasLeftSidebar):
16872         (WebInspector.SidebarView.prototype.get mainElement):
16873         (WebInspector.SidebarView.prototype.get sidebarElement):
16874         (WebInspector.SidebarView.prototype._innerSetSidebarPosition):
16875         (WebInspector.SidebarView.prototype.setMinimalSidebarWidth):
16876         (WebInspector.SidebarView.prototype.setMinimalMainWidthPercent):
16877         (WebInspector.SidebarView.prototype.setSidebarWidth):
16878         (WebInspector.SidebarView.prototype.sidebarWidth):
16879         (WebInspector.SidebarView.prototype.onResize):
16880         (WebInspector.SidebarView.prototype.applyConstraints):
16881         (WebInspector.SidebarView.prototype.hideMainElement):
16882         (WebInspector.SidebarView.prototype.showMainElement):
16883         (WebInspector.SidebarView.prototype.hideSidebarElement):
16884         (WebInspector.SidebarView.prototype.showSidebarElement):
16885         (WebInspector.SidebarView.prototype.elementsToRestoreScrollPositionsFor):
16886         * inspector/front-end/SplitView.js:
16887         (WebInspector.SplitView):
16888         (WebInspector.SplitView.prototype.firstElement):
16889         (WebInspector.SplitView.prototype.secondElement):
16890         (WebInspector.SplitView.prototype.setChangeFirstOnResize):
16891         (WebInspector.SplitView.prototype.resizerElement):
16892         (WebInspector.SplitView.prototype.showOnlyFirst):
16893         (WebInspector.SplitView.prototype.showOnlySecond):
16894         (WebInspector.SplitView.prototype._showOnly):
16895         (WebInspector.SplitView.prototype._removeAllLayoutProperties):
16896         (WebInspector.SplitView.prototype.showBoth):
16897         (WebInspector.SplitView.prototype.setResizable):
16898         (WebInspector.SplitView.prototype.setSplitOffset):
16899         (WebInspector.SplitView.prototype.splitOffset):
16900         (WebInspector.SplitView.prototype._innerSetSplitOffset):
16901         (WebInspector.SplitView.prototype._startResizerDragging):
16902         * inspector/front-end/TimelinePanel.js:
16903         * inspector/front-end/WebKit.qrc:
16904         * inspector/front-end/inspector.html:
16905         * inspector/front-end/splitView.css:
16906
16907 2012-11-09  Andrey Lushnikov  <lushnikov@google.com>
16908
16909         Web Inspector: Ctrl+A in the network panel should select resource content, not the entire panel
16910         https://bugs.webkit.org/show_bug.cgi?id=101591
16911
16912         Reviewed by Vsevolod Vlasov.
16913
16914         Intercept Ctrl+A event in DefaultTextEditor to select resource content
16915
16916         * inspector/front-end/DefaultTextEditor.js:
16917         (WebInspector.DefaultTextEditor.prototype._registerShortcuts): Added Ctrl+A
16918         (WebInspector.DefaultTextEditor.prototype._handleKeyDown): Intercept Ctrl+A even for readonly fields
16919         (WebInspector.TextEditorMainPanel.prototype.handleSelectAll):
16920         * inspector/front-end/KeyboardShortcut.js: Added SelectAll constant for Ctrl+A combination
16921
16922 2012-11-09  Dan Carney  <dcarney@google.com>
16923
16924         [V8] Main world should have one DOMDataStore
16925         https://bugs.webkit.org/show_bug.cgi?id=101470
16926
16927         Reviewed by Kentaro Hara.
16928
16929         The main world DOMWrapperWorld held onto a DOMDataStore that should
16930         never be used, as there is a static one optimized for speed in
16931         DOMDataStore.
16932
16933         No new tests. No change in functionality.
16934
16935         * bindings/v8/DOMDataStore.cpp:
16936         (WebCore::DOMDataStore::current):
16937         * bindings/v8/DOMWrapperWorld.h:
16938         (WebCore::DOMWrapperWorld::isolatedWorldDomDataStore):
16939         (WebCore::DOMWrapperWorld::DOMWrapperWorld):
16940         * bindings/v8/V8DOMWrapper.h:
16941         (WebCore::V8DOMWrapper::getCachedWrapper):
16942
16943 2012-11-09  Alexei Filippov  <alph@chromium.org>
16944
16945         Web Inspector: Navigating around NMI snapshot grid with keys breaks the grid
16946         https://bugs.webkit.org/show_bug.cgi?id=101611
16947
16948         Reviewed by Yury Semikhatsky.
16949
16950         Keys navigation cause populate message sent to the node. The node should
16951         not react on populate messages but the first one.
16952
16953         * inspector/front-end/NativeMemorySnapshotView.js:
16954
16955 2012-11-08  Eugene Klyuchnikov  <eustas.bug@gmail.com>
16956
16957         Web Inspector: Timeline: "Send Request" events are shown out of order.
16958         https://bugs.webkit.org/show_bug.cgi?id=101544
16959
16960         Reviewed by Yury Semikhatsky.
16961
16962         Solution: replace obsolete out-of-order record pushing with frontend
16963         record reparenting.
16964
16965         * inspector/InspectorTimelineAgent.cpp:
16966         (WebCore::InspectorTimelineAgent::willSendResourceRequest): Replaced
16967         direct record pushing with standard appendRecord invokation.
16968         * inspector/front-end/TimelinePresentationModel.js:
16969         (WebInspector.TimelinePresentationModel.prototype._findParentRecord):
16970         Made "Send Request" records top-level if gluing is on.
16971
16972 2012-11-08  Sheriff Bot  <webkit.review.bot@gmail.com>
16973
16974         Unreviewed, rolling out r134010.
16975         http://trac.webkit.org/changeset/134010
16976         https://bugs.webkit.org/show_bug.cgi?id=101716
16977
16978         Broke the chromium windows build. (Requested by noel_ on
16979         #webkit).
16980
16981         * Modules/indexeddb/IDBAny.cpp:
16982         * Modules/indexeddb/IDBCallbacks.h:
16983         * Modules/indexeddb/IDBDatabase.cpp:
16984         (WebCore::IDBDatabase::createObjectStore):
16985         (WebCore::IDBDatabase::deleteObjectStore):
16986         (WebCore::IDBDatabase::transaction):
16987         * Modules/indexeddb/IDBDatabase.h:
16988         (IDBDatabase):
16989         * Modules/indexeddb/IDBDatabaseBackendImpl.cpp:
16990         (WebCore::IDBDatabaseBackendImpl::getObjectStoreId):
16991         (WebCore):
16992         (WebCore::IDBDatabaseBackendImpl::setVersion):
16993         (WebCore::IDBDatabaseBackendImpl::transaction):
16994         (WebCore::IDBDatabaseBackendImpl::runIntVersionChangeTransaction):
16995         * Modules/indexeddb/IDBDatabaseBackendImpl.h:
16996         (WebCore::IDBDatabaseBackendImpl::deleteObjectStore):
16997         (IDBDatabaseBackendImpl):
16998         * Modules/indexeddb/IDBDatabaseBackendInterface.h:
16999         (WebCore):
17000         (IDBDatabaseBackendInterface):
17001         * Modules/indexeddb/IDBMetadata.h:
17002         (WebCore::IDBObjectStoreMetadata::containsIndex):
17003         (WebCore::IDBDatabaseMetadata::findObjectStore):
17004         (IDBDatabaseMetadata):
17005         (WebCore::IDBDatabaseMetadata::containsObjectStore):
17006         * Modules/indexeddb/IDBObjectStore.cpp:
17007         (WebCore::IDBObjectStore::put):
17008         (WebCore):
17009         (WebCore::IDBObjectStore::createIndex):
17010         (WebCore::IDBObjectStore::index):
17011         (WebCore::IDBObjectStore::deleteIndex):
17012         * Modules/indexeddb/IDBObjectStore.h:
17013         (WebCore::IDBObjectStore::openCursor):
17014         (IDBObjectStore):
17015         * Modules/indexeddb/IDBObjectStoreBackendImpl.cpp:
17016         (WebCore::IDBObjectStoreBackendImpl::put):
17017         (WebCore::IDBObjectStoreBackendImpl::putWithIndexKeys):
17018         (WebCore):
17019         (WebCore::IDBObjectStoreBackendImpl::setIndexKeys):
17020         (WebCore::IDBObjectStoreBackendImpl::setIndexesReady):
17021         (WebCore::IDBObjectStoreBackendImpl::index):
17022         (WebCore::IDBObjectStoreBackendImpl::getIndexId):
17023         (WebCore::IDBObjectStoreBackendImpl::getIndexIds):
17024         (WebCore::IDBObjectStoreBackendImpl::deleteIndex):
17025         * Modules/indexeddb/IDBObjectStoreBackendImpl.h:
17026         (IDBObjectStoreBackendImpl):
17027         * Modules/indexeddb/IDBObjectStoreBackendInterface.h:
17028         (WebCore):
17029         * Modules/indexeddb/IDBTransaction.cpp:
17030         (WebCore::IDBTransaction::objectStore):
17031         * Modules/indexeddb/IDBTransactionBackendImpl.cpp:
17032         (WebCore::IDBTransactionBackendImpl::objectStore):
17033         (WebCore):
17034         * Modules/indexeddb/IDBTransactionBackendImpl.h:
17035         (IDBTransactionBackendImpl):
17036         * Modules/indexeddb/IDBTransactionBackendInterface.h:
17037
17038 2012-11-08  Grzegorz Czajkowski  <g.czajkowski@samsung.com>
17039
17040         [EFL] Add a method to the TextCheckerEnchant class to check whether any dictionary is loaded
17041         https://bugs.webkit.org/show_bug.cgi?id=101570
17042
17043         Reviewed by Gustavo Noronha Silva.
17044
17045         Expose a new method to check whether a vector of loaded languages is empty.
17046         WK2-EFL needs it to set the default language (if the client didn't set any) when
17047         spelling setting is being enabled. This change makes it more convenient to check
17048         whether the dictionaries vector is empty.
17049
17050         No new tests, no behavior change.
17051
17052         * platform/text/enchant/TextCheckerEnchant.cpp:
17053         (TextCheckerEnchant::checkSpellingOfString):
17054         (TextCheckerEnchant::getGuessesForWord):
17055         (TextCheckerEnchant::loadedSpellCheckingLanguages):
17056         A newly exposed method is used internally too.
17057
17058         * platform/text/enchant/TextCheckerEnchant.h:
17059         (WebCore::TextCheckerEnchant::hasDictionary):
17060         Add an inline hasDictionary() method.
17061
17062 2012-11-08  Shinya Kawanaka  <shinyak@chromium.org>
17063
17064         [Refactoring] Remove shadowPseudoId() and use pseudo() instead in TextTrackCue
17065         https://bugs.webkit.org/show_bug.cgi?id=101702
17066
17067         Reviewed by Hajime Morita.
17068
17069         We're migrating shadowPseudoId() to pseudo(). We remove shadowPseudoId() from TextTrackCue and use
17070         setPseudo()/pseudo() instead.
17071
17072         No new tests, simple refactoring.
17073
17074         * html/track/TextTrackCue.cpp:
17075         (WebCore::TextTrackCueBox::TextTrackCueBox):
17076         * html/track/TextTrackCue.h:
17077         (TextTrackCueBox):
17078
17079 2012-11-08  Arpita Bahuguna  <arpitabahuguna@gmail.com>
17080
17081         table not aligned in center column and seems shrunk because of float:right (table-layout: fixed and width: 100%)
17082         https://bugs.webkit.org/show_bug.cgi?id=18153
17083
17084         Reviewed by Beth Dakin.
17085
17086         Preferred logical width is computed incorrectly for fixed layout tables
17087         with 100% percent width, in standards mode.
17088
17089         According to our fixed table layout algorithm (CSS2 specification - 17.5.2.1)
17090         the ultimate width of the table is the greater of the value of the
17091         'width' property for the table elements and the sum of the column
17092         widths.
17093
17094         For our specific scenario we have a fixed layout table with 100% width
17095         consisting of columns with fixed widths, the sum of which is less than
17096         the specified width of the table (i.e. 100% of the containing block).
17097         Even then the applied width is the cummulative of the width of the
17098         columns.
17099
17100         This happens because of the quirks mode check added in
17101         FixedTableLayout::computePreferredLogicalWidths(), which prohibits the
17102         setting of maxWidth to our fixed layout table with percent width, and
17103         which perhaps is not required anymore.
17104
17105         Test: fast/table/fixed-table-layout/table-with-percent-width.html
17106
17107         * rendering/FixedTableLayout.cpp:
17108         (WebCore::FixedTableLayout::computePreferredLogicalWidths):
17109         Removed the quirks mode check.
17110
17111 2012-11-08  Sheriff Bot  <webkit.review.bot@gmail.com>
17112
17113         Unreviewed, rolling out r134004.
17114         http://trac.webkit.org/changeset/134004
17115         https://bugs.webkit.org/show_bug.cgi?id=101713
17116
17117         multiple crashes (Requested by hayato on #webkit).
17118
17119         * rendering/RenderThemeMac.mm:
17120         (WebCore::RenderThemeMac::adjustMediaSliderThumbSize):
17121         (WebCore::RenderThemeMac::paintMediaFullscreenButton):
17122         (WebCore::RenderThemeMac::paintMediaMuteButton):
17123         (WebCore::RenderThemeMac::paintMediaPlayButton):
17124         (WebCore::RenderThemeMac::paintMediaSeekBackButton):
17125         (WebCore::RenderThemeMac::paintMediaSeekForwardButton):
17126         (WebCore::RenderThemeMac::paintMediaSliderTrack):
17127         (WebCore::RenderThemeMac::paintMediaSliderThumb):
17128         (WebCore::RenderThemeMac::paintMediaRewindButton):
17129         (WebCore::RenderThemeMac::paintMediaReturnToRealtimeButton):
17130         (WebCore::RenderThemeMac::paintMediaToggleClosedCaptionsButton):
17131         (WebCore::RenderThemeMac::paintMediaControlsBackground):
17132         (WebCore::RenderThemeMac::paintMediaCurrentTime):
17133         (WebCore::RenderThemeMac::paintMediaTimeRemaining):
17134         (WebCore::RenderThemeMac::paintMediaVolumeSliderContainer):
17135         (WebCore::RenderThemeMac::paintMediaVolumeSliderTrack):
17136         (WebCore::RenderThemeMac::paintMediaVolumeSliderThumb):
17137         (WebCore::RenderThemeMac::paintMediaFullScreenVolumeSliderTrack):
17138         (WebCore::RenderThemeMac::paintMediaFullScreenVolumeSliderThumb):
17139
17140 2012-11-08  Jan Keromnes  <janx@linux.com>
17141
17142         Web Inspector: stop using cursorCoords in CodeMirrorTextEditor
17143         https://bugs.webkit.org/show_bug.cgi?id=101607
17144
17145         Reviewed by Vsevolod Vlasov.
17146
17147         API changes completing migration to v3.
17148
17149         * inspector/front-end/CodeMirrorTextEditor.js:
17150         (WebInspector.CodeMirrorTextEditor):
17151         (WebInspector.CodeMirrorTextEditor.prototype.revealLine):
17152         (WebInspector.CodeMirrorTextEditor.prototype.selection):
17153
17154 2012-11-08  Alexei Filippov  <alph@chromium.org>
17155
17156         Web Inspector: make "Other" bar color darker in NMI snapshot.
17157         https://bugs.webkit.org/show_bug.cgi?id=101602
17158
17159         Reviewed by Vsevolod Vlasov.
17160
17161         * inspector/front-end/NativeMemorySnapshotView.js:
17162         (WebInspector.MemoryBlockViewProperties._initialize):
17163
17164 2012-11-08  Alec Flett  <alecflett@chromium.org>
17165
17166         IndexedDB: switch frontend to use int64_t-based references
17167         https://bugs.webkit.org/show_bug.cgi?id=100426
17168
17169         Reviewed by Tony Chang.
17170
17171         Remove String-based objectStore/index references, obsoleted by
17172         https://bugs.webkit.org/show_bug.cgi?id=100425.
17173
17174         No new tests as this is the second half of a refactor.
17175
17176         * Modules/indexeddb/IDBCallbacks.h:
17177         * Modules/indexeddb/IDBDatabase.cpp:
17178         (WebCore::IDBDatabase::deleteObjectStore):
17179         (WebCore::IDBDatabase::transaction):
17180         * Modules/indexeddb/IDBDatabaseBackendImpl.cpp:
17181         (WebCore::IDBDatabaseBackendImpl::setVersion):
17182         (WebCore::IDBDatabaseBackendImpl::transaction):
17183         (WebCore::IDBDatabaseBackendImpl::runIntVersionChangeTransaction):
17184         * Modules/indexeddb/IDBDatabaseBackendImpl.h:
17185         (IDBDatabaseBackendImpl):
17186         * Modules/indexeddb/IDBDatabaseBackendInterface.h:
17187         (IDBDatabaseBackendInterface):
17188         * Modules/indexeddb/IDBMetadata.h:
17189         (WebCore::IDBObjectStoreMetadata::findIndex):
17190         (IDBObjectStoreMetadata):
17191         (WebCore::IDBObjectStoreMetadata::containsIndex):
17192         * Modules/indexeddb/IDBObjectStore.cpp:
17193         (WebCore::IDBObjectStore::put):
17194         (WebCore):
17195         (WebCore::IDBObjectStore::index):
17196         (WebCore::IDBObjectStore::deleteIndex):
17197         * Modules/indexeddb/IDBObjectStoreBackendImpl.cpp:
17198         (WebCore::IDBObjectStoreBackendImpl::put):
17199         (WebCore):
17200         * Modules/indexeddb/IDBObjectStoreBackendImpl.h:
17201         (IDBObjectStoreBackendImpl):
17202         * Modules/indexeddb/IDBObjectStoreBackendInterface.h:
17203         * inspector/Inspector-1.0.json:
17204         * inspector/Inspector.json:
17205         * inspector/InspectorIndexedDBAgent.cpp:
17206         (WebCore):
17207         (WebCore::InspectorIndexedDBAgent::requestData):
17208         * inspector/InspectorIndexedDBAgent.h:
17209         (InspectorIndexedDBAgent):
17210
17211 2012-11-08  Shinya Kawanaka  <shinyak@chromium.org>
17212
17213         [Refactoring] Expose collectFeaturesFromSelector from RuleSet.cpp
17214         https://bugs.webkit.org/show_bug.cgi?id=101692
17215
17216         Reviewed by Dimitri Glazkov.
17217
17218         We expose collectFeaturesFromSelector in RuleSet.cpp to use it for collecting ShadowDOM select attribute features.
17219
17220         No new tests, simple refactoring.
17221
17222         * css/RuleFeature.cpp:
17223         (WebCore::RuleFeatureSet::collectFeaturesFromSelector): Moved from RuleSet.cpp.
17224         (WebCore):
17225         * css/RuleFeature.h:
17226         (WebCore):
17227         (RuleFeatureSet):
17228         * css/RuleSet.cpp:
17229         (WebCore::collectFeaturesFromRuleData):
17230
17231 2012-11-08  Robert Sesek  <rsesek@chromium.org>
17232
17233         Guard calls to WebKitSystemInterface media control drawing functions in RenderThemeMac with PLATFORM(MAC)
17234         https://bugs.webkit.org/show_bug.cgi?id=101634
17235
17236         Reviewed by Adam Barth.
17237
17238         No new tests, just disabling unused code in Chromium port.
17239
17240         * rendering/RenderThemeMac.mm:
17241         (WebCore::RenderThemeMac::adjustMediaSliderThumbSize):
17242         (WebCore::RenderThemeMac::paintMediaFullscreenButton):
17243         (WebCore::RenderThemeMac::paintMediaMuteButton):
17244         (WebCore::RenderThemeMac::paintMediaPlayButton):
17245         (WebCore::RenderThemeMac::paintMediaSeekBackButton):
17246         (WebCore::RenderThemeMac::paintMediaSeekForwardButton):
17247         (WebCore::RenderThemeMac::paintMediaSliderTrack):
17248         (WebCore::RenderThemeMac::paintMediaSliderThumb):
17249         (WebCore::RenderThemeMac::paintMediaRewindButton):
17250         (WebCore::RenderThemeMac::paintMediaReturnToRealtimeButton):
17251         (WebCore::RenderThemeMac::paintMediaToggleClosedCaptionsButton):
17252         (WebCore::RenderThemeMac::paintMediaControlsBackground):
17253         (WebCore::RenderThemeMac::paintMediaCurrentTime):
17254         (WebCore::RenderThemeMac::paintMediaTimeRemaining):
17255         (WebCore::RenderThemeMac::paintMediaVolumeSliderContainer):
17256         (WebCore::RenderThemeMac::paintMediaVolumeSliderTrack):
17257         (WebCore::RenderThemeMac::paintMediaVolumeSliderThumb):
17258         (WebCore::RenderThemeMac::paintMediaFullScreenVolumeSliderTrack):
17259         (WebCore::RenderThemeMac::paintMediaFullScreenVolumeSliderThumb):
17260
17261 2012-11-08  Keishi Hattori  <keishi@webkit.org>
17262
17263         Enable calendar picker for input types week/month
17264         https://bugs.webkit.org/show_bug.cgi?id=101553
17265
17266         Reviewed by Kent Tamura.
17267
17268         Enabling calendar picker for <input type=week/month>
17269
17270         No new tests. Tests will be added later in Bug 101556 and Bug 101555.
17271
17272         * rendering/RenderThemeChromiumCommon.cpp:
17273         (WebCore::RenderThemeChromiumCommon::supportsCalendarPicker):
17274
17275 2012-11-08  Robin Cao  <robin.cao@torchmobile.com.cn>
17276
17277         [BlackBerry] Change the default return value of MediaPlayerPrivate::hasSingleSecurityOrigin
17278         https://bugs.webkit.org/show_bug.cgi?id=101681
17279
17280         Reviewed by George Staikos.
17281
17282         Since the platform player in BlackBerry disallows resources that come from different origins,
17283         so it's safe to directly returns true here.
17284
17285         * platform/graphics/blackberry/MediaPlayerPrivateBlackBerry.cpp:
17286         (WebCore::MediaPlayerPrivate::hasSingleSecurityOrigin):
17287
17288 2012-11-08  Mark Lam  <mark.lam@apple.com>
17289
17290         Renamed ...InlineMethods.h files to ...Inlines.h.
17291         https://bugs.webkit.org/show_bug.cgi?id=101145.
17292
17293         Reviewed by Geoffrey Garen.
17294
17295         This is only a refactoring effort to rename the files. There are no
17296         functionality changes.
17297
17298         No new tests.
17299
17300         * GNUmakefile.list.am:
17301         * Target.pri:
17302         * WebCore.gypi:
17303         * WebCore.vcproj/WebCore.vcproj:
17304         * WebCore.xcodeproj/project.pbxproj:
17305         * html/parser/HTMLEntityParser.cpp:
17306         * html/parser/HTMLTokenizer.cpp:
17307         * html/track/WebVTTTokenizer.cpp:
17308         * xml/parser/CharacterReferenceParserInlineMethods.h: Removed.
17309         * xml/parser/CharacterReferenceParserInlines.h: Copied from Source/WebCore/xml/parser/CharacterReferenceParserInlineMethods.h.
17310         * xml/parser/MarkupTokenizerInlineMethods.h: Removed.
17311         * xml/parser/MarkupTokenizerInlines.h: Copied from Source/WebCore/xml/parser/MarkupTokenizerInlineMethods.h.
17312         * xml/parser/XMLCharacterReferenceParser.cpp:
17313         * xml/parser/XMLTokenizer.cpp:
17314
17315 2012-11-08  Sheriff Bot  <webkit.review.bot@gmail.com>
17316
17317         Unreviewed, rolling out r133984.
17318         http://trac.webkit.org/changeset/133984
17319         https://bugs.webkit.org/show_bug.cgi?id=101684
17320
17321         windows build error. (Requested by hayato on #webkit).
17322
17323         * Modules/indexeddb/IDBCallbacks.h:
17324         * Modules/indexeddb/IDBDatabase.cpp:
17325         (WebCore::IDBDatabase::createObjectStore):
17326         (WebCore::IDBDatabase::deleteObjectStore):
17327         (WebCore::IDBDatabase::transaction):
17328         * Modules/indexeddb/IDBDatabase.h:
17329         (IDBDatabase):
17330         * Modules/indexeddb/IDBDatabaseBackendImpl.cpp:
17331         (WebCore::IDBDatabaseBackendImpl::getObjectStoreId):
17332         (WebCore):
17333         (WebCore::IDBDatabaseBackendImpl::setVersion):
17334         (WebCore::IDBDatabaseBackendImpl::transaction):
17335         (WebCore::IDBDatabaseBackendImpl::runIntVersionChangeTransaction):
17336         * Modules/indexeddb/IDBDatabaseBackendImpl.h:
17337         (WebCore::IDBDatabaseBackendImpl::deleteObjectStore):
17338         (IDBDatabaseBackendImpl):
17339         * Modules/indexeddb/IDBDatabaseBackendInterface.h:
17340         (IDBDatabaseBackendInterface):
17341         * Modules/indexeddb/IDBMetadata.h:
17342         (WebCore::IDBObjectStoreMetadata::containsIndex):
17343         (WebCore::IDBDatabaseMetadata::findObjectStore):
17344         (IDBDatabaseMetadata):
17345         (WebCore::IDBDatabaseMetadata::containsObjectStore):
17346         * Modules/indexeddb/IDBObjectStore.cpp:
17347         (WebCore::IDBObjectStore::put):
17348         (WebCore):
17349         (WebCore::IDBObjectStore::createIndex):
17350         (WebCore::IDBObjectStore::index):
17351         (WebCore::IDBObjectStore::deleteIndex):
17352         * Modules/indexeddb/IDBObjectStore.h:
17353         (WebCore::IDBObjectStore::openCursor):
17354         (IDBObjectStore):
17355         * Modules/indexeddb/IDBObjectStoreBackendImpl.cpp:
17356         (WebCore::IDBObjectStoreBackendImpl::put):
17357         (WebCore::IDBObjectStoreBackendImpl::putWithIndexKeys):
17358         (WebCore):
17359         (WebCore::IDBObjectStoreBackendImpl::setIndexKeys):
17360         (WebCore::IDBObjectStoreBackendImpl::setIndexesReady):
17361         (WebCore::IDBObjectStoreBackendImpl::index):
17362         (WebCore::IDBObjectStoreBackendImpl::getIndexId):
17363         (WebCore::IDBObjectStoreBackendImpl::getIndexIds):
17364         (WebCore::IDBObjectStoreBackendImpl::deleteIndex):
17365         * Modules/indexeddb/IDBObjectStoreBackendImpl.h:
17366         (IDBObjectStoreBackendImpl):
17367         * Modules/indexeddb/IDBObjectStoreBackendInterface.h:
17368         * Modules/indexeddb/IDBTransaction.cpp:
17369         (WebCore::IDBTransaction::objectStore):
17370         * Modules/indexeddb/IDBTransactionBackendImpl.cpp:
17371         (WebCore::IDBTransactionBackendImpl::objectStore):
17372         (WebCore):
17373         * Modules/indexeddb/IDBTransactionBackendImpl.h:
17374         (IDBTransactionBackendImpl):
17375         * Modules/indexeddb/IDBTransactionBackendInterface.h:
17376
17377 2012-11-08  Shinya Kawanaka  <shinyak@chromium.org>
17378
17379         HTMLContentElement should preserve parsed CSSSelectorList
17380         https://bugs.webkit.org/show_bug.cgi?id=101543
17381
17382         Reviewed by Dimitri Glazkov.
17383
17384         We would like to preserve CSSSelectorList for select attribute of HTMLContentElement.
17385
17386         Before, we parsed and validated select attribute every time distribution happens. If we preserve the parsed
17387         CSSSelectorList, we can reduce distribution time.
17388
17389         This is also a prepration patch for Bug 101180. It also needs the parsed CSSSelectorList. We don't want to
17390         parse and validate it again.
17391
17392         No new tests, covered by exising tests.
17393
17394         * html/shadow/ContentSelectorQuery.cpp:
17395         (WebCore::ContentSelectorQuery::ContentSelectorQuery): We don't parse select attribute here anymore.
17396         if it's already parsed.
17397         (WebCore::ContentSelectorQuery::matches):
17398         * html/shadow/ContentSelectorQuery.h:
17399         (ContentSelectorQuery):
17400         * html/shadow/HTMLContentElement.cpp:
17401         (WebCore::HTMLContentElement::HTMLContentElement):
17402         (WebCore::HTMLContentElement::isSelectValid):
17403         (WebCore::HTMLContentElement::ensureSelectParsed): If we don't have parsed the current select attribute,
17404         we parse and validate it.
17405         (WebCore::HTMLContentElement::parseAttribute): When select attribute is changed, we have to have a flag enabled
17406         to parse select attrite again.
17407         (WebCore::validateSubSelector): Moved from ContentSelectorQuery.
17408         (WebCore):
17409         (WebCore::validateSelector): Moved from ContentSelectorQuery.
17410         (WebCore::HTMLContentElement::validateSelect):
17411         * html/shadow/HTMLContentElement.h:
17412         (HTMLContentElement):
17413         (WebCore::HTMLContentElement::setSelect):
17414         (WebCore):
17415         (WebCore::HTMLContentElement::selectorList):
17416         * html/shadow/HTMLShadowElement.cpp:
17417         (WebCore::HTMLShadowElement::emptySelectorList):
17418         (WebCore):
17419         * html/shadow/HTMLShadowElement.h:
17420         (HTMLShadowElement):
17421         (WebCore::HTMLShadowElement::selectorList):
17422         * html/shadow/InsertionPoint.h:
17423         (InsertionPoint):
17424
17425 2012-11-08  Alec Flett  <alecflett@chromium.org>
17426
17427         IndexedDB: switch frontend to use int64_t-based references
17428         https://bugs.webkit.org/show_bug.cgi?id=100426
17429
17430         Reviewed by Tony Chang.
17431
17432         Remove String-based objectStore/index references, obsoleted by
17433         https://bugs.webkit.org/show_bug.cgi?id=100425.
17434
17435         No new tests as this is the second half of a refactor.
17436
17437         * Modules/indexeddb/IDBCallbacks.h:
17438         * Modules/indexeddb/IDBDatabase.cpp:
17439         (WebCore::IDBDatabase::deleteObjectStore):
17440         (WebCore::IDBDatabase::transaction):
17441         * Modules/indexeddb/IDBDatabaseBackendImpl.cpp:
17442         (WebCore::IDBDatabaseBackendImpl::setVersion):
17443         (WebCore::IDBDatabaseBackendImpl::transaction):
17444         (WebCore::IDBDatabaseBackendImpl::runIntVersionChangeTransaction):
17445         * Modules/indexeddb/IDBDatabaseBackendImpl.h:
17446         (IDBDatabaseBackendImpl):
17447         * Modules/indexeddb/IDBDatabaseBackendInterface.h:
17448         (IDBDatabaseBackendInterface):
17449         * Modules/indexeddb/IDBMetadata.h:
17450         (WebCore::IDBObjectStoreMetadata::findIndex):
17451         (IDBObjectStoreMetadata):
17452         (WebCore::IDBObjectStoreMetadata::containsIndex):
17453         * Modules/indexeddb/IDBObjectStore.cpp:
17454         (WebCore::IDBObjectStore::put):
17455         (WebCore):
17456         (WebCore::IDBObjectStore::index):
17457         (WebCore::IDBObjectStore::deleteIndex):
17458         * Modules/indexeddb/IDBObjectStoreBackendImpl.cpp:
17459         (WebCore::IDBObjectStoreBackendImpl::put):
17460         (WebCore):
17461         * Modules/indexeddb/IDBObjectStoreBackendImpl.h:
17462         (IDBObjectStoreBackendImpl):
17463         * Modules/indexeddb/IDBObjectStoreBackendInterface.h:
17464         * inspector/Inspector-1.0.json:
17465         * inspector/Inspector.json:
17466         * inspector/InspectorIndexedDBAgent.cpp:
17467         (WebCore):
17468         (WebCore::InspectorIndexedDBAgent::requestData):
17469         * inspector/InspectorIndexedDBAgent.h:
17470         (InspectorIndexedDBAgent):
17471
17472 2012-11-08  Kenichi Ishibashi  <bashi@chromium.org>
17473
17474         [Chromium] Arabic digits should appear left-to-right
17475         https://bugs.webkit.org/show_bug.cgi?id=101440
17476
17477         Reviewed by Tony Chang.
17478
17479         Call hb_buffer_set_direction() to set direction when drawing glyphs or
17480         direction should be overridden. Leave direction setting to HarfBuzz when
17481         WebKit is calculating widths because the direction is LTR by default while
17482         calculating widths.  Set script before shaping so that HarfBuzz can estimate
17483         appropriate direction.
17484
17485         Test: fast/text/international/arabic-digits.html
17486
17487         * platform/graphics/harfbuzz/ng/HarfBuzzShaper.cpp:
17488         (WebCore::HarfBuzzShaper::HarfBuzzRun::HarfBuzzRun):
17489         Add m_script. This holds the script of the run.
17490         (WebCore::HarfBuzzShaper::shape):
17491         Tell shapeHarfBuzzRuns() to set direction when drawing glyphs or
17492         direction should be overridden.
17493         (WebCore::HarfBuzzShaper::collectHarfBuzzRuns):
17494         Set script of HarfBuzzRuns.
17495         (WebCore::HarfBuzzShaper::shapeHarfBuzzRuns):
17496         Add an argument that indicates it should set direction.
17497         * platform/graphics/harfbuzz/ng/HarfBuzzShaper.h:
17498         (WebCore::HarfBuzzShaper::HarfBuzzRun::create):
17499         (WebCore::HarfBuzzShaper::HarfBuzzRun::rtl):
17500         (WebCore::HarfBuzzShaper::HarfBuzzRun::script):
17501         (HarfBuzzRun):
17502         (HarfBuzzShaper):
17503
17504 2012-11-08  Huang Dongsung  <luxtella@company100.net>
17505
17506         [TexMap] Remove contentsLayer() in GraphicsLayerTextureMapper.
17507         https://bugs.webkit.org/show_bug.cgi?id=101658
17508
17509         Reviewed by Noam Rosenthal.
17510
17511         GraphicsLayerTextureMapper::contentsLayer() is duplicated to
17512         GraphicsLayer::platformLayer(), so we remove it.
17513
17514         No new tests, this is just a refactor.
17515
17516         * platform/graphics/texmap/GraphicsLayerTextureMapper.h:
17517         (WebCore::GraphicsLayerTextureMapper::platformLayer):
17518         * platform/graphics/texmap/TextureMapperLayer.cpp:
17519         (WebCore::TextureMapperLayer::flushCompositingStateSelf):
17520
17521 2012-11-08  Benjamin Poulain  <benjamin@webkit.org>
17522
17523         Improve the use of AtomicString with literals
17524         https://bugs.webkit.org/show_bug.cgi?id=101298
17525
17526         Reviewed by Darin Adler.
17527
17528         Fix a bunch of cases of AtomicString with literals:
17529         -Do not create temporary AtomicString to perform a comparison, that is very wasteful.
17530         -Use the ConstructFromLiteral constructor whenever it makes sense.
17531         -Make "x-frame-options" static instead of creating it for each response.
17532         -Use ASCIILiteral() instead of AtomicString() in EventHandler, the function takes a String,
17533          not an AtomicString.
17534
17535         * Modules/battery/BatteryController.cpp:
17536         (WebCore::BatteryController::supplementName):
17537         * Modules/battery/NavigatorBattery.cpp:
17538         (WebCore::NavigatorBattery::from):
17539         * Modules/filesystem/chromium/DraggedIsolatedFileSystem.cpp:
17540         (WebCore::DraggedIsolatedFileSystem::supplementName):
17541         * Modules/gamepad/NavigatorGamepad.cpp:
17542         (WebCore::NavigatorGamepad::from):
17543         * Modules/geolocation/GeolocationController.cpp:
17544         (WebCore::GeolocationController::supplementName):
17545         * Modules/geolocation/NavigatorGeolocation.cpp:
17546         (WebCore::NavigatorGeolocation::from):
17547         * Modules/indexeddb/DOMWindowIndexedDatabase.cpp:
17548         (WebCore::DOMWindowIndexedDatabase::from):
17549         * Modules/indexeddb/IDBCursor.cpp:
17550         (WebCore::IDBCursor::directionNext):
17551         (WebCore::IDBCursor::directionNextUnique):
17552         (WebCore::IDBCursor::directionPrev):
17553         (WebCore::IDBCursor::directionPrevUnique):
17554         * Modules/indexeddb/IDBRequest.cpp:
17555         (WebCore::IDBRequest::readyState):
17556         * Modules/indexeddb/IDBTransaction.cpp:
17557         (WebCore::IDBTransaction::modeReadOnly):
17558         (WebCore::IDBTransaction::modeReadWrite):
17559         (WebCore::IDBTransaction::modeVersionChange):
17560         (WebCore::IDBTransaction::modeReadOnlyLegacy):
17561         (WebCore::IDBTransaction::modeReadWriteLegacy):
17562         * Modules/indexeddb/PageGroupIndexedDatabase.cpp:
17563         (WebCore::PageGroupIndexedDatabase::from):
17564         * Modules/intents/DOMWindowIntents.cpp:
17565         (WebCore::DOMWindowIntents::from):
17566         * Modules/mediastream/UserMediaController.cpp:
17567         (WebCore::UserMediaController::supplementName):
17568         * Modules/navigatorcontentutils/NavigatorContentUtils.cpp:
17569         (WebCore::NavigatorContentUtils::supplementName):
17570         * Modules/networkinfo/NavigatorNetworkInfoConnection.cpp:
17571         (WebCore::NavigatorNetworkInfoConnection::from):
17572         * Modules/networkinfo/NetworkInfoController.cpp:
17573         (WebCore::NetworkInfoController::supplementName):
17574         * Modules/notifications/DOMWindowNotifications.cpp:
17575         (WebCore::DOMWindowNotifications::from):
17576         * Modules/notifications/NotificationController.cpp:
17577         (WebCore::NotificationController::supplementName):
17578         * Modules/quota/DOMWindowQuota.cpp:
17579         (WebCore::DOMWindowQuota::from):
17580         * Modules/speech/SpeechRecognitionController.cpp:
17581         (WebCore::SpeechRecognitionController::supplementName):
17582         * Modules/vibration/Vibration.cpp:
17583         (WebCore::Vibration::supplementName):
17584         * accessibility/AccessibilityObject.cpp:
17585         (WebCore::AccessibilityObject::invalidStatus):
17586         * accessibility/AccessibilityRenderObject.cpp:
17587         (WebCore::AccessibilityRenderObject::ariaLiveRegionStatus):
17588         (WebCore::AccessibilityRenderObject::ariaLiveRegionRelevant):
17589         * bindings/v8/custom/V8DOMWindowCustom.cpp:
17590         (WebCore::V8DOMWindow::namedSecurityCheck):
17591         * bindings/v8/custom/V8NodeListCustom.cpp:
17592         (WebCore::V8NodeList::namedPropertyGetter):
17593         * dom/ContextFeatures.cpp:
17594         (WebCore::ContextFeatures::supplementName):
17595         * dom/DeviceMotionController.cpp:
17596         (WebCore::DeviceMotionController::supplementName):
17597         * dom/DeviceOrientationController.cpp:
17598         (WebCore::DeviceOrientationController::supplementName):
17599         * dom/Element.cpp:
17600         (WebCore::Element::webkitRegionOverset):
17601         * dom/MutationRecord.cpp:
17602         * html/FileInputType.cpp:
17603         (WebCore::UploadButtonElement::shadowPseudoId):
17604         * html/FormController.cpp:
17605         (WebCore::SavedFormState::getReferencedFilePaths):
17606         (WebCore::FormKeyGenerator::formKey):
17607         * html/HTMLButtonElement.cpp:
17608         (WebCore::HTMLButtonElement::formControlType):
17609         * html/HTMLDetailsElement.cpp:
17610         (WebCore::summaryQuerySelector):
17611         * html/HTMLFieldSetElement.cpp:
17612         (WebCore::HTMLFieldSetElement::formControlType):
17613         * html/HTMLKeygenElement.cpp:
17614         (WebCore::KeygenSelectElement::shadowPseudoId):
17615         (WebCore::HTMLKeygenElement::formControlType):
17616         * html/HTMLOptGroupElement.cpp:
17617         (WebCore::HTMLOptGroupElement::formControlType):
17618         * html/HTMLOutputElement.cpp:
17619         (WebCore::HTMLOutputElement::formControlType):
17620         * html/HTMLSelectElement.cpp:
17621         (WebCore::HTMLSelectElement::formControlType):
17622         * html/HTMLTextAreaElement.cpp:
17623         (WebCore::HTMLTextAreaElement::formControlType):
17624         * html/HTMLTextFormControlElement.cpp:
17625         (WebCore::directionString):
17626         * html/shadow/DateTimeEditElement.cpp:
17627         (WebCore::DateTimeEditElement::DateTimeEditElement):
17628         * html/shadow/DateTimeFieldElements.cpp:
17629         (WebCore::DateTimeAMPMFieldElement::create):
17630         (WebCore::DateTimeDayFieldElement::create):
17631         (WebCore::DateTimeHourFieldElement::create):
17632         (WebCore::DateTimeMillisecondFieldElement::create):
17633         (WebCore::DateTimeMinuteFieldElement::create):
17634         (WebCore::DateTimeMonthFieldElement::create):
17635         (WebCore::DateTimeSecondFieldElement::create):
17636         (WebCore::DateTimeSymbolicMonthFieldElement::create):
17637         (WebCore::DateTimeWeekFieldElement::create):
17638         (WebCore::DateTimeYearFieldElement::create):
17639         * html/shadow/DetailsMarkerControl.cpp:
17640         (WebCore::DetailsMarkerControl::shadowPseudoId):
17641         * html/shadow/ImageInnerElement.cpp:
17642         (WebCore::ImageInnerElement::shadowPseudoId):
17643         * html/shadow/MediaControlElements.cpp:
17644         (WebCore::MediaControlPanelElement::shadowPseudoId):
17645         (WebCore::MediaControlTimelineContainerElement::shadowPseudoId):
17646         (WebCore::MediaControlVolumeSliderContainerElement::shadowPseudoId):
17647         (WebCore::MediaControlStatusDisplayElement::shadowPseudoId):
17648         (WebCore::MediaControlPanelMuteButtonElement::shadowPseudoId):
17649         (WebCore::MediaControlVolumeSliderMuteButtonElement::shadowPseudoId):
17650         (WebCore::MediaControlPlayButtonElement::shadowPseudoId):
17651         (WebCore::MediaControlOverlayPlayButtonElement::shadowPseudoId):
17652         (WebCore::MediaControlSeekForwardButtonElement::shadowPseudoId):
17653         (WebCore::MediaControlSeekBackButtonElement::shadowPseudoId):
17654         (WebCore::MediaControlRewindButtonElement::shadowPseudoId):
17655         (WebCore::MediaControlReturnToRealtimeButtonElement::shadowPseudoId):
17656         (WebCore::MediaControlToggleClosedCaptionsButtonElement::shadowPseudoId):
17657         (WebCore::MediaControlTimelineElement::shadowPseudoId):
17658         (WebCore::MediaControlVolumeSliderElement::shadowPseudoId):
17659         (WebCore::MediaControlFullscreenVolumeSliderElement::shadowPseudoId):
17660         (WebCore::MediaControlFullscreenButtonElement::shadowPseudoId):
17661         (WebCore::MediaControlFullscreenVolumeMinButtonElement::shadowPseudoId):
17662         (WebCore::MediaControlFullscreenVolumeMaxButtonElement::shadowPseudoId):
17663         (WebCore::MediaControlTimeRemainingDisplayElement::shadowPseudoId):
17664         (WebCore::MediaControlCurrentTimeDisplayElement::shadowPseudoId):
17665         (WebCore::MediaControlTextTrackContainerElement::shadowPseudoId):
17666         * html/shadow/MediaControlRootElement.cpp:
17667         (WebCore::MediaControlRootElement::shadowPseudoId):
17668         * html/shadow/MediaControlRootElementChromium.cpp:
17669         (WebCore::MediaControlPanelEnclosureElement::shadowPseudoId):
17670         (WebCore::MediaControlRootElementChromium::shadowPseudoId):
17671         * html/shadow/MediaControlRootElementChromiumAndroid.cpp:
17672         (WebCore::MediaControlOverlayEnclosureElement::shadowPseudoId):
17673         * html/shadow/MeterShadowElement.cpp:
17674         (WebCore::MeterInnerElement::shadowPseudoId):
17675         (WebCore::MeterBarElement::shadowPseudoId):
17676         (WebCore::MeterValueElement::shadowPseudoId):
17677         * html/shadow/ProgressShadowElement.cpp:
17678         (WebCore::ProgressInnerElement::shadowPseudoId):
17679         (WebCore::ProgressBarElement::shadowPseudoId):
17680         (WebCore::ProgressValueElement::shadowPseudoId):
17681         * html/shadow/SliderThumbElement.cpp:
17682         (WebCore::sliderThumbShadowPseudoId):
17683         (WebCore::mediaSliderThumbShadowPseudoId):
17684         (WebCore::SliderContainerElement::shadowPseudoId):
17685         * html/shadow/SpinButtonElement.cpp:
17686         (WebCore::SpinButtonElement::shadowPseudoId):
17687         * html/shadow/TextControlInnerElements.cpp:
17688         (WebCore::SearchFieldResultsButtonElement::shadowPseudoId):
17689         (WebCore::SearchFieldCancelButtonElement::shadowPseudoId):
17690         (WebCore::InputFieldSpeechButtonElement::shadowPseudoId):
17691         * html/track/TextTrackCue.cpp:
17692         (WebCore::TextTrackCueBox::textTrackCueBoxShadowPseudoId):
17693         * loader/CrossOriginAccessControl.cpp:
17694         (WebCore::passesAccessControlCheck):
17695         * loader/MainResourceLoader.cpp:
17696         (WebCore::MainResourceLoader::didReceiveResponse):
17697         * loader/PrerendererClient.cpp:
17698         (WebCore::PrerendererClient::supplementName):
17699         * loader/cache/CachedResource.cpp:
17700         (WebCore::CachedResource::updateResponseAfterRevalidation):
17701         * page/DOMWindowPagePopup.cpp:
17702         (WebCore::DOMWindowPagePopup::supplementName):
17703         * page/EventHandler.cpp:
17704         (WebCore::EventHandler::handlePasteGlobalSelection):
17705         (WebCore::focusDirectionForKey):
17706         * page/SpeechInput.cpp:
17707         (WebCore::SpeechInput::supplementName):
17708         * page/animation/CompositeAnimation.cpp:
17709         (WebCore::CompositeAnimation::updateKeyframeAnimations):
17710         * platform/graphics/FontCache.cpp:
17711         (WebCore::alternateFamilyName):
17712         * platform/graphics/MediaPlayer.cpp:
17713         (WebCore::applicationOctetStream):
17714         (WebCore::textPlain):
17715         (WebCore::codecs):
17716         * platform/graphics/chromium/FontCacheAndroid.cpp:
17717         (WebCore::FontCache::getLastResortFallbackFont):
17718         * platform/graphics/filters/SourceAlpha.cpp:
17719         (WebCore::SourceAlpha::effectName):
17720         * platform/graphics/filters/SourceGraphic.cpp:
17721         (WebCore::SourceGraphic::effectName):
17722         * platform/graphics/mac/FontCacheMac.mm:
17723         (WebCore::FontCache::getSimilarFontPlatformData):
17724         (WebCore::FontCache::getLastResortFallbackFont):
17725         * platform/graphics/skia/FontCacheSkia.cpp:
17726         (WebCore::FontCache::getLastResortFallbackFont):
17727         * platform/graphics/win/FontCacheWin.cpp:
17728         (WebCore::FontCache::getLastResortFallbackFont):
17729         * platform/graphics/wx/FontCacheWx.cpp:
17730         (WebCore::FontCache::getSimilarFontPlatformData):
17731         * platform/network/ResourceResponseBase.cpp:
17732         (WebCore::ResourceResponseBase::setHTTPHeaderField):
17733         (WebCore::ResourceResponseBase::parseCacheControlDirectives):
17734         (WebCore::ResourceResponseBase::hasCacheValidatorFields):
17735         (WebCore::ResourceResponseBase::date):
17736         (WebCore::ResourceResponseBase::age):
17737         (WebCore::ResourceResponseBase::expires):
17738         (WebCore::ResourceResponseBase::lastModified):
17739         (WebCore::ResourceResponseBase::isAttachment):
17740         * rendering/RenderTextControlMultiLine.cpp:
17741         (WebCore::RenderTextControlMultiLine::getAvgCharWidth):
17742         * rendering/RenderTextControlSingleLine.cpp:
17743         (WebCore::RenderTextControlSingleLine::getAvgCharWidth):
17744         (WebCore::RenderTextControlSingleLine::preferredContentWidth):
17745         * svg/SVGAnimateColorElement.cpp:
17746         (WebCore::attributeValueIsCurrentColor):
17747         * svg/SVGAnimateMotionElement.cpp:
17748         (WebCore::SVGAnimateMotionElement::rotateMode):
17749         * svg/SVGAnimationElement.cpp:
17750         (WebCore::SVGAnimationElement::setCalcMode):
17751         (WebCore::SVGAnimationElement::setAttributeType):
17752         (WebCore::SVGAnimationElement::isAdditive):
17753         (WebCore::SVGAnimationElement::isAccumulated):
17754         (WebCore::inheritsFromProperty):
17755         * svg/SVGFEConvolveMatrixElement.cpp:
17756         (WebCore::SVGFEConvolveMatrixElement::kernelUnitLengthXIdentifier):
17757         (WebCore::SVGFEConvolveMatrixElement::kernelUnitLengthYIdentifier):
17758         (WebCore::SVGFEConvolveMatrixElement::orderXIdentifier):
17759         (WebCore::SVGFEConvolveMatrixElement::orderYIdentifier):
17760         * svg/SVGFEDiffuseLightingElement.cpp:
17761         (WebCore::SVGFEDiffuseLightingElement::kernelUnitLengthXIdentifier):
17762         (WebCore::SVGFEDiffuseLightingElement::kernelUnitLengthYIdentifier):
17763         * svg/SVGFEDropShadowElement.cpp:
17764         (WebCore::SVGFEDropShadowElement::stdDeviationXIdentifier):
17765         (WebCore::SVGFEDropShadowElement::stdDeviationYIdentifier):
17766         * svg/SVGFEGaussianBlurElement.cpp:
17767         (WebCore::SVGFEGaussianBlurElement::stdDeviationXIdentifier):
17768         (WebCore::SVGFEGaussianBlurElement::stdDeviationYIdentifier):
17769         * svg/SVGFEMorphologyElement.cpp:
17770         (WebCore::SVGFEMorphologyElement::radiusXIdentifier):
17771         (WebCore::SVGFEMorphologyElement::radiusYIdentifier):
17772         * svg/SVGFESpecularLightingElement.cpp:
17773         (WebCore::SVGFESpecularLightingElement::kernelUnitLengthXIdentifier):
17774         (WebCore::SVGFESpecularLightingElement::kernelUnitLengthYIdentifier):
17775         * svg/SVGFETurbulenceElement.cpp:
17776         (WebCore::SVGFETurbulenceElement::baseFrequencyXIdentifier):
17777         (WebCore::SVGFETurbulenceElement::baseFrequencyYIdentifier):
17778         * svg/SVGFilterElement.cpp:
17779         (WebCore::SVGFilterElement::filterResXIdentifier):
17780         (WebCore::SVGFilterElement::filterResYIdentifier):
17781         * svg/SVGLangSpace.cpp:
17782         (WebCore::SVGLangSpace::xmlspace):
17783         (WebCore::SVGLangSpace::addSupportedAttributes):
17784         * svg/SVGMarkerElement.cpp:
17785         (WebCore::SVGMarkerElement::orientTypeIdentifier):
17786         (WebCore::SVGMarkerElement::orientAngleIdentifier):
17787         (WebCore::SVGMarkerElement::synchronizeOrientType):
17788         * svg/SVGSVGElement.cpp:
17789         (WebCore::SVGSVGElement::contentScriptType):
17790         (WebCore::SVGSVGElement::contentStyleType):
17791         * svg/SVGStyleElement.cpp:
17792         (WebCore::SVGStyleElement::type):
17793         (WebCore::SVGStyleElement::media):
17794         * svg/SVGTextContentElement.cpp:
17795         (WebCore::SVGTextContentElement::collectStyleForAttribute):
17796         * svg/SVGViewSpec.cpp:
17797         (WebCore::SVGViewSpec::viewBoxIdentifier):
17798         (WebCore::SVGViewSpec::preserveAspectRatioIdentifier):
17799         (WebCore::SVGViewSpec::transformIdentifier):
17800         * svg/animation/SVGSMILElement.cpp:
17801         (WebCore::SVGSMILElement::parseClockValue):
17802         (WebCore::SVGSMILElement::restart):
17803         (WebCore::SVGSMILElement::fill):
17804         (WebCore::SVGSMILElement::repeatCount):
17805         * testing/InternalSettings.cpp:
17806         (WebCore::InternalSettings::from):
17807         * xml/parser/XMLTreeBuilder.cpp:
17808         (WebCore::XMLTreeBuilder::processDOCTYPE):
17809         (WebCore::XMLTreeBuilder::processXMLEntity):
17810
17811 2012-11-08  Beth Dakin  <bdakin@apple.com>
17812
17813         https://bugs.webkit.org/show_bug.cgi?id=101644
17814         Fixed header on Facebook news feed becomes detached from top of 
17815         viewport after rubber band scrolling
17816         -and corresponding-
17817         <rdar://problem/12651944>
17818
17819         Reviewed by Simon Fraser.
17820
17821         There is code to handle this for non-threaded scrolling on FrameView. 
17822         This patch moves most of that code into a convenience function on 
17823         ScrollingCoordinator.
17824
17825         Have FrameView::scrollOffsetForFixedPosition() call 
17826         WebCore::scrollOffsetForFixedPosition() with all the right 
17827         parameters.
17828         * page/FrameView.cpp:
17829         (WebCore::FrameView::scrollOffsetForFixedPosition):
17830
17831         Here's where all the math happens.
17832         * page/scrolling/ScrollingCoordinator.cpp:
17833         (WebCore::fixedPositionScrollOffset):
17834         (WebCore::scrollOffsetForFixedPosition):
17835
17836         The viewportRect in these three places needs to have the 
17837         adjusted-for-fixed offset.
17838         (WebCore::ScrollingCoordinator::updateMainFrameScrollPosition):
17839         * page/scrolling/mac/ScrollingTreeScrollingNodeMac.mm:
17840         (WebCore::ScrollingTreeScrollingNodeMac::setScrollLayerPosition):
17841         * rendering/RenderLayerCompositor.cpp:
17842         (WebCore::RenderLayerCompositor::computeFixedViewportConstraints):
17843
17844 2012-11-08  Alpha Lam  <hclam@chromium.org>
17845
17846         [chromium] Deferred image decoding fails with image orientation
17847         https://bugs.webkit.org/show_bug.cgi?id=101648
17848
17849         Reviewed by Stephen White.
17850
17851         When an image is deferred save the orientation state. Once this state
17852         is cached it can be used to reply future queries since this state is
17853         static.
17854
17855         No new tests but platform/chromium/virtual/deferred/fast/images/image-orientation.html is passing now.
17856
17857         * platform/graphics/chromium/DeferredImageDecoder.cpp:
17858         (WebCore::DeferredImageDecoder::DeferredImageDecoder):
17859         (WebCore::DeferredImageDecoder::frameBufferAtIndex):
17860         (WebCore::DeferredImageDecoder::orientation):
17861         * platform/graphics/chromium/DeferredImageDecoder.h:
17862         (DeferredImageDecoder):
17863
17864 2012-11-08  Andreas Kling  <kling@webkit.org>
17865
17866         DocumentLoader: Shrink-to-fit the ResourceResponse vector after loading completes.
17867         <http://webkit.org/b/101657>
17868
17869         Reviewed by Anders Carlsson.
17870
17871         Shrink DocumentLoader::m_responses to exact size when we stop adding responses to it,
17872         as we know it won't grow after that.
17873
17874         520kB progression on Membuster3.
17875
17876         * loader/DocumentLoader.cpp:
17877         (WebCore::DocumentLoader::stopRecordingResponses):
17878
17879 2012-11-08  Hans Muller  <hmuller@adobe.com>
17880
17881         [CSS Exclusions] Polygon with horizontal bottom edges returns incorrect segments
17882         https://bugs.webkit.org/show_bug.cgi?id=100874
17883
17884         Reviewed by Dirk Schulze.
17885
17886         Revised the way that computeXIntersections() handles intersections with horizotal polygon edges.
17887         Deciding if a vertex intersection corresponds to a polygon "edge crossing", i.e. a change from inside
17888         to outside or outside to inside, now depends on which side of the horizontal line the function's
17889         y parameter corresponds to. If the y corresponds to the top of the line, then isaMinY the parameter
17890         is true, and an intersection with a horizontal edge is only considered to be an edge crossing if
17891         if the inside of the polygon is just below the horizontal edge.  When isMinY is false then the inside
17892         of the polygon must be just above the horizontal edge.
17893
17894         Tests: fast/exclusions/shape-inside/shape-inside-rectilinear-polygon-003.html
17895                fast/exclusions/shape-inside/shape-inside-rectilinear-polygon-004.html
17896
17897         * rendering/ExclusionPolygon.cpp:
17898         (WebCore::getVertexIntersectionVertices): Corrected two cases where the next/previous vertex was determined incorrectly.
17899         (WebCore::ExclusionPolygon::computeXIntersections): Added a bool isMinY parameter which specifies if the y parameter corresponds to the top or bottom a horizontal line.
17900         (WebCore::ExclusionPolygon::getExcludedIntervals): Added the new computeXIntersections() parameter.
17901         (WebCore::ExclusionPolygon::getIncludedIntervals): Ditto.
17902         * rendering/ExclusionPolygon.h:
17903         (WebCore::ExclusionPolygonEdge::previousEdge): Corrected the previousEdge() function.
17904
17905 2012-11-08  Otto Derek Cheung  <otcheung@rim.com>
17906
17907         [BlackBerry] Disable cookies on file://
17908         https://bugs.webkit.org/show_bug.cgi?id=101646
17909
17910         Reviewed by Rob Buis.
17911
17912         Disabling cookies on file and local in the browser app.
17913
17914         PR 239779
17915
17916         Tested by trying to set and retrieve cookies on WI while browsing
17917         files on the file scheme.
17918
17919         * platform/blackberry/CookieManager.cpp:
17920         (WebCore):
17921         (WebCore::shouldIgnoreScheme):
17922         (WebCore::CookieManager::getRawCookies):
17923         (WebCore::CookieManager::checkAndTreatCookie):
17924
17925 2012-11-08  Joshua Bell  <jsbell@chromium.org>
17926
17927         Expose snapshots in platform/leveldb wrapper API
17928         https://bugs.webkit.org/show_bug.cgi?id=100786
17929
17930         Reviewed by Tony Chang.
17931
17932         Expose leveldb "snapshots" in the LevelDB API. A snapshot lets you observe the database
17933         as it was when the snapshot was taken. This can be used to implement parallel transactions,
17934         e.g. where a read transaction won't see updates made by a later write transaction.
17935
17936         Tests: webkit_unit_tests --gtest_filter='LevelDBDatabaseTest.Transaction*'
17937
17938         * platform/leveldb/LevelDBDatabase.cpp:
17939         (WebCore::LevelDBSnapshot::LevelDBSnapshot): New (but for now internal-only) wrapper type.
17940         (WebCore):
17941         (WebCore::LevelDBSnapshot::~LevelDBSnapshot): Release the leveldb::Snapshot.
17942         (WebCore::LevelDBDatabase::get): Optional snapshot argument, for use by transactions.
17943         (WebCore::LevelDBDatabase::createIterator): Ditto.
17944         * platform/leveldb/LevelDBDatabase.h:
17945         (leveldb):
17946         (WebCore):
17947         (LevelDBSnapshot):
17948         (LevelDBDatabase):
17949         * platform/leveldb/LevelDBTransaction.cpp:
17950         (WebCore::LevelDBTransaction::LevelDBTransaction): Initialize a snapshot.
17951         (WebCore::LevelDBTransaction::get):
17952         (WebCore::LevelDBTransaction::TransactionIterator::TransactionIterator):
17953         * platform/leveldb/LevelDBTransaction.h:
17954         (LevelDBTransaction):
17955
17956 2012-11-08  Brady Eidson  <beidson@apple.com>
17957
17958         Have NetworkProcess do the actual loading of subresources.
17959         https://bugs.webkit.org/show_bug.cgi?id=101640
17960
17961         Reviewed by Alexey Proskuryakov.
17962
17963         No new tests (No change in behavior in any configuration we test.)
17964
17965         * WebCore.exp.in:
17966         * loader/ResourceBuffer.h: Virtualize a few methods for ports to override.
17967
17968 2012-11-08  Huang Dongsung  <luxtella@company100.net>
17969
17970         Coordinated Graphics: Remove an invisible TiledBackingStore of CoordinatedGraphicsLayer.
17971         https://bugs.webkit.org/show_bug.cgi?id=101424
17972
17973         Reviewed by Noam Rosenthal.
17974
17975         This patch adds ASSERT to TextureMapperLayer while fixing this bug in
17976         WebKit2.
17977
17978         * platform/graphics/texmap/TextureMapperLayer.cpp:
17979         (WebCore::TextureMapperLayer::paintSelf):
17980
17981 2012-11-08  Sheriff Bot  <webkit.review.bot@gmail.com>
17982
17983         Unreviewed, rolling out r133945.
17984         http://trac.webkit.org/changeset/133945
17985         https://bugs.webkit.org/show_bug.cgi?id=101645
17986
17987         Numerous layout and unit test failures (Requested by
17988         jsbell|gardener on #webkit).
17989
17990         * bindings/scripts/CodeGeneratorV8.pm:
17991         (GenerateHeader):
17992         * bindings/scripts/test/V8/V8Float64Array.h:
17993         (WebCore::V8Float64Array::toNative):
17994         * bindings/scripts/test/V8/V8TestActiveDOMObject.h:
17995         (WebCore::V8TestActiveDOMObject::toNative):
17996         * bindings/scripts/test/V8/V8TestCustomNamedGetter.h:
17997         (WebCore::V8TestCustomNamedGetter::toNative):
17998         * bindings/scripts/test/V8/V8TestEventConstructor.h:
17999         (WebCore::V8TestEventConstructor::toNative):
18000         * bindings/scripts/test/V8/V8TestEventTarget.h:
18001         (WebCore::V8TestEventTarget::toNative):
18002         * bindings/scripts/test/V8/V8TestException.h:
18003         (WebCore::V8TestException::toNative):
18004         * bindings/scripts/test/V8/V8TestInterface.h:
18005         (WebCore::V8TestInterface::toNative):
18006         * bindings/scripts/test/V8/V8TestMediaQueryListListener.h:
18007         (WebCore::V8TestMediaQueryListListener::toNative):
18008         * bindings/scripts/test/V8/V8TestNamedConstructor.h:
18009         (WebCore::V8TestNamedConstructor::toNative):
18010         * bindings/scripts/test/V8/V8TestNode.h:
18011         (WebCore::V8TestNode::toNative):
18012         * bindings/scripts/test/V8/V8TestObj.h:
18013         (WebCore::V8TestObj::toNative):
18014         * bindings/scripts/test/V8/V8TestSerializedScriptValueInterface.h:
18015         (WebCore::V8TestSerializedScriptValueInterface::toNative):
18016         * bindings/v8/NPV8Object.cpp:
18017         (WebCore::v8ObjectToNPObject):
18018         (WebCore::npCreateV8ScriptObject):
18019         * bindings/v8/V8Collection.h:
18020         (WebCore::toNativeCollection):
18021         * bindings/v8/V8DOMWindowShell.cpp:
18022         (WebCore::setIsolatedWorldField):
18023         (WebCore::V8DOMWindowShell::enteredIsolatedWorldContext):
18024         * bindings/v8/V8DOMWrapper.cpp:
18025         (WebCore::V8DOMWrapper::isWrapperOfType):
18026         * bindings/v8/V8DOMWrapper.h:
18027         (WebCore::V8DOMWrapper::setDOMWrapper):
18028         (WebCore::V8DOMWrapper::clearDOMWrapper):
18029         * bindings/v8/WrapperTypeInfo.h:
18030         (WebCore::toNative):
18031         (WebCore::toWrapperTypeInfo):
18032
18033 2012-11-01  Filip Pizlo  <fpizlo@apple.com>
18034
18035         JSC should infer when indexed storage contains only integers or doubles
18036         https://bugs.webkit.org/show_bug.cgi?id=98606
18037
18038         Reviewed by Oliver Hunt.
18039
18040         Just refactoring WebCore to pass 0 for the ArrayAllocationProfile*.
18041
18042         * bindings/js/JSCanvasRenderingContext2DCustom.cpp:
18043         (WebCore::JSCanvasRenderingContext2D::webkitLineDash):
18044         * bindings/js/JSClipboardCustom.cpp:
18045         (WebCore::JSClipboard::types):
18046         * bindings/js/JSDOMBinding.cpp:
18047         (WebCore::jsArray):
18048         * bindings/js/JSDOMBinding.h:
18049         (WebCore::jsArray):
18050         * bindings/js/JSInjectedScriptHostCustom.cpp:
18051         (WebCore::getJSListenerFunctions):
18052         * bindings/js/JSJavaScriptCallFrameCustom.cpp:
18053         (WebCore::JSJavaScriptCallFrame::scopeChain):
18054         * bindings/js/JSMessageEventCustom.cpp:
18055         (WebCore::JSMessageEvent::ports):
18056         * bindings/js/JSMutationCallbackCustom.cpp:
18057         (WebCore::JSMutationCallback::handleEvent):
18058         * bindings/js/JSWebGLRenderingContextCustom.cpp:
18059         (WebCore::toJS):
18060         (WebCore::JSWebGLRenderingContext::getAttachedShaders):
18061         (WebCore::JSWebGLRenderingContext::getSupportedExtensions):
18062         * bindings/js/SerializedScriptValue.cpp:
18063         (WebCore::CloneDeserializer::deserialize):
18064
18065 2012-11-08  Tiancheng Jiang  <tijiang@rim.com>
18066
18067         [BlackBerry] Update BB10 date input form.
18068         https://bugs.webkit.org/show_bug.cgi?id=101075
18069
18070         Reviewed by Rob Buis.
18071
18072         RIM PR 234531
18073         Internally Reviewed by Mike Fenton.
18074         Change date input appearance to button and hide caret when click on them.
18075
18076         * css/themeBlackBerry.css:
18077         (input[type="date"], input[type="datetime"], input[type="datetime-local"], input[type="time"], input[type="month"]):
18078
18079 2012-11-08  Adam Barth  <abarth@webkit.org>
18080
18081         [V8] Update callers to use the aligned pointer API rather than the deprecated unaligned pointer API
18082         https://bugs.webkit.org/show_bug.cgi?id=101519
18083
18084         Reviewed by Ojan Vafai.
18085
18086         There should be no change in behavior.  The new API is slightly faster
18087         than the old API (and apparently works correctly internally in V8).
18088
18089         * bindings/scripts/CodeGeneratorV8.pm:
18090         (GenerateHeader):
18091         * bindings/scripts/test/V8/V8Float64Array.h:
18092         (WebCore::V8Float64Array::toNative):
18093         * bindings/scripts/test/V8/V8TestActiveDOMObject.h:
18094         (WebCore::V8TestActiveDOMObject::toNative):
18095         * bindings/scripts/test/V8/V8TestCustomNamedGetter.h:
18096         (WebCore::V8TestCustomNamedGetter::toNative):
18097         * bindings/scripts/test/V8/V8TestEventConstructor.h:
18098         (WebCore::V8TestEventConstructor::toNative):
18099         * bindings/scripts/test/V8/V8TestEventTarget.h:
18100         (WebCore::V8TestEventTarget::toNative):
18101         * bindings/scripts/test/V8/V8TestException.h:
18102         (WebCore::V8TestException::toNative):
18103         * bindings/scripts/test/V8/V8TestInterface.h:
18104         (WebCore::V8TestInterface::toNative):
18105         * bindings/scripts/test/V8/V8TestMediaQueryListListener.h:
18106         (WebCore::V8TestMediaQueryListListener::toNative):
18107         * bindings/scripts/test/V8/V8TestNamedConstructor.h:
18108         (WebCore::V8TestNamedConstructor::toNative):
18109         * bindings/scripts/test/V8/V8TestNode.h:
18110         (WebCore::V8TestNode::toNative):
18111         * bindings/scripts/test/V8/V8TestObj.h:
18112         (WebCore::V8TestObj::toNative):
18113         * bindings/scripts/test/V8/V8TestSerializedScriptValueInterface.h:
18114         (WebCore::V8TestSerializedScriptValueInterface::toNative):
18115         * bindings/v8/NPV8Object.cpp:
18116         (WebCore::v8ObjectToNPObject):
18117         (WebCore::npCreateV8ScriptObject):
18118         * bindings/v8/V8Collection.h:
18119         (WebCore::toNativeCollection):
18120         * bindings/v8/V8DOMWindowShell.cpp:
18121         (WebCore::setIsolatedWorldField):
18122         (WebCore::V8DOMWindowShell::enteredIsolatedWorldContext):
18123         * bindings/v8/V8DOMWrapper.cpp:
18124         (WebCore::V8DOMWrapper::isWrapperOfType):
18125         * bindings/v8/V8DOMWrapper.h:
18126         (WebCore::V8DOMWrapper::setDOMWrapper):
18127         (WebCore::V8DOMWrapper::clearDOMWrapper):
18128         * bindings/v8/WrapperTypeInfo.h:
18129         (WebCore::toNative):
18130         (WebCore::toWrapperTypeInfo):
18131
18132 2012-11-08  Erik Arvidsson  <arv@chromium.org>
18133
18134         setAttributeNode and friends should not have optional argument
18135         https://bugs.webkit.org/show_bug.cgi?id=101631
18136
18137         Reviewed by Ojan Vafai.
18138
18139         http://www.w3.org/TR/DOM-Level-3-Core/core.html#ID-887236154
18140
18141         Fix getAttributeNode, getAttributeNodeNS and removeAttributeNode to make the Attr
18142         argument mandatory.
18143
18144         These used to throw DOMExceptions when an invalid type was passed instead of
18145         TypeError which is also a spec violation.
18146
18147         Updated existing tests.
18148
18149         * bindings/scripts/CodeGeneratorV8.pm:
18150         * dom/Element.cpp:
18151         * dom/Element.idl:
18152
18153 2012-11-08  Joshua Bell  <jsbell@chromium.org>
18154
18155         IndexedDB: Remove unused error handling clauses when writing to transaction
18156         https://bugs.webkit.org/show_bug.cgi?id=100700
18157
18158         Reviewed by Tony Chang.
18159
18160         Transactions are written into in-memory data structures. This can only fail if allocation
18161         fails, so "success" results are always returned. Change the return types to void, and delete
18162         all of the unreachable error handling code.
18163
18164         No new tests - just refactoring/dead code removal.
18165
18166         * Modules/indexeddb/IDBLevelDBBackingStore.cpp:
18167         (WebCore::putBool): Only write to transactions.
18168         (WebCore):
18169         (WebCore::putInt): Ditto.
18170         (WebCore::putVarInt): Ditto.
18171         (WebCore::putString): Ditto.
18172         (WebCore::putIDBKeyPath): Ditto.
18173         (WebCore::IDBLevelDBBackingStore::updateIDBDatabaseIntVersion):
18174         (WebCore::IDBLevelDBBackingStore::updateIDBDatabaseMetaData):
18175         (WebCore::deleteRange): Writes only to transaction, so can't fail.
18176         (WebCore::setMaxObjectStoreId):
18177         (WebCore::IDBLevelDBBackingStore::createObjectStore):
18178         (WebCore::getNewVersionNumber):
18179         (WebCore::IDBLevelDBBackingStore::putObjectStoreRecord):
18180         (WebCore::IDBLevelDBBackingStore::maybeUpdateKeyGeneratorCurrentNumber):
18181         (WebCore::setMaxIndexId):
18182         (WebCore::IDBLevelDBBackingStore::createIndex):
18183         (WebCore::IDBLevelDBBackingStore::putIndexDataForRecord):
18184         * platform/leveldb/LevelDBTransaction.cpp:
18185         (WebCore::LevelDBTransaction::set): Return type is void.
18186         (WebCore::LevelDBTransaction::put): Ditto.
18187         (WebCore::LevelDBTransaction::remove): Ditto.
18188         * platform/leveldb/LevelDBTransaction.h:
18189         (LevelDBTransaction):
18190
18191 2012-11-08  Ryosuke Niwa  <rniwa@webkit.org>
18192
18193         On Chromium, click-after-nested-block.html, focus_editable_html.html, and autoscroll.html
18194         hit assertion added in r133840
18195         https://bugs.webkit.org/show_bug.cgi?id=101576
18196
18197         Reviewed by Abhishek Arya.
18198
18199         Update layout before invalidating caret rect as needed.
18200         Existing tests cover this.
18201
18202         * editing/FrameSelection.cpp:
18203         (WebCore::FrameSelection::setCaretVisibility): Merged clearCaretRectIfNeeded.
18204         * editing/FrameSelection.h:
18205
18206 2012-11-08  Elliott Sprehn  <esprehn@chromium.org>
18207
18208         Skip frame owner disconnect when there's no frames
18209         https://bugs.webkit.org/show_bug.cgi?id=101619
18210
18211         Reviewed by Ojan Vafai.
18212
18213         Even when there's no subframes in the document we traverse down every
18214         subtree on Node removal looking for frames to disconnect. This patch
18215         checks document()->frame()->tree()->firstChild() to skip this traversal
18216         if there's no subframes.
18217
18218         No new tests, this just short circuits code for speed.
18219
18220         * dom/ContainerNodeAlgorithms.h:
18221         (WebCore::ChildFrameDisconnector::ChildFrameDisconnector):
18222
18223 2012-11-08  Erik Arvidsson  <arv@chromium.org>
18224
18225         Wrong error type is thrown for type errors in callbacks
18226         https://bugs.webkit.org/show_bug.cgi?id=101502
18227
18228         Reviewed by Adam Barth.
18229
18230         We should be throwing a TypeError and not a DOMException with code TYPE_MISMATCH_ERR.
18231
18232         http://www.w3.org/TR/WebIDL/#es-callback-function
18233
18234         Updated existing tests.
18235
18236         * bindings/scripts/CodeGeneratorJS.pm:
18237         * bindings/scripts/CodeGeneratorV8.pm:
18238         * bindings/scripts/test/JS/JSTestObj.cpp:
18239         * bindings/scripts/test/V8/V8TestObj.cpp:
18240
18241 2012-11-08  Andreas Kling  <kling@webkit.org>
18242
18243         4.68MB below RenderStyle::filter() on Membuster3.
18244         <http://webkit.org/b/101624>
18245         <rdar://problem/12663822>
18246
18247         Reviewed by Darin Adler.
18248
18249         Rename the non-const RenderStyle::filter() to mutableFilter() since using it causes us to detach
18250         from the rare non-inherited data (copy-on-write.)
18251         Most call sites were calling filter() on a RenderStyle* which was causing the bloat.
18252
18253         4.68MB progression on Membuster3.
18254
18255         * css/StyleResolver.cpp:
18256         (WebCore::StyleResolver::loadPendingSVGDocuments):
18257         (WebCore::StyleResolver::loadPendingShaders):
18258         * rendering/style/RenderStyle.h:
18259
18260 2012-11-08  Alexey Proskuryakov  <ap@apple.com>
18261
18262         Create loader/blackberry directory, because svn-apply cannot apply a patch that
18263         creates a directory and moves a file into it.
18264
18265         * loader/blackberry: Added.
18266
18267 2012-11-08  Geoffrey Garen  <ggaren@apple.com>
18268
18269         Mac build fix: Mark WidthCache.h 'private' so WebKit can use it.
18270
18271         Not reviewed.
18272
18273         * WebCore.xcodeproj/project.pbxproj:
18274
18275 2012-11-05  Geoffrey Garen  <ggaren@apple.com>
18276
18277         Optimized kerning and ligatures using caching
18278         https://bugs.webkit.org/show_bug.cgi?id=101269
18279
18280         Reviewed by Dan Bernstein.
18281
18282         Consider three kinds of text layout, and the value of caching for each:
18283
18284             (1) 1 layout of 100% unique words: small negative value.
18285
18286             (2) 1 layout of English prose: medium positive value.
18287
18288             (3) Many layouts of anything: extra-extra-large positive value.
18289
18290         Since we can't distinguish betwen these workflows a priori, we use statistical
18291         sampling. To minimize cost in (1) and maximize benefit in (2) and (3), we treat
18292         each cache access as a statistical sample, and use the cache in proportion to
18293         the observed probability of duplicate text measurement.
18294
18295         Benchmark results:
18296             plt3: 1% faster
18297             chapter-reflow-once-random: No change [*]
18298             chapter-reflow-once: 23% faster
18299             chapter-reflow-twice: 52% faster
18300             chapter-reflow-thrice: 68% faster
18301             chapter-reflow: 263% faster
18302             line-layout: 270% faster
18303
18304             [*] This is a stress test designed to make everything go wrong for
18305             caching. It does not represent real world content.
18306
18307         * GNUmakefile.list.am:
18308         * Target.pri:
18309         * WebCore.vcproj/WebCore.vcproj:
18310         * WebCore.xcodeproj/project.pbxproj:
18311         * platform/graphics/WidthCache.h: Added.
18312
18313         (WidthCache): Added a class that caches common word widths. This cache
18314         could cache more things or more cases in future -- but for now it seems
18315         to cover the common cases.
18316
18317         (SmallStringKey): Early profiling showed that allocating an AtomicString
18318         or String measurably added to the cost of the cache, so I added a custom
18319         string key that can be stored directly inside the table by value --
18320         empirically answering an age-old question with which Apple WebKit engineers
18321         seem to be obsessed.
18322
18323         (WebCore::WidthCache::SmallStringKey::capacity):
18324         (WebCore::WidthCache::SmallStringKey::SmallStringKey):
18325         (WebCore::WidthCache::SmallStringKey::characters):
18326         (WebCore::WidthCache::SmallStringKey::length):
18327         (WebCore::WidthCache::SmallStringKey::hash):
18328         (WebCore::WidthCache::SmallStringKey::isHashTableDeletedValue):
18329         (WebCore::WidthCache::SmallStringKey::isHashTableEmptyValue):
18330         (WebCore::WidthCache::SmallStringKeyHash::hash):
18331         (WebCore::WidthCache::SmallStringKeyHash::equal):
18332         (SmallStringKeyHash):
18333         (SmallStringKeyHashTraits):
18334         (WebCore::WidthCache::SmallStringKeyHashTraits::isEmptyValue): Ditto.
18335
18336         (WebCore::WidthCache::WidthCache):
18337         (WebCore::WidthCache::add): Separate out the "don't use the cache" case
18338         so the compiler can inline it separate, hopefully further reducing cases
18339         of (1).
18340
18341         (WebCore::WidthCache::addSlowCase): There's a little subtlety to the
18342         sampling policy here. Lots of different approaches are possible, and I
18343         just picked a simple one that seemed to work based on benchmarking. I'll
18344         point out some interesting sublteties I'm aware of here:
18345
18346             (*) Since we start at the min sampling rate, a font used for 20 words
18347             or fewer never allocates a cache. Anecdotally, some fonts seem to
18348             be used this way.
18349
18350             (*) When the sampling rate is x / y, sampling all x words in a row
18351             seems smart because some words may occur more commonly in relation to
18352             each other (such as 'each' and 'other'), and repeat workloads will
18353             lay out the same words in order. Intuitively, these are both reasons
18354             this policy may ramp up more effectively under load.
18355
18356             (*) I opted for linear back-off instead of, say, exponential back-off
18357             because we're not trying to back off to infinity -- just to our min
18358             sampling rate. Since we don't expect the cache to hit for every word,
18359             my guess is that exponential back-off would be too aggressive.
18360
18361             (*) Our "eviction" policy has an IQ of 1. I expect this is sufficient
18362             because it would be surprising to see a million unique words all used
18363             in the same document. (I would not like to play a Letterpress game
18364             against such a document.)
18365
18366         (WebCore::WidthCache::clear): Needed because a font can change, in which
18367         case we need to ditch its cache.
18368
18369         (WebCore::operator==): Needed for hashing.
18370
18371 2012-11-08  Andrey Kosyakov  <caseq@chromium.org>
18372
18373         Web Inspector: show statistics over selected frame range in Timeline's Frame mode
18374         https://bugs.webkit.org/show_bug.cgi?id=101593
18375
18376         Reviewed by Pavel Feldman.
18377
18378         - change status bar records counter wording to "N of M frames|records shown" depending on mode;
18379         - append average frame length and & stddev in frame mode;
18380         - expand the above to a popover that includes frame count, range duration and min/avg/max/stddev on frame length;
18381         - show frame bars & dividers iff selection range includes < 30 frames (drive-by)
18382
18383         * English.lproj/localizedStrings.js:
18384         * inspector/front-end/TimelineFrameController.js:
18385         (WebInspector.FrameStatistics):
18386         * inspector/front-end/TimelineModel.js:
18387         (WebInspector.TimelineModel.aggregateTimeByCategory):
18388         * inspector/front-end/TimelinePanel.js:
18389         (WebInspector.TimelinePanel.prototype.get statusBarItems):
18390         (WebInspector.TimelinePanel.prototype._createStatusBarItems.getAnchor):
18391         (WebInspector.TimelinePanel.prototype._createStatusBarItems):
18392         (WebInspector.TimelinePanel.prototype._updateRecordsCounter):
18393         (WebInspector.TimelinePanel.prototype._updateFrameStatistics):
18394         (WebInspector.TimelinePanel.prototype._showFrameStatistics):
18395         (WebInspector.TimelinePanel.prototype._updateFrameBars):
18396         (WebInspector.TimelinePanel.prototype._overviewModeChanged.set if):
18397         (WebInspector.TimelinePanel.prototype._overviewModeChanged):
18398         (WebInspector.TimelinePanel.prototype._refresh):
18399         * inspector/front-end/TimelinePresentationModel.js:
18400         (WebInspector.TimelinePresentationModel.prototype.):
18401         (WebInspector.TimelinePresentationModel.prototype.compareEndTime):
18402         (WebInspector.TimelinePresentationModel.prototype.filteredFrames):
18403         (WebInspector.TimelinePresentationModel.generatePopupContentForFrameStatistics):
18404         * inspector/front-end/timelinePanel.css:
18405         (.timeline-records-stats, .storage-application-cache-status, .storage-application-cache-connectivity):
18406         (.timeline-records-stats):
18407         (.timeline-frames-stats):
18408
18409 2012-11-08  Jakob Petsovits  <jpetsovits@rim.com>
18410
18411         [BlackBerry] Rework the API to use document coordinates
18412         https://bugs.webkit.org/show_bug.cgi?id=101608
18413         RIM PR 173292
18414
18415         Reviewed by Adam Treat.
18416
18417         Provide a better API for WebPage to relay.
18418         See Source/WebKit/blackberry/ChangeLog for details.
18419
18420         * platform/graphics/blackberry/MediaPlayerPrivateBlackBerry.cpp:
18421         (WebCore::MediaPlayerPrivate::getWindowScreenRect):
18422         * platform/graphics/blackberry/MediaPlayerPrivateBlackBerry.h:
18423         (Platform):
18424         (BlackBerry):
18425         (MediaPlayerPrivate):
18426
18427 2012-11-08  Sheriff Bot  <webkit.review.bot@gmail.com>
18428
18429         Unreviewed, rolling out r133892.
18430         http://trac.webkit.org/changeset/133892
18431         https://bugs.webkit.org/show_bug.cgi?id=101617
18432
18433         Compile failures on mac, android, linux (Requested by
18434         jsbell|gardener on #webkit).
18435
18436         * bindings/v8/DOMDataStore.cpp:
18437         (WebCore::DOMDataStore::current):
18438         * bindings/v8/DOMWrapperWorld.h:
18439         (WebCore::DOMWrapperWorld::domDataStore):
18440         (WebCore::DOMWrapperWorld::DOMWrapperWorld):
18441         * bindings/v8/V8DOMWrapper.h:
18442         (WebCore::V8DOMWrapper::getCachedWrapper):
18443
18444 2012-11-08  Andrey Adaikin  <aandrey@chromium.org>
18445
18446         Web Inspector: [Canvas] UI iterations: image on the top, auto replay
18447         https://bugs.webkit.org/show_bug.cgi?id=101584
18448
18449         Reviewed by Pavel Feldman.
18450
18451         * inspector/front-end/CanvasProfileView.js:
18452         (WebInspector.CanvasProfileView):
18453         (WebInspector.CanvasProfileView.prototype._showTraceLog):
18454         (WebInspector.CanvasProfileView.prototype._onTraceLogItemClick):
18455         (WebInspector.CanvasProfileView.prototype._replayTraceLog.didReplayTraceLog):
18456         (WebInspector.CanvasProfileView.prototype._replayTraceLog):
18457         * inspector/front-end/canvasProfiler.css:
18458         (.canvas-trace-log):
18459         (#canvas-replay-image-container):
18460         (#canvas-replay-image):
18461
18462 2012-11-08  Wei Fanzhe  <whyer1@gmail.com>
18463
18464         While absolute positioning is put before the first flexitem, flexitems will move to a new line.
18465         https://bugs.webkit.org/show_bug.cgi?id=101294
18466
18467         Reviewed by Ojan Vafai.
18468
18469         This issue has to do with RenderFlexibleBox::computeNextFlexLine. When determing line breaks, the algorithm sees if 1) the total width exceeds lineBreakLength and 2) whether orderedChildren is non-empty.  But then, if the total width exceeds lineBreakLength and there's only absolutely positioned elemments in orderedChildren then the conditions are met and the algorithm mistakenly breaks the line. The solution is to see if orderedChildren collects at least a flex item. If it does, break the line.  
18470
18471         * rendering/RenderFlexibleBox.cpp:
18472         (WebCore::RenderFlexibleBox::computeNextFlexLine):
18473
18474 2012-11-08  Dimitri Glazkov  <dglazkov@chromium.org>
18475
18476         Unreviewed, rolling out r133429.
18477         http://trac.webkit.org/changeset/133429
18478         https://bugs.webkit.org/show_bug.cgi?id=101173
18479
18480         Speculative roll out, investigating perf regression.
18481
18482         * dom/ContextFeatures.cpp:
18483         * dom/ContextFeatures.h:
18484         * dom/Position.cpp:
18485         (WebCore::Position::Position):
18486         (WebCore::Position::findParent):
18487         * dom/TreeScope.cpp:
18488         (WebCore::TreeScope::getSelection):
18489         * html/HTMLTagNames.in:
18490         * html/shadow/HTMLContentElement.cpp:
18491         (WebCore::HTMLContentElement::contentTagName):
18492         * page/DOMWindow.idl:
18493
18494 2012-11-07  Emil A Eklund  <eae@chromium.org>
18495
18496         Fix enclosingLayoutRect calls in InlineFlowBox.h
18497         https://bugs.webkit.org/show_bug.cgi?id=101497
18498
18499         Reviewed by Levi Weintraub.
18500
18501         InlineFlowBox.h used to include LayoutTypesInlineMethods.h which
18502         overrid enclosingLayoutRect to call closingIntRect. When we
18503         removed the LayoutTypes abstraction we switched these to
18504         enclosingIntRect to preserve the behavior.
18505         This patch changes these back to enclosingLayoutRect which is
18506         the desired behavior.
18507
18508         Covered by existing tests.
18509
18510         * rendering/InlineFlowBox.h:
18511         (WebCore::InlineFlowBox::layoutOverflowRect):
18512         (WebCore::InlineFlowBox::visualOverflowRect):
18513
18514 2012-11-08  Philip Rogers  <pdr@google.com>
18515
18516         Remove unnecessary save/restore in SVGTextRunRenderingContext
18517         https://bugs.webkit.org/show_bug.cgi?id=101546
18518
18519         Reviewed by Andreas Kling.
18520
18521         This patch removes an unnecessary context save/restore SVGTextRunRenderingContext by
18522         refactoring the code to save off the stroke thickness.
18523
18524         No new tests as this is heavily covered by existing tests.
18525
18526         * rendering/svg/SVGTextRunRenderingContext.cpp:
18527         (WebCore::SVGTextRunRenderingContext::drawSVGGlyphs):
18528
18529 2012-11-08  Carlos Garcia Campos  <cgarcia@igalia.com>
18530
18531         [GTK] Clean up includes in GObject DOM bindings code
18532         https://bugs.webkit.org/show_bug.cgi?id=101077
18533
18534         Reviewed by Kentaro Hara.
18535
18536         Remove some headers included multiple times for the same file and
18537         fix consistency in the includes style.
18538
18539         * bindings/gobject/DOMObjectCache.cpp:
18540         * bindings/gobject/GObjectEventListener.cpp:
18541         * bindings/gobject/GObjectEventListener.h:
18542         * bindings/gobject/WebKitDOMBinding.cpp:
18543         * bindings/gobject/WebKitDOMBinding.h:
18544         * bindings/gobject/WebKitDOMEventTarget.cpp:
18545         * bindings/gobject/WebKitDOMEventTarget.h:
18546         * bindings/gobject/WebKitDOMEventTargetPrivate.h:
18547         (WebKit):
18548         * bindings/gobject/WebKitDOMObject.cpp:
18549         * bindings/gobject/WebKitDOMObject.h:
18550         * bindings/gobject/WebKitHTMLElementWrapperFactory.cpp:
18551         * bindings/gobject/WebKitHTMLElementWrapperFactory.h:
18552         * bindings/scripts/CodeGeneratorGObject.pm:
18553         (GenerateHeader):
18554         (GenerateFunction):
18555         (Generate):
18556         (WriteData):
18557         * bindings/scripts/test/GObject/WebKitDOMFloat64Array.cpp:
18558         * bindings/scripts/test/GObject/WebKitDOMFloat64Array.h:
18559         * bindings/scripts/test/GObject/WebKitDOMFloat64ArrayPrivate.h:
18560         * bindings/scripts/test/GObject/WebKitDOMTestActiveDOMObject.cpp:
18561         * bindings/scripts/test/GObject/WebKitDOMTestActiveDOMObject.h:
18562         * bindings/scripts/test/GObject/WebKitDOMTestActiveDOMObjectPrivate.h:
18563         * bindings/scripts/test/GObject/WebKitDOMTestCallback.cpp:
18564         * bindings/scripts/test/GObject/WebKitDOMTestCallback.h:
18565         * bindings/scripts/test/GObject/WebKitDOMTestCallbackPrivate.h:
18566         * bindings/scripts/test/GObject/WebKitDOMTestCustomNamedGetter.cpp:
18567         * bindings/scripts/test/GObject/WebKitDOMTestCustomNamedGetter.h:
18568         * bindings/scripts/test/GObject/WebKitDOMTestCustomNamedGetterPrivate.h:
18569         * bindings/scripts/test/GObject/WebKitDOMTestEventConstructor.cpp:
18570         * bindings/scripts/test/GObject/WebKitDOMTestEventConstructor.h:
18571         * bindings/scripts/test/GObject/WebKitDOMTestEventConstructorPrivate.h:
18572         * bindings/scripts/test/GObject/WebKitDOMTestEventTarget.cpp:
18573         * bindings/scripts/test/GObject/WebKitDOMTestEventTarget.h:
18574         * bindings/scripts/test/GObject/WebKitDOMTestEventTargetPrivate.h:
18575         * bindings/scripts/test/GObject/WebKitDOMTestException.cpp:
18576         * bindings/scripts/test/GObject/WebKitDOMTestException.h:
18577         * bindings/scripts/test/GObject/WebKitDOMTestExceptionPrivate.h:
18578         * bindings/scripts/test/GObject/WebKitDOMTestInterface.cpp:
18579         * bindings/scripts/test/GObject/WebKitDOMTestInterface.h:
18580         * bindings/scripts/test/GObject/WebKitDOMTestInterfacePrivate.h:
18581         * bindings/scripts/test/GObject/WebKitDOMTestMediaQueryListListener.cpp:
18582         * bindings/scripts/test/GObject/WebKitDOMTestMediaQueryListListener.h:
18583         * bindings/scripts/test/GObject/WebKitDOMTestMediaQueryListListenerPrivate.h:
18584         * bindings/scripts/test/GObject/WebKitDOMTestNamedConstructor.cpp:
18585         * bindings/scripts/test/GObject/WebKitDOMTestNamedConstructor.h:
18586         * bindings/scripts/test/GObject/WebKitDOMTestNamedConstructorPrivate.h:
18587         * bindings/scripts/test/GObject/WebKitDOMTestNode.cpp:
18588         * bindings/scripts/test/GObject/WebKitDOMTestNode.h:
18589         * bindings/scripts/test/GObject/WebKitDOMTestNodePrivate.h:
18590         * bindings/scripts/test/GObject/WebKitDOMTestObj.cpp:
18591         * bindings/scripts/test/GObject/WebKitDOMTestObj.h:
18592         * bindings/scripts/test/GObject/WebKitDOMTestObjPrivate.h:
18593         * bindings/scripts/test/GObject/WebKitDOMTestSerializedScriptValueInterface.cpp:
18594         * bindings/scripts/test/GObject/WebKitDOMTestSerializedScriptValueInterface.h:
18595         * bindings/scripts/test/GObject/WebKitDOMTestSerializedScriptValueInterfacePrivate.h:
18596
18597 2012-11-08  Dan Carney  <dcarney@google.com>
18598
18599         [V8] Main world should have one DOMDataStore
18600         https://bugs.webkit.org/show_bug.cgi?id=101470
18601
18602         Reviewed by Kentaro Hara.
18603
18604         The main world DOMWrapperWorld held onto a DOMDataStore that should
18605         never be used, as there is a static one optimized for speed in
18606         DOMDataStore.
18607
18608         No new tests. No change in functionality.
18609
18610         * bindings/v8/DOMDataStore.cpp:
18611         (WebCore::DOMDataStore::current):
18612         * bindings/v8/DOMWrapperWorld.h:
18613         (WebCore::DOMWrapperWorld::isolatedWorldDomDataStore):
18614         (WebCore::DOMWrapperWorld::DOMWrapperWorld):
18615         * bindings/v8/V8DOMWrapper.h:
18616         (WebCore::V8DOMWrapper::getCachedWrapper):
18617
18618 2012-11-08  Laszlo Gombos  <l.gombos@samsung.com>
18619
18620         [EFL] Remove non-variable options from the build system
18621         https://bugs.webkit.org/show_bug.cgi?id=101506
18622
18623         Reviewed by Kenneth Rohde Christiansen.
18624
18625         Remove WTF_USE_ICU_UNICODE, WTF_USE_CAIRO and WTF_USE_FREETYPE cmake variables
18626         as these are always set to const 1 and not really configurable.
18627
18628         Remove duplicate platform/graphics/cairo include path from
18629         PlatformEfl.cmake.
18630
18631         No new tests as there is no new functionality.
18632
18633         * PlatformEfl.cmake:
18634
18635 2012-11-08  KyungTae Kim  <ktf.kim@samsung.com>
18636
18637         Unused parameters on GraphicsLayerUpdater.cpp
18638         https://bugs.webkit.org/show_bug.cgi?id=101577
18639
18640         Reviewed by Kentaro Hara.
18641
18642         The parameter 'displayID' is not used when !USE(REQUEST_ANIMATION_FRAME_DISPLAY_MONITOR)
18643         Use UNUSED_PARAM macro for removing -Wunused-parameter warnings
18644
18645         * platform/graphics/GraphicsLayerUpdater.cpp:
18646         (WebCore::GraphicsLayerUpdater::GraphicsLayerUpdater):
18647         (WebCore::GraphicsLayerUpdater::screenDidChange):
18648
18649 2012-11-08  Alexander Pavlov  <apavlov@chromium.org>
18650
18651         Web Inspector: Add option to disable rulers (Elements panel)
18652         https://bugs.webkit.org/show_bug.cgi?id=101554
18653
18654         Reviewed by Pavel Feldman.
18655
18656         A new setting, showMetricsRulers, has been introduced (off by default, so users need to opt in to see the rulers).
18657         The setting value is passed into InspectorDOMAgent, down to the InspectorOverlayPage, which affects the drawGrid() and
18658         drawRulers() calls. As a side effect, the issue when the rulers were painted for elements having no renderers has been fixed.
18659
18660         No new tests, a UI change.
18661
18662         * English.lproj/localizedStrings.js: Add "Show rulers" string.
18663         * inspector/InspectorDOMAgent.cpp:
18664         (WebCore::InspectorDOMAgent::highlightConfigFromInspectorObject): Copy over the showRulers value.
18665         * inspector/InspectorOverlay.cpp:
18666         (WebCore::buildObjectForHighlight): Copy over the showRulers value.
18667         * inspector/InspectorOverlay.h:
18668         (HighlightConfig): Add |bool showRulers|.
18669         (WebCore::Highlight::Highlight): Initialize fields.
18670         (Highlight): Add |bool showRulers|.
18671         (WebCore::Highlight::setDataFromConfig):
18672         * inspector/InspectorOverlayPage.html:
18673         * inspector/front-end/DOMAgent.js: Make use of WebInspector.settings.showMetricsRulers when building the highlight DTO.
18674         * inspector/front-end/Settings.js: Add showMetricsRulers.
18675         * inspector/front-end/SettingsScreen.js:
18676         (WebInspector.GenericSettingsTab): Add "Show rulers" checkbox in the Elements panel section.
18677
18678 2012-11-08  Alexander Shalamov  <alexander.shalamov@intel.com>
18679
18680         Warn in the inspector console when using dpi and dpcm units outside of media="print"
18681         https://bugs.webkit.org/show_bug.cgi?id=100865
18682
18683         Reviewed by Kenneth Rohde Christiansen.
18684
18685         Added function that prints warning to inspector console whenever dpi or dpcm CSS units
18686         are used for screen media.
18687
18688         Test: fast/media/mq-resolution-dpi-dpcm-warning.html
18689
18690         * css/CSSStyleSheet.cpp:
18691         (WebCore::CSSStyleSheet::setMediaQueries):
18692         * css/MediaList.cpp:
18693         (WebCore):
18694         (WebCore::addResolutionWarningMessageToConsole):
18695         (WebCore::reportMediaQueryWarningIfNeeded):
18696         * css/MediaList.h:
18697         (WebCore):
18698         * css/MediaQueryMatcher.cpp:
18699         (WebCore::MediaQueryMatcher::matchMedia):
18700         * css/StyleSheetContents.cpp:
18701         (WebCore::StyleSheetContents::parserAppendRule):
18702
18703 2012-11-08  Eugene Klyuchnikov  <eustas.bug@gmail.com>
18704
18705         Web Inspector: Console: "time" and "timeEnd" should have same number of required arguments
18706         https://bugs.webkit.org/show_bug.cgi?id=101451
18707
18708         Reviewed by Yury Semikhatsky.
18709
18710         Solution: make console.time "title" parameter mandatory.
18711
18712         * page/Console.idl: Changed parameter specification.
18713
18714 2012-11-08  Vsevolod Vlasov  <vsevik@chromium.org>
18715
18716         Unreviewed fixed inspector frontend compilation
18717
18718         * inspector/front-end/DataGrid.js:
18719
18720 2012-11-08  Zeno Albisser  <zeno@webkit.org>
18721
18722         GraphicsSurfaceGLX needs to query the drawable for YInversion.
18723         https://bugs.webkit.org/show_bug.cgi?id=101472
18724
18725         After r133049 the WebGL content is now displayed upside down
18726         for the Qt port. We cannot just apply a generic rule, that
18727         the content needs to be flipped upside down.
18728         Instead we have to query GLX to tell us, if the drawable's
18729         framebuffer is y-inverted.
18730
18731         Reviewed by Kenneth Rohde Christiansen.
18732
18733         * platform/graphics/surfaces/qt/GraphicsSurfaceGLX.cpp:
18734         (WebCore::GraphicsSurfacePrivate::textureIsYInverted):
18735         (GraphicsSurfacePrivate):
18736         (WebCore::GraphicsSurface::platformPaintToTextureMapper):
18737
18738 2012-11-08  Mike West  <mkwst@chromium.org>
18739
18740         Warn when parsing an invalid X-Frame-Options header.
18741         https://bugs.webkit.org/show_bug.cgi?id=101447
18742
18743         Reviewed by Adam Barth.
18744
18745         An 'X-Frame-Options' header that contains an invalid option (that is,
18746         neither 'DENY' nor 'SAMEORIGIN') is ignored. This patch adds a console
18747         warning to notify developers that they've made a mistake.
18748
18749         Test: http/tests/security/XFrameOptions/x-frame-options-invalid.html
18750
18751         * dom/Document.cpp:
18752         (WebCore::Document::processHttpEquiv):
18753             Move the request identifier generation out of the failure block in
18754             order to pass it into 'shouldInterruptLoadForXFrameOptions'. This
18755             ensures that the console message is properly tied to a request.
18756         * loader/FrameLoader.cpp:
18757         (WebCore::FrameLoader::shouldInterruptLoadForXFrameOptions):
18758         * loader/FrameLoader.h:
18759         (FrameLoader):
18760             'shouldInterruptLoadForXFrameOptions' now accepts a request
18761             identifier as a parameter, and generates a console message if the
18762             load is blocked.
18763         * loader/MainResourceLoader.cpp:
18764         (WebCore::MainResourceLoader::didReceiveResponse):
18765             Pass the request identifier into 'shouldInterruptLoadForXFrameOptions'.
18766
18767 2012-11-08  Eugene Klyuchnikov  <eustas.bug@gmail.com>
18768
18769         Web Inspector: Timeline: Improve time/timeEnd appearance.
18770         https://bugs.webkit.org/show_bug.cgi?id=100936
18771
18772         Reviewed by Yury Semikhatsky.
18773
18774         Changes:
18775         - time/timeEnd records should be top level records only in "glue" mode
18776         - time/timeEnd records should display "message" in record list / popover
18777         - glued records add aggregated statistics to root record
18778         - glued records do not reduce their origin self time
18779
18780         Test: inspector/timeline/timeline-time.html
18781
18782         * English.lproj/localizedStrings.js: Added "Message" string.
18783         * inspector/front-end/TimelinePresentationModel.js:
18784         (WebInspector.TimelinePresentationModel.Record): Added "origin" field.
18785
18786 2012-11-08  Yury Semikhatsky  <yurys@chromium.org>
18787
18788         Web Inspector: move front-end methods called from native part to InspectorFrontendAPI
18789         https://bugs.webkit.org/show_bug.cgi?id=101463
18790
18791         Reviewed by Vsevolod Vlasov.
18792
18793         Moved Web Inspector methods called from native code to InspectorFrontendAPI.
18794
18795         * inspector/InspectorClient.cpp:
18796         (WebCore::InspectorClient::doDispatchMessageOnFrontendPage):
18797         * inspector/InspectorFrontendHost.cpp:
18798         (WebCore::FrontendMenuProvider::create):
18799         (WebCore::FrontendMenuProvider::disconnect):
18800         (WebCore::FrontendMenuProvider::FrontendMenuProvider):
18801         (WebCore::FrontendMenuProvider::contextMenuItemSelected):
18802         (WebCore::FrontendMenuProvider::contextMenuCleared):
18803         (FrontendMenuProvider):
18804         (WebCore::InspectorFrontendHost::showContextMenu):
18805         * inspector/front-end/InspectorFrontendAPI.js:
18806         (InspectorFrontendAPI.loadCompleted):
18807         (InspectorFrontendAPI.contextMenuItemSelected):
18808         (InspectorFrontendAPI.contextMenuCleared):
18809         (InspectorFrontendAPI.dispatchMessageAsync):
18810         (InspectorFrontendAPI.dispatchMessage):
18811         * inspector/front-end/inspector.js:
18812
18813 2012-11-08  Kunihiko Sakamoto  <ksakamoto@chromium.org>
18814
18815         User can change a disabled select (drop down box)
18816         https://bugs.webkit.org/show_bug.cgi?id=100932
18817
18818         Reviewed by Kent Tamura.
18819
18820         <select> should not handle events if it's disabled.
18821
18822         Test: fast/forms/select/select-disabled.html
18823
18824         * html/HTMLSelectElement.cpp:
18825         (WebCore::HTMLSelectElement::defaultEventHandler):
18826
18827 2012-11-08  Alec Flett  <alecflett@chromium.org>
18828
18829         IndexedDB: Rename methods and remove dead code from IDBBackingStore
18830         https://bugs.webkit.org/show_bug.cgi?id=101488
18831
18832         Reviewed by Ojan Vafai.
18833
18834         In preparation for merging IDBBackingStore and IDBLevelDBBackingStore:
18835
18836         1) rename ObjectStoreRecordIdentifier to RecordIdentifier
18837         2) remove IDBBackingStore::forEachRecord and friends
18838         3) remove IDBBackingStore::Cursor::close, since it was an empty method.
18839
18840         No new tests as this is purely code cleanup.
18841
18842         * Modules/indexeddb/IDBBackingStore.cpp:
18843         (WebCore::IDBLevelDBBackingStore::getRecord):
18844         (WebCore):
18845         (WebCore::IDBLevelDBBackingStore::putRecord):
18846         (WebCore::IDBLevelDBBackingStore::createInvalidRecordIdentifier):
18847         (WebCore::IDBLevelDBBackingStore::deleteRecord):
18848         (WebCore::IDBLevelDBBackingStore::keyExistsInObjectStore):
18849         (WebCore::IDBLevelDBBackingStore::putIndexDataForRecord):
18850         (WebCore::IDBLevelDBBackingStore::deleteIndexDataForRecord):
18851         * Modules/indexeddb/IDBBackingStore.h:
18852         (WebCore::IDBBackingStore::RecordIdentifier::~RecordIdentifier):
18853         (IDBBackingStore):
18854         * Modules/indexeddb/IDBCursorBackendImpl.cpp:
18855         (WebCore::IDBCursorBackendImpl::close):
18856         * Modules/indexeddb/IDBIndexBackendImpl.cpp:
18857         (WebCore::IDBIndexBackendImpl::countInternal):
18858         (WebCore::IDBIndexBackendImpl::getInternal):
18859         (WebCore::IDBIndexBackendImpl::getKeyInternal):
18860         * Modules/indexeddb/IDBLevelDBBackingStore.h:
18861         (IDBLevelDBBackingStore):
18862         * Modules/indexeddb/IDBObjectStoreBackendImpl.cpp:
18863         (WebCore::IDBObjectStoreBackendImpl::getInternal):
18864         (WebCore):
18865         (WebCore::IDBObjectStoreBackendImpl::setIndexKeys):
18866         (WebCore::IDBObjectStoreBackendImpl::putInternal):
18867         (WebCore::IDBObjectStoreBackendImpl::deleteInternal):
18868         (WebCore::IDBObjectStoreBackendImpl::countInternal):
18869
18870 2012-11-07  Vsevolod Vlasov  <vsevik@chromium.org>
18871
18872         Web Inspector: console error after inspecting IndexedDB
18873         https://bugs.webkit.org/show_bug.cgi?id=101481
18874
18875         Reviewed by Pavel Feldman.
18876
18877         Added objectId nullity check to RemoteOBject::release.
18878         Drive-by added release for entry key and primaryKey.
18879
18880         * inspector/front-end/IndexedDBViews.js:
18881         (WebInspector.IDBDataView.prototype.clear):
18882         * inspector/front-end/RemoteObject.js:
18883         (WebInspector.RemoteObject.prototype.release):
18884
18885 2012-11-07  Vsevolod Vlasov  <vsevik@chromium.org>
18886
18887         Web Inspector: Migrate inspector IndexedDB support to frontend API.
18888         https://bugs.webkit.org/show_bug.cgi?id=101457
18889
18890         Reviewed by Pavel Feldman.
18891
18892         Migrated IndexedDB support to web facing IndexedDB API.
18893
18894         * inspector/Inspector.json:
18895         * inspector/InspectorIndexedDBAgent.cpp:
18896         (WebCore):
18897         (WebCore::assertIDBFactory):
18898         (WebCore::InspectorIndexedDBAgent::requestDatabaseNamesForFrame):
18899         (WebCore::InspectorIndexedDBAgent::requestDatabase):
18900         (WebCore::InspectorIndexedDBAgent::requestData):
18901         * inspector/front-end/IndexedDBModel.js:
18902         (WebInspector.IndexedDBModel.prototype.innerCallback):
18903         (WebInspector.IndexedDBModel.prototype._requestData):
18904         * inspector/front-end/IndexedDBViews.js:
18905         (WebInspector.IDBDataView.prototype._updateData.callback):
18906         (WebInspector.IDBDataView.prototype._updateData):
18907         (WebInspector.IDBDataGridNode):
18908         (WebInspector.IDBDataGridNode.prototype.createCell):
18909
18910 2012-08-20  Taiju Tsuiki  <tzik@chromium.org>
18911
18912         Web Inspector: Drop dimmed crumb handling
18913         https://bugs.webkit.org/show_bug.cgi?id=94457
18914
18915         Reviewed by Vsevolod Vlasov.
18916
18917         No new tests. Existing inspector test should work.
18918
18919         * inspector/front-end/ElementsPanel.js:
18920         (WebInspector.ElementsPanel.prototype.updateBreadcrumb):
18921         (WebInspector.ElementsPanel.prototype.updateBreadcrumbSizes):
18922         * inspector/front-end/breadcrumbList.css:
18923
18924 2012-11-07  Vsevolod Vlasov  <vsevik@chromium.org>
18925
18926         Web Inspector: Infinite loop in DataGrid::autoSizeColumn
18927         https://bugs.webkit.org/show_bug.cgi?id=101363
18928
18929         Reviewed by Pavel Feldman.
18930
18931         Test: inspector/datagrid-autosize.html
18932
18933         * inspector/front-end/DataGrid.js:
18934         (WebInspector.DataGrid.prototype._autoSizeWidths):
18935         (WebInspector.DataGrid.prototype.autoSizeColumns):
18936
18937 2012-11-07  Keishi Hattori  <keishi@webkit.org>
18938
18939         Implement week picking to calendar picker
18940         https://bugs.webkit.org/show_bug.cgi?id=101449
18941
18942         Reviewed by Kent Tamura.
18943
18944         This adds week picker mode to CalendarPicker.
18945
18946         No new tests. Tests will be added later when this feature is enabled in DRT.
18947
18948         * Resources/pagepopups/calendarPicker.css:
18949         (.month-mode .day):
18950         (.week-mode .available.day-selected.monday): Rounded corners around week selection.
18951         (.week-mode .available.day-selected.sunday): Ditto.
18952         (.week-mode .unavailable.day-selected):
18953         (.week-mode .unavailable.day-selected.monday):
18954         (.week-mode .unavailable.day-selected.sunday):
18955         (.week-mode .week-column.unavailable.day-selected):
18956         (.week-column): Hide week column unless in week mode.
18957         (.week-mode .week-column):
18958         * Resources/pagepopups/calendarPicker.js:
18959         (parseDateString): Support week string.
18960         (Week):
18961         (Week.parse): Parses "yyyy-Www" string.
18962         (Week.createFromDate): Creates Week containing datetime.
18963         (Week.createFromToday): Creates Week containing today.
18964         (Week.weekOneStartDateForYear): Returns the start date for the first week of year.
18965         (Week.numberOfWeeksInYear): Returns the number of weeks in year.
18966         (Week._numberOfWeeksSinceDate): Returns number of weeks since a date.
18967         (Week.prototype.equals): Returns true if the Weeks are the same.
18968         (Week.prototype.previous): Returns the previous Week.
18969         (Week.prototype.next): Returns the next Week.
18970         (Week.prototype.startDate): Returns start datetime of Week.
18971         (Week.prototype.endDate): Returns end datetime of Week.
18972         (Week.prototype.valueOf): Returns the milliseconds since epoch.
18973         (Week.prototype.toString): Returns ISO week string.
18974         (CalendarPicker): Add week picker mode.
18975         (CalendarPicker.prototype.showMonth): Use NavigationBehaviour instead of bools.
18976         (YearMonthController.prototype.attachTo): Fix bug.
18977         (YearMonthController.prototype.moveRelatively): Use new showMonth.
18978         (DaysTable.prototype.attachTo): Add week number column.
18979         (DaysTable.prototype._renderMonth): Render week numbers.
18980         (DaysTable.prototype.navigateToMonth): Render week numbers.
18981         (DaysTable.prototype.selectRange):
18982         (DaysTable.prototype._selectRangeAtPosition): Week number nodes have an positionX of -1.
18983         (DaysTable.prototype._maybeSetPreviousMonth):
18984         (DaysTable.prototype._maybeSetNextMonth):
18985         (MonthPickerDaysTable.prototype.selectRange):
18986         (MonthPickerDaysTable.prototype.selectRangeAndShowEntireRange):
18987         (MonthPickerDaysTable.prototype._handleKey):
18988         (WeekPickerDaysTable): Added.
18989         (WeekPickerDaysTable.prototype._markRangeAsSelected): Marks week as selected.
18990         (WeekPickerDaysTable.prototype.selectRange): Selects week.
18991         (WeekPickerDaysTable.prototype.selectRangeAndShowEntireRange): Selects week and navigate to show entire selection.
18992         (WeekPickerDaysTable.prototype._rangeForNode): Returns Week for node.
18993         (WeekPickerDaysTable.prototype._handleKey):
18994
18995 2012-11-07  Sheriff Bot  <webkit.review.bot@gmail.com>
18996
18997         Unreviewed, rolling out r133841.
18998         http://trac.webkit.org/changeset/133841
18999         https://bugs.webkit.org/show_bug.cgi?id=101542
19000
19001         Reverted patches were innocent (Requested by shinyak on
19002         #webkit).
19003
19004         * WebCore.exp.in:
19005         * dom/Element.cpp:
19006         (WebCore::Element::shadowPseudoId):
19007         * dom/Element.h:
19008         (Element):
19009         * dom/ElementRareData.cpp:
19010         (WebCore::ElementRareData::reportMemoryUsage):
19011         * dom/ElementRareData.h:
19012         (ElementRareData):
19013         * html/BaseMultipleFieldsDateAndTimeInputType.cpp:
19014         (WebCore::BaseMultipleFieldsDateAndTimeInputType::createShadowSubtree):
19015         * html/ColorInputType.cpp:
19016         (WebCore::ColorInputType::createShadowSubtree):
19017         * html/HTMLTextAreaElement.cpp:
19018         (WebCore::HTMLTextAreaElement::updatePlaceholderText):
19019         * html/RangeInputType.cpp:
19020         (WebCore::RangeInputType::createShadowSubtree):
19021         * html/TextFieldInputType.cpp:
19022         (WebCore::TextFieldInputType::createShadowSubtree):
19023         (WebCore::TextFieldInputType::updatePlaceholderText):
19024         * html/ValidationMessage.cpp:
19025         (WebCore::ValidationMessage::buildBubbleTree):
19026         * html/shadow/DateTimeEditElement.cpp:
19027         (WebCore::DateTimeEditBuilder::visitLiteral):
19028         (WebCore::DateTimeEditElement::DateTimeEditElement):
19029         * html/shadow/DateTimeFieldElement.cpp:
19030         (WebCore::DateTimeFieldElement::initialize):
19031         * html/shadow/DateTimeFieldElement.h:
19032         (DateTimeFieldElement):
19033         * html/shadow/PickerIndicatorElement.cpp:
19034         (WebCore::PickerIndicatorElement::PickerIndicatorElement):
19035         * html/track/TextTrackCue.cpp:
19036         (WebCore::TextTrackCueBox::TextTrackCueBox):
19037         (WebCore::TextTrackCue::updateDisplayTree):
19038         * testing/Internals.cpp:
19039         (WebCore::Internals::setShadowPseudoId):
19040
19041 2012-11-07  Simon Fraser  <simon.fraser@apple.com>
19042
19043         Fix EFL build, which has accelerated compositing disabled, by making
19044         repaintViewRectangle() const.
19045
19046         * rendering/RenderView.cpp:
19047         (WebCore::RenderView::repaintViewRectangle):
19048         * rendering/RenderView.h:
19049         (RenderView):
19050
19051 2012-11-07  Simon Fraser  <simon.fraser@apple.com>
19052
19053         constify ALL the repaint containers
19054         https://bugs.webkit.org/show_bug.cgi?id=101541
19055
19056         Reviewed by Beth Dakin.
19057
19058         Make all the RenderLayerModelObject* repaintContainer arguments const, since
19059         these member functions should have no need to mutate this object.
19060
19061         * WebCore.exp.in:
19062         * rendering/RenderBR.h:
19063         * rendering/RenderBlock.cpp:
19064         (WebCore::RenderBlock::selectionGapRectsForRepaint):
19065         (WebCore::RenderBlock::rectWithOutlineForRepaint):
19066         * rendering/RenderBlock.h:
19067         * rendering/RenderBox.cpp:
19068         (WebCore::RenderBox::outlineBoundsForRepaint):
19069         (WebCore::RenderBox::mapLocalToContainer):
19070         (WebCore::RenderBox::clippedOverflowRectForRepaint):
19071         (WebCore::RenderBox::computeRectForRepaint):
19072         * rendering/RenderBox.h:
19073         * rendering/RenderFlowThread.cpp:
19074         (WebCore::RenderFlowThread::repaintRectangleInRegions): Need to use a const_iterator.
19075         * rendering/RenderFlowThread.h:
19076         * rendering/RenderInline.cpp:
19077         (WebCore::RenderInline::clippedOverflowRectForRepaint):
19078         (WebCore::RenderInline::rectWithOutlineForRepaint):
19079         (WebCore::RenderInline::computeRectForRepaint):
19080         (WebCore::RenderInline::mapLocalToContainer):
19081         * rendering/RenderInline.h:
19082         * rendering/RenderListMarker.cpp:
19083         (WebCore::RenderListMarker::selectionRectForRepaint):
19084         * rendering/RenderListMarker.h:
19085         * rendering/RenderObject.cpp:
19086         (WebCore::RenderObject::repaintUsingContainer):
19087         (WebCore::RenderObject::repaintAfterLayoutIfNeeded):
19088         (WebCore::RenderObject::rectWithOutlineForRepaint):
19089         (WebCore::RenderObject::clippedOverflowRectForRepaint):
19090         (WebCore::RenderObject::computeRectForRepaint):
19091         (WebCore::RenderObject::computeFloatRectForRepaint):
19092         (WebCore::RenderObject::mapLocalToContainer):
19093         (WebCore::RenderObject::localToContainerQuad):
19094         (WebCore::RenderObject::localToContainerPoint):
19095         * rendering/RenderObject.h:
19096         (WebCore::RenderObject::selectionRectForRepaint):
19097         (WebCore::RenderObject::outlineBoundsForRepaint):
19098         * rendering/RenderReplaced.cpp:
19099         (WebCore::RenderReplaced::selectionRectForRepaint):
19100         (WebCore::RenderReplaced::clippedOverflowRectForRepaint):
19101         * rendering/RenderReplaced.h:
19102         * rendering/RenderTableCell.cpp:
19103         (WebCore::RenderTableCell::clippedOverflowRectForRepaint):
19104         (WebCore::RenderTableCell::computeRectForRepaint):
19105         * rendering/RenderTableCell.h:
19106         * rendering/RenderTableCol.cpp:
19107         (WebCore::RenderTableCol::clippedOverflowRectForRepaint):
19108         * rendering/RenderTableCol.h:
19109         * rendering/RenderTableRow.cpp:
19110         (WebCore::RenderTableRow::clippedOverflowRectForRepaint):
19111         * rendering/RenderTableRow.h:
19112         * rendering/RenderText.cpp:
19113         (WebCore::RenderText::clippedOverflowRectForRepaint):
19114         (WebCore::RenderText::selectionRectForRepaint):
19115         * rendering/RenderText.h:
19116         * rendering/RenderView.cpp:
19117         (WebCore::RenderView::mapLocalToContainer):
19118         (WebCore::RenderView::computeRectForRepaint):
19119         * rendering/RenderView.h:
19120         * rendering/svg/RenderSVGForeignObject.cpp:
19121         (WebCore::RenderSVGForeignObject::clippedOverflowRectForRepaint):
19122         (WebCore::RenderSVGForeignObject::computeFloatRectForRepaint):
19123         (WebCore::RenderSVGForeignObject::mapLocalToContainer):
19124         * rendering/svg/RenderSVGForeignObject.h:
19125         * rendering/svg/RenderSVGGradientStop.h:
19126         * rendering/svg/RenderSVGHiddenContainer.h:
19127         * rendering/svg/RenderSVGInline.cpp:
19128         (WebCore::RenderSVGInline::clippedOverflowRectForRepaint):
19129         (WebCore::RenderSVGInline::computeFloatRectForRepaint):
19130         (WebCore::RenderSVGInline::mapLocalToContainer):
19131         * rendering/svg/RenderSVGInline.h:
19132         * rendering/svg/RenderSVGModelObject.cpp:
19133         (WebCore::RenderSVGModelObject::clippedOverflowRectForRepaint):
19134         (WebCore::RenderSVGModelObject::computeFloatRectForRepaint):
19135         (WebCore::RenderSVGModelObject::mapLocalToContainer):
19136         (WebCore::RenderSVGModelObject::outlineBoundsForRepaint):
19137         * rendering/svg/RenderSVGModelObject.h:
19138         * rendering/svg/RenderSVGRoot.cpp:
19139         (WebCore::RenderSVGRoot::clippedOverflowRectForRepaint):
19140         (WebCore::RenderSVGRoot::computeFloatRectForRepaint):
19141         (WebCore::RenderSVGRoot::mapLocalToContainer):
19142         * rendering/svg/RenderSVGRoot.h:
19143         * rendering/svg/RenderSVGText.cpp:
19144         (WebCore::RenderSVGText::clippedOverflowRectForRepaint):
19145         (WebCore::RenderSVGText::computeRectForRepaint):
19146         (WebCore::RenderSVGText::computeFloatRectForRepaint):
19147         (WebCore::RenderSVGText::mapLocalToContainer):
19148         * rendering/svg/RenderSVGText.h:
19149         * rendering/svg/SVGRenderSupport.cpp:
19150         (WebCore::SVGRenderSupport::clippedOverflowRectForRepaint):
19151         (WebCore::SVGRenderSupport::computeFloatRectForRepaint):
19152         (WebCore::SVGRenderSupport::mapLocalToContainer):
19153         * rendering/svg/SVGRenderSupport.h:
19154         (SVGRenderSupport):
19155
19156 2012-11-07  Kent Tamura  <tkent@chromium.org>
19157
19158         [Chromium-win] Refactor date/time format conversion code in LocaleWin
19159         https://bugs.webkit.org/show_bug.cgi?id=101329
19160
19161         Reviewed by Kentaro Hara.
19162
19163         convertWindowsDateFormatToLDML and convertWindowsTimeFormatToLDML did
19164         similar jobs with different code. We can merge them into one function.
19165
19166         As for the date format conversion, we have tokenized a format string and
19167         stored token objects into a vector. We skip token object generation and
19168         generate a LDML-compliant pattern string during parsing.
19169
19170         No new tests. This should make no behavior changes and
19171         WebKit/chromium/tests/LocaleWinTest.cpp has test cases.
19172
19173         * platform/text/win/LocaleWin.cpp:
19174         (WebCore): Remove DateFormatToken, isFooSymbol, ensureShortDateTokens,
19175         convertWindowsDateFormatToLDML, mapCharacterToDateTimeFieldType, and
19176         convertWindowsTimeFormatToLDML.
19177         (WebCore::commitLiteralToken): Store the result to the specified StringBuilder.
19178         (WebCore::convertWindowsDateTimeFormat):
19179         Renamed from parseDateFormat, and supports time format symbols.
19180         (WebCore::LocaleWin::dateFormat): Use convertWindowsDateTimeFormat.
19181         (WebCore::LocaleWin::monthFormat): Ditto.
19182         (WebCore::LocaleWin::timeFormat): Ditto.
19183         (WebCore::LocaleWin::shortTimeFormat): Ditto.
19184         * platform/text/win/LocaleWin.h:
19185         (LocaleWin): Remove ensureShortDateTokens and m_shortDateTokens.
19186
19187 2012-11-07  Shinya Kawanaka  <shinyak@chromium.org>
19188
19189         Unreviewed, rolling out r133428 and r133749
19190         https://bugs.webkit.org/show_bug.cgi?id=101533
19191
19192         These patches might cause memory regression.
19193
19194         * WebCore.exp.in:
19195         * dom/Element.cpp:
19196         (WebCore::Element::shadowPseudoId):
19197         (WebCore):
19198         (WebCore::Element::setShadowPseudoId):
19199         * dom/Element.h:
19200         (Element):
19201         * dom/ElementRareData.cpp:
19202         (WebCore::ElementRareData::reportMemoryUsage):
19203         * dom/ElementRareData.h:
19204         (ElementRareData):
19205         * html/BaseMultipleFieldsDateAndTimeInputType.cpp:
19206         (WebCore::BaseMultipleFieldsDateAndTimeInputType::createShadowSubtree):
19207         * html/ColorInputType.cpp:
19208         (WebCore::ColorInputType::createShadowSubtree):
19209         * html/HTMLTextAreaElement.cpp:
19210         (WebCore::HTMLTextAreaElement::updatePlaceholderText):
19211         * html/RangeInputType.cpp:
19212         (WebCore::RangeInputType::createShadowSubtree):
19213         * html/TextFieldInputType.cpp:
19214         (WebCore::TextFieldInputType::createShadowSubtree):
19215         (WebCore::TextFieldInputType::updatePlaceholderText):
19216         * html/ValidationMessage.cpp:
19217         (WebCore::ValidationMessage::buildBubbleTree):
19218         * html/shadow/DateTimeEditElement.cpp:
19219         (WebCore::DateTimeEditBuilder::visitLiteral):
19220         (WebCore::DateTimeEditElement::DateTimeEditElement):
19221         * html/shadow/DateTimeFieldElement.cpp:
19222         (WebCore::DateTimeFieldElement::initialize):
19223         * html/shadow/DateTimeFieldElement.h:
19224         (DateTimeFieldElement):
19225         * html/shadow/PickerIndicatorElement.cpp:
19226         (WebCore::PickerIndicatorElement::PickerIndicatorElement):
19227         * html/track/TextTrackCue.cpp:
19228         (WebCore::TextTrackCueBox::TextTrackCueBox):
19229         (WebCore::TextTrackCue::updateDisplayTree):
19230         * testing/Internals.cpp:
19231         (WebCore::Internals::setShadowPseudoId):
19232
19233 2012-11-07  Ryosuke Niwa  <rniwa@webkit.org>
19234
19235         Crash in WebCore::RenderLayer::normalFlowList
19236         https://bugs.webkit.org/show_bug.cgi?id=101528
19237
19238         Reviewed by Simon Fraser.
19239
19240         Make sure the layout is up to date before re-computing the caret rect.
19241         Avoid doing the layout when the selection is cleared since we can always stop
19242         the blink timer in that case.
19243
19244         Unfortunately, we haven't found any reproduction of this crash yet.
19245
19246         * editing/FrameSelection.cpp:
19247         (WebCore::isNonOrphanedCaret):
19248         (WebCore::FrameSelection::localCaretRect):
19249         (WebCore::FrameSelection::updateAppearance):
19250
19251 2012-11-07  Adam Barth  <abarth@webkit.org>
19252
19253         [V8] IntrusiveDOMWrapperMap should be usable for more than just Nodes
19254         https://bugs.webkit.org/show_bug.cgi?id=101110
19255
19256         Reviewed by Kentaro Hara.
19257
19258         Hopefully the memory issues with this patch have been resolved by
19259         fixing bug 101525. This patch re-lands this patch again, hopefully for
19260         the last time.
19261
19262         * bindings/v8/DOMDataStore.cpp:
19263         (WebCore::DOMDataStore::weakCallback):
19264         * bindings/v8/DOMDataStore.h:
19265         (WebCore::DOMDataStore::wrapperIsStoredInObject):
19266         (WebCore::DOMDataStore::getWrapperFromObject):
19267         (WebCore::DOMDataStore::setWrapperInObject):
19268
19269 2012-11-07  KyungTae Kim  <ktf.kim@samsung.com>
19270
19271         Seam occurred between pieces of ShadowBlur on floating point zoom
19272         https://bugs.webkit.org/show_bug.cgi?id=101435
19273
19274         Reviewed by Simon Fraser.
19275
19276         When paint Shadow that doesn't have blurred edge on floating point zoom,
19277         pixel seam (pixel cracks) occurred between pieces of the ShadowBlur because of unaligned clip rect.
19278         So, enlarge the clipping area 1 pixel so that the fill does not bleed (due to antialiasing)
19279         even if the unaligned clip rect occurred.
19280
19281
19282         * platform/graphics/ShadowBlur.cpp:
19283         (WebCore::ShadowBlur::calculateLayerBoundingRect):
19284
19285 2012-11-07  Tim Horton  <timothy_horton@apple.com>
19286
19287         Repaint issues with -webkit-svg-shadow used on a container
19288         https://bugs.webkit.org/show_bug.cgi?id=65643
19289         <rdar://problem/7600532>
19290
19291         Reviewed by Simon Fraser.
19292
19293         SVG renderer repaint rects are currently expanded only by the shadow of
19294         the renderer itself; however, the area they need to repaint can be larger
19295         than that, if their parents also have shadows. We need to take into account
19296         parent's shadows (respecting transforms, as well).
19297
19298         clippedOverflowRectForRepaint already recurses upwards through the render tree,
19299         and ends up with a rect in layout coordinates, so we manually apply the shadow
19300         at each step (repaintRectInLocalCoordinatesExcludingSVGShadow was added to allow
19301         us to get the raw repaint rect without the shadow baked-in).
19302
19303         repaintRectInLocalCoordinates now includes shadows from all parents.
19304
19305         Also, RenderSVGRoot was clipping repaint rects to the viewport before applying
19306         shadows, so offscreen elements with on-screen shadows (applied by the root) would not paint the shadows.
19307         We can just swap the order of these things to correct this.
19308
19309         Tests: svg/css/parent-shadow-offscreen.svg, svg/css/root-shadow-offscreen.svg, svg/repaint/repaint-webkit-svg-shadow.svg
19310
19311         * rendering/RenderObject.cpp:
19312         (WebCore::RenderObject::addChild): Mark the child being added as having an SVG shadow if it is being added as a child of an element that does.
19313         (WebCore::RenderObject::styleDidChange): Mark the child being added as having an SVG shadow if its new style has a shadow.
19314         * rendering/svg/RenderSVGImage.cpp:
19315         (WebCore::RenderSVGImage::layout): Cache the repaint rect before intersecting it with the shadow.
19316         * rendering/svg/RenderSVGImage.h:
19317         (WebCore::RenderSVGImage::repaintRectInLocalCoordinatesExcludingSVGShadow): Return the cached repaint rect for the renderer without the shadow included.
19318         * rendering/svg/RenderSVGModelObject.cpp:
19319         (WebCore::RenderSVGModelObject::RenderSVGModelObject): Renderers do not have a shadow by default.
19320         * rendering/svg/RenderSVGModelObject.h:
19321         (WebCore::RenderSVGModelObject::repaintRectInLocalCoordinatesExcludingSVGShadow): Return the cached repaint rect for the renderer without the shadow included.
19322         (WebCore::RenderSVGModelObject::hasSVGShadow): Return whether or not the renderer has a shadow.
19323         (WebCore::RenderSVGModelObject::setHasSVGShadow): Set whether or not the renderer has a shadow.
19324         * rendering/svg/RenderSVGRoot.cpp:
19325         (WebCore::RenderSVGRoot::RenderSVGRoot):
19326         (WebCore::RenderSVGRoot::computeFloatRectForRepaint): Apply the shadow before clipping to the viewport, so we draw shadows for elements outside the viewport.
19327         (WebCore::RenderSVGRoot::updateCachedBoundaries): Cache the repaint rect before intersecting it with the shadow.
19328         * rendering/svg/RenderSVGRoot.h:
19329         (WebCore::RenderSVGRoot::hasSVGShadow): Return whether or not the renderer has a shadow.
19330         (WebCore::RenderSVGRoot::setHasSVGShadow): Set whether or not the renderer has a shadow.
19331         (WebCore::RenderSVGRoot::repaintRectInLocalCoordinatesExcludingSVGShadow): Return the cached repaint rect for the renderer without the shadow included.
19332         * rendering/svg/RenderSVGShape.cpp:
19333         (WebCore::RenderSVGShape::updateRepaintBoundingBox): Cache the repaint rect before intersecting it with the shadow.
19334         * rendering/svg/RenderSVGShape.h:
19335         (WebCore::RenderSVGShape::repaintRectInLocalCoordinatesExcludingSVGShadow): Return the cached repaint rect for the renderer without the shadow included.
19336         * rendering/svg/SVGRenderSupport.cpp:
19337         (WebCore::SVGRenderSupport::repaintRectForRendererInLocalCoordinatesExcludingSVGShadow): Return the cached repaint rect for the renderer without the shadow included.
19338         (WebCore::SVGRenderSupport::clippedOverflowRectForRepaint): Apply shadows as we walk through our parents, instead of only applying the renderer's own shadow.
19339         (WebCore::SVGRenderSupport::rendererHasSVGShadow): Return whether or not the renderer has a shadow.
19340         (WebCore::SVGRenderSupport::setRendererHasSVGShadow): Set whether or not the renderer has a shadow.
19341         (WebCore::SVGRenderSupport::intersectRepaintRectWithShadows): Walk through the element's parents, adding shadows to the repaint rect as we go, eventually
19342         transforming the repaint rect back into local coordinates.
19343         (WebCore::SVGRenderSupport::intersectRepaintRectWithResources): Don't add shadows by default, just other resources, so that we can cache repaint rects with and without shadows.
19344         * rendering/svg/SVGRenderSupport.h:
19345
19346 2012-11-07  Anders Carlsson  <andersca@apple.com>
19347
19348         Add RemoteGraphicsLayer class
19349         https://bugs.webkit.org/show_bug.cgi?id=101535
19350
19351         Reviewed by Simon Fraser.
19352
19353         * WebCore.exp.in:
19354         Export GraphicsLayer symbols required by WebKit2.
19355
19356         * WebCore.xcodeproj/project.pbxproj:
19357         Make GraphicsLayerFactory.h a private header.
19358
19359 2012-11-07  Adam Barth  <abarth@webkit.org>
19360
19361         [V8] Don't leak <img> elements in content scripts
19362         https://bugs.webkit.org/show_bug.cgi?id=101525
19363
19364         Reviewed by Ojan Vafai.
19365
19366         I found the leak that was causing a problem for bug 101110. We weren't
19367         filling in the derefObjectFunction for HTMLImageElements (and
19368         potentially some other types of elements). That manifests today as a
19369         memory leak in content scripts (which use the derefObjectFunction for
19370         nodes) and caused a memory leak after bug 101110 because we started
19371         using the derefObjectFunction in the main world as well.
19372
19373         This patch adds ASSERTs so that we won't make this mistake in the future.
19374
19375         * bindings/scripts/CodeGeneratorV8.pm:
19376         (GenerateNamedConstructorCallback):
19377         * bindings/v8/DOMDataStore.cpp:
19378         (WebCore::DOMDataStore::weakCallback):
19379         * bindings/v8/DOMWrapperMap.h:
19380         (WebCore::DOMWrapperMap::defaultWeakCallback):
19381         * bindings/v8/custom/V8HTMLImageElementConstructor.cpp:
19382         (WebCore):
19383
19384 2012-11-07  Alec Flett  <alecflett@chromium.org>
19385
19386         IndexedDB: Prepare for IDBBackingStore merge by renaming IDBLevelDBBackingStore.cpp
19387         https://bugs.webkit.org/show_bug.cgi?id=101486
19388
19389         Reviewed by Ojan Vafai.
19390
19391         Rename IDBLevelDBBackingStore.cpp to IDBBackingStore.cpp in
19392         preparation for merging these classes. This will make the merge
19393         diffs sane. See https://bugs.webkit.org/show_bug.cgi?id=101415
19394         for the final goal.
19395
19396         No new tests, this is is just a rename and minor style fix.
19397
19398         * CMakeLists.txt:
19399         * GNUmakefile.list.am:
19400         * Modules/indexeddb/IDBBackingStore.cpp: Renamed from Source/WebCore/Modules/indexeddb/IDBLevelDBBackingStore.cpp.
19401         * WebCore.gypi:
19402         * WebCore.xcodeproj/project.pbxproj:
19403
19404 2012-11-07  Adam Barth  <abarth@webkit.org>
19405
19406         [V8] Prepare DOMDataStore to be able to store ScriptWrappable wrappers inline
19407         https://bugs.webkit.org/show_bug.cgi?id=101523
19408
19409         Unreviewed. Technically this patch hasn't been reviewed, but it is part
19410         of a patch that was reviewed by Kentaro Hara.
19411
19412         Sadly, my patch for bug 101110 triggered the regression again. This
19413         patch is a smaller incremental step towards the patch in bug 101110. It
19414         doesn't make that much sense on its own, but it will help me isolate
19415         the source of the regression.
19416
19417         * bindings/v8/DOMDataStore.h:
19418         (WebCore::DOMDataStore::get):
19419         (DOMDataStore):
19420         (WebCore::DOMDataStore::set):
19421         (WebCore::DOMDataStore::wrapperIsStoredInObject):
19422         (WebCore::DOMDataStore::getWrapperFromObject):
19423         (WebCore::DOMDataStore::setWrapperInObject):
19424
19425 2012-11-05  Ryosuke Niwa  <rniwa@webkit.org>
19426
19427         SimplifyMarkupCommand takes a disproportionally long time to run when there are many nodes to remove
19428         https://bugs.webkit.org/show_bug.cgi?id=101144
19429
19430         Reviewed by Enrica Casucci.
19431
19432         The bug was caused by attach() happening between each node removal. Since the command was trying
19433         to remove millions of node in some cases, attach()ing render objects for each node being reinserted
19434         imposed a huge runtime cost.
19435
19436         Fixed the bug by using lazy attach when removing nodes and avoiding calls to isContentEditable.
19437         Also remove all ancestors at once when they are direct child/parent of each other so that we don't
19438         remove an ancestor and then insert its child back only to remove it again in the next iteration.
19439
19440         No new tests since it doesn't change the asymptotic performance, and adding a new performance test for
19441         this specific case is not the worth the increase in the bot cycle time. I'll note that the email
19442         attached in the original radar bug (<rdar://problem/12179712>) took 100 seconds to open now only takes
19443         7 seconds to open on my MacPro.
19444
19445         * editing/AppendNodeCommand.cpp:
19446         (WebCore::AppendNodeCommand::doApply): Takes a flag indicating whether we should assume nodes are editable
19447         without calling isContentEditable or not.
19448         * editing/ApplyStyleCommand.cpp:
19449         (WebCore::ApplyStyleCommand::applyInlineStyleToPushDown): Update the style as later code requires render
19450         object.
19451         * editing/CompositeEditCommand.cpp:
19452         (WebCore::CompositeEditCommand::insertNodeBefore): Passes a flag to the command.
19453         (WebCore::CompositeEditCommand::removeNode): Ditto.
19454         (WebCore::CompositeEditCommand::removeNodePreservingChildren): Ditto.
19455         * editing/CompositeEditCommand.h:
19456         (CompositeEditCommand):
19457         * editing/DeleteSelectionCommand.cpp:
19458         (WebCore::DeleteSelectionCommand::removeNode): Takes a flag indicating whether we should assume nodes are
19459         editable without calling isContentEditable or not.
19460         * editing/DeleteSelectionCommand.h:
19461         (DeleteSelectionCommand):
19462         * editing/EditCommand.h:
19463         * editing/InsertIntoTextNodeCommand.cpp:
19464         (WebCore::InsertIntoTextNodeCommand::doApply): Update the layout when password echo is enabled since
19465         we need to have render objects for echoing.
19466         * editing/InsertNodeBeforeCommand.cpp:
19467         (WebCore::InsertNodeBeforeCommand::InsertNodeBeforeCommand): Ditto.
19468         (WebCore::InsertNodeBeforeCommand::doApply): Ditto; also always use lazy attach.
19469         (WebCore::InsertNodeBeforeCommand::doUnapply):
19470         * editing/InsertNodeBeforeCommand.h:
19471         (WebCore::InsertNodeBeforeCommand::create):
19472         (InsertNodeBeforeCommand):
19473         * editing/RemoveNodeCommand.cpp:
19474         (WebCore::RemoveNodeCommand::RemoveNodeCommand): Ditto about the flag.
19475         (WebCore::RemoveNodeCommand::doApply):
19476         * editing/RemoveNodeCommand.h:
19477         (WebCore::RemoveNodeCommand::create):
19478         (RemoveNodeCommand):
19479         * editing/RemoveNodePreservingChildrenCommand.cpp:
19480         (WebCore::RemoveNodePreservingChildrenCommand::RemoveNodePreservingChildrenCommand): Ditto.
19481         (WebCore::RemoveNodePreservingChildrenCommand::doApply):
19482         * editing/RemoveNodePreservingChildrenCommand.h:
19483         (WebCore::RemoveNodePreservingChildrenCommand::create):
19484         (RemoveNodePreservingChildrenCommand):
19485         * editing/SimplifyMarkupCommand.cpp:
19486         (WebCore::SimplifyMarkupCommand::doApply):
19487         (WebCore::SimplifyMarkupCommand::pruneSubsequentAncestorsToRemove): Added to optimize removals of multiple
19488         ancestors.
19489         * editing/SimplifyMarkupCommand.h:
19490         (SimplifyMarkupCommand):
19491
19492 2012-11-07  Sheriff Bot  <webkit.review.bot@gmail.com>
19493
19494         Unreviewed, rolling out r133810.
19495         http://trac.webkit.org/changeset/133810
19496         https://bugs.webkit.org/show_bug.cgi?id=101520
19497
19498         This patch made ws_single_peak_r regress by 15% (Requested by
19499         abarth on #webkit).
19500
19501         * bindings/v8/DOMDataStore.cpp:
19502         (WebCore::DOMDataStore::weakCallback):
19503         * bindings/v8/DOMDataStore.h:
19504         (WebCore::DOMDataStore::get):
19505         (WebCore::DOMDataStore::set):
19506         (DOMDataStore):
19507
19508 2012-11-07  Elliott Sprehn  <esprehn@chromium.org>
19509
19510         Clean up confused use of Document::renderer and renderView
19511         https://bugs.webkit.org/show_bug.cgi?id=101484
19512
19513         Reviewed by Ojan Vafai.
19514
19515         Document::renderer and Document::renderView are the same thing, but it seems
19516         people don't always realize it and check if document()->renderer() is a RenderView.
19517
19518         This patch cleans up usage of document()->renderer() and document()->renderView() and
19519         simplifies the code that was written without realizing they were the same thing.
19520
19521         No new tests, this is just a refactor.
19522
19523         * accessibility/AccessibilityRenderObject.cpp:
19524         (WebCore::AccessibilityRenderObject::visiblePositionForPoint): Lots of simplification.
19525         * dom/Element.cpp:
19526         (WebCore::Element::screenRect):
19527         (WebCore::Element::unregisterNamedFlowContentNode): Remove unneeded conditional.
19528         * editing/FrameSelection.cpp: Remove verbose casts.
19529         (WebCore::clearRenderViewSelection):
19530         (WebCore::FrameSelection::recomputeCaretRect):
19531         (WebCore::CaretBase::invalidateCaretRect):
19532         (WebCore::FrameSelection::focusedOrActiveStateChanged):
19533         * page/Frame.cpp:
19534         (WebCore::Frame::contentRenderer): Vastly simplified.
19535         * page/PrintContext.cpp: Remove verbose casts.
19536         (WebCore::PrintContext::computePageRects):
19537         (WebCore::PrintContext::computePageRectsWithPageSizeInternal):
19538         * page/wince/FrameWinCE.cpp:
19539         (WebCore::computePageRectsForFrame): Remove unreachable code.
19540         * rendering/RenderObject.cpp:
19541         (WebCore::RenderObject::maximalOutlineSize): Remove verbose cast.
19542
19543 2012-11-07  Adam Barth  <abarth@webkit.org>
19544
19545         [V8] IntrusiveDOMWrapperMap should be usable for more than just Nodes
19546         https://bugs.webkit.org/show_bug.cgi?id=101110
19547
19548         Reviewed by Kentaro Hara.
19549
19550         This patch generalizes our support for storing wrappers in DOM objects
19551         to be usable for more than just nodes. After this patch, any object
19552         with a ScriptWrappable base class will have its wrapper stored inline
19553         in the object in the main world.
19554
19555         * bindings/v8/DOMDataStore.cpp:
19556         (WebCore::DOMDataStore::weakCallback):
19557         * bindings/v8/DOMDataStore.h:
19558         (WebCore::DOMDataStore::get):
19559         (WebCore::DOMDataStore::set):
19560
19561 2012-11-07  Tiancheng Jiang  <tijiang@rim.com>
19562
19563         [BlackBerry] Update BB10 form theme.
19564         https://bugs.webkit.org/show_bug.cgi?id=100760
19565
19566         Reviewed by Rob Buis.
19567
19568         RIM PR 236997
19569         Internally Reviewed by Jakob Petsovits.
19570
19571         Set font family to fix DRT test fast/forms/input-type-text-min-width.html
19572
19573         * platform/blackberry/RenderThemeBlackBerry.cpp:
19574         (WebCore::RenderThemeBlackBerry::defaultGUIFont):
19575         (WebCore):
19576         (WebCore::RenderThemeBlackBerry::systemFont):
19577
19578 2012-11-07  Beth Dakin  <bdakin@apple.com>
19579
19580         https://bugs.webkit.org/show_bug.cgi?id=101303
19581         Fixed position elements that are out of view still end up forcing 
19582         non-threaded scrolling
19583         -and corresponding-
19584         <rdar://problem/12642222>
19585
19586         Reviewed by Simon Fraser.
19587
19588         Re-name hasNonLayerFixedObjects() to 
19589         hasVisibleSlowRepaintFixedObjects() and make it virtual. 
19590         * page/scrolling/ScrollingCoordinator.cpp:
19591         (WebCore::ScrollingCoordinator::hasVisibleSlowRepaintFixedObjects):
19592         (WebCore::ScrollingCoordinator::mainThreadScrollingReasons):
19593         * page/scrolling/ScrollingCoordinator.h:
19594         (ScrollingCoordinator):
19595
19596         Override hasVisibleSlowRepaintFixedObjects() to always return false. 
19597         We don't want to bother with the extra computation in the 
19598         ScrollingCoordinator implementation, though other ports might still 
19599         want it.
19600         * page/scrolling/mac/ScrollingCoordinatorMac.h:
19601         (WebCore::ScrollingCoordinatorMac::hasVisibleSlowRepaintFixedObjects):
19602         (ScrollingCoordinatorMac):
19603
19604         Make this function const so that we can call it from 
19605         requiresCompositingForPosition().
19606         * rendering/RenderLayerCompositor.cpp:
19607         (WebCore::RenderLayerCompositor::calculateCompositedBounds):
19608
19609         Actually be thorough here and check if the fixed object has any 
19610         descendants that are visible in the view. If it does, then we do 
19611         want to composite the fixed object.
19612         (WebCore::RenderLayerCompositor::requiresCompositingForPosition):
19613         * rendering/RenderLayerCompositor.h:
19614
19615 2012-11-07  Roger Fong  <roger_fong@apple.com>
19616
19617         Unreviewed. Style fix following r133262.
19618
19619         * html/HTMLMediaElement.cpp:
19620         (WebCore::HTMLMediaElement::clearMediaPlayer):
19621         * html/HTMLMediaElement.h:
19622         (HTMLMediaElement):
19623
19624 2012-11-07  Adam Barth  <abarth@webkit.org>
19625
19626         [V8] DOMWrapperMap doesn't need to use virtual functions
19627         https://bugs.webkit.org/show_bug.cgi?id=101494
19628
19629         Reviewed by Kentaro Hara.
19630
19631         DOMWrapperMap has only one subclass. There's no reason to use virtual functions.
19632
19633         * bindings/v8/DOMDataStore.cpp:
19634         (WebCore::DOMDataStore::DOMDataStore):
19635         * bindings/v8/DOMWrapperMap.h:
19636         (WebCore::DOMWrapperMap::DOMWrapperMap):
19637         (WebCore::DOMWrapperMap::get):
19638         (WebCore::DOMWrapperMap::set):
19639         (WebCore::DOMWrapperMap::clear):
19640         (WebCore::DOMWrapperMap::reportMemoryUsage):
19641         (WebCore::DOMWrapperMap::remove):
19642         (WebCore::DOMWrapperMap::defaultWeakCallback):
19643         * bindings/v8/V8NPObject.cpp:
19644         (WebCore::staticNPObjectMap):
19645
19646 2012-11-07  Alexandru Chiculita  <achicu@adobe.com>
19647
19648         [CSS Shaders] Remove the dependency on CustomFilterValidatedProgram from CustomFilterRenderer
19649         https://bugs.webkit.org/show_bug.cgi?id=101071
19650
19651         Reviewed by Dean Jackson.
19652
19653         I've removed the need to get a CustomFilterValidatedProgram from FilterEffectRenderer. It was only
19654         used to delay the compilation of the shader until it was really needed. Instead, the FilterEffectRenderer
19655         will directly get the compiled shader in the constructor. The callers that still want to avoid 
19656         compiling the shader until it is really needed can use the setCompiledProgram to inject the shader
19657         at a later time, before painting.
19658
19659         No new tests, the change is covered by the css3/filters/custom/ tests.
19660
19661         * platform/graphics/filters/CustomFilterConstants.h:
19662         * platform/graphics/filters/CustomFilterProgramInfo.h:
19663         * platform/graphics/filters/CustomFilterRenderer.cpp:
19664         (WebCore::CustomFilterRenderer::create):
19665         (WebCore::CustomFilterRenderer::CustomFilterRenderer):
19666         (WebCore::CustomFilterRenderer::premultipliedAlpha):
19667         (WebCore::CustomFilterRenderer::setCompiledProgram):
19668         (WebCore):
19669         (WebCore::CustomFilterRenderer::prepareForDrawing):
19670         (WebCore::CustomFilterRenderer::bindProgramAndBuffers):
19671         * platform/graphics/filters/CustomFilterRenderer.h:
19672         (WebCore):
19673         (CustomFilterRenderer):
19674         (WebCore::CustomFilterRenderer::compiledProgram):
19675         * platform/graphics/filters/FECustomFilter.cpp:
19676         (WebCore::FECustomFilter::FECustomFilter):
19677         (WebCore::FECustomFilter::prepareForDrawing):
19678         * platform/graphics/filters/FECustomFilter.h:
19679         (FECustomFilter):
19680
19681 2012-11-07  Adam Barth  <abarth@webkit.org>
19682
19683         [V8] IntrusiveDOMWrapperMap is no longer needed and can be deleted
19684         https://bugs.webkit.org/show_bug.cgi?id=101493
19685
19686         Reviewed by Kentaro Hara.
19687
19688         This patch is another incremental step towards landing the patch in bug
19689         101110. In this patch, we delete IntrusiveDOMWrapperMap, which is no
19690         longer needed.
19691
19692         * WebCore.gypi:
19693         * bindings/v8/DOMDataStore.cpp:
19694         (WebCore::DOMDataStore::DOMDataStore):
19695         (WebCore::DOMDataStore::~DOMDataStore):
19696         (WebCore::DOMDataStore::reportMemoryUsage):
19697         (WebCore::DOMDataStore::weakCallback):
19698         (WebCore):
19699         * bindings/v8/DOMDataStore.h:
19700         (WebCore::DOMDataStore::get):
19701         (WebCore::DOMDataStore::set):
19702         (DOMDataStore):
19703         * bindings/v8/IntrusiveDOMWrapperMap.h: Removed.
19704         * bindings/v8/V8GCController.cpp:
19705
19706 2012-11-07  Sudarsana Nagineni  <sudarsana.nagineni@intel.com>
19707
19708         [AC] glXChooseFBConfig() and glXGetVisualFromFBConfig() return values are leaking in GraphicsSurface
19709         https://bugs.webkit.org/show_bug.cgi?id=101475
19710
19711         Reviewed by Kenneth Rohde Christiansen.
19712
19713         Free the memory returned by glXChooseFBConfig and glXGetVisualFromFBConfig
19714         using XFree to avoid memory leaks.
19715
19716         No tests. No change in behavior.
19717
19718         * platform/graphics/surfaces/qt/GraphicsSurfaceGLX.cpp:
19719         (WebCore::GraphicsSurfacePrivate::~GraphicsSurfacePrivate):
19720         (WebCore::GraphicsSurfacePrivate::createSurface):
19721
19722 2012-11-07  Fady Samuel  <fsamuel@chromium.org>
19723
19724         Autoresize should work even if turned on while the page is loading.
19725         https://bugs.webkit.org/show_bug.cgi?id=101380
19726
19727         Reviewed by David Levin.
19728
19729         Autoresize does not work in cases where it is turned on while loading.
19730         This patch addresses this by allowing autoSize to complete if it's turned on
19731         while loading and doing a final pass after loading.
19732
19733         * loader/FrameLoader.cpp:
19734         (WebCore::FrameLoader::checkCompleted):
19735         Adjust to call renamed function.
19736         * page/FrameView.cpp:
19737         (WebCore::FrameView::handleLoadCompleted):
19738         Rename function to encompass its expanded responsibilities (which include doing the final auto size after the load is completed).
19739         (WebCore::FrameView::autoSizeIfEnabled):
19740         Allow the size to shrink if autosize is adjusted while the page is loading.
19741         * page/FrameView.h:
19742         (FrameView):
19743         Renamed 'checkFlushDeferredRepaintsAfterLoadComplete' to 'handleLoadComplete'
19744
19745 2012-11-07  Philip Rogers  <pdr@google.com>
19746
19747         Skip SVG repaint tracking when parent container transforms
19748         https://bugs.webkit.org/show_bug.cgi?id=101177
19749
19750         Reviewed by Eric Seidel.
19751
19752         This patch skips child repaint rect checks when a parent container is transformed, leading
19753         to a 75% increase on the RoboHornet SVG benchmark:
19754             http://www.robohornet.org/#et=svg  (average of 2 runs)
19755             Before patch: 161.6ms
19756             After patch: 38.5ms
19757
19758         SVG transforms are relative to the local container which makes calculating an absolute
19759         repaint rect expensive because it requires multiplying the local repaint rect by each
19760         parent container's local transform. See SVGRenderSupport::computeFloatRectForRepaint
19761         as an example of this calculation.
19762
19763         This patch takes advantage of SVG's container rules: when a parent container's transform
19764         changes, all children must be repainted (there is no absolute positioning in SVG).
19765         SVGRenderSupport::checkForSVGRepaintDuringLayout has been added which checks for whether
19766         the parent transform changed before doing child repaint checks. A similar optimization is
19767         used in HTML (see RenderObject::checkForRepaintDuringLayout) where no repaint checking
19768         is done when the view is fully repainted.
19769
19770         This code is tested in existing tests.
19771
19772         * rendering/svg/RenderSVGContainer.cpp:
19773         (WebCore::RenderSVGContainer::layout):
19774         * rendering/svg/RenderSVGForeignObject.cpp:
19775         (WebCore::RenderSVGForeignObject::layout):
19776         * rendering/svg/RenderSVGImage.cpp:
19777         (WebCore::RenderSVGImage::layout):
19778         * rendering/svg/RenderSVGShape.cpp:
19779         (WebCore::RenderSVGShape::layout):
19780         * rendering/svg/RenderSVGText.cpp:
19781         (WebCore::RenderSVGText::layout):
19782         * rendering/svg/SVGRenderSupport.cpp:
19783         (WebCore::SVGRenderSupport::checkForSVGRepaintDuringLayout):
19784         (WebCore):
19785         * rendering/svg/SVGRenderSupport.h:
19786         (SVGRenderSupport):
19787
19788 2012-11-07  Chris Fleizach  <cfleizach@apple.com>
19789
19790         AX: Textfields don't get focus when navigated to from 'show all tabs' button
19791         https://bugs.webkit.org/show_bug.cgi?id=101369
19792
19793         Reviewed by Darin Adler.
19794
19795         When focus leaves a webpage, the webpage does not normally clear its focused node. When focus
19796         returns (through tab, or mouse click), then focus will be cleared and restored.
19797
19798         However, when focus is returned through accessibility means, focus is not cleared first, which
19799         means subsequent focus actions do nothing.
19800
19801         This fix will check if the focused node is the same as the node being focused, and if so, clear the focus first.
19802
19803         Making a layout test for this is not possible because it requires setting focus to something in the chrome, and then
19804         moving focus back to the webpage.
19805       
19806         * accessibility/AccessibilityRenderObject.cpp:
19807         (WebCore::AccessibilityRenderObject::setFocused):
19808
19809 2012-11-07  Adam Barth  <abarth@webkit.org>
19810
19811         [V8] We should hide the DOMWrapperMaps inside DOMDataStore
19812         https://bugs.webkit.org/show_bug.cgi?id=101430
19813
19814         Reviewed by Kentaro Hara.
19815
19816         This is yet another incremental step towards landing the patch in bug
19817         101110. In this patch, we hide the existence of DOMWrapperMaps inside
19818         DOMDataStore. In the process, we can remove V8DOMMap.cpp.
19819
19820         * UseV8.cmake:
19821         * WebCore.gypi:
19822         * bindings/v8/DOMDataStore.h:
19823         (WebCore::DOMDataStore::set):
19824         * bindings/v8/DOMWrapperWorld.h:
19825         * bindings/v8/ScriptProfiler.cpp:
19826         * bindings/v8/SerializedScriptValue.cpp:
19827         (WebCore::neuterBinding):
19828         * bindings/v8/V8DOMMap.cpp: Removed.
19829         * bindings/v8/V8DOMMap.h: Removed.
19830         * bindings/v8/V8DOMWindowShell.cpp:
19831         * bindings/v8/V8DOMWrapper.h:
19832         (WebCore::V8DOMWrapper::getCachedWrapper):
19833         (WebCore::V8DOMWrapper::setWrapperClass):
19834         (WebCore::V8DOMWrapper::setJSWrapperForDOMObject):
19835         * bindings/v8/V8NPObject.cpp:
19836         * bindings/v8/WorkerContextExecutionProxy.cpp:
19837         * bindings/v8/WorkerScriptController.cpp:
19838
19839 2012-11-07  Varun Jain  <varunjain@chromium.org>
19840
19841         Add new gesture type, LongTap, which is basically the completion of a GestureLongPress
19842         https://bugs.webkit.org/show_bug.cgi?id=101385
19843
19844         Reviewed by Adam Barth.
19845
19846         Test: Only creating the new enum. No functionality change, hence no tests required.
19847
19848         * platform/PlatformEvent.h:
19849
19850 2012-11-05  Emil A Eklund  <eae@chromium.org>
19851
19852         Remove LayoutTypes abstraction
19853         https://bugs.webkit.org/show_bug.cgi?id=93050
19854
19855         Reviewed by Levi Weintraub.
19856
19857         Remove LayoutTypes abstraction and rename FractionalLayout* to
19858         Layout* now that all platforms use the FractionalLayout version
19859         (albeit with different fractions).
19860
19861         No new tests, no change in functionality.
19862
19863         * CMakeLists.txt:
19864         * GNUmakefile.list.am:
19865         * Target.pri:
19866         * WebCore.exp.in:
19867         * WebCore.gypi:
19868         * WebCore.vcproj/WebCore.vcproj:
19869         * WebCore.xcodeproj/project.pbxproj:
19870         * accessibility/AccessibilityNodeObject.cpp:
19871         * accessibility/AccessibilityNodeObject.h:
19872         * accessibility/AccessibilityObject.h:
19873         * accessibility/AccessibilityRenderObject.h:
19874         * css/LengthFunctions.cpp:
19875         * css/LengthFunctions.h:
19876         * dom/Document.h:
19877         * dom/DocumentMarkerController.h:
19878         * dom/ElementRareData.h:
19879         * dom/MouseRelatedEvent.h:
19880         * dom/Node.h:
19881         * dom/Touch.h:
19882         * editing/FrameSelection.cpp:
19883         * editing/FrameSelection.h:
19884         * editing/RenderedPosition.h:
19885         * html/HTMLAreaElement.h:
19886         * inspector/InspectorOverlay.h:
19887         * inspector/InspectorTimelineAgent.h:
19888         * inspector/TimelineRecordFactory.cpp:
19889         * inspector/TimelineRecordFactory.h:
19890         * loader/cache/CachedImage.h:
19891         * page/FocusController.h:
19892         * page/FrameView.h:
19893         * page/Page.h:
19894         * page/SpatialNavigation.cpp:
19895         * page/SpatialNavigation.h:
19896         * platform/FractionalLayoutUnit.h: Removed.
19897         * platform/LayoutUnit.h: Copied from Source/WebCore/platform/FractionalLayoutUnit.h.
19898         * platform/Length.h:
19899         * platform/PopupMenuClient.h:
19900         * platform/animation/AnimationUtilities.h:
19901         * platform/graphics/FloatPoint.cpp:
19902         * platform/graphics/FloatPoint.h:
19903         * platform/graphics/FloatRect.cpp:
19904         * platform/graphics/FloatRect.h:
19905         * platform/graphics/FloatSize.cpp:
19906         * platform/graphics/FloatSize.h:
19907         * platform/graphics/FractionalLayoutBoxExtent.cpp: Removed.
19908         * platform/graphics/FractionalLayoutBoxExtent.h: Removed.
19909         * platform/graphics/FractionalLayoutPoint.h: Removed.
19910         * platform/graphics/FractionalLayoutRect.cpp: Removed.
19911         * platform/graphics/FractionalLayoutRect.h: Removed.
19912         * platform/graphics/FractionalLayoutSize.h: Removed.
19913         * platform/graphics/GraphicsLayer.cpp:
19914         * platform/graphics/GraphicsLayerAnimation.cpp:
19915         * platform/graphics/IntRect.cpp:
19916         * platform/graphics/IntRect.h:
19917         * platform/graphics/LayoutBoxExtent.cpp: Copied from Source/WebCore/platform/graphics/FractionalLayoutBoxExtent.cpp.
19918         * platform/graphics/LayoutBoxExtent.h: Copied from Source/WebCore/platform/graphics/FractionalLayoutBoxExtent.h.
19919         * platform/graphics/LayoutPoint.h: Copied from Source/WebCore/platform/graphics/FractionalLayoutPoint.h.
19920         * platform/graphics/LayoutRect.cpp: Copied from Source/WebCore/platform/graphics/FractionalLayoutRect.cpp.
19921         * platform/graphics/LayoutRect.h: Copied from Source/WebCore/platform/graphics/FractionalLayoutRect.h.
19922         * platform/graphics/LayoutSize.h: Copied from Source/WebCore/platform/graphics/FractionalLayoutSize.h.
19923         * platform/graphics/MediaPlayer.h:
19924         * platform/graphics/filters/CustomFilterOperation.h:
19925         * platform/graphics/filters/CustomFilterParameterList.h:
19926         * platform/graphics/filters/FilterOperation.h:
19927         * platform/graphics/filters/FilterOperations.h:
19928         * platform/graphics/filters/ValidatedCustomFilterOperation.cpp:
19929         * platform/graphics/filters/ValidatedCustomFilterOperation.h:
19930         * platform/graphics/qt/FractionalLayoutPointQt.cpp: Removed.
19931         * platform/graphics/qt/FractionalLayoutRectQt.cpp: Removed.
19932         * platform/graphics/qt/FractionalLayoutSizeQt.cpp: Removed.
19933         * platform/graphics/qt/LayoutPointQt.cpp: Copied from Source/WebCore/platform/graphics/qt/FractionalLayoutPointQt.cpp.
19934         * platform/graphics/qt/LayoutRectQt.cpp: Added.
19935         * platform/graphics/qt/LayoutSizeQt.cpp: Copied from Source/WebCore/platform/graphics/qt/FractionalLayoutSizeQt.cpp.
19936         * platform/graphics/transforms/TransformOperations.h:
19937         * platform/graphics/transforms/TransformState.h:
19938         * platform/graphics/transforms/TransformationMatrix.cpp:
19939         * platform/graphics/transforms/TransformationMatrix.h:
19940         * rendering/AutoTableLayout.h:
19941         * rendering/ColumnInfo.h:
19942         * rendering/ExclusionShapeInsideInfo.h:
19943         * rendering/FilterEffectRenderer.h:
19944         * rendering/FixedTableLayout.h:
19945         * rendering/GapRects.h:
19946         * rendering/HitTestResult.h:
19947         * rendering/HitTestingTransformState.cpp:
19948         * rendering/HitTestingTransformState.h:
19949         * rendering/InlineFlowBox.cpp:
19950         * rendering/LayoutRepainter.cpp:
19951         * rendering/LayoutRepainter.h:
19952         * rendering/LayoutState.h:
19953         * rendering/LayoutTypes.h:
19954         * rendering/LayoutTypesInlineMethods.h:
19955         * rendering/PaintInfo.h:
19956         * rendering/RenderBlock.cpp:
19957         * rendering/RenderBlock.h:
19958         * rendering/RenderBlockLineLayout.cpp:
19959         * rendering/RenderBox.cpp:
19960         * rendering/RenderBox.h:
19961         * rendering/RenderBoxModelObject.cpp:
19962         * rendering/RenderBoxModelObject.h:
19963         * rendering/RenderDeprecatedFlexibleBox.cpp:
19964         * rendering/RenderFieldset.cpp:
19965         * rendering/RenderFlexibleBox.cpp:
19966         * rendering/RenderFlowThread.cpp:
19967         * rendering/RenderGeometryMap.h:
19968         * rendering/RenderImageResource.h:
19969         * rendering/RenderInline.cpp:
19970         * rendering/RenderLayer.cpp:
19971         * rendering/RenderLayerFilterInfo.h:
19972         * rendering/RenderLineBoxList.cpp:
19973         * rendering/RenderListMarker.cpp:
19974         * rendering/RenderMarquee.cpp:
19975         * rendering/RenderMenuList.h:
19976         * rendering/RenderMultiColumnBlock.cpp:
19977         * rendering/RenderMultiColumnSet.cpp:
19978         * rendering/RenderNamedFlowThread.cpp:
19979         * rendering/RenderObject.cpp:
19980         * rendering/RenderObject.h:
19981         * rendering/RenderOverflow.h:
19982         * rendering/RenderRegion.cpp:
19983         * rendering/RenderReplaced.cpp:
19984         * rendering/RenderTable.cpp:
19985         * rendering/RenderTable.h:
19986         * rendering/RenderText.cpp:
19987         * rendering/RenderThemeChromiumCommon.cpp:
19988         * rendering/RenderThemeChromiumCommon.h:
19989         * rendering/RenderTreeAsText.cpp:
19990         * rendering/RenderTreeAsText.h:
19991         * rendering/RenderView.h:
19992         * rendering/style/NinePieceImage.h:
19993         * rendering/style/RenderStyle.h:
19994         * rendering/style/ShadowData.cpp:
19995         * rendering/style/ShadowData.h:
19996         * rendering/style/StyleCachedImageSet.h:
19997         * rendering/style/StyleImage.h:
19998         * rendering/svg/SVGRenderSupport.h:
19999
20000 2012-11-07  Alexandru Chiculita  <achicu@adobe.com>
20001
20002         CoordinatedGraphicsArgumentCoders should use ValidatedCustomFitlerOperation instead
20003         https://bugs.webkit.org/show_bug.cgi?id=100905
20004
20005         Reviewed by Noam Rosenthal.
20006
20007         Added getters for the validated shaders, so that platform code could extract them.
20008
20009         No new tests, just added two getters.
20010
20011         * platform/graphics/filters/CustomFilterValidatedProgram.h:
20012         (WebCore::CustomFilterValidatedProgram::validatedVertexShader):
20013         (WebCore::CustomFilterValidatedProgram::validatedFragmentShader):
20014         (CustomFilterValidatedProgram):
20015
20016 2012-11-07  Joshua Bell  <jsbell@chromium.org>
20017
20018         IndexedDB: Assertion failure with open() within upgradeneeded
20019         https://bugs.webkit.org/show_bug.cgi?id=96947
20020
20021         Reviewed by Dimitri Glazkov.
20022
20023         Postpone creation of the "pending second half open" until the version change
20024         transaction has started.
20025
20026         Test: storage/indexeddb/unblocked-version-changes.html
20027
20028         * Modules/indexeddb/IDBDatabaseBackendImpl.cpp:
20029         (WebCore::IDBDatabaseBackendImpl::setIntVersionInternal):
20030         (WebCore::IDBDatabaseBackendImpl::runIntVersionChangeTransaction):
20031         * Modules/indexeddb/IDBDatabaseBackendImpl.h:
20032         (IDBDatabaseBackendImpl):
20033         * Modules/indexeddb/IDBDatabaseCallbacks.h:
20034
20035 2012-11-07  Alexandru Chiculita  <achicu@adobe.com>
20036
20037         [CSS Shaders] Add CustomFilterMeshBoxType to ValidatedCustomFilterOperation
20038         https://bugs.webkit.org/show_bug.cgi?id=100890
20039
20040         Reviewed by Dean Jackson.
20041
20042         Added the CustomFilterMeshBoxType parameter to the ValidatedCustomFilterOperation.
20043
20044         No new tests, this parameter is not used in the implementation yet.
20045
20046         * platform/graphics/filters/ValidatedCustomFilterOperation.cpp:
20047         (WebCore::ValidatedCustomFilterOperation::ValidatedCustomFilterOperation):
20048         * platform/graphics/filters/ValidatedCustomFilterOperation.h:
20049         (WebCore::ValidatedCustomFilterOperation::create):
20050         (WebCore::ValidatedCustomFilterOperation::meshBoxType):
20051         (WebCore::ValidatedCustomFilterOperation::operator==):
20052         (ValidatedCustomFilterOperation):
20053         * rendering/FilterEffectRenderer.cpp:
20054         (WebCore::createCustomFilterEffect):
20055         * rendering/RenderLayer.cpp:
20056         (WebCore::RenderLayer::computeFilterOperations):
20057
20058 2012-11-07  Sergio Villar Senin  <svillar@igalia.com>
20059
20060         [Qt] Implement deleteCookie() for persistent storage
20061         https://bugs.webkit.org/show_bug.cgi?id=101272
20062
20063         Reviewed by Jocelyn Turcotte.
20064
20065         Individual cookies were never persistently cleared as the
20066         deleteCookie() virtual method was not implemented for persistent
20067         storage. That's why cookies were only deleted for the current
20068         session.
20069
20070         * platform/qt/CookieJarQt.cpp:
20071         (WebCore::SharedCookieJarQt::deleteCookie):
20072         (WebCore): added deleteCookie() implementation for persistent
20073         storage.
20074         * platform/qt/CookieJarQt.h:
20075         (SharedCookieJarQt):
20076
20077 2012-11-07  Shinya Kawanaka  <shinyak@chromium.org>
20078
20079         [Shadow] Style should update when 'pseudo' attribute is dynamically updated
20080         https://bugs.webkit.org/show_bug.cgi?id=100918
20081
20082         Reviewed by Dimitri Glazkov.
20083
20084         When 'pseudo' attribute is changed and its element is in ShadowTree, we enable the styleShouldRecalc flag.
20085
20086         It would be fast if we have a set of pseudo attribute style value in RuleFeatureSet,
20087         but it might consume a lot of memory.
20088
20089         Test: fast/dom/shadow/pseudo-attribute-dynamic.html
20090
20091         * dom/Element.cpp:
20092         (WebCore::Element::attributeChanged):
20093
20094 2012-11-07  Ulan Degenbaev  <ulan@chromium.org>
20095
20096         [V8] WebKit sends unnecessary low memory notification when running memory benchmarks
20097         https://bugs.webkit.org/show_bug.cgi?id=101474
20098
20099         Reviewed by Kentaro Hara.
20100
20101         Do not send low memory notification to V8 when most of memory usage
20102         comes from V8 heap and not DOM objects. In this case V8 can schedule GC
20103         itself more optimally.
20104
20105         * bindings/v8/V8GCController.cpp:
20106         (WebCore::V8GCController::checkMemoryUsage):
20107
20108 2012-11-07  Allan Sandfeld Jensen  <allan.jensen@digia.com>
20109
20110         [Qt] Open link in this window action
20111         https://bugs.webkit.org/show_bug.cgi?id=101226
20112
20113         Reviewed by Simon Hausmann.
20114
20115         Adds the action to the WebCore context-menu controller.
20116
20117         * page/ContextMenuController.cpp:
20118         (WebCore::ContextMenuController::contextMenuItemSelected):
20119         (WebCore::ContextMenuController::checkOrEnableIfNeeded):
20120         * platform/ContextMenuItem.h:
20121         * platform/LocalizedStrings.h:
20122         * platform/qt/LocalizedStringsQt.cpp:
20123         (WebCore::contextMenuItemTagOpenLinkInThisWindow):
20124
20125 2012-11-07  Andrey Adaikin  <aandrey@chromium.org>
20126
20127         Web Inspector: [Canvas] closure compiler fixes
20128         https://bugs.webkit.org/show_bug.cgi?id=101459
20129
20130         Reviewed by Pavel Feldman.
20131
20132         * inspector/InjectedScriptCanvasModuleSource.js:
20133         (.):
20134
20135 2012-11-07  Sheriff Bot  <webkit.review.bot@gmail.com>
20136
20137         Unreviewed, rolling out r133712.
20138         http://trac.webkit.org/changeset/133712
20139         https://bugs.webkit.org/show_bug.cgi?id=101461
20140
20141         Broke fast/forms/time* tests on chromium-win. (Requested by
20142         mkwst on #webkit).
20143
20144         * platform/text/win/LocaleWin.cpp:
20145         (WebCore::DateFormatToken::DateFormatToken):
20146         (DateFormatToken):
20147         (WebCore):
20148         (WebCore::isEraSymbol):
20149         (WebCore::isYearSymbol):
20150         (WebCore::isMonthSymbol):
20151         (WebCore::isDaySymbol):
20152         (WebCore::commitLiteralToken):
20153         (WebCore::parseDateFormat):
20154         (WebCore::LocaleWin::ensureShortDateTokens):
20155         (WebCore::convertWindowsDateFormatToLDML):
20156         (WebCore::mapCharacterToDateTimeFieldType):
20157         (WebCore::convertWindowsTimeFormatToLDML):
20158         (WebCore::LocaleWin::dateFormat):
20159         (WebCore::LocaleWin::monthFormat):
20160         (WebCore::LocaleWin::timeFormat):
20161         (WebCore::LocaleWin::shortTimeFormat):
20162         * platform/text/win/LocaleWin.h:
20163         (LocaleWin):
20164
20165 2012-11-07  Vsevolod Vlasov  <vsevik@chromium.org>
20166
20167         Web Inspector: [Regression] Editing formatted source should not be allowed.
20168         https://bugs.webkit.org/show_bug.cgi?id=101355
20169
20170         Reviewed by Pavel Feldman.
20171
20172         * inspector/front-end/JavaScriptSourceFrame.js:
20173         (WebInspector.JavaScriptSourceFrame.prototype._onFormattedChanged):
20174         * inspector/front-end/UISourceCodeFrame.js:
20175         (WebInspector.UISourceCodeFrame.prototype._onFormattedChanged):
20176
20177 2012-11-07  Shinya Kawanaka  <shinyak@chromium.org>
20178
20179         [Shadow] Use setPseudo() instead of setShadowPseudoId().
20180         https://bugs.webkit.org/show_bug.cgi?id=101306
20181
20182         Reviewed by Kent Tamura.
20183
20184         We would like to remove setShadowPseudoId() and use setPseudo() instead, since ShadowDOM spec now has
20185         'pseudo' attribute.
20186
20187         We change all setShadowPseudoId() invocation to setPseudo() invocation. Also, when AtomicString is not
20188         constructed with AtomicStringFromLiteral, we use it.
20189
20190         No new tests, refactoring.
20191
20192         * WebCore.exp.in:
20193         * dom/Element.cpp:
20194         * dom/Element.h:
20195         (Element):
20196         * html/BaseMultipleFieldsDateAndTimeInputType.cpp:
20197         (WebCore::BaseMultipleFieldsDateAndTimeInputType::createShadowSubtree):
20198         * html/ColorInputType.cpp:
20199         (WebCore::ColorInputType::createShadowSubtree):
20200         * html/HTMLTextAreaElement.cpp:
20201         (WebCore::HTMLTextAreaElement::updatePlaceholderText):
20202         * html/RangeInputType.cpp:
20203         (WebCore::RangeInputType::createShadowSubtree):
20204         * html/TextFieldInputType.cpp:
20205         (WebCore::TextFieldInputType::createShadowSubtree):
20206         (WebCore::TextFieldInputType::updatePlaceholderText):
20207         * html/ValidationMessage.cpp:
20208         (WebCore::ValidationMessage::buildBubbleTree):
20209         * html/shadow/DateTimeEditElement.cpp:
20210         (WebCore::DateTimeEditBuilder::visitLiteral):
20211         (WebCore::DateTimeEditElement::DateTimeEditElement):
20212         * html/shadow/DateTimeFieldElement.cpp:
20213         (WebCore::DateTimeFieldElement::initialize):
20214         * html/shadow/DateTimeFieldElement.h:
20215         (DateTimeFieldElement):
20216         * html/shadow/PickerIndicatorElement.cpp:
20217         (WebCore::PickerIndicatorElement::PickerIndicatorElement):
20218         * html/track/TextTrackCue.cpp:
20219         (WebCore::TextTrackCueBox::TextTrackCueBox):
20220         (WebCore::TextTrackCue::updateDisplayTree):
20221         * testing/Internals.cpp:
20222         (WebCore::Internals::setShadowPseudoId):
20223
20224 2012-11-07  Andrey Adaikin  <aandrey@chromium.org>
20225
20226         Web Inspector: [Canvas] Save CanvasGradient objects state for a replay
20227         https://bugs.webkit.org/show_bug.cgi?id=101432
20228
20229         Reviewed by Pavel Feldman.
20230
20231         Save CanvasGradient resource state for a subsequent replay. The gradient's state is modified by the gradient.addColorStop() call.
20232
20233         Test: inspector/profiler/canvas2d/canvas2d-gradient-capturing.html
20234
20235         * inspector/InjectedScriptCanvasModuleSource.js:
20236         (.):
20237
20238 2012-11-07  Vsevolod Vlasov  <vsevik@chromium.org>
20239
20240         Web Inspector: [Regression] Snippets evaluations should not appear in Sources tab of navigator.
20241         https://bugs.webkit.org/show_bug.cgi?id=101354
20242
20243         Reviewed by Pavel Feldman.
20244
20245         * inspector/front-end/DebuggerScriptMapping.js:
20246         * inspector/front-end/NetworkUISourceCodeProvider.js:
20247         (WebInspector.NetworkUISourceCodeProvider.prototype._parsedScriptSource):
20248         * inspector/front-end/Script.js:
20249         (WebInspector.Script.prototype.isSnippet):
20250         * inspector/front-end/ScriptSnippetModel.js:
20251         (WebInspector.ScriptSnippetModel.prototype._snippetIdForSourceURL):
20252
20253 2012-11-07  Dan Carney  <dcarney@google.com>
20254
20255         [V8] Cleanup V8DOMWrapper::getCachedWrapper
20256         https://bugs.webkit.org/show_bug.cgi?id=100853
20257
20258         Reviewed by Adam Barth.
20259
20260         Slight cleanup. Removed redundant branch.
20261
20262         No new tests. No change in functionality.
20263
20264         * bindings/v8/V8DOMWrapper.h:
20265         (WebCore::V8DOMWrapper::getCachedWrapper):
20266
20267 2012-11-07  Simon Hausmann  <simon.hausmann@digia.com>
20268
20269         [Qt] Unreviewed trivial build fix adapting to QtMultimedia API changes
20270
20271         The QtMultimedia namespace is now called QMultimedia and
20272         QtMultimedia::MetaData is now QMediaMetaData.
20273
20274         * platform/graphics/qt/MediaPlayerPrivateQt.cpp:
20275         (WebCore::MediaPlayerPrivateQt::supportsType):
20276         (WebCore::MediaPlayerPrivateQt::totalBytes):
20277
20278 2012-11-07  Christophe Dumez  <christophe.dumez@intel.com>
20279
20280         Add replaceWithLiteral() method to WTF::String
20281         https://bugs.webkit.org/show_bug.cgi?id=101257
20282
20283         Reviewed by Benjamin Poulain.
20284
20285         Substitute String::replace() calls by String::replaceWithLiteral() where
20286         adequate, for efficiency.
20287
20288         No new tests, no behavior change.
20289
20290         * dom/Node.cpp:
20291         (WebCore::Node::showNode):
20292         * editing/EditingStyle.cpp:
20293         (WebCore::StyleChange::extractTextStyles):
20294         * editing/MarkupAccumulator.cpp:
20295         (WebCore::MarkupAccumulator::appendQuotedURLAttributeValue):
20296         * html/HTMLAnchorElement.cpp:
20297         (WebCore::HTMLAnchorElement::setSearch):
20298         * loader/FormSubmission.cpp:
20299         (WebCore::appendMailtoPostFormDataToURL):
20300         * platform/network/soup/ProxyResolverSoup.cpp:
20301         (soupProxyResolverWkSetProperty):
20302         * plugins/PluginView.cpp:
20303         (WebCore::makeURL):
20304         * rendering/InlineTextBox.cpp:
20305         (WebCore::InlineTextBox::showBox):
20306         * xml/XSLTProcessor.cpp:
20307         (WebCore::transformTextStringToXHTMLDocumentString):
20308
20309 2012-11-07  Kenneth Rohde Christiansen  <kenneth@webkit.org>
20310
20311         Remove support for "desktop-width" in the viewport meta tag
20312         https://bugs.webkit.org/show_bug.cgi?id=101217
20313
20314         Reviewed by Gyuyoung Kim.
20315
20316         This has been removed from the CSS Device Adaptation spec, and
20317         should be safe to remove as it is not documented anywhere (neither
20318         in blog posts).
20319
20320         The viewport meta should only support the legacy features.
20321
20322         * dom/ViewportArguments.cpp:
20323         (WebCore::computeViewportAttributes):
20324         (WebCore::findSizeValue):
20325         (WebCore::findScaleValue):
20326         (WebCore::findUserScalableValue):
20327         * dom/ViewportArguments.h:
20328
20329 2012-11-07  Dominik Röttsches  <dominik.rottsches@intel.com>
20330
20331         [EFL] Fix execution of exif-orientation-image-document.html on EFL Wk2 bot
20332         https://bugs.webkit.org/show_bug.cgi?id=101343
20333
20334         Reviewed by Kenneth Rohde Christiansen.
20335
20336         Add Cairo to the list of backends that support shouldRespectImageOrientation.
20337
20338         No new tests, fixes exif-orientation-image-document.html.
20339
20340         * rendering/RenderObject.cpp:
20341         (WebCore::RenderObject::shouldRespectImageOrientation):
20342
20343 2012-11-06  Yury Semikhatsky  <yurys@chromium.org>
20344
20345         Console not displaying all properties of an Object once native Constructor overwritten
20346         https://bugs.webkit.org/show_bug.cgi?id=101320
20347
20348         Reviewed by Pavel Feldman.
20349
20350         Use Object instance from {}.constructor when formatting inspector messages in the
20351         injected script. Otherwise inspected page may overwrite Object value and break inspector.
20352
20353         Test: inspector/console/console-Object-overwritten.html
20354
20355         * inspector/InjectedScriptSource.js:
20356
20357 2012-11-06  Keishi Hattori  <keishi@webkit.org>
20358
20359         Implement month picking to calendar picker
20360         https://bugs.webkit.org/show_bug.cgi?id=101333
20361
20362         Reviewed by Kent Tamura.
20363
20364         This adds month picker mode to CalendarPicker.
20365
20366         No new tests. Tests will be added later when this feature is enabled in DRT.
20367
20368         * Resources/pagepopups/calendarPicker.css:
20369         (.month-mode .day): Remove rounded corners when in month mode.
20370         * Resources/pagepopups/calendarPicker.js:
20371         (Month.createFromToday): Creates month containing today.
20372         (CalendarPicker): Set this.selectionConstructor to Day or Month depending on the mode. Create DayTables or MonthPickerDaysTable depending on the mode.
20373         (CalendarPicker.prototype.handleToday):
20374         (CalendarPicker.prototype._layoutButtons):
20375         (DaysTable.prototype._renderMonth): Set element.dataset.monthValue for all date nodes.
20376         (DaysTable.prototype._markRangeAsSelected): Marks all day nodes in range as selected.
20377         (DaysTable.prototype.selectRange): Selects a day.
20378         (DaysTable.prototype.selectRangeAndShowEntireRange): Same as selectRange.
20379         (DaysTable.prototype._selectRangeContainingNode):
20380         (DaysTable.prototype._rangeForNode): Returns Day for node.
20381         (DaysTable.prototype.startDate): Start datetime of visible date range. This value is inclusive.
20382         (DaysTable.prototype.endDate): End datetime of visible date range. This value is exclusive.
20383         (DaysTable.prototype._handleKey):
20384         (MonthPickerDaysTable):
20385         (MonthPickerDaysTable.prototype._markRangeAsSelected): Marks all day nodes in range as selected.
20386         (MonthPickerDaysTable.prototype.selectRange): Selects month. If month is not visible, navigates to that month.
20387         (MonthPickerDaysTable.prototype.selectRangeAndShowEntireRange): Selects month. Navigates to the month.
20388         (MonthPickerDaysTable.prototype._rangeForNode): Returns Month for node.
20389         (MonthPickerDaysTable.prototype._handleKey): Arrow keys simply move the selection forwards or backwards.
20390
20391 2012-11-06  Dan Beam  <dbeam@chromium.org>
20392
20393         Enable REQUEST_AUTOCOMPLETE for chromium port
20394         https://bugs.webkit.org/show_bug.cgi?id=101376
20395
20396         Reviewed by Adam Barth.
20397
20398         Added a runtime enabled feature to control whether HTMLFormElement#requestAutocomplete is visible from JavaScript.
20399
20400         * bindings/generic/RuntimeEnabledFeatures.cpp:
20401         (WebCore):
20402         * bindings/generic/RuntimeEnabledFeatures.h:
20403         (RuntimeEnabledFeatures):
20404
20405         Added a binding from RuntimeEnabledFeatures that triggers [V8EnabledAtRuntime=requestAutocomplete].
20406
20407         (WebCore::RuntimeEnabledFeatures::requestAutocompleteEnabled):
20408
20409         Added a getter to WebCore to ask whether the runtime flag requestAutocomplete is on.
20410
20411         (WebCore::RuntimeEnabledFeatures::setRequestAutocompleteEnabled):
20412
20413         Added a setter to WebCore to affect the runtime flag requestAutocomplete.
20414
20415         * html/HTMLFormElement.idl:
20416
20417         Wrapped commonly grouped features in an #if defined(ENABLED_REQUEST_AUTOCOMPLETE) block and added [V8EnableAtRuntime]
20418         so these features can be changed with a command line switch in the chromium port.
20419
20420 2012-11-06  Adam Barth  <abarth@webkit.org>
20421
20422         [V8] Unify setJSWrapperForDOMObject and setJSWrapperForDOMNode
20423         https://bugs.webkit.org/show_bug.cgi?id=101422
20424
20425         Reviewed by Kentaro Hara.
20426
20427         This patch is another incremental step towards the patch in Bug 10110.
20428         In this step, we unify setJSWrapperForDOMObject and
20429         setJSWrapperForDOMNode.
20430
20431         * bindings/scripts/CodeGeneratorV8.pm:
20432         (GenerateHeader):
20433         (GenerateNormalAttrGetter):
20434         (GenerateConstructorCallback):
20435         (GenerateNamedConstructorCallback):
20436         (GenerateToV8Converters):
20437         * bindings/scripts/test/V8/V8Float64Array.h:
20438         (WebCore::V8Float64Array::wrap):
20439         * bindings/scripts/test/V8/V8TestActiveDOMObject.h:
20440         (WebCore::V8TestActiveDOMObject::wrap):
20441         * bindings/scripts/test/V8/V8TestCustomNamedGetter.h:
20442         (WebCore::V8TestCustomNamedGetter::wrap):
20443         * bindings/scripts/test/V8/V8TestEventConstructor.h:
20444         (WebCore::V8TestEventConstructor::wrap):
20445         * bindings/scripts/test/V8/V8TestEventTarget.h:
20446         (WebCore::V8TestEventTarget::wrap):
20447         * bindings/scripts/test/V8/V8TestException.h:
20448         (WebCore::V8TestException::wrap):
20449         * bindings/scripts/test/V8/V8TestInterface.h:
20450         (WebCore::V8TestInterface::wrap):
20451         * bindings/scripts/test/V8/V8TestMediaQueryListListener.h:
20452         (WebCore::V8TestMediaQueryListListener::wrap):
20453         * bindings/scripts/test/V8/V8TestNamedConstructor.h:
20454         (WebCore::V8TestNamedConstructor::wrap):
20455         * bindings/scripts/test/V8/V8TestNode.cpp:
20456         (WebCore::V8TestNode::constructorCallback):
20457         (WebCore::V8TestNode::wrapSlow):
20458         * bindings/scripts/test/V8/V8TestObj.cpp:
20459         (WebCore::TestObjV8Internal::readOnlyTestObjAttrAttrGetter):
20460         * bindings/scripts/test/V8/V8TestObj.h:
20461         (WebCore::V8TestObj::wrap):
20462         * bindings/scripts/test/V8/V8TestSerializedScriptValueInterface.h:
20463         (WebCore::V8TestSerializedScriptValueInterface::wrap):
20464         * bindings/v8/DOMDataStore.cpp:
20465         (WebCore::DOMDataStore::current):
20466         * bindings/v8/DOMDataStore.h:
20467         (WebCore::DOMDataStore::get):
20468         (DOMDataStore):
20469         * bindings/v8/V8DOMWrapper.cpp:
20470         * bindings/v8/V8DOMWrapper.h:
20471         (V8DOMWrapper):
20472         (WebCore::V8DOMWrapper::setJSWrapperPrivate):
20473         (WebCore::V8DOMWrapper::setJSWrapperForDOMObject):
20474         * bindings/v8/custom/V8HTMLImageElementConstructor.cpp:
20475         (WebCore::v8HTMLImageElementConstructorCallback):
20476
20477 2012-11-06  Ken Buchanan  <kenrb@chromium.org>
20478
20479         Crash due to column span under button element
20480         https://bugs.webkit.org/show_bug.cgi?id=101402
20481
20482         Reviewed by Abhishek Arya.
20483
20484         When there is a column-spanning child of a RenderButton
20485         splitBlocks() must split the RenderButton as well as its
20486         only permitted direct child, the anonymous block referenced
20487         by m_inner. A crash was occurring because splitBlocks()
20488         calls addChildIgnoringAnonymousColumnBlocks() to add the
20489         cloned m_inner to the cloned RenderButton, which meant the
20490         m_inner for the cloned RenderButton was not being set even
20491         though a child was being added. This violates state
20492         assumptions in the RenderButton code.
20493
20494         This patch prevents any descendants of RenderButton from
20495         spanning columns. Also, it adds a precautionary check in
20496         RenderButton::removeChild() to mitigate problems if similar
20497         state problems are found in future.
20498
20499         * rendering/RenderBlock.cpp:
20500         (WebCore::RenderBlock::containingColumnsBlock):
20501         * rendering/RenderButton.cpp:
20502         (WebCore::RenderButton::removeChild):
20503
20504 2012-11-06  Shinya Kawanaka  <shinyak@chromium.org>
20505
20506         [Shadow] Pseudo custom-elements should start with 'x-'.
20507         https://bugs.webkit.org/show_bug.cgi?id=100919
20508
20509         Reviewed by Dimitri Glazkov.
20510
20511         Pseuco custom-elements should start with 'x-'. 'Pseudo' starting with '-webkit-' should work
20512         only in UserAgent ShadowDOM. If it's used in Author ShadowDOM, it should not work.
20513
20514         Test: fast/dom/shadow/pseudo-attribute-rendering.html
20515
20516         * css/SelectorChecker.cpp:
20517         (WebCore::SelectorChecker::checkSelector): Added ShadowRoot type check.
20518
20519 2012-11-06  Chris Evans  <cevans@google.com>
20520
20521         Re-order variables in BidiRun and LayoutState
20522         https://bugs.webkit.org/show_bug.cgi?id=100173
20523
20524         Reviewed by Eric Seidel.
20525
20526         The variable re-ordering and use of bitfields for bools has two benefits:
20527         1) Size reduction. sizeof(BidiRun) goes down from 48 to 40 bytes on 64-bit. This is achieved by removing a bool member variable from BidiRun and packing it together with other bools in the BidiCharacterRun base class.
20528         2) Security improvement. We have a lot of use-after-free in the RenderObject hierarchy, and the RenderArena class protects us from a lot of trouble by ensuring that objects of arbitrary type cannot be overlayed on top of freed RenderObjects. This change additionally makes sure that non-virtual RenderArena allocated objects do not have member variables which fully overlap the freed vtable pointer. This leaves re-used vtable pointers always pointing to either a valid vtable or an invalid address due to the freelist high-bit poisoning.
20529
20530         This change is exclusively about size savings; it is performance neutral as you would expect, including on Parser/html5-full-render.html
20531
20532         * platform/text/BidiResolver.h:
20533         (WebCore::BidiCharacterRun::BidiCharacterRun): impact from re-ordering members.
20534         (BidiCharacterRun): provide an efficiently packed bit of storage for BidiRun subclass to use, and re-order members to place bools adjacent.
20535         * rendering/BidiRun.h:
20536         (WebCore::BidiRun::BidiRun): use base class' efficiently packed bit storage for m_hasHyphen.
20537         (BidiRun): m_hasHyphen is now stored in the base class.
20538         * rendering/LayoutState.cpp:
20539         (WebCore::LayoutState::LayoutState):
20540         * rendering/LayoutState.h:
20541         (WebCore::LayoutState::LayoutState): impact from re-ordering members.
20542         (LayoutState): re-order members to place bools adjacently.
20543
20544 2012-11-06  Kent Tamura  <tkent@chromium.org>
20545
20546         [Chromium-win] Refactor date/time format conversion code in LocaleWin
20547         https://bugs.webkit.org/show_bug.cgi?id=101329
20548
20549         Reviewed by Kentaro Hara.
20550
20551         convertWindowsDateFormatToLDML and convertWindowsTimeFormatToLDML did
20552         similar jobs with different code. We can merge them into one function.
20553
20554         As for the date format conversion, we have tokenized a format string and
20555         stored token objects into a vector. We skip token object generation and
20556         generate a LDML-compliant pattern string during parsing.
20557
20558         No new tests. This should make no behavior changes and
20559         WebKit/chromium/tests/LocaleWinTest.cpp has test cases.
20560
20561         * platform/text/win/LocaleWin.cpp:
20562         (WebCore): Remove DateFormatToken, isFooSymbol, ensureShortDateTokens,
20563         convertWindowsDateFormatToLDML, mapCharacterToDateTimeFieldType, and
20564         convertWindowsTimeFormatToLDML.
20565         (WebCore::commitLiteralToken): Store the result to the specified StringBuilder.
20566         (WebCore::convertWindowsDateTimeFormat):
20567         Renamed from parseDateFormat, and supports time format symbols.
20568         (WebCore::LocaleWin::dateFormat): Use convertWindowsDateTimeFormat.
20569         (WebCore::LocaleWin::monthFormat): Ditto.
20570         (WebCore::LocaleWin::timeFormat): Ditto.
20571         (WebCore::LocaleWin::shortTimeFormat): Ditto.
20572         * platform/text/win/LocaleWin.h:
20573         (LocaleWin): Remove ensureShortDateTokens and m_shortDateTokens.
20574
20575 2012-11-06  Elliott Sprehn  <esprehn@chromium.org>
20576
20577         Make Document::renderer faster by using the cached ptr for RenderView
20578         https://bugs.webkit.org/show_bug.cgi?id=101409
20579
20580         Reviewed by Eric Seidel.
20581
20582         In Bug 101277 I made Document::renderView() just return m_renderView instead
20583         of casting the result of renderer(). While this made renderView() cheaper it
20584         makes more sense to just make renderer() faster for Document pointers and
20585         go back to the out of line method in RenderView.h because lots of places in
20586         the code do document()->renderer().
20587
20588         No new tests, this is just a refactor.
20589
20590         * dom/Document.h:
20591         (WebCore::Document::renderer):
20592         * rendering/RenderView.h:
20593         (WebCore::Document::renderView):
20594
20595 2012-11-06  Adam Barth  <abarth@webkit.org>
20596
20597         [V8] neuterBinding should remember the type of its argument
20598         https://bugs.webkit.org/show_bug.cgi?id=101413
20599
20600         Reviewed by Kentaro Hara.
20601
20602         This is a small part of the patch in
20603         https://bugs.webkit.org/show_bug.cgi?id=101110 that we can land
20604         separately to try to tease out what is causing the memory regression.
20605
20606         * bindings/v8/SerializedScriptValue.cpp:
20607         (WebCore):
20608         (WebCore::neuterBinding):
20609
20610 2012-11-06  Alexey Proskuryakov  <ap@apple.com>
20611
20612         Clean up which storage cookie jar functions use
20613         https://bugs.webkit.org/show_bug.cgi?id=101395
20614
20615         Reviewed by Brady Eidson.
20616
20617         * WebCore.exp.in:
20618         * platform/mac/WebCoreSystemInterface.h:
20619         * platform/mac/WebCoreSystemInterface.mm:
20620         Updated for two new WKSI functions.
20621
20622         * platform/CookieJar.h: Added explanatory comments.
20623
20624         * platform/mac/CookieJar.mm:
20625         (WebCore::cookies): Removed fallback on NSHTTPCookieStorage, the WKSI function
20626         already implements it.
20627         (WebCore::cookieRequestHeaderFieldValue): Ditto.
20628         (WebCore::setCookies): Ditto.
20629         (WebCore::cookiesEnabled): Ditto.
20630         (WebCore::getRawCookies): Ditto.
20631         (WebCore::deleteCookie): Ditto.
20632         (WebCore::getHostnamesWithCookies): This function used to look at NSHTTPCookieStorage
20633         exclusively. While it makes sense to bypass private storage session, default storage
20634         session (currently only used for testing on Mac) is never OK to bypass. Changed to
20635         use a WKSI function that supports both.
20636         (WebCore::deleteCookiesForHostname): Ditto.
20637         (WebCore::deleteAllCookies): Ditto.
20638
20639         * platform/network/cf/CookieJarCFNet.cpp:
20640         (WebCore::getHostnamesWithCookies):
20641         (WebCore::deleteCookiesForHostname):
20642         (WebCore::deleteAllCookies):
20643         Updated to match Foundation, so now these functions bypass private session.
20644
20645         * platform/network/cf/CookieStorageCFNet.cpp:
20646         (WebCore::currentCFHTTPCookieStorage): Updated a comment.
20647         (WebCore::defaultCFHTTPCookieStorage):  Added a function that returns cookie storage
20648         for non-private session (or null if that would be an NSHTTPCookieStorage).        
20649         (WebCore::startObservingCookieChanges): We do not want to observe private cookies
20650         here, and we certainly don't want a mismatch between start/stop due to private
20651         browsing mode changes.
20652         (WebCore::stopObservingCookieChanges): Ditto.
20653
20654         * platform/network/cf/CookieStorageCFNet.h: Added defaultCFHTTPCookieStorage().
20655
20656 2012-11-06  Huang Dongsung  <luxtella@company100.net>
20657
20658         Build fix. r133601 broke the Windows build.
20659         https://bugs.webkit.org/show_bug.cgi?id=101404
20660
20661         Reviewed by Noam Rosenthal.
20662
20663         Only static const integral data members can be initialized within a class in the
20664         Windows, so we initialize static const double date members out of the class.
20665
20666         * platform/graphics/texmap/TextureMapper.cpp:
20667         (BitmapTexturePool):
20668         (WebCore):
20669
20670 2012-11-06  Simon Fraser  <simon.fraser@apple.com>
20671
20672         -webkit-background-clip:text produces artifacts when applied to the body and the browser is resized
20673         https://bugs.webkit.org/show_bug.cgi?id=89287
20674
20675         Reviewed by Beth Dakin.
20676
20677         If the body had -webkit-background-clip: text, we'd fail to paint
20678         anything behind it, so would see garbage pixels.
20679         
20680         Fix by having RenderView::paintBoxDecorations() check for a background-clip of "text"
20681         on the renderer that paints the root background.
20682         
20683         Added some new pixel tests for combinations of html and body transform
20684         and backgrounds; earlier versions of the patch broke some of these tests.
20685
20686         Tests: fast/backgrounds/background-clip-text-on-body.html
20687                fast/backgrounds/transformed-body-background.html
20688                fast/backgrounds/transformed-body-html-background.html
20689                fast/backgrounds/transformed-html-body-background.html
20690
20691         * rendering/RenderView.cpp:
20692         (WebCore::rendererObscuresBackground): Broke up the single condition
20693         into early 'false' returns when possible. We need to also check whether
20694         the renderer that actually paints the background (which might be the body)
20695         will fill it; background-clip: text does not.
20696         (WebCore::RenderView::paintBoxDecorations): Rather than checking firstChild(),
20697         actually check the root renderer, so that we can reliably get to the renderer
20698         that mains the root background.
20699
20700 2012-11-06  Stephen White  <senorblanco@chromium.org>
20701
20702         Implement save and restore for a bunch of InternalSettings state
20703         https://bugs.webkit.org/show_bug.cgi?id=101394
20704
20705         Reviewed by Dirk Pranke.
20706
20707         In http://trac.webkit.org/changeset/133399, I resolved a bunch of 
20708         flaky tests by saving and restoring the InternalSettings state
20709         EnableCompositingForFixedPosition.  On a hunch, I git grepped for all
20710         internal settings state which is being set by layout tests but not
20711         saved and restored.  It turns out there about 15 calls.
20712
20713         This patch takes care of five of them, mostly compositing-related.
20714         The others I was either not sure about, or were already at least
20715         being reset to known values by the testing harness.
20716
20717         Hopefully this will alleviate some further test flakiness.
20718
20719         * testing/InternalSettings.cpp:
20720         * testing/InternalSettings.h:
20721
20722 2012-11-06  KyungTae Kim  <ktf.kim@samsung.com>
20723
20724         Fix build warning in RenderLayer.cpp caused by r133628
20725         https://bugs.webkit.org/show_bug.cgi?id=101401
20726
20727         Reviewed by Simon Fraser.
20728
20729         The static function WebCore::frameViewFromLayer is only used when USE(ACCELERATED_COMPOSITING),
20730         so define it only that case for removing -Wunused-function warning
20731
20732         * rendering/RenderLayer.cpp:
20733         (WebCore):
20734
20735 2012-11-06  Hans Muller  <hmuller@adobe.com>
20736
20737         [CSS Exclusions] Store ExclusionPolygonEdge vertices in clockwise order
20738         https://bugs.webkit.org/show_bug.cgi?id=100763
20739
20740         Reviewed by Darin Adler.
20741
20742         The ExclusionPolygon's internal logic, notably getVertexIntersectionVertices(),
20743         assumes that ExclusionPolygonEdge vertices are stored in clockwise order.
20744         If this is not true, then we construct the polygon's edges in reverse.
20745
20746         To determine if the vertices are in clockwise order, we compare the slope
20747         of the line between the top,left vertex and its previous vertex, with the
20748         the slope of the line of vertices before and after the top,left vertex.
20749         If the slope of the latter is greater, then top,left vertex is located
20750         to its left, and the vertices are clockwise.
20751
20752         Test: fast/exclusions/shape-inside/shape-inside-counterclockwise-polygon.html
20753
20754         * rendering/ExclusionPolygon.cpp:
20755         (WebCore::determinant): Used to decide if the min vertex is on the left side of the line that passes through its adjacent vertices.
20756         (WebCore::ExclusionPolygon::ExclusionPolygon): If the polygon's vertices are specified in counterclockwise order, construct the edges in reverse.
20757         (WebCore::appendIntervalX): Made this an inline since it was only defined as a function for the sake of clarity.
20758
20759 2012-11-06  Tiancheng Jiang  <tijiang@rim.com>
20760
20761         [BlackBerry] Update BB10 form theme.
20762         https://bugs.webkit.org/show_bug.cgi?id=100760
20763
20764         Reviewed by Rob Buis.
20765
20766         RIM PR 238123
20767         Internal Reviewed by Chris Hutten-Czapski
20768         BB10 selection theme use slice image function to draw selection button,
20769         any border-radius setting other than 0 will make the button corner
20770         clipped. Always set button border-radius: 0 for BB10 theme.
20771
20772         * css/themeBlackBerry.css:
20773         (select[size][multiple]):
20774         (select[size="1"]):
20775
20776 2012-11-06  Elliott Sprehn  <esprehn@chromium.org>
20777
20778         Remove branch from inside RenderObject::view now that renderer() is more expensive
20779         https://bugs.webkit.org/show_bug.cgi?id=101277
20780
20781         Reviewed by Eric Seidel.
20782
20783         It was observed in Bug 100057 that calling renderer() repeatedly now that it has a branch
20784         can be a performance regression. Now that we no longer keep a separate pointer for rare data
20785         in Document, we can use that space for a pointer to the RenderView making RenderObject::view()
20786         faster and removing the branch.
20787
20788         This is a 1% improvement on Parser/html5-full-render.html
20789
20790         This also cleans up the code because it turns out we don't need to have RenderObject::view() in
20791         RenderView.h because we can just call Document::renderView() and not do toRenderView. This makes
20792         it easier to find this method as it exists in the right header file now.
20793
20794         No new tests, this is just a refactor.
20795
20796         * WebCore.exp.in: Remove export of Document::renderView since it's inline now.
20797         * dom/Document.cpp:
20798         (WebCore::Document::Document):
20799         (WebCore::Document::setRenderer):
20800         (WebCore):
20801         * dom/Document.h:
20802         (WebCore::Document::renderView):
20803         (Document):
20804         * rendering/RenderObject.h:
20805         (WebCore::RenderObject::view):
20806         * rendering/RenderView.h:
20807         (WebCore):
20808
20809 2012-11-06  Sheriff Bot  <webkit.review.bot@gmail.com>
20810
20811         Unreviewed, rolling out r133526.
20812         http://trac.webkit.org/changeset/133526
20813         https://bugs.webkit.org/show_bug.cgi?id=101388
20814
20815         May have caused 15% memory regression in Chromium (Requested
20816         by jsbell|gardener on #webkit).
20817
20818         * UseV8.cmake:
20819         * WebCore.gypi:
20820         * bindings/scripts/CodeGeneratorV8.pm:
20821         (GenerateHeader):
20822         (GenerateNormalAttrGetter):
20823         (GenerateConstructorCallback):
20824         (GenerateNamedConstructorCallback):
20825         (GenerateToV8Converters):
20826         (GetDomMapFunction):
20827         (GetDomMapName):
20828         * bindings/scripts/test/V8/V8Float64Array.h:
20829         (WebCore::V8Float64Array::wrap):
20830         * bindings/scripts/test/V8/V8TestActiveDOMObject.h:
20831         (WebCore::V8TestActiveDOMObject::wrap):
20832         * bindings/scripts/test/V8/V8TestCustomNamedGetter.h:
20833         (WebCore::V8TestCustomNamedGetter::wrap):
20834         * bindings/scripts/test/V8/V8TestEventConstructor.h:
20835         (WebCore::V8TestEventConstructor::wrap):
20836         * bindings/scripts/test/V8/V8TestEventTarget.h:
20837         (WebCore::V8TestEventTarget::wrap):
20838         * bindings/scripts/test/V8/V8TestException.h:
20839         (WebCore::V8TestException::wrap):
20840         * bindings/scripts/test/V8/V8TestInterface.h:
20841         (WebCore::V8TestInterface::wrap):
20842         * bindings/scripts/test/V8/V8TestMediaQueryListListener.h:
20843         (WebCore::V8TestMediaQueryListListener::wrap):
20844         * bindings/scripts/test/V8/V8TestNamedConstructor.h:
20845         (WebCore::V8TestNamedConstructor::wrap):
20846         * bindings/scripts/test/V8/V8TestNode.cpp:
20847         (WebCore::V8TestNode::constructorCallback):
20848         (WebCore::V8TestNode::wrapSlow):
20849         * bindings/scripts/test/V8/V8TestObj.cpp:
20850         (WebCore::TestObjV8Internal::readOnlyTestObjAttrAttrGetter):
20851         * bindings/scripts/test/V8/V8TestObj.h:
20852         (WebCore::V8TestObj::wrap):
20853         * bindings/scripts/test/V8/V8TestSerializedScriptValueInterface.h:
20854         (WebCore::V8TestSerializedScriptValueInterface::wrap):
20855         * bindings/v8/DOMDataStore.cpp:
20856         (WebCore::DOMDataStore::DOMDataStore):
20857         (WebCore::DOMDataStore::~DOMDataStore):
20858         (WebCore::DOMDataStore::current):
20859         (WebCore::DOMDataStore::reportMemoryUsage):
20860         * bindings/v8/DOMDataStore.h:
20861         (WebCore::DOMDataStore::domNodeMap):
20862         (WebCore::DOMDataStore::domObjectMap):
20863         (DOMDataStore):
20864         * bindings/v8/DOMWrapperMap.h:
20865         (WebCore):
20866         (DOMWrapperMap):
20867         (WebCore::DOMWrapperMap::~DOMWrapperMap):
20868         (WebCore::DOMWrapperHashMap::remove):
20869         * bindings/v8/DOMWrapperWorld.h:
20870         * bindings/v8/IntrusiveDOMWrapperMap.h: Copied from Source/WebKit/chromium/src/WebScriptController.cpp.
20871         (WebCore):
20872         (IntrusiveDOMWrapperMap):
20873         (WebCore::IntrusiveDOMWrapperMap::weakCallback):
20874         * bindings/v8/ScriptProfiler.cpp:
20875         * bindings/v8/SerializedScriptValue.cpp:
20876         (WebCore::neuterBinding):
20877         * bindings/v8/V8DOMMap.cpp: Copied from Source/WebKit/chromium/src/WebScriptController.cpp.
20878         (WebCore):
20879         (WebCore::getDOMNodeMap):
20880         (WebCore::getDOMObjectMap):
20881         * bindings/v8/V8DOMMap.h: Copied from Source/WebKit/chromium/src/WebScriptController.cpp.
20882         (WebCore):
20883         * bindings/v8/V8DOMWindowShell.cpp:
20884         * bindings/v8/V8DOMWrapper.cpp:
20885         (WebCore::V8DOMWrapper::setJSWrapperForDOMNode):
20886         (WebCore):
20887         * bindings/v8/V8DOMWrapper.h:
20888         (V8DOMWrapper):
20889         (WebCore::V8DOMWrapper::getCachedWrapper):
20890         (WebCore::V8DOMWrapper::setJSWrapperForDOMObject):
20891         * bindings/v8/V8GCController.cpp:
20892         * bindings/v8/V8NPObject.cpp:
20893         * bindings/v8/WorkerContextExecutionProxy.cpp:
20894         * bindings/v8/WorkerScriptController.cpp:
20895         * bindings/v8/custom/V8HTMLImageElementConstructor.cpp:
20896         (WebCore::v8HTMLImageElementConstructorCallback):
20897
20898 2012-11-06  Alexey Proskuryakov  <ap@apple.com>
20899
20900         Some cookie code cleanup
20901         https://bugs.webkit.org/show_bug.cgi?id=101375
20902
20903         Reviewed by Dan Bernstein.
20904
20905         * platform/CookieJar.h: Fixed style. Grouped functions by which storage they operate
20906         on in Mac port, but didn't add explanatory comments yet, because this is different
20907         in some ports.
20908
20909         * platform/mac/CookieJar.mm:
20910         (WebCore): Removed special code for isHTTPOnly, it's present in Foundation in all
20911         supported OS X versions.
20912         (WebCore::filterCookies): Use -isHTTPOnly directly.
20913         (WebCore::cookies): Get rid of a variable for URL, implicit conversion works just as well.
20914         (WebCore::cookieRequestHeaderFieldValue): Ditto.
20915         (WebCore::setCookies): Assert that no more than one cookie was created from one
20916         Set-Cookie header, document.cookie can only be used to set one cookie at a time.
20917         (WebCore::getRawCookies): Removed useless local variables.
20918
20919         * platform/network/CookieStorage.h: Removed an unneeded include, clarified a comment.
20920
20921         * platform/network/HTTPHeaderMap.h: Added a FIXME.
20922
20923 2012-11-06  John Griggs  <jgriggs@rim.com>
20924
20925         Implement MediaPlayerPrivate::didLoadingProgress for BlackBerry platform
20926         https://bugs.webkit.org/show_bug.cgi?id=100378
20927
20928         Reviewed by Eric Carlson.
20929
20930         Implement this method for BlackBerry platform.
20931
20932         New test: LayoutTests/media/progress-events-generated-correctly.html
20933
20934         * platform/graphics/blackberry/MediaPlayerPrivateBlackBerry.cpp:
20935         (WebCore::MediaPlayerPrivate::MediaPlayerPrivate):
20936         (WebCore::MediaPlayerPrivate::didLoadingProgress):
20937         * platform/graphics/blackberry/MediaPlayerPrivateBlackBerry.h:
20938         (MediaPlayerPrivate):
20939
20940 2012-11-06  Adam Barth  <abarth@webkit.org>
20941
20942         DOMImplementation should use ScriptWrappable
20943         https://bugs.webkit.org/show_bug.cgi?id=101279
20944
20945         Reviewed by Eric Seidel.
20946
20947         This patch makes DOMImplementation ScriptWrappable. Both the V8 and JSC
20948         bindings automatically detect the presence of this base class and use
20949         it to optimize getting and setting JavaScript wrappers.
20950
20951         This patch is a 23% progression on Bindings/document-implementation for
20952         the V8 bindings and a 69% progression for the JSC bindings.
20953
20954         * dom/DOMImplementation.h:
20955
20956 2012-11-06  Benjamin Poulain  <benjamin@webkit.org>
20957
20958         Speed up TransformationMatrix::multiply() on modern ARM
20959         https://bugs.webkit.org/show_bug.cgi?id=101084
20960
20961         Reviewed by Gavin Barraclough.
20962
20963         The main improvements are:
20964         -Store the full source matrix in the registers d16 to d31. This way we avoid going
20965          back and forth to memory to use the operands.
20966          Since the full matrix is in register, we can also directly modify the memory of m_matrix,
20967          we no longer need the temporary matrix memcopied at the end.
20968         -Use of LoadMultiple and StoreMultiple to load-store the matrix parameters.
20969         -Use Multiply-Accumulate instead of VMUL followed by VADD. This half the number of instruction.
20970         -On regular ARMv7, using a loop to reuse the same code for each row also improve the performance.
20971
20972         Depending on the hardware, the new code takes 20% to 42% less time than the basic implementation.
20973
20974         * platform/graphics/transforms/TransformationMatrix.cpp:
20975         (WebCore::TransformationMatrix::multiply):
20976         * platform/graphics/transforms/TransformationMatrix.h:
20977         (TransformationMatrix):
20978
20979 2012-11-06  Sheriff Bot  <webkit.review.bot@gmail.com>
20980
20981         Unreviewed, rolling out r133529 and r133562.
20982         http://trac.webkit.org/changeset/133529
20983         http://trac.webkit.org/changeset/133562
20984         https://bugs.webkit.org/show_bug.cgi?id=101371
20985
20986         Caused 15% memory regression on Chromium page cyclers
20987         (Requested by jsbell|gardener on #webkit).
20988
20989         * platform/text/LineBreakIteratorPoolICU.h:
20990         (WebCore::LineBreakIteratorPool::take):
20991         (WebCore::LineBreakIteratorPool::put):
20992         (LineBreakIteratorPool):
20993         * platform/text/TextBreakIterator.cpp:
20994         (WebCore::acquireLineBreakIterator):
20995         * platform/text/TextBreakIterator.h:
20996         (WebCore):
20997         (WebCore::LazyLineBreakIterator::LazyLineBreakIterator):
20998         (WebCore::LazyLineBreakIterator::get):
20999         (WebCore::LazyLineBreakIterator::reset):
21000         (LazyLineBreakIterator):
21001         * platform/text/TextBreakIteratorICU.cpp:
21002         (WebCore::acquireLineBreakIterator):
21003         (WebCore::releaseLineBreakIterator):
21004         * platform/text/gtk/TextBreakIteratorGtk.cpp:
21005         (WebCore::setUpIterator):
21006         (WebCore::acquireLineBreakIterator):
21007         * platform/text/wince/TextBreakIteratorWinCE.cpp:
21008         (WebCore::acquireLineBreakIterator):
21009         * rendering/RenderBlockLineLayout.cpp:
21010         (WebCore::RenderBlock::LineBreaker::nextLineBreak):
21011         * rendering/RenderText.cpp:
21012         (WebCore::RenderText::computePreferredLogicalWidths):
21013         * rendering/RenderText.h:
21014         (WebCore):
21015         * rendering/break_lines.cpp:
21016         (WebCore):
21017         (WebCore::isBreakableSpace):
21018         (WebCore::needsLineBreakIterator):
21019         (WebCore::nextBreakablePosition):
21020         (WebCore::nextBreakablePositionIgnoringNBSP):
21021         * rendering/break_lines.h:
21022         (WebCore):
21023         (WebCore::isBreakable):
21024
21025 2012-11-06  Peter Beverloo  <peter@chromium.org>
21026
21027         [Chromium] Enable the JavaScript i18n API for Android
21028         https://bugs.webkit.org/show_bug.cgi?id=101357
21029
21030         Reviewed by Adam Barth.
21031
21032         Remove the conditional dependency on the v8-i18n API. The library is now
21033         always available in a Chromium for Android checkout.
21034
21035         * WebCore.gyp/WebCore.gyp:
21036
21037 2012-11-06  Adam Barth  <abarth@webkit.org>
21038
21039         ScriptWrappable should work for more than just Node
21040         https://bugs.webkit.org/show_bug.cgi?id=101319
21041
21042         Reviewed by Eric Seidel.
21043
21044         This patch generalizes the inline cached wrapper code path to work with
21045         all subclasses of ScriptWrappable, not just Node.
21046
21047         * bindings/js/JSDOMBinding.h:
21048         (WebCore::setInlineCachedWrapper):
21049         (WebCore::getInlineCachedWrapper):
21050         (WebCore):
21051         (WebCore::clearInlineCachedWrapper):
21052         (WebCore::cacheWrapper):
21053         * bindings/js/JSNodeCustom.h:
21054
21055 2012-11-06  Tiancheng Jiang  <tijiang@rim.com>
21056
21057         [BlackBerry] Update BB10 form theme.
21058         https://bugs.webkit.org/show_bug.cgi?id=100760
21059
21060         Reviewed by Rob Buis.
21061
21062         Revert webkit/ce306dcc698199a6f7ce679daf0a30c25d3a3d43 slider theme
21063         change which break media control and vertical slider.
21064
21065         RIM PR 236993
21066         Internal Reviewed by Jeff Rogers.
21067
21068         * platform/blackberry/RenderThemeBlackBerry.cpp:
21069         (WebCore::RenderThemeBlackBerry::paintSliderTrackRect):
21070         (WebCore::RenderThemeBlackBerry::paintSliderThumb):
21071
21072 2012-11-06  Michael Saboff  <msaboff@apple.com>
21073
21074         canonicalizedTitle() shouldn't convert 8 bit title strings to 16 bit
21075         https://bugs.webkit.org/show_bug.cgi?id=101105
21076
21077         Reviewed by Darin Adler.
21078
21079         Turned canonicalizedTitle() into a templated function based on character type.
21080         Changed call in updateTitle() to check the bitness of the title string to call
21081         the right template flavor of canonicalizedTitle().
21082         Made supporting changes by adding displayBufferModifiedByEncoding(LChar*, ...)
21083         and made TextEncoding::displayBuffer() a templated function as well.
21084
21085         No new tests needed, as functionality is unchanged.
21086
21087         * dom/Document.cpp:
21088         (WebCore::canonicalizedTitle):
21089         (WebCore::Document::updateTitle):
21090         (WebCore::Document::displayBufferModifiedByEncodingInternal):
21091         * dom/Document.h:
21092         (WebCore::Document::displayBufferModifiedByEncoding):
21093         * platform/text/TextEncoding.h:
21094         (TextEncoding):
21095         (WebCore::TextEncoding::displayBuffer):
21096
21097 2012-11-05  Simon Fraser  <simon.fraser@apple.com>
21098
21099         Fix RenderGeometryMap assertion when layers are scrolled during layout
21100         https://bugs.webkit.org/show_bug.cgi?id=101292
21101
21102         Reviewed by Beth Dakin.
21103
21104         When we set RenderLayer scroll positions as part of layout, we don't want
21105         to update compositing layers right away. Updating compositing layers
21106         requires that the entire layer tree has been updated from renderers,
21107         so that the geometry of all RenderLayers can be trusted. When this state
21108         was violated, RenderGeometryMap asserts.
21109         
21110         Fix by bailing from updateCompositingLayersAfterScroll() if FrameView
21111         tells us that we're doing layout. A full update of the compositing layers
21112         will happen later anyway.
21113
21114         Test: compositing/geometry/geometry-map-scroll-during-layout-assertion.html
21115
21116         * rendering/RenderLayer.cpp:
21117         (WebCore::frameViewFromLayer):
21118         (WebCore::RenderLayer::updateCompositingLayersAfterScroll):
21119
21120 2012-11-06  Michael Saboff  <msaboff@apple.com>
21121
21122         quoteCSSString() always creates a 16 bit string
21123         https://bugs.webkit.org/show_bug.cgi?id=101004
21124
21125         Reviewed by Darin Adler.
21126
21127         Added a new templated helper based on character type from the logic of quoteCSSString() to process
21128         the argument string based on its native bitness.
21129
21130         Functionality covered by existing tests.
21131
21132         * css/CSSParser.cpp:
21133         (WebCore::quoteCSSStringInternal):
21134         (WebCore::quoteCSSString):
21135
21136 2012-11-06  Andras Becsi  <andras.becsi@digia.com>
21137
21138         [Qt][WK2] Fit-to-width broken on pages with viewport meta tag
21139         https://bugs.webkit.org/show_bug.cgi?id=99715
21140
21141         Reviewed by Jocelyn Turcotte.
21142
21143         Add a bool that indicates if the content had an explicit
21144         initial-scale in the viewport meta tag.
21145
21146         * dom/ViewportArguments.cpp:
21147         (WebCore::computeViewportAttributes):
21148         * dom/ViewportArguments.h:
21149         (ViewportAttributes):
21150
21151 2012-11-06  Mike West  <mkwst@chromium.org>
21152
21153         CSP 1.1: Tweak the script interface to match the spec.
21154         https://bugs.webkit.org/show_bug.cgi?id=101321
21155
21156         Reviewed by Adam Barth.
21157
21158        This patch brings WebKit in line with the changes made to the spec in
21159        https://dvcs.w3.org/hg/content-security-policy/rev/5a29424a37d4.
21160        Specifically, the following:
21161
21162        - Renamed 'document.SecurityPolicy' to 'document.securityPolicy'
21163        - Converted the following to read-only boolean attributes:
21164          - 'allowsEval'
21165          - 'allowsInlineScript'
21166          - 'allowsInlineStyle'
21167          - 'isActive'
21168
21169         These changes only have effect for ports with CSP_NEXT enabled.
21170
21171         Tests: http/tests/security/contentSecurityPolicy/1.1/securitypolicy-allowinlinescript.html
21172                http/tests/security/contentSecurityPolicy/1.1/securitypolicy-allowinlinestyle.html
21173
21174         * dom/Document.idl:
21175         * page/DOMSecurityPolicy.idl:
21176             Tweaking the IDL files to match the new definition of the
21177             functionlity in the spec.
21178
21179 2012-11-06  Andrey Lushnikov  <lushnikov@google.com>
21180
21181         Added console.clear() method
21182
21183         Web Inspector: add console.clear()
21184         https://bugs.webkit.org/show_bug.cgi?id=101021
21185
21186         Reviewed by Vsevolod Vlasov.
21187
21188         Adds native implementation of console.clear
21189
21190         Test: inspector/console/console-clear-function.html
21191
21192         * English.lproj/localizedStrings.js: Adds 'Console was cleared' string
21193         * inspector/ConsoleMessage.cpp:
21194         (WebCore::messageTypeValue): Adds ClearMessageType
21195         * inspector/Inspector.json:
21196         * inspector/InspectorConsoleAgent.cpp:
21197         (WebCore::InspectorConsoleAgent::addMessageToConsole):
21198         * inspector/front-end/ConsoleMessage.js:
21199         (WebInspector.ConsoleMessageImpl.prototype._formatMessage): Display strategy for "clear" message
21200         * inspector/front-end/ConsoleModel.js:
21201         * inspector/front-end/inspector.css:
21202         (.console-info): Adds style for the 'console was cleared' message
21203         * page/Console.cpp: backend binging for console.clear()
21204         (WebCore::Console::clear):
21205         (WebCore):
21206         * page/Console.h:
21207         (Console):
21208         * page/Console.idl: Adds 'clear' message to protocol
21209         * page/ConsoleTypes.h:
21210
21211 2012-11-06  Aaron Colwell  <acolwell@chromium.org>
21212
21213         Heap-buffer-overflow in WebCore::TextTrackCueList::add
21214         https://bugs.webkit.org/show_bug.cgi?id=101018
21215
21216         Reviewed by Eric Carlson.
21217
21218         Added an extra check to avoid using a negative array index when a cue
21219         is added to the beginning of the list.
21220
21221         Test case added to LayoutTests/media/track/track-add-remove-cue.html.
21222
21223         * html/track/TextTrackCueList.cpp:
21224         (WebCore::TextTrackCueList::add):
21225
21226 2012-11-06  Aaron Colwell  <acolwell@chromium.org>
21227
21228         Regression(r132681): Heap-use-after-free in WebCore::RenderTextTrackCue::layout
21229         https://bugs.webkit.org/show_bug.cgi?id=100981
21230
21231         Reviewed by Eric Carlson.
21232
21233         Fixing a TextTrackCue use after free bug. textTrackRemoveCues() needs to be called when
21234         an HTMLTrackElement is removed from an HTMLMediaElement so that references to
21235         TextTrackCues are removed from m_cueTree.
21236
21237         Test: media/track/track-remove-by-setting-innerHTML.html
21238
21239         * html/HTMLMediaElement.cpp:
21240         (WebCore::HTMLMediaElement::willRemoveTrack):
21241
21242 2012-10-23  Stephen White  <senorblanco@chromium.org>
21243
21244         [skia] Implement reference (url) filters on composited layers.
21245         https://bugs.webkit.org/show_bug.cgi?id=100142
21246
21247         Reviewed by James Robinson.
21248
21249         Covered by css3/filters/effect-reference-hw.html
21250
21251         * WebCore.gyp/WebCore.gyp:
21252         * WebCore.gypi:
21253         Add new files.
21254         * WebCore.xcodeproj/project.pbxproj:
21255         Mark FilterEffect.h as "private".
21256         * platform/graphics/chromium/GraphicsLayerChromium.cpp:
21257         (WebCore::GraphicsLayerChromium::setFilters):
21258         Use the new SkImageFilter builder and setLayer() infrastructure, but
21259         only if there's a reference filter in the chain.
21260         * platform/graphics/filters/FEBlend.h:
21261         * platform/graphics/filters/FEColorMatrix.h:
21262         * platform/graphics/filters/FEGaussianBlur.h:
21263         * platform/graphics/filters/FELighting.h:
21264         * platform/graphics/filters/FEMorphology.h:
21265         * platform/graphics/filters/FilterEffect.h:
21266         (WebCore::FilterEffect::createImageFilter):
21267         Add createImageFilter() factory function for building SkImageFilters.
21268         * platform/graphics/filters/FilterOperation.h:
21269         (WebCore::FilterOperation::ReferenceFilterOperation::filterEffect):
21270         (WebCore::FilterOperation::ReferenceFilterOperation::setFilterEffect):
21271         Add a FilterEffect member to ReferenceFilterOperation, and accessors
21272         for it.
21273         * platform/graphics/filters/skia/FEBlendSkia.cpp:
21274         (WebCore::FEBlend::createImageFilter):
21275         Implement SkImageFilter building for FEBlend filter.
21276         * platform/graphics/filters/skia/FEColorMatrixSkia.cpp:
21277         (WebCore::createColorFilter):
21278         (WebCore::FEColorMatrix::platformApplySkia):
21279         Refactor creation of SkColorFilter from an FEColorMatrix filter.
21280         (WebCore::FEColorMatrix::createImageFilter):
21281         Implement SkImageFilter building for FEColorMatrix filter.
21282         * platform/graphics/filters/skia/FEGaussianBlurSkia.cpp:
21283         (WebCore::FEGaussianBlur::createImageFilter):
21284         Implement SkImageFilter building for FEGaussianBlur filter.
21285         * platform/graphics/filters/skia/FELightingSkia.cpp:
21286         (WebCore::FELighting::createImageFilter):
21287         Implement SkImageFilter building for FELighting filters.
21288         * platform/graphics/filters/skia/FEMorphologySkia.cpp:
21289         (WebCore::FEMorphology::createImageFilter):
21290         Implement SkImageFilter building for FEMorphology filter.
21291         * platform/graphics/filters/skia/SkiaImageFilterBuilder.cpp: Added.
21292         (WebCore::SkiaImageFilterBuilder::SkiaImageFilterBuilder):
21293         (WebCore::SkiaImageFilterBuilder::build):
21294         * platform/graphics/filters/skia/SkiaImageFilterBuilder.h:
21295         Implement new helper class for building an SkImageFilter DAG from
21296         a FilterEffect DAG.  Can also build from FilterOperations list.
21297         * rendering/FilterEffectRenderer.cpp:
21298         (WebCore::FilterEffectRenderer::build):
21299         When building FilterEffects from a reference filter, also store the
21300         generated DAG on the ReferenceFilterOperation itself.
21301         * rendering/RenderLayer.cpp:
21302         (WebCore::RenderLayer::updateOrRemoveFilterEffect):
21303         Even when in composited mode, if there's a reference filter in the 
21304         chain, build the FilterEffect DAG from it.
21305
21306 2012-11-06  Max Feil  <mfeil@rim.com>
21307
21308         [BlackBerry] Automatically go fullscreen on video play
21309         https://bugs.webkit.org/show_bug.cgi?id=101100
21310
21311         Reviewed by Eric Carlson.
21312
21313         There is a requirement to have HTML5 video automatically enter
21314         fullscreen when a video starts playing (PR131774). This change
21315         implements this feature, with restrictions. The main restriction
21316         is adherence to WebKit's philosophy of only entering fullscreen
21317         due to a user gesture. This is important in order to avoid
21318         pop-up advertisements and other unwanted fullscreen content.
21319         One consequence of this is that video elements with the autoplay
21320         attribute will not automatically enter fullscreen.
21321
21322         Other caveats:
21323         - This feature applies only to "small screen" devices where
21324         automatically going fullscreen makes more sense.
21325         - Fullscreen will only be entered automatically when the
21326         video is played from the beginning (current time is zero).
21327         It is assumed that if the user is resuming play from a paused
21328         state and is not in fullscreen mode, then they exited fullscreen
21329         mode intentionally.
21330
21331         Test: platform/blackberry/media/video-automatic-fullscreen.html
21332
21333         * html/HTMLMediaElement.cpp:
21334         (WebCore::HTMLMediaElement::mediaPlayerEnterFullscreen):
21335         (WebCore):
21336         (WebCore::HTMLMediaElement::mediaPlayerIsFullscreen):
21337         (WebCore::HTMLMediaElement::mediaPlayerIsFullscreenPermitted):
21338         * html/HTMLMediaElement.h:
21339         (HTMLMediaElement):
21340         * platform/graphics/MediaPlayer.h:
21341         (WebCore::MediaPlayerClient::mediaPlayerEnterFullscreen):
21342         (WebCore::MediaPlayerClient::mediaPlayerIsFullscreen):
21343         (WebCore::MediaPlayerClient::mediaPlayerIsFullscreenPermitted):
21344         * platform/graphics/blackberry/MediaPlayerPrivateBlackBerry.cpp:
21345         (WebCore::MediaPlayerPrivate::play):
21346         (WebCore::MediaPlayerPrivate::waitMetadataTimerFired):
21347         (WebCore::MediaPlayerPrivate::conditionallyGoFullscreenAfterPlay):
21348         (WebCore):
21349         * platform/graphics/blackberry/MediaPlayerPrivateBlackBerry.h:
21350         (MediaPlayerPrivate):
21351
21352 2012-11-06  Grzegorz Czajkowski  <g.czajkowski@samsung.com>
21353
21354         [WK2][EFL][GTK] early return of checkSpellingOfString treats correct words as misspelled
21355         https://bugs.webkit.org/show_bug.cgi?id=101215
21356
21357         Reviewed by Gustavo Noronha Silva.
21358
21359         Save the misspelled location and length of the string to the default values (-1, 0)
21360         at the beginning of the checkSpellingOfString method.
21361         It assumes that the words are spelled correctly and early return of method doesn't
21362         cause assertions in findFirstMisspelling (WebCore/editing/TextCheckingHelper.cpp).
21363
21364         * platform/text/enchant/TextCheckerEnchant.cpp:
21365         (TextCheckerEnchant::checkSpellingOfString):
21366
21367 2012-11-06  Huang Dongsung  <luxtella@company100.net>
21368
21369         [TexMap] Remove unused textures in the texture pool.
21370         https://bugs.webkit.org/show_bug.cgi?id=100706
21371
21372         Reviewed by Noam Rosenthal.
21373
21374         Currently, we do not remove textures in the texture pool of
21375         TextureMapper. The texture pool is destroyed when TextureMapper is
21376         destroyed. It means the texture pool consumes texture memory until its
21377         destruction. This patch removes textures if the textures have been not
21378         used in 3 seconds as LayerTreeCoordinator manages UpdateAtlases.
21379
21380         Changing cache policy is not testable in layout tests.
21381
21382         * platform/graphics/texmap/TextureMapper.cpp:
21383         (WebCore::BitmapTexturePoolEntry::BitmapTexturePoolEntry):
21384         (WebCore::BitmapTexturePoolEntry::markUsed):
21385         (WebCore::BitmapTexturePoolEntry::compareTimeLastUsed):
21386         (BitmapTexturePoolEntry):
21387         (WebCore):
21388         (BitmapTexturePool):
21389         (WebCore::BitmapTexturePool::BitmapTexturePool):
21390         (WebCore::BitmapTexturePool::scheduleReleaseUnusedTextures):
21391         (WebCore::BitmapTexturePool::releaseUnusedTexturesTimerFired):
21392         (WebCore::BitmapTexturePool::acquireTexture):
21393         (WebCore::TextureMapper::acquireTextureFromPool):
21394         (WebCore::TextureMapper::TextureMapper):
21395         (WebCore::TextureMapper::~TextureMapper):
21396         * platform/graphics/texmap/TextureMapper.h:
21397         (WebCore):
21398         (TextureMapper):
21399
21400 2012-11-02  Ilya Tikhonovsky  <loislo@chromium.org>
21401
21402         Web Inspector: NMI instrument CachedMetadata. It uses ~300k on plus.google.com
21403         https://bugs.webkit.org/show_bug.cgi?id=101067
21404
21405         Reviewed by Yury Semikhatsky.
21406
21407         Plain vanilla instrumentation for CachedMetadata class.
21408
21409         * CMakeLists.txt:
21410         * GNUmakefile.list.am:
21411         * Target.pri:
21412         * WebCore.gypi:
21413         * WebCore.vcproj/WebCore.vcproj:
21414         * WebCore.xcodeproj/project.pbxproj:
21415         * loader/CachedMetadata.cpp: Added.
21416         (WebCore):
21417         (WebCore::CachedMetadata::reportMemoryUsage):
21418         * loader/CachedMetadata.h:
21419         (CachedMetadata):
21420
21421 2012-11-06  Alexei Filippov  <alph@chromium.org>
21422
21423         Web Inspector: report physical memory really committed for JS heap in NMI
21424         https://bugs.webkit.org/show_bug.cgi?id=101335
21425
21426         Some OSes (e.g. Linux) perform lazy commits of requested memory.
21427         Because of that the committed memory may not retain any physical
21428         memory until the very first access to the committed chunk.
21429         That led to JS heap reported more physical memory than was currently
21430         in use.
21431
21432         Reviewed by Vsevolod Vlasov.
21433
21434         * bindings/v8/ScriptGCEvent.cpp:
21435         (WebCore::ScriptGCEvent::getHeapSize):
21436
21437 2012-11-06  Vsevolod Vlasov  <vsevik@chromium.org>
21438
21439         Web Inspector: Breakpoint is not removed when it was set in non-formatted mode and then removed while in formatted mode.
21440         https://bugs.webkit.org/show_bug.cgi?id=100595
21441
21442         Reviewed by Yury Semikhatsky.
21443
21444         Breakpoints in storage are now updated/removed by file name saved from primary location when they were created,
21445         not by the name returned by UISourceCode (as this one could change when UISourceCode is formatted).
21446         SourceFileId is now used across BreakpointManager to specify file name.
21447         And breakpointStorageId is now used to specify (fileName, lineNumber) pair.
21448
21449         * inspector/front-end/BreakpointManager.js:
21450         (WebInspector.BreakpointManager.sourceFileId):
21451         (WebInspector.BreakpointManager.prototype._restoreBreakpoints):
21452         (WebInspector.BreakpointManager.prototype._uiSourceCodeRemoved): Removed redundant check.
21453         (WebInspector.BreakpointManager.prototype.breakpointLocationsForUISourceCode):
21454         (WebInspector.BreakpointManager.Breakpoint):
21455         (WebInspector.BreakpointManager.Breakpoint.prototype._breakpointStorageId):
21456         (WebInspector.BreakpointManager.Storage.prototype._restoreBreakpoints):
21457         (set WebInspector.BreakpointManager.Storage.Item):
21458
21459 2012-11-06  Keishi Hattori  <keishi@webkit.org>
21460
21461         The "Rect" class in WebCore/Resources/pagepopups/pickerCommon.js should be renamed
21462         https://bugs.webkit.org/show_bug.cgi?id=101304
21463
21464         Reviewed by Kent Tamura.
21465
21466         The name Rect conflicts with CSS Rect.
21467
21468         No new tests. Just renaming.
21469
21470         * Resources/pagepopups/pickerCommon.js:
21471         (Rectangle): Renamed from Rect.
21472         (Rectangle.prototype.toString):
21473         (Rectangle.intersection):
21474         (adjustWindowRect):
21475         (hideWindow):
21476
21477 2012-11-06  Kentaro Hara  <haraken@chromium.org>
21478
21479         Replace setDOMWrapper(wrapper, 0) with resetDOMWrapper(wrapper)
21480         https://bugs.webkit.org/show_bug.cgi?id=101190
21481
21482         Reviewed by Adam Barth.
21483
21484         To guarantee that we never stores NULL pointers to V8 internal
21485         fields, we want to insert ASSERT()s to setDOMWrapper().
21486         This patch replaces setDOMWrapper() that intentionally
21487         passes NULL pointers with clearDOMWrapper().
21488
21489         No tests. No change in behavior.
21490
21491         * bindings/v8/V8DOMWrapper.h:
21492         (V8DOMWrapper):
21493         (WebCore::V8DOMWrapper::clearDOMWrapper):
21494         * bindings/v8/V8NPObject.cpp:
21495         (WebCore::forgetV8ObjectForNPObject):
21496
21497 2012-11-06  Vsevolod Vlasov  <vsevik@chromium.org>
21498
21499         Web Inspector: Displayed name/path of urls in network tab of dev tools is inconsistent
21500         https://bugs.webkit.org/show_bug.cgi?id=101064
21501
21502         Reviewed by Yury Semikhatsky.
21503
21504         Extracted some generic methods from ParsedURL displayName getters (about:blank and data url handlers).
21505         Implemented consistent name() and path() method on NetworkRequest based on ParsedURL.
21506         NetworkPanel now uses name() and path() methods on NetworkRequest to show requests and search for them.
21507
21508         Test: http/tests/inspector/network/request-name-path.html
21509
21510         * inspector/front-end/NetworkPanel.js:
21511         (WebInspector.NetworkLogView.prototype._matchRequest):
21512         (WebInspector.NetworkLogView.prototype._highlightMatchedRequests):
21513         (WebInspector.NetworkLogView.prototype.performFilter):
21514         (WebInspector.NetworkDataGridNode.prototype._refreshNameCell):
21515         (WebInspector.NetworkDataGridNode.NameComparator):
21516         * inspector/front-end/NetworkRequest.js:
21517         (WebInspector.NetworkRequest.prototype.set url):
21518         (WebInspector.NetworkRequest.prototype.name):
21519         (WebInspector.NetworkRequest.prototype.path):
21520         (WebInspector.NetworkRequest.prototype._parseNameAndPathFromURL):
21521         * inspector/front-end/ParsedURL.js:
21522         (WebInspector.ParsedURL):
21523         (WebInspector.ParsedURL.prototype.get displayName):
21524         (WebInspector.ParsedURL.prototype.dataURLDisplayName):
21525         (WebInspector.ParsedURL.prototype.isAboutBlank):
21526         (WebInspector.ParsedURL.prototype.isDataURL):
21527
21528 2012-11-05  Pavel Feldman  <pfeldman@chromium.org>
21529
21530         Web Inspector: make Spectrum and Popover WebInspector.Views in order to enable reuse
21531         https://bugs.webkit.org/show_bug.cgi?id=101200
21532
21533         Reviewed by Yury Semikhatsky.
21534
21535         - Split Spectrum and SpectrumPopoverHelper (first is a component, second is controller)
21536         - Made Popover a root view in order to enable lazy style loading for potential subviews (such as Spectrum)
21537         - Extracted spectrum's css into a separate file
21538
21539         * WebCore.gypi:
21540         * WebCore.vcproj/WebCore.vcproj:
21541         * inspector/front-end/DOMExtension.js:
21542         (Element.prototype.positionAt):
21543         (Size):
21544         (Element.prototype.measurePreferredSize):
21545         * inspector/front-end/HeapSnapshotView.js:
21546         (WebInspector.HeapSnapshotView.prototype.willHide):
21547         (WebInspector.HeapSnapshotView.prototype._helpClicked):
21548         * inspector/front-end/Popover.js:
21549         (WebInspector.Popover):
21550         (WebInspector.Popover.prototype.show):
21551         (WebInspector.Popover.prototype.showView):
21552         (WebInspector.Popover.prototype._innerShow):
21553         (WebInspector.Popover.prototype.hide):
21554         (WebInspector.Popover.prototype.dispose):
21555         (WebInspector.Popover.prototype._positionElement):
21556         * inspector/front-end/Spectrum.js:
21557         (WebInspector.Spectrum.alphaDrag):
21558         (WebInspector.Spectrum):
21559         (WebInspector.Spectrum.prototype.wasShown):
21560         (WebInspector.SpectrumPopupHelper):
21561         (WebInspector.SpectrumPopupHelper.prototype.spectrum):
21562         (WebInspector.SpectrumPopupHelper.prototype.toggle):
21563         (WebInspector.SpectrumPopupHelper.prototype.show):
21564         (WebInspector.SpectrumPopupHelper.prototype.reposition):
21565         (WebInspector.SpectrumPopupHelper.prototype.hide):
21566         (WebInspector.ColorSwatch):
21567         (WebInspector.ColorSwatch.prototype.setColorString):
21568         * inspector/front-end/StylesSidebarPane.js:
21569         (WebInspector.StylesSidebarPane):
21570         (WebInspector.StylesSidebarPane.prototype.update):
21571         (WebInspector.StylesSidebarPane.prototype.willHide):
21572         (WebInspector.StylePropertyTreeElement.prototype.updateTitle.):
21573         * inspector/front-end/View.js:
21574         (WebInspector.View.prototype.measurePreferredSize):
21575         * inspector/front-end/WebKit.qrc:
21576         * inspector/front-end/elementsPanel.css:
21577         (.image-preview-container img):
21578         * inspector/front-end/inspector.css:
21579         (.swatch):
21580         (.swatch-inner):
21581         (.swatch-inner:hover):
21582         * inspector/front-end/spectrum.css: Added.
21583         (.spectrum-container):
21584         (.spectrum-top):
21585         (.spectrum-color):
21586         (.spectrum-display-value):
21587         (.spectrum-hue):
21588         (.spectrum-fill):
21589         (.spectrum-range-container):
21590         (.spectrum-range-container *):
21591         (.spectrum-range-container label):
21592         (.spectrum-range-container input):
21593         (.spectrum-dragger, .spectrum-slider):
21594         (.spectrum-sat):
21595         (.spectrum-val):
21596         (.spectrum-dragger):
21597         (.spectrum-slider):
21598         (.spectrum-container .swatch):
21599
21600 2012-11-06  Takashi Sakamoto  <tasak@google.com>
21601
21602         removeAttribute('style') not working in certain circumstances
21603         https://bugs.webkit.org/show_bug.cgi?id=99295
21604
21605         Reviewed by Ryosuke Niwa.
21606
21607         After web developers did style.XXXX=YYYY for some element, the inline
21608         style should be always removable by using "removeAttribute('style')".
21609         Currently it depends on whether web developers invokes
21610         getAttribute('style'), setAttribute('style), and so on. E.g. once they
21611         invoke getAttribute('style'), removeAttribute('style') works. This is
21612         very confusing behavior.
21613         Looking at Firefox browser, removeAttribute('style') always removes
21614         all inline styles.
21615
21616         Test: fast/css/remove-attribute-style.html
21617
21618         * css/StylePropertySet.cpp:
21619         (WebCore::StylePropertySet::clear):
21620         Added a new method to remove all style properties.
21621         (WebCore):
21622         * css/StylePropertySet.h:
21623         (StylePropertySet):
21624         * dom/Element.cpp:
21625         (WebCore::Element::removeAttribute):
21626         If 'style' is given but the element has no style attribute, the old
21627         code did nothing. However, if the element is styled element and has any
21628         inline styles, the inline styles should be removed. So invoke
21629         StyledElement::removeAllInlineStyleProperties and if any inline styles
21630         are removed, invoke style recalc, too.
21631         * dom/StyledElement.cpp:
21632         (WebCore::StyledElement::removeAllInlineStyleProperties):
21633         Added a new method to remove all inline style propeties. If any inline
21634         style is removed, invoke inlineStyleChanged() to force style recalc.
21635         (WebCore):
21636         * dom/StyledElement.h:
21637         (StyledElement):
21638
21639 2012-11-06  Alexei Filippov  <alph@chromium.org>
21640
21641         Web Inspector: dim size bar for expanded item in native memory snapshot grid
21642         https://bugs.webkit.org/show_bug.cgi?id=101062
21643
21644         Reviewed by Yury Semikhatsky.
21645
21646         * inspector/front-end/nativeMemoryProfiler.css:
21647         (.native-snapshot-view .data-grid .expanded div.size-bar):
21648
21649 2012-11-06  Shinya Kawanaka  <shinyak@chromium.org>
21650
21651         [Shadow] Using isUnknownPseudoElement() for shadow pseudo id seems confusing
21652         https://bugs.webkit.org/show_bug.cgi?id=100826
21653
21654         Reviewed by Hajime Morita.
21655
21656         We used isUnknownPseudoElement() for these 3 meanings: 1) the element is a custom pseudo-element (starting with 'x-'),
21657         2) the element is a webkit custom pseudo-element (starting with '-webkit-'), and 3) the element has an unknown type.
21658         We would like to distinguish them when parsing CSSSelector types. Also, we disable using (3) type for using
21659         shadowPseudoId.
21660
21661         In this patch, we allow using WebKitCustomPseudoElement in AuthorShadowRoot, and CustomPseudoElement in
21662         UAShadowRoot. However, we will disable them later.
21663
21664         Test: fast/dom/shadow/shadow-pseudo-id.html
21665
21666         * css/CSSGrammar.y.in: Now we can discard UNKNOWN type. It should not match anything.
21667         * css/CSSParser.cpp:
21668         (WebCore::CSSParser::updateSpecifiersWithElementName):
21669         (WebCore::CSSParser::updateSpecifiers):
21670         * css/CSSParserValues.h:
21671         (WebCore::CSSParserSelector::isCustomPseudoElement):
21672         (CSSParserSelector):
21673         * css/CSSSelector.cpp:
21674         (WebCore::CSSSelector::pseudoId):
21675         (WebCore::CSSSelector::parsePseudoType):
21676         (WebCore::CSSSelector::isCustomPseudoType): Returns true if the type is PseudoUserAgentCustomElement or PseudoWebKitCustomElement.
21677         (WebCore::CSSSelector::extractPseudoType):
21678         * css/CSSSelector.h:
21679         (CSSSelector):
21680         (WebCore::CSSSelector::isCustomPseudoElement):
21681         (WebCore):
21682         * css/CSSSelectorList.cpp:
21683         (WebCore::SelectorHasInvalidSelectorFunctor::operator()): We will reject all selectors which were judged as
21684         UNKNOWN before. i.e. It contians all three types for now.
21685         (WebCore::CSSSelectorList::hasInvalidSelector): Renamed.
21686         * css/CSSSelectorList.h:
21687         (CSSSelectorList):
21688         * css/RuleSet.cpp:
21689         (WebCore::RuleSet::addRule):
21690         * css/SelectorChecker.cpp:
21691         (WebCore::SelectorChecker::checkSelector):
21692         * dom/Element.cpp:
21693         (WebCore::Element::setShadowPseudoId):
21694         * dom/SelectorQuery.cpp:
21695         (WebCore::SelectorQueryCache::add):
21696
21697 2012-11-06  Shinya Kawanaka  <shinyak@chromium.org>
21698
21699         [Shadow] ShadowRoot should know the existence of elements having ElementShadow.
21700         https://bugs.webkit.org/show_bug.cgi?id=100922
21701
21702         Reviewed by Hajime Morita.
21703
21704         We count the elements having ElementShadow in ShadowRoot. This is a prepation patch for to solve Bug 100451.
21705         We have a count-up and count-down login in ShadowRoot::insertedInto and ShadowRoot::removedFrom.
21706
21707         For performance reason, we have a flag that an element should be unregistered in ShadowRoot.
21708
21709         Test: fast/dom/shadow/has-elementshadow.html
21710
21711         * dom/ShadowRoot.cpp:
21712         (WebCore::ShadowRoot::ShadowRoot):
21713         (WebCore::ShadowRoot::insertedInto): Count up the number of elements having ElementShadow. ElementShadow
21714         is created only when the oldest ShadowRoot is created, we only count up only when this ShadowRoot is oldest.
21715         (WebCore):
21716         (WebCore::ShadowRoot::removedFrom): Count down if we used this ShadowRoot for count up.
21717         * dom/ShadowRoot.h:
21718         (ShadowRoot):
21719         (WebCore::ShadowRoot::registerElementShadow):
21720         (WebCore::ShadowRoot::unregisterElementShadow):
21721         (WebCore::ShadowRoot::hasElementShadow):
21722         (WebCore::ShadowRoot::countElementShadow):
21723         * testing/Internals.cpp:
21724         (WebCore::Internals::countElementShadow):
21725         (WebCore):
21726         * testing/Internals.h:
21727         (Internals):
21728         * testing/Internals.idl:
21729
21730 2012-11-06  Pavel Feldman  <pfeldman@chromium.org>
21731
21732         Web Inspector: show "debugging session terminated" message when remote debuggign connection is closed unexpectedly.
21733         https://bugs.webkit.org/show_bug.cgi?id=101030
21734
21735         Reviewed by Vsevolod Vlasov.
21736
21737         * inspector/front-end/inspector.js:
21738         (WebInspector.loaded.WebInspector.socket.onclose):
21739         (WebInspector.loaded):
21740         (WebInspector.detached):
21741
21742 2012-11-06  Alexander Pavlov  <apavlov@chromium.org>
21743
21744         Web Inspector: [Overrides] Add Chrome for Android and Firefox for Android user agent strings
21745         https://bugs.webkit.org/show_bug.cgi?id=100666
21746
21747         Reviewed by Pavel Feldman.
21748
21749         * inspector/front-end/SettingsScreen.js:
21750         (WebInspector.UserAgentSettingsTab.prototype._createUserAgentSelectRowElement.get const):
21751
21752 2012-11-02  Yury Semikhatsky  <yurys@chromium.org>
21753
21754         Web Inspector: JavaScript web workers debugging crashes
21755         https://bugs.webkit.org/show_bug.cgi?id=101065
21756
21757         Reviewed by Alexander Pavlov.
21758
21759         Clear m_pageInspector when page inspector instance is deleted.
21760         Disable worker inspection when front-end disconnects.
21761
21762         Test: inspector-protocol/debugger-terminate-dedicated-worker-while-paused.html
21763
21764         * inspector/InspectorWorkerAgent.cpp:
21765         (WebCore::InspectorWorkerAgent::WorkerFrontendChannel::~WorkerFrontendChannel): notify
21766         WorkerMessagingProxy so that it can clear pointer to the channel.
21767
21768 2012-11-06  Nikita Vasilyev  <me@elv1s.ru>
21769
21770         Web Inspector: Console: wrap long URLs
21771         https://bugs.webkit.org/show_bug.cgi?id=100970
21772
21773         Reviewed by Yury Semikhatsky.
21774
21775         * inspector/front-end/inspector.css:
21776         (.console-message-url):
21777
21778 2012-11-05  Keishi Hattori  <keishi@webkit.org>
21779
21780         Introduce Day class to calendar picker
21781         https://bugs.webkit.org/show_bug.cgi?id=101194
21782
21783         Reviewed by Kent Tamura.
21784
21785         Introducing Day class so day, week, and month can all be abstracted. To
21786         solve some of the complexity around which months to show, I made
21787         CalendarPicker in charge of it. This also made YearMonthController and
21788         DaysTable independent of each other.
21789
21790         No new tests. Covered by existing calendar-picker-*.html tests.
21791
21792         * Resources/pagepopups/calendarPicker.js:
21793         (createUTCDate): Allow negative month or date.
21794         (parseDateString): Will return Day or Month depending on string format.
21795         (Day): Represents a day.
21796         (Day.parse): Parse yyyy-mm-dd.
21797         (Day.createFromDate): Creates a Day that contains a datetime.
21798         (Day.createFromToday): Creates Day for today. A method with the same name will be added to Week and Month in the future.
21799         (Day.prototype.equals): Returns true if they are the same.
21800         (Day.prototype.previous): Returns the previous day.
21801         (Day.prototype.next): Returns the next day.
21802         (Day.prototype.startDate): Returns the datetime that is the start of this day.
21803         (Day.prototype.endDate): Returns the datetime that is the start of this day.
21804         (Day.prototype.valueOf): Returns the milliseconds since epoch.
21805         (Day.prototype.toString): Returns an ISO date string.
21806         (Month): Fix bug in calculating month from value.
21807         (Month.prototype.endDate): Use Day.Maximum.
21808         (CalendarPicker): Added _currentMonth. yearMonthController and daysTable can be private members now.
21809         (CalendarPicker.prototype._layout):
21810         (CalendarPicker.prototype.handleToday): Use Day.createFromToday.
21811         (CalendarPicker.prototype.shouldShowMonth): Returns true if the month should be shown.
21812         (CalendarPicker.prototype.showMonth): Shows the given month. If the month is out of the range of months that should be shown, we clamp the month and show that.
21813         (CalendarPicker.prototype.currentMonth): Returns the current month that is shown.
21814         (YearMonthController): Removed _currentMonth.
21815         (YearMonthController.prototype.attachTo):
21816         (YearMonthController.prototype.setMonth):
21817         (YearMonthController.prototype._handleYearMonthChange): Use CalendarPicker.showMonth
21818         (YearMonthController.prototype.moveRelatively):
21819         (DaysTable):
21820         (CalendarPicker.prototype._stepMismatch): Made private.
21821         (CalendarPicker.prototype._outOfRange): Made private.
21822         (CalendarPicker.prototype.isValidDate): Take Day or Month instead of milliseconds since epoch.
21823         (DaysTable.prototype._renderMonth):
21824         (DaysTable.prototype.navigateToMonth): Shows a given month. Can use animation and leave the selection position as is.
21825         (DaysTable.prototype.selectRange): Select a range.
21826         (DaysTable.prototype._maybeSetPreviousMonth):
21827         (DaysTable.prototype._maybeSetNextMonth):
21828         (DaysTable.prototype._handleKey):
21829         (CalendarPicker.prototype._handleBodyKeyDown):
21830
21831 2012-11-05  Kenichi Ishibashi  <bashi@chromium.org>
21832
21833         Unreviewed, Adding #if PLATFORM(CHROMIUM) for the fix of
21834         https://bugs.webkit.org/show_bug.cgi?id=101009
21835
21836         This fix requires the most recent version of harfbuzz-ng.
21837         EFL port uses version 0.9.2, which doesn't have the fix.
21838
21839         * platform/graphics/harfbuzz/ng/HarfBuzzShaper.cpp:
21840         (WebCore::HarfBuzzShaper::shapeHarfBuzzRuns):
21841
21842 2012-11-05  Glenn Adams  <glenn@skynav.com>
21843
21844         Ensure acquireLineBreakIterator signature consistency on non-ICU ports.
21845         https://bugs.webkit.org/show_bug.cgi?id=101281
21846
21847         Reviewed by Ryosuke Niwa.
21848
21849         Fix (newly) inconsistent signature for acquireLineBreakIterator for non-ICU ports
21850         caused by http://trac.webkit.org/changeset/133529.
21851
21852         See new tests added from https://bugs.webkit.org/show_bug.cgi?id=89235.
21853
21854         * platform/text/TextBreakIterator.cpp:
21855         (WebCore::acquireLineBreakIterator):
21856         * platform/text/gtk/TextBreakIteratorGtk.cpp:
21857         (WebCore::setUpIterator):
21858         (WebCore::acquireLineBreakIterator):
21859         * platform/text/wince/TextBreakIteratorWinCE.cpp:
21860         (WebCore::acquireLineBreakIterator):
21861
21862 2012-11-05  Hayato Ito  <hayato@chromium.org>
21863
21864         Use switch/case statements instead of if/elseif in CSSSelector.cpp
21865         https://bugs.webkit.org/show_bug.cgi?id=100470
21866
21867         Reviewed by Ryosuke Niwa.
21868
21869         Minor clean up. We can get compiler warnings if we use switch/case statements here.
21870
21871         No changes to functionality, so no new tests.
21872
21873         * css/CSSSelector.cpp:
21874         (WebCore::CSSSelector::selectorText):
21875
21876 2012-11-05  Kenichi Ishibashi  <bashi@chromium.org>
21877
21878         [Chromium] Unicode combining diacritical aren't always combined on Linux
21879         https://bugs.webkit.org/show_bug.cgi?id=101009
21880
21881         Reviewed by Kent Tamura.
21882
21883         Add a space character to harfbuzzBuffer as pre-context. This will prevent
21884         harfbuzz from inserting dotted-circle.
21885
21886         Test: fast/text/international/combining-marks-position.html
21887
21888         * platform/graphics/harfbuzz/ng/HarfBuzzShaper.cpp:
21889         (WebCore::HarfBuzzShaper::shapeHarfBuzzRuns):
21890
21891 2012-11-05  Shinya Kawanaka  <shinyak@chromium.org>
21892
21893         LayoutTest fast/dom/shadow/shadowroot-type.html is failing on Windows
21894         https://bugs.webkit.org/show_bug.cgi?id=101201
21895
21896         Reviewed by Hajime Morita.
21897
21898         When we use a bit field for enum, Windows compiler seems returning some wrong value.
21899         We would like to avoid using a bit field for enum value.
21900
21901         * dom/ShadowRoot.cpp:
21902         (WebCore::ShadowRoot::create):
21903         * dom/ShadowRoot.h:
21904         (WebCore::ShadowRoot::type):
21905         (WebCore::ShadowRoot::setType):
21906         (ShadowRoot):
21907
21908 2012-11-05  Benjamin Poulain  <benjamin@webkit.org>
21909
21910         TransformOperationInfo's constructor is really slow
21911         https://bugs.webkit.org/show_bug.cgi?id=101143
21912
21913         Reviewed by Sam Weinig.
21914
21915         TransformOperationInfo() was slow for a few reasons:
21916         -The function used a lot of branches. The basic assumption is that the input
21917          is incorrect, thus every character is an opportunity to fail.
21918         -Every branch had to be tested in order. If the name was matching the last if()
21919          all the previous names had to be tested.
21920         -Since equalIgnoringCase() was used in every branch, it was forcing the case folding
21921          every time.
21922         -When the string is 16bits, the case folding was using ICU, which was incredibly inefficient.
21923
21924         This can be fixed by either
21925         1) Compute the lowercase name, then match it to a HashMap.
21926         2) Write a tree to quickly reduce the number of branch needed.
21927
21928         The first solution is not viable because 16bits strings case folding
21929         remains an important bottleneck.
21930
21931         Instead, the code now splits the names on simple characteristics to
21932         match any name in a limited number of branches.
21933
21934         The assumption is the input is correct, so & is used instead of && to
21935         avoid branches in favor of conditional instructions.
21936
21937         * css/CSSParser.cpp:
21938         (WebCore::TransformOperationInfo::TransformOperationInfo):
21939
21940 2012-11-05  Simon Fraser  <simon.fraser@apple.com>
21941
21942         RenderGeometryMap asserts when loading http://en.softonic.com/mac
21943         https://bugs.webkit.org/show_bug.cgi?id=101284
21944         <rdar://problem/11540560>
21945
21946         Reviewed by Tim Horton.
21947
21948         When FrameView::layout() calls document->updateStyleIfNeeded(), we
21949         can be in a state where FrameView::needsLayout() is false. However,
21950         this is a bad time to update compositing layers, because we're about
21951         to do layout, which will require us to update them again soon anyway,
21952         and some RenderLayers may not have been sized or positioned yet.
21953         
21954         Fix by adding a m_doingPreLayoutStyleUpdate member to FrameView,
21955         and toggling it around this call to updateStyleIfNeeded().
21956         Read this state in updateCompositingLayersAfterStyleChange(), which is
21957         now called unconditionally by recalcStyle(), but returns early
21958         if this flag is set, or layout is pending.
21959
21960         * dom/Document.cpp:
21961         (WebCore::Document::recalcStyle):
21962         * page/FrameView.cpp:
21963         (WebCore::FrameView::reset):
21964         (WebCore::FrameView::updateCompositingLayersAfterStyleChange):
21965         (WebCore::FrameView::layout):
21966         * page/FrameView.h:
21967         (FrameView):
21968
21969 2012-11-05  Beth Dakin  <bdakin@apple.com>
21970
21971         https://bugs.webkit.org/show_bug.cgi?id=101275
21972         Clean up ScrollingConstraints.h
21973
21974         Reviewed by Simon Fraser.
21975
21976         This class cleans up ScrollingConstraints.h by removing the constructors since the 
21977         compiler will generate those constructors for us anyway. The patch also makes the 
21978         two override functions private.
21979         * page/scrolling/ScrollingConstraints.h:
21980         (ViewportConstraints):
21981         (FixedPositionViewportConstraints):
21982         (StickyPositionViewportConstraints):
21983
21984 2012-11-05  Simon Fraser  <simon.fraser@apple.com>
21985
21986         Make Document::updateStyleIfNeeded() non-virtual
21987         https://bugs.webkit.org/show_bug.cgi?id=101273
21988
21989         Reviewed by Eric Seidel.
21990
21991         Document::updateStyleIfNeeded() has been virtual like forever, but
21992         no-one ever overrides it, so make it non-virtual.
21993
21994         * dom/Document.h:
21995         (Document):
21996
21997 2012-11-05  Philip Rogers  <pdr@google.com>
21998
21999         Unblock SVG external references
22000         https://bugs.webkit.org/show_bug.cgi?id=100635
22001
22002         Reviewed by Adam Barth.
22003
22004         This patch reverts r132849 and r132869 because the potential XSS issue
22005         turned out to not be an issue after all.
22006
22007         Covered by existing tests, many of which are re-whitelisted with this patch.
22008
22009         * loader/cache/CachedResourceLoader.cpp:
22010         (WebCore::CachedResourceLoader::canRequest):
22011
22012 2012-11-05  Beth Dakin  <bdakin@apple.com>
22013
22014         https://bugs.webkit.org/show_bug.cgi?id=101001
22015         Pages with position:fixed elements should still be able to scroll on 
22016         the scrolling thread
22017         -and corresponding-
22018         <rdar://problem/10857315>
22019
22020         Reviewed by Simon Fraser.
22021
22022         This patch adds two new classes. ScrollingStateFixedNode is a class 
22023         to represent fixed nodes in the state tree, and 
22024         ScrollingTreeFixedNode represents fixed node in the scrolling tree 
22025         over on the scrolling thread.
22026         * WebCore.xcodeproj/project.pbxproj:
22027
22028         When we are (non-programatically) scrolling fixed objects on the 
22029         scrolling thread, we do not want to do any work here. 
22030         * page/FrameView.cpp:
22031         (WebCore::FrameView::updateFixedElementsAfterScrolling):
22032
22033         Whenever we sync the position of the main frame's layer, we have to 
22034         do the same for scrolling tree children.
22035         * page/scrolling/ScrollingCoordinator.cpp:
22036         (WebCore::ScrollingCoordinator::updateMainFrameScrollPosition):
22037
22038         New ScrollingNodeType -- FixedNode, yay! And two new functions 
22039         specific to dealing with FixedNodes.
22040         * page/scrolling/ScrollingCoordinator.h:
22041         (WebCore::ScrollingCoordinator::updateViewportConstrainedNode):
22042         (WebCore::ScrollingCoordinator::syncChildPositions):
22043
22044         This is the new class that represents fixed nodes in the state tree. 
22045         All of the changed properties are stored within 
22046         FixedPositionViewportConstraints.
22047         * page/scrolling/ScrollingStateFixedNode.cpp: Added.
22048         (WebCore):
22049         (WebCore::ScrollingStateFixedNode::create):
22050         (WebCore::ScrollingStateFixedNode::ScrollingStateFixedNode):
22051         (WebCore::ScrollingStateFixedNode::~ScrollingStateFixedNode):
22052         (WebCore::ScrollingStateFixedNode::updateConstraints):
22053         (WebCore::ScrollingStateFixedNode::dumpProperties):
22054         * page/scrolling/ScrollingStateFixedNode.h: Added.
22055         (WebCore):
22056         (ScrollingStateFixedNode):
22057         (WebCore::ScrollingStateFixedNode::viewportConstraints):
22058         (WebCore::toScrollingStateFixedNode):
22059
22060         Make sure to create the right type of clone for each node.
22061         * page/scrolling/ScrollingStateNode.cpp:
22062         (WebCore::ScrollingStateNode::cloneAndReset):
22063
22064         Now that m_children may be anything other than null, I found this 
22065         bug. We encounter it when the parameter to removeChild is this and we 
22066         want to remove all of our children. In that case, this is obviously 
22067         not found in its own child array.
22068         (WebCore::ScrollingStateNode::removeChild):
22069
22070         ScrollingStateNode now caches the GraphicsLayer in addition to the 
22071         PlatformLayer. This will allow us to sync the GraphicsLayer position 
22072         at the appropriate times.
22073         * page/scrolling/ScrollingStateNode.h:
22074         (WebCore::ScrollingStateNode::isScrollingStateFixedNode):
22075         (WebCore::ScrollingStateNode::graphicsLayer):
22076         (ScrollingStateNode):
22077
22078         Handle fixed nodes.
22079         * page/scrolling/ScrollingTree.cpp:
22080         (WebCore::ScrollingTree::updateTreeFromStateNode):
22081
22082         New function parentScrollPositionDidChange() is called on children 
22083         when the parent has scrolled.
22084         * page/scrolling/ScrollingTreeNode.h:
22085         (ScrollingTreeNode):
22086         * page/scrolling/ScrollingTreeScrollingNode.h:
22087         (ScrollingTreeScrollingNode):
22088
22089         Return true for supportsFixedPositionLayers(). 
22090         * page/scrolling/mac/ScrollingCoordinatorMac.h:
22091         (ScrollingCoordinatorMac):
22092
22093         Handle fixed nodes.
22094         * page/scrolling/mac/ScrollingCoordinatorMac.mm:
22095         (WebCore::ScrollingCoordinatorMac::attachToStateTree):
22096
22097         Now that m_children can be non-null I caught this pre-existing bug 
22098         where we would come times remove a node without updating the HashMap. 
22099         This patch fixes that by consolidating the removal into one function.
22100         (WebCore::ScrollingCoordinatorMac::removeNode):
22101         (WebCore::ScrollingCoordinatorMac::detachFromStateTree):
22102         (WebCore::ScrollingCoordinatorMac::clearStateTree):
22103
22104         Update the GraphicsLayers to reflect the new position that the 
22105         Scrolling thread has moved the underlying CALayer to already.
22106         (WebCore::ScrollingCoordinatorMac::syncChildPositions):
22107
22108         Pass new constraints over to the appropriate state node.
22109         (WebCore::ScrollingCoordinatorMac::updateViewportConstrainedNode):
22110
22111         Cache the GraphicsLayer in addition to the PlatformLayer.
22112         * page/scrolling/mac/ScrollingStateNodeMac.mm:
22113         (WebCore::ScrollingStateNode::setScrollLayer):
22114
22115         Here is the new class that represents fixed nodes over on the 
22116         scrolling thread. 
22117         * page/scrolling/mac/ScrollingTreeFixedNode.h: Added.
22118         (WebCore):
22119         (ScrollingTreeFixedNode):
22120         * page/scrolling/mac/ScrollingTreeFixedNode.mm: Added.
22121         (WebCore):
22122         (WebCore::ScrollingTreeFixedNode::create):
22123         (WebCore::ScrollingTreeFixedNode::ScrollingTreeFixedNode):
22124         (WebCore::ScrollingTreeFixedNode::~ScrollingTreeFixedNode):
22125         (WebCore::ScrollingTreeFixedNode::update):
22126
22127         This is where the magic happens. re-position the fixed object when 
22128         its parent has scrolled so that it appears to have not moved at all.
22129         (WebCore::ScrollingTreeFixedNode::parentScrollPositionDidChange):
22130
22131         Whenever we change the position of a scrolling layer, tell our 
22132         children.
22133         * page/scrolling/mac/ScrollingTreeScrollingNodeMac.mm:
22134         (WebCore::ScrollingTreeScrollingNodeMac::setScrollLayerPosition):
22135
22136         Handle fixed nodes.
22137         * rendering/RenderLayerBacking.cpp:
22138         (WebCore::RenderLayerBacking::attachToScrollingCoordinator):
22139
22140         detachFromScrollingCoordinator() needs to be public so that it can be 
22141         called from RenderLayerCompositor for fixed nodes.
22142         * rendering/RenderLayerBacking.h:
22143         (RenderLayerBacking):
22144
22145         RenderLayerCompositor takes control of attaching and detaching fixed 
22146         nodes to/from the ScrollingCoordinator. 
22147         * rendering/RenderLayerCompositor.cpp:
22148         (WebCore::RenderLayerCompositor::flushPendingLayerChanges):
22149         (WebCore::RenderLayerCompositor::didFlushChangesForLayer):
22150         (WebCore::RenderLayerCompositor::updateBacking):
22151         (WebCore::RenderLayerCompositor::layerWillBeRemoved):
22152         (WebCore::RenderLayerCompositor::didMoveOnscreen):
22153         (WebCore::RenderLayerCompositor::willMoveOffscreen):
22154         (WebCore::RenderLayerCompositor::clearBackingForLayerIncludingDescendants):
22155         (WebCore::isRootmostFixedOrStickyLayer):
22156         (WebCore):
22157         (WebCore::RenderLayerCompositor::updateViewportConstraintStatus):
22158         (WebCore::RenderLayerCompositor::addViewportConstrainedLayer):
22159         (WebCore::RenderLayerCompositor::removeViewportConstrainedLayer):
22160         (WebCore::RenderLayerCompositor::computeViewportConstraints):
22161         (WebCore::nearestScrollingCoordinatorAncestor):
22162         (WebCore::RenderLayerCompositor::registerOrUpdateViewportConstrainedLayer):
22163         (WebCore::RenderLayerCompositor::unregisterViewportConstrainedLayer):
22164         (WebCore::RenderLayerCompositor::registerAllViewportConstrainedLayers):
22165         (WebCore::RenderLayerCompositor::unregisterAllViewportConstrainedLayers):
22166         * rendering/RenderLayerCompositor.h:
22167         (WebCore):
22168         (RenderLayerCompositor):
22169
22170 2012-11-05  Geoffrey Garen  <ggaren@apple.com>
22171
22172         Cleaned up the Font class in preparation for optimizing kerning and ligatures
22173         https://bugs.webkit.org/show_bug.cgi?id=101258
22174
22175         Reviewed by Dan Bernstein.
22176
22177         * platform/graphics/Font.h:
22178         (WebCore::Font::typesettingFeatures):
22179         (WebCore::Font::computeTypesettingFeatures): Compute and cache our
22180         typesetting features instead of recomputing each time a client asks
22181         for them. This makes the class interface easier to use because
22182         "typesettingFeatures()" can appear in more than one expression without
22183         undue performance cost. This may also be a small speedup to code that
22184         calls typesettingFeatures() often for other reasons.
22185
22186         * platform/graphics/Font.cpp:
22187         (WebCore::Font::Font):
22188         (WebCore::Font::operator=):
22189         (WebCore::Font::update): Ditto.
22190
22191         (WebCore::Font::width): Unforked the width() function so all width-related
22192         interfaces can benefit from optimization without duplicate code.
22193
22194 2012-11-05  Peng Huang  <penghuang@google.com>
22195
22196         Webkit does not handle some media keys correctly On Linux gtk platform.
22197         https://bugs.webkit.org/show_bug.cgi?id=101221
22198
22199         Reviewed by Alexey Proskuryakov.
22200
22201         Add media keyboard support on Linux gtk platform.
22202
22203         * platform/chromium/KeyCodeConversionGtk.cpp:
22204         (WebCore::windowsKeyCodeForKeyEvent):
22205
22206 2012-11-05  Glenn Adams  <glenn@skynav.com>
22207
22208         Add support to -webkit-line-break property for CSS3 Text line-break property values and semantics.
22209         https://bugs.webkit.org/show_bug.cgi?id=89235
22210
22211         Reviewed by Eric Seidel.
22212
22213         See also wiki documentation at:
22214         [1] http://trac.webkit.org/wiki/LineBreaking
22215         [2] http://trac.webkit.org/wiki/LineBreakingCSS3Mapping
22216
22217         Web exposed changes include:
22218         (1) The default (initial) value for -webkit-line-break becomes 'auto', instead of 'normal';
22219         (2) The values 'auto', 'loose', 'normal', and 'strict' are added to -webkit-line-break;
22220         (3) See [2] above for details regarding interpretation.
22221
22222         Tests: css3/line-break/line-break-auto-centered.html
22223                css3/line-break/line-break-auto-half-kana.html
22224                css3/line-break/line-break-auto-hyphens.html
22225                css3/line-break/line-break-auto-inseparables.html
22226                css3/line-break/line-break-auto-iteration-marks.html
22227                css3/line-break/line-break-auto-postfixes.html
22228                css3/line-break/line-break-auto-prefixes.html
22229                css3/line-break/line-break-auto-sound-marks.html
22230                css3/line-break/line-break-loose-centered.html
22231                css3/line-break/line-break-loose-half-kana.html
22232                css3/line-break/line-break-loose-hyphens.html
22233                css3/line-break/line-break-loose-inseparables.html
22234                css3/line-break/line-break-loose-iteration-marks.html
22235                css3/line-break/line-break-loose-postfixes.html
22236                css3/line-break/line-break-loose-prefixes.html
22237                css3/line-break/line-break-loose-sound-marks.html
22238                css3/line-break/line-break-normal-centered.html
22239                css3/line-break/line-break-normal-half-kana.html
22240                css3/line-break/line-break-normal-hyphens.html
22241                css3/line-break/line-break-normal-inseparables.html
22242                css3/line-break/line-break-normal-iteration-marks.html
22243                css3/line-break/line-break-normal-postfixes.html
22244                css3/line-break/line-break-normal-prefixes.html
22245                css3/line-break/line-break-normal-sound-marks.html
22246                css3/line-break/line-break-strict-centered.html
22247                css3/line-break/line-break-strict-half-kana.html
22248                css3/line-break/line-break-strict-hyphens.html
22249                css3/line-break/line-break-strict-inseparables.html
22250                css3/line-break/line-break-strict-iteration-marks.html
22251                css3/line-break/line-break-strict-postfixes.html
22252                css3/line-break/line-break-strict-prefixes.html
22253                css3/line-break/line-break-strict-sound-marks.html
22254
22255         * platform/text/LineBreakIteratorPoolICU.h:
22256         (WebCore::LineBreakIteratorPool::makeLocaleWithBreakKeyword):
22257         Add static function to construct ICU locale argument (also used as pool key) with additional
22258         break keyword.
22259         (WebCore::LineBreakIteratorPool::take):
22260         (WebCore::LineBreakIteratorPool::put):
22261         (LineBreakIteratorPool):
22262         Remove direct dependency from ICU library (and types), moving that dependency into
22263         new {open,close}LineBreakIterator() functions (defined in TextBreakIteratorICU.cpp).
22264         Update to take line break mode into account.
22265         Create (and cache) different break iterators depending on line break mode (in addition to locale),
22266         which entails expanding pool entry key format to optionally append "@break=" +
22267         "loose"|"normal"|"strict" keyword to locale string.
22268
22269         * platform/text/TextBreakIterator.h:
22270         (WebCore::LazyLineBreakIterator::LazyLineBreakIterator):
22271         (WebCore::LazyLineBreakIterator::isLooseCJKMode):
22272         (WebCore::LazyLineBreakIterator::get):
22273         (WebCore::LazyLineBreakIterator::reset):
22274         (LazyLineBreakIterator):
22275         Define LineBreakIteratorMode enumeration for use in TextBreakIterator et al.
22276         Add state member to indicate line break mode.
22277
22278         * platform/text/TextBreakIteratorICU.cpp:
22279         (WebCore::acquireLineBreakIterator):
22280         Use new line break mode when making iterator from pool.
22281         Handle change of return type of LineBreakIteratorPool::take() to non-ICU type,
22282         i.e., TextBreakIterator* instead of ICU's UBreakIterator*.
22283         (WebCore::releaseLineBreakIterator):
22284         Handle change of parameter type of LineBreakIteratorPool::put() to non-ICU type,
22285         i.e., TextBreakIterator* instead of ICU's UBreakIterator*.
22286         (WebCore::isCJKLocale):
22287         New functions for determining if CJK rules apply.
22288         (WebCore::openLineBreakIterator):
22289         New function for abstracting opening of ICU style line break iterator. This is now
22290         used in LineBreakIteratorPoolICU.h rather than having direct ICU API dependency there.
22291         This function also takes into account the line break mode.
22292         (WebCore::closeLineBreakIterator):
22293         (WebCore::mapLineIteratorModeToRules):
22294         New function for abstracting closing of ICU style line break iterator. This is now
22295         used in LineBreakIteratorPoolICU.h rather than having direct ICU API dependency there.
22296
22297         * rendering/RenderBlockLineLayout.cpp:
22298         (WebCore::RenderBlock::LineBreaker::nextLineBreak):
22299         Pass line break iterator mode flag when reseting LazyLineBreakIterator.
22300         Add looseMode local variable to prevent need for computing under isBreakable().
22301
22302         * rendering/RenderText.cpp:
22303         (WebCore::mapLineBreakToIteratorMode):
22304         Add implementation for mapLineBreakToIteratorMode(), used by both RenderText::computePreferredLogicalWidths
22305         and RenderBlock::LineBreaker::nextLineBreak.
22306         (WebCore::RenderText::computePreferredLogicalWidths):
22307         Ensure (lazy line) breakIterator is initialized for line break mode.
22308         Ensure isBreakable() is passed loose mode flag to match behavior in RenderBlock::LineBreaker::nextLineBreak.
22309
22310         * rendering/RenderText.h:
22311         (WebCore):
22312         Add declaration for mapLineBreakToIteratorMode(), used by both RenderText::computePreferredLogicalWidths
22313         and RenderBlock::LineBreaker::nextLineBreak.
22314
22315         * rendering/break_lines.cpp:
22316         (WebCore):
22317         Introduce two (local) enums NBSPBehavior and LooseBehavior for expanding template on nextBreakablePosition
22318         to include loose mode parameter.
22319         (WebCore::isBreakableSpace):
22320         Add externally specified loose mode parameter to prevent need to invoke line break iterator
22321         accessor method on each invocation. Use new loose mode flavors off NBP functions.
22322         (WebCore::needsLineBreakIterator):
22323         Introduce loose mode behavior template parameter to optimize loose mode behavior code path in order
22324         to prevent regression to non loose mode path.
22325         (WebCore::nextBreakablePosition):
22326         (WebCore::nextBreakablePositionIgnoringNBSP):
22327         Use new template parameter enums described above.
22328         (WebCore::nextBreakablePositionIgnoringNBSPLoose):
22329         (WebCore::nextBreakablePositionLoose):
22330         Introduce two additional 'loose' mode flavors of NBP template expansions.
22331
22332         * rendering/break_lines.h:
22333         (WebCore):
22334         (WebCore::isBreakable):
22335         Add externally specified loose mode parameter to prevent need to invoke line break iterator
22336         accessor method on each invocation.
22337
22338 2012-11-05  Adam Barth  <abarth@webkit.org>
22339
22340         webkitRegionLayoutUpdate is incorrectly named
22341         https://bugs.webkit.org/show_bug.cgi?id=100335
22342
22343         Reviewed by Ojan Vafai.
22344
22345         DOM event names are supposed to be lower case.
22346
22347         * dom/EventNames.h:
22348         (WebCore):
22349         * dom/WebKitNamedFlow.cpp:
22350         (WebCore::WebKitNamedFlow::dispatchRegionLayoutUpdateEvent):
22351
22352 2012-11-05  Adam Barth  <abarth@webkit.org>
22353
22354         [V8] IntrusiveDOMWrapperMap should be usable for more than just Nodes
22355         https://bugs.webkit.org/show_bug.cgi?id=101110
22356
22357         Reviewed by Kentaro Hara.
22358
22359         This patch generalizes our support for storing wrappers in DOM objects
22360         to be usable for more than just nodes. After this patch, any object
22361         with a ScriptWrappable base class will have its wrapper stored inline
22362         in the object in the main world.
22363
22364         To achieve this goal, this patch hides the details of how we map from
22365         objects to wrappers inside DOMDataStore and then removes the
22366         IntrusiveDOMWrapperMap class entirely. This approach lets us remove the
22367         DOMWrapperMap base class and make all of these functions non-virtual.
22368
22369         * UseV8.cmake:
22370         * WebCore.gypi:
22371             - Remove deleted files.
22372         * bindings/scripts/CodeGeneratorV8.pm:
22373         (GenerateHeader):
22374         (GenerateNormalAttrGetter):
22375         (GenerateConstructorCallback):
22376         (GenerateNamedConstructorCallback):
22377         (GenerateToV8Converters):
22378             - Rather than grabbing at the DOMWrapperMap directly, we now ask
22379               the DOMDataStore to do this work for us.
22380         * bindings/scripts/test/V8/V8Float64Array.h:
22381         (WebCore::V8Float64Array::wrap):
22382         * bindings/scripts/test/V8/V8TestActiveDOMObject.h:
22383         (WebCore::V8TestActiveDOMObject::wrap):
22384         * bindings/scripts/test/V8/V8TestCustomNamedGetter.h:
22385         (WebCore::V8TestCustomNamedGetter::wrap):
22386         * bindings/scripts/test/V8/V8TestEventConstructor.h:
22387         (WebCore::V8TestEventConstructor::wrap):
22388         * bindings/scripts/test/V8/V8TestEventTarget.h:
22389         (WebCore::V8TestEventTarget::wrap):
22390         * bindings/scripts/test/V8/V8TestException.h:
22391         (WebCore::V8TestException::wrap):
22392         * bindings/scripts/test/V8/V8TestInterface.h:
22393         (WebCore::V8TestInterface::wrap):
22394         * bindings/scripts/test/V8/V8TestMediaQueryListListener.h:
22395         (WebCore::V8TestMediaQueryListListener::wrap):
22396         * bindings/scripts/test/V8/V8TestNamedConstructor.h:
22397         (WebCore::V8TestNamedConstructor::wrap):
22398         * bindings/scripts/test/V8/V8TestNode.cpp:
22399         (WebCore::V8TestNode::constructorCallback):
22400         (WebCore::V8TestNode::wrapSlow):
22401         * bindings/scripts/test/V8/V8TestObj.cpp:
22402         (WebCore::TestObjV8Internal::readOnlyTestObjAttrAttrGetter):
22403         * bindings/scripts/test/V8/V8TestObj.h:
22404         (WebCore::V8TestObj::wrap):
22405         * bindings/scripts/test/V8/V8TestSerializedScriptValueInterface.h:
22406         (WebCore::V8TestSerializedScriptValueInterface::wrap):
22407         * bindings/v8/DOMDataStore.cpp:
22408             - Updated run-bindings-test results.
22409         (WebCore::DOMDataStore::DOMDataStore):
22410         (WebCore::DOMDataStore::~DOMDataStore):
22411             - Simplify constructor and destructor now that there is only one
22412               hash map.
22413         (WebCore::DOMDataStore::current):
22414             - Now that V8DOMMap.cpp doesn't handle the null isolate case, we
22415               need to handle it here.
22416         (WebCore::DOMDataStore::reportMemoryUsage):
22417             - Simplfied now that there is only one wrapper map.
22418         (WebCore::DOMDataStore::weakCallback):
22419             - Moved from IntrusiveDOMWrapperMap.h
22420         * bindings/v8/DOMDataStore.h:
22421         (WebCore::DOMDataStore::get):
22422         (WebCore::DOMDataStore::set):
22423             - These functions now handle the intrusive case with a branch
22424               rather than with a virtual function call. In many cases, the
22425               branch can be optimized away by the compiler when the overloaded
22426               inline functions are inlined.
22427         (WebCore::DOMDataStore::wrapperIsStoredInObject):
22428             - Overloaded functions to determine whether to store the wrapper
22429               inside the object or in the hashmap.
22430         (WebCore::DOMDataStore::getWrapperFromObject):
22431         (WebCore::DOMDataStore::storeWrapperInObject):
22432             - Overloaded functions to get/set the wrapper from inside the
22433               object itself.
22434         * bindings/v8/DOMWrapperMap.h:
22435         (WebCore::DOMWrapperHashMap::get):
22436         (WebCore::DOMWrapperHashMap::set):
22437         (WebCore::DOMWrapperHashMap::clear):
22438         (WebCore::DOMWrapperHashMap::reportMemoryUsage):
22439         (WebCore::DOMWrapperHashMap::remove):
22440             - These functions are no longer virtual.
22441         * bindings/v8/DOMWrapperWorld.h:
22442         * bindings/v8/IntrusiveDOMWrapperMap.h: Removed.
22443         * bindings/v8/ScriptProfiler.cpp:
22444         * bindings/v8/SerializedScriptValue.cpp:
22445         (WebCore::neuterBinding):
22446             - We need to keep the type information slightly longer so that we
22447               look in the right wrapper map.
22448         * bindings/v8/V8DOMMap.cpp: Removed.
22449         * bindings/v8/V8DOMMap.h: Removed.
22450         * bindings/v8/V8DOMWindowShell.cpp:
22451         * bindings/v8/V8DOMWrapper.cpp:
22452         * bindings/v8/V8DOMWrapper.h:
22453         (WebCore::V8DOMWrapper::getCachedWrapper):
22454             - Defer this work to the store.
22455         (WebCore::V8DOMWrapper::setWrapperClass):
22456             - An overloaded function to set the right wrapper class.
22457         (WebCore::V8DOMWrapper::setJSWrapperForDOMObject):
22458             - This function is now general enough to handle ever kind of object.
22459         * bindings/v8/V8GCController.cpp:
22460         * bindings/v8/V8NPObject.cpp:
22461         * bindings/v8/WorkerContextExecutionProxy.cpp:
22462         * bindings/v8/WorkerScriptController.cpp:
22463         * bindings/v8/custom/V8HTMLImageElementConstructor.cpp:
22464         (WebCore::v8HTMLImageElementConstructorCallback):
22465             - Call the more general function (instead of the now-deleted specialized function).
22466
22467 2012-11-05  Alexey Proskuryakov  <ap@apple.com>
22468
22469         Get rid of setCookieStoragePrivateBrowsingEnabled.
22470         https://bugs.webkit.org/show_bug.cgi?id=101247
22471
22472         Reviewed by Brady Eidson.
22473
22474         We were only doing anything here on Mac, and only because we couldn't know if
22475         sessions were in use. But sessions are always in use, and those obsolete changing
22476         cookie storage explicitly.
22477
22478         * platform/network/win/CookieStorageWin.cpp: Removed.
22479         * PlatformWinCE.cmake:
22480         * WebCore.gypi:
22481         No more CookieStorageWin.cpp with an empty implementation.
22482     
22483         * WebCore.exp.in:
22484         * platform/mac/WebCoreSystemInterface.h:
22485         * platform/mac/WebCoreSystemInterface.mm:
22486         We no longer need this WKSI function.
22487
22488         * page/Settings.cpp: (WebCore::Settings::setPrivateBrowsingEnabled):
22489         Removed the only call to setCookieStoragePrivateBrowsingEnabled().
22490
22491         * platform/network/CookieStorage.h:
22492         * platform/network/cf/CookieStorageCFNet.cpp:
22493         * platform/network/curl/CookieJarCurl.cpp:
22494         * platform/network/soup/CookieStorageSoup.cpp:
22495         * platform/qt/TemporaryLinkStubsQt.cpp:
22496         Removed empty setCookieStoragePrivateBrowsingEnabled implementations.
22497
22498         * platform/network/mac/CookieStorageMac.mm: This function used to have a FIXME
22499         that we should observe private storage while in private browsing mode. I don't think
22500         that it was correct - Safari doesn't display content of private storage, and thus
22501         doesn't need to know about changes.
22502         The removal of this function has an effect on WebKit1 clients that enable private
22503         browsing. We used to globally change cookie storage, even for loads not initiated
22504         by WebKit. Now we match API description: "If private browsing is enabled, WebKit
22505         will not store information about sites the user visits."
22506
22507 2012-11-05  Florin Malita  <fmalita@chromium.org>
22508
22509         Crash when mixing layers, foreignObjects and SVG hidden containers
22510         https://bugs.webkit.org/show_bug.cgi?id=87297
22511
22512         Reviewed by Dirk Schulze.
22513
22514         Foreign objects may introduce content which requires layers, but layer creation is
22515         suppressed within RenderSVGHiddenContainer subtrees and this yields an inconsistent render
22516         tree state. This patch prevents foreignObject renderer instantiation under
22517         RenderSVGHiddenContainers.
22518
22519         Test: svg/foreignObject/foreign-object-defs-crash.svg
22520
22521         * svg/SVGForeignObjectElement.cpp:
22522         (WebCore::SVGForeignObjectElement::rendererIsNeeded):
22523         (WebCore):
22524         * svg/SVGForeignObjectElement.h:
22525         (SVGForeignObjectElement):
22526
22527 2012-11-05  Simon Fraser  <simon.fraser@apple.com>
22528
22529         Remove the unused m_fixedPositionedElements from RenderView
22530         https://bugs.webkit.org/show_bug.cgi?id=101251
22531
22532         Reviewed by Anders Carlsson.
22533
22534         m_fixedPositionedElements was completely unused. Remove it
22535         and the related typedef.
22536
22537         * rendering/RenderView.h:
22538         (RenderView):
22539
22540 2012-11-05  Simon Fraser  <simon.fraser@apple.com>
22541
22542         Fix layer borders to cleaning appear and disappear on switching
22543         https://bugs.webkit.org/show_bug.cgi?id=101136
22544
22545         Reviewed by Sam Weinig.
22546
22547         GraphicsLayers decided whether to show layer borders based
22548         on a callback through the GraphicsLayerClient. This made it
22549         hard to manage state, resulting in a failure to cleanly
22550         hide layers when toggled off via the preference.
22551         
22552         Changed the layer border and repaint counter visibility to be bits
22553         stored on GraphicsLayer just like other properties, with getters
22554         and setters. RenderLayerBacking now updates these debug
22555         indicators when we update other compositing layer properties.
22556         
22557         In GraphicsLayerCA, avoid calling updateDebugIndicators() explicitly
22558         in several places by setting the change flag DebugIndicatorsChanged
22559         for properties whose values affect the appearance of the debug border.
22560
22561         Removed the GraphicsLayerClient methods showDebugBorders() and
22562         showRepaintCounter() which are no longer required.
22563
22564         * platform/graphics/GraphicsLayer.cpp:
22565         (WebCore::GraphicsLayer::GraphicsLayer):
22566         (WebCore::GraphicsLayer::updateDebugIndicators):
22567         * platform/graphics/GraphicsLayer.h:
22568         (WebCore::GraphicsLayer::setShowDebugBorder):
22569         (WebCore::GraphicsLayer::isShowingDebugBorder):
22570         (WebCore::GraphicsLayer::setShowRepaintCounter):
22571         (WebCore::GraphicsLayer::isShowingRepaintCounter):
22572         (WebCore::GraphicsLayer::repaintCount):
22573         (WebCore::GraphicsLayer::incrementRepaintCount):
22574         * platform/graphics/GraphicsLayerClient.h:
22575         * platform/graphics/ca/GraphicsLayerCA.cpp:
22576         (WebCore::GraphicsLayerCA::GraphicsLayerCA):
22577         (WebCore::GraphicsLayerCA::setMasksToBounds):
22578         (WebCore::GraphicsLayerCA::setDrawsContent):
22579         (WebCore::GraphicsLayerCA::platformCALayerShowRepaintCounter):
22580         (WebCore::GraphicsLayerCA::commitLayerChangesBeforeSublayers):
22581         (WebCore::GraphicsLayerCA::updateMasksToBounds):
22582         (WebCore::GraphicsLayerCA::updateLayerDrawsContent):
22583         (WebCore::GraphicsLayerCA::updateDebugBorder):
22584         (WebCore::GraphicsLayerCA::setShowDebugBorder):
22585         (WebCore::GraphicsLayerCA::setShowRepaintCounter):
22586         (WebCore::GraphicsLayerCA::swapFromOrToTiledLayer):
22587         (WebCore::GraphicsLayerCA::setupContentsLayer):
22588         (WebCore::GraphicsLayerCA::cloneLayer):
22589         * platform/graphics/ca/GraphicsLayerCA.h:
22590         (GraphicsLayerCA):
22591         (WebCore::GraphicsLayerCA::platformCALayerShowDebugBorders):
22592         * rendering/RenderLayerBacking.cpp:
22593         (WebCore::RenderLayerBacking::updateDebugIndicators):
22594         * rendering/RenderLayerBacking.h:
22595         (RenderLayerBacking):
22596         * rendering/RenderLayerCompositor.cpp:
22597         (WebCore::RenderLayerCompositor::updateBacking):
22598         * rendering/RenderLayerCompositor.h:
22599         (RenderLayerCompositor):
22600
22601 2012-11-05  Genevieve Mak  <gmak@rim.com>
22602
22603         [BLACKBERRY] Update touch code to reflect touch refactor
22604         https://bugs.webkit.org/show_bug.cgi?id=101227
22605
22606         Reviewed by Rob Buis.
22607
22608         PR #2706785
22609         Reviewed Internally by: Mike Lattanzio
22610
22611         * platform/blackberry/PlatformTouchEventBlackBerry.cpp:
22612         (WebCore::touchEventType):
22613         (WebCore::PlatformTouchEvent::PlatformTouchEvent):
22614
22615 2012-11-05  Alok Priyadarshi  <alokp@chromium.org>
22616
22617         [chromium] Pass canPaintLCDText to WebContentLayerClient::paintContents
22618         https://bugs.webkit.org/show_bug.cgi?id=99083
22619
22620         Reviewed by Stephen White.
22621
22622         Use LCD text setting passed to WebContentLayerClient::paintContents instead of turning it off for all composited layers.
22623
22624         No new tests needed. This patch does not change anything functionally.
22625
22626         * platform/graphics/chromium/GraphicsLayerChromium.cpp:
22627         (WebCore::GraphicsLayerChromium::setContentsOpaque):
22628         (WebCore::GraphicsLayerChromium::paint):
22629         * platform/graphics/chromium/OpaqueRectTrackingContentLayerDelegate.cpp:
22630         (WebCore::OpaqueRectTrackingContentLayerDelegate::paintContents):
22631         * platform/graphics/chromium/OpaqueRectTrackingContentLayerDelegate.h:
22632         (OpaqueRectTrackingContentLayerDelegate):
22633
22634 2012-11-05  Stephen White  <senorblanco@chromium.org>
22635
22636         [chromium] Build fix after http://trac.webkit.org/changeset/133488.
22637         Removed a deleted file.  Unreviewed.
22638
22639         * WebCore.gypi:
22640
22641 2012-11-05  Kentaro Hara  <haraken@chromium.org>
22642
22643         [V8] toV8(impl) should return null if impl is 0
22644         https://bugs.webkit.org/show_bug.cgi?id=101206
22645
22646         Reviewed by Adam Barth.
22647
22648         toV8(impl) should return null if impl is 0. However,
22649         V8HTMLCollection::toV8() does not have the null check.
22650         All other toV8()s return null.
22651
22652         No tests. I think there will be no call path that hits the change.
22653
22654         * bindings/v8/custom/V8HTMLCollectionCustom.cpp:
22655         (WebCore::toV8):
22656
22657 2012-11-05  David Barton  <dbarton@mathscribe.com>
22658
22659         Implement SimpleFontData::platformBoundsForGlyph on skia
22660         https://bugs.webkit.org/show_bug.cgi?id=101115
22661
22662         Reviewed by Eric Seidel.
22663
22664         The implementation is similar to SimpleFontData::platformWidthForGlyph on skia.
22665
22666         Tested by: fast/block/lineboxcontain/*glyphs*, mathml/presentation/*
22667
22668         * platform/graphics/skia/SimpleFontDataSkia.cpp:
22669         (WebCore::SimpleFontData::platformBoundsForGlyph): Implemented.
22670
22671 2012-11-05  Andreas Kling  <kling@webkit.org>
22672
22673         Decouple Attr logic from ElementAttributeData.
22674         <http://webkit.org/b/101126>
22675
22676         Reviewed by Antti Koivisto.
22677
22678         Move all logic dealing with Attr DOM nodes from ElementAttributeData to Element.
22679         This makes more sense since an Attr is tied to a single Element, but an ElementAttributeData
22680         can be shared by any number of Elements at a given time.
22681
22682         Also updated naming convention from just "Attr" to "Attr node" in the code I was touching.
22683         "Attr" is way too generic, and has been historically confused with WebCore::Attribute a lot.
22684
22685         * dom/Element.h:
22686         * dom/ElementAttributeData.h:
22687         * dom/Element.cpp:
22688         (WebCore::attrNodeListMap):
22689         (WebCore::attrNodeListForElement):
22690         (WebCore::ensureAttrNodeListForElement):
22691         (WebCore::removeAttrNodeListForElement):
22692         (WebCore::findAttrNodeInList):
22693         (WebCore::Element::~Element):
22694         (WebCore::Element::detachAttribute):
22695         (WebCore::Element::setAttributeNode):
22696         (WebCore::Element::removeAttributeInternal):
22697         (WebCore::Element::getAttributeNode):
22698         (WebCore::Element::getAttributeNodeNS):
22699         (WebCore::Element::normalizeAttributes):
22700         (WebCore::Element::attrIfExists):
22701         (WebCore::Element::ensureAttr):
22702         (WebCore::Element::detachAttrNodeFromElementWithValue):
22703         (WebCore::Element::detachAllAttrNodesFromElement):
22704         (WebCore::Element::cloneAttributesFromElement):
22705
22706             Move everything Attr-related into Element.cpp while simplifying some loops and remove
22707             conditions that are no longer needed as they used to depend on having an attributeData().
22708
22709         * dom/Node.h:
22710         (WebCore::Node::hasSyntheticAttrChildNodes):
22711         (WebCore::Node::setHasSyntheticAttrChildNodes):
22712
22713             Renamed the hasAttrList() node flag to hasSyntheticAttrChildNodes().
22714
22715         * dom/Attr.cpp:
22716         (WebCore::Attr::detachFromElementWithValue):
22717
22718             Remove awkward indirection and let the call site deal with removing the Attr node from
22719             the Element's list of Attr nodes.
22720
22721         * dom/ElementAttributeData.cpp:
22722         (WebCore::ElementAttributeData::clearAttributes):
22723
22724             Remove now-unused Element* argument.
22725
22726 2012-11-05  Hans Muller  <hmuller@adobe.com>
22727
22728         [CSS Exclusions] Polygon edges should span colinear vertices
22729         https://bugs.webkit.org/show_bug.cgi?id=99343
22730
22731         Reviewed by Dirk Schulze.
22732
22733         ExclusionPolygonEdges now span coincident and collinear vertices. Currently
22734         pairs of vertices are only considered coincident if their coordinates are exactly
22735         equal. Similarly, a vertex is only considered collinear with an edge if the area
22736         of the triangle defined by the three vertices is exactly zero.  In the future it
22737         may be useful to relax the comparison with zero.
22738
22739         Tests: fast/exclusions/shape-inside/shape-inside-coincident-vertices.html
22740                fast/exclusions/shape-inside/shape-inside-collinear-vertices.html
22741
22742         * rendering/ExclusionPolygon.cpp:
22743         (WebCore::determinant): Used to measure collinearity.
22744         (WebCore):
22745         (WebCore::areCollinearPoints): True if three FloatPoint arguments are collinear per the test outlined above.
22746         (WebCore::areCoincidentPoints): True if the two FloatPoint arguments are equal.
22747         (WebCore::nextVertexIndex): The next vertex index in clockwise or counterclockwise order.
22748         (WebCore::ExclusionPolygon::findNextEdgeVertexIndex): Return the index of the next non-coincident, non-collinear vertex.
22749         (WebCore::ExclusionPolygon::ExclusionPolygon): Skip coincident and collinear vertices when building the list of edges.
22750         * rendering/ExclusionPolygon.h: Added private findNextEdgeVertexIndex() declaration.
22751
22752 2012-11-05  Christophe Dumez  <christophe.dumez@intel.com>
22753
22754         [EFL] Use POSIX implementation of SharedBuffer::createWithContentsOfFile()
22755         https://bugs.webkit.org/show_bug.cgi?id=101228
22756
22757         Reviewed by Kenneth Rohde Christiansen.
22758
22759         Get rid of EFL-specific implementation of SharedBuffer::createWithContentsOfFile()
22760         and reuse the POSIX one since it is pretty much the same.
22761
22762         No new tests, no behavior change.
22763
22764         * PlatformEfl.cmake:
22765         * platform/efl/SharedBufferEfl.cpp: Removed.
22766
22767 2012-11-05  Kentaro Hara  <haraken@chromium.org>
22768
22769         Add a comment about a return value of IDBKey::toV8()
22770         https://bugs.webkit.org/show_bug.cgi?id=101212
22771
22772         Reviewed by Adam Barth.
22773
22774         Although all other toV8(impl) return null when impl is 0,
22775         IDBKey::toV8(impl) is expected to return undefined when impl is 0.
22776         This patch adds a comment about it.
22777
22778         No tests.
22779
22780         * bindings/js/JSIDBKeyCustom.cpp:
22781         (WebCore::toJS):
22782         * bindings/v8/custom/V8IDBKeyCustom.cpp:
22783         (WebCore::toV8):
22784
22785 2012-11-05  Dominik Röttsches  <dominik.rottsches@intel.com>
22786
22787         [Cairo] Make Cairo honor image orientation
22788         https://bugs.webkit.org/show_bug.cgi?id=101207
22789
22790         Reviewed by Kenneth Rohde Christiansen.
22791
22792         Implement transformed image drawing in BitmapImageCairo, similar
22793         as it was done for Skia in bug 100179, r132384.
22794         The image drawing code needs to transform the graphics context
22795         depending on exif orientation in order for this to work.
22796
22797         No new tests, covered by fast/images/exif-* which are passing now.
22798
22799         * platform/graphics/BitmapImage.h: Enable draw function which respects image orientation for Cairo.
22800         * platform/graphics/cairo/BitmapImageCairo.cpp:
22801         (WebCore::BitmapImage::draw): Apply ImageOrientation's transformFromDefault() transformation to context.
22802         (WebCore):
22803
22804 2012-11-05  Kentaro Hara  <haraken@chromium.org>
22805
22806         [V8] Dispose() and Clear() should be always coupled for safety
22807         https://bugs.webkit.org/show_bug.cgi?id=101191
22808
22809         Reviewed by Adam Barth.
22810
22811         Clear() is not mandatory. However, to avoid misusing already
22812         disposed wrappers, Clear() should be always called just
22813         after Dispose().
22814
22815         No tests. No change in behavior.
22816
22817         * bindings/v8/DOMWrapperMap.h:
22818         (WebCore::DOMWrapperHashMap::defaultWeakCallback):
22819         * bindings/v8/IntrusiveDOMWrapperMap.h:
22820         (WebCore::IntrusiveDOMWrapperMap::weakCallback):
22821         * bindings/v8/NPV8Object.cpp:
22822         (WebCore::freeV8NPObject):
22823         * bindings/v8/ScheduledAction.cpp:
22824         (WebCore::ScheduledAction::~ScheduledAction):
22825         * bindings/v8/V8NPObject.cpp:
22826         (WebCore::V8NPTemplateMap::dispose):
22827         (WebCore::weakNPObjectCallback):
22828         (WebCore::forgetV8ObjectForNPObject):
22829         * bindings/v8/V8PerContextData.cpp:
22830         (WebCore::V8PerContextData::dispose):
22831         * bindings/v8/V8ValueCache.cpp:
22832         (WebCore::cachedStringCallback):
22833         (WebCore::IntegerCache::~IntegerCache):
22834         * bindings/v8/custom/V8InjectedScriptManager.cpp:
22835         (WebCore::WeakReferenceCallback):
22836
22837 2012-11-05  Hans Muller  <hmuller@adobe.com>
22838
22839         [CSS Exclusions] Layout of the first shape-inside line can be incorrect
22840         https://bugs.webkit.org/show_bug.cgi?id=100996
22841
22842         Reviewed by Dirk Schulze.
22843
22844         Made the conversion from floating point top/bottom logical shape bounds coordinates
22845         LayoutUnits explicit and corrected the case where the top value was truncated.  A
22846         float logicalTop value is converted to LayoutUnit with fromFloatCeil() to ensure
22847         that the LayoutUnit value is within the shape.
22848         
22849         Test: fast/exclusions/shape-inside/shape-inside-shape-logical-top.html
22850
22851         * rendering/ExclusionShapeInsideInfo.h:
22852         (WebCore::ExclusionShapeInsideInfo::shapeLogicalTop): Redefined this method in terms of shapeLogicalBoundsY,Max().
22853         (WebCore::ExclusionShapeInsideInfo::shapeLogicalBottom):  Ditto.
22854         (WebCore::ExclusionShapeInsideInfo::lineOverlapsShapeBounds):  Ditto.
22855         (ExclusionShapeInsideInfo):
22856         (WebCore::ExclusionShapeInsideInfo::shapeLogicalBoundsY): Explicit conversion from floating point shape coordinates to LayoutUnits.
22857         (WebCore::ExclusionShapeInsideInfo::shapeLogicalBoundsMaxY): Ditto.
22858
22859 2012-11-05  Antti Koivisto  <antti@apple.com>
22860
22861         Protect against resource deletion during iteration in MemoryCache::pruneDeadResourcesToSize
22862         https://bugs.webkit.org/show_bug.cgi?id=101211
22863
22864         Reviewed by Andreas Kling.
22865         
22866         Some crashes have been seen under MemoryCache::pruneDeadResourcesToSize. A possible cause is that
22867         destroyDecodedData() call ends up evicting the resource pointed by 'previous' pointer during iteration
22868         and deleting the object. This looks in principle possible via stylesheets and SVG images.
22869         
22870         Speculative fix, no repro, no obvious way to construct a test.
22871
22872         * loader/cache/MemoryCache.cpp:
22873         (WebCore::MemoryCache::pruneDeadResourcesToSize):
22874         
22875             Use CachedResourceHandle to protect the 'previous' pointer during iteration. Check if the
22876             resource has been kicked out from the cache during destroyDecodedData() and stop iterating
22877             if has (as it may die when CachedResourceHandle releases it).
22878             The 'current' pointer is not protected as the resource it points to is allowed to die.
22879             
22880 2012-11-05  Andrey Adaikin  <aandrey@chromium.org>
22881
22882         Web Inspector: Fix jscompiler cast syntax
22883         https://bugs.webkit.org/show_bug.cgi?id=101066
22884
22885         Reviewed by Pavel Feldman.
22886
22887         Casts should be in the form of "/** @type {TypeName} */ (expr)" instead of "/** @type {TypeName} */ expr".
22888
22889         * inspector/InjectedScriptCanvasModuleSource.js:
22890         (.):
22891         * inspector/InjectedScriptSource.js:
22892         (.):
22893         * inspector/front-end/ApplicationCacheModel.js:
22894         (WebInspector.ApplicationCacheModel.prototype._frameNavigated):
22895         (WebInspector.ApplicationCacheModel.prototype._frameDetached):
22896         * inspector/front-end/AuditLauncherView.js:
22897         (WebInspector.AuditLauncherView.prototype._onRequestStarted):
22898         (WebInspector.AuditLauncherView.prototype._onRequestFinished):
22899         * inspector/front-end/BreakpointManager.js:
22900         (WebInspector.BreakpointManager.prototype._uiSourceCodeAdded):
22901         (WebInspector.BreakpointManager.prototype._uiSourceCodeFormatted):
22902         (WebInspector.BreakpointManager.prototype._uiSourceCodeRemoved):
22903         (WebInspector.BreakpointManager.prototype._breakpointResolved):
22904         (WebInspector.BreakpointManager.Breakpoint.prototype._locationUpdated):
22905         (WebInspector.BreakpointManager.Storage):
22906         * inspector/front-end/BreakpointsSidebarPane.js:
22907         (WebInspector.JavaScriptBreakpointsSidebarPane.prototype._breakpointAdded):
22908         * inspector/front-end/CSSNamedFlowCollectionsView.js:
22909         (WebInspector.CSSNamedFlowCollectionsView.prototype._documentUpdated):
22910         (WebInspector.CSSNamedFlowCollectionsView.prototype._namedFlowCreated):
22911         (WebInspector.CSSNamedFlowCollectionsView.prototype._regionLayoutUpdated):
22912         (WebInspector.CSSNamedFlowCollectionsView.prototype._selectedNodeChanged):
22913         * inspector/front-end/CSSSelectorProfileView.js:
22914         (WebInspector.CSSProfileHeader.prototype.createView):
22915         * inspector/front-end/CSSStyleModel.js:
22916         (WebInspector.CSSStyleModel.LiveLocation.prototype.uiLocation):
22917         (WebInspector.CSSStyleDeclaration.parseComputedStylePayload):
22918         * inspector/front-end/CompilerScriptMapping.js:
22919         (WebInspector.CompilerScriptMapping.prototype.rawLocationToUILocation):
22920         (WebInspector.CompilerScriptMapping.prototype.loadSourceMapForScript):
22921         * inspector/front-end/ConsoleView.js:
22922         (WebInspector.ConsoleView.prototype._frameAdded):
22923         (WebInspector.ConsoleView.prototype._frameRemoved):
22924         * inspector/front-end/DOMAgent.js:
22925         (WebInspector.DOMDocument):
22926         * inspector/front-end/DebuggerModel.js:
22927         (WebInspector.DebuggerModel.prototype.didSetBreakpoint):
22928         (WebInspector.DebuggerModel.prototype.setBreakpointByURL):
22929         (WebInspector.DebuggerModel.prototype.):
22930         (WebInspector.DebuggerModel.prototype.setBreakpointBySourceId):
22931         (WebInspector.DebuggerModel.CallFrame.prototype.get location):
22932         * inspector/front-end/DebuggerScriptMapping.js:
22933         (WebInspector.DebuggerScriptMapping.prototype._parsedScriptSource):
22934         * inspector/front-end/DirectoryContentView.js:
22935         (WebInspector.DirectoryContentView.prototype._sort):
22936         * inspector/front-end/ElementsPanel.js:
22937         (WebInspector.ElementsPanel.prototype._updateBreadcrumbIfNeeded):
22938         * inspector/front-end/ElementsPanelDescriptor.js:
22939         (WebInspector.ElementsPanelDescriptor.prototype.appendApplicableItems):
22940         * inspector/front-end/ElementsTreeOutline.js:
22941         (.get node):
22942         * inspector/front-end/ExtensionServer.js:
22943         (WebInspector.ExtensionServer.prototype._onAddRequestHeaders):
22944         (WebInspector.ExtensionServer.prototype._handleOpenURL):
22945         (WebInspector.ExtensionServer.prototype._onGetResourceContent):
22946         (WebInspector.ExtensionServer.prototype._onSetResourceContent):
22947         (WebInspector.ExtensionServer.prototype._notifyResourceAdded):
22948         (WebInspector.ExtensionServer.prototype._notifyUISourceCodeContentCommitted):
22949         (WebInspector.ExtensionServer.prototype._notifyRequestFinished):
22950         * inspector/front-end/FileContentView.js:
22951         (WebInspector.FileContentView.prototype._metadataReceived):
22952         (WebInspector.FileContentView.FileContentProvider.prototype.requestContent):
22953         * inspector/front-end/FileSystemModel.js:
22954         (WebInspector.FileSystemModel.prototype._frameAdded):
22955         (WebInspector.FileSystemModel.prototype._frameNavigated):
22956         (WebInspector.FileSystemModel.prototype._frameDetached):
22957         * inspector/front-end/FileSystemView.js:
22958         (WebInspector.FileSystemView.EntryTreeElement.prototype.onselect):
22959         (WebInspector.FileSystemView.EntryTreeElement.prototype.refresh):
22960         * inspector/front-end/HandlerRegistry.js:
22961         (WebInspector.HandlerRegistry.prototype._appendHrefItems):
22962         * inspector/front-end/HeapSnapshotLoader.js:
22963         (WebInspector.HeapSnapshotLoader.prototype.write):
22964         * inspector/front-end/HeapSnapshotView.js:
22965         (WebInspector.HeapSnapshotView.prototype._changeBase):
22966         (WebInspector.HeapProfileHeader.prototype.load):
22967         (WebInspector.HeapProfileHeader.prototype._snapshotReceived):
22968         * inspector/front-end/IndexedDBModel.js:
22969         (WebInspector.IndexedDBModel.prototype._frameNavigated):
22970         (WebInspector.IndexedDBModel.prototype._frameDetached):
22971         * inspector/front-end/IndexedDBViews.js:
22972         (WebInspector.IDBDataView.prototype._keyColumnHeaderFragment):
22973         * inspector/front-end/JavaScriptSourceFrame.js:
22974         (WebInspector.JavaScriptSourceFrame.prototype._onFormattedChanged):
22975         (WebInspector.JavaScriptSourceFrame.prototype._breakpointAdded):
22976         (WebInspector.JavaScriptSourceFrame.prototype._breakpointRemoved):
22977         (WebInspector.JavaScriptSourceFrame.prototype._consoleMessageAdded):
22978         (WebInspector.JavaScriptSourceFrame.prototype._consoleMessageRemoved):
22979         (WebInspector.JavaScriptSourceFrame.prototype._handleGutterClick):
22980         (WebInspector.JavaScriptSourceFrame.prototype._continueToLine):
22981         * inspector/front-end/MemoryStatistics.js:
22982         (WebInspector.MemoryStatistics.prototype.show):
22983         * inspector/front-end/NavigatorView.js:
22984         (WebInspector.NavigatorView.prototype._uiSourceCodeTitleChanged):
22985         (WebInspector.NavigatorView.prototype._uiSourceCodeWorkingCopyChanged):
22986         (WebInspector.NavigatorView.prototype._uiSourceCodeWorkingCopyCommitted):
22987         (WebInspector.NavigatorView.prototype._uiSourceCodeFormattedChanged):
22988         * inspector/front-end/NetworkLog.js:
22989         (WebInspector.NetworkLog.prototype._onRequestStarted):
22990         * inspector/front-end/NetworkManager.js:
22991         (WebInspector.NetworkManager.prototype._cacheDisabledSettingChanged):
22992         * inspector/front-end/NetworkPanel.js:
22993         (WebInspector.NetworkLogView.prototype._onRequestUpdated):
22994         (WebInspector.NetworkLogView.prototype._mainFrameNavigated):
22995         (WebInspector.NetworkPanel.prototype.reveal):
22996         (WebInspector.NetworkPanel.prototype.appendApplicableItems):
22997         * inspector/front-end/NetworkUISourceCodeProvider.js:
22998         (WebInspector.NetworkUISourceCodeProvider.prototype._parsedScriptSource):
22999         (WebInspector.NetworkUISourceCodeProvider.prototype._resourceAdded):
23000         * inspector/front-end/ObjectPopoverHelper.js:
23001         (WebInspector.ObjectPopoverHelper.prototype.):
23002         (WebInspector.ObjectPopoverHelper.prototype._showObjectPopover):
23003         * inspector/front-end/PresentationConsoleMessageHelper.js:
23004         (WebInspector.PresentationConsoleMessageHelper.prototype._consoleMessageAdded):
23005         (WebInspector.PresentationConsoleMessageHelper.prototype._parsedScriptSource):
23006         * inspector/front-end/ProfilesPanel.js:
23007         * inspector/front-end/ResourceScriptMapping.js:
23008         (WebInspector.ResourceScriptMapping.prototype.rawLocationToUILocation):
23009         (WebInspector.ResourceScriptMapping.prototype._uiSourceCodeAddedToWorkspace):
23010         (WebInspector.ResourceScriptFile.prototype._workingCopyCommitted):
23011         (WebInspector.ResourceScriptFile.prototype._workingCopyChanged):
23012         * inspector/front-end/ResourceTreeModel.js:
23013         (WebInspector.ResourceTreeModel.prototype._onRequestFinished):
23014         (WebInspector.ResourceTreeModel.prototype._consoleMessageAdded):
23015         * inspector/front-end/ResourcesPanel.js:
23016         (WebInspector.ResourcesPanel.prototype._databaseAdded):
23017         (WebInspector.ResourcesPanel.prototype._domStorageAdded):
23018         (WebInspector.IndexedDBTreeElement.prototype._indexedDBAdded):
23019         (WebInspector.IndexedDBTreeElement.prototype._indexedDBRemoved):
23020         (WebInspector.IndexedDBTreeElement.prototype._indexedDBLoaded):
23021         (WebInspector.FileSystemListTreeElement.prototype._fileSystemAdded):
23022         (WebInspector.FileSystemListTreeElement.prototype._fileSystemRemoved):
23023         (WebInspector.FileSystemListTreeElement.prototype._fileSystemTreeElementByName):
23024         (WebInspector.SearchResultsTreeElementsTraverser.prototype._traverseNext):
23025         (WebInspector.SearchResultsTreeElementsTraverser.prototype._traversePrevious):
23026         * inspector/front-end/RevisionHistoryView.js:
23027         (WebInspector.RevisionHistoryView.prototype._uiSourceCodeRemoved):
23028         * inspector/front-end/SASSSourceMapping.js:
23029         (rawLocationToUILocation):
23030         * inspector/front-end/ScopeChainSidebarPane.js:
23031         (WebInspector.ScopeChainSidebarPane.prototype.update):
23032         * inspector/front-end/Script.js:
23033         (WebInspector.Script.Location.prototype.uiLocation):
23034         * inspector/front-end/ScriptFormatter.js:
23035         (WebInspector.ScriptFormatter.prototype.get _worker):
23036         * inspector/front-end/ScriptsPanel.js:
23037         (WebInspector.ScriptsPanel.prototype._uiSourceCodeAdded):
23038         (WebInspector.ScriptsPanel.prototype._uiSourceCodeRemoved):
23039         (WebInspector.ScriptsPanel.prototype._editorClosed):
23040         (WebInspector.ScriptsPanel.prototype._editorSelected):
23041         (WebInspector.ScriptsPanel.prototype._scriptSelected):
23042         (WebInspector.ScriptsPanel.prototype.canSearchAndReplace):
23043         (WebInspector.ScriptsPanel.prototype.replaceSelectionWith):
23044         (WebInspector.ScriptsPanel.prototype.replaceAllWith):
23045         (WebInspector.ScriptsPanel.prototype._toggleBreakpoint):
23046         (WebInspector.ScriptsPanel.prototype.set _fileRenamed):
23047         (WebInspector.ScriptsPanel.prototype._appendUISourceCodeItems):
23048         * inspector/front-end/ScriptsPanelDescriptor.js:
23049         (WebInspector.ScriptsPanelDescriptor.prototype.appendApplicableItems):
23050         * inspector/front-end/StylesSourceMapping.js:
23051         (WebInspector.StylesSourceMapping.prototype.rawLocationToUILocation):
23052         (WebInspector.StylesSourceMapping.prototype._uiSourceCodeAddedToWorkspace):
23053         * inspector/front-end/TabbedEditorContainer.js:
23054         (WebInspector.TabbedEditorContainer.prototype._scrollChanged):
23055         (WebInspector.TabbedEditorContainer.prototype._selectionChanged):
23056         (WebInspector.TabbedEditorContainer.prototype._tabClosed):
23057         (WebInspector.TabbedEditorContainer.prototype._tabSelected):
23058         (WebInspector.TabbedEditorContainer.prototype._uiSourceCodeTitleChanged):
23059         (WebInspector.TabbedEditorContainer.prototype._uiSourceCodeWorkingCopyChanged):
23060         (WebInspector.TabbedEditorContainer.prototype._uiSourceCodeWorkingCopyCommitted):
23061         (WebInspector.TabbedEditorContainer.prototype._uiSourceCodeFormattedChanged):
23062         * inspector/front-end/TimelineModel.js:
23063         (WebInspector.TimelineModelLoader.prototype.write):
23064         * inspector/front-end/UISourceCodeFrame.js:
23065         (WebInspector.UISourceCodeFrame.prototype._onFormattedChanged):
23066         * inspector/front-end/Workspace.js:
23067         (WebInspector.WorkspaceController.prototype._frameAdded):
23068         (WebInspector.Project.prototype._fileAdded):
23069         (WebInspector.Project.prototype._fileRemoved):
23070
23071 2012-11-05  Pavel Feldman  <pfeldman@chromium.org>
23072
23073         Web Inspector: render message bubbles in CodeMirror experiment.
23074         https://bugs.webkit.org/show_bug.cgi?id=101164
23075
23076         Reviewed by Vsevolod Vlasov.
23077
23078         It sounds like addLineWidget just makes it happen.
23079
23080         * inspector/front-end/CodeMirrorTextEditor.js:
23081         (WebInspector.CodeMirrorTextEditor):
23082         (WebInspector.CodeMirrorTextEditor.prototype.addDecoration):
23083         (WebInspector.CodeMirrorTextEditor.prototype.get if):
23084         (WebInspector.CodeMirrorTextEditor.prototype.removeDecoration):
23085         (WebInspector.CodeMirrorTextEditor.prototype._change):
23086         * inspector/front-end/DefaultTextEditor.js:
23087         (.preventDefaultOnMouseUp):
23088         * inspector/front-end/PresentationConsoleMessageHelper.js:
23089         (WebInspector.PresentationConsoleMessageHelper):
23090         * inspector/front-end/cm/cmdevtools.css:
23091         (.CodeMirror .webkit-html-message-bubble):
23092         (.CodeMirror .webkit-html-message-bubble img):
23093         (.CodeMirror .webkit-html-warning-message):
23094         (.CodeMirror .webkit-html-error-message):
23095
23096 2012-11-05  Thiago Marcos P. Santos  <thiago.santos@intel.com>
23097
23098         Validate CSS Device Adaptation properties and resolve shorthands
23099         https://bugs.webkit.org/show_bug.cgi?id=95962
23100
23101         Reviewed by Alexis Menard.
23102
23103         Add the missing keywords and properties for the viewport at-rule.
23104         Note that we have to mark that we are inside a viewport scope because
23105         some properties are not validated as they would be inside a style
23106         rule. As an example, the semantics of CSSPropertyWidth are completely
23107         different: on a viewport rule, it stands for a shorthand for the
23108         minimum and maximum width.
23109
23110         Test: css3/device-adapt/viewport-properties-validation.html
23111
23112         * css/CSSComputedStyleDeclaration.cpp:
23113         (WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue):
23114         * css/CSSParser.cpp:
23115         (WebCore::CSSParser::parseValue):
23116         (WebCore):
23117         (WebCore::CSSParser::parseViewportProperty):
23118         (WebCore::CSSParser::parseViewportShorthand):
23119         * css/CSSParser.h:
23120         * css/CSSProperty.cpp:
23121         (WebCore::CSSProperty::isInheritedProperty):
23122         * css/CSSPropertyNames.in:
23123         * css/CSSValueKeywords.in:
23124
23125 2012-11-05  Sheriff Bot  <webkit.review.bot@gmail.com>
23126
23127         Unreviewed, rolling out r133286, r133385, and r133394.
23128         http://trac.webkit.org/changeset/133286
23129         http://trac.webkit.org/changeset/133385
23130         http://trac.webkit.org/changeset/133394
23131         https://bugs.webkit.org/show_bug.cgi?id=101198
23132
23133         Broke image placement on some web sites. (Requested by kling
23134         on #webkit).
23135
23136         * css/StyleResolver.cpp:
23137         (WebCore::StyleResolver::sweepMatchedPropertiesCache):
23138         (WebCore::StyleResolver::matchAllRules):
23139         (WebCore::StyleResolver::canShareStyleWithElement):
23140         * dom/Attr.cpp:
23141         (WebCore::Attr::detachFromElementWithValue):
23142         * dom/Element.cpp:
23143         (WebCore::Element::~Element):
23144         (WebCore::Element::detachAttribute):
23145         (WebCore::Element::getAttribute):
23146         (WebCore::Element::setAttributeNode):
23147         (WebCore::Element::removeAttributeInternal):
23148         (WebCore::Element::getAttributeNode):
23149         (WebCore::Element::getAttributeNodeNS):
23150         (WebCore::Element::normalizeAttributes):
23151         (WebCore::Element::attrIfExists):
23152         (WebCore::Element::ensureAttr):
23153         (WebCore::Element::cloneAttributesFromElement):
23154         * dom/Element.h:
23155         (Element):
23156         (WebCore::Element::updateInvalidAttributes):
23157         * dom/ElementAttributeData.cpp:
23158         (WebCore::MutableElementAttributeData::MutableElementAttributeData):
23159         (WebCore):
23160         (WebCore::attrListMap):
23161         (WebCore::attrListForElement):
23162         (WebCore::ensureAttrListForElement):
23163         (WebCore::removeAttrListForElement):
23164         (WebCore::findAttrInList):
23165         (WebCore::ElementAttributeData::attrIfExists):
23166         (WebCore::ElementAttributeData::ensureAttr):
23167         (WebCore::ElementAttributeData::setAttr):
23168         (WebCore::ElementAttributeData::removeAttr):
23169         (WebCore::ElementAttributeData::detachAttrObjectsFromElement):
23170         (WebCore::ElementAttributeData::reportMemoryUsage):
23171         (WebCore::ElementAttributeData::cloneDataFrom):
23172         (WebCore::ElementAttributeData::clearAttributes):
23173         (WebCore::ElementAttributeData::getAttributeNode):
23174         * dom/ElementAttributeData.h:
23175         (WebCore):
23176         (WebCore::ElementAttributeData::attributeStyle):
23177         (WebCore::ElementAttributeData::setAttributeStyle):
23178         (ElementAttributeData):
23179         (WebCore::ElementAttributeData::ElementAttributeData):
23180         * dom/Node.h:
23181         (WebCore):
23182         (WebCore::Node::hasAttrList):
23183         (WebCore::Node::attributeStyleDirty):
23184         (WebCore::Node::setAttributeStyleDirty):
23185         (WebCore::Node::clearAttributeStyleDirty):
23186         (Node):
23187         (WebCore::Node::setHasAttrList):
23188         (WebCore::Node::clearHasAttrList):
23189         (WebCore::Node::isStyleAttributeValid):
23190         (WebCore::Node::setIsStyleAttributeValid):
23191         (WebCore::Node::clearIsStyleAttributeValid):
23192         * dom/StyledElement.cpp:
23193         (WebCore::StyledElement::updateStyleAttribute):
23194         (WebCore::StyledElement::attributeChanged):
23195         (WebCore::StyledElement::styleAttributeChanged):
23196         (WebCore::StyledElement::inlineStyleChanged):
23197         (WebCore::StyledElement::updateAttributeStyle):
23198         * dom/StyledElement.h:
23199         (StyledElement):
23200         (WebCore::StyledElement::invalidateStyleAttribute):
23201         (WebCore::StyledElement::attributeStyle):
23202         * inspector/InspectorCSSAgent.cpp:
23203         (WebCore::InspectorCSSAgent::buildObjectForAttributesStyle):
23204
23205 2012-11-05  Simon Hausmann  <simon.hausmann@digia.com>
23206
23207         Unreviewed trivial Qt build fix.
23208
23209         Surround imports from QtGui by QT_{BEGIN,END}_NAMESPACE to fix namespaced
23210         builds.
23211
23212         * platform/graphics/qt/GraphicsContextQt.cpp:
23213         * platform/graphics/qt/ImageQt.cpp:
23214
23215 2012-11-05  Shinya Kawanaka  <shinyak@chromium.org>
23216
23217         [Shadow] ShadowRoot type is not set correctly.
23218         https://bugs.webkit.org/show_bug.cgi?id=101188
23219
23220         Reviewed by Hajime Morita.
23221
23222         ShadowRoot type is not set correctly in Release build. We have had to remove #ifndef block.
23223
23224         Test: fast/dom/shadow/shadowroot-type.html
23225
23226         * dom/ShadowRoot.cpp:
23227         (WebCore::ShadowRoot::create):
23228         * testing/Internals.cpp:
23229         (WebCore::Internals::shadowRootType):
23230         (WebCore):
23231         * testing/Internals.h:
23232         (Internals):
23233         * testing/Internals.idl:
23234
23235 2012-11-05  Kent Tamura  <tkent@chromium.org>
23236
23237         BaseChooserOnlyDateAndTimeInputType should implement DateTimeChooserClient
23238         https://bugs.webkit.org/show_bug.cgi?id=101038
23239
23240         Reviewed by Hajime Morita.
23241
23242         Add DateTimeChooserClient behavior to BaseChooserOnlyDateAndTimeInputType.
23243         It means that date/time input elements without
23244         ENABLE_INPUT_MULTIPLE_FIELDS_UI can open date/time choosers by
23245         DOMActivate event.
23246
23247         This patch doesn't change behavior yet because Chromimum-Android port
23248         intercepts user events and doesn't deliver them to date/time input
23249         elements. <http://crbug.com/159381>
23250
23251         * html/BaseChooserOnlyDateAndTimeInputType.cpp:
23252         Add DateTimeChooserClient behavior. The code is similar to
23253         PickerIndicatorElement.
23254         (WebCore::BaseChooserOnlyDateAndTimeInputType::~BaseChooserOnlyDateAndTimeInputType):
23255         Closes DateTimeChooser.
23256         (WebCore::BaseChooserOnlyDateAndTimeInputType::handleDOMActivateEvent):
23257         Open DateTimeChooser if
23258          - The element is not disabled,
23259          - The element is not read-only,
23260          - The element has a renderer,
23261          - This event is created by a user gesture, and
23262          - The element has no DateTimeChooser.
23263         (WebCore::BaseChooserOnlyDateAndTimeInputType::detach):
23264         Closes DateTimeChooser.
23265         (WebCore::BaseChooserOnlyDateAndTimeInputType::didChooseValue):
23266         Set a string value coming from a chooser to the input element.
23267         (WebCore::BaseChooserOnlyDateAndTimeInputType::didEndChooser):
23268         Clear m_dateTimeChooser when the chooser was closed.
23269         (WebCore::BaseChooserOnlyDateAndTimeInputType::closeDateTimeChooser):
23270         Requests to close the chooser.
23271         * html/BaseChooserOnlyDateAndTimeInputType.h:
23272         (BaseChooserOnlyDateAndTimeInputType):
23273          - Implement DateTimeChooserClient
23274          - Add closeDateTimeChooser helper function.
23275          - Add detach override.
23276          - Add m_dateTimeChooser.
23277         * html/HTMLInputElement.cpp:
23278         (WebCore::HTMLInputElement::setupDateTimeChooserParameters):
23279         Added. The code is moved from PickerIndicatorElement.cpp in order to
23280         share it with BaseChooserOnlyDateAndTimeInputType.
23281         * html/HTMLInputElement.h:
23282         (HTMLInputElement): Declare setupDateTimeChooserParameters.
23283         * html/shadow/PickerIndicatorElement.cpp:
23284         (WebCore::PickerIndicatorElement::openPopup):
23285         Move some code to HTMLInputElement::setupDateTimeChooserParameters.
23286
23287 2012-11-04  Julien Chaffraix  <jchaffraix@webkit.org>
23288
23289         Fix the collapsing border code to handle mixed directionality at the row level
23290         https://bugs.webkit.org/show_bug.cgi?id=101060
23291
23292         Reviewed by Ojan Vafai.
23293
23294         After bug 87900, we support mixed directionality at the row-group level. For coherency
23295         - as the underlying code didn't support it - we were artificially ignoring 'direction'
23296         below the row-group. This change relaxes the restriction and patches the collapsing
23297         borders code to query the right style and border.
23298
23299         Tests: fast/table/border-collapsing/table-ltr-rows-mixed-direction.html
23300                fast/table/border-collapsing/table-rtl-row-mixed-direction.html
23301
23302         * rendering/RenderTable.cpp:
23303         (WebCore::RenderTable::tableStartBorderAdjoiningCell):
23304         (WebCore::RenderTable::tableEndBorderAdjoiningCell):
23305         Changed to query the row's direction.
23306
23307         * rendering/RenderTableCell.cpp:
23308         (WebCore::RenderTableCell::hasStartBorderAdjoiningTable):
23309         (WebCore::RenderTableCell::hasEndBorderAdjoiningTable):
23310         Added 2 helper functions. They determine if a specific cell's border
23311         adjoins the table. This code is required as the last cell's end border
23312         can be resolved against the start border.
23313
23314         (WebCore::RenderTableCell::computeCollapsedStartBorder):
23315         (WebCore::RenderTableCell::computeCollapsedEndBorder):
23316         Updated these functions now that being the start / end column doesn't mean
23317         that we have to resolve against the row / row-group / table's border.
23318
23319         * rendering/RenderTableCell.h:
23320         (WebCore::RenderTableCell::styleForCellFlow):
23321         Updated to return the row's style.
23322
23323         * rendering/RenderTableRow.cpp:
23324         (WebCore::RenderTableRow::borderAdjoiningStartCell):
23325         (WebCore::RenderTableRow::borderAdjoiningEndCell):
23326         * rendering/RenderTableSection.cpp:
23327         (WebCore::RenderTableSection::borderAdjoiningStartCell):
23328         (WebCore::RenderTableSection::borderAdjoiningEndCell):
23329         Updated these functions to work with mixed directionality.
23330
23331         * rendering/RenderTableSection.cpp:
23332         (WebCore::RenderTableSection::setLogicalPositionForCell):
23333         Changed this function to use the section's direction. This is wrong and should be changed
23334         once we properly fix the collapsing border code.
23335
23336         (WebCore::RenderTableSection::logicalRectForWritingModeAndDirection):
23337         Added a FIXME.
23338
23339         * rendering/style/CollapsedBorderValue.h:
23340         (WebCore::CollapsedBorderValue::width):
23341         This is a bug in our implementation: we used to return a non-zero width for inexistant borders (per CSS 2.1,
23342         'border-style: off | hidden' should have a 0 width). This is covered by our existing tests (among others by
23343         fast/table/border-collapsing/last-cell-left-border-hidden-table-ltr-section-rtl.html).
23344
23345 2012-11-04  Andrey Adaikin  <aandrey@chromium.org>
23346
23347         Web Inspector: [Canvas] do not blow up the capturing log
23348         https://bugs.webkit.org/show_bug.cgi?id=100752
23349
23350         Reviewed by Pavel Feldman.
23351
23352         Clear obsolete calls in the canvas 2D capturing log in runtime.
23353         Now we store in the log only minimum number of calls that are necessary to replay a
23354         canvas 2D context. To achieve that we find in runtime those calls in the log that no
23355         longer contribute to the final context state and remove them.
23356         These are the rules according which we find and remove such calls:
23357         - all PATH methods between a clip() call and beginPath() call can be removed
23358         - all MATRIX methods before a restore() or setTransform() call but after any PATH or corresponding save() method
23359         - all consecutive save() + restore() calls
23360
23361         Tests: inspector/profiler/canvas2d/canvas2d-api-changes.html
23362                inspector/profiler/canvas2d/canvas2d-profiler-capturing-basics.html
23363
23364         * inspector/InjectedScriptCanvasModuleSource.js:
23365         (.):
23366
23367 2012-11-04  Shinya Kawanaka  <shinyak@chromium.org>
23368
23369         [Shadow] ShadowRoot should have a method to return ShadowRootType.
23370         https://bugs.webkit.org/show_bug.cgi?id=101178
23371
23372         Reviewed by Hajime Morita.
23373
23374         When we style PseudoCustomElement, we have to know ShadowRootType.
23375         We would like to expose a method to get ShadowRootType also in Release mode.
23376
23377         This is a preparation patch for Bug 101170.
23378
23379         * dom/ShadowRoot.h:
23380         (ShadowRoot):
23381
23382 2012-11-04  Keishi Hattori  <keishi@webkit.org>
23383
23384         Introduce Month class to calendar picker
23385         https://bugs.webkit.org/show_bug.cgi?id=101024
23386
23387         Reviewed by Kent Tamura.
23388
23389         Month class needs to be introduced to implement a month picker. This
23390         patch just introduces the Month class into the calendar picker without
23391         changing the current behavior.
23392
23393         No new tests. Covered by existing calendar-picker-*.html tests.
23394
23395         * Resources/pagepopups/calendarPicker.js:
23396         (Month.prototype.toLocaleString): Returns a localized month string.
23397         (Month): Takes a Month object, number representing the month, or year and month numbers.
23398         (Month.parse): Returns a new Month from an ISO month string.
23399         (Month.createFromDate): Returns a new Month containing the given datetime.
23400         (Month.prototype.equals): Returns true if the given month is the same.
23401         (Month.prototype.previous): Returns the previous month.
23402         (Month.prototype.next): Returns the next month.
23403         (Month.prototype.startDate): Returns a datetime that is the start of this month. The value is inclusive.
23404         (Month.prototype.endDate): Returns a datetime that is the end of this month. The value is exclusive.
23405         (Month.prototype.valueOf): Returns a number representing the month.
23406         (Month.prototype.toString): Returns an ISO month string.
23407         (YearMonthController): Use Month object.
23408         (YearMonthController.prototype.attachTo): Year 275760 ends in September so use the year before to measure the label width.
23409         (YearMonthController.prototype.setMonth): Take a month object.
23410         (YearMonthController.prototype._redraw): Use ISO month string for element.dataset.value.
23411         (YearMonthController.prototype._handleYearMonthChange):
23412         (YearMonthController.prototype.moveRelatively):
23413         (DaysTable): Use Month object.
23414         (DaysTable.prototype._renderMonth): Take a month object. Testing for isNaN is moved up to fix a bug when showing September, 275760.
23415         (DaysTable.prototype._navigateToMonth): Take a month object.
23416         (DaysTable.prototype._navigateToMonthWithAnimation): Take a month object.
23417         (DaysTable.prototype.navigateToMonthAndKeepSelectionPosition): Take a month object.
23418         (DaysTable.prototype.selectDate):
23419         (DaysTable.prototype._maybeSetPreviousMonth): Use Month object to calculate the previous month.
23420         (DaysTable.prototype._maybeSetNextMonth): Use Month object to calculate the next month.
23421
23422 2012-11-04  Halton Huo  <halton.huo@intel.com>
23423
23424         [EFL] Use _LIBRARIES instead of _LIBRARY
23425         https://bugs.webkit.org/show_bug.cgi?id=101042
23426
23427         Reviewed by Gyuyoung Kim.
23428
23429         In CMake Find files, _LIBRARY is intended for internal use, should
23430         use _LIBRARIES instead.
23431
23432         * PlatformEfl.cmake: s/_LIBRARY}/_LIBRARIES}
23433
23434 2012-11-04  MORITA Hajime  <morrita@google.com>
23435
23436         Shadow DOM should be able to be disabled per context.
23437         https://bugs.webkit.org/show_bug.cgi?id=101173
23438
23439         Reviewed by Dimitri Glazkov.
23440
23441         This change pulls back relevant bits from r131549. Note that if
23442         the the port enables runtime Shadow DOM flag, this can cause slow
23443         down on some Chromium page cycler test cases (which r131549
23444         attempted to fix).
23445
23446         This change is temporal and the flags should be switched back from
23447         ContextFeatures to RuntimeEnabledFeatures once it gains sufficent
23448         stability.
23449
23450         * dom/ContextFeatures.cpp:
23451         (WebCore::ContextFeatures::shadowDOMEnabled):
23452         (WebCore):
23453         * dom/ContextFeatures.h:
23454         * dom/Position.cpp:
23455         (WebCore::Position::Position):
23456         (WebCore::Position::findParent):
23457         * dom/TreeScope.cpp:
23458         (WebCore::TreeScope::getSelection):
23459         * html/HTMLTagNames.in:
23460         * html/shadow/HTMLContentElement.cpp:
23461         (WebCore::HTMLContentElement::contentTagName):
23462         * page/DOMWindow.idl:
23463
23464 2012-11-04  Shinya Kawanaka  <shinyak@chromium.org>
23465
23466         [Shadow] Implement custom pseudo-elements styling
23467         https://bugs.webkit.org/show_bug.cgi?id=100812
23468
23469         Reviewed by Hajime Morita.
23470
23471         Instead of using ElementRareData::m_shadowPseudoId, we use 'pseudo' attribute.
23472
23473         Later we would like to remove Element::shadowPseudoId and Element::setShadowPseudoId
23474         and use pseudo()/setPseudo() instead (Bug 101171).
23475
23476         Test: fast/dom/shadow/styling-pseudo-attribute.html
23477
23478         * dom/Element.cpp:
23479         (WebCore::Element::shadowPseudoId):
23480         (WebCore::Element::setShadowPseudoId):
23481         * dom/ElementRareData.cpp:
23482         (WebCore::ElementRareData::reportMemoryUsage):
23483         * dom/ElementRareData.h:
23484         (ElementRareData):
23485
23486 2012-11-04  Kent Tamura  <tkent@chromium.org>
23487
23488         BaseChooserOnlyDateAndTimeInputType should have BaseClickableWithKeyInputType behavior
23489         https://bugs.webkit.org/show_bug.cgi?id=101039
23490
23491         Reviewed by Hajime Morita.
23492
23493         Add BaseClickableWithKeyInputType behavior to
23494         BaseChooserOnlyDateAndTimeInputType. It means date/time input types
23495         without ENABLE_INPUT_MULTIPLE_FIELDS_UI receive DOMActivate events by
23496         pressing space or enter key. They're going to open a date/time chooser
23497         by DOMActive event.
23498
23499         Because BaseChooserOnlyDateAndTimeInputType inherits from
23500         BaseDateAndTimeInputType, it can't inherit
23501         BaseClickableWithKeyInputType. So, this patch adds static helper
23502         functions to BaseClickableWithKeyInputType, and
23503         BaseChooserOnlyDateAndTimeInputType uses them.
23504
23505         This patch doesn't change behavior yet because Chromimum-Android port
23506         intercepts user events and doesn't deliver them to date/time input
23507         elements.
23508
23509         * html/BaseChooserOnlyDateAndTimeInputType.cpp:
23510         (WebCore::BaseChooserOnlyDateAndTimeInputType::handleDOMActivateEvent):
23511         Add an empty implementation with a FIXME comment.
23512         (WebCore::BaseChooserOnlyDateAndTimeInputType::handleKeydownEvent):
23513         Add BaseClickableWithKeyInputType behavior by a helper function.
23514         (WebCore::BaseChooserOnlyDateAndTimeInputType::handleKeypressEvent): Ditto.
23515         (WebCore::BaseChooserOnlyDateAndTimeInputType::handleKeyupEvent): Ditto.
23516         (WebCore::BaseChooserOnlyDateAndTimeInputType::accessKeyAction): Ditto.
23517         * html/BaseChooserOnlyDateAndTimeInputType.h:
23518         (BaseChooserOnlyDateAndTimeInputType): Add function declarations.
23519         * html/BaseClickableWithKeyInputType.cpp:
23520         Add static helper functions, and existing member functions use them.
23521         * html/BaseClickableWithKeyInputType.h:
23522         (BaseClickableWithKeyInputType): Add declarations of the helper functions.
23523         * html/InputType.h:
23524         (InputType): Make dispatchSimulatedClickIfActive public because it is
23525         called from a helper function.
23526
23527 2012-11-04  Sheriff Bot  <webkit.review.bot@gmail.com>
23528
23529         Unreviewed, rolling out r133416.
23530         http://trac.webkit.org/changeset/133416
23531         https://bugs.webkit.org/show_bug.cgi?id=101169
23532
23533         Broke world selection by right click (Requested by rniwa on
23534         #webkit).
23535
23536         * page/EventHandler.cpp:
23537         (WebCore::EventHandler::handleGestureForTextSelectionOrContextMenu):
23538         (WebCore::EventHandler::sendContextMenuEvent):
23539
23540 2012-11-04  Gyuyoung Kim  <gyuyoung.kim@samsung.com>
23541
23542         Missing ASCIILiteral in a place of accessibility
23543         https://bugs.webkit.org/show_bug.cgi?id=101160
23544
23545         Reviewed by Darin Adler.
23546
23547         ASCIILiteral usage is being missed in a spot of accessibliity.
23548
23549         * accessibility/AccessibilityMediaControls.cpp:
23550         (WebCore::AccessibilityMediaTimeDisplay::accessibilityDescription):
23551
23552 2012-11-03  Balazs Kelemen  <kbalazs@webkit.org>
23553
23554         [Qt][WK2] setPlatformStrategies always asserts after r132744
23555         https://bugs.webkit.org/show_bug.cgi?id=100838
23556
23557         Reviewed by Simon Hausmann.
23558
23559         Reland with build fixes.
23560
23561         The problem here is that we use QWebSettings::clearMemoryCaches, a WebKit1 API
23562         from the injected bundle, which calls initializeWebCoreQt and it sets the platform
23563         strategies to the one for WebKit1. We should stop using WebKit1 API's from WebKit2
23564         code. In order to keep the behavior, this patch adds exported helpers to WebCore
23565         that can be used from DumpRenderTree and WebKitTestRunner. This is the same idea
23566         as WebCoreTestSupport but these helpers are specific to Qt. Technically we could
23567         add it to the WebKit1 API for the time being, but my goal was to move in the direction
23568         of removing the WebKit1 dependency from WebKitTestRunner. We only build the file
23569         in non production mode.
23570
23571         Basically covered by all tests.
23572
23573         * Target.pri:
23574         * WebCore.pri: We need to link against fontconfig (only in non-production mode) since
23575         initializeTestFonts uses it.
23576         * platform/qt/QtTestSupport.cpp: Added. I choose GPL license because code from qwebsettings.cpp
23577         is also under that.
23578         (WebKit):
23579         (WebKit::QtTestSupport::clearMemoryCaches): This is basically a copy of QWebSettings::clearMemoryCaches
23580         without calling initializeWebCoreQt.
23581         (WebKit::QtTestSupport::initializeTestFonts): I moved this code here as well now that we have to expose
23582         symbols from WebCore anyway. The advantage is that now we don't have to build it twice and we don't need
23583         additional files to forward it from the directory of DumpRenderTree for WebKitTestRunner.
23584         I added a call to FontCace::invalidate in the case when the font set has been changed so that it will do
23585         the job even if we would stop clearing all caches between tests. Also moved the call to
23586         QFontDatabase::removeAllApplicationFonts from callers to here.
23587         * platform/qt/QtTestSupport.h:
23588         (WebKit):
23589         (QtTestSupport):
23590
23591 2012-11-04  Florin Malita  <fmalita@chromium.org>
23592
23593         Color-profile property triggers assert
23594         https://bugs.webkit.org/show_bug.cgi?id=101080
23595
23596         Reviewed by Dirk Schulze.
23597
23598         CSSPropertyColorProfile is not handled in StyleResolver::applySVGProperty(), triggering the
23599         unimplemented property assert. Adding a stub entry to avoid that.
23600
23601         Test: svg/css/color-profile-crash.html
23602
23603         * css/SVGCSSStyleSelector.cpp:
23604         (WebCore::StyleResolver::applySVGProperty):
23605
23606 2012-11-04  Kaustubh Atrawalkar  <kaustubh@motorola.com>
23607
23608         Unable to copy text on disabled input fields on long press gesture
23609         https://bugs.webkit.org/show_bug.cgi?id=99698
23610
23611         Reviewed by Ryosuke Niwa.
23612
23613         Text from disabled input/text should be allowed to select. Replaced isContentEditable()
23614         with canStartSelection()
23615
23616         Test: fast/events/touch/gesture/disabled-input-text-selection.html
23617
23618         * page/EventHandler.cpp:
23619         (WebCore::EventHandler::handleGestureLongPress):
23620
23621 2012-11-03  Sheriff Bot  <webkit.review.bot@gmail.com>
23622
23623         Unreviewed, rolling out r133403, r133404, and r133409.
23624         http://trac.webkit.org/changeset/133403
23625         http://trac.webkit.org/changeset/133404
23626         http://trac.webkit.org/changeset/133409
23627         https://bugs.webkit.org/show_bug.cgi?id=101158
23628
23629         "Broke tests" (Requested by kbalazs on #webkit).
23630
23631         * Target.pri:
23632         * WebCore.pri:
23633         * platform/qt/QtTestSupport.h: Removed.
23634
23635 2012-11-03  Alexey Proskuryakov  <ap@apple.com>
23636
23637         Get rid of USE(CFURLSTORAGESESSIONS)
23638         https://bugs.webkit.org/show_bug.cgi?id=101131
23639
23640         Reviewed by Sam Weinig.
23641
23642         This is always enabled on CFNetwork based platforms.
23643
23644         * WebCore.exp.in:
23645         * page/Settings.cpp:
23646         (WebCore::Settings::setPrivateBrowsingEnabled):
23647         * platform/mac/CookieJar.mm:
23648         (WebCore::cookies):
23649         (WebCore::cookieRequestHeaderFieldValue):
23650         (WebCore::setCookies):
23651         (WebCore::cookiesEnabled):
23652         (WebCore::getRawCookies):
23653         (WebCore::deleteCookie):
23654         * platform/network/ResourceHandle.h:
23655         (ResourceHandle):
23656         * platform/network/cf/CookieStorageCFNet.cpp:
23657         (WebCore):
23658         (WebCore::currentCFHTTPCookieStorage):
23659         * platform/network/cf/CookieStorageCFNet.h:
23660         * platform/network/cf/ResourceHandleCFNet.cpp:
23661         (WebCore::willSendRequest):
23662         (WebCore::makeFinalRequest):
23663         (WebCore::ResourceHandle::willSendRequest):
23664         (WebCore):
23665         * platform/network/cf/ResourceRequest.h:
23666         (ResourceRequest):
23667         * platform/network/cf/ResourceRequestCFNet.cpp:
23668         (WebCore::ResourceRequest::doUpdatePlatformRequest):
23669         (WebCore):
23670         * platform/network/mac/CookieStorageMac.mm:
23671         (WebCore::setCookieStoragePrivateBrowsingEnabled):
23672         * platform/network/mac/ResourceHandleMac.mm:
23673         (WebCore::shouldRelaxThirdPartyCookiePolicy):
23674         (WebCore::ResourceHandle::createNSURLConnection):
23675         (WebCore::ResourceHandle::willSendRequest):
23676         (WebCore):
23677         * platform/network/mac/ResourceRequestMac.mm:
23678         (WebCore):
23679         (WebCore::ResourceRequest::setStorageSession):
23680
23681 2012-11-03  Balazs Kelemen  <kbalazs@webkit.org>
23682
23683         [Qt][WK2] setPlatformStrategies always asserts after r132744
23684         https://bugs.webkit.org/show_bug.cgi?id=100838
23685
23686         Reviewed by Simon Hausmann.
23687
23688         Reland with build fix.
23689
23690         The problem here is that we use QWebSettings::clearMemoryCaches, a WebKit1 API
23691         from the injected bundle, which calls initializeWebCoreQt and it sets the platform
23692         strategies to the one for WebKit1. We should stop using WebKit1 API's from WebKit2
23693         code. In order to keep the behavior, this patch adds exported helpers to WebCore
23694         that can be used from DumpRenderTree and WebKitTestRunner. This is the same idea
23695         as WebCoreTestSupport but these helpers are specific to Qt. Technically we could
23696         add it to the WebKit1 API for the time being, but my goal was to move in the direction
23697         of removing the WebKit1 dependency from WebKitTestRunner. We only build the file
23698         in non production mode.
23699
23700         Basically covered by all tests.
23701
23702         * Target.pri:
23703         * WebCore.pri: We need to link against fontconfig (only in non-production mode) since
23704         initializeTestFonts uses it.
23705         * platform/qt/QtTestSupport.cpp: Added. I choose GPL license because code from qwebsettings.cpp
23706         is also under that.
23707         (WebKit):
23708         (WebKit::QtTestSupport::clearMemoryCaches): This is basically a copy of QWebSettings::clearMemoryCaches
23709         without calling initializeWebCoreQt.
23710         (WebKit::QtTestSupport::initializeTestFonts): I moved this code here as well now that we have to expose
23711         symbols from WebCore anyway. The advantage is that now we don't have to build it twice and we don't need
23712         additional files to forward it from the directory of DumpRenderTree for WebKitTestRunner.
23713         I added a call to FontCace::invalidate in the case when the font set has been changed so that it will do
23714         the job even if we would stop clearing all caches between tests. Also moved the call to
23715         QFontDatabase::removeAllApplicationFonts from callers to here.
23716         * platform/qt/QtTestSupport.h:
23717         (WebKit):
23718         (QtTestSupport):
23719
23720 2012-11-03  Sheriff Bot  <webkit.review.bot@gmail.com>
23721
23722         Unreviewed, rolling out r133397.
23723         http://trac.webkit.org/changeset/133397
23724         https://bugs.webkit.org/show_bug.cgi?id=101155
23725
23726         "Broke Qt. No way to force the damn bots to do a clean build.
23727         I'm giving up." (Requested by kbalazs on #webkit).
23728
23729         * Target.pri:
23730         * WebCore.pri:
23731         * platform/qt/QtTestSupport.h: Removed.
23732
23733 2012-11-03  Stephen White  <senorblanco@chromium.org>
23734
23735         Speculative fix to eliminate flakiness in
23736         css3/filters/blur-filter-page-scroll-self.html
23737         https://bugs.webkit.org/show_bug.cgi?id=91620.
23738         Suspicion is that a prior test is setting
23739         window.internals.settings.setEnableCompositingForFixedPosition(true),
23740         causing this test to be intermittely run on the GPU, giving different
23741         pixel results depending on test order.
23742
23743         Reviewed by Jochen Eisinger.
23744
23745         Covered by css3/filters/blur-filter-page-scroll-self.html
23746
23747         * testing/InternalSettings.cpp:
23748         (WebCore::InternalSettings::Backup::Backup):
23749         (WebCore::InternalSettings::Backup::restoreTo):
23750         * testing/InternalSettings.h:
23751         (Backup):
23752
23753 2012-11-03  Mark Rowe  <mrowe@apple.com>
23754
23755         REGRESSION (r132858): Crash below -[DOMElement setClassName:] when called with a nil string
23756
23757         Reviewed by Anders Carlsson.
23758
23759         The changes in r132858 introduced an overload of AtomicString::add for CFStrings. However, the overload
23760         that was introduced is not null safe.
23761
23762         * platform/text/cf/AtomicStringCF.cpp:
23763         (WTF::AtomicString::add): Handle a null string by returning a null StringImpl.
23764
23765 2012-11-03  Balazs Kelemen  <kbalazs@webkit.org>
23766
23767         [Qt][WK2] setPlatformStrategies always asserts after r132744
23768         https://bugs.webkit.org/show_bug.cgi?id=100838
23769
23770         Reviewed by Simon Hausmann.
23771
23772         The problem here is that we use QWebSettings::clearMemoryCaches, a WebKit1 API
23773         from the injected bundle, which calls initializeWebCoreQt and it sets the platform
23774         strategies to the one for WebKit1. We should stop using WebKit1 API's from WebKit2
23775         code. In order to keep the behavior, this patch adds exported helpers to WebCore
23776         that can be used from DumpRenderTree and WebKitTestRunner. This is the same idea
23777         as WebCoreTestSupport but these helpers are specific to Qt. Technically we could
23778         add it to the WebKit1 API for the time being, but my goal was to move in the direction
23779         of removing the WebKit1 dependency from WebKitTestRunner. We only build the file
23780         in non production mode.
23781
23782         Basically covered by all tests.
23783
23784         * Target.pri:
23785         * WebCore.pri: We need to link against fontconfig (only in non-production mode) since
23786         initializeTestFonts uses it.
23787         * platform/qt/QtTestSupport.cpp: Added. I choose GPL license because code from qwebsettings.cpp
23788         is also under that.
23789         (WebKit):
23790         (WebKit::QtTestSupport::clearMemoryCaches): This is basically a copy of QWebSettings::clearMemoryCaches
23791         without calling initializeWebCoreQt.
23792         (WebKit::QtTestSupport::initializeTestFonts): I moved this code here as well now that we have to expose
23793         symbols from WebCore anyway. The advantage is that now we don't have to build it twice and we don't need
23794         additional files to forward it from the directory of DumpRenderTree for WebKitTestRunner.
23795         I added a call to FontCace::invalidate in the case when the font set has been changed so that it will do
23796         the job even if we would stop clearing all caches between tests. Also moved the call to
23797         QFontDatabase::removeAllApplicationFonts from callers to here.
23798         * platform/qt/QtTestSupport.h:
23799         (WebKit):
23800         (QtTestSupport):
23801
23802 2012-11-03  Dan Beam  <dbeam@chromium.org>
23803
23804         Implement HTMLFormElement#requestAutocomplete and associated events
23805         https://bugs.webkit.org/show_bug.cgi?id=100557
23806
23807         Reviewed by Adam Barth.
23808
23809         Implements an initial version of the proposal for interactive autocomplete outlined in this email:
23810         http://lists.whatwg.org/htdig.cgi/whatwg-whatwg.org/2012-October/037711.html
23811
23812         The goal of this patch is to allow web authors to call formElement.requestAutocomplete(); after subscribing for
23813         autocomplete/autocompleteerror events on formElement. If the form's [autocomplete] attribute is "off" an
23814         error will be dispatched. Otherwise, a request will be issued to the FrameLoaderClient.  At the moment, the
23815         implementation in Chrome (https://codereview.chromium.org/11270018/) will simply dispatch an error until the
23816         UI on Chrome's side is built. Both autocomplete and autocompleteerror events will be dispatched asynchronously
23817         after a small delay to behave consistently in all situations and implementations.
23818
23819         Currently this is behind the feature flag REQUEST_AUTOCOMPLETE, which is disabled.
23820
23821         Test: fast/forms/form-request-autocomplete.html
23822
23823         * dom/EventNames.h:
23824         (WebCore):
23825
23826         Added autocomplete and autocompleteerror events. The autocomplete event is dispatched after a user adds more
23827         information to a form using the future UI. This is not currently dispatched in any implementation (including Chrome)
23828         but will be in the future. The autocompleteerror event is dispatched when the form has [autocomplete="off"] on the
23829         node being asked for an interactive autocomplete. The user agent may also dispatch this event if it doesn't implement
23830         this API but has turned on the feature flag, can't currently show an autocomplete UI (e.g. running headlessly or in
23831         an HTML notification, security concerns, or any other reason it desires).
23832
23833         * html/HTMLAttributeNames.in:
23834
23835         Added onautocomplete and onautocompleteerror attributes so they can be parsed when creating form elements and used
23836         as event listeners. For example:
23837
23838           <form onautocomplete="/* when autocomplete succeeds */" autocompleteerror="/* when autocomplete fails */">
23839
23840         * html/HTMLFormElement.cpp:
23841         (WebCore::HTMLFormElement::HTMLFormElement):
23842         (WebCore):
23843
23844         Added m_requestAutocompleteTimer (a timer that's used to dispatch events asynchronously) to the initializer list that
23845         triggers requestAutocompleteTimerFired when it times out.
23846
23847         (WebCore::HTMLFormElement::requestAutocomplete):
23848
23849         Called when HTMLFormElement#requestAutocomplete is called from JS (also see HTMLFormElement.idl) and decides whether
23850         to dispatch an error and exit early (in the case where autocomplete="off") or pass the request on to the
23851         FrameLoaderClient.
23852
23853         (WebCore::HTMLFormElement::finishRequestAutocomplete):
23854
23855         Called when the request for an interactive autocomplete is finished with either a success or error result. This
23856         causes an event to queue and fired after a 0 second delay. Events are owned by HTMLFormElement and reference the
23857         target element (this) until fired.
23858
23859         (WebCore::HTMLFormElement::requestAutocompleteTimerFired):
23860
23861         Called when the event timer runs out to pump the queue of current events. Events are released on dispatch.
23862
23863         (WebCore::HTMLFormElement::parseAttribute):
23864
23865         Encountering onautocomplete or onautocompleteerror attributes while parsing HTMLFormElements now adds event listeners
23866         for autocomplete an autocompleteerror events (respectively) to dispatch the value of the attribute as a script.
23867
23868         * html/HTMLFormElement.h:
23869         (HTMLFormElement):
23870
23871         Added various methods and data members as required by the implementation.
23872
23873         * html/HTMLFormElement.idl:
23874
23875         Added the method requestAutocomplete and associated DOM event handler attributes (onautocomplete/onautocompleteerror)
23876         to HTMLFormElement's public DOM API (unprefixed, as per Ian Hickson's advice). All are require the Conditional
23877         REQUEST_AUTOCOMPLETE to be enabled to be activated.
23878
23879         * loader/EmptyClients.cpp:
23880         (WebCore):
23881         (WebCore::EmptyFrameLoaderClient::didRequestAutocomplete):
23882
23883         Added noop implementation for FrameLoader::didRequestAutocomplete.
23884
23885         * loader/EmptyClients.h:
23886         (EmptyFrameLoaderClient):
23887
23888         Added FrameLoader::didRequestAutocomplete to EmptyFrameLoaderClient interface.
23889
23890         * loader/FrameLoaderClient.h:
23891         (FrameLoaderClient):
23892
23893         Added noop implementation to FrameLoaderClient interface (which is implemented chromium's FrameLoaderLoaderImpl.cpp).
23894
23895 2012-11-03  Pavel Feldman  <pfeldman@chromium.org>
23896
23897         Web Inspector: %d, %i, and %f log formatters have same result
23898         https://bugs.webkit.org/show_bug.cgi?id=101148
23899
23900         Reviewed by Alexander Pavlov.
23901
23902         Added separate formatters for %f, %i, %d and %s.
23903
23904         Test: inspector/console/console-message-format.html
23905
23906         * inspector/front-end/ConsoleMessage.js:
23907         (WebInspector.ConsoleMessageImpl.prototype.stringFormatter):
23908         (WebInspector.ConsoleMessageImpl.prototype.floatFormatter):
23909         (WebInspector.ConsoleMessageImpl.prototype.integerFormatter):
23910
23911 2012-11-03  Andreas Kling  <kling@webkit.org>
23912
23913         Decouple Attr logic from ElementAttributeData.
23914         <http://webkit.org/b/101126>
23915
23916         Reviewed by Antti Koivisto.
23917
23918         Move all logic dealing with Attr DOM nodes from ElementAttributeData to Element.
23919         This makes more sense since an Attr is tied to a single Element, but an ElementAttributeData
23920         can be shared by any number of Elements at a given time.
23921
23922         Also updated naming convention from just "Attr" to "Attr node" in the code I was touching.
23923         "Attr" is way too generic, and has been historically confused with WebCore::Attribute a lot.
23924
23925         * dom/Element.h:
23926         * dom/ElementAttributeData.h:
23927         * dom/Element.cpp:
23928         (WebCore::attrNodeListMap):
23929         (WebCore::attrNodeListForElement):
23930         (WebCore::ensureAttrNodeListForElement):
23931         (WebCore::removeAttrNodeListForElement):
23932         (WebCore::findAttrNodeInList):
23933         (WebCore::Element::~Element):
23934         (WebCore::Element::detachAttribute):
23935         (WebCore::Element::setAttributeNode):
23936         (WebCore::Element::removeAttributeInternal):
23937         (WebCore::Element::getAttributeNode):
23938         (WebCore::Element::getAttributeNodeNS):
23939         (WebCore::Element::normalizeAttributes):
23940         (WebCore::Element::attrIfExists):
23941         (WebCore::Element::ensureAttr):
23942         (WebCore::Element::detachAttrNodeFromElementWithValue):
23943         (WebCore::Element::detachAllAttrNodesFromElement):
23944         (WebCore::Element::cloneAttributesFromElement):
23945
23946             Move everything Attr-related into Element.cpp while simplifying some loops and remove
23947             conditions that are no longer needed as they used to depend on having an attributeData().
23948
23949         * dom/Node.h:
23950         (WebCore::Node::hasSyntheticAttrChildNodes):
23951         (WebCore::Node::setHasSyntheticAttrChildNodes):
23952
23953             Renamed the hasAttrList() node flag to hasSyntheticAttrChildNodes().
23954
23955         * dom/Attr.cpp:
23956         (WebCore::Attr::detachFromElementWithValue):
23957
23958             Remove awkward indirection and let the call site deal with removing the Attr node from
23959             the Element's list of Attr nodes.
23960
23961         * dom/ElementAttributeData.cpp:
23962         (WebCore::ElementAttributeData::clearAttributes):
23963
23964             Remove now-unused Element* argument.
23965
23966 2012-11-03  Pavel Feldman  <pfeldman@chromium.org>
23967
23968         REGRESSION (r132014-r132047): Webkit Inspector Window docking broken
23969         https://bugs.webkit.org/show_bug.cgi?id=101125
23970
23971         Reviewed by Vsevolod Vlasov.
23972
23973         Added "bottom" as default docked state.
23974
23975         * inspector/front-end/DockController.js:
23976         (WebInspector.DockController):
23977
23978 2012-11-02  Shinya Kawanaka  <shinyak@chromium.org>
23979
23980         [Shadow] ShadowRoot should be able to know the existence of <content>
23981         https://bugs.webkit.org/show_bug.cgi?id=100921
23982
23983         Reviewed by Dimitri Glazkov.
23984
23985         When <content> is inserted into or removed from a shadow subtree, ShadowRoot counts the number of <content>.
23986         It provides O(1) method to check the existence of <content>.
23987
23988         This is necessary when we implement a fast checking path for distribution invalidation when an element attribute
23989         is changed. Larger context is explained in Bug 100451.
23990
23991         Test: fast/dom/shadow/has-content-elements.html
23992
23993         * dom/ShadowRoot.cpp:
23994         (WebCore::ShadowRoot::ShadowRoot):
23995         (WebCore::ShadowRoot::hasInsertionPoint): Since we track both <content> and <shadow>, we don't need to traverse
23996         all the descendants of ShadowRoot anymore.
23997         * dom/ShadowRoot.h:
23998         (WebCore::ShadowRoot::registerContentElement):
23999         (WebCore::ShadowRoot::unregisterContentElement):
24000         (WebCore::ShadowRoot::hasContentElement):
24001         (ShadowRoot):
24002         * html/shadow/HTMLContentElement.cpp:
24003         (WebCore::HTMLContentElement::HTMLContentElement):
24004         (WebCore::HTMLContentElement::insertedInto): When <content> is inserted into ShadowDOM subtree,
24005         we notify it to the ShadowRoot. Note that only active <content> element is counted.
24006         (WebCore):
24007         (WebCore::HTMLContentElement::removedFrom):
24008         * html/shadow/HTMLContentElement.h:
24009         (HTMLContentElement):
24010         * testing/Internals.cpp:
24011         (WebCore::Internals::hasContentElement):
24012         (WebCore):
24013         * testing/Internals.h:
24014         (Internals):
24015         * testing/Internals.idl:
24016
24017 2012-11-02  KyungTae Kim  <ktf.kim@samsung.com>
24018
24019         sCurrentPaintTimeStamp is not initialized when FrameView::paintContents returns in the middle
24020         https://bugs.webkit.org/show_bug.cgi?id=99990
24021
24022         Reviewed by Darin Adler.
24023
24024         Move initialization code for sCurrentPaintTimeStamp to the below of early returns,
24025         because it was not reset after early return.
24026
24027         * page/FrameView.cpp:
24028         (WebCore::FrameView::paintContents):
24029
24030 2012-11-02  KyungTae Kim  <ktf.kim@samsung.com>
24031
24032         Fix build warning in PluginView.cpp on release build
24033         https://bugs.webkit.org/show_bug.cgi?id=101049
24034
24035         Reviewed by Kentaro Hara.
24036
24037         The protocol, host, port parameters are not used when LOG_DISABLED
24038         Use UNUSED_PARAM macro for removing -Wunused-parameter warning
24039
24040         * plugins/PluginView.cpp:
24041         (WebCore::PluginView::getAuthenticationInfo):
24042
24043 2012-10-25  Martin Robinson  <mrobinson@igalia.com>
24044
24045         [GTK] Move soup authentication from GtkAuthenticationDialog to WebCore
24046         https://bugs.webkit.org/show_bug.cgi?id=99914
24047
24048         Reviewed by Carlos Garcia Campos.
24049
24050         Move the actual soup authentication code from the GtkAuthenticationDialog to ResourceHandleSoup.
24051         This allows a more generic implementation of authentication, for example, one where a WebKit2
24052         client can completely handle authentication.
24053
24054         No new tests. This does not change behavior.
24055
24056         * platform/gtk/GtkAuthenticationDialog.cpp: Remove references to the SoupPasswordManager, which
24057         is going away in the next release of Gnome. Instead we always assume that the authentication backend has
24058         support for remembering passwords and pass that information along with the answer to the authentication
24059         request.
24060
24061         The rest of the changes to this class can be summarized as:
24062         1. Getting the information from the AuthenticationChallenge instead of directly from the libsoup
24063            objects.
24064         2. Using the AuthenticationClient to accomplish the authentication instead of talking to libsoup
24065            directly.
24066         * platform/gtk/GtkAuthenticationDialog.h:
24067         (GtkAuthenticationDialog): Remove members which are no longer used.
24068         * platform/network/ResourceHandle.h:
24069         (ResourceHandle): ResourceHandleSoup now implements the entire AuthenticationClient interface.
24070         * platform/network/soup/ResourceHandleSoup.cpp:
24071         (WebCore::WebCoreSynchronousLoader::didReceiveAuthenticationChallenge): Don't handle authentication
24072         for synchronous handles.
24073         (WebCore::ResourceHandle::didReceiveAuthenticationChallenge): Now set the current challenge on
24074         the internal data structure.
24075         (WebCore::ResourceHandle::receivedRequestToContinueWithoutCredential): Added.
24076         (WebCore::ResourceHandle::receivedCredential): Added.
24077         (WebCore::ResourceHandle::receivedCancellation): Added.
24078         (WebCore::authenicateCallback): Pass the handle as the authentication client.
24079
24080 2012-11-02  Benjamin Poulain  <bpoulain@apple.com>
24081
24082         Improve CSSParser::setupParser() since the prefix/suffix are literals
24083         https://bugs.webkit.org/show_bug.cgi?id=101107
24084
24085         Reviewed by Andreas Kling.
24086
24087         * css/CSSParser.cpp:
24088         (WebCore::CSSParser::setupParser):
24089         * css/CSSParser.h:
24090         (CSSParser):
24091         (WebCore::CSSParser::setupParser):
24092         CSSParser::setupParser() is only used with literals prefix and suffix. We do not have
24093         to compute the length at runtime, we can direclty encode it in the binary.
24094
24095 2012-11-02  Sheriff Bot  <webkit.review.bot@gmail.com>
24096
24097         Unreviewed, rolling out r133375.
24098         http://trac.webkit.org/changeset/133375
24099         https://bugs.webkit.org/show_bug.cgi?id=101138
24100
24101         Caused 3 tests to fail on Mac (Requested by aboxhall-laptop on
24102         #webkit).
24103
24104         * platform/text/LineBreakIteratorPoolICU.h:
24105         (WebCore::LineBreakIteratorPool::take):
24106         (WebCore::LineBreakIteratorPool::put):
24107         (LineBreakIteratorPool):
24108         * platform/text/TextBreakIterator.h:
24109         (WebCore):
24110         (WebCore::LazyLineBreakIterator::LazyLineBreakIterator):
24111         (WebCore::LazyLineBreakIterator::get):
24112         (WebCore::LazyLineBreakIterator::reset):
24113         (LazyLineBreakIterator):
24114         * platform/text/TextBreakIteratorICU.cpp:
24115         (WebCore::acquireLineBreakIterator):
24116         (WebCore::releaseLineBreakIterator):
24117         * rendering/RenderBlockLineLayout.cpp:
24118         (WebCore::RenderBlock::LineBreaker::nextLineBreak):
24119         * rendering/RenderText.cpp:
24120         (WebCore::RenderText::computePreferredLogicalWidths):
24121         * rendering/RenderText.h:
24122         (WebCore):
24123         * rendering/break_lines.cpp:
24124         (WebCore):
24125         (WebCore::isBreakableSpace):
24126         (WebCore::needsLineBreakIterator):
24127         (WebCore::nextBreakablePosition):
24128         (WebCore::nextBreakablePositionIgnoringNBSP):
24129         * rendering/break_lines.h:
24130         (WebCore):
24131         (WebCore::isBreakable):
24132
24133 2012-11-02  Andreas Kling  <kling@webkit.org>
24134
24135         Cut overgrown ElementAttributeData bitfield.
24136         <http://webkit.org/b/101129>
24137
24138         Reviewed by Anders Carlsson.
24139
24140         Make sure the ElementAttributeData bitfield fits into 32 bits. Added a compile-time assertion
24141         to guard against future bloatage.
24142
24143         * dom/ElementAttributeData.cpp:
24144         (SameSizeAsElementAttributeData):
24145         * dom/ElementAttributeData.h:
24146         (ElementAttributeData):
24147
24148 2012-11-02  Michael Saboff  <msaboff@apple.com>
24149
24150         Crash calling is8Bit() in visitedLinkHash()
24151         https://bugs.webkit.org/show_bug.cgi?id=101119
24152
24153         Reviewed by Filip Pizlo.
24154
24155         Added an isEmpty() check to AttributeURL and KURL.
24156
24157         * platform/LinkHash.cpp:
24158         (WebCore::visitedLinkHash):
24159
24160 2012-11-02  Glenn Adams  <glenn@skynav.com>
24161
24162         Add support to -webkit-line-break property for CSS3 Text line-break property values and semantics.
24163         https://bugs.webkit.org/show_bug.cgi?id=89235
24164
24165         Reviewed by Eric Seidel.
24166
24167         See also wiki documentation at:
24168         [1] http://trac.webkit.org/wiki/LineBreaking
24169         [2] http://trac.webkit.org/wiki/LineBreakingCSS3Mapping
24170
24171         Web exposed changes include:
24172         (1) The default (initial) value for -webkit-line-break becomes 'auto', instead of 'normal';
24173         (2) The values 'auto', 'loose', 'normal', and 'strict' are added to -webkit-line-break;
24174         (3) See [2] above for details regarding interpretation.
24175
24176         Tests: css3/line-break/line-break-auto-centered.html
24177                css3/line-break/line-break-auto-half-kana.html
24178                css3/line-break/line-break-auto-hyphens.html
24179                css3/line-break/line-break-auto-inseparables.html
24180                css3/line-break/line-break-auto-iteration-marks.html
24181                css3/line-break/line-break-auto-postfixes.html
24182                css3/line-break/line-break-auto-prefixes.html
24183                css3/line-break/line-break-auto-sound-marks.html
24184                css3/line-break/line-break-loose-centered.html
24185                css3/line-break/line-break-loose-half-kana.html
24186                css3/line-break/line-break-loose-hyphens.html
24187                css3/line-break/line-break-loose-inseparables.html
24188                css3/line-break/line-break-loose-iteration-marks.html
24189                css3/line-break/line-break-loose-postfixes.html
24190                css3/line-break/line-break-loose-prefixes.html
24191                css3/line-break/line-break-loose-sound-marks.html
24192                css3/line-break/line-break-normal-centered.html
24193                css3/line-break/line-break-normal-half-kana.html
24194                css3/line-break/line-break-normal-hyphens.html
24195                css3/line-break/line-break-normal-inseparables.html
24196                css3/line-break/line-break-normal-iteration-marks.html
24197                css3/line-break/line-break-normal-postfixes.html
24198                css3/line-break/line-break-normal-prefixes.html
24199                css3/line-break/line-break-normal-sound-marks.html
24200                css3/line-break/line-break-strict-centered.html
24201                css3/line-break/line-break-strict-half-kana.html
24202                css3/line-break/line-break-strict-hyphens.html
24203                css3/line-break/line-break-strict-inseparables.html
24204                css3/line-break/line-break-strict-iteration-marks.html
24205                css3/line-break/line-break-strict-postfixes.html
24206                css3/line-break/line-break-strict-prefixes.html
24207                css3/line-break/line-break-strict-sound-marks.html
24208
24209         * platform/text/LineBreakIteratorPoolICU.h:
24210         (WebCore::LineBreakIteratorPool::makeLocaleWithBreakKeyword):
24211         Add static function to construct ICU locale argument (also used as pool key) with additional
24212         break keyword.
24213         (WebCore::LineBreakIteratorPool::take):
24214         (WebCore::LineBreakIteratorPool::put):
24215         (LineBreakIteratorPool):
24216         Remove direct dependency from ICU library (and types), moving that dependency into
24217         new {open,close}LineBreakIterator() functions (defined in TextBreakIteratorICU.cpp).
24218         Update to take line break mode into account.
24219         Create (and cache) different break iterators depending on line break mode (in addition to locale),
24220         which entails expanding pool entry key format to optionally append "@break=" +
24221         "loose"|"normal"|"strict" keyword to locale string.
24222
24223         * platform/text/TextBreakIterator.h:
24224         (WebCore::LazyLineBreakIterator::LazyLineBreakIterator):
24225         (WebCore::LazyLineBreakIterator::isLooseCJKMode):
24226         (WebCore::LazyLineBreakIterator::get):
24227         (WebCore::LazyLineBreakIterator::reset):
24228         (LazyLineBreakIterator):
24229         Define LineBreakIteratorMode enumeration for use in TextBreakIterator et al.
24230         Add state member to indicate line break mode.
24231
24232         * platform/text/TextBreakIteratorICU.cpp:
24233         (WebCore::acquireLineBreakIterator):
24234         Use new line break mode when making iterator from pool.
24235         Handle change of return type of LineBreakIteratorPool::take() to non-ICU type,
24236         i.e., TextBreakIterator* instead of ICU's UBreakIterator*.
24237         (WebCore::releaseLineBreakIterator):
24238         Handle change of parameter type of LineBreakIteratorPool::put() to non-ICU type,
24239         i.e., TextBreakIterator* instead of ICU's UBreakIterator*.
24240         (WebCore::isCJKLocale):
24241         New functions for determining if CJK rules apply.
24242         (WebCore::openLineBreakIterator):
24243         New function for abstracting opening of ICU style line break iterator. This is now
24244         used in LineBreakIteratorPoolICU.h rather than having direct ICU API dependency there.
24245         This function also takes into account the line break mode.
24246         (WebCore::closeLineBreakIterator):
24247         (WebCore::mapLineIteratorModeToRules):
24248         New function for abstracting closing of ICU style line break iterator. This is now
24249         used in LineBreakIteratorPoolICU.h rather than having direct ICU API dependency there.
24250
24251         * rendering/RenderBlockLineLayout.cpp:
24252         (WebCore::RenderBlock::LineBreaker::nextLineBreak):
24253         Pass line break iterator mode flag when reseting LazyLineBreakIterator.
24254         Add looseMode local variable to prevent need for computing under isBreakable().
24255
24256         * rendering/RenderText.cpp:
24257         (WebCore::mapLineBreakToIteratorMode):
24258         Add implementation for mapLineBreakToIteratorMode(), used by both RenderText::computePreferredLogicalWidths
24259         and RenderBlock::LineBreaker::nextLineBreak.
24260         (WebCore::RenderText::computePreferredLogicalWidths):
24261         Ensure (lazy line) breakIterator is initialized for line break mode.
24262         Ensure isBreakable() is passed loose mode flag to match behavior in RenderBlock::LineBreaker::nextLineBreak.
24263
24264         * rendering/RenderText.h:
24265         (WebCore):
24266         Add declaration for mapLineBreakToIteratorMode(), used by both RenderText::computePreferredLogicalWidths
24267         and RenderBlock::LineBreaker::nextLineBreak.
24268
24269         * rendering/break_lines.cpp:
24270         (WebCore):
24271         Introduce two (local) enums NBSPBehavior and LooseBehavior for expanding template on nextBreakablePosition
24272         to include loose mode parameter.
24273         (WebCore::isBreakableSpace):
24274         Add externally specified loose mode parameter to prevent need to invoke line break iterator
24275         accessor method on each invocation. Use new loose mode flavors off NBP functions.
24276         (WebCore::needsLineBreakIterator):
24277         Introduce loose mode behavior template parameter to optimize loose mode behavior code path in order
24278         to prevent regression to non loose mode path.
24279         (WebCore::nextBreakablePosition):
24280         (WebCore::nextBreakablePositionIgnoringNBSP):
24281         Use new template parameter enums described above.
24282         (WebCore::nextBreakablePositionIgnoringNBSPLoose):
24283         (WebCore::nextBreakablePositionLoose):
24284         Introduce two additional 'loose' mode flavors of NBP template expansions.
24285
24286         * rendering/break_lines.h:
24287         (WebCore):
24288         (WebCore::isBreakable):
24289         Add externally specified loose mode parameter to prevent need to invoke line break iterator
24290         accessor method on each invocation.
24291
24292 2012-11-02  Elliott Sprehn  <esprehn@chromium.org>
24293
24294         Replace NodeRareData hash map with a union on m_renderer
24295         https://bugs.webkit.org/show_bug.cgi?id=100057
24296
24297         Reviewed by Eric Seidel.
24298
24299         Use a union on Node::m_renderer between NodeRareData* and RenderObject*. This removes
24300         the overhead of accessing rare data and the memory from the map.
24301
24302         This is an 8% improvement on Bindings/get-elements-by-tag-name.html which tested
24303         document.getElementsByTagName and was previously optimized in Bug 90059 for a 5% 
24304         improvement. As this is better than even the special casing for document that was
24305         done in that bug, general node list access should see an even greater win.
24306
24307         This reduces the memory usage on nytimes.com by 250k per Bug 101052 by
24308         removing the rare data map overhead.
24309
24310         This is also a 15% improvement on Parser/textarea-parsing.html
24311
24312         By removing the performance overhead of rareData() this patch addresses the performance
24313         issues raised in Bugs 73853, 87034 and 89635.
24314
24315         I ran Parser/html5-full-render.html and there was no performance regression after
24316         tuning Text::recalcTextStyle and the refactor that was done in r132684.
24317
24318         No new tests, this is just a refactor.
24319
24320         * dom/Document.cpp:
24321         (WebCore::Document::Document):
24322         * dom/Document.h:
24323         (WebCore::Node::Node):
24324         * dom/Element.cpp:
24325         (WebCore::Element::elementRareData):
24326         * dom/Node.cpp:
24327         (WebCore::Node::rareData):
24328         (WebCore::Node::ensureRareData):
24329         (WebCore::Node::clearRareData):
24330         (WebCore::Node::renderBox):
24331         (WebCore::Node::renderBoxModelObject):
24332         (WebCore::Node::reportMemoryUsage):
24333         * dom/Node.h:
24334         (NodeRareDataBase):
24335           Base class for NodeRareData that knows about the renderer so we can
24336           inline the accesses in Node.h
24337         (WebCore::NodeRareDataBase::renderer):
24338         (WebCore::NodeRareDataBase::setRenderer):
24339         (WebCore::NodeRareDataBase::~NodeRareDataBase):
24340         (WebCore::NodeRareDataBase::NodeRareDataBase):
24341         (WebCore):
24342         (WebCore::Node::renderer):
24343         (WebCore::Node::setRenderer):
24344         (Node):
24345         * dom/NodeRareData.h:
24346         * dom/NodeRenderStyle.h:
24347         (WebCore::Node::renderStyle):
24348         * dom/Text.cpp:
24349         (WebCore::Text::recalcTextStyle):
24350           This method appears very hot in html5-full-render.html and accessing the
24351           renderer 4 times caused a 2% performance regression with this patch. I
24352           reduced it to 1 access and there's no longer any performance regression.
24353         * dom/WebCoreMemoryInstrumentation.cpp:
24354           Removed tracking of the rare data map memory usage as there is no longer
24355           a map to track.
24356         * dom/WebCoreMemoryInstrumentation.h:
24357         * inspector/InspectorMemoryAgent.cpp:
24358         (WebCore::InspectorMemoryAgent::getProcessMemoryDistribution):
24359
24360 2012-11-02  Alexey Proskuryakov  <ap@apple.com>
24361
24362         [Mac] ResourceHandle changes for network process
24363         https://bugs.webkit.org/show_bug.cgi?id=101111
24364
24365         Reviewed by Jessie Berlin.
24366
24367         With NSOperationQueue, we'll be getting NetworkProcess delegate method calls
24368         on secondary threads, and so we won't block other requests while consulting with WebProcess.
24369
24370         * platform/network/NetworkingContext.h:
24371         (WebCore::NetworkingContext::scheduledRunLoopPairs):
24372         (WebCore::NetworkingContext::scheduledOperationQueue):
24373         Add an ability to schedule on an NSOperationQueue. Now that scheduling on run loop
24374         is not a must, give scheduledRunLoopPairs() a default implementation.
24375
24376         * platform/network/mac/ResourceHandleMac.mm: Removed isInitializingConnection
24377         static. It was only used to catch a long obsolete bug with debug logging, and
24378         cannot work with multiple threads.
24379         (WebCore::ResourceHandle::start): Scedule on a operation queue if applicable.
24380         (-[WebCoreResourceHandleAsDelegate connection:willCacheResponse:]): Removed a
24381         check that used isInitializingConnection.
24382
24383 2012-11-02  Chris Rogers  <crogers@google.com>
24384
24385         Automating gain AudioParam with linearRampToValueAtTime introduces buzzing distortion
24386         https://bugs.webkit.org/show_bug.cgi?id=100885
24387
24388         Reviewed by Kenneth Russell.
24389
24390         AudioParamTimeline needs to use double-precision for time-values to avoid drift and precision issues.
24391
24392         Covered by existing tests.
24393
24394         * Modules/webaudio/AudioParam.cpp:
24395         (WebCore::AudioParam::calculateTimelineValues):
24396         * Modules/webaudio/AudioParamTimeline.cpp:
24397         (WebCore::AudioParamTimeline::valueForContextTime):
24398         (WebCore::AudioParamTimeline::valuesForTimeRange):
24399         (WebCore::AudioParamTimeline::valuesForTimeRangeImpl):
24400         * Modules/webaudio/AudioParamTimeline.h:
24401         (AudioParamTimeline):
24402
24403 2012-11-02  Stephen Chenney  <schenney@chromium.org>
24404
24405         Reduce redundant code in SimpleFontData[platform]
24406         https://bugs.webkit.org/show_bug.cgi?id=97245
24407
24408         Reviewed by Eric Seidel.
24409
24410         Move duplicated code out of platform specific files and into the common file.
24411         This represents all of the methods in SimpleFontData that do not have genuine
24412         platform specific code.
24413
24414         No new tests because there is no change at all in the functionality.
24415
24416         * platform/graphics/SimpleFontData.cpp:
24417         (WebCore):
24418         (WebCore::SimpleFontData::smallCapsFontData): Implementation from platform files.
24419         (WebCore::SimpleFontData::emphasisMarkFontData): Implementation from platform files.
24420         * platform/graphics/chromium/SimpleFontDataChromiumWin.cpp:
24421         (WebCore): Removed common code.
24422         * platform/graphics/freetype/SimpleFontDataFreeType.cpp:
24423         (WebCore): Removed common code.
24424         * platform/graphics/mac/SimpleFontDataMac.mm:
24425         (WebCore): Removed common code.
24426         * platform/graphics/pango/SimpleFontDataPango.cpp:
24427         (WebCore): Removed common code.
24428         * platform/graphics/qt/SimpleFontDataQt.cpp:
24429         (WebCore): Removed common code.
24430         * platform/graphics/skia/SimpleFontDataSkia.cpp:
24431         (WebCore): Removed common code.
24432         * platform/graphics/win/SimpleFontDataWin.cpp:
24433         (WebCore): Removed common code.
24434         * platform/graphics/wince/SimpleFontDataWinCE.cpp:
24435         (WebCore): Removed common code.
24436         * platform/graphics/wx/SimpleFontDataWx.cpp:
24437         (WebCore): Removed common code.
24438
24439 2012-11-02  Adam Barth  <abarth@webkit.org>
24440
24441         memory-instrumentation-cached-images.html is crashing
24442         https://bugs.webkit.org/show_bug.cgi?id=101103
24443
24444         Unreviewed.
24445
24446         Restore code deleted in http://trac.webkit.org/changeset/133331.
24447
24448         * bindings/v8/IntrusiveDOMWrapperMap.h:
24449
24450 2012-11-02  Simon Fraser  <simon.fraser@apple.com>
24451
24452         Enable SUBPIXEL_LAYOUT on Mac
24453         https://bugs.webkit.org/show_bug.cgi?id=101076
24454
24455         Reviewed by Dave Hyatt.
24456
24457         Define ENABLE_SUBPIXEL_LAYOUT and include it in FEATURE_DEFINES.
24458
24459         * Configurations/FeatureDefines.xcconfig:
24460
24461 2012-11-02  Lianghui Chen  <liachen@rim.com>
24462
24463         [BlackBerry] ResourceHandle::cancel() in ResourceHandleBlackBerry should setClient to null.
24464         https://bugs.webkit.org/show_bug.cgi?id=101082
24465
24466         Internal PR: 235410.
24467         Patch suggested by George Staikos, prepared by Lyon Chen.
24468         Reviewed by Yong Li.
24469
24470         ResourceHandle::cancel() should call setClient(0) to close the window
24471         during which it has been cancelled but its client is still there and can
24472         be called.
24473
24474         No new tests as it's a code improvement without obvious bug.
24475
24476         * platform/network/blackberry/ResourceHandleBlackBerry.cpp:
24477         (WebCore::ResourceHandle::cancel):
24478
24479 2012-11-02  Anders Carlsson  <andersca@apple.com>
24480
24481         Add a PluginInactive plug-in unavailability reason
24482         https://bugs.webkit.org/show_bug.cgi?id=101089
24483
24484         Reviewed by Sam Weinig.
24485
24486         This is to be used by Mac WebKit and WebKit2 shortly.
24487
24488         * English.lproj/Localizable.strings:
24489         * platform/LocalizedStrings.cpp:
24490         (WebCore::inactivePluginText):
24491         (WebCore):
24492         * platform/LocalizedStrings.h:
24493         (WebCore):
24494         * platform/blackberry/LocalizedStringsBlackBerry.cpp:
24495         (WebCore::inactivePluginText):
24496         (WebCore):
24497         * platform/efl/LocalizedStringsEfl.cpp:
24498         (WebCore::inactivePluginText):
24499         (WebCore):
24500         * platform/gtk/LocalizedStringsGtk.cpp:
24501         (WebCore::inactivePluginText):
24502         (WebCore):
24503         * platform/qt/LocalizedStringsQt.cpp:
24504         (WebCore::inactivePluginText):
24505         (WebCore):
24506         * rendering/RenderEmbeddedObject.cpp:
24507         (WebCore::unavailablePluginReplacementText):
24508         * rendering/RenderEmbeddedObject.h:
24509
24510 2012-11-02  Rob Buis  <rbuis@rim.com>
24511
24512         [CMAKE] Remove QNX specific section
24513         https://bugs.webkit.org/show_bug.cgi?id=101063
24514
24515         Reviewed by Daniel Bates.
24516
24517         We do not need the QNX section anymore, so also remove the FEATURE_DEFINES_CSS variable as it
24518         equals FEATURE_DEFINES_WITH_SPACE_SEPARATOR.
24519
24520         * CMakeLists.txt:
24521
24522 2012-11-02  Michael Saboff  <msaboff@apple.com>
24523
24524         visitedHashLink() converts 8 bit URLs and attributes to 16 bits.
24525         https://bugs.webkit.org/show_bug.cgi?id=101014
24526
24527         Reviewed by Geoffrey Garen.
24528
24529         Converted most of the static methods to templated based on character type.  Changed visitedHashLink to 
24530         check bitness of both the base URL and attribute.  If both are 8 bit, then we process using the LChar
24531         version of the templated methods.  Otherwise we use the 16 bit flavor.
24532
24533         Changes covered by existing tests.
24534
24535         * platform/LinkHash.cpp:
24536         (WebCore::findSlashDotDotSlash):
24537         (WebCore::findSlashSlash):
24538         (WebCore::findSlashDotSlash):
24539         (WebCore::containsColonSlashSlash):
24540         (WebCore::squeezeOutNullCharacters):
24541         (WebCore::cleanSlashDotDotSlashes):
24542         (WebCore::mergeDoubleSlashes):
24543         (WebCore::cleanSlashDotSlashes):
24544         (WebCore::cleanPath):
24545         (WebCore::matchLetter):
24546         (WebCore::needsTrailingSlash):
24547         (WebCore::visitedURLInline):
24548         (WebCore::visitedURL):
24549         (WebCore::visitedLinkHash):
24550
24551 2012-11-02  Ian Vollick  <vollick@chromium.org>
24552
24553         Support invalidation tracking for composited layers
24554         https://bugs.webkit.org/show_bug.cgi?id=97801
24555
24556         Reviewed by Simon Fraser.
24557
24558         GraphicsLayers now store invalidated rects and can include them in
24559         the layer tree dump.
24560
24561         Test: compositing/repaint/invalidations-on-composited-layers.html
24562
24563         * WebCore.exp.in:
24564           Exports FrameView::resetTrackedRepaints()
24565         * page/FrameView.cpp:
24566         (WebCore::FrameView::setTracksRepaints):
24567           Notifies each compositor that we are starting/stopping repaints.
24568         (WebCore::FrameView::resetTrackedRepaints):
24569           Moved implementation to the cpp file.
24570         * platform/graphics/GraphicsLayer.cpp:
24571         (WebCore::GraphicsLayer::~GraphicsLayer):
24572           Clears the repaint rects associated with this layer.
24573         (WebCore::GraphicsLayer::resetTrackedRepaints):
24574           Clears the repaint rects associated with this layer.
24575           Note that the repaint rects are stored in a statically allocated
24576           HashMap to avoid using space on the graphics layers.
24577         (WebCore::GraphicsLayer::addRepaintRect):
24578           Adds a repaint rect to list associated with this layer in the
24579           hash map mentioned above.
24580         (WebCore::GraphicsLayer::dumpProperties):
24581           This has been modified to include the repaint rects in the dump
24582           if they've been requested.
24583         * platform/graphics/GraphicsLayerClient.h:
24584         (WebCore::GraphicsLayerClient::isTrackingRepaints):
24585           This is how graphics layers check if repaint tracking is happening.
24586           Returns false by default.
24587         * platform/graphics/blackberry/GraphicsLayerBlackBerry.cpp:
24588         (WebCore::GraphicsLayerBlackBerry::setContentsNeedsDisplay):
24589         (WebCore::GraphicsLayerBlackBerry::setNeedsDisplay):
24590         (WebCore::GraphicsLayerBlackBerry::setNeedsDisplayInRect):
24591           These now call GraphicsLayer::addRepaintRect as necessary.
24592         * platform/graphics/ca/GraphicsLayerCA.cpp:
24593         (WebCore::GraphicsLayerCA::setNeedsDisplayInRect):
24594           Now calls GraphicsLayer::addRepaintRect as necessary.
24595         * platform/graphics/chromium/GraphicsLayerChromium.cpp:
24596         (WebCore::GraphicsLayerChromium::setContentsNeedsDisplay):
24597         (WebCore::GraphicsLayerChromium::setNeedsDisplay):
24598         (WebCore::GraphicsLayerChromium::setNeedsDisplayInRect):
24599           These now call GraphicsLayer::addRepaintRect as necessary.
24600         * platform/graphics/clutter/GraphicsLayerClutter.cpp:
24601         (WebCore::GraphicsLayerClutter::setNeedsDisplay):
24602         (WebCore::GraphicsLayerClutter::setNeedsDisplayInRect):
24603           These now call GraphicsLayer::addRepaintRect as necessary.
24604         * platform/graphics/texmap/GraphicsLayerTextureMapper.cpp:
24605         (WebCore::GraphicsLayerTextureMapper::setNeedsDisplay):
24606         (WebCore::GraphicsLayerTextureMapper::setContentsNeedsDisplay):
24607         (WebCore::GraphicsLayerTextureMapper::setNeedsDisplayInRect):
24608           These now call GraphicsLayer::addRepaintRect as necessary.
24609         * rendering/RenderLayerBacking.cpp:
24610         (WebCore::RenderLayerBacking::isTrackingRepaints):
24611           Required since this is a GraphicsLayerClient.
24612         * rendering/RenderLayerCompositor.cpp:
24613         (WebCore::RenderLayerCompositor::layerTreeAsText):
24614           Now accepts a flag to include the repaint rects in the layer tree
24615           dump.
24616         (WebCore::resetTrackedRepaintRectsRecursive):
24617           Clears the repaint rects on all graphics layers.
24618         (WebCore::RenderLayerCompositor::resetTrackedRepaintRects):
24619           Clears the repaint rects on all graphics layers.
24620         (WebCore::RenderLayerCompositor::isTrackingRepaints):
24621           Required since this is a GraphicsLayerClient.
24622         * testing/Internals.cpp:
24623         (WebCore::Internals::layerTreeAsText):
24624         * testing/Internals.h:
24625         * testing/Internals.idl:
24626           The internals changes plumb the new flag for including the repaint
24627           rects in the layer tree dump.
24628
24629 2012-11-02  Adam Barth  <abarth@webkit.org>
24630
24631         [V8] Generalize NodeWrapperMap to be able to handle other sorts of keys
24632         https://bugs.webkit.org/show_bug.cgi?id=100973
24633
24634         Reviewed by Stephen White.
24635
24636         This is the first step towards using intrusive DOM wrapper maps more
24637         widely in WebCore (see
24638         http://lists.webkit.org/pipermail/webkit-dev/2012-November/022686.html
24639         for more context).
24640
24641         * bindings/v8/DOMDataStore.cpp:
24642         (WebCore::DOMDataStore::DOMDataStore):
24643         * bindings/v8/IntrusiveDOMWrapperMap.h:
24644         (WebCore):
24645         (WebCore::IntrusiveDOMWrapperMap::weakCallback):
24646
24647 2012-11-02  Adam Barth  <abarth@webkit.org>
24648
24649         ASSERT in RenderLayer::hitTestContents can fire
24650         https://bugs.webkit.org/show_bug.cgi?id=99656
24651
24652         Reviewed by Eric Seidel.
24653
24654         The issue is that updateHitTestResult and addNodeToRectBasedTestResult
24655         are using two different nodes. Since they aren't consistent, we violate
24656         assertions about only setting the inner node if we're doing a
24657         rect-based hit test. This patch makes the two consistent.
24658
24659         Test: fast/dom/nodesFromRect/nodesFromRect-continuation-crash.html
24660
24661         * rendering/RenderBlock.cpp:
24662         (WebCore::RenderBlock::nodeForHitTest):
24663         (WebCore):
24664         (WebCore::RenderBlock::nodeAtPoint):
24665         (WebCore::RenderBlock::updateHitTestResult):
24666         * rendering/RenderBlock.h:
24667         (RenderBlock):
24668
24669 2012-11-02  Mike West  <mkwst@chromium.org>
24670
24671         Prefer 'Content-Security-Policy' to 'X-WebKit-CSP'.
24672         https://bugs.webkit.org/show_bug.cgi?id=101043
24673
24674         Reviewed by Adam Barth.
24675
24676         The canonical 'Content-Security-Policy' header landed in 133095, but we
24677         missed a few tests while updating to the new hotness. We also should
24678         start using the canonical header for the inspector.
24679
24680         This patch should have no visible change; tests should continue to pass
24681         with the new header, just as they did with the old header.
24682
24683         * inspector/front-end/inspector.html:
24684
24685 2012-11-02  Adam Barth  <abarth@webkit.org>
24686
24687         ENABLE(UNDO_MANAGER) is disabled everywhere and is not under active development
24688         https://bugs.webkit.org/show_bug.cgi?id=100711
24689
24690         Reviewed by Eric Seidel.
24691
24692         No one is actively working on ENABLE(UNDO_MANAGER). There are some
24693         tricky lifetime issues in the UndoManager API that are complicating
24694         ongoing work to improve the interaction between WebCore and the garbage
24695         collector. Rather than leave this code in a broken state, we should
24696         remove it for the time being. We can always restore it from the svn
24697         history when there is an active owner for this code.
24698
24699         * CMakeLists.txt:
24700         * Configurations/FeatureDefines.xcconfig:
24701         * DerivedSources.cpp:
24702         * DerivedSources.make:
24703         * DerivedSources.pri:
24704         * GNUmakefile.features.am:
24705         * GNUmakefile.list.am:
24706         * Target.pri:
24707         * UseJSC.cmake:
24708         * UseV8.cmake:
24709         * WebCore.gypi:
24710         * WebCore.vcproj/WebCore.vcproj:
24711         * WebCore.xcodeproj/project.pbxproj:
24712         * bindings/js/DOMTransaction.cpp: Removed.
24713         * bindings/js/DOMTransaction.h: Removed.
24714         * bindings/js/JSBindingsAllInOne.cpp:
24715         * bindings/js/JSUndoManagerCustom.cpp: Removed.
24716         * bindings/v8/DOMTransaction.cpp: Removed.
24717         * bindings/v8/DOMTransaction.h: Removed.
24718         * bindings/v8/V8HiddenPropertyName.h:
24719         (WebCore):
24720         * bindings/v8/custom/V8DOMTransactionCustom.cpp: Removed.
24721         * bindings/v8/custom/V8UndoManagerCustom.cpp: Removed.
24722         * css/PropertySetCSSStyleDeclaration.cpp:
24723         (WebCore::PropertySetCSSStyleDeclaration::setCssText):
24724         (WebCore::PropertySetCSSStyleDeclaration::setProperty):
24725         (WebCore::PropertySetCSSStyleDeclaration::removeProperty):
24726         (WebCore::PropertySetCSSStyleDeclaration::setPropertyInternal):
24727         * dom/CharacterData.cpp:
24728         (WebCore::CharacterData::setDataAndUpdate):
24729         * dom/ContainerNode.cpp:
24730         (WebCore::willRemoveChild):
24731         (WebCore::willRemoveChildren):
24732         (WebCore::updateTreeAfterInsertion):
24733         * dom/Document.cpp:
24734         (WebCore::Document::Document):
24735         * dom/Document.h:
24736         (WebCore):
24737         (Document):
24738         * dom/Document.idl:
24739         * dom/Element.cpp:
24740         (WebCore::Element::willModifyAttribute):
24741         * editing/CompositeEditCommand.h:
24742         * editing/DOMTransaction.idl: Removed.
24743         * editing/DOMTransactionStep.cpp: Removed.
24744         * editing/DOMTransactionStep.h: Removed.
24745         * editing/Editor.cpp:
24746         (WebCore::Editor::appliedEditing):
24747         (WebCore::Editor::unappliedEditing):
24748         (WebCore::Editor::reappliedEditing):
24749         (WebCore::Editor::canUndo):
24750         (WebCore::Editor::undo):
24751         (WebCore::Editor::canRedo):
24752         (WebCore::Editor::redo):
24753         * editing/UndoManager.cpp: Removed.
24754         * editing/UndoManager.h: Removed.
24755         * editing/UndoManager.idl: Removed.
24756         * editing/UndoStep.h:
24757         (UndoStep):
24758
24759 2012-11-02  Mike West  <mkwst@chromium.org>
24760
24761         Measure the usage of the various CSP headers.
24762         https://bugs.webkit.org/show_bug.cgi?id=100974
24763
24764         Reviewed by Adam Barth.
24765
24766         Currently, we're collecting metrics regarding usage of the
24767         'X-WebKit-CSP' and 'X-WebKit-CSP-Report-Only' HTTP headers. We've
24768         recently added support for the canonical 'Content-Security-Policy'
24769         and 'Content-Security-Policy-Report-Only' headers. This patch adds
24770         those headers explicitly into the metrics, giving insight into uptake
24771         of the unprefixed header, and into usage of pure reporting vs.
24772         enforcement.
24773
24774         No visible functionality should change; all Content Security Policy
24775         tests should continue to pass.
24776
24777         * page/ContentSecurityPolicy.cpp:
24778         (WebCore::ContentSecurityPolicy::didReceiveHeader):
24779             Convert the CSP header type into a FeatureObserver::Feature, and
24780             observe it.
24781         * page/FeatureObserver.h:
24782             Add three new values to the enum to cover the new header types.
24783
24784 2012-11-02  Ojan Vafai  <ojan@chromium.org>
24785
24786         Fix silly mistake from http://trac.webkit.org/changeset/133315.
24787         Forgot to remove the "!".
24788
24789         * css/StyleResolver.cpp:
24790         (WebCore::StyleResolver::canShareStyleWithElement):
24791
24792 2012-11-02  Tom Sepez  <tsepez@chromium.org>
24793
24794         Support X-XSS-Protection: report=URL header syntax in XSSAuditor.
24795         https://bugs.webkit.org/show_bug.cgi?id=100892
24796
24797         Reviewed by Adam Barth.
24798
24799         This patch adds a security feature which allows a violation report to be sent back
24800         to a site when the XSSAuditor detects a reflected XSS against it.  It uses the same
24801         reporting mechanism as for CSP violation reports.
24802
24803         Tests: http/tests/security/xssAuditor/malformed-xss-protection-header-5.html
24804                http/tests/security/xssAuditor/malformed-xss-protection-header-6.html
24805                http/tests/security/xssAuditor/malformed-xss-protection-header-7.html
24806                http/tests/security/xssAuditor/malformed-xss-protection-header-8.html
24807                http/tests/security/xssAuditor/malformed-xss-protection-header-9.html
24808                http/tests/security/xssAuditor/report-script-tag.html
24809                http/tests/security/xssAuditor/xss-protection-parsing-03.html
24810                http/tests/security/xssAuditor/xss-protection-parsing-04.html
24811
24812         * html/parser/XSSAuditor.cpp:
24813         (WebCore::XSSAuditor::XSSAuditor):
24814         (WebCore::XSSAuditor::init):
24815         (WebCore::XSSAuditor::filterToken):
24816         Invoke Ping loader's violation reporting, if requested, when a reflected
24817         XSS is detected.
24818         
24819         * html/parser/XSSAuditor.h:
24820         XSSAuditor class need to store the report URL as well as the undigested versions
24821         of the request URL and request body for reporting.
24822
24823         * loader/MixedContentChecker.cpp:
24824         (WebCore):
24825         * loader/MixedContentChecker.h:
24826         (MixedContentChecker):
24827         Make isMixedContent() method public.
24828
24829         * loader/PingLoader.cpp:
24830         (WebCore::PingLoader::sendViolationReport):
24831         * loader/PingLoader.h:
24832         (PingLoader):
24833         * page/ContentSecurityPolicy.cpp:
24834         (WebCore::ContentSecurityPolicy::reportViolation):
24835         Renamed reportContentSecurityPolicyViolation() method to sendViolationReport(),
24836         since this is now used to send more than just CSP violations.
24837         
24838         * platform/network/HTTPParsers.cpp:
24839         (WebCore):
24840         (WebCore::skipEquals):
24841         (WebCore::skipValue):
24842         (WebCore::parseXSSProtectionHeader):
24843         * platform/network/HTTPParsers.h:
24844         Parse and return report= directive in X-XSS-Protection header.
24845         
24846 2012-11-02  Sheriff Bot  <webkit.review.bot@gmail.com>
24847
24848         Unreviewed, rolling out r133313.
24849         http://trac.webkit.org/changeset/133313
24850         https://bugs.webkit.org/show_bug.cgi?id=101078
24851
24852         "A lot of tests hit the ASSERTs introduced by this patch"
24853         (Requested by haraken on #webkit).
24854
24855         * bindings/v8/V8DOMWrapper.h:
24856         (WebCore::V8DOMWrapper::setDOMWrapper):
24857
24858 2012-11-02  Ojan Vafai  <ojan@chromium.org>
24859
24860         Unreviewed, rolling out r132913.
24861         http://trac.webkit.org/changeset/132913
24862         https://bugs.webkit.org/show_bug.cgi?id=91850
24863
24864         Caused performance regressions.
24865         See https://bugs.webkit.org/show_bug.cgi?id=100872 for details.
24866
24867         * bindings/v8/V8PerIsolateData.cpp:
24868         (WebCore::V8PerIsolateData::visitExternalStrings):
24869         * bindings/v8/V8StringResource.cpp:
24870         (StringTraits):
24871         (WebCore::v8StringToWebCoreString):
24872         * bindings/v8/V8ValueCache.cpp:
24873         (WebCore::makeExternalString):
24874         (WebCore::WebCoreStringResource::visitStrings):
24875         * bindings/v8/V8ValueCache.h:
24876         (WebCore::WebCoreStringResource::WebCoreStringResource):
24877         (WebCore::WebCoreStringResource::~WebCoreStringResource):
24878         (WebCore::WebCoreStringResource::data):
24879         (WebCoreStringResource):
24880         (WebCore::WebCoreStringResource::length):
24881         (WebCore::WebCoreStringResource::atomicString):
24882         (WebCore::WebCoreStringResource::toStringResource):
24883
24884 2012-11-02  Martin Robinson  <mrobinson@igalia.com>
24885
24886         [GTK] Remove dependency on SoupPasswordManager
24887         https://bugs.webkit.org/show_bug.cgi?id=100775
24888
24889         Reviewed by Carlos Garcia Campos.
24890
24891         Remember passwords using libsecret instead of SoupPasswordManager. We accomplish this using
24892         a new class, CredentialBackingStore. CredentialBackingStore will soon be the thing that backs
24893         CredentialStoreGtk. The name is based on the name of a similar class from the BlackBerry port.
24894
24895         No new tests. This does not change behavior.
24896
24897         * GNUmakefile.am: Add libsecret flags to the build and the new directory to the include list.
24898         * GNUmakefile.list.am: Add new files to the source list.
24899         * platform/gtk/GRefPtrGtk.cpp: Add support for SecretValue to GRefPtrGtk.
24900         * platform/gtk/GtkAuthenticationDialog.cpp: Replace interaction with SoupPasswordManger with
24901         interaction with the CredentialBackingStore. Remove all conditional SoupPasswordManager guards.
24902         * platform/gtk/GtkAuthenticationDialog.h: Ditto.
24903         * platform/network/gtk/CredentialBackingStore.cpp: Added.
24904         * platform/network/gtk/CredentialBackingStore.h: Added.
24905
24906 2012-11-02  Jinwoo Song  <jinwoo7.song@samsung.com>
24907
24908         Fix build warning [-Wswitch]
24909         https://bugs.webkit.org/show_bug.cgi?id=101029
24910
24911         Reviewed by Alexey Proskuryakov.
24912
24913         Fix build warning message: enumeration value ‘Viewport’ not handled in switch [-Wswitch]
24914         in Source/WebCore/css/StyleSheetContents.cpp.
24915         Add case statement for 'Viewport' with the CSS_DEVICE_ADAPTATION macro.
24916
24917         * css/StyleSheetContents.cpp:
24918         (WebCore::childRulesHaveFailedOrCanceledSubresources):
24919
24920 2012-11-02  Ojan Vafai  <ojan@chromium.org>
24921
24922         Move m_element checks out of canShareStyle into locateSharedStyle
24923         https://bugs.webkit.org/show_bug.cgi?id=101070
24924
24925         Reviewed by Darin Adler.
24926
24927         Can shareStyleWithElement is called for each sibling as we look for a
24928         shareElement. locateSharedStyle is called once for the element we're
24929         trying to find a style for. Checks that only depend on the latter
24930         element should, thus be in locateSharedStyle.
24931
24932         No new tests. There should be no change in behavior, except possibly
24933         a performance improvement in some cases.
24934
24935         * css/StyleResolver.cpp:
24936         (WebCore::StyleResolver::canShareStyleWithElement):
24937         (WebCore::StyleResolver::locateSharedStyle):
24938
24939 2012-11-02  Kentaro Hara  <haraken@chromium.org>
24940
24941         [V8] Add ASSERT() to guarantee that we don't store NULL pointers to V8 internal fields
24942         https://bugs.webkit.org/show_bug.cgi?id=101054
24943
24944         Reviewed by Adam Barth.
24945
24946         I'm investigating a Chromium crash bug:
24947         http://code.google.com/p/chromium/issues/detail?id=155942
24948
24949         I've not yet identified the root cause (because I can't reproduce
24950         the crash), but it looks like we are storing NULL pointers to
24951         V8 internal fields. Just in case, we can add an ASSERT() to
24952         guarantee that NULL pointers are never stored. (Also I'm hoping
24953         that this ASSERT() will give me more debug information.)
24954
24955         No tests. No change in behavior.
24956
24957         * bindings/v8/V8DOMWrapper.h:
24958         (WebCore::V8DOMWrapper::setDOMWrapper):
24959
24960 2012-11-02  Kevin Ellis  <kevers@chromium.org>
24961
24962         Imrpove scoring in touch adjustment to address bias towards smaller targets.
24963         https://bugs.webkit.org/show_bug.cgi?id=101046
24964
24965         Reviewed by Antonio Gomes.
24966
24967         Update the touch overlap score for touch adjustmetn to normalize
24968         with respect to the maximum possible overlap rather than the size
24969         of the target element.  This change enables good overlap scores for
24970         small and large targets alike.  Prior to the patch it was not possible
24971         to get a good overlap score for a sufficiently larget target.
24972
24973         Covered by existing tests, which have been updated to reflect the
24974         intended behavior.
24975
24976         * page/TouchAdjustment.cpp:
24977         (WebCore::TouchAdjustment::hybridDistanceFunction):
24978
24979 2012-11-02  Mike West  <mkwst@chromium.org>
24980
24981         Web Inspector: Repeated errors are rendered incorrectly: link is not floating to the right.
24982         https://bugs.webkit.org/show_bug.cgi?id=101032
24983
24984         Reviewed by Yury Semikhatsky.
24985
24986         https://bugs.webkit.org/show_bug.cgi?id=100525 incorrectly added
24987         '-webkit-flex: 1' only to the list generated for errors in the console.
24988         It should have been added to normal warning text as well. This patch
24989         fixes the problem.
24990
24991         * inspector/front-end/inspector.css:
24992         (.repeated-message .outline-disclosure, .repeated-message > .console-message-text):
24993
24994 2012-11-02  Eugene Klyuchnikov  <eustas.bug@gmail.com>
24995
24996         Web Inspector: Timeline: show popup for CPU bars.
24997         https://bugs.webkit.org/show_bug.cgi?id=100951
24998
24999         Reviewed by Pavel Feldman.
25000
25001         Each CPU bar can represent a combination of several shorter messages.
25002         We should show information about combined messages - start time,
25003         total duration, CPU time, message count.
25004
25005         * English.lproj/localizedStrings.js: Added "Message Count" string.
25006         * inspector/front-end/TimelinePanel.js:
25007         (WebInspector.TimelinePanel.prototype._refreshMainThreadBars):
25008         Supply elements with underlying info.
25009         * inspector/front-end/TimelinePresentationModel.js:
25010         (WebInspector.TimelinePresentationModel.prototype.generateMainThreadBarPopupContent):
25011         Added.
25012
25013 2012-11-02  Alexei Filippov  <alph@chromium.org>
25014
25015         Web Inspector: Network panel grid UI is misaligned after r132888
25016         https://bugs.webkit.org/show_bug.cgi?id=101050
25017
25018         Rollback the change to basic data grid css and move it to the native memory
25019         snapshot datagrid css.
25020
25021         Reviewed by Alexander Pavlov.
25022
25023         * inspector/front-end/dataGrid.css:
25024         (.data-grid td):
25025         * inspector/front-end/nativeMemoryProfiler.css:
25026         (.native-snapshot-view .data-grid td):
25027
25028 2012-11-02  Sheriff Bot  <webkit.review.bot@gmail.com>
25029
25030         Unreviewed, rolling out r133303.
25031         http://trac.webkit.org/changeset/133303
25032         https://bugs.webkit.org/show_bug.cgi?id=101068
25033
25034         "Broke qt wk2 build (seems like bots fails to rerun qmake if
25035         needed)" (Requested by kbalazs on #webkit).
25036
25037         * Target.pri:
25038         * WebCore.pri:
25039         * platform/PlatformStrategies.cpp:
25040         (WebCore):
25041         * platform/qt/QtTestSupport.h: Removed.
25042
25043 2012-11-02  Balazs Kelemen  <kbalazs@webkit.org>
25044
25045         [Qt][WK2] setPlatformStrategies always asserts after r132744
25046         https://bugs.webkit.org/show_bug.cgi?id=100838
25047
25048         Reviewed by Simon Hausmann.
25049
25050         The problem here is that we use QWebSettings::clearMemoryCaches, a WebKit1 API
25051         from the injected bundle, which calls initializeWebCoreQt and it sets the platform
25052         strategies to the one for WebKit1. We should stop using WebKit1 API's from WebKit2
25053         code. In order to keep the behavior, this patch adds exported helpers to WebCore
25054         that can be used from DumpRenderTree and WebKitTestRunner. This is the same idea
25055         as WebCoreTestSupport but these helpers are specific to Qt. Technically we could
25056         add it to the WebKit1 API for the time being, but my goal was to move in the direction
25057         of removing the WebKit1 dependency from WebKitTestRunner. We only build the file
25058         in non production mode.
25059
25060         Basically covered by all tests.
25061
25062         * Target.pri:
25063         * WebCore.pri: We need to link against fontconfig (only in non-production mode) since
25064         initializeTestFonts uses it.
25065         * platform/PlatformStrategies.cpp:
25066         (WebCore): Zero initialize the global static variable as it is expected by the functions
25067         below. It is a side fix. It seems like it has not been shown on debug WebKit2 bots because
25068         common runtime environments tend to zero initialize statics by default - but I don't think
25069         we should rely on that.
25070         * platform/qt/QtTestSupport.cpp: Added. I choose GPL license because code from qwebsettings.cpp
25071         is also under that.
25072         (WebKit):
25073         (WebKit::QtTestSupport::clearMemoryCaches): This is basically a copy of QWebSettings::clearMemoryCaches
25074         without calling initializeWebCoreQt.
25075         (WebKit::QtTestSupport::initializeTestFonts): I moved this code here as well now that we have to expose
25076         symbols from WebCore anyway. The advantage is that now we don't have to build it twice and we don't need
25077         additional files to forward it from the directory of DumpRenderTree for WebKitTestRunner.
25078         I added a call to FontCace::invalidate in the case when the font set has been changed so that it will do
25079         the job even if we would stop clearing all caches between tests. Also moved the call to
25080         QFontDatabase::removeAllApplicationFonts from callers to here.
25081         * platform/qt/QtTestSupport.h:
25082         (WebKit):
25083         (QtTestSupport):
25084
25085 2012-11-02  Kent Tamura  <tkent@chromium.org>
25086
25087         Optimize DateTimeFormat::quoteAndAppendLiteral output
25088         https://bugs.webkit.org/show_bug.cgi?id=101040
25089
25090         Reviewed by Kentaro Hara.
25091
25092         In LDML date format pattern, only ASCII alphabet and quote have special
25093         roles. So we don't need to quote the input string if it doesn't contain
25094         them.
25095
25096         No new tests. Updated WebKit/chromium/tests/LocaleWinTest.cpp
25097
25098         * platform/text/DateTimeFormat.cpp:
25099         (WebCore::isASCIIAlphabetOrQuote): A helper to check special characters.
25100         (WebCore::DateTimeFormat::quoteAndAppendLiteral):
25101         Append the input string as is if it has no special character.
25102
25103 2012-11-02  Ilya Tikhonovsky  <loislo@chromium.org>
25104
25105         Web Inspector: NMI instrument NodeRareData::Map. It uses ~250k on nytimes.com
25106         https://bugs.webkit.org/show_bug.cgi?id=101052
25107
25108         Reviewed by Yury Semikhatsky.
25109
25110         I noticed that in many cases cache structures are plain static HashMap, HashSet etc.
25111         MemoryAgent can visit it but instrumentation for these containers report no objectType.
25112         It means that addRootObject method needs to accept objectType property as an argument.
25113         Otherwise I would have had to create a proxy class with proper objectType.
25114
25115         * dom/WebCoreMemoryInstrumentation.cpp:
25116         (WebCore::WebCoreMemoryInstrumentation::reportMemoryUsage):
25117         (WebCore):
25118         * dom/WebCoreMemoryInstrumentation.h:
25119         (WebCoreMemoryInstrumentation):
25120         (WebCore):
25121         * inspector/InspectorMemoryAgent.cpp:
25122         (WebCore::InspectorMemoryAgent::getProcessMemoryDistribution):
25123
25124 2012-11-02  Michael Brüning  <michael.bruning@digia.com>
25125
25126         [Qt][WK2] ASSERT hit for every mouse click
25127         https://bugs.webkit.org/show_bug.cgi?id=100607
25128
25129         Reviewed by Jocelyn Turcotte.
25130
25131         Changed the logic of absolutePathForRenderer to use the first highlight box as the mid box 
25132         by uniting the two in case the mid box is empty. This allows the first box to be merged with
25133         the last box should they intersect, and thereby prevents an ASSERT in addHighlightRect that is
25134         triggered by two intersecting boxes being passed to addHighlightRect as separate ones.
25135
25136         Also, this patch removes some superfluous checks for LayoutRect::isEmpty, which is being checked
25137         in LayoutRect::intersects already.
25138
25139         No new tests, but added manual test: ManualTests/tap-gesture-on-em-link-tap-highlight-assert.html
25140
25141         * page/GestureTapHighlighter.cpp:
25142
25143 2012-11-02  Arpita Bahuguna  <arpitabahuguna@gmail.com>
25144
25145         Regression r130057: Improper preferred width calculation when an inline replaced object, wrapped in an inline flow, follows some text.
25146         https://bugs.webkit.org/show_bug.cgi?id=99442
25147
25148         Reviewed by Levi Weintraub.
25149
25150         Extra width is displayed after an inline replaced object that follows some
25151         text (not ending in a whitespace) within an inline-block. This is due to
25152         the end width (endMin) of the text object being carried forward (via inlineMin)
25153         and added onto the next line containing the inline replaced object.
25154
25155         This was caused as a regression to, or rather became apparent post the fix
25156         http://trac.webkit.org/changeset/130057 which fixed the block's preferred
25157         width when a renderInline with width contained an inline replaced object.
25158
25159         Test: fast/block/block-with-inline-replaced-child-following-text.html
25160
25161         * rendering/RenderBlock.cpp:
25162         (WebCore::RenderBlock::computeInlinePreferredLogicalWidths):
25163         Introduced another flag (shouldBreakLineAfterText) which is set when
25164         our current Text line (object) does not end in a whitespace, thereby
25165         implying that there could be more text following, for which the end width
25166         needs to be carried forward onto the next line.
25167
25168         In case the following object instead turns out to be an Inline Replaced
25169         object, we should terminate our previous line and reset this extra width.
25170         This is now being handled by checking for the shouldBreakLineAfterText
25171         flag while processing Inline Replaced objects.
25172
25173         Once set, shouldBreakLineAfterText shall be reset only if we get another
25174         Text object that ends in a whitespace, signifying the termination of
25175         that text line. For all other cases, we persist with this flag through
25176         the block's inline contents.
25177
25178 2012-11-02  Eugene Klyuchnikov  <eustas.bug@gmail.com>
25179
25180         Web Inspector: Console: remove obsolete ctrl-shift-m shortcut
25181         https://bugs.webkit.org/show_bug.cgi?id=101036
25182
25183         Reviewed by Pavel Feldman.
25184
25185         Ctrl-shift-m on console dumps MemoryAgent.getDOMNodeCount
25186         This functionality seems to be obsolete.
25187
25188         * inspector/front-end/ConsoleView.js: Removed shortcut and function.
25189
25190 2012-11-02  Stephen Chenney  <schenney@chromium.org>
25191
25192         SVG classes cause layering violations in platform Font code
25193         https://bugs.webkit.org/show_bug.cgi?id=98513
25194
25195         Reviewed by Eric Seidel.
25196
25197         Add a contained class to save and restore GlpyhPage state in FontFallbackList.
25198         This allows us to remove the layering violation, and several methods, that
25199         previously existed to support SVGTextRunRenderingContext.
25200
25201         No new tests because no change at all in functionality.
25202
25203         * platform/graphics/FontFallbackList.h:
25204         (FontFallbackList):
25205         (GlyphPagesStateSaver): New state save and restore class
25206         (WebCore::FontFallbackList::GlyphPagesStateSaver::GlyphPagesStateSaver): Save GlyphPage state
25207         (WebCore::FontFallbackList::GlyphPagesStateSaver::~GlyphPagesStateSaver): Restore GlyphPage state
25208         * rendering/svg/SVGTextRunRenderingContext.cpp:
25209         (WebCore::SVGTextRunRenderingContext::glyphDataForCharacter): Shift to usage of the new class.
25210
25211 2012-11-02  Vsevolod Vlasov  <vsevik@chromium.org>
25212
25213         Web Inspector: Fix compilation errors
25214         https://bugs.webkit.org/show_bug.cgi?id=101027
25215
25216         Reviewed by Yury Semikhatsky.
25217
25218         * inspector/InjectedScriptSource.js:
25219         (.):
25220         * inspector/front-end/NativeMemorySnapshotView.js:
25221         (WebInspector.NativeSnapshotNode.prototype._createSizeCell):
25222
25223 2012-11-02  Andreas Kling  <kling@webkit.org>
25224
25225         Only resolve attribute-derived style once per shared ElementAttributeData.
25226         <http://webkit.org/b/100990>
25227
25228         Reviewed by Antti Koivisto.
25229
25230         Track the serialization of the "style" attribute, and the dirtiness of the presentation attribute style
25231         on ElementAttributeData instead of in Node flags.
25232
25233         This allows us to avoid duplicate work for ElementAttributeData that are shared between multiple elements,
25234         since the state is no longer per-Element.
25235
25236         I've left the presentation attribute cache in there for now, since it covers two additional cases:
25237
25238             - Elements with the same attributes in different order.
25239             - Elements with the same presentation attributes, but with differing non-presentation attributes.
25240
25241         It's likely that we're not gaining much from it anymore, but that's a topic for another patch.
25242
25243         * dom/Node.h:
25244         * dom/ElementAttributeData.h:
25245         (WebCore::ElementAttributeData::presentationAttributeStyle):
25246         (WebCore::ElementAttributeData::setPresentationAttributeStyle):
25247         (WebCore::ElementAttributeData::styleAttributeIsDirty):
25248         (WebCore::ElementAttributeData::setStyleAttributeIsDirty):
25249         (WebCore::ElementAttributeData::presentationAttributeStyleIsDirty):
25250         (WebCore::ElementAttributeData::setPresentationAttributeStyleIsDirty):
25251         (ElementAttributeData):
25252         (WebCore::ElementAttributeData::ElementAttributeData):
25253         * dom/Element.cpp:
25254         (WebCore::Element::getAttribute):
25255         * dom/Element.h:
25256         (WebCore::Element::styleAttributeIsDirty):
25257         (WebCore::Element::updateInvalidAttributes):
25258         * dom/StyledElement.cpp:
25259         (WebCore::StyledElement::updateStyleAttribute):
25260         (WebCore::StyledElement::attributeChanged):
25261         (WebCore::StyledElement::styleAttributeChanged):
25262         (WebCore::StyledElement::inlineStyleChanged):
25263         * dom/StyledElement.h:
25264         (WebCore::StyledElement::invalidateStyleAttribute):
25265
25266             Move the "attribute style dirty" and "style attribute valid" node flags to ElementAttributeData
25267             and change them to both use dirty semantics.
25268
25269         * dom/ElementAttributeData.cpp:
25270         (WebCore::ElementAttributeData::cloneDataFrom):
25271
25272             Share the presentation attribute style between cloned elements initially.
25273
25274         * dom/StyledElement.h:
25275         (WebCore::StyledElement::presentationAttributeStyle):
25276         * css/StyleResolver.cpp:
25277         (WebCore::StyleResolver::sweepMatchedPropertiesCache):
25278         (WebCore::StyleResolver::matchAllRules):
25279         (WebCore::StyleResolver::canShareStyleWithElement):
25280         * dom/ElementAttributeData.cpp:
25281         (WebCore::MutableElementAttributeData::MutableElementAttributeData):
25282         (WebCore::ElementAttributeData::reportMemoryUsage):
25283         * inspector/InspectorCSSAgent.cpp:
25284         (WebCore::InspectorCSSAgent::buildObjectForAttributesStyle):
25285
25286             Renamed StyledElement::attributeStyle() to presentationAttributeStyle(). The old name was too
25287             easily confused with "style attribute".
25288
25289         * dom/StyledElement.cpp:
25290         (WebCore::StyledElement::rebuildPresentationAttributeStyle):
25291
25292             Renamed from updateAttributeStyle().
25293
25294 2012-11-01  Kent Tamura  <tkent@chromium.org>
25295
25296         Introduce ENABLE_DATE_AND_TIME_INPUT_TYPES, and clarify usage of other related flags
25297         https://bugs.webkit.org/show_bug.cgi?id=101007
25298
25299         Reviewed by Kentaro Hara.
25300
25301         ChromeClient::openDateTimeChooser and Locale::formatDateTime are
25302         necessary if one of date/time input types is enabled and even if
25303         ENABLE_INPUT_MULTIPLE_FIELDS_UI is disabled. So they should be wrapped
25304         with ENABLE(DATE_AND_TIME_INPUT_TYPES).
25305
25306         The following clases are used only for ChromeClient::openDateTimeChooser.
25307         They should be wrapped with the same flag.
25308           - class DateTimeChooser
25309           - class DateTiemChooserClient
25310
25311         The following classes/functions are used for
25312         Locale::formatDateTime. They should be wrapped with the same flag.
25313           - Locale::dateFormat
25314           - Locale::monthFormat
25315           - Locale::timeFormat
25316           - Locale::shortTimeFormat
25317           - Locale::monthLabels
25318           - Locale::shortMonthLabels
25319           - Locale::standAloneMonthLabels
25320           - Locale::shortStandAloneMonthLabels
25321           - class DateTimeFormat
25322
25323         Also, we change the meaning of ENABLE_CALENDAR_PICKER. It meant
25324          1) <input> supports calendar picker UI, and
25325          2) WebCore/Resources/pagepopups/ is used for the calendar UI implementation.
25326         Now ENABLE_CALENDAR_PICKER means only 2.
25327
25328         No new tests because of no behavior changes.
25329
25330         * html/BaseDateAndTimeInputType.h: This is necessary only if date/time
25331         input types are enabled because this is a common super class of
25332         date/time InputType classes.
25333         * html/BaseDateAndTimeInputType.cpp: Ditto.
25334         * html/BaseChooserOnlyDateAndTimeInputType.cpp: Ditto.
25335         * html/BaseChooserOnlyDateAndTimeInputType.h: Ditto.
25336
25337         * page/ChromeClient.h: Change the flag for openDateTimeChooser, and add a comment.
25338         * loader/EmptyClients.cpp: Follow the openDateTimeChooser flag change.
25339         * loader/EmptyClients.h: Ditto.
25340         * platform/DateTimeChooser.h:
25341         This is needed only if ChromeClient::openDateTimeChooser is available.
25342         * platform/DateTimeChooserClient.h: Ditto.
25343
25344         * platform/LocalizedStrings.h:
25345         weekFormatInLDML is necessary if ENABLE(INPUT_TYPE_WEEK) regardless of
25346         ENABLE(INPUT_MULTIPLE_FIELDS_UI).
25347
25348         * platform/text/PlatformLocale.h:
25349         Change the condition for Locale::formatDateTime and the code used by
25350         Locale::formatDateTime.
25351         * platform/text/PlatformLocale.cpp:
25352         (WebCore::Locale::formatDateTime):
25353         This is necessary even if !ENABLE(INPUT_MULTIPLE_FIELDS_UI), to produce
25354         localized representations of date/time values.
25355         * platform/text/LocaleICU.cpp:
25356         Change the condition for the code used by Locale::formatDateTime.
25357         * platform/text/LocaleICU.h: Ditto.
25358         * platform/text/LocaleNone.cpp: Ditto.
25359         * platform/text/mac/LocaleMac.h: Ditto.
25360         * platform/text/mac/LocaleMac.mm: Ditto.
25361         * platform/text/win/LocaleWin.cpp: Ditto.
25362         * platform/text/win/LocaleWin.h: Ditto.
25363         * platform/text/DateTimeFormat.cpp: Ditto.
25364         * platform/text/DateTimeFormat.h: Ditto.
25365
25366         * html/BaseMultipleFieldsDateAndTimeInputType.h:
25367         Remove some #if-#endif for a picker indicator element because
25368         ENABLE_CALENDAR_PICKER meaning is changed.
25369         * html/BaseMultipleFieldsDateAndTimeInputType.cpp: Ditto.
25370
25371         * html/shadow/PickerIndicatorElement.cpp: CALENDAR_PICKER ->
25372         INPUT_MULTIPLE_FIELDS_UI because ENABLE_CALENDAR_PICKER meaning is changed.
25373         * html/shadow/PickerIndicatorElement.h: Ditto.
25374         * rendering/RenderDetailsMarker.cpp: Ditto.
25375         * rendering/RenderDetailsMarker.h: Ditto.
25376         * rendering/RenderTheme.h: Ditto.
25377         * rendering/RenderThemeChromiumCommon.cpp: Ditto.
25378         * rendering/RenderThemeChromiumCommon.h: Ditto.
25379         * rendering/RenderThemeChromiumMac.h: Ditto.
25380         * rendering/RenderThemeChromiumSkia.h: Ditto.
25381
25382 2012-11-02  Zeno Albisser  <zeno@webkit.org>
25383
25384         [Qt] Revert QCocoaNativeInterface workaround from r131720.
25385         https://bugs.webkit.org/show_bug.cgi?id=100842
25386
25387         Reviewed by Simon Hausmann.
25388
25389         After updating Qt5 on the buildbots, the workaround
25390         introduced in r131720 is not needed anymore.
25391
25392         * platform/graphics/surfaces/mac/GraphicsSurfaceMac.cpp:
25393         (WebCore::GraphicsSurfacePrivate::GraphicsSurfacePrivate):
25394
25395 2012-11-02  Kent Tamura  <tkent@chromium.org>
25396
25397         Add a common base class for date/time input types without inline editing behavior
25398         https://bugs.webkit.org/show_bug.cgi?id=101031
25399
25400         Reviewed by Hajime Morita.
25401
25402         Add BaseChooserOnlyDateAndTimeInputType class, which will support
25403         DateTimeChooserClient, and date/time input types inherit it if
25404         !ENABLE(INPUT_MULTIPLE_FIELDS_UI).
25405
25406         No new tests. This doesn't change any behavior.
25407
25408         * CMakeLists.txt: Add BaseChooserOnlyDateAndTimeInputType.{cpp,h}.
25409         * GNUmakefile.list.am: Ditto.
25410         * Target.pri: Ditto.
25411         * WebCore.gypi: Ditto.
25412         * WebCore.xcodeproj/project.pbxproj: Ditto.
25413         * html/BaseChooserOnlyDateAndTimeInputType.cpp: Added.
25414         * html/BaseChooserOnlyDateAndTimeInputType.h: Added.
25415
25416         * html/DateInputType.h: Inherit BaseChooserOnlyDateAndTimeInputType if
25417         !ENABLE(INPUT_MULTIPLE_FIELDS_UI).
25418         * html/DateTimeInputType.h: Ditto.
25419         * html/DateTimeLocalInputType.h: Ditto.
25420         * html/MonthInputType.h: Ditto.
25421         * html/TimeInputType.h: Ditto.
25422         * html/WeekInputType.h: Ditto.
25423
25424 2012-11-02  Peter Wang  <peter.wang@torchmobile.com.cn>
25425
25426         Web Inspector: [JSC] implement WorkerScriptDebugServer
25427         https://bugs.webkit.org/show_bug.cgi?id=99801
25428
25429         Reviewed by Yury Semikhatsky.
25430
25431         To implement Worker Inspector for JSC.
25432         The virtual function "runEventLoopWhilePaused" is defined, since there are different ways to block
25433         the JS running in worker-context and normal page-context.
25434         The function "isContentScript" now is virtual because the original invoked functions are useless
25435         and cause problem in worker-context.
25436         In function "WebCore::WorkerScriptController::attachDebugger", we invoke "initScriptIfNeeded" to
25437         ensure the JSGloblalObject exist in the case of attaching Debugger before executing the worker
25438         JS code (Pause on start).
25439
25440         No new test case.
25441
25442         * bindings/js/PageScriptDebugServer.cpp:
25443         (WebCore::PageScriptDebugServer::runEventLoopWhilePaused):
25444         (WebCore):
25445         * bindings/js/PageScriptDebugServer.h:
25446         (PageScriptDebugServer):
25447         * bindings/js/ScriptDebugServer.cpp:
25448         (WebCore::ScriptDebugServer::isContentScript):
25449         (WebCore::ScriptDebugServer::pauseIfNeeded):
25450         * bindings/js/ScriptDebugServer.h:
25451         (JSC):
25452         (ScriptDebugServer):
25453         * bindings/js/WorkerScriptController.cpp:
25454         (WebCore::WorkerScriptController::attachDebugger):
25455         (WebCore):
25456         (WebCore::WorkerScriptController::detachDebugger):
25457         * bindings/js/WorkerScriptController.h:
25458         (WorkerScriptController):
25459         * bindings/js/WorkerScriptDebugServer.cpp:
25460         (WebCore::WorkerScriptDebugServer::WorkerScriptDebugServer):
25461         (WebCore):
25462         (WebCore::WorkerScriptDebugServer::addListener):
25463         (WebCore::WorkerScriptDebugServer::recompileAllJSFunctions):
25464         (WebCore::WorkerScriptDebugServer::removeListener):
25465         (WebCore::WorkerScriptDebugServer::runEventLoopWhilePaused):
25466         * bindings/js/WorkerScriptDebugServer.h:
25467         (WorkerScriptDebugServer):
25468         (WebCore::WorkerScriptDebugServer::getListenersForGlobalObject):
25469         (WebCore::WorkerScriptDebugServer::isContentScript):
25470
25471 2012-11-02  KyungTae Kim  <ktf.kim@samsung.com>
25472
25473         Compilation warning in Node.cpp when USERSELECT_ALL is disabled
25474         https://bugs.webkit.org/show_bug.cgi?id=101025
25475
25476         Reviewed by Ryosuke Niwa.
25477
25478         The parameter 'treatment' is not used when USERSELECT_ALL is disabled. 
25479
25480         * dom/Node.cpp:
25481         (WebCore::Node::rendererIsEditable):
25482
25483 2012-11-01  Vsevolod Vlasov  <vsevik@chromium.org>
25484
25485         Web Inspector: Middle click closes an editor and pastes selection into current editor on Linux
25486         https://bugs.webkit.org/show_bug.cgi?id=100743
25487
25488         Reviewed by Alexander Pavlov.
25489
25490         Editor now consumes all middle mouse button mouse ups except for the ones in the main panel.
25491         TabbedPane now consumes all middle mouse button mouse ups as well.
25492         Navigator view does not pass focus anymore if element was selected with middle mouse button.
25493
25494         * inspector/front-end/DefaultTextEditor.js:
25495         (.preventDefaultOnMouseUp):
25496         (.consumeMouseUp):
25497         * inspector/front-end/NavigatorView.js:
25498         (WebInspector.NavigatorSourceTreeElement.prototype.ondblclick):
25499         * inspector/front-end/TabbedPane.js:
25500         (WebInspector.TabbedPane):
25501         (WebInspector.TabbedPane.prototype.onMouseUp):
25502         (WebInspector.TabbedPane.prototype.onMouseClick):
25503
25504 2012-11-01  Ilya Tikhonovsky  <loislo@chromium.org>
25505
25506         Web Inspector: NMI instrument ShadowRoot. It gives us ~400k on plus.google.com
25507         https://bugs.webkit.org/show_bug.cgi?id=100866
25508
25509         Reviewed by Yury Semikhatsky.
25510
25511         Plain vanilla memory instrumentation code for HTMLInputElement which has a ElementShadow.
25512
25513         * CMakeLists.txt:
25514         * GNUmakefile.list.am:
25515         * Target.pri:
25516         * WebCore.gypi:
25517         * WebCore.vcproj/WebCore.vcproj:
25518         * dom/DocumentOrderedMap.cpp:
25519         (WebCore::DocumentOrderedMap::reportMemoryUsage):
25520         (WebCore):
25521         * dom/DocumentOrderedMap.h:
25522         (DocumentOrderedMap):
25523         * dom/Element.cpp:
25524         (WebCore::Element::reportMemoryUsage):
25525         (WebCore):
25526         * dom/Element.h:
25527         * dom/ElementRareData.cpp: Added.
25528         (WebCore):
25529         (WebCore::ElementRareData::reportMemoryUsage):
25530         * dom/ElementRareData.h:
25531         (ElementRareData):
25532         * dom/ElementShadow.cpp:
25533         (WebCore::ElementShadow::reportMemoryUsage):
25534         (WebCore):
25535         * dom/ElementShadow.h:
25536         (ElementShadow):
25537         * dom/Node.cpp:
25538         (WebCore::Node::reportMemoryUsage):
25539         * dom/NodeRareData.cpp: Added.
25540         (WebCore):
25541         (WebCore::NodeListsNodeData::reportMemoryUsage):
25542         (WebCore::NodeRareData::reportMemoryUsage):
25543         * dom/NodeRareData.h:
25544         (NodeListsNodeData):
25545         (NodeRareData):
25546         * dom/ShadowRoot.cpp:
25547         (WebCore):
25548         (WebCore::ShadowRoot::reportMemoryUsage):
25549         * dom/ShadowRoot.h:
25550         (ShadowRoot):
25551         * dom/TreeScope.cpp:
25552         (WebCore::TreeScope::reportMemoryUsage):
25553         (WebCore):
25554         * dom/TreeScope.h:
25555         (TreeScope):
25556         * html/HTMLFormControlElement.cpp:
25557         (WebCore::HTMLFormControlElement::reportMemoryUsage):
25558         (WebCore):
25559         * html/HTMLFormControlElement.h:
25560         (HTMLFormControlElement):
25561         * html/HTMLInputElement.cpp:
25562         (WebCore::HTMLInputElement::reportMemoryUsage):
25563         (WebCore):
25564         * html/HTMLInputElement.h:
25565         (HTMLInputElement):
25566         * html/HTMLTextFormControlElement.cpp:
25567         (WebCore::HTMLTextFormControlElement::reportMemoryUsage):
25568         (WebCore):
25569         * html/HTMLTextFormControlElement.h:
25570         (HTMLTextFormControlElement):
25571
25572 2012-11-02  Vsevolod Vlasov  <vsevik@chromium.org>
25573
25574         Web Inspector: Cookie info in Network Resources Cookies tab shows "Invalid Date"
25575         https://bugs.webkit.org/show_bug.cgi?id=97471
25576
25577         Reviewed by Pavel Feldman.
25578
25579         This patch is partly based on patch by Otto Derek Cheung <otcheung@rim.com>.
25580         Refactored CookieParser so that all cookies in front-end were WebInspector.Cookie object.
25581         Cookie table can now show Max-Age as well as Expires attribute of a cookie.
25582         Fixed expiresDate calculation.
25583         Removed getters from CookieParser for better compilation.
25584
25585         * English.lproj/localizedStrings.js:
25586         * inspector/front-end/AuditRules.js:
25587         (WebInspector.AuditRules.CookieRuleBase.prototype.mapResourceCookies):
25588         (WebInspector.AuditRules.CookieSizeRule.prototype._average):
25589         (WebInspector.AuditRules.CookieSizeRule.prototype._max):
25590         (WebInspector.AuditRules.StaticCookielessRule.prototype._collectorCallback):
25591         * inspector/front-end/CookieItemsView.js:
25592         (WebInspector.CookieItemsView.prototype._filterCookiesForDomain):
25593         * inspector/front-end/CookieParser.js:
25594         (WebInspector.CookieParser.prototype.cookies):
25595         (WebInspector.CookieParser.prototype._flushCookie):
25596         (WebInspector.CookieParser.prototype._addCookie):
25597         (WebInspector.Cookie.prototype.httpOnly):
25598         (WebInspector.Cookie.prototype.secure):
25599         (WebInspector.Cookie.prototype.session):
25600         (WebInspector.Cookie.prototype.path):
25601         (WebInspector.Cookie.prototype.domain):
25602         (WebInspector.Cookie.prototype.expires):
25603         (WebInspector.Cookie.prototype.maxAge):
25604         (WebInspector.Cookie.prototype.size):
25605         (WebInspector.Cookie.prototype.setSize):
25606         (WebInspector.Cookie.prototype.expiresDate):
25607         (WebInspector.Cookie.prototype.attributes):
25608         (WebInspector.Cookies.getCookiesAsync):
25609         (WebInspector.Cookies.buildCookiesFromString):
25610         (WebInspector.Cookies.buildCookieProtocolObject):
25611         (WebInspector.Cookies.cookieMatchesResourceURL):
25612         (WebInspector.Cookies.cookieDomainMatchesResourceDomain):
25613         * inspector/front-end/CookiesTable.js:
25614         (WebInspector.CookiesTable):
25615         (WebInspector.CookiesTable.prototype._totalSize):
25616         (WebInspector.CookiesTable.prototype._sortCookies.expiresCompare):
25617         (WebInspector.CookiesTable.prototype._sortCookies):
25618         (WebInspector.CookiesTable.prototype._createGridNode):
25619         * inspector/front-end/HAREntry.js:
25620         (WebInspector.HAREntry.prototype._buildCookie):
25621
25622 2012-11-01  Yury Semikhatsky  <yurys@chromium.org>
25623
25624         Memory instrumentation: do not call checkCountedObject with wrong pointers
25625         https://bugs.webkit.org/show_bug.cgi?id=100958
25626
25627         Reviewed by Alexander Pavlov.
25628
25629         Removed redundant call to checkCountedObject.
25630
25631         * inspector/MemoryInstrumentationImpl.cpp:
25632         (WebCore::MemoryInstrumentationClientImpl::countObjectSize):
25633
25634 2012-11-02  Peter Wang  <peter.wang@torchmobile.com.cn>
25635
25636         Web Inspector: a small defect in "WorkersSidebarPanel.js"
25637         https://bugs.webkit.org/show_bug.cgi?id=101022
25638
25639         Reviewed by Yury Semikhatsky.
25640
25641         In "autoattachToWorkersClicked", the "event.target.checked" doesn't alwyas valid, since the
25642         "event.target" might be a label.
25643
25644         The problem just causes an error report, doesn't effect function, so no new test case.
25645
25646         * inspector/front-end/WorkersSidebarPane.js:
25647         (WebInspector.WorkersSidebarPane.prototype._autoattachToWorkersClicked):
25648
25649 2012-11-01  Shinya Kawanaka  <shinyak@chromium.org>
25650
25651         [Shadow] Element should have getter and setter of attribute 'pseudo'
25652         https://bugs.webkit.org/show_bug.cgi?id=100831
25653
25654         Reviewed by Hajime Morita.
25655
25656         We expose 'pseudo' attribute in Element. When nothing is assigned to 'pseudo', it should return null.
25657
25658         Test: fast/dom/shadow/pseudo-attribute.html
25659
25660         * dom/Element.cpp:
25661         (WebCore::Element::pseudo):
25662         (WebCore):
25663         (WebCore::Element::setPseudo):
25664         * dom/Element.h:
25665         (Element):
25666         * dom/Element.idl:
25667         * html/HTMLAttributeNames.in:
25668
25669 2012-11-01  Roger Fong  <roger_fong@apple.com>
25670
25671         Build fix. http://trac.webkit.org/changeset/133252 broke the Windows build.
25672         https://bugs.webkit.org/show_bug.cgi?id=101008
25673
25674         Reviewed by fischman@chromium.org.
25675
25676         * html/HTMLMediaElement.cpp:
25677         (WebCore::HTMLMediaElement::clearMediaPlayer):
25678         * html/HTMLMediaElement.h:
25679         (HTMLMediaElement):
25680
25681 2012-11-01  Stephen White  <senorblanco@chromium.org>
25682
25683         Unreviewed, rolling out r133244.
25684         http://trac.webkit.org/changeset/133244
25685         https://bugs.webkit.org/show_bug.cgi?id=100973
25686
25687         Broke Chromium Mac (clang) builds.
25688
25689         * bindings/v8/DOMDataStore.cpp:
25690         (WebCore::DOMDataStore::DOMDataStore):
25691         * bindings/v8/IntrusiveDOMWrapperMap.h:
25692         (WebCore::DOMNodeWrapperMap::weakCallback):
25693
25694 2012-11-01  Ami Fischman  <fischman@chromium.org>
25695
25696         HTMLMediaPlayer should free m_player when src is set/changed
25697         https://bugs.webkit.org/show_bug.cgi?id=99647
25698
25699         Reviewed by Eric Carlson.
25700
25701         New ManualTest added; manual since leaking media players doesn't have layoutTestController-visible effects.
25702
25703         * html/HTMLMediaElement.cpp:
25704         (WebCore::HTMLMediaElement::parseAttribute): clearMediaPlayer() when src is set/changed
25705         (WebCore::HTMLMediaElement::userCancelledLoad): use new clearMediaPlayer() helper
25706         (WebCore::HTMLMediaElement::clearMediaPlayer): clear m_player and associated timers/flags
25707         (WebCore):
25708         (WebCore::HTMLMediaElement::createMediaPlayer): whitespace-only change
25709         * html/HTMLMediaElement.h: new method: createMediaPlayer().
25710         (HTMLMediaElement):
25711
25712 2012-11-01  Tom Sepez  <tsepez@chromium.org>
25713
25714         XSS blocker false positive when page contains <iframe src="">
25715         https://bugs.webkit.org/show_bug.cgi?id=93416
25716
25717         Reviewed by Adam Barth.
25718
25719         Treat src="" and src="about:blank" as safe resources even if they appear
25720         in the query parameters.
25721
25722         Tests: http/tests/security/xssAuditor/iframe-injection-allowed-2.html
25723                http/tests/security/xssAuditor/iframe-injection-allowed-3.html
25724                http/tests/security/xssAuditor/iframe-injection-allowed.html
25725
25726         * html/parser/XSSAuditor.cpp:
25727         (WebCore::XSSAuditor::isLikelySafeResource):
25728
25729 2012-11-01  Tien-Ren Chen  <trchen@chromium.org>
25730
25731         Fix assertion failure in RenderGeometryMap::absoluteRect when frame scale != 1.0
25732         https://bugs.webkit.org/show_bug.cgi?id=100912
25733
25734         Reviewed by Simon Fraser.
25735
25736         Frame scale will add transformation to RenderView, so fixed position doesn't
25737         get propagated up to the viewport by RenderGeometryMap. This is handled
25738         correctly in RenderView::mapLocalToContainer, causing the assertion to fail.
25739         This patch corrects RenderGeometryMap::mapToAbsolute to handle the RenderView
25740         transformation case.
25741
25742         A layout test is added to catch this issue. The test will crash debug build
25743         without this patch.
25744
25745         Test: compositing/geometry/fixed-position-composited-page-scale-scroll.html
25746
25747         * rendering/RenderGeometryMap.cpp:
25748         (WebCore::RenderGeometryMap::mapToAbsolute):
25749
25750 2012-11-01  Adam Barth  <abarth@webkit.org>
25751
25752         [V8] Generalize NodeWrapperMap to be able to handle other sorts of keys
25753         https://bugs.webkit.org/show_bug.cgi?id=100973
25754
25755         Reviewed by Kentaro Hara.
25756
25757         This is the first step towards using intrusive DOM wrapper maps more
25758         widely in WebCore (see
25759         http://lists.webkit.org/pipermail/webkit-dev/2012-November/022686.html
25760         for more context).
25761
25762         * bindings/v8/DOMDataStore.cpp:
25763         (WebCore::DOMDataStore::DOMDataStore):
25764         * bindings/v8/IntrusiveDOMWrapperMap.h:
25765         (WebCore):
25766         (WebCore::IntrusiveDOMWrapperMap::weakCallback):
25767
25768 2012-11-01  Alexandru Chiculita  <achicu@adobe.com>
25769
25770         [CSS Shaders] CustomFilterOperation should be converted to ValidatedCustomFilterOperation before using it
25771         https://bugs.webkit.org/show_bug.cgi?id=100533
25772
25773         Reviewed by Dean Jackson.
25774
25775         Added the code that converts a CustomFilterOperation to a ValidatedCustomFilterOperation.
25776         Both the software path and the composited one will use this operation instead. There will be
25777         no need to check the shader in platform code anymore.
25778
25779         No new tests, already covered by existing custom filter tests.
25780
25781         * platform/graphics/filters/ValidatedCustomFilterOperation.cpp:
25782         (WebCore::ValidatedCustomFilterOperation::ValidatedCustomFilterOperation):
25783         * platform/graphics/filters/ValidatedCustomFilterOperation.h:
25784         (WebCore):
25785         (WebCore::ValidatedCustomFilterOperation::create):
25786         (ValidatedCustomFilterOperation):
25787         (WebCore::ValidatedCustomFilterOperation::validatedProgram):
25788         (WebCore::ValidatedCustomFilterOperation::parameters):
25789         (WebCore::ValidatedCustomFilterOperation::meshRows):
25790         (WebCore::ValidatedCustomFilterOperation::meshColumns):
25791         (WebCore::ValidatedCustomFilterOperation::meshType):
25792         (WebCore::ValidatedCustomFilterOperation::operator==):
25793         * rendering/FilterEffectRenderer.cpp:
25794         (WebCore::createCustomFilterEffect):
25795         (WebCore::FilterEffectRenderer::build):
25796         * rendering/RenderLayer.cpp:
25797         (WebCore::RenderLayer::ensureBacking):
25798         (WebCore::RenderLayer::clearBacking):
25799         (WebCore::RenderLayer::styleChanged): updateOrRemoveFilterClients needs to be called before the composited
25800         layer is updated. Otherwise the composited layer will never see a loaded filter in the first call.
25801         (WebCore):
25802         (WebCore::RenderLayer::isCSSCustomFilterEnabled):
25803         (WebCore::RenderLayer::computeFilterOperations):
25804         (WebCore::RenderLayer::updateOrRemoveFilterClients): Split updateOrRemoveFilterEffect into 2 functions.
25805         This one is supposed to add the clients needed to load network resources.
25806         (WebCore::RenderLayer::updateOrRemoveFilterEffectRenderer): Figures out if a software fallback is needed 
25807         and creates a FilterEffectRenderer.
25808         * rendering/RenderLayer.h:
25809         (RenderLayer):
25810
25811 2012-11-01  Max Vujovic  <mvujovic@adobe.com>
25812
25813         [CSS Shaders] Get rid of internal tex coord attribute
25814         https://bugs.webkit.org/show_bug.cgi?id=94358
25815
25816         Reviewed by Dean Jackson.
25817
25818         Remove the internal css_a_texCoord attribute that WebKit added to shaders in order to
25819         sample the element texture by texture coordinate.
25820
25821         Now, the WebKit-added sampling code can leverage a_texCoord if the author defined it, or
25822         WebKit can add its own a_texCoord definition to the author's shader.
25823
25824         Note that vertex attributes are read-only in GLSL. Also, note that we already reject the
25825         shader if the author did not define a_texCoord with the correct type. Essentially, if
25826         a_texCoord exists in the author's validated shader, we are guaranteed that it's the correct
25827         type and that its value is unmodified.
25828
25829         Test: css3/filters/custom/custom-filter-a-tex-coord-optional.html
25830
25831         * platform/graphics/filters/CustomFilterCompiledProgram.cpp:
25832         (WebCore::CustomFilterCompiledProgram::CustomFilterCompiledProgram):
25833             Remove the references to m_internalTexCoordAttribLocation.
25834         (WebCore::CustomFilterCompiledProgram::initializeParameterLocations): Ditto.
25835         * platform/graphics/filters/CustomFilterCompiledProgram.h: Ditto.
25836         * platform/graphics/filters/CustomFilterRenderer.cpp:
25837         (WebCore::CustomFilterRenderer::bindProgramAndBuffers): Ditto.
25838         (WebCore::CustomFilterRenderer::unbindVertexAttributes): Ditto.
25839         * platform/graphics/filters/CustomFilterValidatedProgram.cpp:
25840         (WebCore::CustomFilterValidatedProgram::CustomFilterValidatedProgram):
25841             Pass the set of symbols found in the author's shaders to the rewriteMixVertexShader
25842             method.
25843         (WebCore::CustomFilterValidatedProgram::rewriteMixVertexShader):
25844             If the author didn't define a_texCoord, add it to the end of the author's vertex 
25845             shader, but before the shader's new main function. As before, the new main function
25846             will pass the texture coordinate to the fragment shader via the css_v_texCoord varying.
25847         * platform/graphics/filters/CustomFilterValidatedProgram.h:
25848         (WebCore):
25849             Add a forward declaration for ANGLEShaderSymbol.
25850         (CustomFilterValidatedProgram):
25851             Update the method prototype for rewriteMixVertexShader.
25852
25853 2012-11-01  Chris Rogers  <crogers@google.com>
25854
25855         Ensure that AudioNode deletion is synchronized with a stable state of the rendering graph
25856         https://bugs.webkit.org/show_bug.cgi?id=100994
25857
25858         Reviewed by Kenneth Russell.
25859
25860         In some rare cases it has been observed that nodes are getting deleted in the main thread
25861         during an audio rendering quantum where the dirty inputs and outputs have not yet been cleaned
25862         via calls to handleDirtyAudioSummingJunctions() and handleDirtyAudioNodeOutputs().
25863         This was possible because nodes marked for deletion with markForDeletion() could be picked
25864         up in a subsequent call to deleteMarkedNodes() before the render quantum has finished and
25865         handlePostRenderTasks() has had a chance to reconcile these marked nodes and clean the dirty state.
25866         The solution is to manage the marked nodes in a separate vector which only gets copied to another
25867         vector truly eligible for deletion which is synchronized in handlePostRenderTasks().
25868
25869         * Modules/webaudio/AudioContext.cpp:
25870         (WebCore::AudioContext::markForDeletion):
25871         (WebCore::AudioContext::scheduleNodeDeletion):
25872         (WebCore::AudioContext::deleteMarkedNodes):
25873         * Modules/webaudio/AudioContext.h:
25874         (AudioContext):
25875
25876 2012-11-01  Ryosuke Niwa  <rniwa@webkit.org>
25877
25878         Build fix after r133224 as suggested by Enrica.
25879         Confirmed the test failures go away on Chromium Mac locally.
25880
25881         * page/EventHandler.cpp:
25882         (WebCore::EventHandler::updateSelectionForMouseDrag):
25883
25884 2012-11-01  Alexey Proskuryakov  <ap@apple.com>
25885
25886         Rename HAVE(NETWORK_CFDATA_ARRAY_CALLBACK) to USE(NETWORK_CFDATA_ARRAY_CALLBACK)
25887
25888         Rubber-stamped by Joe Pecoraro.
25889
25890         All CFNetwork based platforms have this now, but not all use it at the moment.
25891
25892         * loader/ResourceLoader.h:
25893         * loader/SubresourceLoader.h:
25894         * loader/cf/SubresourceLoaderCF.cpp:
25895         * loader/mac/ResourceLoaderMac.mm:
25896         * platform/SharedBuffer.cpp:
25897         (WebCore::SharedBuffer::clear):
25898         (WebCore::SharedBuffer::buffer):
25899         (WebCore::SharedBuffer::getSomeData):
25900         * platform/SharedBuffer.h:
25901         * platform/cf/SharedBufferCF.cpp:
25902         * platform/network/ResourceHandle.h:
25903         * platform/network/ResourceHandleClient.h:
25904         (ResourceHandleClient):
25905         * platform/network/cf/ResourceHandleCFNet.cpp:
25906         (WebCore::willCacheResponse):
25907         (WebCore::ResourceHandle::createCFURLConnection):
25908         * platform/network/mac/ResourceHandleMac.mm:
25909
25910 2012-11-01  Alexey Proskuryakov  <ap@apple.com>
25911
25912         Fix HAVE(NETWORK_CFDATA_ARRAY_CALLBACK) build
25913         https://bugs.webkit.org/show_bug.cgi?id=100979
25914
25915         Reviewed by Joseph Pecoraro.
25916
25917         * loader/ResourceBuffer.cpp: (WebCore::ResourceBuffer::append):
25918         * loader/ResourceBuffer.h:
25919         Added a version of append() that takes CFDataRef, passing it directly to SharedBuffer.
25920
25921         * loader/mac/ResourceLoaderMac.mm: (WebCore::ResourceLoader::didReceiveDataArray):
25922         InspectorInstrumentation now takes a length. Unfortunately, we don't have encodedLength
25923         here, meaning that the results will likely be incorrect.
25924
25925         * platform/network/cf/ResourceHandleCFNet.cpp:
25926         (WebCore::willCacheResponse): Removed a version that needlessly used deprecated API.
25927         (WebCore::ResourceHandle::createCFURLConnection): This code assumed that
25928         HAVE(NETWORK_CFDATA_ARRAY_CALLBACK) and USE(PROTECTION_SPACE_AUTH_CALLBACK) always
25929         come together. Changed to check for these separately.
25930
25931 2012-11-01  Rob Buis  <rbuis@rim.com>
25932
25933         [BlackBerry] Add more form validation strings
25934         https://bugs.webkit.org/show_bug.cgi?id=100978
25935
25936         Reviewed by Yong Li.
25937
25938         PR 210072
25939
25940         Implement these two methods properly.
25941
25942         * platform/blackberry/LocalizedStringsBlackBerry.cpp:
25943         (WebCore::validationMessageRangeUnderflowText):
25944         (WebCore::validationMessageRangeOverflowText):
25945
25946 2012-11-01  Alexandru Chiculita  <achicu@adobe.com>
25947
25948         [CSS Shaders] Move MeshBoxType out of CustomFilterOperation
25949         https://bugs.webkit.org/show_bug.cgi?id=100782
25950
25951         Reviewed by Dean Jackson.
25952
25953         Moved CustomFilter::MeshBoxType enum to the CustomFilterConstants.h file and renamed it to CustomFilterMeshBoxType. 
25954         This way we can reuse it without including the CustomFilterOperation file.
25955
25956         No new tests, just refactoring code.
25957
25958         * css/CSSPrimitiveValueMappings.h:
25959         (WebCore::CSSPrimitiveValue::CSSPrimitiveValue):
25960         (WebCore::CSSPrimitiveValue::operator CustomFilterMeshBoxType):
25961         * css/StyleResolver.cpp:
25962         (WebCore::StyleResolver::createCustomFilterOperation):
25963         * platform/graphics/filters/CustomFilterArrayParameter.h: Adding AnimationUtilities.h for WebCore::blend, looks like
25964         CustomFilterOperation already included AnimationsUtilities.h indirectly.
25965         * platform/graphics/filters/CustomFilterConstants.h: Added CustomFilterMeshBoxType.
25966         * platform/graphics/filters/CustomFilterNumberParameter.h:
25967         * platform/graphics/filters/CustomFilterOperation.cpp:
25968         (WebCore::CustomFilterOperation::CustomFilterOperation):
25969         * platform/graphics/filters/CustomFilterOperation.h:
25970         (WebCore::CustomFilterOperation::create):
25971         (WebCore::CustomFilterOperation::meshBoxType):
25972         (CustomFilterOperation):
25973         * platform/graphics/filters/CustomFilterRenderer.cpp:
25974         (WebCore::CustomFilterRenderer::create):
25975         (WebCore::CustomFilterRenderer::CustomFilterRenderer):
25976         * platform/graphics/filters/CustomFilterRenderer.h: Also removed the need to include CustomFilterOperation.h. Some other
25977         headers were needed to replace the files that were automatically incldued because of that file.
25978         (WebCore):
25979         (CustomFilterRenderer):
25980         * platform/graphics/filters/FECustomFilter.cpp:
25981         (WebCore::FECustomFilter::FECustomFilter):
25982         (WebCore::FECustomFilter::create):
25983         * platform/graphics/filters/FECustomFilter.h:
25984         (FECustomFilter):
25985
25986 2012-11-01  Enrica Casucci  <enrica@apple.com>
25987
25988         Part2 of: Extend -webkit-user-select with new value "all"
25989         <rdar://problem/10161404>
25990         https://bugs.webkit.org/show_bug.cgi?id=91912
25991
25992         Reviewed by Ryosuke Niwa.
25993
25994         The new value "all" for -webkit-user-select property gives content none-or-all selection option.
25995         The patch was originally prepared by Alice Cheng but the approach has been changed.
25996         The idea is to treat these elements like non editable, meaning that we should skip over them entirely
25997         when moving the cursor and a deletion should delete the element and all its descentants at once.
25998         The key change is in Node::rendererIsEditable where we now return false if the element style is
25999         userSelect: all. The other change is in the way we create the selection on mouse click and dragging
26000         over the element. In both cases we force the selection to extend over the entire element with
26001         the user-select: all attribute.
26002         This is currently enabled only for the Mac port.
26003
26004         Test: editing/selection/user-select-all-selection.html
26005
26006         * dom/Node.cpp: Added a parameter to isContentEditable to behave differently
26007         when called from JavaScript. Internally isContentEditable returns false on
26008         nodes with user-select: all style.
26009         (WebCore::Node::isContentEditable):
26010         (WebCore::Node::isContentRichlyEditable):
26011         (WebCore::Node::rendererIsEditable):
26012         (WebCore::Node::shouldUseInputMethod):
26013         (WebCore::Node::willRespondToMouseClickEvents):
26014         * dom/Node.h:
26015         (WebCore::Node::rendererIsEditable):
26016         (WebCore::Node::rendererIsRichlyEditable):
26017         * dom/Position.cpp:
26018         (WebCore::Position::nodeIsUserSelectAll): Added.
26019         (WebCore::Position::rootUserSelectAllForNode): Added.
26020         * dom/Position.h: Added static functions described above.
26021         * editing/ApplyStyleCommand.cpp:
26022         (WebCore::ApplyStyleCommand::removeInlineStyleFromElement): Added parameter to
26023         isContentEditable() call.
26024         (WebCore::ApplyStyleCommand::surroundNodeRangeWithElement): Added parameter to
26025         isContentEditable() call.
26026         * editing/DeleteFromTextNodeCommand.cpp:
26027         (WebCore::DeleteFromTextNodeCommand::doApply): Added parameter to
26028         isContentEditable() call.
26029         * editing/FrameSelection.cpp:
26030         (WebCore::adjustForwardPositionForUserSelectAll): New helper function.
26031         (WebCore::adjustBackwardPositionForUserSelectAll): New helper function.
26032         (WebCore::FrameSelection::modifyExtendingRight):
26033         (WebCore::FrameSelection::modifyExtendingForward):
26034         (WebCore::FrameSelection::modifyExtendingLeft):
26035         (WebCore::FrameSelection::modifyExtendingBackward):
26036         (WebCore::FrameSelection::modify):
26037         (WebCore::CaretBase::invalidateCaretRect): Added parameter to
26038         isContentEditable() call.
26039         * editing/InsertNodeBeforeCommand.cpp:
26040         (WebCore::InsertNodeBeforeCommand::doApply): Ditto.
26041         (WebCore::InsertNodeBeforeCommand::doUnapply): Ditto.
26042         * editing/RemoveNodeCommand.cpp:
26043         (WebCore::RemoveNodeCommand::doApply): Ditto.
26044         * editing/visible_units.cpp:
26045         (WebCore::startOfParagraph): We should not consider a paragraph break and element
26046         with user-select: all style, like we do at the border of editability.
26047         (WebCore::endOfParagraph): Ditto.
26048         * page/EventHandler.cpp:
26049         (WebCore::EventHandler::updateSelectionForMouseDownDispatchingSelectStart): Create a selection
26050         around the element whose style is user-select: all.
26051         (WebCore::EventHandler::updateSelectionForMouseDrag): Ditto.
26052         * rendering/RootInlineBox.cpp:
26053         (WebCore::RootInlineBox::selectionState): Fixed a bug uncovered during this work.
26054         If the selection starts in one of the leaf boxes and after we encounter one with SelectionNone,
26055         we should return the selection state as SelectionBoth, assuming we went past the end selection.
26056         This avoids doing an incorrect gap filling for the selection highlighting.
26057
26058 2012-11-01  Alec Flett  <alecflett@chromium.org>
26059
26060         IndexedDB: Fix Windows build by re-adding a #include
26061         https://bugs.webkit.org/show_bug.cgi?id=100986
26062
26063         Reviewed by Stephen White.
26064
26065         Fix #include that broke windows.
26066
26067         * Modules/indexeddb/IDBCallbacks.h:
26068
26069 2012-11-01  David Barton  <dbarton@mathscribe.com>
26070
26071         REGRESSION (r128837): mathml/presentation/subsup.xhtml became flaky
26072         https://bugs.webkit.org/show_bug.cgi?id=97390
26073
26074         Reviewed by Ojan Vafai.
26075
26076         In a RenderMathMLSubSup, we need to set the base's wrapper's style so that baseHeight
26077         in layout() will be the base's true height, without any flexbox stretching.
26078
26079         Tested by existing tests.
26080
26081         * rendering/mathml/RenderMathMLSubSup.cpp:
26082         (WebCore::RenderMathMLSubSup::fixAnonymousStyles):
26083         (WebCore::RenderMathMLSubSup::addChild):
26084         (WebCore::RenderMathMLSubSup::styleDidChange):
26085         * rendering/mathml/RenderMathMLSubSup.h:
26086         (RenderMathMLSubSup):
26087
26088 2012-11-01  Antti Koivisto  <antti@apple.com>
26089
26090         REGRESSION (r132941): attribute modification 10% performance regression
26091         https://bugs.webkit.org/show_bug.cgi?id=100873
26092
26093         Reviewed by Ojan Vafai.
26094
26095         Don't do the class change finding by mutating SpaceSplitString. It is slow. Instead use a bit vector
26096         to mark the unchanged classes
26097
26098         * css/StyleResolver.cpp:
26099         (WebCore):
26100         * css/StyleResolver.h:
26101         (WebCore::StyleResolver::hasSelectorForAttribute):
26102         (WebCore):
26103         (WebCore::StyleResolver::hasSelectorForClass):
26104         (WebCore::StyleResolver::hasSelectorForId):
26105         
26106             Inlined these and moved value validity testing to clients.
26107
26108         * dom/Element.cpp:
26109         (WebCore::checkNeedsStyleInvalidationForIdChange):
26110         (WebCore):
26111         (WebCore::Element::attributeChanged):
26112     
26113             Clean up id testing too.
26114
26115         (WebCore::checkNeedsStyleInvalidationForClassChange):
26116         
26117             Use bit vector for marking seen values. Avoids allocations and reffing.
26118
26119         (WebCore::Element::classAttributeChanged):
26120         
26121             Don't test if style is already invalid.
26122
26123 2012-11-01  Ryosuke Niwa  <rniwa@webkit.org>
26124
26125         [Mac] Crash in Range::editingStartPosition
26126         https://bugs.webkit.org/show_bug.cgi?id=100972
26127
26128         Reviewed by Enrica Casucci.
26129
26130         Add a missing null pointer check. toNormalizedRange() can return null here, in which case the call to
26131         pastLastNode() will crash.
26132
26133         No new tests since determining the exact condition under which we go through the said code path and
26134         toNormalRange returns null is hard.
26135
26136         * editing/mac/EditorMac.mm:
26137         (WebCore::Editor::fontForSelection):
26138
26139 2012-11-01  Beth Dakin  <bdakin@apple.com>
26140
26141         https://bugs.webkit.org/show_bug.cgi?id=100917
26142         There should be a way to dump the scrolling tree from the layout tests
26143
26144         Reviewed by Simon Fraser.
26145
26146         New Internals call to dump the scrolling state tree as text. Calls through to the 
26147         ScrollingCoordinator.
26148         * testing/Internals.cpp:
26149         (WebCore::Internals::scrollingStateTreeAsText):
26150         (WebCore):
26151         * testing/Internals.h:
26152         * testing/Internals.idl:
26153         * WebCore.exp.in:
26154         * page/Page.cpp:
26155         (WebCore::Page::scrollingStateTreeAsText):
26156         (WebCore):
26157         * page/Page.h:
26158         (Page):
26159
26160         ScrollingCoordinator tells the rootStateNode to dump the tree as text.
26161         * page/scrolling/mac/ScrollingCoordinatorMac.h:
26162         (ScrollingCoordinatorMac):
26163         * page/scrolling/mac/ScrollingCoordinatorMac.mm:
26164         (WebCore::ScrollingCoordinatorMac::scrollingStateTreeAsText):
26165         (WebCore):
26166         * page/scrolling/ScrollingCoordinator.cpp:
26167         (WebCore::ScrollingCoordinator::scrollingStateTreeAsText):
26168         (WebCore):
26169         * page/scrolling/ScrollingCoordinator.h:
26170         (ScrollingCoordinator):
26171
26172         dumpNode() dumps generic stuff for each node, and dumpProperties will dump the 
26173         properties that are specific to different types of nodes.
26174         * page/scrolling/ScrollingStateNode.cpp:
26175         (WebCore::ScrollingStateNode::writeIndent):
26176         (WebCore):
26177         (WebCore::ScrollingStateNode::dumpNode):
26178         (WebCore::ScrollingStateNode::scrollingStateTreeAsText):
26179         * page/scrolling/ScrollingStateNode.h:
26180         (WebCore):
26181         (ScrollingStateNode):
26182         * page/scrolling/ScrollingStateScrollingNode.cpp:
26183         (WebCore::ScrollingStateScrollingNode::dumpProperties):
26184         (WebCore):
26185         * page/scrolling/ScrollingStateScrollingNode.h:
26186         (ScrollingStateScrollingNode):
26187
26188 2012-11-01  Kenneth Russell  <kbr@google.com>
26189
26190         Add RGB to supported destination formats of ImageBuffer::copyToPlatformTexture
26191         https://bugs.webkit.org/show_bug.cgi?id=100971
26192
26193         Reviewed by Stephen White.
26194
26195         The ImageBuffer::copyToPlatformTexture restriction added in
26196         r132965 was too restrictive. Allow RGB textures to prevent
26197         performance regressions.
26198
26199         * html/canvas/WebGLRenderingContext.cpp:
26200         (WebCore):
26201         (WebCore::WebGLRenderingContext::texImage2D):
26202         * platform/graphics/ImageBuffer.h:
26203         (ImageBuffer):
26204
26205 2012-11-01  Michael Matovsky  <mmatovsky@rim.com>
26206
26207         [BlackBerry] Web page view state should be preserved for pages loaded from page cache
26208         https://bugs.webkit.org/show_bug.cgi?id=100694
26209         Internal PR: 220488
26210
26211         Internally reviewed by Lianghui Chen, Joe Mason
26212         Reviewed by Rob Buis.
26213
26214         The web page view specific metadata should be preserved for web pages loaded from page cache (by using back/forward).
26215         This requires web page view state to be saved in and restored from the corresponding page cache history item.
26216
26217         No new tests for platform specific internal change.
26218
26219         * history/blackberry/HistoryItemViewState.h:
26220         (HistoryItemViewState):
26221
26222 2012-11-01  Alec Flett  <alecflett@chromium.org>
26223
26224         IndexedDB: add methods to support id-based backend APIs
26225         https://bugs.webkit.org/show_bug.cgi?id=100425
26226
26227         Reviewed by Tony Chang.
26228
26229         First half of refactor involves adding a number of methods that
26230         are int64_t-based rather than String-based. As a part of this, the
26231         IDB*Metadata structs and the backend objectStore/index maps all
26232         use int64_t as keys, rather than String.
26233
26234         In addition, there were a number of cleanups that came out of the
26235         refactor:
26236
26237         - The list of object stores active in a transaction is now
26238           maintained by the frontend IDBTransaction rather than the backend
26239           IDBTransactionBackendImpl. This also had a simplifying rippling
26240           effect through other call signatures.
26241
26242         - I was able to remove an apparently old FIXME from
26243           IDBTransactionBackendImpl::objectStore and replace it with an ASSERT.
26244
26245         - IDBObjectStoreBackendImpl's IndexWriter class got a little
26246           simpler since the id is now easily available in the
26247           IDBIndexMetadata.
26248
26249         - A number of methods got simpler in their int64_t versions,
26250           specifically dropping a number of ExceptionCodes.
26251
26252         There is also some glue code
26253         (getIndexId/getIndexIds/getObjectStoreId) that will go away with
26254         the 2nd half of this: https://bugs.webkit.org/show_bug.cgi?id=100425
26255
26256         No new tests, no new functionality as this is just a refactor.
26257
26258         * Modules/indexeddb/IDBDatabase.cpp:
26259         (WebCore::IDBDatabase::objectStoreNames):
26260         (WebCore::IDBDatabase::createObjectStore):
26261         (WebCore::IDBDatabase::deleteObjectStore):
26262         (WebCore::IDBDatabase::transaction):
26263         * Modules/indexeddb/IDBDatabaseBackendImpl.cpp:
26264         (WebCore::IDBDatabaseBackendImpl::metadata):
26265         (WebCore::IDBDatabaseBackendImpl::createObjectStore):
26266         (WebCore::IDBDatabaseBackendImpl::objectStore):
26267         (WebCore::IDBDatabaseBackendImpl::getObjectStoreId):
26268         (WebCore):
26269         (WebCore::IDBDatabaseBackendImpl::deleteObjectStore):
26270         (WebCore::IDBDatabaseBackendImpl::transaction):
26271         (WebCore::IDBDatabaseBackendImpl::loadObjectStores):
26272         (WebCore::IDBDatabaseBackendImpl::removeObjectStoreFromMap):
26273         (WebCore::IDBDatabaseBackendImpl::addObjectStoreToMap):
26274         * Modules/indexeddb/IDBDatabaseBackendImpl.h:
26275         (WebCore::IDBDatabaseBackendImpl::deleteObjectStore):
26276         (IDBDatabaseBackendImpl):
26277         * Modules/indexeddb/IDBDatabaseBackendInterface.h:
26278         (IDBDatabaseBackendInterface):
26279         * Modules/indexeddb/IDBIndex.h:
26280         (WebCore::IDBIndex::id):
26281         (WebCore::IDBIndex::openKeyCursor):
26282         * Modules/indexeddb/IDBIndexBackendInterface.h:
26283         * Modules/indexeddb/IDBMetadata.h:
26284         (WebCore::IDBIndexMetadata::IDBIndexMetadata):
26285         (IDBIndexMetadata):
26286         (IDBObjectStoreMetadata):
26287         (WebCore::IDBObjectStoreMetadata::containsIndex):
26288         (IDBDatabaseMetadata):
26289         (WebCore::IDBDatabaseMetadata::IDBDatabaseMetadata):
26290         (WebCore::IDBDatabaseMetadata::containsObjectStore):
26291         * Modules/indexeddb/IDBObjectStore.cpp:
26292         (WebCore::IDBObjectStore::indexNames):
26293         (WebCore::IDBObjectStore::put):
26294         (WebCore::IDBObjectStore::createIndex):
26295         (WebCore::IDBObjectStore::index):
26296         (WebCore::IDBObjectStore::deleteIndex):
26297         * Modules/indexeddb/IDBObjectStoreBackendImpl.cpp:
26298         (WebCore::IDBObjectStoreBackendImpl::put):
26299         (WebCore::IDBObjectStoreBackendImpl::putWithIndexKeys):
26300         (WebCore):
26301         (WebCore::makeIndexWriters):
26302         (WebCore::IDBObjectStoreBackendImpl::setIndexKeys):
26303         (WebCore::IDBObjectStoreBackendImpl::setIndexesReady):
26304         (WebCore::IDBObjectStoreBackendImpl::setIndexesReadyInternal):
26305         (WebCore::IDBObjectStoreBackendImpl::putInternal):
26306         (WebCore::IDBObjectStoreBackendImpl::deleteInternal):
26307         (WebCore::IDBObjectStoreBackendImpl::createIndex):
26308         (WebCore::IDBObjectStoreBackendImpl::index):
26309         (WebCore::IDBObjectStoreBackendImpl::getIndexId):
26310         (WebCore::IDBObjectStoreBackendImpl::getIndexIds):
26311         (WebCore::IDBObjectStoreBackendImpl::deleteIndex):
26312         (WebCore::IDBObjectStoreBackendImpl::loadIndexes):
26313         (WebCore::IDBObjectStoreBackendImpl::removeIndexFromMap):
26314         (WebCore::IDBObjectStoreBackendImpl::addIndexToMap):
26315         * Modules/indexeddb/IDBObjectStoreBackendImpl.h:
26316         (IDBObjectStoreBackendImpl):
26317         * Modules/indexeddb/IDBObjectStoreBackendInterface.h:
26318         * Modules/indexeddb/IDBOpenDBRequest.cpp:
26319         (WebCore::IDBOpenDBRequest::onUpgradeNeeded):
26320         * Modules/indexeddb/IDBRequest.cpp:
26321         (WebCore::IDBRequest::onSuccess):
26322         (WebCore::IDBRequest::uncaughtExceptionInEventHandler):
26323         * Modules/indexeddb/IDBTransaction.cpp:
26324         (WebCore::IDBTransaction::create):
26325         (WebCore::IDBTransaction::IDBTransaction):
26326         (WebCore::IDBTransaction::objectStore):
26327         * Modules/indexeddb/IDBTransaction.h:
26328         (IDBTransaction):
26329         * Modules/indexeddb/IDBTransactionBackendImpl.cpp:
26330         (WebCore::IDBTransactionBackendImpl::create):
26331         (WebCore::IDBTransactionBackendImpl::IDBTransactionBackendImpl):
26332         (WebCore::IDBTransactionBackendImpl::objectStore):
26333         (WebCore):
26334         (WebCore::IDBTransactionBackendImpl::scheduleTask):
26335         * Modules/indexeddb/IDBTransactionBackendImpl.h:
26336         (IDBTransactionBackendImpl):
26337         * Modules/indexeddb/IDBTransactionBackendInterface.h:
26338
26339 2012-11-01  Adam Barth  <abarth@webkit.org>
26340
26341         [V8] The DOMWrapperVisitor abstraction is no longer needed
26342         https://bugs.webkit.org/show_bug.cgi?id=100965
26343
26344         Reviewed by Kentaro Hara.
26345
26346         This patch removes the DOMWrapperVisitor interface because it is no
26347         longer needed. As a consequence, DOMWrapperMaps no longer need to
26348         support enumeration, and we can move more DOM objects to use the faster
26349         intrusive wrappers.
26350
26351         There was one remaining user of DOMWrapperVisitor in the
26352         ScriptProfiler, which I've moved over to enumerating objects directly
26353         from V8, similar to a function above it in the same file.
26354
26355         * bindings/v8/DOMWrapperMap.h:
26356         (WebCore):
26357         (DOMWrapperMap):
26358         * bindings/v8/IntrusiveDOMWrapperMap.h:
26359         * bindings/v8/ScriptProfiler.cpp:
26360         (WebCore::ScriptProfiler::visitNodeWrappers):
26361         (WebCore::ScriptProfiler::visitExternalArrays):
26362
26363 2012-11-01  Mike West  <mkwst@chromium.org>
26364
26365         CSP 1.0: Warn when old-style directives encountered.
26366         https://bugs.webkit.org/show_bug.cgi?id=100883
26367
26368         Reviewed by Adam Barth.
26369
26370         In Mozilla's pre-W3C-spec implementation, a few directives are
26371         implemented that were either renamed, reworked, or removed from CSP 1.0.
26372         This patch adds special warning messages for three of those directives
26373         to set developer expectations correctly.
26374
26375         Test: http/tests/security/contentSecurityPolicy/source-list-parsing-deprecated.html
26376
26377         * page/ContentSecurityPolicy.cpp:
26378         (WebCore::CSPDirectiveList::parseDirective):
26379         (WebCore::CSPDirectiveList::addDirective):
26380         (WebCore::ContentSecurityPolicy::reportUnsupportedDirective):
26381         * page/ContentSecurityPolicy.h:
26382             Rename 'reportUnrecognizedDirectives' to
26383             'reportUnsupportedDirectives', and teach it to give more descriptive
26384             error messages when encountering 'allow', 'options', and
26385             'policy-uri'.
26386
26387 2012-11-01  Pavel Feldman  <pfeldman@chromium.org>
26388
26389         Web Inspector: Update CodeMirror to v3
26390         https://bugs.webkit.org/show_bug.cgi?id=99319
26391
26392         Reviewed by Vsevolod Vlasov.
26393
26394         Updated to ToT v3.
26395
26396         * inspector/front-end/CodeMirrorTextEditor.js:
26397         (WebInspector.CodeMirrorTextEditor):
26398         (WebInspector.CodeMirrorTextEditor.prototype._gutterClick):
26399         (WebInspector.CodeMirrorTextEditor.prototype.addBreakpoint):
26400         (WebInspector.CodeMirrorTextEditor.prototype.removeBreakpoint):
26401         (WebInspector.CodeMirrorTextEditor.prototype.setExecutionLine):
26402         (WebInspector.CodeMirrorTextEditor.prototype.clearExecutionLine):
26403         (WebInspector.CodeMirrorTextEditor.prototype.highlightLine):
26404         (WebInspector.CodeMirrorTextEditor.prototype.clearLineHighlight):
26405         (WebInspector.CodeMirrorTextEditor.prototype._change):
26406         * inspector/front-end/cm/cmdevtools.css:
26407         (.CodeMirror):
26408         (.CodeMirror-linenumber):
26409         (.cm-breakpoint):
26410         * inspector/front-end/cm/codemirror.css:
26411         (.CodeMirror):
26412         (.CodeMirror-scroll):
26413         (.CodeMirror-lines):
26414         (.CodeMirror pre):
26415         (.CodeMirror-scrollbar-filler):
26416         (.CodeMirror-gutters):
26417         (.CodeMirror-linenumbers):
26418         (.CodeMirror-linenumber):
26419         (.CodeMirror pre.CodeMirror-cursor):
26420         (.CodeMirror pre.CodeMirror-secondarycursor):
26421         (.cm-keymap-fat-cursor pre.CodeMirror-cursor):
26422         (.cm-keymap-fat-cursor pre.CodeMirror-cursor:not(#nonsense_id)):
26423         (.CodeMirror pre.CodeMirror-cursor.CodeMirror-overwrite):
26424         (.cm-s-default .cm-keyword):
26425         (.cm-s-default .cm-atom):
26426         (.cm-s-default .cm-number):
26427         (.cm-s-default .cm-def):
26428         (.cm-s-default .cm-variable):
26429         (.cm-s-default .cm-variable-2):
26430         (.cm-s-default .cm-variable-3):
26431         (.cm-s-default .cm-property):
26432         (.cm-s-default .cm-operator):
26433         (.cm-s-default .cm-comment):
26434         (.cm-s-default .cm-string):
26435         (.cm-s-default .cm-string-2):
26436         (.cm-s-default .cm-meta):
26437         (.cm-s-default .cm-error):
26438         (.cm-s-default .cm-qualifier):
26439         (.cm-s-default .cm-builtin):
26440         (.cm-s-default .cm-bracket):
26441         (.cm-s-default .cm-tag):
26442         (.cm-s-default .cm-attribute):
26443         (.cm-s-default .cm-header):
26444         (.cm-s-default .cm-quote):
26445         (.cm-s-default .cm-hr):
26446         (.cm-s-default .cm-link):
26447         (.cm-header, .cm-strong):
26448         (.cm-em):
26449         (.cm-emstrong):
26450         (.cm-link):
26451         (.cm-invalidchar):
26452         (div.CodeMirror span.CodeMirror-matchingbracket):
26453         (div.CodeMirror span.CodeMirror-nonmatchingbracket):
26454         (.CodeMirror-sizer):
26455         (.CodeMirror-vscrollbar, .CodeMirror-hscrollbar, .CodeMirror-scrollbar-filler):
26456         (.CodeMirror-vscrollbar):
26457         (.CodeMirror-hscrollbar):
26458         (.CodeMirror-gutter):
26459         (.CodeMirror-gutter-elt):
26460         (.CodeMirror-linebackground):
26461         (.CodeMirror-linewidget):
26462         (.CodeMirror-measure):
26463         (.CodeMirror-measure pre):
26464         (.CodeMirror-selected):
26465         (.CodeMirror-focused .CodeMirror-selected):
26466         (.CodeMirror span):
26467         * inspector/front-end/cm/codemirror.js:
26468         (window.CodeMirror.):
26469         (window.CodeMirror):
26470         * inspector/front-end/utilities.js:
26471
26472 2012-11-01  Tiancheng Jiang  <tijiang@rim.com>
26473
26474         [BlackBerry] Update BB10 form theme.
26475         https://bugs.webkit.org/show_bug.cgi?id=100760
26476
26477         Reviewed by Rob Buis.
26478
26479         RIM PR 235194.
26480
26481         Check img pointer is null, if so, do early return.
26482
26483         * platform/blackberry/RenderThemeBlackBerry.cpp:
26484         (WebCore::drawControl):
26485         (WebCore::drawThreeSlice):
26486         (WebCore::drawNineSlice):
26487
26488 2012-11-01  Adam Barth  <abarth@webkit.org>
26489
26490         [V8] The V8DOMMap visitors are no longer needed
26491         https://bugs.webkit.org/show_bug.cgi?id=100963
26492
26493         Reviewed by Kentaro Hara.
26494
26495         This patch inlines visitAllDOMNodes into its one caller (and removes
26496         one layer of visitor adaptor abstraction).
26497
26498         * bindings/v8/ScriptProfiler.cpp:
26499         (WebCore::ScriptProfiler::visitNodeWrappers):
26500         * bindings/v8/V8DOMMap.cpp:
26501         * bindings/v8/V8DOMMap.h:
26502         (WebCore):
26503
26504 2012-11-01  Tiancheng Jiang  <tijiang@rim.com>
26505
26506         [BlackBerry] Update BB10 form theme.
26507         https://bugs.webkit.org/show_bug.cgi?id=100760
26508
26509         Reviewed by Rob Buis.
26510
26511         RIM PR 235194.
26512
26513         Check img pointer is null, if so, do early return.
26514
26515         * platform/blackberry/RenderThemeBlackBerry.cpp:
26516         (WebCore::drawControl):
26517         (WebCore::drawThreeSlice):
26518         (WebCore::drawNineSlice):
26519
26520 2012-11-01  Adam Barth  <abarth@webkit.org>
26521
26522         Unreviewed. Build fix.
26523
26524         * bindings/v8/V8GCController.cpp:
26525
26526 2012-11-01  Christophe Dumez  <christophe.dumez@intel.com>
26527
26528         [EFL][WK2] Add Ewk_Auth_Request API
26529         https://bugs.webkit.org/show_bug.cgi?id=100858
26530
26531         Reviewed by Kenneth Rohde Christiansen.
26532
26533         Provide an AuthenticationClient for EFL port in WebCore so
26534         that we can handle authentication similarly to other ports
26535         of WebKit.
26536
26537         No new tests, no behavior change for layout tests.
26538
26539         * PlatformEfl.cmake: Add AuthenticationChallengeSoup.cpp to CMake.
26540         * loader/ResourceLoader.cpp:
26541         (WebCore::ResourceLoader::didReceiveAuthenticationChallenge):
26542         * platform/network/ResourceHandle.h:
26543         (ResourceHandle): Have ResourceHandle subclass AuthenticationClient like
26544         most of the other ports.
26545         * platform/network/soup/AuthenticationChallengeSoup.cpp: Fix initialization
26546         of previousFailureCount member. It should be 1 if we are retrying
26547         authentication and 0 otherwise, not the opposite.
26548         (WebCore::AuthenticationChallenge::AuthenticationChallenge):
26549         * platform/network/soup/ResourceHandleSoup.cpp: Provide implementation for EFL
26550         port of AuthenticationClient methods.
26551         (WebCore::WebCoreSynchronousLoader::didReceiveAuthenticationChallenge):
26552         (WebCoreSynchronousLoader):
26553         (WebCore):
26554         (WebCore::ResourceHandle::didReceiveAuthenticationChallenge):
26555         (WebCore::ResourceHandle::receivedRequestToContinueWithoutCredential):
26556         (WebCore::ResourceHandle::receivedCredential):
26557         (WebCore::ResourceHandle::receivedCancellation):
26558         (WebCore::authenticateCallback):
26559         (WebCore::ResourceHandle::defaultSession):
26560
26561 2012-10-24  Jocelyn Turcotte  <jocelyn.turcotte@digia.com>
26562
26563         WebIconDatabase: Properly clean up on destruction
26564         https://bugs.webkit.org/show_bug.cgi?id=100237
26565
26566         Reviewed by Brady Eidson.
26567
26568         It's now possible that the IconDatabase gets destroyed since WebKit2
26569         isn't using it as a singleton.
26570
26571         Check that the database was properly closed rather than asserting that
26572         it won't get deleted.
26573
26574         * loader/icon/IconDatabase.cpp:
26575         (WebCore::IconDatabase::~IconDatabase):
26576
26577 2012-11-01  Alexei Filippov  <alph@chromium.org>
26578
26579         Web Inspector: make component subitems use parent color in native memory snapshots.
26580         https://bugs.webkit.org/show_bug.cgi?id=100876
26581
26582         A component subitems use the color of the component itself if the color
26583         is not explicitly specified for the subitem.
26584
26585         Reviewed by Yury Semikhatsky.
26586
26587         * inspector/front-end/NativeMemorySnapshotView.js:
26588         (WebInspector.NativeSnapshotNode.prototype._createSizeCell):
26589         (WebInspector.MemoryBlockViewProperties._initialize):
26590         (WebInspector.MemoryBlockViewProperties._forMemoryBlock):
26591
26592 2012-11-01  Emil A Eklund  <eae@chromium.org>
26593
26594         [subpixel] Change intrinsicSize to LayoutUnit
26595         https://bugs.webkit.org/show_bug.cgi?id=99104
26596
26597         Reviewed by Levi Weintraub.
26598
26599         Change RenderReplaced and intrinsicSize to LayoutUnit to avoid
26600         rounding problems when zooming/scaling. Also change imageSize to
26601         LayoutUnit as it can return a scaled size.
26602
26603         Test: fast/sub-pixel/tiled-canvas-elements.html
26604
26605         * html/ImageDocument.cpp:
26606         (WebCore::ImageDocumentParser::finish):
26607         * loader/cache/CachedImage.cpp:
26608         (WebCore::CachedImage::imageSizeForRenderer):
26609         * loader/cache/CachedImage.h:
26610         (CachedImage):
26611         * platform/graphics/FractionalLayoutSize.h:
26612         (FractionalLayoutSize):
26613         (WebCore::FractionalLayoutSize::scale):
26614         (WebCore::FractionalLayoutSize::clampToMinimumSize):
26615         * rendering/RenderBox.h:
26616         (WebCore::RenderBox::intrinsicSize):
26617         * rendering/RenderHTMLCanvas.cpp:
26618         (WebCore::RenderHTMLCanvas::canvasSizeChanged):
26619         * rendering/RenderImage.cpp:
26620         (WebCore::RenderImage::imageChanged):
26621         (WebCore::RenderImage::updateIntrinsicSizeIfNeeded):
26622         (WebCore::RenderImage::paintReplaced):
26623         (WebCore::RenderImage::minimumReplacedHeight):
26624         * rendering/RenderImage.h:
26625         (RenderImage):
26626         * rendering/RenderImageResource.h:
26627         (WebCore::RenderImageResource::imageSize):
26628         * rendering/RenderImageResourceStyleImage.h:
26629         * rendering/RenderReplaced.cpp:
26630         (WebCore::RenderReplaced::RenderReplaced):
26631         (WebCore::RenderReplaced::computeAspectRatioInformationForRenderBox):
26632         (WebCore::RenderReplaced::computeReplacedLogicalWidth):
26633         (WebCore::RenderReplaced::computeReplacedLogicalHeight):
26634         * rendering/RenderReplaced.h:
26635         (RenderReplaced):
26636         (WebCore::RenderReplaced::minimumReplacedHeight):
26637         (WebCore::RenderReplaced::setIntrinsicSize):
26638         * rendering/RenderVideo.cpp:
26639         (WebCore::RenderVideo::updateIntrinsicSize):
26640         (WebCore::RenderVideo::calculateIntrinsicSize):
26641         (WebCore::RenderVideo::videoBox):
26642         (WebCore::RenderVideo::minimumReplacedHeight):
26643         * rendering/RenderVideo.h:
26644         (RenderVideo):
26645         * rendering/style/StyleCachedImage.cpp:
26646         (WebCore::StyleCachedImage::imageSize):
26647         * rendering/style/StyleCachedImage.h:
26648         (StyleCachedImage):
26649         * rendering/style/StyleCachedImageSet.cpp:
26650         (WebCore::StyleCachedImageSet::imageSize):
26651         * rendering/style/StyleCachedImageSet.h:
26652         (StyleCachedImageSet):
26653         * rendering/style/StyleGeneratedImage.cpp:
26654         (WebCore::StyleGeneratedImage::imageSize):
26655         (WebCore::StyleGeneratedImage::computeIntrinsicDimensions):
26656         * rendering/style/StyleGeneratedImage.h:
26657         (StyleGeneratedImage):
26658         * rendering/style/StyleImage.h:
26659         (StyleImage):
26660         * rendering/style/StylePendingImage.h:
26661
26662 2012-11-01  Adam Barth  <abarth@webkit.org>
26663
26664         [V8] Unify the V8GCController visitors
26665         https://bugs.webkit.org/show_bug.cgi?id=100897
26666
26667         Reviewed by Eric Seidel.
26668
26669         After this patch, we use a single visitor for all DOM wrappers,
26670         regardless of type. We also visit all the wrappers in one pass by
26671         calling v8::V8::VisitHandlesWithClassIds directly rather than via
26672         visitAllDOMNodes.
26673
26674         This patch also introduces a wrapper class ID for non-Node DOM objects.
26675         Previously, only DOM nodes had a class ID.
26676
26677         * bindings/v8/IntrusiveDOMWrapperMap.h:
26678         * bindings/v8/ScriptProfiler.cpp:
26679         (WebCore::retainedDOMInfo):
26680         (WebCore::ScriptProfiler::initialize):
26681         * bindings/v8/V8DOMMap.cpp:
26682         (WebCore::visitAllDOMNodes):
26683         * bindings/v8/V8DOMWrapper.cpp:
26684         (WebCore::V8DOMWrapper::setJSWrapperForDOMNode):
26685         * bindings/v8/V8DOMWrapper.h:
26686         (WebCore::V8DOMWrapper::setJSWrapperForDOMObject):
26687         * bindings/v8/V8GCController.cpp:
26688         (WebCore::GCHandleVisitor::notifyFinished):
26689         (GCHandleVisitor):
26690         (WebCore::V8GCController::majorGCPrologue):
26691         * bindings/v8/WrapperTypeInfo.h:
26692         (WebCore):
26693
26694 2012-11-01  Stephen White  <senorblanco@chromium.org>
26695
26696         Unreviewed, rolling out r133143.
26697         http://trac.webkit.org/changeset/133143
26698         https://bugs.webkit.org/show_bug.cgi?id=96894
26699
26700         Causing content_browsertests failures
26701
26702         * CMakeLists.txt:
26703         * GNUmakefile.list.am:
26704         * Target.pri:
26705         * WebCore.gypi:
26706         * WebCore.vcproj/WebCore.vcproj:
26707         * WebCore.xcodeproj/project.pbxproj:
26708         * dom/DeviceOrientationClient.h:
26709         (DeviceOrientationClient):
26710         * dom/DeviceOrientationController.cpp:
26711         (WebCore::DeviceOrientationController::DeviceOrientationController):
26712         (WebCore):
26713         (WebCore::DeviceOrientationController::~DeviceOrientationController):
26714         (WebCore::DeviceOrientationController::timerFired):
26715         (WebCore::DeviceOrientationController::addListener):
26716         (WebCore::DeviceOrientationController::removeListener):
26717         (WebCore::DeviceOrientationController::removeAllListeners):
26718         (WebCore::DeviceOrientationController::suspendEventsForAllListeners):
26719         (WebCore::DeviceOrientationController::resumeEventsForAllListeners):
26720         (WebCore::DeviceOrientationController::didChangeDeviceOrientation):
26721         (WebCore::DeviceOrientationController::supplementName):
26722         * dom/DeviceOrientationController.h:
26723         (WebCore):
26724         (DeviceOrientationController):
26725         (WebCore::DeviceOrientationController::isActive):
26726         (WebCore::DeviceOrientationController::client):
26727         (WebCore::DeviceOrientationController::from):
26728         * dom/Document.cpp:
26729         (WebCore::Document::suspendActiveDOMObjects):
26730         (WebCore::Document::resumeActiveDOMObjects):
26731         * loader/EmptyClients.h:
26732         (WebCore::EmptyDeviceOrientationClient::startUpdating):
26733         (WebCore::EmptyDeviceOrientationClient::stopUpdating):
26734         * page/DOMWindow.cpp:
26735         (WebCore::DOMWindow::addEventListener):
26736         (WebCore::DOMWindow::removeEventListener):
26737         (WebCore::DOMWindow::removeAllEventListeners):
26738         * page/DeviceClient.h: Removed.
26739         * page/DeviceController.cpp: Removed.
26740         * page/DeviceController.h: Removed.
26741
26742 2012-11-01  Kondapally Kalyan  <kalyan.kondapally@intel.com>
26743
26744         [EFL][AC]Free GL resources allocated by GraphicsContext3DEfl.
26745         https://bugs.webkit.org/show_bug.cgi?id=100923.
26746
26747         Reviewed by Kenneth Rohde Christiansen.
26748
26749         GraphicsContext3DEfl creates FBO's, textures and render buffer's, but doesn't free them.
26750         This patch makes sure that GraphicsContext3dEfl frees all the GL resources allocated by it.
26751
26752         * platform/graphics/efl/GraphicsContext3DEfl.cpp:
26753         (WebCore::GraphicsContext3D::~GraphicsContext3D):
26754
26755 2012-11-01  Andreas Kling  <kling@webkit.org>
26756
26757         Fix StylePropertySet/ElementAttributeData custom allocation in debug builds.
26758         <http://webkit.org/b/100753>
26759
26760         Unreviewed debug bot crash fix after r133138.
26761
26762         There's additional padding after StylePropertySet and ElementAttributeData
26763         in 64-bit debug builds since there are additional members in RefCountedBase.
26764         Use 'sizeof(ImmutableFoo) - sizeof(void*)' as the base size of ImmutableFoo.
26765
26766         * css/StylePropertySet.cpp:
26767         (WebCore::sizeForImmutableStylePropertySetWithPropertyCount):
26768         * dom/ElementAttributeData.cpp:
26769         (WebCore::sizeForImmutableElementAttributeDataWithAttributeCount):
26770         (WebCore::ElementAttributeData::createImmutable):
26771         (WebCore::ElementAttributeData::reportMemoryUsage):
26772
26773 2012-11-01  Stephen Chenney  <schenney@chromium.org>
26774
26775         FEImage::m_document is never cleared. Why not?
26776         https://bugs.webkit.org/show_bug.cgi?id=99243
26777
26778         Reviewed by Dirk Schulze.
26779
26780         Adding a comment to explain why the failure to clear m_document is not a problem.
26781
26782         No new tests because no code change at all.
26783
26784         * svg/graphics/filters/SVGFEImage.h:
26785         (FEImage): Add a comment on the lifetime of m_document.
26786
26787 2012-11-01  Eugene Klyuchnikov  <eustas.bug@gmail.com>
26788
26789         Web Inspector: Timeline: make "addRecord" unambiguous
26790         https://bugs.webkit.org/show_bug.cgi?id=100761
26791
26792         Reviewed by Pavel Feldman.
26793
26794         TimelinePresentationModel.addRecord accepts two parameters:
26795         record and parentRecord. parentRecord is always root record.
26796         Make this explicit by removing parentRecord parameter.
26797
26798         * inspector/front-end/TimelinePanel.js: Removed parameter.
26799         * inspector/front-end/TimelinePresentationModel.js:
26800         (WebInspector.TimelinePresentationModel.prototype.addRecord):
26801         Used root recoed instead of parent record.
26802
26803 2012-11-01  Charles Wei  <charles.wei@torchmobile.com.cn>
26804
26805         [BlackBerry] Browser prematurely sends wrong credentials
26806         https://bugs.webkit.org/show_bug.cgi?id=100585
26807
26808         Reviewed by George Staikos.
26809
26810         Don't send credentials to the server before been challenged.
26811
26812         * platform/network/blackberry/NetworkManager.cpp:
26813         (WebCore::NetworkManager::startJob):
26814
26815 2012-11-01  Stephen Chenney  <schenney@chromium.org>
26816
26817         SVG as an image may recreate the renderer on zoom
26818         https://bugs.webkit.org/show_bug.cgi?id=99508
26819
26820         Reviewed by Abhishek Arya.
26821
26822         The SVGImage code, when SVG is used in <img> tags, caches the renderer
26823         at the start of the painting method and re-uses the pointer at the end
26824         of the method. However, when the page is zoomed the renderer may be
26825         detached mid-method, thus leaving a stray pointer. The fix is to
26826         re-fetch the pointer after the zooms.
26827
26828         Test: svg/as-image/img-zoom-svg-stylesheet.html
26829
26830         * svg/graphics/SVGImage.cpp:
26831         (WebCore::SVGImage::drawSVGToImageBuffer): Re-fetch the renderer after
26832         the zoom operations.
26833
26834 2012-11-01  Pavel Feldman  <pfeldman@chromium.org>
26835
26836         Web Inspector: introduce Inspector.detached message containing termination cause.
26837         https://bugs.webkit.org/show_bug.cgi?id=100948
26838
26839         Reviewed by Yury Semikhatsky.
26840
26841         Now protocol clients have more information to process connection termination.
26842
26843         * English.lproj/localizedStrings.js:
26844         * inspector/Inspector.json:
26845         * inspector/front-end/InspectorFrontendHostStub.js:
26846         (WebInspector.RemoteDebuggingTerminatedScreen):
26847         * inspector/front-end/inspector.js:
26848         (WebInspector.loaded.WebInspector.socket.onopen):
26849         (WebInspector.loaded):
26850         (WebInspector.detached):
26851
26852 2012-11-01  Vsevolod Vlasov  <vsevik@chromium.org>
26853
26854         Web Inspector: Restoring breakpoints for formatted UISourceCode should be triggered by BreakpointManager, not ScriptsPanel.
26855         https://bugs.webkit.org/show_bug.cgi?id=100593
26856
26857         Reviewed by Pavel Feldman.
26858
26859         BreakpointManager now listen for FormattedChanged event and restores formatted breakpoints on it.
26860         Removed now redundant callback from UISourceCode.setFormatted().
26861
26862         * inspector/front-end/BreakpointManager.js:
26863         (WebInspector.BreakpointManager.prototype._restoreBreakpoints):
26864         (WebInspector.BreakpointManager.prototype._uiSourceCodeAdded):
26865         (WebInspector.BreakpointManager.prototype._uiSourceCodeFormatted):
26866         (WebInspector.BreakpointManager.prototype._uiSourceCodeRemoved):
26867         * inspector/front-end/ScriptsPanel.js:
26868         (WebInspector.ScriptsPanel.prototype._addUISourceCode):
26869         (WebInspector.ScriptsPanel.prototype._revealExecutionLine):
26870         (WebInspector.ScriptsPanel.prototype._toggleFormatSource):
26871         * inspector/front-end/UISourceCode.js:
26872         (WebInspector.UISourceCode.prototype._fireContentAvailable):
26873         (WebInspector.UISourceCode.prototype.setFormatted.formattedChanged):
26874         (WebInspector.UISourceCode.prototype.setFormatted.didGetContent):
26875         (WebInspector.UISourceCode.prototype.setFormatted):
26876
26877 2012-10-30  Yury Semikhatsky  <yurys@chromium.org>
26878
26879         Web Inspector: Output code evaluated in the console the same as console.log
26880         https://bugs.webkit.org/show_bug.cgi?id=100695
26881
26882         Reviewed by Pavel Feldman.
26883
26884         Added an option to return object preview from evaluation commands in the protocol.
26885         The option is used to generate preview for console eval results.
26886
26887         * inspector/InjectedScript.cpp:
26888         (WebCore::InjectedScript::evaluate):
26889         (WebCore::InjectedScript::callFunctionOn):
26890         (WebCore::InjectedScript::evaluateOnCallFrame):
26891         * inspector/InjectedScript.h:
26892         (InjectedScript):
26893         * inspector/InjectedScriptSource.js:
26894         (.):
26895         * inspector/Inspector.json:
26896         * inspector/InspectorDebuggerAgent.cpp:
26897         (WebCore::InspectorDebuggerAgent::evaluateOnCallFrame):
26898         * inspector/InspectorDebuggerAgent.h:
26899         (InspectorDebuggerAgent):
26900         * inspector/InspectorRuntimeAgent.cpp:
26901         (WebCore::InspectorRuntimeAgent::evaluate):
26902         (WebCore::InspectorRuntimeAgent::callFunctionOn):
26903         * inspector/InspectorRuntimeAgent.h:
26904         (InspectorRuntimeAgent):
26905         * inspector/front-end/ConsoleMessage.js:
26906         (WebInspector.ConsoleMessageImpl.prototype.useArrayPreviewInFormatter):
26907         (WebInspector.ConsoleMessageImpl.prototype._formatParameterAsArray):
26908         * inspector/front-end/ConsoleView.js:
26909         (WebInspector.ConsoleCommandResult.prototype.useArrayPreviewInFormatter):
26910         * inspector/front-end/DebuggerModel.js:
26911         (WebInspector.DebuggerModel.prototype.evaluateOnSelectedCallFrame):
26912         (WebInspector.DebuggerModel.CallFrame.prototype.evaluate):
26913         * inspector/front-end/ExtensionServer.js:
26914         (WebInspector.ExtensionServer.prototype.evaluate):
26915         * inspector/front-end/JavaScriptSourceFrame.js:
26916         (WebInspector.JavaScriptSourceFrame.prototype._resolveObjectForPopover):
26917         * inspector/front-end/RemoteObject.js:
26918         (WebInspector.RemoteObject.prototype.):
26919         (WebInspector.RemoteObject.prototype.callFunction):
26920         (WebInspector.RemoteObject.prototype.callFunctionJSON):
26921         * inspector/front-end/RuntimeModel.js:
26922         (WebInspector.RuntimeModel.prototype.evaluate):
26923         (WebInspector.RuntimeModel.prototype.evaluated):
26924         * inspector/front-end/WatchExpressionsSidebarPane.js:
26925         (WebInspector.WatchExpressionsSection.prototype.update):
26926
26927 2012-11-01  Vsevolod Vlasov  <vsevik@chromium.org>
26928
26929         Web Inspector: Remove obsolete code from JavaScriptSourceFrame
26930         https://bugs.webkit.org/show_bug.cgi?id=100594
26931
26932         Reviewed by Yury Semikhatsky.
26933
26934         Removed obsolete WorkingCopyCommitted listener.
26935         Removed redundant code that removes breakpoints from _innerSetContent.
26936
26937         * inspector/front-end/JavaScriptSourceFrame.js:
26938         (WebInspector.JavaScriptSourceFrame):
26939         (WebInspector.JavaScriptSourceFrame.prototype._innerSetContent):
26940
26941 2012-11-01  Andreas Kling  <kling@webkit.org>
26942
26943         Update average StylePropertySet size estimation.
26944         <http://webkit.org/b/100940>
26945
26946         Reviewed by Antti Koivisto.
26947
26948         Use sizeForImmutableStylePropertySetWithPropertyCount(2) as the average StylePropertySet
26949         size to keep it in sync with the changed object memory layout.
26950
26951         * css/StylePropertySet.cpp:
26952         (WebCore::sizeForImmutableStylePropertySetWithPropertyCount):
26953         (WebCore::StylePropertySet::createImmutable):
26954         (WebCore::StylePropertySet::averageSizeInBytes):
26955         (WebCore::StylePropertySet::reportMemoryUsage):
26956
26957
26958 2012-11-01  Kondapally Kalyan  <kalyan.kondapally@intel.com>
26959
26960         [EFL][Qt][AC] Remove an unnecessary connection to X-Server.
26961         https://bugs.webkit.org/show_bug.cgi?id=100628.
26962
26963         Reviewed by Kenneth Rohde Christiansen.
26964
26965         With Changset: https://bugs.webkit.org/show_bug.cgi?id=100523
26966         GraphicsSurfacePrivate should always use the Display returned by offscreenwindow.
26967         However, in GraphicsSurfacePrivate constructor we call XOpenDisplay before asking
26968         display from offscreenwindow.
26969         This patch removes unnecessary call to XOpenDisplay made in GraphicsSurfacePrivate.
26970
26971         * platform/graphics/surfaces/qt/GraphicsSurfaceGLX.cpp:
26972         (WebCore::GraphicsSurfacePrivate::GraphicsSurfacePrivate):
26973
26974 2012-11-01  Mihnea Ovidenie  <mihnea@adobe.com>
26975
26976         [CSSRegions]Former auto-height regions should not ignore their defined height
26977         https://bugs.webkit.org/show_bug.cgi?id=100749
26978
26979         Reviewed by Julien Chaffraix.
26980
26981         When a region with height auto has its height defined, we should also clear the override logical content height.
26982         Otherwise, the region will use the wrong height when laying out content from the associated render flow thread.
26983
26984         Test: fast/regions/autoheight-definedheight-changenotdetected.html
26985
26986         * rendering/RenderRegion.cpp:
26987         (WebCore::RenderRegion::updateRegionHasAutoLogicalHeightFlag):
26988
26989 2012-11-01  Yury Semikhatsky  <yurys@chromium.org>
26990
26991         Memory instrumentation: do not report memory occupied by RenderObjects referenced from CSSImageGeneratorValue
26992         https://bugs.webkit.org/show_bug.cgi?id=100934
26993
26994         Reviewed by Alexander Pavlov.
26995
26996         * css/CSSImageGeneratorValue.cpp:
26997         (WTF): Skip rederences to RenderObjects from CSSImageGeneratorValue when collecting
26998         memory usage data.
26999
27000 2012-11-01  Kihong Kwon  <kihong.kwon@samsung.com>
27001
27002         Add DeviceController base-class to remove duplication of DeviceXXXControler
27003         https://bugs.webkit.org/show_bug.cgi?id=96894
27004
27005         Reviewed by Hajime Morita.
27006
27007         Add DeviceController which is extracted from DeviceOrientationController to remove duplication.
27008         And soon-to-be-added DeviceMotionController and ProximityController.
27009
27010         Covered by existing tests.
27011
27012         * CMakeLists.txt:
27013         * GNUmakefile.list.am:
27014         * Target.pri:
27015         * WebCore.gypi:
27016         * WebCore.vcproj/WebCore.vcproj:
27017         * WebCore.xcodeproj/project.pbxproj:
27018         * dom/DeviceOrientationClient.h:
27019         * dom/DeviceOrientationController.cpp:
27020         Remove member functions to move to DeviceController.
27021         - addListener(), removeListener(), removeAllListeners(), isActive()
27022         (WebCore::DeviceOrientationController::DeviceOrientationController):
27023         (WebCore::DeviceOrientationController::didChangeDeviceOrientation):
27024         (WebCore::DeviceOrientationController::client):
27025         (WebCore::DeviceOrientationController::hasLastData):
27026         (WebCore::DeviceOrientationController::getLastEvent):
27027         (WebCore::DeviceOrientationController::from):
27028         (WebCore):
27029         * dom/DeviceOrientationController.h:
27030         (WebCore):
27031         (WebCore::DeviceOrientationController::~DeviceOrientationController):
27032         (DeviceOrientationController):
27033         * dom/Document.cpp:
27034         Remove suspendEventsForAllListeners() and resumeEventsForAllListeners() function calls.
27035         These calls can be made by checking activeDOMObjectsAreSuspended() and activeDOMObjectsAreStopped() before dispatchEvent.
27036         (WebCore::Document::suspendActiveDOMObjects):
27037         (WebCore::Document::resumeActiveDOMObjects):
27038         * loader/EmptyClients.h:
27039         (EmptyDeviceClient):
27040         (WebCore::EmptyDeviceClient::startUpdating):
27041         (WebCore::EmptyDeviceClient::stopUpdating):
27042         (WebCore):
27043         * page/DOMWindow.cpp:
27044         (WebCore::DOMWindow::addEventListener):
27045         (WebCore::DOMWindow::removeEventListener):
27046         (WebCore::DOMWindow::removeAllEventListeners):
27047         * page/DeviceClient.h: Added.
27048         (WebCore):
27049         (DeviceClient):
27050         (WebCore::DeviceClient::~DeviceClient):
27051         * page/DeviceController.cpp: Added.
27052         DeviceController has extracted functions from DeviceOrientationController and DeviceMotionController.
27053         - addDeviceEventListener(), removeDeviceEventlistener(), removeAllDeviceEventListeners(), dispatchDeviceEvent()
27054         All kind of device event controller which has DeviceClient can be inherited from DeviceController.
27055         (WebCore):
27056         (WebCore::DeviceController::DeviceController):
27057         (WebCore::DeviceController::addDeviceEventListener):
27058         (WebCore::DeviceController::removeDeviceEventListener):
27059         (WebCore::DeviceController::removeAllDeviceEventListeners):
27060         (WebCore::DeviceController::dispatchDeviceEvent):
27061         (WebCore::DeviceController::fireDeviceEvent):
27062         * page/DeviceController.h: Added.
27063         (WebCore):
27064         (DeviceController):
27065         (WebCore::DeviceController::~DeviceController):
27066         (WebCore::DeviceController::isActive):
27067         (WebCore::DeviceController::client):
27068         (WebCore::DeviceController::hasLastData):
27069         (WebCore::DeviceController::getLastEvent):
27070
27071 2012-11-01  Yury Semikhatsky  <yurys@chromium.org>
27072
27073         Memory instrumentation: report memory occupied by ResourceRequest instead of its base ResourceRequestBase
27074         https://bugs.webkit.org/show_bug.cgi?id=100497
27075
27076         Reviewed by Alexander Pavlov.
27077
27078         Added memory reporting method to chromium implementation of ResourceRequest.
27079
27080         * platform/network/ResourceRequestBase.cpp:
27081         (WebCore::ResourceRequestBase::reportMemoryUsageBase): Renamed reportMemoryUsage
27082         on ResourceRequestBase to reportMemoryUsageBase and made it protected. I'd
27083         rather make ResourceRequestBase::reportMemoryUsage virtual and override it
27084         in the descendant but ResourceRequestBase doesn't have any virtual methods
27085         and shouldn't be used directly(ResourceRequest should be used instead).
27086         * platform/network/ResourceRequestBase.h:
27087         (ResourceRequestBase):
27088         * platform/network/chromium/ResourceRequest.cpp:
27089         (WebCore::ResourceRequest::reportMemoryUsage):
27090         (WebCore):
27091         * platform/network/chromium/ResourceRequest.h:
27092         (ResourceRequest):
27093
27094 2012-11-01  Andreas Kling  <kling@webkit.org>
27095
27096         Pack immutable StylePropertySets harder on 64-bit.
27097         <http://webkit.org/b/100753>
27098         <rdar://problem/12599155>
27099
27100         Reviewed by Antti Koivisto.
27101
27102         Move away from using CSSProperty as internal storage for immutable StylePropertySets.
27103         Instead use two arrays, one for property metadata (ID, shorthand ID, !important, ...)
27104         and one for the CSSValue pointers. This saves 4 bytes per property on 64-bit.
27105
27106         Old object layout:
27107
27108             Ref count                   (4 bytes)
27109             Metadata                    (4 bytes)
27110             CSSProperty [N]             (16 bytes each)
27111
27112         New object layout:
27113
27114             Ref count                   (4 bytes)
27115             Metadata                    (4 bytes)
27116             CSSValue* [N]               (8 bytes each)
27117             StylePropertyMetadata [N]   (4 bytes each)
27118
27119         901kB progress on Membuster3 (22% overall reduction in StylePropertySet memory.)
27120
27121         The CSSProperty class sticks around for now, it's still used in mutable StylePropertySets
27122         and by the StylePropertySet constructors.
27123
27124         * css/CSSProperty.cpp:
27125         * css/CSSProperty.h:
27126         (CSSProperty):
27127         (WebCore::CSSProperty::CSSProperty):
27128         (WebCore::CSSProperty::id):
27129         (WebCore::CSSProperty::shorthandID):
27130         (WebCore::CSSProperty::isImportant):
27131         (WebCore::CSSProperty::metadata):
27132
27133             Break the bitfield from CSSProperty out into a StylePropertyMetadata class (actually a union.)
27134
27135         * css/StylePropertySet.cpp:
27136         (WebCore::immutableStylePropertySetSize):
27137
27138             Updated size calculation for immutable StylePropertySets, 1/4 smaller!
27139
27140         (WebCore::ImmutableStylePropertySet::ImmutableStylePropertySet):
27141         (WebCore::ImmutableStylePropertySet::~ImmutableStylePropertySet):
27142         (WebCore::MutableStylePropertySet::MutableStylePropertySet):
27143         (WebCore::StylePropertySet::mergeAndOverrideOnConflict):
27144         (WebCore::StylePropertySet::reportMemoryUsage):
27145         (WebCore::StylePropertySet::PropertyReference::cssName):
27146         (WebCore::StylePropertySet::PropertyReference::cssText):
27147         * css/StylePropertySet.h:
27148         (WebCore::StylePropertySet::PropertyReference::id):
27149         (WebCore::StylePropertySet::PropertyReference::shorthandID):
27150         (WebCore::StylePropertySet::PropertyReference::isImportant):
27151         (WebCore::StylePropertySet::PropertyReference::isInherited):
27152         (WebCore::StylePropertySet::PropertyReference::isImplicit):
27153         (PropertyReference):
27154         (WebCore::StylePropertySet::PropertyReference::value):
27155         (WebCore::StylePropertySet::PropertyReference::toCSSProperty):
27156         (WebCore::StylePropertySet::PropertyReference::propertyMetadata):
27157         (WebCore::StylePropertySet::PropertyReference::propertyValue):
27158         (StylePropertySet):
27159         (ImmutableStylePropertySet):
27160         (WebCore::StylePropertySet::immutableValueArray):
27161         (WebCore::StylePropertySet::immutableMetadataArray):
27162
27163             Refactored internal storage for StylePropertySet.
27164
27165 2012-11-01  Kent Tamura  <tkent@chromium.org>
27166
27167         Remove unused Locale::parseDateTime
27168         https://bugs.webkit.org/show_bug.cgi?id=100910
27169
27170         Reviewed by Kentaro Hara.
27171
27172         For date/time input types, InputType::convertFromVisibleValue is never
27173         called. convertFromVisibleValue is called when an inner editable node is
27174         updated. However input elements don't have such editable nodes if
27175         ENABLE_INPUT_MULTIPLE_FIELDS_UI is enabled, and a user can't edit the
27176         inner editable node otherwise because we open date/time pickers when a
27177         user try to change the field value.
27178
27179         We had used convertFromVisibleValue for input[type=date] with an old UI.
27180
27181         No new tests because of no behavior changes.
27182
27183         * html/BaseDateAndTimeInputType.cpp:
27184         (WebCore::BaseDateAndTimeInputType::convertFromVisibleValue):
27185         Remove Locale::parseDateTiem and put ASSERT_NOT_REACHED.
27186
27187         * platform/text/PlatformLocale.h: Remove parseDateTime.
27188
27189         * platform/text/LocaleICU.h: Remove parseDateTime and a bogus comment.
27190         * platform/text/LocaleICU.cpp: Remove parseDateTime.
27191
27192         * platform/text/LocaleNone.cpp: Remove parseDateTime.
27193
27194         * platform/text/mac/LocaleMac.h: Remove parseDateTime.
27195         * platform/text/mac/LocaleMac.mm: Ditto.
27196         * platform/text/win/LocaleWin.h:
27197         - Remove parseDateTime, its helpers, and m_baseYear.
27198         - Remove appendNumber, appendTwoDigitsNumber, appendFourDigitsNumber,
27199           and formatDate. They don't exist.
27200         * platform/text/win/LocaleWin.cpp:
27201         Remove the above functions.
27202         (WebCore::LocaleWin::LocaleWin): Remove m_baseYear iniitalization.
27203
27204 2012-10-31  Nate Chapin  <japhet@chromium.org>
27205
27206         Remove some CachedResource::Status's in favor of looking at CachedResource::m_error
27207         https://bugs.webkit.org/show_bug.cgi?id=100901
27208
27209         Reviewed by Adam Barth.
27210
27211         No new tests, refactor only.
27212
27213         * inspector/InspectorPageAgent.cpp:
27214         (WebCore::InspectorPageAgent::buildObjectForFrameTree):
27215         * loader/DocumentThreadableLoader.cpp:
27216         (WebCore::DocumentThreadableLoader::notifyFinished):
27217         * loader/FrameLoader.cpp:
27218         (WebCore::FrameLoader::loadInSameDocument):
27219         * loader/SubresourceLoader.cpp:
27220         (WebCore::SubresourceLoader::didFail):
27221         (WebCore::SubresourceLoader::willCancel):
27222         * loader/cache/CachedResource.cpp:
27223         (WebCore::CachedResource::stopLoading):
27224         * loader/cache/CachedResource.h:
27225         (WebCore::CachedResource::wasCanceled):
27226         (WebCore::CachedResource::errorOccurred):
27227         (WebCore::CachedResource::loadFailedOrCanceled):
27228
27229 2012-10-31  Stephen White  <senorblanco@chromium.org>
27230
27231         Unreviewed, rolling out r133122.
27232         http://trac.webkit.org/changeset/133122
27233         https://bugs.webkit.org/show_bug.cgi?id=99083
27234
27235         Broke Chromium Win, Android, ChromeOS builds
27236
27237         * platform/graphics/chromium/GraphicsLayerChromium.cpp:
27238         (WebCore::GraphicsLayerChromium::setContentsOpaque):
27239         (WebCore::GraphicsLayerChromium::paint):
27240         * platform/graphics/chromium/OpaqueRectTrackingContentLayerDelegate.cpp:
27241         (WebCore::OpaqueRectTrackingContentLayerDelegate::paintContents):
27242         * platform/graphics/chromium/OpaqueRectTrackingContentLayerDelegate.h:
27243         (OpaqueRectTrackingContentLayerDelegate):
27244
27245 2012-10-31  Takashi Sakamoto  <tasak@google.com>
27246
27247         [Refactoring] Move initial style setting for ProgressValueElement from attach method to createShadowSubtree method in HTMLProgressElement.
27248         https://bugs.webkit.org/show_bug.cgi?id=83664
27249
27250         Reviewed by Hajime Morita.
27251
27252         The original code updates inline style during attach(). However,
27253         the attach would be invoked from Element::recalcStyle()'s reattach().
27254         If updating inline styles during the reattach(), style related flags,
27255         i.e. childNeedsStyleRecalc, and needsStyleRecalc are cleared after the
27256         reattach(). So the inline styles are not updated in next
27257         setNeedsStyleRecalc, because ProgressValueElement has already had
27258         InlineStyleChange (existingChanegType == InlineStyleChange) and
27259         markAncestorsWithChildNeedsStyleRecalc is not invoked.
27260
27261         Test: fast/dom/HTMLProgressElement/progress-bar-set-value.html
27262
27263         * html/HTMLProgressElement.cpp:
27264         (WebCore::HTMLProgressElement::attach):
27265         Copied updateFromElement from didElementStateChange. If removing the
27266         update, indeterminate-progress-001.html and progress-element.html
27267         under fast/dom/HTMLProgressElement will fail. We still need attach()
27268         and updateFromElement. To remove the attach(), need more refactoring,
27269         i.e. investigating where attach() is invoked from and modifying all
27270         related codes.
27271         (WebCore::HTMLProgressElement::createShadowSubtree):
27272         Initialize m_value by indeterminate-position. The value is default
27273         value of progress element.
27274
27275 2012-10-31  Hayato Ito  <hayato@chromium.org>
27276
27277         Make resolveReprojection() defined in ComposedShadowTreeWalker.cpp callable from outside.
27278         https://bugs.webkit.org/show_bug.cgi?id=100832
27279
27280         Reviewed by Dimitri Glazkov.
27281
27282         InsertionPoint.h now defines resolveReprojection() so that it can be called from outside.
27283
27284         No new tests as no new functionality.
27285
27286         * dom/ComposedShadowTreeWalker.cpp:
27287         * html/shadow/InsertionPoint.h:
27288         (WebCore::shadowOfParentForDistribution):
27289         (WebCore):
27290         (WebCore::resolveReprojection):
27291
27292 2012-10-31  Alok Priyadarshi  <alokp@chromium.org>
27293
27294         [chromium] Pass canPaintLCDText to WebContentLayerClient::paintContents
27295         https://bugs.webkit.org/show_bug.cgi?id=99083
27296
27297         Reviewed by James Robinson.
27298
27299         Use LCD text setting passed to WebContentLayerClient::paintContents instead of turning it off for all composited layers.
27300
27301         No new tests needed. This patch does not change anything functionally.
27302
27303         * platform/graphics/chromium/GraphicsLayerChromium.cpp:
27304         (WebCore::GraphicsLayerChromium::setContentsOpaque):
27305         (WebCore::GraphicsLayerChromium::paint):
27306         * platform/graphics/chromium/OpaqueRectTrackingContentLayerDelegate.cpp:
27307         (WebCore::OpaqueRectTrackingContentLayerDelegate::paintContents):
27308         * platform/graphics/chromium/OpaqueRectTrackingContentLayerDelegate.h:
27309         (OpaqueRectTrackingContentLayerDelegate):
27310
27311 2012-10-31  Chris Evans  <cevans@google.com>
27312
27313         RenderArena has a memory leak and poor efficiency
27314         https://bugs.webkit.org/show_bug.cgi?id=100893
27315
27316         Reviewed by Eric Seidel.
27317
27318         1) Avoid memory leak that persists for the Document lifetime by
27319         increasing recycled size buckets up to 1024. It was previously 400,
27320         and sizeof(RenderNamedFlowThread) / sizeof(RenderSVGText) both blew this
27321         quota. An assert was added to prevent this happening again.
27322
27323         2) Fix the size of the recyled size bucket array on 64-bit. We only
27324         need 8 byte granularity on 64-bit, but we had 4.
27325
27326         3) Try and pass power-of-two sizes to the underlying malloc() call, so
27327         that we're space efficient. We now take Arena metadata into account.
27328
27329         4) Double the default RenderArena size allocation to 8192 bytes. Even
27330         for a render of a trivial text file, 4096 bytes is not enough to prevent
27331         extra calls into the underlying malloc() for more arena pool.
27332
27333         * rendering/RenderArena.cpp:
27334         (WebCore::RenderArena::RenderArena): Adjust arena size so that we pass on the page-sized multiple to the underlying malloc() implementation.
27335         (WebCore::RenderArena::allocate):
27336         (WebCore::RenderArena::free): Assert that the allocation size is handled by our recycling buckets.
27337         * rendering/RenderArena.h:
27338         (WebCore): Maintain free buckets up to 1024 bytes to avoid memory leak.
27339         (RenderArena): Double the default allocation size and handle 64-bit systems more efficiently.
27340
27341 2012-10-31  Adam Barth  <abarth@webkit.org>
27342
27343         [V8] Garbage collection should use opaque roots rather than implicit references
27344         https://bugs.webkit.org/show_bug.cgi?id=100707
27345
27346         Reviewed by Kentaro Hara.
27347
27348         This patch replaces visitDOMWrapper with opaqueRootForGC. The
27349         former used to inform V8 of implicit relationships between wrapper
27350         objects on a per-wrapper basis. That meant that we needed to know which
27351         DOMDataStore a given wrapper was in during garbage collection.
27352
27353         After this patch, we now use object groups rather than implicit
27354         references to inform V8 of these relationships. That has two benefits:
27355
27356         1) We no longer need to know which DOMDataStore a wrapper belongs
27357            because we don't need to find the exact source wrapper for the
27358            implicit connection.
27359
27360         2) We can now handle more complicated implicit relationships, for
27361            example when some of the intervening objects haven't had their
27362            JavaScript wrappers created yet.
27363
27364         This patch also unlocks to paths of future development:
27365         A) Fixing the remaining failures in fast/dom/gc-9.html
27366         B) Enumerating DOM wrappers entirely from V8 rather than from the
27367            DOMWrapperMaps (so that we can move more object towards using
27368            IntrusiveDOMWrapperMaps, which aren't enumerable from WebCore).
27369
27370         * bindings/scripts/CodeGeneratorV8.pm:
27371         (NeedsCustomOpaqueRootForGC):
27372         (GenerateOpaqueRootForGC):
27373         (GenerateHeader):
27374         (GenerateImplementation):
27375         * bindings/v8/V8GCController.cpp:
27376         (ImplicitConnection):
27377         (WebCore::ImplicitConnection::ImplicitConnection):
27378         (WebCore::ImplicitConnection::root):
27379         (WebCore::ImplicitConnection::wrapper):
27380         (WebCore):
27381         (WebCore::operator<):
27382         (WrapperGrouper):
27383         (WebCore::WrapperGrouper::WrapperGrouper):
27384         (WebCore::WrapperGrouper::addToGroup):
27385         (WebCore::WrapperGrouper::keepAlive):
27386         (WebCore::WrapperGrouper::apply):
27387         (WebCore::ObjectVisitor::ObjectVisitor):
27388         (WebCore::ObjectVisitor::visitDOMWrapper):
27389         (ObjectVisitor):
27390         (WebCore::V8GCController::opaqueRootForGC):
27391         (WebCore::NodeVisitor::NodeVisitor):
27392         (WebCore::NodeVisitor::visitNodeWrapper):
27393         (NodeVisitor):
27394         (WebCore::V8GCController::majorGCPrologue):
27395         * bindings/v8/V8GCController.h:
27396         (WebCore):
27397         (V8GCController):
27398         * bindings/v8/WrapperTypeInfo.h:
27399         (WebCore):
27400         (WebCore::WrapperTypeInfo::opaqueRootForGC):
27401         (WrapperTypeInfo):
27402         * bindings/v8/custom/V8NodeListCustom.cpp:
27403         (WebCore::V8NodeList::opaqueRootForGC):
27404         * bindings/v8/custom/V8SpeechRecognitionResultCustom.cpp:
27405         (WebCore::V8SpeechRecognitionResult::opaqueRootForGC):
27406
27407 2012-10-31  Stephen White  <senorblanco@chromium.org>
27408
27409         Unreviewed, rolling out r133107.
27410         http://trac.webkit.org/changeset/133107
27411         https://bugs.webkit.org/show_bug.cgi?id=100425
27412
27413         Broke compile on Chromium Win.
27414
27415         * Modules/indexeddb/IDBCallbacks.h:
27416         (IDBCallbacks):
27417         * Modules/indexeddb/IDBDatabase.cpp:
27418         (WebCore::IDBDatabase::objectStoreNames):
27419         (WebCore::IDBDatabase::createObjectStore):
27420         (WebCore::IDBDatabase::deleteObjectStore):
27421         (WebCore::IDBDatabase::transaction):
27422         * Modules/indexeddb/IDBDatabaseBackendImpl.cpp:
27423         (WebCore::IDBDatabaseBackendImpl::metadata):
27424         (WebCore::IDBDatabaseBackendImpl::createObjectStore):
27425         (WebCore::IDBDatabaseBackendImpl::objectStore):
27426         (WebCore::IDBDatabaseBackendImpl::deleteObjectStore):
27427         (WebCore::IDBDatabaseBackendImpl::transaction):
27428         (WebCore::IDBDatabaseBackendImpl::loadObjectStores):
27429         (WebCore::IDBDatabaseBackendImpl::removeObjectStoreFromMap):
27430         (WebCore::IDBDatabaseBackendImpl::addObjectStoreToMap):
27431         * Modules/indexeddb/IDBDatabaseBackendImpl.h:
27432         (IDBDatabaseBackendImpl):
27433         * Modules/indexeddb/IDBDatabaseBackendInterface.h:
27434         (IDBDatabaseBackendInterface):
27435         * Modules/indexeddb/IDBFactory.cpp:
27436         * Modules/indexeddb/IDBFactory.h:
27437         * Modules/indexeddb/IDBIndex.h:
27438         (WebCore::IDBIndex::openKeyCursor):
27439         * Modules/indexeddb/IDBIndexBackendInterface.h:
27440         * Modules/indexeddb/IDBKeyPath.cpp:
27441         * Modules/indexeddb/IDBMetadata.h:
27442         (WebCore):
27443         (IDBDatabaseMetadata):
27444         (WebCore::IDBDatabaseMetadata::IDBDatabaseMetadata):
27445         (IDBObjectStoreMetadata):
27446         (WebCore::IDBIndexMetadata::IDBIndexMetadata):
27447         (IDBIndexMetadata):
27448         * Modules/indexeddb/IDBObjectStore.cpp:
27449         (WebCore::IDBObjectStore::indexNames):
27450         (WebCore::IDBObjectStore::put):
27451         (WebCore::IDBObjectStore::createIndex):
27452         (WebCore::IDBObjectStore::index):
27453         (WebCore::IDBObjectStore::deleteIndex):
27454         * Modules/indexeddb/IDBObjectStoreBackendImpl.cpp:
27455         (WebCore::IDBObjectStoreBackendImpl::putWithIndexKeys):
27456         (WebCore):
27457         (WebCore::makeIndexWriters):
27458         (WebCore::IDBObjectStoreBackendImpl::setIndexKeys):
27459         (WebCore::IDBObjectStoreBackendImpl::setIndexesReady):
27460         (WebCore::IDBObjectStoreBackendImpl::setIndexesReadyInternal):
27461         (WebCore::IDBObjectStoreBackendImpl::putInternal):
27462         (WebCore::IDBObjectStoreBackendImpl::deleteInternal):
27463         (WebCore::IDBObjectStoreBackendImpl::createIndex):
27464         (WebCore::IDBObjectStoreBackendImpl::index):
27465         (WebCore::IDBObjectStoreBackendImpl::deleteIndex):
27466         (WebCore::IDBObjectStoreBackendImpl::loadIndexes):
27467         (WebCore::IDBObjectStoreBackendImpl::removeIndexFromMap):
27468         (WebCore::IDBObjectStoreBackendImpl::addIndexToMap):
27469         * Modules/indexeddb/IDBObjectStoreBackendImpl.h:
27470         (IDBObjectStoreBackendImpl):
27471         * Modules/indexeddb/IDBObjectStoreBackendInterface.h:
27472         * Modules/indexeddb/IDBOpenDBRequest.cpp:
27473         (WebCore::IDBOpenDBRequest::onUpgradeNeeded):
27474         * Modules/indexeddb/IDBRequest.cpp:
27475         (WebCore::IDBRequest::onSuccess):
27476         (WebCore::IDBRequest::uncaughtExceptionInEventHandler):
27477         * Modules/indexeddb/IDBTransaction.cpp:
27478         (WebCore::IDBTransaction::create):
27479         (WebCore::IDBTransaction::IDBTransaction):
27480         (WebCore::IDBTransaction::objectStore):
27481         * Modules/indexeddb/IDBTransaction.h:
27482         (IDBTransaction):
27483         * Modules/indexeddb/IDBTransactionBackendImpl.cpp:
27484         (WebCore::IDBTransactionBackendImpl::create):
27485         (WebCore::IDBTransactionBackendImpl::IDBTransactionBackendImpl):
27486         (WebCore::IDBTransactionBackendImpl::objectStore):
27487         (WebCore::IDBTransactionBackendImpl::scheduleTask):
27488         * Modules/indexeddb/IDBTransactionBackendImpl.h:
27489         (IDBTransactionBackendImpl):
27490         * Modules/indexeddb/IDBTransactionBackendInterface.h:
27491         * Modules/indexeddb/IDBTransactionCoordinator.h:
27492
27493 2012-10-31  Alec Flett  <alecflett@chromium.org>
27494
27495         IndexedDB: add methods to support id-based backend APIs
27496         https://bugs.webkit.org/show_bug.cgi?id=100425
27497
27498         Reviewed by Tony Chang.
27499
27500         First half of refactor involves adding a number of methods that
27501         are int64_t-based rather than String-based. As a part of this, the
27502         IDB*Metadata structs and the backend objectStore/index maps all
27503         use int64_t as keys, rather than String.
27504
27505         In addition, there were a number of cleanups that came out of the
27506         refactor:
27507
27508         - The list of object stores active in a transaction is now
27509           maintained by the frontend IDBTransaction rather than the backend
27510           IDBTransactionBackendImpl. This also had a simplifying rippling
27511           effect through other call signatures.
27512
27513         - I was able to remove an apparently old FIXME from
27514           IDBTransactionBackendImpl::objectStore and replace it with an ASSERT.
27515
27516         - IDBObjectStoreBackendImpl's IndexWriter class got a little
27517           simpler since the id is now easily available in the
27518           IDBIndexMetadata.
27519
27520         - A number of methods got simpler in their int64_t versions,
27521           specifically dropping a number of ExceptionCodes.
27522
27523         There is also some glue code
27524         (getIndexId/getIndexIds/getObjectStoreId) that will go away with
27525         the 2nd half of this: https://bugs.webkit.org/show_bug.cgi?id=100425
27526
27527         No new tests, no new functionality as this is just a refactor.
27528
27529         * Modules/indexeddb/IDBDatabase.cpp:
27530         (WebCore::IDBDatabase::objectStoreNames):
27531         (WebCore::IDBDatabase::createObjectStore):
27532         (WebCore::IDBDatabase::deleteObjectStore):
27533         (WebCore::IDBDatabase::transaction):
27534         * Modules/indexeddb/IDBDatabaseBackendImpl.cpp:
27535         (WebCore::IDBDatabaseBackendImpl::metadata):
27536         (WebCore::IDBDatabaseBackendImpl::createObjectStore):
27537         (WebCore::IDBDatabaseBackendImpl::objectStore):
27538         (WebCore::IDBDatabaseBackendImpl::getObjectStoreId):
27539         (WebCore):
27540         (WebCore::IDBDatabaseBackendImpl::deleteObjectStore):
27541         (WebCore::IDBDatabaseBackendImpl::transaction):
27542         (WebCore::IDBDatabaseBackendImpl::loadObjectStores):
27543         (WebCore::IDBDatabaseBackendImpl::removeObjectStoreFromMap):
27544         (WebCore::IDBDatabaseBackendImpl::addObjectStoreToMap):
27545         * Modules/indexeddb/IDBDatabaseBackendImpl.h:
27546         (WebCore::IDBDatabaseBackendImpl::deleteObjectStore):
27547         (IDBDatabaseBackendImpl):
27548         * Modules/indexeddb/IDBDatabaseBackendInterface.h:
27549         (IDBDatabaseBackendInterface):
27550         * Modules/indexeddb/IDBIndex.h:
27551         (WebCore::IDBIndex::id):
27552         (WebCore::IDBIndex::openKeyCursor):
27553         * Modules/indexeddb/IDBIndexBackendInterface.h:
27554         * Modules/indexeddb/IDBMetadata.h:
27555         (WebCore::IDBIndexMetadata::IDBIndexMetadata):
27556         (IDBIndexMetadata):
27557         (IDBObjectStoreMetadata):
27558         (WebCore::IDBObjectStoreMetadata::containsIndex):
27559         (IDBDatabaseMetadata):
27560         (WebCore::IDBDatabaseMetadata::IDBDatabaseMetadata):
27561         (WebCore::IDBDatabaseMetadata::containsObjectStore):
27562         * Modules/indexeddb/IDBObjectStore.cpp:
27563         (WebCore::IDBObjectStore::indexNames):
27564         (WebCore::IDBObjectStore::put):
27565         (WebCore::IDBObjectStore::createIndex):
27566         (WebCore::IDBObjectStore::index):
27567         (WebCore::IDBObjectStore::deleteIndex):
27568         * Modules/indexeddb/IDBObjectStoreBackendImpl.cpp:
27569         (WebCore::IDBObjectStoreBackendImpl::put):
27570         (WebCore::IDBObjectStoreBackendImpl::putWithIndexKeys):
27571         (WebCore):
27572         (WebCore::makeIndexWriters):
27573         (WebCore::IDBObjectStoreBackendImpl::setIndexKeys):
27574         (WebCore::IDBObjectStoreBackendImpl::setIndexesReady):
27575         (WebCore::IDBObjectStoreBackendImpl::setIndexesReadyInternal):
27576         (WebCore::IDBObjectStoreBackendImpl::putInternal):
27577         (WebCore::IDBObjectStoreBackendImpl::deleteInternal):
27578         (WebCore::IDBObjectStoreBackendImpl::createIndex):
27579         (WebCore::IDBObjectStoreBackendImpl::index):
27580         (WebCore::IDBObjectStoreBackendImpl::getIndexId):
27581         (WebCore::IDBObjectStoreBackendImpl::getIndexIds):
27582         (WebCore::IDBObjectStoreBackendImpl::deleteIndex):
27583         (WebCore::IDBObjectStoreBackendImpl::loadIndexes):
27584         (WebCore::IDBObjectStoreBackendImpl::removeIndexFromMap):
27585         (WebCore::IDBObjectStoreBackendImpl::addIndexToMap):
27586         * Modules/indexeddb/IDBObjectStoreBackendImpl.h:
27587         (IDBObjectStoreBackendImpl):
27588         * Modules/indexeddb/IDBObjectStoreBackendInterface.h:
27589         * Modules/indexeddb/IDBOpenDBRequest.cpp:
27590         (WebCore::IDBOpenDBRequest::onUpgradeNeeded):
27591         * Modules/indexeddb/IDBRequest.cpp:
27592         (WebCore::IDBRequest::onSuccess):
27593         (WebCore::IDBRequest::uncaughtExceptionInEventHandler):
27594         * Modules/indexeddb/IDBTransaction.cpp:
27595         (WebCore::IDBTransaction::create):
27596         (WebCore::IDBTransaction::IDBTransaction):
27597         (WebCore::IDBTransaction::objectStore):
27598         * Modules/indexeddb/IDBTransaction.h:
27599         (IDBTransaction):
27600         * Modules/indexeddb/IDBTransactionBackendImpl.cpp:
27601         (WebCore::IDBTransactionBackendImpl::create):
27602         (WebCore::IDBTransactionBackendImpl::IDBTransactionBackendImpl):
27603         (WebCore::IDBTransactionBackendImpl::objectStore):
27604         (WebCore):
27605         (WebCore::IDBTransactionBackendImpl::scheduleTask):
27606         * Modules/indexeddb/IDBTransactionBackendImpl.h:
27607         (IDBTransactionBackendImpl):
27608         * Modules/indexeddb/IDBTransactionBackendInterface.h:
27609
27610 2012-10-30  Mark Lam  <mark.lam@apple.com>
27611
27612         A JSC printf (support for %J+s and %b).
27613         https://bugs.webkit.org/show_bug.cgi?id=100566.
27614
27615         Reviewed by Michael Saboff.
27616
27617         Added forwarding header for VMInspector.h.
27618
27619         No new tests needed for this.
27620
27621         * ForwardingHeaders/interpreter/VMInspector.h: Added.
27622
27623 2012-10-31  Chris Rogers  <crogers@google.com>
27624
27625         Implement optional arguments in AudioBufferSourceNode start() method
27626         https://bugs.webkit.org/show_bug.cgi?id=100894
27627
27628         Reviewed by Kenneth Russell.
27629
27630         The start() method should be able to take 1, 2, or 3 arguments, optionally supporting
27631         offset and duration.  Currently, only 1 and 3 arguments are supported.
27632
27633         Test: webaudio/audiobuffersource-start.html
27634
27635         * Modules/webaudio/AudioBufferSourceNode.cpp:
27636         (WebCore::AudioBufferSourceNode::renderFromBuffer):
27637         (WebCore::AudioBufferSourceNode::startGrain):
27638         (WebCore):
27639         * Modules/webaudio/AudioBufferSourceNode.h:
27640         (AudioBufferSourceNode):
27641         * Modules/webaudio/AudioBufferSourceNode.idl:
27642
27643 2012-10-31  Mike West  <mkwst@chromium.org>
27644
27645         Implement the canonical "Content-Security-Policy" header.
27646         https://bugs.webkit.org/show_bug.cgi?id=96765
27647
27648         Reviewed by Adam Barth.
27649
27650         The CSP 1.0 specification defines the "Content-Security-Policy" header
27651         as the canonical mechanism of defining a resource's security policy. Up
27652         through this patch, we've implemented the functionality behind a prefix
27653         in order to ensure compatibility with the standard once it's released as
27654         a recommendation. Both the specification and WebKit's implementation are
27655         far enough along in that process that it makes sense to support the
27656         unprefixed header for sites that wish to opt-in to CSP 1.0.
27657
27658         As discussed on public-webappsec[1], we'll keep the experimental 1.1
27659         features behind the prefixed header ('X-WebKit-CSP') until that standard
27660         is far enough along to justify moving them out to the canonical header.
27661
27662         This patch defines the 'Content-Security-Policy' header for all ports,
27663         just as the 'X-WebKit-CSP' header is currently supported on all ports.
27664         Ports that have not opted-in to the CSP_NEXT flag will see exactly the
27665         same behavior with both headers. Ports that have opted-in will see much
27666         of CSP 1.1's current definition on the prefixed header, and CSP 1.0 on
27667         the canonical header.
27668
27669         The functionality in this change is covered by the changes made to
27670         existing tests. No expectations changed, only the headers that are sent.
27671
27672         * dom/Document.cpp:
27673         (WebCore::Document::processHttpEquiv):
27674             Add canonical header support to 'meta' element definitions.
27675         * loader/FrameLoader.cpp:
27676         (WebCore::FrameLoader::didBeginDocument):
27677             Add canonical header support to FrameLoader.
27678         * page/ContentSecurityPolicy.cpp:
27679         (WebCore::CSPDirectiveList::headerType):
27680             The ContentSecurityPolicy::HeaderType enum now has four values:
27681             prefixed/report-only, unprefixed/report-only, prefixed/enforce, and
27682             unprefixed/enforce. Instead of creating logic to output the proper
27683             type based on internal flags, CSPDirectiveList now saves the value
27684             provided at creation time, and returns it via this method.
27685         (CSPDirectiveList):
27686         (WebCore::CSPDirectiveList::CSPDirectiveList):
27687             The constructor now accepts a type, which is stored on the object.
27688             It also stores a new internal variable, 'm_experimental', which
27689             defines whether or not experimental features ought to be available.
27690             These features are still locked behind the CSP_NEXT flag, but that
27691             might not be the case forever.
27692         (WebCore::CSPDirectiveList::create):
27693             The static constructor wrapper now passes the type into the real
27694             constructor, which also now handles setting its internal variables.
27695         (WebCore::CSPDirectiveList::parse):
27696             'parse()' is given the header, so it makes sense to store it here as
27697             well, rather than in the create wrapper.
27698         (WebCore::CSPDirectiveList::addDirective):
27699             1.1 directives remain locked behind CSP_NEXT, but now also require
27700             that 'm_experimental' is set, signaling usage of the prefixed header
27701             and an implicit opt-in to 1.1.
27702         * page/ContentSecurityPolicy.h:
27703             Added two new types to the HeaderTypes enum: PrefixedReportOnly, and
27704             PrefixedEnforcePolicy. These map to 'X-WebKitCSP-Report-Only' and
27705             'X-WebKit-CSP', respectively.
27706
27707 2012-10-31  Roger Fong  <roger_fong@apple.com>
27708
27709         Change PopupMenu positioning on Windows such that behaviour on multiple monitors matches Windows standards.
27710         https://bugs.webkit.org/show_bug.cgi?id=100317
27711
27712         Reviewed by Sam Weinig.
27713
27714         The existing code determines which screen the popup menu "belongs" to by determining which screen the owning application's hwnd belongs to,
27715         where ownership is determined by how much of the hwnd is on which screen.
27716         To match what most Windows applications do, the owning screen should be whichever screen the drop down button belongs to.
27717         To determine which screen an element belongs to in Windows we need to pass in an hwnd for that element.
27718         However, since the drop down button is something that WebKit renders there is no hwnd.
27719
27720         To remedy this issue, we can temporarily move the popup menu's hwnd to match the position and size of the button,
27721         determine the correct screen, and then eventually move it back to the correct final position after the rest of 
27722         the calculations have been completed. This is all done in the same function call so no rendering of the popup menu occurs
27723         between the temporary and final positionings.
27724
27725         There's not really a good way of testing popup menus except manually, they're separate hwnds created outside of the WebView.
27726
27727         * platform/win/PopupMenuWin.cpp:
27728         (WebCore::monitorFromHwnd):
27729         (WebCore):
27730         (WebCore::PopupMenuWin::show):
27731         (WebCore::PopupMenuWin::calculatePositionAndSize):
27732
27733 2012-10-31  Thiago Marcos P. Santos  <thiago.santos@intel.com>
27734
27735         Added viewport at-rule to the CSS parser and tokenizer
27736         https://bugs.webkit.org/show_bug.cgi?id=95961
27737
27738         Reviewed by Kenneth Rohde Christiansen.
27739
27740         Add tokens and grammar rules to parse @-webkit-viewport blocks. Also add
27741         the newly parsed rule to the rule list.
27742
27743         This parser now implements the following part of the CSS Device Adaptation
27744         specification: http://www.w3.org/TR/css-device-adapt/#syntax
27745
27746         Test: css3/device-adapt/viewport-at-rule-parsing.html
27747
27748         * CMakeLists.txt:
27749         * GNUmakefile.list.am:
27750         * Target.pri:
27751         * WebCore.gypi:
27752         * WebCore.vcproj/WebCore.vcproj:
27753         * WebCore.xcodeproj/project.pbxproj:
27754         * css/CSSGrammar.y.in:
27755         * css/CSSParser.cpp:
27756         (WebCore::CSSParser::CSSParser):
27757         (WebCore::CSSParser::detectAtToken):
27758         (WebCore):
27759         (WebCore::CSSParser::createViewportRule):
27760         * css/CSSParser.h:
27761         (CSSParser):
27762         (WebCore::CSSParser::markViewportRuleBodyStart):
27763         (WebCore::CSSParser::markViewportRuleBodyEnd):
27764         (WebCore::CSSParser::inViewport):
27765
27766             These methods are needed by the next patch validating the properties.
27767             Some viewport properties are common to other rules but have different
27768             semantics, and accepts different keywords. The validation needs to be
27769             done in a different code path.
27770
27771         * css/CSSPropertySourceData.h:
27772         * css/CSSRule.cpp:
27773         (WebCore):
27774         (WebCore::CSSRule::cssText):
27775         (WebCore::CSSRule::destroy):
27776         (WebCore::CSSRule::reattach):
27777         (WebCore::CSSRule::reportMemoryUsage):
27778         * css/CSSRule.h:
27779         (CSSRule):
27780         (WebCore::CSSRule::isViewportRule):
27781         * css/StyleRule.cpp:
27782         (WebCore::StyleRuleBase::reportMemoryUsage):
27783         (WebCore::StyleRuleBase::destroy):
27784         (WebCore::StyleRuleBase::copy):
27785         (WebCore::StyleRuleBase::createCSSOMWrapper):
27786         (WebCore):
27787         (WebCore::StyleRuleViewport::StyleRuleViewport):
27788         (WebCore::StyleRuleViewport::~StyleRuleViewport):
27789         (WebCore::StyleRuleViewport::mutableProperties):
27790         (WebCore::StyleRuleViewport::setProperties):
27791         (WebCore::StyleRuleViewport::reportDescendantMemoryUsage):
27792         * css/StyleRule.h:
27793         (StyleRuleBase):
27794         (WebCore::StyleRuleBase::isViewportRule):
27795         (WebCore):
27796         (StyleRuleViewport):
27797         (WebCore::StyleRuleViewport::create):
27798         (WebCore::StyleRuleViewport::properties):
27799         (WebCore::StyleRuleViewport::copy):
27800         * css/WebKitCSSViewportRule.cpp: Added.
27801         (WebCore):
27802         (WebCore::WebKitCSSViewportRule::WebKitCSSViewportRule):
27803         (WebCore::WebKitCSSViewportRule::~WebKitCSSViewportRule):
27804         (WebCore::WebKitCSSViewportRule::style):
27805         (WebCore::WebKitCSSViewportRule::cssText):
27806         (WebCore::WebKitCSSViewportRule::reattach):
27807         (WebCore::WebKitCSSViewportRule::reportDescendantMemoryUsage):
27808         * css/WebKitCSSViewportRule.h: Added.
27809         (WebCore):
27810
27811 2012-10-31  Max Vujovic  <mvujovic@adobe.com>
27812
27813         [CSS Shaders] Validate types of built-in uniforms
27814         https://bugs.webkit.org/show_bug.cgi?id=98974
27815
27816         Reviewed by Dean Jackson.
27817
27818         Reject shaders which define built-in uniforms with the wrong type. For example, we reject a
27819         shader with the GLSL code "uniform float u_textureSize;" because u_textureSize should be a
27820         vec2, not a float.
27821
27822         Relevant Spec Section:
27823         https://dvcs.w3.org/hg/FXTF/raw-file/tip/filters/index.html#shader-uniform-variables
27824
27825         Test: css3/filters/custom/invalid-custom-filter-uniform-types.html
27826
27827         * platform/graphics/filters/CustomFilterValidatedProgram.cpp:
27828         (WebCore):
27829         (WebCore::builtInUniformNameToTypeMap):
27830         (WebCore::validateSymbols):
27831
27832 2012-10-31  Sheriff Bot  <webkit.review.bot@gmail.com>
27833
27834         Unreviewed, rolling out r133044.
27835         http://trac.webkit.org/changeset/133044
27836         https://bugs.webkit.org/show_bug.cgi?id=100888
27837
27838         Hits an ASSERT in the isolatedWorlds tests (Requested by
27839         abarth on #webkit).
27840
27841         * bindings/scripts/CodeGeneratorV8.pm:
27842         (NeedsToVisitDOMWrapper):
27843         (GenerateVisitDOMWrapper):
27844         (GenerateHeader):
27845         (GenerateImplementation):
27846         * bindings/v8/V8GCController.cpp:
27847         (WebCore::ObjectVisitor::ObjectVisitor):
27848         (WebCore::ObjectVisitor::visitDOMWrapper):
27849         (ObjectVisitor):
27850         (WebCore::rootForGC):
27851         (ImplicitConnection):
27852         (WebCore::ImplicitConnection::ImplicitConnection):
27853         (WebCore::ImplicitConnection::root):
27854         (WebCore::ImplicitConnection::wrapper):
27855         (WebCore):
27856         (WebCore::operator<):
27857         (WebCore::NodeVisitor::NodeVisitor):
27858         (WebCore::NodeVisitor::visitNodeWrapper):
27859         (NodeVisitor):
27860         (WebCore::NodeVisitor::applyGrouping):
27861         (WebCore::V8GCController::majorGCPrologue):
27862         * bindings/v8/V8GCController.h:
27863         (V8GCController):
27864         * bindings/v8/WrapperTypeInfo.h:
27865         (WebCore):
27866         (WebCore::WrapperTypeInfo::visitDOMWrapper):
27867         (WrapperTypeInfo):
27868         * bindings/v8/custom/V8NodeListCustom.cpp:
27869         (WebCore::V8NodeList::visitDOMWrapper):
27870         * bindings/v8/custom/V8SpeechRecognitionResultCustom.cpp:
27871         (WebCore::V8SpeechRecognitionResult::visitDOMWrapper):
27872
27873 2012-10-31  Philip Rogers  <pdr@google.com>
27874
27875         Cache animationMode() in SVG animations.
27876         https://bugs.webkit.org/show_bug.cgi?id=99694
27877
27878         Reviewed by Eric Seidel.
27879
27880         This patch caches animationMode() which accounted for 25% of the CPU time of a simple
27881         animation benchmark! This is the 3rd patch for WK99694.
27882
27883         Background: SVGAnimationElement contains most of the shared animation logic for <animate>,
27884         <set>, <animateColor>, <animateTransform>, and <animateMotion>. <animateMotion> is the only
27885         animation element that can depend on other elements in the page. For example:
27886         <path id="mypath" d="M0 0 L 100 100Z"/> <!-- note, can be animated! -->
27887         <rect x="0" y="0" width="100" height="100" fill="green">
27888             <animateMotion dur="6s" repeatCount="indefinite">
27889                 <mpath xlink:href="#mypath"/>
27890             </animateMotion>
27891         </rect>
27892         See: http://www.w3.org/TR/SVG/single-page.html#animate-AnimateMotionElement
27893
27894         animationMode depends on several properties of an animation element: the set tag, whether
27895         the animation has a path, and the "values", "to", and "by" attributes. animationMode() was
27896         a hot function for two reasons:
27897         1) hasAttribute(SVGNames::valuesAttr) is expensive because we are unable to use
27898            fastHasAttribute. This is cacheable by simply calculating the animationMode when the
27899            "values" attribute changes.
27900         2) In the <animateMotion> case, determining if a path is empty or changed is expensive.
27901            AnimateMotion can have a path attribute, or it can have <mpath> children that reference
27902            a (possibly non-existent) <path> element elsewhere in the page. Before this patch we did
27903            this path lookup on every animation loop in case something changed. After this patch we
27904            only update AnimateMotion's path when it changes.
27905
27906         A previous patch, http://trac.webkit.org/changeset/132847, laid the groundwork for tracking
27907         <path> changes in <mpath>. This patch adds <mpath> to our resource tracking infrastructure
27908         to track when target <path>s change, instead of looking this up every time.
27909
27910         This refactoring is covered by existing tests.
27911         svg/animations/mozilla/animateMotion-mpath-targetChange-1.svg fails after this patch
27912         because our element dependency tracking has a bug with duplicate ids; see WK99893.
27913
27914         * svg/SVGAnimateMotionElement.cpp:
27915         (WebCore::SVGAnimateMotionElement::parseAttribute):
27916         (WebCore::SVGAnimateMotionElement::updateAnimationPath):
27917
27918             animationPath() has been changed to updateAnimationPath() and should only be called
27919             when the animation path (path attribute, or mpath's referenced path) has changed.
27920
27921         (WebCore::SVGAnimateMotionElement::buildTransformForProgress):
27922         (WebCore::SVGAnimateMotionElement::updateAnimationMode):
27923
27924             If an animationPath exists, we use PathAnimation, otherwise we fall back to the normal
27925             updateAnimationMode() codepath.
27926
27927         (WebCore):
27928         * svg/SVGAnimateMotionElement.h:
27929         (SVGAnimateMotionElement):
27930         * svg/SVGAnimationElement.cpp:
27931         (WebCore::SVGAnimationElement::SVGAnimationElement):
27932         (WebCore::SVGAnimationElement::isSupportedAttribute):
27933         (WebCore::SVGAnimationElement::parseAttribute):
27934
27935             The from, by, and to attributes have been added so that we can track when they change
27936             and update the animation mode. Similarly for when the values attribute changes.
27937
27938         (WebCore::SVGAnimationElement::updateAnimationMode):
27939         * svg/SVGAnimationElement.h:
27940         (WebCore::SVGAnimationElement::animationMode):
27941         (SVGAnimationElement):
27942         (WebCore::SVGAnimationElement::setAnimationMode):
27943         (WebCore::SVGAnimationElement::calculateDistance):
27944         * svg/SVGMPathElement.cpp:
27945         (WebCore::SVGMPathElement::buildPendingResource):
27946
27947             It would be nice to move all the duplicated buildPendingResource() logic into a central
27948             place (SVGURIReference?) but for now it is copied. This function is nearly identical to
27949             SVGFEImageElement::buildPendingResource.
27950
27951         (WebCore):
27952         (WebCore::SVGMPathElement::clearResourceReferences):
27953         (WebCore::SVGMPathElement::insertedInto):
27954         (WebCore::SVGMPathElement::removedFrom):
27955         (WebCore::SVGMPathElement::svgAttributeChanged):
27956         (WebCore::SVGMPathElement::targetPathChanged):
27957         (WebCore::SVGMPathElement::notifyParentOfPathChange):
27958         * svg/SVGMPathElement.h:
27959         (SVGMPathElement):
27960         * svg/SVGPathElement.cpp:
27961
27962             When a <path>'s path changes, we need to notify any dependent <mpath> elements. This is
27963             typically handled with RenderSVGResource::markForLayoutAndParentResourceInvalidation
27964             but for the special-case of <mpath> we only need to track when the path's "d" attribute
27965             changes so invalidateMPathDependencies() has been added.
27966
27967         (WebCore::SVGPathElement::svgAttributeChanged):
27968         (WebCore::SVGPathElement::invalidateMPathDependencies):
27969         (WebCore):
27970         (WebCore::SVGPathElement::insertedInto):
27971         (WebCore::SVGPathElement::removedFrom):
27972         * svg/SVGPathElement.h:
27973         (SVGPathElement):
27974         * svg/SVGSetElement.cpp:
27975         (WebCore::SVGSetElement::SVGSetElement):
27976         (WebCore::SVGSetElement::updateAnimationMode):
27977         (WebCore):
27978         * svg/SVGSetElement.h:
27979         (SVGSetElement):
27980         * svg/animation/SVGSMILElement.cpp:
27981         (WebCore::SVGSMILElement::isSupportedAttribute):
27982
27983 2012-10-31  Beth Dakin  <bdakin@apple.com>
27984
27985         https://bugs.webkit.org/show_bug.cgi?id=100879
27986         ScrollingStateNode::cloneAndResetNode() should not be virtual
27987
27988         Reviewed by Simon Fraser.
27989
27990         cloneAndResetNode() is currently pure virtual and implemented only 
27991         in ScrollingStateScrollingNode. However, all of the work that it 
27992         does at this time is stuff that a generic ScrollingStateNode could 
27993         do. We should move this implementation to the base class so that it 
27994         does not need to be duplicated for future node types.
27995
27996         This patch also re-names cloneAndResetNode() to cloneAndReset()
27997         and correspondingly re-names cloneAndResetChildNodes() to 
27998         cloneAndResetChildren(). 
27999
28000         Finally the patch also changes the copy constructors of both of these 
28001         classes to take a const reference instead of a pointer.
28002
28003         * page/scrolling/ScrollingStateNode.cpp:
28004         (WebCore::ScrollingStateNode::ScrollingStateNode):
28005         (WebCore::ScrollingStateNode::cloneAndReset):
28006         (WebCore):
28007         (WebCore::ScrollingStateNode::cloneAndResetChildren):
28008         * page/scrolling/ScrollingStateNode.h:
28009         (ScrollingStateNode):
28010         * page/scrolling/ScrollingStateScrollingNode.cpp:
28011         (WebCore::ScrollingStateScrollingNode::ScrollingStateScrollingNode):
28012         (WebCore):
28013         * page/scrolling/ScrollingStateScrollingNode.h:
28014         (ScrollingStateScrollingNode):
28015         * page/scrolling/ScrollingStateTree.cpp:
28016         (WebCore::ScrollingStateTree::commit):
28017
28018 2012-10-31  Tom Sepez  <tsepez@chromium.org>
28019         
28020         Malformed X-XSS-Protection headers not reported.
28021         https://bugs.webkit.org/show_bug.cgi?id=100538
28022
28023         Reviewed by Adam Barth.
28024
28025         Re-writes X-XSS-Protection header parser to be more particular, and to
28026         return better information on error.
28027
28028         Tests: http/tests/security/xssAuditor/malformed-xss-protection-header-1.html
28029                http/tests/security/xssAuditor/malformed-xss-protection-header-2.html
28030                http/tests/security/xssAuditor/malformed-xss-protection-header-4.html
28031                http/tests/security/xssAuditor/xss-protection-parsing-02.html
28032
28033         * html/parser/XSSAuditor.cpp:
28034         (WebCore::XSSAuditor::init):
28035         Detect error return code and log console message with details
28036         * platform/network/HTTPParsers.cpp:
28037         (WebCore):
28038         (WebCore::skipWhiteSpace):
28039         Use safe less-than comparsion in case called with pos already out of range.
28040         (WebCore::skipToken):
28041         Fix comparison to properly reject substrings at end of input.  Prevent advancing
28042         returned position when match fails, so that this may someday be used to match
28043         optional tokens.
28044         (WebCore::parseXSSProtectionHeader):
28045         Return detailled error status. Avoid needless string copy.
28046         * platform/network/HTTPParsers.h:
28047         Add new error returns for x-xss-protection header parser.
28048         
28049 2012-10-31  Simon Fraser  <simon.fraser@apple.com>
28050
28051         REGRESSION (tile cache layers): bits of tiled layers are missing with certain 3D transforms
28052         https://bugs.webkit.org/show_bug.cgi?id=100808
28053         <rdar://problem/12562541>
28054
28055         Reviewed by Dean Jackson.
28056
28057         When projecting rects down into transformed layers, the projection can fail with severe
28058         3D rotations if the computed w component in TransformationMatrix::projectPoint() is negative.
28059         In this case we already clamp, but the fact that we clamped doesn't make it out to
28060         GraphicsLayerCA::computeVisibleRect() which resulted in incorrect visible rects being
28061         computed.
28062         
28063         Fix by propagating the fact that clamping occurred out of the TransformState functions
28064         which can clamp. In computeVisibleRect(), simply consider the entire layer bounds
28065         to be visible if clamping occurred.
28066
28067         Tests: compositing/tiling/rotated-tiled-clamped.html
28068                compositing/tiling/rotated-tiled-preserve3d-clamped.html
28069
28070         * platform/graphics/ca/GraphicsLayerCA.cpp:
28071         (WebCore::GraphicsLayerCA::computeVisibleRect): If either the applyTransform()
28072         or the state.mappedQuad() clamped, use our bounds as the visible rect.
28073         * platform/graphics/transforms/TransformState.cpp:
28074         (WebCore::TransformState::applyTransform): Pass out clamping state.
28075         (WebCore::TransformState::flatten): Ditto.
28076         (WebCore::TransformState::mappedPoint): Ditto.
28077         (WebCore::TransformState::mappedQuad): Ditto.
28078         (WebCore::TransformState::flattenWithTransform): Ditto. No need to initialize
28079         wasClamped, since this function is internal.
28080         * platform/graphics/transforms/TransformState.h:
28081         (TransformState):
28082         * platform/graphics/transforms/TransformationMatrix.cpp:
28083         (WebCore::TransformationMatrix::projectQuad): If any point projection clamped,
28084         set the flag to say we clamped.
28085         * platform/graphics/transforms/TransformationMatrix.h:
28086         (TransformationMatrix):
28087
28088 2012-10-31  Tiancheng Jiang  <tijiang@rim.com>
28089
28090         Change bubble message style to BB10 UX spec.
28091         https://bugs.webkit.org/show_bug.cgi?id=100862
28092
28093         Reviewed by Rob Buis.
28094
28095         RIM PR 198108
28096         Internal Reviewed by Otto Cheung.
28097         No new tests.
28098
28099         * css/themeBlackBerry.css:
28100         (::-webkit-validation-bubble-message): Added.
28101         (::-webkit-validation-bubble-arrow): Added.
28102         (::-webkit-validation-bubble-heading): Added.
28103
28104 2012-10-31  Mike West  <mkwst@chromium.org>
28105
28106         Prefer document->addConsoleMessage to document->domWindow->console->addMessage.
28107         https://bugs.webkit.org/show_bug.cgi?id=100850
28108
28109         Reviewed by Adam Barth.
28110
28111         For historical reasons, a few places in WebCore talk to Console directly
28112         via 'document()->domWindow()->console()->addMessage(...)'. This is more
28113         safely wrapped by calling 'addConsoleMessage' on the Document itself.
28114
28115         No visible functionality should change; we'll simply avoid potential
28116         null dereferences in the future.
28117
28118         * html/HTMLFormElement.cpp:
28119         (WebCore::HTMLFormElement::validateInteractively):
28120         * html/canvas/WebGLRenderingContext.cpp:
28121         (WebCore):
28122         (WebCore::WebGLRenderingContext::printWarningToConsole):
28123         * loader/FrameLoader.cpp:
28124         (WebCore::FrameLoader::reportLocalLoadFailed):
28125         * loader/MixedContentChecker.cpp:
28126         (WebCore::MixedContentChecker::logWarning):
28127         * loader/appcache/ApplicationCacheGroup.cpp:
28128         (WebCore::ApplicationCacheGroup::abort):
28129         (WebCore::ApplicationCacheGroup::didReceiveResponse):
28130         (WebCore::ApplicationCacheGroup::didFinishLoading):
28131         (WebCore::ApplicationCacheGroup::didFail):
28132         (WebCore::ApplicationCacheGroup::didReceiveManifestResponse):
28133         (WebCore::ApplicationCacheGroup::didFinishLoadingManifest):
28134         (WebCore::ApplicationCacheGroup::checkIfLoadIsComplete):
28135         * loader/cache/CachedResourceLoader.cpp:
28136         (WebCore::CachedResourceLoader::printAccessDeniedMessage):
28137
28138 2012-10-31  Pavel Feldman  <pfeldman@chromium.org>
28139
28140         Web Inspector: frame chooser does not work on subsequent inspector open.
28141         https://bugs.webkit.org/show_bug.cgi?id=100771
28142
28143         Reviewed by Yury Semikhatsky.
28144
28145         - Make WorkerRuntimeAgent and PageRuntimeAgent register themselves in the instrumenting agents independently
28146         - Move pause / run worker handling from InspectorRuntimeAgent into WorkerRuntimeAgent
28147         - Remove remains of the front-end reused signal from InspectorAgent
28148         - Send execution contexts post clear window object instead of post commit load.
28149
28150         * inspector/InspectorAgent.cpp:
28151         (WebCore::InspectorAgent::InspectorAgent):
28152         (WebCore::InspectorAgent::clearFrontend):
28153         (WebCore::InspectorAgent::didCommitLoad):
28154         * inspector/InspectorAgent.h:
28155         (InspectorAgent):
28156         * inspector/InspectorInstrumentation.cpp:
28157         (WebCore):
28158         (WebCore::InspectorInstrumentation::didClearWindowObjectInWorldImpl):
28159         (WebCore::InspectorInstrumentation::willEvaluateWorkerScript):
28160         * inspector/InspectorInstrumentation.h:
28161         (InspectorInstrumentation):
28162         * inspector/InspectorPageAgent.cpp:
28163         (WebCore::InspectorPageAgent::restore):
28164         * inspector/InspectorRuntimeAgent.cpp:
28165         (WebCore::InspectorRuntimeAgent::InspectorRuntimeAgent):
28166         (WebCore::InspectorRuntimeAgent::~InspectorRuntimeAgent):
28167         (WebCore::InspectorRuntimeAgent::run):
28168         (WebCore::InspectorRuntimeAgent::setScriptDebugServer):
28169         * inspector/InspectorRuntimeAgent.h:
28170         (InspectorRuntimeAgent):
28171         * inspector/InstrumentingAgents.h:
28172         (WebCore):
28173         (WebCore::InstrumentingAgents::InstrumentingAgents):
28174         (WebCore::InstrumentingAgents::workerRuntimeAgent):
28175         (WebCore::InstrumentingAgents::setWorkerRuntimeAgent):
28176         (InstrumentingAgents):
28177         * inspector/PageRuntimeAgent.cpp:
28178         (WebCore::PageRuntimeAgent::PageRuntimeAgent):
28179         (WebCore::PageRuntimeAgent::~PageRuntimeAgent):
28180         (WebCore::PageRuntimeAgent::setFrontend):
28181         (WebCore::PageRuntimeAgent::clearFrontend):
28182         (WebCore::PageRuntimeAgent::enable):
28183         (WebCore::PageRuntimeAgent::didCreateMainWorldContext):
28184         * inspector/PageRuntimeAgent.h:
28185         (PageRuntimeAgent):
28186         * inspector/WorkerRuntimeAgent.cpp:
28187         (WebCore::WorkerRuntimeAgent::WorkerRuntimeAgent):
28188         (WebCore::WorkerRuntimeAgent::~WorkerRuntimeAgent):
28189         (WebCore::WorkerRuntimeAgent::run):
28190         (WebCore):
28191         (WebCore::WorkerRuntimeAgent::pauseWorkerContext):
28192         * inspector/WorkerRuntimeAgent.h:
28193         (WorkerRuntimeAgent):
28194
28195 2012-10-31  Kondapally Kalyan  <kalyan.kondapally@intel.com>
28196
28197         [Qt][EFL][AC][WK2]TextureMapperLayer backing store contents are drawn upside down on screen.
28198         https://bugs.webkit.org/show_bug.cgi?id=100845.
28199
28200         Reviewed by Noam Rosenthal.
28201
28202         WebGL displays the Canvas with (0,0) being the bottom left corner.
28203         In GraphicsSurface::platformPaintToTextureMapper we don't set ShouldFlipTexture
28204         flag before painting to TextureMapper.
28205         It results in backing store contents being drawn upside down on screen.
28206         This patch enables ShouldFlipTexture flag when TextureMapperLayer renders 
28207         it's backing store contents into a TextureMapper.
28208
28209         * platform/graphics/surfaces/qt/GraphicsSurfaceGLX.cpp:
28210         (WebCore::GraphicsSurface::platformPaintToTextureMapper):
28211
28212 2012-10-31  Noam Rosenthal  <noam.rosenthal@nokia.com>
28213
28214         [Texmap] Enable filter animations in GraphicsLayerAnimation
28215         https://bugs.webkit.org/show_bug.cgi?id=100318
28216
28217         Reviewed by Kenneth Rohde Christiansen.
28218
28219         Use the same method of animating filters in WebCore to animate filters for TextureMapper.
28220         Added the appropriate methods to GraphicsLayerAnimation and TextureMapperLayer.
28221
28222         Tested by LayoutTests/css3/filters/filter-animation-hw.html and other tests.
28223
28224         * platform/graphics/GraphicsLayerAnimation.cpp:
28225         (WebCore):
28226         (WebCore::blendFunc):
28227         (WebCore::applyFilterAnimation):
28228         (WebCore::GraphicsLayerAnimation::applyInternal):
28229         * platform/graphics/GraphicsLayerAnimation.h:
28230         (Client):
28231         * platform/graphics/texmap/TextureMapperLayer.cpp:
28232         (WebCore::TextureMapperLayer::intermediateSurfaceRect):
28233         (WebCore::TextureMapperLayer::shouldPaintToIntermediateSurface):
28234         (WebCore::TextureMapperLayer::paintRecursive):
28235         (WebCore::TextureMapperLayer::syncAnimations):
28236         * platform/graphics/texmap/TextureMapperLayer.h:
28237         (TextureMapperLayer):
28238         (WebCore::TextureMapperLayer::setFilters):
28239         (WebCore::TextureMapperLayer::setAnimatedFilters):
28240
28241 2012-10-31  Adam Barth  <abarth@webkit.org>
28242
28243         [V8] Garbage collection should use opaque roots rather than implicit references
28244         https://bugs.webkit.org/show_bug.cgi?id=100707
28245
28246         Reviewed by Kentaro Hara.
28247
28248         This patch replaces visitDOMWrapper with opaqueRootForGC. The
28249         former used to inform V8 of implicit relationships between wrapper
28250         objects on a per-wrapper basis. That meant that we needed to know which
28251         DOMDataStore a given wrapper was in during garbage collection.
28252
28253         After this patch, we now use object groups rather than implicit
28254         references to inform V8 of these relationships. That has two benefits:
28255
28256         1) We no longer need to know which DOMDataStore a wrapper belongs
28257            because we don't need to find the exact source wrapper for the
28258            implicit connection.
28259
28260         2) We can now handle more complicated implicit relationships, for
28261            example when some of the intervening objects haven't had their
28262            JavaScript wrappers created yet.
28263
28264         This patch also unlocks to paths of future development:
28265         A) Fixing the remaining failures in fast/dom/gc-9.html
28266         B) Enumerating DOM wrappers entirely from V8 rather than from the
28267            DOMWrapperMaps (so that we can move more object towards using
28268            IntrusiveDOMWrapperMaps, which aren't enumerable from WebCore).
28269
28270         * bindings/scripts/CodeGeneratorV8.pm:
28271         (NeedsCustomOpaqueRootForGC):
28272         (GenerateOpaqueRootForGC):
28273         (GenerateHeader):
28274         (GenerateImplementation):
28275         * bindings/v8/V8GCController.cpp:
28276         (ImplicitConnection):
28277         (WebCore::ImplicitConnection::ImplicitConnection):
28278         (WebCore::ImplicitConnection::root):
28279         (WebCore::ImplicitConnection::wrapper):
28280         (WebCore):
28281         (WebCore::operator<):
28282         (WrapperGrouper):
28283         (WebCore::WrapperGrouper::WrapperGrouper):
28284         (WebCore::WrapperGrouper::addToGroup):
28285         (WebCore::WrapperGrouper::keepAlive):
28286         (WebCore::WrapperGrouper::apply):
28287         (WebCore::ObjectVisitor::ObjectVisitor):
28288         (WebCore::ObjectVisitor::visitDOMWrapper):
28289         (ObjectVisitor):
28290         (WebCore::V8GCController::opaqueRootForGC):
28291         (WebCore::NodeVisitor::NodeVisitor):
28292         (WebCore::NodeVisitor::visitNodeWrapper):
28293         (NodeVisitor):
28294         (WebCore::V8GCController::majorGCPrologue):
28295         * bindings/v8/V8GCController.h:
28296         (WebCore):
28297         (V8GCController):
28298         * bindings/v8/WrapperTypeInfo.h:
28299         (WebCore):
28300         (WebCore::WrapperTypeInfo::opaqueRootForGC):
28301         (WrapperTypeInfo):
28302         * bindings/v8/custom/V8NodeListCustom.cpp:
28303         (WebCore::V8NodeList::opaqueRootForGC):
28304         * bindings/v8/custom/V8SpeechRecognitionResultCustom.cpp:
28305         (WebCore::V8SpeechRecognitionResult::opaqueRootForGC):
28306
28307 2012-10-31  Alexei Filippov  <alph@chromium.org>
28308
28309         Web Inspector: Add total node to native memory snapshot tree
28310         https://bugs.webkit.org/show_bug.cgi?id=100843
28311
28312         Reviewed by Yury Semikhatsky.
28313
28314         * inspector/front-end/NativeMemorySnapshotView.js:
28315         (WebInspector.NativeSnapshotDataGrid):
28316         (WebInspector.NativeSnapshotNode):
28317         (WebInspector.MemoryBlockViewProperties._initialize):
28318
28319 2012-10-31  Arpita Bahuguna  <arpitabahuguna@gmail.com>
28320
28321         Table with percentage column widths doesn't scale to fill the entire width of a table containing it
28322         https://bugs.webkit.org/show_bug.cgi?id=11645
28323
28324         Reviewed by Julien Chaffraix.
28325
28326         When the inner (or nested) table has auto width and column(s) with
28327         percent width, we should scale our column(s) to the width of the
28328         containing table (unless it has auto width).
28329
28330         Test: fast/table/scale-nested-percent-width-cols.html
28331
28332         * rendering/AutoTableLayout.cpp:
28333         (WebCore::shouldScaleColumns):
28334         If the containing table width was of percent type, we were disallowing
28335         our inner or nested table's column from scaling to the size of the parent
28336         table. We should prohibit the scaling of the nested table columns only
28337         if the parent table has auto width.
28338
28339 2012-10-31  Ian Vollick  <vollick@chromium.org>
28340
28341         Add support for text-based repaint testing
28342         https://bugs.webkit.org/show_bug.cgi?id=100584
28343
28344         Reviewed by Simon Fraser.
28345
28346         Allows tracked repaint rects to be dumped as text.
28347
28348         The following layout tests have been converted:
28349           fast/repaint/layer-full-repaint.html
28350           fast/repaint/overflow-flipped-writing-mode-table.html
28351
28352         * WebCore.exp.in:
28353           Exports for:
28354             FrameView::setTracksRepaints(bool)
28355             Frame::trackedRepaintRectsAsText() const
28356         * page/Frame.cpp:
28357         (WebCore::Frame::trackedRepaintRectsAsText):
28358           Returns a string containing information on all tracked repaint rects.
28359         * page/FrameView.cpp:
28360         (WebCore::FrameView::setTracksRepaints):
28361           Rather than calling m_trackedRepaintRects.clear() directly, I've
28362           called resetTrackedRepaints(). This will allow us to do more
28363           sophisticated resetting when we start tracking repaint rects for
28364           composited layers.
28365         (WebCore::FrameView::trackedRepaintRectsAsText):
28366           Provides the string returned by Frame::trackedRepaintRectsAsText.
28367         * testing/Internals.cpp:
28368         (WebCore::Internals::repaintRectsAsText):
28369           Returns Frame::trackedRepaintRectsAsText.
28370         (WebCore):
28371         (WebCore::Internals::startTrackingRepaints):
28372           Calls FrameView::setTracksRepaints(true)
28373         (WebCore::Internals::stopTrackingRepaints):
28374           Calls FrameView::setTracksRepaints(false)
28375         * testing/Internals.h:
28376         * testing/Internals.idl:
28377           Declarations for:
28378             repaintRectsAsText
28379             startTrackingRepaints
28380             stopTrackingRepaints
28381
28382 2012-10-31  Yury Semikhatsky  <yurys@chromium.org>
28383
28384         Web Inspector: page crash when pausing in dedicated worker
28385         https://bugs.webkit.org/show_bug.cgi?id=100837
28386
28387         Reviewed by Pavel Feldman.
28388
28389         Pass debugger agent to InjectedScriptHost::init in case of workers.
28390
28391         Test: inspector-protocol/debugger-pause-dedicated-worker.html
28392
28393         * inspector/WorkerInspectorController.cpp:
28394         (WebCore::WorkerInspectorController::WorkerInspectorController):
28395
28396 2012-10-31  Zoltan Nyul  <zoltan.nyul@intel.com>
28397
28398         perspective-origin should ignore values with more then two lengths and use the default values
28399         https://bugs.webkit.org/show_bug.cgi?id=100835
28400
28401         Reviewed by Kenneth Rohde Christiansen.
28402
28403         Perspective-origin should ignore values with more then two lengths
28404         (http://www.w3.org/TR/css3-transforms/#perspective-origin) and use
28405         the default values instead of parsing it as an unlimited-length list,
28406         of which all but the first two values are ignored. This makes perspective-origin 
28407         behave similar to transform-origin which uses default value in this case,
28408         as well as firefox does the same.
28409
28410         Test: transforms/2d/computed-style-origin.html
28411
28412         * css/CSSParser.cpp:
28413         (WebCore::CSSParser::parsePerspectiveOrigin):
28414
28415 2012-10-31  Sheriff Bot  <webkit.review.bot@gmail.com>
28416
28417         Unreviewed, rolling out r133016.
28418         http://trac.webkit.org/changeset/133016
28419         https://bugs.webkit.org/show_bug.cgi?id=100856
28420
28421         broke compile-webkit on several bots (Requested by podivilov
28422         on #webkit).
28423
28424         * CMakeLists.txt:
28425         * GNUmakefile.list.am:
28426         * Target.pri:
28427         * WebCore.gypi:
28428         * WebCore.vcproj/WebCore.vcproj:
28429         * WebCore.xcodeproj/project.pbxproj:
28430         * dom/DeviceOrientationClient.h:
28431         (DeviceOrientationClient):
28432         * dom/DeviceOrientationController.cpp:
28433         (WebCore::DeviceOrientationController::DeviceOrientationController):
28434         (WebCore):
28435         (WebCore::DeviceOrientationController::~DeviceOrientationController):
28436         (WebCore::DeviceOrientationController::timerFired):
28437         (WebCore::DeviceOrientationController::addListener):
28438         (WebCore::DeviceOrientationController::removeListener):
28439         (WebCore::DeviceOrientationController::removeAllListeners):
28440         (WebCore::DeviceOrientationController::suspendEventsForAllListeners):
28441         (WebCore::DeviceOrientationController::resumeEventsForAllListeners):
28442         (WebCore::DeviceOrientationController::didChangeDeviceOrientation):
28443         (WebCore::DeviceOrientationController::supplementName):
28444         * dom/DeviceOrientationController.h:
28445         (WebCore):
28446         (DeviceOrientationController):
28447         (WebCore::DeviceOrientationController::isActive):
28448         (WebCore::DeviceOrientationController::client):
28449         (WebCore::DeviceOrientationController::from):
28450         * dom/Document.cpp:
28451         (WebCore::Document::suspendActiveDOMObjects):
28452         (WebCore::Document::resumeActiveDOMObjects):
28453         * loader/EmptyClients.h:
28454         (WebCore::EmptyDeviceOrientationClient::startUpdating):
28455         (WebCore::EmptyDeviceOrientationClient::stopUpdating):
28456         * page/DOMWindow.cpp:
28457         (WebCore::DOMWindow::addEventListener):
28458         (WebCore::DOMWindow::removeEventListener):
28459         (WebCore::DOMWindow::removeAllEventListeners):
28460         * page/DeviceClient.h: Removed.
28461         * page/DeviceController.cpp: Removed.
28462         * page/DeviceController.h: Removed.
28463
28464 2012-10-31  Antti Koivisto  <antti@apple.com>
28465
28466         Remove stray calls to mutableAttributeData()
28467         https://bugs.webkit.org/show_bug.cgi?id=100849
28468
28469         Reviewed by Andreas Kling.
28470
28471         Changing the cached class attribute value does not require mutable attribute data.
28472
28473         * dom/Element.cpp:
28474         (WebCore::Element::classAttributeChanged):
28475         * dom/ElementAttributeData.h:
28476         (WebCore::ElementAttributeData::clearClass):
28477         
28478             Make const like setClass().
28479
28480 2012-10-31  Mike West  <mkwst@chromium.org>
28481
28482         X-Frame-Options console message should be associated with a request.
28483         https://bugs.webkit.org/show_bug.cgi?id=100735
28484
28485         Reviewed by Pavel Feldman.
28486
28487         In 99941, we added the possibility to tie console messages to requests,
28488         which enables automatic generation of stack traces, line numbers, etc.
28489         making the error simpler to diagnose for web developers. This patch
28490         uses the piping laid in that patch to improve the console message
28491         generated when a document is blocked by X-Frame-Options.
28492
28493         No new tests; the functionality is covered by changes to existing tests.
28494
28495         * dom/Document.cpp:
28496         (WebCore::Document::processHttpEquiv):
28497             Grab the request identifier from the currently active DocumentLoader
28498             and pass it into the console message.
28499         * loader/MainResourceLoader.cpp:
28500         (WebCore::MainResourceLoader::didReceiveResponse):
28501             Grab the request identifier from the MainResourceLoader, and pass it
28502             into the console message.
28503
28504 2012-10-31  Sheriff Bot  <webkit.review.bot@gmail.com>
28505
28506         Unreviewed, rolling out r133015.
28507         http://trac.webkit.org/changeset/133015
28508         https://bugs.webkit.org/show_bug.cgi?id=100847
28509
28510         broke Apple Win Debug compilation (Requested by podivilov on
28511         #webkit).
28512
28513         * inspector/InspectorAgent.cpp:
28514         (WebCore::InspectorAgent::InspectorAgent):
28515         (WebCore::InspectorAgent::clearFrontend):
28516         (WebCore::InspectorAgent::didCommitLoad):
28517         * inspector/InspectorAgent.h:
28518         (WebCore::InspectorAgent::didCommitLoadFired):
28519         (InspectorAgent):
28520         * inspector/InspectorInstrumentation.cpp:
28521         (WebCore):
28522         (WebCore::InspectorInstrumentation::didClearWindowObjectInWorldImpl):
28523         (WebCore::InspectorInstrumentation::willEvaluateWorkerScript):
28524         (WebCore::InspectorInstrumentation::runtimeAgentEnabled):
28525         * inspector/InspectorInstrumentation.h:
28526         (InspectorInstrumentation):
28527         * inspector/InspectorPageAgent.cpp:
28528         (WebCore::InspectorPageAgent::restore):
28529         * inspector/InspectorRuntimeAgent.cpp:
28530         (WebCore::InspectorRuntimeAgent::InspectorRuntimeAgent):
28531         (WebCore::InspectorRuntimeAgent::~InspectorRuntimeAgent):
28532         (WebCore::InspectorRuntimeAgent::run):
28533         (WebCore):
28534         (WebCore::InspectorRuntimeAgent::pauseWorkerContext):
28535         * inspector/InspectorRuntimeAgent.h:
28536         (InspectorRuntimeAgent):
28537         * inspector/InstrumentingAgents.h:
28538         (WebCore):
28539         (WebCore::InstrumentingAgents::InstrumentingAgents):
28540         (WebCore::InstrumentingAgents::inspectorRuntimeAgent):
28541         (WebCore::InstrumentingAgents::setInspectorRuntimeAgent):
28542         (InstrumentingAgents):
28543         * inspector/PageRuntimeAgent.cpp:
28544         (WebCore::PageRuntimeAgent::PageRuntimeAgent):
28545         (WebCore::PageRuntimeAgent::~PageRuntimeAgent):
28546         (WebCore::PageRuntimeAgent::setFrontend):
28547         (WebCore::PageRuntimeAgent::clearFrontend):
28548         (WebCore::PageRuntimeAgent::enable):
28549         (WebCore::PageRuntimeAgent::didClearWindowObject):
28550         * inspector/PageRuntimeAgent.h:
28551         (PageRuntimeAgent):
28552         * inspector/WorkerRuntimeAgent.cpp:
28553         (WebCore::WorkerRuntimeAgent::WorkerRuntimeAgent):
28554         (WebCore::WorkerRuntimeAgent::~WorkerRuntimeAgent):
28555         * inspector/WorkerRuntimeAgent.h:
28556         (WorkerRuntimeAgent):
28557
28558 2012-10-31  Kihong Kwon  <kihong.kwon@samsung.com>
28559
28560         Add DeviceController base-class to remove duplication of DeviceXXXControler
28561         https://bugs.webkit.org/show_bug.cgi?id=96894
28562
28563         Reviewed by Hajime Morita.
28564
28565         Add DeviceController which is extracted from DeviceOrientationController to remove duplication.
28566         And soon-to-be-added DeviceMotionController and ProximityController.
28567
28568         Covered by existing tests.
28569
28570         * CMakeLists.txt:
28571         * GNUmakefile.list.am:
28572         * Target.pri:
28573         * WebCore.gypi:
28574         * WebCore.vcproj/WebCore.vcproj:
28575         * WebCore.xcodeproj/project.pbxproj:
28576         * dom/DeviceOrientationClient.h:
28577         * dom/DeviceOrientationController.cpp:
28578         Remove member functions to move to DeviceController.
28579         - addListener(), removeListener(), removeAllListeners(), isActive()
28580         (WebCore::DeviceOrientationController::DeviceOrientationController):
28581         (WebCore::DeviceOrientationController::didChangeDeviceOrientation):
28582         (WebCore::DeviceOrientationController::client):
28583         (WebCore::DeviceOrientationController::hasLastData):
28584         (WebCore::DeviceOrientationController::getLastEvent):
28585         (WebCore::DeviceOrientationController::from):
28586         (WebCore):
28587         * dom/DeviceOrientationController.h:
28588         (WebCore):
28589         (WebCore::DeviceOrientationController::~DeviceOrientationController):
28590         (DeviceOrientationController):
28591         * dom/Document.cpp:
28592         Remove suspendEventsForAllListeners() and resumeEventsForAllListeners() function calls.
28593         These calls can be made by checking activeDOMObjectsAreSuspended() and activeDOMObjectsAreStopped() before dispatchEvent.
28594         (WebCore::Document::suspendActiveDOMObjects):
28595         (WebCore::Document::resumeActiveDOMObjects):
28596         * loader/EmptyClients.h:
28597         (EmptyDeviceClient):
28598         (WebCore::EmptyDeviceClient::startUpdating):
28599         (WebCore::EmptyDeviceClient::stopUpdating):
28600         (WebCore):
28601         * page/DOMWindow.cpp:
28602         (WebCore::DOMWindow::addEventListener):
28603         (WebCore::DOMWindow::removeEventListener):
28604         (WebCore::DOMWindow::removeAllEventListeners):
28605         * page/DeviceClient.h: Added.
28606         (WebCore):
28607         (DeviceClient):
28608         (WebCore::DeviceClient::~DeviceClient):
28609         * page/DeviceController.cpp: Added.
28610         DeviceController has extracted functions from DeviceOrientationController and DeviceMotionController.
28611         - addDeviceEventListener(), removeDeviceEventlistener(), removeAllDeviceEventListeners(), dispatchDeviceEvent()
28612         All kind of device event controller which has DeviceClient can be inherited from DeviceController.
28613         (WebCore):
28614         (WebCore::DeviceController::DeviceController):
28615         (WebCore::DeviceController::addDeviceEventListener):
28616         (WebCore::DeviceController::removeDeviceEventListener):
28617         (WebCore::DeviceController::removeAllDeviceEventListeners):
28618         (WebCore::DeviceController::dispatchDeviceEvent):
28619         (WebCore::DeviceController::fireDeviceEvent):
28620         * page/DeviceController.h: Added.
28621         (WebCore):
28622         (DeviceController):
28623         (WebCore::DeviceController::~DeviceController):
28624         (WebCore::DeviceController::isActive):
28625         (WebCore::DeviceController::client):
28626         (WebCore::DeviceController::hasLastData):
28627         (WebCore::DeviceController::getLastEvent):
28628
28629 2012-10-31  Pavel Feldman  <pfeldman@chromium.org>
28630
28631         Web Inspector: frame chooser does not work on subsequent inspector open.
28632         https://bugs.webkit.org/show_bug.cgi?id=100771
28633
28634         Reviewed by Yury Semikhatsky.
28635
28636         - Make WorkerRuntimeAgent and PageRuntimeAgent register themselves in the instrumenting agents independently
28637         - Move pause / run worker handling from InspectorRuntimeAgent into WorkerRuntimeAgent
28638         - Remove remains of the front-end reused signal from InspectorAgent
28639         - Send execution contexts post clear window object instead of post commit load.
28640
28641         * inspector/InspectorAgent.cpp:
28642         (WebCore::InspectorAgent::InspectorAgent):
28643         (WebCore::InspectorAgent::clearFrontend):
28644         (WebCore::InspectorAgent::didCommitLoad):
28645         * inspector/InspectorAgent.h:
28646         (InspectorAgent):
28647         * inspector/InspectorInstrumentation.cpp:
28648         (WebCore):
28649         (WebCore::InspectorInstrumentation::didClearWindowObjectInWorldImpl):
28650         (WebCore::InspectorInstrumentation::willEvaluateWorkerScript):
28651         * inspector/InspectorInstrumentation.h:
28652         (InspectorInstrumentation):
28653         * inspector/InspectorPageAgent.cpp:
28654         (WebCore::InspectorPageAgent::restore):
28655         * inspector/InspectorRuntimeAgent.cpp:
28656         (WebCore::InspectorRuntimeAgent::InspectorRuntimeAgent):
28657         (WebCore::InspectorRuntimeAgent::~InspectorRuntimeAgent):
28658         (WebCore::InspectorRuntimeAgent::run):
28659         (WebCore::InspectorRuntimeAgent::setScriptDebugServer):
28660         * inspector/InspectorRuntimeAgent.h:
28661         (InspectorRuntimeAgent):
28662         * inspector/InstrumentingAgents.h:
28663         (WebCore):
28664         (WebCore::InstrumentingAgents::InstrumentingAgents):
28665         (WebCore::InstrumentingAgents::workerRuntimeAgent):
28666         (WebCore::InstrumentingAgents::setWorkerRuntimeAgent):
28667         (InstrumentingAgents):
28668         * inspector/PageRuntimeAgent.cpp:
28669         (WebCore::PageRuntimeAgent::PageRuntimeAgent):
28670         (WebCore::PageRuntimeAgent::~PageRuntimeAgent):
28671         (WebCore::PageRuntimeAgent::setFrontend):
28672         (WebCore::PageRuntimeAgent::clearFrontend):
28673         (WebCore::PageRuntimeAgent::enable):
28674         (WebCore::PageRuntimeAgent::didCreateMainWorldContext):
28675         * inspector/PageRuntimeAgent.h:
28676         (PageRuntimeAgent):
28677         * inspector/WorkerRuntimeAgent.cpp:
28678         (WebCore::WorkerRuntimeAgent::WorkerRuntimeAgent):
28679         (WebCore::WorkerRuntimeAgent::~WorkerRuntimeAgent):
28680         (WebCore::WorkerRuntimeAgent::run):
28681         (WebCore):
28682         (WebCore::WorkerRuntimeAgent::pauseWorkerContext):
28683         * inspector/WorkerRuntimeAgent.h:
28684         (WorkerRuntimeAgent):
28685
28686 2012-10-31  Keishi Hattori  <keishi@webkit.org>
28687
28688         Calendar picker can flicker when opened from the suggestion picker
28689         https://bugs.webkit.org/show_bug.cgi?id=100816
28690
28691         Reviewed by Kent Tamura.
28692
28693         Calendar picker was opening before the hiding completed.
28694
28695         No new tests. Added test to date-suggestion-picker-key-operations.html.
28696
28697         * Resources/pagepopups/pickerCommon.js: Added didHide event.
28698         * Resources/pagepopups/suggestionPicker.js:
28699         (SuggestionPicker.prototype.selectEntry): Use didHide event so we don't open the calendar picker prematurely.
28700         (SuggestionPicker._handleWindowDidHide): When the window finished hiding, open the calendar picker.
28701
28702 2012-10-31  Allan Sandfeld Jensen  <allan.jensen@digia.com>
28703
28704         Reset binding test result after r132973
28705         https://bugs.webkit.org/show_bug.cgi?id=99178
28706
28707         Unreviewed gardening.
28708
28709         * bindings/scripts/test/JS/JSFloat64Array.cpp:
28710         (WebCore::getJSFloat64ArrayConstructorTable):
28711         (WebCore::JSFloat64ArrayConstructor::getOwnPropertySlot):
28712         (WebCore::JSFloat64ArrayConstructor::getOwnPropertyDescriptor):
28713
28714 2012-10-31  Mike West  <mkwst@chromium.org>
28715
28716         Script run from an isolated world should bypass a page's CSP.
28717         https://bugs.webkit.org/show_bug.cgi?id=97398
28718
28719         Reviewed by Adam Barth.
28720
28721         A page's Content Security Policy currently applies to all resources
28722         loaded, regardless of their source. That generally makes sense, but
28723         proves problematic when considering script run from an isolated
28724         world (Chrome extensions, for instance). These scripts should be allowed
28725         to inject resources into a page's DOM without eiher being restricted by
28726         the page's active CSP, or generating violation reports that spam the
28727         page owner.
28728
28729         Ideally, the isolated world could define its own Content Security Policy
28730         which should be applied to resources it loads. For the moment, this
28731         patch accepts a String that we can parse later on, but only uses it in
28732         a binary way. If a non-empty policy String is provided, we bypass the
28733         main world's CSP checks. If an empty String is provided, the main
28734         world's CSP checks remain active.
28735
28736         Test: http/tests/security/isolatedWorld/bypass-main-world-csp.html
28737
28738         (WebCore::isolatedWorldContentSecurityPolicies):
28739         (WebCore::DOMWrapperWorld::isolatedWorldHasContentSecurityPolicy):
28740         (WebCore::DOMWrapperWorld::setIsolatedWorldContentSecurityPolicy):
28741         (WebCore::DOMWrapperWorld::clearIsolatedWorldContentSecurityPolicy):
28742         * bindings/v8/DOMWrapperWorld.h:
28743         (DOMWrapperWorld):
28744             Mechanisms for setting and clearing Content Security Policies from
28745             isolated worlds; implemented in the same HashMappy way as
28746             SecurityOrigin.
28747         * bindings/v8/ScriptController.cpp:
28748         (WebCore::ScriptController::shouldBypassMainWorldContentSecurityPolicy):
28749         (WebCore):
28750         * bindings/v8/ScriptController.h:
28751         (ScriptController):
28752             Adding a method to ScriptController to query the state of the
28753             current world's Content Security Policy. We'll drop this once we can
28754             apply a policy more directly, but for the moment it's necessary for
28755             the next bit.
28756         * loader/cache/CachedResourceLoader.cpp:
28757         (WebCore::CachedResourceLoader::canRequest):
28758             Check the new ScriptController method, and only perform CSP checks
28759             when loading resources if we're executing code from the main world,
28760             or an isolated world with no Content Security Policy set.
28761
28762 2012-10-31  Tim Horton  <timothy_horton@apple.com>
28763
28764         Unreviewed, attempt to fix the release build by not exporting symbols that aren't defined there.
28765
28766         * WebCore.exp.in:
28767
28768 2012-10-31  Yury Semikhatsky  <yurys@chromium.org>
28769
28770         Memory instrumentation: do not report memory occupied by objects referenced using client interfaces
28771         https://bugs.webkit.org/show_bug.cgi?id=100824
28772
28773         Reviewed by Alexander Pavlov.
28774
28775         In many classes we have pointer to a client object. These references should be
28776         reported as weak pointers and the client's memory usage should be reported when
28777         the client is reached from its instrumented owner where we know exact type of
28778         the client. Otherwise we would need to add reportMemoryUsage to all client
28779         interfaces which places additional burden on the client implementers and blurs
28780         the instrumentation boundaries.
28781
28782         * inspector/InspectorController.cpp:
28783         (WebCore::InspectorController::reportMemoryUsage):
28784         * inspector/InspectorDebuggerAgent.cpp:
28785         (WebCore::InspectorDebuggerAgent::reportMemoryUsage):
28786         * inspector/InspectorMemoryAgent.cpp:
28787         (WebCore::InspectorMemoryAgent::reportMemoryUsage):
28788         * inspector/InspectorOverlay.cpp:
28789         (WebCore::InspectorOverlay::reportMemoryUsage):
28790         * inspector/InspectorResourceAgent.cpp:
28791         (WebCore::InspectorResourceAgent::reportMemoryUsage):
28792         * page/Page.cpp:
28793         (WebCore::Page::reportMemoryUsage):
28794
28795 2012-10-31  Tim Horton  <timothy_horton@apple.com>
28796
28797         Unreviewed, attempt to fix the build by exporting NoExceptionAssertionChecker symbols.
28798
28799         * WebCore.exp.in:
28800
28801 2012-10-31  Eric Seidel  <eric@webkit.org>
28802
28803         Add non-virtual firstChild/lastChild overrides to RenderBlock and RenderTableCol for a > 30% speedup on table from bug 100304
28804         https://bugs.webkit.org/show_bug.cgi?id=100306
28805
28806         Reviewed by Abhishek Arya.
28807
28808         Presumably this is a speedup for other rendering tests as well.  We use firstChild() all over
28809         the rendering code w/o considering that it makes a virtual function call.
28810         Originally I just fixed the one callsite which was showing up on the sample to
28811         use children()->firstChild() directly.  However after further thought, this
28812         broader solution seemed the better way to go.  The first patch was a 15% win for
28813         this large table, this broader solution was a 30%!? win.
28814
28815         The elephant in the room for this table is that we're walking the whole table
28816         for many nextColumn calls.  But that I will solve in a later bug.
28817
28818         * rendering/RenderBlock.h:
28819         (WebCore::RenderBlock::firstChild):
28820         (WebCore::RenderBlock::lastChild):
28821         (RenderBlock):
28822         * rendering/RenderObject.h:
28823         (RenderObject):
28824         * rendering/RenderTableCol.h:
28825         (WebCore::RenderTableCol::firstChild):
28826         (WebCore::RenderTableCol::lastChild):
28827         (RenderTableCol):
28828
28829 2012-10-31  Philippe Normand  <pnormand@igalia.com>
28830
28831         Spatialized panning renders incorrectly with USE_CONCATENATED_IMPULSE_RESPONSES
28832         https://bugs.webkit.org/show_bug.cgi?id=98294
28833
28834         Reviewed by Chris Rogers.
28835
28836         Regenerated the concatenated impulse responses file with
28837         elevations in increasing order per azimuth. In the previous
28838         version of this file the elevations for 315, 330 and 345 were
28839         concatenated at the wrong indexes.
28840
28841         * platform/audio/resources/Composite.wav:
28842
28843 2012-10-31  Tim Horton  <timothy_horton@apple.com>
28844
28845         Full-page PDFPlugin should support inline form editing
28846         https://bugs.webkit.org/show_bug.cgi?id=100155
28847
28848         Reviewed by Dan Bernstein.
28849
28850         Add form controls corresponding to Text and Choice PDF annotations,
28851         allowing for single- and multi-line text input, and <option>-like input.
28852
28853         Currently, forms are only implemented for full-page PDF documents.
28854
28855         * WebCore.exp.in: Expose a variety of additional WebCore functionality to WebKit2.
28856         * WebCore.xcodeproj/project.pbxproj: Expose some more WebCore headers as private headers for use in WebKit2.
28857
28858 2012-10-30  Eric Seidel  <eric@webkit.org>
28859
28860         RoboHornetPro spends ~25% of total test time in WebCore::Region::Shape methods
28861         https://bugs.webkit.org/show_bug.cgi?id=98800
28862
28863         Reviewed by Sam Weinig.
28864
28865         This patch brings our total RoboHornetPro time from 8.2 seconds to 5.3 seconds!
28866
28867         OverlapMap previously used Regions to track Layer bounds rects. 
28868         Unfortunately unioning a list of Regions is O(N^2)
28869         where N is the number of Shapes (in this case rects).
28870         This is because Shapes are immutable, so to union two shapes, we copy
28871         both Shapes' segment/span vectors into a single new Shape.
28872         Thus if we union a set of M Regions, each with 1 Shape, we'll end up copying
28873         the segments of the first Shape N times before we have the final Region/Shape
28874         and the second shape N-1 times. The sum of 1 to N is (N*(N-1))/2 aka order N^2.
28875         Fixing the N^2 algorithm covered by https://bugs.webkit.org/show_bug.cgi?id=100814.
28876
28877         For now we just avoid this O(N^2) by moving away from Region, since OverlapMap
28878         doesn't need it. We just collect a vector of the layer rects and hit-test that directly.
28879         Hit-testing the rect list is O(N), just like hit-testing the same information in a Region would be.
28880
28881         Even better for us is that the OverlapMap is never even used in RoboHornetPro.
28882         We just collect these rects to end up doing nothing with them. :)
28883
28884         * rendering/RenderLayerCompositor.cpp:
28885         (WebCore::RenderLayerCompositor::OverlapMap::add):
28886         (WebCore::RenderLayerCompositor::OverlapMap::overlapsLayers):
28887         (WebCore::RenderLayerCompositor::OverlapMap::pushCompositingContainer):
28888         (WebCore::RenderLayerCompositor::OverlapMap::popCompositingContainer):
28889         (RenderLayerCompositor::OverlapMap):
28890
28891 2012-10-30  Beth Dakin  <bdakin@apple.com>
28892
28893         https://bugs.webkit.org/show_bug.cgi?id=100813
28894         ScrollingCoordinatorMac::stateNodeForID() should return a 
28895         ScrollingStateNode* instead of a ScrollingStateScrollingNode*
28896
28897         Reviewed by Sam Weinig.
28898
28899         ScrollingCoordinatorMac::stateNodeForID() should return a 
28900         ScrollingStateNode* instead of a ScrollingStateScrollingNode* so that 
28901         it can be used for other types of nodes once we add them.
28902         * page/scrolling/mac/ScrollingCoordinatorMac.h:
28903         (ScrollingCoordinatorMac):
28904         * page/scrolling/mac/ScrollingCoordinatorMac.mm:
28905         (WebCore::ScrollingCoordinatorMac::frameViewLayoutUpdated):
28906         (WebCore::ScrollingCoordinatorMac::recomputeWheelEventHandlerCountForFrameView):
28907         (WebCore::ScrollingCoordinatorMac::requestScrollPositionUpdate):
28908         (WebCore::ScrollingCoordinatorMac::stateNodeForID):
28909
28910 2012-10-30  Keishi Hattori  <keishi@webkit.org>
28911
28912         F4 inside <input type=time> should not open calendar picker
28913         https://bugs.webkit.org/show_bug.cgi?id=100730
28914
28915         Reviewed by Kent Tamura.
28916
28917         We lacked the check to see if the picker indicator is visible.
28918
28919         Test: fast/forms/time-multiple-fields/time-multiple-fields-open-picker-key-bindings.html
28920
28921         * html/BaseMultipleFieldsDateAndTimeInputType.cpp:
28922         (WebCore::BaseMultipleFieldsDateAndTimeInputType::handleKeydownEvent): Check if picker indicator is visible.
28923
28924 2012-10-30  Kent Tamura  <tkent@chromium.org>
28925
28926         Delaying 'change' and 'input' event dispatching during HTMLInputElement::setValue
28927         https://bugs.webkit.org/show_bug.cgi?id=100772
28928
28929         Reviewed by Abhishek Arya.
28930
28931         'change' and 'input' events are asynchronous and not
28932         cancelable. We can use ScopedEvent.
28933
28934         Test: fast/forms/range/range-type-change-onchange.html
28935
28936         * dom/Node.cpp:
28937         (WebCore::Node::dispatchChangeEvent): Use dispatchScopedEvent.
28938         (WebCore::Node::dispatchInputEvent): Ditto.
28939         * html/HTMLInputElement.cpp:
28940         (WebCore::HTMLInputElement::setValue):
28941         Make a scope to delay event dispatching.
28942         * html/RangeInputType.cpp:
28943         (WebCore::RangeInputType::handleKeydownEvent): Ditto.
28944
28945 2012-10-30  Simon Fraser  <simon.fraser@apple.com>
28946
28947         Fix issues with filters and reflections
28948         https://bugs.webkit.org/show_bug.cgi?id=100308
28949
28950         Reviewed by Dirk Schulze.
28951
28952         Composited filters were being applied to the wrong CALayer. The code used
28953         primaryLayer(), which may be a CATransformLayer (which filters cannot apply
28954         to; doing so causes console spew), or a CALayer that is used for reflection
28955         flattening, which again is the wrong layer.
28956
28957         Test: css3/filters/composited-reflected.html
28958
28959         * platform/graphics/ca/GraphicsLayerCA.cpp:
28960         (WebCore::GraphicsLayerCA::updateContentsVisibility): Replace .get()-> with ->
28961         (WebCore::GraphicsLayerCA::updateContentsOpaque): Ditto.
28962         (WebCore::GraphicsLayerCA::updateFilters): Apply filters to m_layer, not primaryLayer(),
28963         and use m_layerClones, not primaryLayerClones().
28964         (WebCore::GraphicsLayerCA::cloneLayer): When cloning a layer for reflections, copy filters
28965         from the source layer.
28966         * platform/graphics/ca/PlatformCALayer.h:
28967         (PlatformCALayer): Add a member function to copy filters from a supplied layer.
28968         * platform/graphics/ca/mac/PlatformCALayerMac.mm:
28969         (PlatformCALayer::setFilters): Remove blank line.
28970         (PlatformCALayer::copyFiltersFrom): Copy CAFIlters from the given layer.
28971         * platform/graphics/ca/win/PlatformCALayerWin.cpp:
28972         (PlatformCALayer::copyFiltersFrom): Stub; no filters on Windows.
28973
28974 2012-10-30  Beth Dakin  <bdakin@apple.com>
28975
28976         https://bugs.webkit.org/show_bug.cgi?id=100809
28977         ScrollingCoordinator::attachToStateTree() should take an enum 
28978         indicating what type of node to create
28979
28980         Reviewed by Simon Fraser.
28981
28982         New enum ScrollingNodeType will soon have other values, such as 
28983         FixedNode.
28984         * page/scrolling/ScrollingCoordinator.h:
28985         (WebCore::ScrollingCoordinator::attachToStateTree):
28986         * page/scrolling/mac/ScrollingCoordinatorMac.h:
28987         (ScrollingCoordinatorMac):
28988
28989         This patch generalizes this function so that it can be used to create 
28990         different types of nodes and so that it is actually ready to create 
28991         child nodes. 
28992         * page/scrolling/mac/ScrollingCoordinatorMac.mm:
28993         (WebCore::ScrollingCoordinatorMac::attachToStateTree):
28994
28995         The rootStateNode is always a ScrollingNode.
28996         (WebCore::ScrollingCoordinatorMac::ensureRootStateNodeForFrameView):
28997
28998         For the time being, always create a ScrollingNode.
28999         * rendering/RenderLayerBacking.cpp:
29000         (WebCore::RenderLayerBacking::attachToScrollingCoordinator):
29001
29002 2012-10-30  Gregg Tavares  <gman@google.com>
29003
29004         Set the initial scissor box for WebGL
29005         https://bugs.webkit.org/show_bug.cgi?id=100804
29006
29007         Reviewed by Kenneth Russell.
29008
29009         The initial scissor box needs to be set for WebGL
29010
29011         No new tests as no new functionality.
29012
29013         * html/canvas/WebGLRenderingContext.cpp:
29014         (WebCore):
29015         (WebCore::WebGLRenderingContext::initializeNewContext):
29016
29017 2012-10-30  Charles Wei  <charles.wei@torchmobile.com.cn>
29018
29019         [BlackBerry] PurgeCredential should also purge the persisted credential store
29020         https://bugs.webkit.org/show_bug.cgi?id=100744
29021
29022         Reviewed by George Staikos.
29023
29024         When challenged by the server, we will check the credential in-memory and from the persistent storage.
29025         So the invalid credentials should also be purged from the persistent credential storage; Otherwise,
29026         it will be sent to the server next time been challenged, instead of prompting the user.
29027
29028         * platform/network/blackberry/NetworkJob.cpp:
29029         (WebCore::NetworkJob::purgeCredentials):
29030
29031 2012-10-30  Allan Sandfeld Jensen  <allan.jensen@digia.com>
29032
29033         DOM URL is flaky when workers are used
29034         https://bugs.webkit.org/show_bug.cgi?id=99178
29035
29036         Reviewed by Geoffrey Garen.
29037
29038         Extend JSNoStaticTables to also avoid direct access of static tables in constructor objects.
29039
29040         Test: fast/workers/worker-domurl.html
29041
29042         * bindings/scripts/CodeGeneratorJS.pm:
29043         (constructorHashTableAccessor):
29044         (GenerateConstructorDefinition):
29045
29046 2012-10-30  Jae Hyun Park  <jae.park@company100.net>
29047
29048         Coordinated Graphics: Remove unused methods
29049         https://bugs.webkit.org/show_bug.cgi?id=100799
29050
29051         Reviewed by Noam Rosenthal.
29052
29053         Currently, there are several unused methods regarding Coordinated
29054         Graphics. This patch removes those unused methods.
29055
29056         No new tests (No change in behavior).
29057
29058         * platform/graphics/texmap/TextureMapperGL.cpp:
29059
29060 2012-10-30  Hans Muller  <hmuller@adobe.com>
29061
29062         [CSS Exclusions] Multiple segment polygon layout does not get all segments
29063         https://bugs.webkit.org/show_bug.cgi?id=100039
29064
29065         Reviewed by Dirk Schulze.
29066
29067         Corrected the algorithm for computing included polygon intervals for rectilinear polygons,
29068         and polygons with horizontal edges in general.
29069
29070         Tests: fast/exclusions/shape-inside/shape-inside-rectilinear-polygon-001.html
29071                fast/exclusions/shape-inside/shape-inside-rectilinear-polygon-002.html
29072
29073         * rendering/ExclusionPolygon.cpp: Removed some internal dead code related to the no-longer-used sortedEdgesMinY Vector.
29074         (WebCore::ExclusionPolygon::ExclusionPolygon): Initialize new ExclusionPolygonEdge edgeIndex field.
29075         (WebCore::getVertexIntersectionVertices): Return the previous, next, and target vertex indices for a vertex intersection.
29076         (WebCore::ExclusionPolygon::computeXIntersections): Refactored the core of this method to improve handling of horizontal edges.
29077         (WebCore::ExclusionPolygon::computeEdgeIntersections): Ignore zero-width edges.
29078         * rendering/ExclusionPolygon.h: Removed the rightVertexY() method, since it's no longer used.
29079         (WebCore::ExclusionPolygon::edgeAt): New method.
29080         (WebCore::ExclusionPolygon::numberOfEdges): New method.
29081         (ExclusionPolygon): Added support for retrieving edges.
29082         (WebCore::ExclusionPolygonEdge::vertex1): Use vertex1Index.
29083         (WebCore::ExclusionPolygonEdge::vertex2): Use vertex2Index.
29084         (ExclusionPolygonEdge): Renamed index1, index2 fields to vertex1Index, vertex2Index.
29085         (WebCore::ExclusionPolygonEdge::previousEdge): New method.
29086         (WebCore::ExclusionPolygonEdge::nextEdge): New method.
29087
29088 2012-10-30  Chris Evans  <cevans@google.com>
29089
29090         Improve performance of MaskPtr.
29091         https://bugs.webkit.org/show_bug.cgi?id=100790
29092
29093         Reviewed by Eric Seidel.
29094
29095         Calculate the mask once, and store it as a fast-access member variable.
29096         Also avoid unneccessary integer width expansion in index calculation.
29097         Parser/tiny-innerHTML.html has a high stddev.
29098         Best result I've seen pre-patch is 5.70 runs/s.
29099         Best result I've seen post-patch is 5.72 runs/s, but this is not statistically significant.
29100         MaskPtr is still showing as ~2% in the profile, so we're not sure we trust the profile symbolization at this time.
29101         MaskPtr is now reduced to a single inline instruction (was: 4) so this seems like a strict improvement worth landing.
29102
29103         * rendering/RenderArena.cpp:
29104         (MaskPtr): Use a passed-in mask for the mask operation.
29105         (WebCore::RenderArena::RenderArena): Calculate the mask and store it.
29106         (WebCore::RenderArena::allocate):
29107         (WebCore::RenderArena::free): Use stored mask and avoid unneccessary casts.
29108         * rendering/RenderArena.h:
29109         (RenderArena): Store the freelist mask as a member variable.
29110
29111 2012-10-30  Kenichi Ishibashi  <bashi@chromium.org>
29112
29113         local(Helvetica) in src descriptor prevent fallback
29114         https://bugs.webkit.org/show_bug.cgi?id=100446
29115
29116         Reviewed by Dan Bernstein.
29117
29118         FontCache::getCachedFontData() has a mechanism that aliases a few pairs
29119         of font family names, so that if the family name specified in the font-family
29120         property is not available on the system, but the its alias is available,
29121         it will be used instead. This is appropriate for the font-family property,
29122         but not for font family names specified in the local() function of the src
29123         descriptor in a @font-face rule.
29124
29125         This patch disables the mechanism while checking src descriptor of @font-face.
29126
29127         No new tests. It's difficult to test the change because 'Helvetica' can
29128         be mapped any other font. For example, chromium DRT uses FontConfig to
29129         map Helvetica to Times New Roman. Other ports may map Helvetica to other
29130         fonts. We can't define the expected result.
29131
29132         * css/CSSFontFaceSource.cpp:
29133         (WebCore::CSSFontFaceSource::getFontData):
29134         Call fontCache()->getCachedFontData() with checkingAlternateName = true.
29135         This disables aliasing font family names in FontCache.
29136
29137 2012-10-30  Beth Dakin  <bdakin@apple.com>
29138
29139         https://bugs.webkit.org/show_bug.cgi?id=100796
29140         Should add FixedPositionViewportConstraints to ScrollingConstraints.h
29141
29142         Reviewed by Simon Fraser.
29143
29144         ScrollingConstraints.h currently contains an abstract class called 
29145         ViewportConstraints that is intended to encapsulate data and logic 
29146         required to reposition elements whose layout depends on the viewport 
29147         rect (positions fixed and sticky), when scrolling and zooming. 
29148         However, at this time there is only a subclass for sticky. We should 
29149         add a sub-class for fixed. This is required to get pages with fixed 
29150         position elements scrolling on the scrolling thread.
29151
29152         * page/scrolling/ScrollingConstraints.cpp:
29153         (WebCore::FixedPositionViewportConstraints::layerPositionForViewportRect):
29154         (WebCore):
29155         * page/scrolling/ScrollingConstraints.h:
29156         (WebCore::ViewportConstraints::ViewportConstraints):
29157         (ViewportConstraints):
29158         (WebCore::ViewportConstraints::setAnchorEdges):
29159         (FixedPositionViewportConstraints):
29160         (WebCore::FixedPositionViewportConstraints::FixedPositionViewportConstraints):
29161         (WebCore::FixedPositionViewportConstraints::viewportRectAtLastLayout):
29162         (WebCore::FixedPositionViewportConstraints::setViewportRectAtLastLayout):
29163         (WebCore::FixedPositionViewportConstraints::layerPositionAtLastLayout):
29164         (WebCore::FixedPositionViewportConstraints::setLayerPositionAtLastLayout):
29165         (WebCore):
29166
29167 2012-10-30  Tiancheng Jiang  <tijiang@rim.com>
29168
29169         [BlackBerry] update form theme for BB10.
29170         https://bugs.webkit.org/show_bug.cgi?id=100760
29171
29172         Reviewed by Rob Buis.
29173
29174         RIM PR:222126
29175         Introduce slide function to paint new theme for the form controls.
29176
29177         No new tests.
29178
29179         * css/themeBlackBerry.css:
29180         (select):
29181         * platform/blackberry/RenderThemeBlackBerry.cpp:
29182         (WebCore):
29183         (WebCore::drawControl): Added.
29184         (WebCore::drawThreeSlice): Added.
29185         (WebCore::drawNineSlice): Added.
29186         (WebCore::loadImage): Added.
29187         (WebCore::RenderThemeBlackBerry::systemFont): Modified.
29188         (WebCore::RenderThemeBlackBerry::paintTextFieldOrTextAreaOrSearchField): Modified.
29189         (WebCore::RenderThemeBlackBerry::paintCheckbox): Modified.
29190         (WebCore::RenderThemeBlackBerry::paintRadio): Modified.
29191         (WebCore::RenderThemeBlackBerry::paintButton): Modified.
29192         (WebCore::RenderThemeBlackBerry::paintMenuList): Modified.
29193         (WebCore::RenderThemeBlackBerry::paintMenuListButton): Modified.
29194         (WebCore::RenderThemeBlackBerry::paintSliderTrackRect): Modified.
29195         (WebCore::RenderThemeBlackBerry::paintSliderThumb): Modified.
29196         * platform/blackberry/RenderThemeBlackBerry.h:
29197         (RenderThemeBlackBerry):
29198
29199 2012-10-30  Rick Byers  <rbyers@chromium.org>
29200
29201         cssText for cursor property doesn't include hotspot
29202         https://bugs.webkit.org/show_bug.cgi?id=99530
29203
29204         Reviewed by Darin Adler.
29205
29206         Implement customCssText in CSSCursorImageValue to include the hotspot when present.
29207         Also explicitly track whether or not a hotspot was supplied in the parser,
29208         while still using the existing convention of (-1,-1) to denote no hotspot
29209         in the rest of the system.
29210
29211         Test: fast/css/cursor-parsing.html
29212
29213         * css/CSSCursorImageValue.cpp:
29214         (WebCore::CSSCursorImageValue::customCssText):
29215         * css/CSSCursorImageValue.h:
29216         (CSSCursorImageValue):
29217
29218 2012-10-30  Kenneth Russell  <kbr@google.com>
29219
29220         Temporarily restrict use of ImageBufferSkia::copyToPlatformTexture until bugs resolved
29221         https://bugs.webkit.org/show_bug.cgi?id=100714
29222
29223         Reviewed by Stephen White.
29224
29225         For the moment, only use ImageBuffer::copyToPlatformTexture when
29226         copying to RGBA/UNSIGNED_BYTE textures, and document restriction
29227         in header. Restriction will be lifted once the implementations
29228         (currently only Chromium has one) have been fixed; see bug 100715.
29229
29230         No new tests; manually ran WebGL conformance test
29231         tex-image-and-sub-image-2d-with-canvas-rgba5551.html on NVIDIA
29232         hardware on Mac OS.
29233
29234         * html/canvas/WebGLRenderingContext.cpp:
29235         (WebCore):
29236         (WebCore::WebGLRenderingContext::texImage2D):
29237         * platform/graphics/ImageBuffer.h:
29238         (ImageBuffer):
29239
29240 2012-10-30  Nico Weber  <thakis@chromium.org>
29241
29242         Fix potential overflow in jpeg exif reader. Found by aedla@google.com.
29243         https://bugs.webkit.org/show_bug.cgi?id=100320
29244
29245         Reviewed by Eric Seidel.
29246
29247         Adding more than 1 element past an array is undefined, so don't do it.
29248
29249         No test, since in practice ifd will just overflow and `end - ifd` will
29250         become much larget than 2 and the `if (end - ifd < 2)` a few lines
29251         down will catch that case.
29252
29253         * platform/image-decoders/jpeg/JPEGImageDecoder.cpp:
29254         (WebCore::readImageOrientation):
29255
29256 2012-10-26  Alexandru Chiculita  <achicu@adobe.com>
29257
29258         [CSS Shaders] Add the ValidatedCustomFilterOperation class
29259         https://bugs.webkit.org/show_bug.cgi?id=100558
29260
29261         Reviewed by Dean Jackson.
29262
29263         Added the ValidatedCustomFilterOperation class. The file is now almost empty,
29264         but more is going to come in the following patches.
29265
29266         Added the a filter operation type VALIDATED_CUSTOM and updated the compositors to ignore
29267         such operations for now.
29268         
29269         No new tests, there is no new functionality yet.
29270
29271         * CMakeLists.txt:
29272         * GNUmakefile.list.am:
29273         * Target.pri:
29274         * WebCore.gypi:
29275         * WebCore.vcproj/WebCore.vcproj:
29276         * WebCore.xcodeproj/project.pbxproj:
29277         * css/CSSComputedStyleDeclaration.cpp:
29278         (WebCore::CSSComputedStyleDeclaration::valueForFilter):
29279         * css/StyleResolver.cpp:
29280         (WebCore::StyleResolver::createFilterOperations):
29281         * platform/graphics/blackberry/LayerWebKitThread.cpp:
29282         (WebCore::LayerWebKitThread::filtersCanBeComposited):
29283         * platform/graphics/ca/mac/PlatformCALayerMac.mm:
29284         (PlatformCALayer::filtersCanBeComposited):
29285         * platform/graphics/chromium/GraphicsLayerChromium.cpp:
29286         (WebCore::copyWebCoreFilterOperationsToWebFilterOperations):
29287         * platform/graphics/filters/FilterOperation.h:
29288         * platform/graphics/filters/FilterOperations.cpp:
29289         (WebCore::FilterOperations::hasCustomFilter):
29290         (WebCore::FilterOperations::getOutsets):
29291         * platform/graphics/filters/ValidatedCustomFilterOperation.cpp: Added.
29292         (WebCore):
29293         (WebCore::ValidatedCustomFilterOperation::ValidatedCustomFilterOperation):
29294         (WebCore::ValidatedCustomFilterOperation::~ValidatedCustomFilterOperation):
29295         (WebCore::ValidatedCustomFilterOperation::blend):
29296         * platform/graphics/filters/ValidatedCustomFilterOperation.h: Added.
29297         (WebCore):
29298         (ValidatedCustomFilterOperation):
29299         (WebCore::ValidatedCustomFilterOperation::create):
29300         (WebCore::ValidatedCustomFilterOperation::affectsOpacity):
29301         (WebCore::ValidatedCustomFilterOperation::movesPixels):
29302         (WebCore::ValidatedCustomFilterOperation::blendingNeedsRendererSize):
29303         (WebCore::ValidatedCustomFilterOperation::operator==):
29304
29305 2012-10-30  Joseph Pecoraro  <pecoraro@apple.com>
29306
29307         [Mac] Sync up FeatureDefine Configuration Files
29308         https://bugs.webkit.org/show_bug.cgi?id=100171
29309
29310         Reviewed by David Kilzer.
29311
29312         Follow up to better coordinate with iOS feature defines. Make:
29313
29314           - ENABLE_FILTERS always on
29315           - ENABLE_INPUT_* iphonesimulator values point to the iphoneos values
29316
29317         * Configurations/FeatureDefines.xcconfig:
29318
29319 2012-10-30  Joseph Pecoraro  <pecoraro@apple.com>
29320
29321         [Mac] Sync up FeatureDefine Configuration Files
29322         https://bugs.webkit.org/show_bug.cgi?id=100171
29323
29324         Reviewed by David Kilzer.
29325
29326         Ensure an identical FeatureDefine files across all projects. Changes:
29327
29328           - ENABLE_CSS_BOX_DECORATION_BREAK should be in all
29329           - ENABLE_PDFKIT_PLUGIN should be in all
29330           - ENABLE_RESOLUTION_MEDIA_QUERY should be in all
29331           - ENABLE_ENCRYPTED_MEDIA should be in all
29332           - ENABLE_HIDDEN_PAGE_DOM_TIMER_THROTTLING with corrected value
29333           - Some alphabetical ordering cleanup
29334
29335         * Configurations/FeatureDefines.xcconfig:
29336
29337 2012-10-30  Andreas Kling  <kling@webkit.org>
29338
29339         StylePropertySet: Convert more logic to use PropertyReference.
29340         <http://webkit.org/b/100779>
29341
29342         Reviewed by Antti Koivisto.
29343
29344         Rewrite more of the StylePropertySet logic to use PropertyReference instead of CSSProperty.
29345         This is cleanup before changing the internal storage layout of immutable StylePropertySet.
29346
29347         * css/CSSComputedStyleDeclaration.cpp:
29348         (WebCore::CSSComputedStyleDeclaration::cssPropertyMatches):
29349         * css/CSSComputedStyleDeclaration.h:
29350         * css/CSSStyleDeclaration.h:
29351         * css/PropertySetCSSStyleDeclaration.cpp:
29352         (WebCore::PropertySetCSSStyleDeclaration::cssPropertyMatches):
29353         * css/PropertySetCSSStyleDeclaration.h:
29354         * css/StylePropertySet.cpp:
29355         (WebCore::StylePropertySet::appendFontLonghandValueIfExplicit):
29356         (WebCore::StylePropertySet::fontValue):
29357         (WebCore::StylePropertySet::get4Values):
29358         (WebCore::StylePropertySet::getPropertyCSSValue):
29359         (WebCore::StylePropertySet::removeProperty):
29360         (WebCore::StylePropertySet::propertyIsImportant):
29361         (WebCore::StylePropertySet::getPropertyShorthand):
29362         (WebCore::StylePropertySet::isPropertyImplicit):
29363         (WebCore::StylePropertySet::setProperty):
29364         (WebCore::StylePropertySet::mergeAndOverrideOnConflict):
29365         (WebCore::StylePropertySet::findPropertyIndex):
29366         (WebCore::StylePropertySet::findMutableCSSPropertyWithID):
29367         (WebCore::StylePropertySet::propertyMatches):
29368         (WebCore::StylePropertySet::removeEquivalentProperties):
29369         * css/StylePropertySet.h:
29370         (WebCore::StylePropertySet::PropertyReference::shorthandID):
29371         (WebCore::StylePropertySet::PropertyReference::isImplicit):
29372
29373 2012-10-30  Eric Seidel  <eric@webkit.org>
29374
29375         Teach RenderTable how to use Vector::insert and Vector::append instead of its own custom memmove code
29376         https://bugs.webkit.org/show_bug.cgi?id=100428
29377
29378         Reviewed by Julien Chaffraix.
29379
29380         RenderTable is now like all other clients of Vector instead of being
29381         needlessly different. :)
29382
29383         insert, append and grow all use the same expandCapacity logic under the covers
29384         and Vector::insert uses TypeOperations::moveOverlapping which should use memmove
29385         by default for unknown types.
29386
29387         * rendering/RenderTable.cpp:
29388         (WebCore::RenderTable::splitColumn):
29389         (WebCore::RenderTable::appendColumn):
29390         * rendering/RenderTable.h:
29391         (WebCore::RenderTable::ColumnStruct::ColumnStruct):
29392
29393 2012-10-30  Vincent Scheib  <scheib@chromium.org>
29394
29395         Unreviewed, rolling out r132927.
29396         http://trac.webkit.org/changeset/132927
29397         https://bugs.webkit.org/show_bug.cgi?id=100558
29398
29399         Compile error on Chromium builders
29400
29401         * CMakeLists.txt:
29402         * GNUmakefile.list.am:
29403         * Target.pri:
29404         * WebCore.gypi:
29405         * WebCore.vcproj/WebCore.vcproj:
29406         * WebCore.xcodeproj/project.pbxproj:
29407         * css/CSSComputedStyleDeclaration.cpp:
29408         (WebCore::CSSComputedStyleDeclaration::valueForFilter):
29409         * css/StyleResolver.cpp:
29410         (WebCore::StyleResolver::createFilterOperations):
29411         * platform/graphics/blackberry/LayerWebKitThread.cpp:
29412         (WebCore::LayerWebKitThread::filtersCanBeComposited):
29413         * platform/graphics/ca/mac/PlatformCALayerMac.mm:
29414         (PlatformCALayer::filtersCanBeComposited):
29415         * platform/graphics/chromium/GraphicsLayerChromium.cpp:
29416         (WebCore::copyWebCoreFilterOperationsToWebFilterOperations):
29417         * platform/graphics/filters/FilterOperation.h:
29418         * platform/graphics/filters/FilterOperations.cpp:
29419         (WebCore::FilterOperations::hasCustomFilter):
29420         (WebCore::FilterOperations::getOutsets):
29421         * platform/graphics/filters/ValidatedCustomFilterOperation.cpp: Removed.
29422         * platform/graphics/filters/ValidatedCustomFilterOperation.h: Removed.
29423
29424 2012-10-30  W. James MacLean  <wjmaclean@chromium.org>
29425
29426         [chromium] Restrict link highlights to targets that display a hand-cursor
29427         https://bugs.webkit.org/show_bug.cgi?id=99862
29428
29429         Reviewed by James Robinson.
29430
29431         To avoid applying highlights to inappropriate targets, such as large divs with
29432         click handlers installed, test candidate targets and only highlight them if they
29433         would normally display a hand cursor on mouse over. This is a heuristic, but has
29434         been tested and found effective in practice.
29435
29436         This CL refactors EventHandler::selectCursor() to make the logic for determining
29437         if CURSOR_AUTO should resolve to CURSOR_POINTER available outside EventHandler.
29438
29439         Relies on existing cursor tests.
29440
29441         * page/EventHandler.cpp:
29442         (WebCore::EventHandler::useHandCursor):
29443         (WebCore):
29444         (WebCore::EventHandler::selectCursor):
29445         * page/EventHandler.h:
29446         (EventHandler):
29447
29448 2012-10-30  Rob Buis  <rbuis@rim.com>
29449
29450         [BlackBerry] Remove CookieDatabaseBackingStore::upgradeTableIfNeeded
29451         https://bugs.webkit.org/show_bug.cgi?id=100783
29452
29453         Reviewed by Yong Li.
29454
29455         PR 220513.
29456
29457         Remove CookieDatabaseBackingStore::upgradeTableIfNeeded, it was needed for backwards
29458         compatibility, but not needed anymore.
29459
29460         * platform/blackberry/CookieDatabaseBackingStore/CookieDatabaseBackingStore.cpp:
29461         (WebCore::CookieDatabaseBackingStore::invokeOpen):
29462         * platform/blackberry/CookieDatabaseBackingStore/CookieDatabaseBackingStore.h:
29463
29464 2012-10-30  Glenn Adams  <glenn@skynav.com>
29465
29466         [CSS] Expand -webkit-line-break value space
29467         https://bugs.webkit.org/show_bug.cgi?id=100739
29468
29469         Reviewed by Eric Seidel.
29470
29471         (1) expand -webkit-line-break to include new values defined by CSS3 Text [1], i.e., 'auto', 'strict', 'loose';
29472         (2) change default (initial) value for -webkit-line-break to 'auto' to match CSS3 Text;
29473         (3) rename enum EKHTMLLineBreak to LineBreak, renaming enum values appropriately;
29474
29475         New tests to be added when functionality of new values is added. No rendering behavior change at this time.
29476         Only externally visible change is default (initial) value returning 'auto' rather than 'normal', for which 3 existing
29477         tests that were sensitive to this value have been updated. Note that until the functionality for the new values is
29478         added, any actual use of the new values will be treated as the same as the pre-existing 'normal' value, i.e., the
29479         default semantics.
29480
29481         * css/CSSComputedStyleDeclaration.cpp:
29482         (WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue):
29483         Update from kthmlLineBreak() to lineBreak().
29484
29485         * css/CSSParser.cpp:
29486         (WebCore::isValidKeywordPropertyAndValue):
29487         Update values supported for CSSPropertyWebkitLineBreak.
29488
29489         * css/CSSPrimitiveValueMappings.h:
29490         (WebCore::CSSPrimitiveValue::CSSPrimitiveValue):
29491         (WebCore::CSSPrimitiveValue::operator LineBreak):
29492         Update LineBreak enumeration values (previously EKHTMLLineBreak).
29493
29494         * css/CSSValueKeywords.in:
29495         Update keywords used for -webkit-line-break.
29496
29497         * css/StyleBuilder.cpp:
29498         (WebCore::StyleBuilder::StyleBuilder):
29499         Update names for line break style getter/setter.
29500
29501         * rendering/style/RenderStyle.cpp:
29502         (WebCore::RenderStyle::diff):
29503         Remove khtml prefix on line break related state.
29504
29505         * rendering/style/RenderStyle.h:
29506         Remove khtml prefix on line break related methods. Update to redefined LineBreak
29507         enumeration type.
29508
29509         * rendering/style/RenderStyleConstants.h:
29510         Rename EKHTMLLineBreak enumeration to LineBreak.
29511         Redefine LineBreak enumeration to include new CSS3 Text modes (auto, loose, strict) and
29512         use better names.
29513
29514         * rendering/style/StyleRareInheritedData.cpp:
29515         (WebCore::StyleRareInheritedData::StyleRareInheritedData):
29516         (WebCore::StyleRareInheritedData::operator==):
29517         Remove khtml prefix on line break related state references.
29518
29519         * rendering/style/StyleRareInheritedData.h:
29520         (StyleRareInheritedData):
29521         Remove khtml prefix on line break related state. Widen field to 3 bits to support 8 values,
29522         of which 5 are now used.
29523
29524 2012-10-30  Antti Koivisto  <antti@apple.com>
29525
29526         Avoid unnecessary style recalcs on class attribute mutation
29527         https://bugs.webkit.org/show_bug.cgi?id=100776
29528
29529         Reviewed by Andreas Kling.
29530
29531         There is no need to invalidate element style on class attribute change if neither the added
29532         or removed classes featured in any active stylesheet.
29533
29534         * css/RuleFeature.cpp:
29535         (WebCore::RuleFeatureSet::add):
29536         (WebCore::RuleFeatureSet::clear):
29537         (WebCore::RuleFeatureSet::reportMemoryUsage):
29538         * css/RuleFeature.h:
29539         (RuleFeatureSet):
29540         * css/RuleSet.cpp:
29541         (WebCore::collectFeaturesFromSelector):
29542         
29543             Collect classes mentioned in CSS selectors the same way ids and attribute names are
29544             already collected.
29545
29546         * css/StyleResolver.cpp:
29547         (WebCore::StyleResolver::hasSelectorForClass):
29548         
29549             Add a method to test if a given class name is mentioned anywhere in stylehseets.
29550
29551         (WebCore):
29552         * css/StyleResolver.h:
29553         * css/StyleScopeResolver.h:
29554         (WebCore):
29555         * dom/Element.cpp:
29556         (WebCore::collectAddedAndRemovedClasses):
29557         (WebCore):
29558         (WebCore::Element::classAttributeChanged):
29559         
29560             Figure out which classes were added and removed. Test if they are present in any style
29561             rule and invalidate the style only if they are.
29562
29563         * dom/SpaceSplitString.cpp:
29564         (WebCore::SpaceSplitStringData::add):
29565         (WebCore::SpaceSplitStringData::remove):
29566         (WebCore::SpaceSplitString::add):
29567         (WebCore::SpaceSplitString::remove):
29568         
29569             Added bool return value to indicate if anything was actually removed. Reorganized 
29570             the code a bit to avoid unnecessary uniquing when nothing changes.
29571
29572         * dom/SpaceSplitString.h:
29573         (SpaceSplitStringData):
29574         (SpaceSplitString):
29575
29576 2012-10-30  Robert Hogan  <robert@webkit.org>
29577
29578         white-space: nowrap inline element beside a floated element wraps incorrectly without trailing textnode/newline
29579         https://bugs.webkit.org/show_bug.cgi?id=29648
29580
29581         Reviewed by Levi Weintraub.
29582
29583         A no-wrap child on a line inside an autowrap container should move to the next line if a float doesn't allow
29584         it to fit. This will happen if there is trailing space after the no-wrap child but not if it's the last renderer
29585         on the line. This is because nextLineBreak() is only interested in the white-space style of the current renderer 
29586         and the renderer's next sibling (if there is one) when deciding whether it needs to fit below any floats that
29587         push it beyond the edge of the container. There isn't any situation in which a no-wrap child shouldn't move 
29588         below a float on an auto-wrap line though, so this check always needs to respect the container's white-space style too.
29589
29590         Test: fast/text/whitespace/no-wrap-child-in-auto-wrap-container.html
29591
29592         * rendering/RenderBlockLineLayout.cpp:
29593         (WebCore::RenderBlock::LineBreaker::nextLineBreak):
29594
29595 2012-10-26  Alexandru Chiculita  <achicu@adobe.com>
29596
29597         [CSS Shaders] Add the ValidatedCustomFilterOperation class
29598         https://bugs.webkit.org/show_bug.cgi?id=100558
29599
29600         Reviewed by Dean Jackson.
29601
29602         Added the ValidatedCustomFilterOperation class. The file is now almost empty,
29603         but more is going to come in the following patches.
29604
29605         Added the a filter operation type VALIDATED_CUSTOM and updated the compositors to ignore
29606         such operations for now.
29607         
29608         No new tests, there is no new functionality yet.
29609
29610         * CMakeLists.txt:
29611         * GNUmakefile.list.am:
29612         * Target.pri:
29613         * WebCore.gypi:
29614         * WebCore.vcproj/WebCore.vcproj:
29615         * WebCore.xcodeproj/project.pbxproj:
29616         * css/CSSComputedStyleDeclaration.cpp:
29617         (WebCore::CSSComputedStyleDeclaration::valueForFilter):
29618         * css/StyleResolver.cpp:
29619         (WebCore::StyleResolver::createFilterOperations):
29620         * platform/graphics/blackberry/LayerWebKitThread.cpp:
29621         (WebCore::LayerWebKitThread::filtersCanBeComposited):
29622         * platform/graphics/ca/mac/PlatformCALayerMac.mm:
29623         (PlatformCALayer::filtersCanBeComposited):
29624         * platform/graphics/chromium/GraphicsLayerChromium.cpp:
29625         (WebCore::copyWebCoreFilterOperationsToWebFilterOperations):
29626         * platform/graphics/filters/FilterOperation.h:
29627         * platform/graphics/filters/FilterOperations.cpp:
29628         (WebCore::FilterOperations::hasCustomFilter):
29629         (WebCore::FilterOperations::getOutsets):
29630         * platform/graphics/filters/ValidatedCustomFilterOperation.cpp: Added.
29631         (WebCore):
29632         (WebCore::ValidatedCustomFilterOperation::ValidatedCustomFilterOperation):
29633         (WebCore::ValidatedCustomFilterOperation::~ValidatedCustomFilterOperation):
29634         (WebCore::ValidatedCustomFilterOperation::blend):
29635         * platform/graphics/filters/ValidatedCustomFilterOperation.h: Added.
29636         (WebCore):
29637         (ValidatedCustomFilterOperation):
29638         (WebCore::ValidatedCustomFilterOperation::create):
29639         (WebCore::ValidatedCustomFilterOperation::affectsOpacity):
29640         (WebCore::ValidatedCustomFilterOperation::movesPixels):
29641         (WebCore::ValidatedCustomFilterOperation::blendingNeedsRendererSize):
29642         (WebCore::ValidatedCustomFilterOperation::operator==):
29643
29644 2012-10-29  Anders Carlsson  <andersca@apple.com>
29645
29646         Build WebKit as C++11 on Mac
29647         https://bugs.webkit.org/show_bug.cgi?id=100720
29648
29649         Reviewed by Daniel Bates.
29650
29651         * Configurations/Base.xcconfig:
29652         Add CLANG_CXX_LANGUAGE_STANDARD=gnu++0x.
29653
29654         * platform/graphics/FontPlatformData.h:
29655         (WebCore::FontPlatformData::hash):
29656         * platform/graphics/cg/GraphicsContextCG.cpp:
29657         (WebCore::GraphicsContext::drawLine):
29658         (WebCore::GraphicsContext::strokeArc):
29659         * platform/graphics/filters/CustomFilterProgramInfo.cpp:
29660         (WebCore::CustomFilterProgramInfo::hash):
29661         (WebCore::ProtectionSpaceHash::hash):
29662         * platform/network/cf/FormDataStreamCFNet.cpp:
29663         (WebCore::setHTTPBody):
29664         Add static_casts to prevent implicit type conversions in non-constant initializer lists.
29665         
29666         * platform/mac/ClipboardMac.mm:
29667         (WebCore::ClipboardMac::createDragImage):
29668         * platform/mac/CursorMac.mm:
29669         (WebCore::createNamedCursor):
29670         * platform/mac/ScrollViewMac.mm:
29671         (WebCore::ScrollView::platformSetContentsSize):
29672         Use NSMakePoint to prevent implicit type conversions in non-constant initializer lists.
29673
29674         * platform/mac/CookieJar.mm:
29675         (WebCore::cookiesEnabled):
29676         * platform/network/mac/ResourceHandleMac.mm:
29677         (WebCore::shouldRelaxThirdPartyCookiePolicy):
29678         Add explicit casts to NSHTTPCookieAcceptPolicy.
29679
29680         * platform/mac/WebCoreNSURLExtras.h:
29681         * platform/mac/WebCoreNSURLExtras.mm:
29682         (WebCore::URLByTruncatingOneCharacterBeforeComponent):
29683         (WebCore::dataForURLComponentType):
29684         * platform/network/ProtectionSpaceHash.h:
29685         Use CFIndex instead of CFURLComponentType, the enum can be mangled differently in some cases, and these
29686         functions are exported from WebCore.
29687
29688 2012-10-30  Dan Bernstein  <mitz@apple.com>
29689
29690         <rdar://problem/12395187> REGRESSION (r121299): OS X Text Replacement forces cursor out of text fields
29691         https://bugs.webkit.org/show_bug.cgi?id=100768
29692
29693         Reviewed by Anders Carlsson.
29694
29695         r121299 introduced code to restore the paragraph range by saving its length and start offset
29696         relative to the document. The latter was obtained by iterating over the range starting at
29697         the beginning of the document and ending at the beginning of the paragraph range. However,
29698         such a range could not be constructed if the paragraph range was contained in a shadow DOM,
29699         since a range must have both its endpoints within the same shadow tree (or not in a shadow
29700         tree).
29701
29702         Test: platform/mac/editing/spelling/autocorrection-in-textarea.html
29703
29704         * editing/Editor.cpp:
29705         (WebCore::Editor::markAndReplaceFor): Changed paragraphStartIndex to be relative to the
29706         root container of paragraphRange, using the same logic used by
29707         checkForDifferentRootContainer() in Range.cpp.
29708
29709 2012-10-30  Dan Carney  <dcarney@google.com>
29710
29711         Remove ensureAuxiliaryContext
29712         https://bugs.webkit.org/show_bug.cgi?id=99975
29713
29714         Reviewed by Adam Barth.
29715
29716         Removed auxilliaryContext as use if it is problematic in IDB.
29717
29718         No new tests. No change in functionality.
29719
29720         * Modules/indexeddb/IDBCursor.cpp:
29721         (WebCore::IDBCursor::update):
29722         (WebCore::IDBCursor::setValueReady):
29723         * Modules/indexeddb/IDBCursor.h:
29724         (IDBCursor):
29725         * Modules/indexeddb/IDBObjectStore.cpp:
29726         (WebCore::generateIndexKeysForValue):
29727         (WebCore::IDBObjectStore::put):
29728         (WebCore):
29729         * Modules/indexeddb/IDBRequest.cpp:
29730         (WebCore::IDBRequest::onSuccess):
29731         (WebCore::IDBRequest::dispatchEvent):
29732         * bindings/v8/IDBBindingUtilities.cpp:
29733         (WebCore::createIDBKeyFromScriptValueAndKeyPath):
29734         (WebCore::deserializeIDBValue):
29735         (WebCore::injectIDBKeyIntoScriptValue):
29736         * bindings/v8/IDBBindingUtilities.h:
29737         (WebCore):
29738         * bindings/v8/V8Binding.cpp:
29739         (WebCore::toV8Context):
29740         (WebCore):
29741         * bindings/v8/V8Binding.h:
29742         (WebCore):
29743         * bindings/v8/V8PerIsolateData.cpp:
29744         (WebCore):
29745         * bindings/v8/V8PerIsolateData.h:
29746
29747 2012-10-30  Huang Dongsung  <luxtella@company100.net>
29748
29749         [CSS Shaders] Add CustomFilterRenderer to reuse this class by Accelerated Compositing.
29750         https://bugs.webkit.org/show_bug.cgi?id=98989
29751
29752         Reviewed by Dean Jackson.
29753
29754         Extract CustomFilterRenderer class from the rendering part of FECustomFilter.
29755         FECustomFilter now plays a role in extending FilterEffect and delegates
29756         rendering CSS Shaders to CustomFilterRenderer.
29757
29758         CustomFilterRenderer does not know Filter and FilterEffect. We can
29759         create a CustomFilterRenderer instance with only GraphicsContext3D and
29760         CustomFilterValidatedProgram. It means that Accelerated Compositing can
29761         create the CustomFilterRenderer instance if Accelerated Compositing has
29762         GraphicsContext3D and CustomFilterOperation, and it is already possible.
29763
29764         This patch prepares to enable CSS Shaders on Accelerated Compositing.
29765
29766         No new tests. Covered by css3/filters/custom
29767
29768         * CMakeLists.txt:
29769         * GNUmakefile.list.am:
29770         * Target.pri:
29771         * WebCore.gypi:
29772         * WebCore.vcproj/WebCore.vcproj:
29773         * WebCore.xcodeproj/project.pbxproj:
29774         * platform/graphics/filters/CustomFilterRenderer.cpp: Added.
29775         (WebCore):
29776         (WebCore::orthogonalProjectionMatrix):
29777         (WebCore::CustomFilterRenderer::create):
29778         (WebCore::CustomFilterRenderer::CustomFilterRenderer):
29779         (WebCore::CustomFilterRenderer::~CustomFilterRenderer):
29780         (WebCore::CustomFilterRenderer::premultipliedAlpha):
29781         (WebCore::CustomFilterRenderer::programNeedsInputTexture):
29782         (WebCore::CustomFilterRenderer::draw):
29783         (WebCore::CustomFilterRenderer::prepareForDrawing):
29784         (WebCore::CustomFilterRenderer::initializeCompiledProgramIfNeeded):
29785         (WebCore::CustomFilterRenderer::initializeMeshIfNeeded):
29786         (WebCore::CustomFilterRenderer::bindVertexAttribute):
29787         (WebCore::CustomFilterRenderer::unbindVertexAttribute):
29788         (WebCore::CustomFilterRenderer::bindProgramArrayParameters):
29789         (WebCore::CustomFilterRenderer::bindProgramNumberParameters):
29790         (WebCore::CustomFilterRenderer::bindProgramTransformParameter):
29791         (WebCore::CustomFilterRenderer::bindProgramParameters):
29792         (WebCore::CustomFilterRenderer::bindProgramAndBuffers):
29793         (WebCore::CustomFilterRenderer::unbindVertexAttributes):
29794         * platform/graphics/filters/CustomFilterRenderer.h: Copied from Source/WebCore/platform/graphics/filters/FECustomFilter.h.
29795         (WebCore):
29796         (CustomFilterRenderer):
29797           CustomFilterRenderer renders custom filters in GPU using a
29798           GraphicsContext3D.
29799         * platform/graphics/filters/FECustomFilter.cpp:
29800         (WebCore::FECustomFilter::FECustomFilter):
29801         (WebCore::FECustomFilter::create):
29802         (WebCore::FECustomFilter::deleteRenderBuffers):
29803         (WebCore::FECustomFilter::drawFilterMesh):
29804         (WebCore::FECustomFilter::prepareForDrawing):
29805         (WebCore::FECustomFilter::applyShader):
29806         (WebCore::FECustomFilter::resolveMultisampleBuffer):
29807         (WebCore::FECustomFilter::resizeMultisampleBuffers):
29808         (WebCore::FECustomFilter::resizeContext):
29809         * platform/graphics/filters/FECustomFilter.h:
29810         (WebCore):
29811         (FECustomFilter):
29812         * rendering/FilterEffectRenderer.cpp:
29813         (WebCore::createCustomFilterEffect):
29814
29815 2012-10-30  Mike West  <mkwst@chromium.org>
29816
29817         Web Inspector: Associate console messages with the requests that caused them.
29818         https://bugs.webkit.org/show_bug.cgi?id=99941
29819
29820         Reviewed by Pavel Feldman.
29821
29822         The inspector currently supports the concept of a request's "initiator"
29823         in order to add context to console messages that are generated in
29824         response to a specific request. The initiator is used as the message's
29825         anchor link iff a requestID is present, and no stack trace is present.
29826
29827         Currently, this functionality is only exposed to three specific
29828         callsites: 'InspectorConsoleAgent::didFinishXHRLoading',
29829         'InspectorConsoleAgent::didReceiveResponse', and
29830         'InspectorConsoleAgent::didFailLoading'. This patch adds a generic
29831         mechanism to associate requests with console messages by passing the
29832         request's identifier through 'ScriptExecutionContext::addConsoleMessage'
29833         or 'Console::addMessage' when relevant.
29834
29835         This patch should have no visible changes. It just installs some new
29836         piping, and adjusts the three methods mentioned above to use it.
29837         Existing tests shouldn't break.
29838
29839         * dom/Document.cpp:
29840         (WebCore::Document::addMessage):
29841         * dom/Document.h:
29842         (Document):
29843             Add a 'requestIdentifier' parameter (defaulting to 0), and pipe it
29844             through to Console::addMessage.
29845         * dom/ScriptExecutionContext.cpp:
29846         (WebCore::ScriptExecutionContext::addConsoleMessage):
29847         * dom/ScriptExecutionContext.h:
29848         (ScriptExecutionContext):
29849             Add a 'requestIdentifier' parameter (defaulting to 0), and pipe it
29850             through to the subclass' addMessage method.
29851         * inspector/ConsoleMessage.cpp:
29852         (WebCore::ConsoleMessage::ConsoleMessage):
29853             Accept an unsigned long instead of a string, and move the conversion
29854             from WebCore request identifiers to Inspector request identifiers
29855             into ConsoleMessage.
29856         * inspector/ConsoleMessage.h:
29857         (ConsoleMessage):
29858             Add 'requestIdentifier' (defaulting to 0) to the
29859             ConsoleMessage constructor that accepts a ScriptCallStack (it was
29860             already part of the constructor that accepted a line number).
29861         * inspector/IdentifiersFactory.cpp:
29862         (WebCore::IdentifiersFactory::requestId):
29863             If the provided request identifier is 0, return an empty string.
29864             This simplifies the logic at the callsite.
29865         * inspector/InspectorConsoleAgent.cpp:
29866         (WebCore::InspectorConsoleAgent::addMessageToConsole):
29867             Add a 'requestIdentifier' parameter (defaulting to 0), and pipe it
29868             through to the 'ConsoleMessage' constructor after converting it to
29869             an internal identifier via 'IdentifiersFactor::requestId'.
29870         (WebCore::InspectorConsoleAgent::didFinishXHRLoading):
29871         (WebCore::InspectorConsoleAgent::didReceiveResponse):
29872         (WebCore::InspectorConsoleAgent::didFailLoading):
29873             Use the new 'requestIdentifier' parameter on addMessageToConsole
29874             rather than replicating the behavior in each of these three methods.
29875         * inspector/InspectorConsoleAgent.h:
29876         (InspectorConsoleAgent):
29877             Add a 'requestIdentifier' parameter (defaulting to 0).
29878         * inspector/InspectorConsoleInstrumentation.h:
29879         (WebCore::InspectorInstrumentation::addMessageToConsole):
29880         * inspector/InspectorInstrumentation.cpp:
29881         (WebCore):
29882         (WebCore::InspectorInstrumentation::addMessageToConsoleImpl):
29883         * inspector/InspectorInstrumentation.h:
29884         (InspectorInstrumentation):
29885             Add a 'requestIdentifier' parameter (defaulting to 0), and pipe it
29886             through to lower levels of the stack.
29887         * page/Console.cpp:
29888         (WebCore::Console::addMessage):
29889         * page/Console.h:
29890         (Console):
29891             Add a 'requestIdentifier' parameter (defaulting to 0), and pipe it
29892             through to 'InspectorInstrumentation::addMessageToConsole'.
29893         * workers/WorkerContext.cpp:
29894         (WebCore::WorkerContext::addMessage):
29895         (WebCore::WorkerContext::addMessageToWorkerConsole):
29896         * workers/WorkerContext.h:
29897         (WorkerContext):
29898             Add a 'requestIdentifier' parameter (defaulting to 0), and pipe it
29899             through to 'InspectorInstrumentation::addMessageToConsole'.
29900
29901 2012-10-29  Anders Carlsson  <andersca@apple.com>
29902
29903         String::createCFString should return a RetainPtr
29904         https://bugs.webkit.org/show_bug.cgi?id=100419
29905
29906         Reviewed by Andreas Kling.
29907
29908         Update callers of String::createCFString.
29909
29910         * bridge/objc/objc_runtime.mm:
29911         (JSC::Bindings::callObjCFallbackObject):
29912         * html/HTMLMediaElement.cpp:
29913         (WebCore::createFileURLForApplicationCacheResource):
29914         * loader/archive/cf/LegacyWebArchive.cpp:
29915         (WebCore::LegacyWebArchive::createPropertyListRepresentation):
29916         * platform/LocalizedStrings.cpp:
29917         (WebCore::formatLocalizedString):
29918         (WebCore::contextMenuItemTagLookUpInDictionary):
29919         (WebCore::keygenKeychainItemName):
29920         (WebCore::imageTitle):
29921         * platform/RuntimeApplicationChecks.cpp:
29922         (WebCore::mainBundleIsEqualTo):
29923         * platform/cf/FileSystemCF.cpp:
29924         (WebCore::fileSystemRepresentation):
29925         (WebCore::pathAsURL):
29926         * platform/graphics/ca/win/PlatformCAAnimationWin.cpp:
29927         (PlatformCAAnimation::PlatformCAAnimation):
29928         * platform/graphics/ca/win/PlatformCALayerWin.cpp:
29929         (resubmitAllAnimations):
29930         (PlatformCALayer::addAnimationForKey):
29931         (PlatformCALayer::removeAnimationForKey):
29932         (PlatformCALayer::setName):
29933         * platform/graphics/ca/win/PlatformCALayerWinInternal.cpp:
29934         (PlatformCALayerWinInternal::updateTiles):
29935         * platform/graphics/cg/ImageBufferCG.cpp:
29936         (WebCore::utiFromMIMEType):
29937         * platform/graphics/cg/ImageSourceCGMac.mm:
29938         (WebCore::MIMETypeForImageSourceType):
29939         (WebCore::preferredExtensionForImageSourceType):
29940         * platform/mac/ClipboardMac.mm:
29941         (WebCore::cocoaTypeFromHTMLClipboardType):
29942         (WebCore::utiTypeFromCocoaType):
29943         * platform/mac/SSLKeyGeneratorMac.cpp:
29944         (WebCore::signedPublicKeyAndChallengeString):
29945         * platform/network/cf/AuthenticationCF.cpp:
29946         (WebCore::createCF):
29947         * platform/network/cf/CookieJarCFNet.cpp:
29948         (WebCore::setCookies):
29949         * platform/network/cf/DNSCFNet.cpp:
29950         (WebCore::DNSResolveQueue::platformResolve):
29951         * platform/network/cf/ResourceErrorCF.cpp:
29952         (WebCore::ResourceError::cfError):
29953         * platform/network/cf/ResourceHandleCFNet.cpp:
29954         (WebCore::setDefaultMIMEType):
29955         (WebCore::willSendRequest):
29956         (WebCore::ResourceHandle::didReceiveAuthenticationChallenge):
29957         (WebCore::ResourceHandle::setPrivateBrowsingEnabled):
29958         * platform/network/cf/ResourceRequestCFNet.cpp:
29959         (WebCore::setHeaderFields):
29960         (WebCore::ResourceRequest::doUpdatePlatformRequest):
29961         * platform/network/cf/ResourceResponseCFNet.cpp:
29962         (WebCore::ResourceResponse::cfURLResponse):
29963         * platform/network/cf/SocketStreamHandleCFNet.cpp:
29964         (WebCore::SocketStreamHandle::createStreams):
29965         (WebCore::SocketStreamHandle::addCONNECTCredentials):
29966         (WebCore::SocketStreamHandle::copyCFStreamDescription):
29967         * platform/network/mac/ResourceRequestMac.mm:
29968         (WebCore::ResourceRequest::doUpdatePlatformRequest):
29969         * platform/network/mac/WebCoreURLResponse.mm:
29970         (WebCore::adjustMIMETypeIfNecessary):
29971         * platform/text/cf/HyphenationCF.cpp:
29972         (WebCore::::createValueForKey):
29973         * platform/text/cf/StringCF.cpp:
29974         (WTF::String::createCFString):
29975         * platform/text/cf/StringImplCF.cpp:
29976         (WTF::StringImpl::createCFString):
29977         * platform/text/mac/StringImplMac.mm:
29978         (WTF::StringImpl::operator NSString *):
29979         * platform/text/mac/TextCodecMac.cpp:
29980         (WebCore::TextCodecMac::encode):
29981         * platform/win/SearchPopupMenuWin.cpp:
29982         (WebCore::autosaveKey):
29983         (WebCore::SearchPopupMenuWin::saveRecentSearches):
29984
29985 2012-10-30  Chris Fleizach  <cfleizach@apple.com>
29986
29987         AX: Support embedded SVG objects in AX tree
29988         https://bugs.webkit.org/show_bug.cgi?id=97571
29989
29990         Reviewed by Tim Horton.
29991
29992         This patch allows an SVG image from another resource to be hooked into the AX
29993         hierarchy. This is done by creating an AX wrapper for the root SVG that holds onto
29994         its native parent image. The SVGChromeClient is then used to connect to this SVG resource.
29995
29996         Test: accessibility/svg-remote-element.html
29997
29998         * CMakeLists.txt:
29999         * GNUmakefile.list.am:
30000         * WebCore.gypi:
30001         * WebCore.vcproj/WebCore.vcproj:
30002         * WebCore.xcodeproj/project.pbxproj:
30003         * accessibility/AXObjectCache.cpp:
30004         (WebCore::createFromRenderer):
30005         * accessibility/AccessibilityAllInOne.cpp:
30006         * accessibility/AccessibilityObject.h:
30007         (WebCore::AccessibilityObject::isAccessibilitySVGRoot):
30008         (AccessibilityObject):
30009         * accessibility/AccessibilityRenderObject.cpp:
30010         (WebCore::AccessibilityRenderObject::detach):
30011         (WebCore::AccessibilityRenderObject::offsetBoundingBoxForRemoteSVGElement):
30012         (WebCore::AccessibilityRenderObject::boundingBoxRect):
30013         (WebCore::AccessibilityRenderObject::remoteSVGElementHitTest):
30014         (WebCore::AccessibilityRenderObject::elementAccessibilityHitTest):
30015         (WebCore::AccessibilityRenderObject::determineAccessibilityRole):
30016         (WebCore::AccessibilityRenderObject::isSVGImage):
30017         (WebCore::AccessibilityRenderObject::detachRemoteSVGRoot):
30018         (WebCore::AccessibilityRenderObject::remoteSVGRootElement):
30019         (WebCore::AccessibilityRenderObject::addRemoteSVGChildren):
30020         (WebCore::AccessibilityRenderObject::addChildren):
30021         * accessibility/AccessibilityRenderObject.h:
30022         (AccessibilityRenderObject):
30023         * accessibility/AccessibilitySVGRoot.cpp: Added.
30024         (WebCore::AccessibilitySVGRoot::AccessibilitySVGRoot):
30025         (WebCore::AccessibilitySVGRoot::~AccessibilitySVGRoot):
30026         (WebCore::AccessibilitySVGRoot::create):
30027         (WebCore::AccessibilitySVGRoot::parentObject):
30028         * accessibility/AccessibilitySVGRoot.h: Added.
30029         (AccessibilitySVGRoot): Class provides ability to wrap the SVG root of a remote accessibility element.
30030         (WebCore::AccessibilitySVGRoot::setParent):
30031         (WebCore::AccessibilitySVGRoot::isAccessibilitySVGRoot):
30032         (WebCore::toAccessibilitySVGRoot):
30033         * accessibility/mac/WebAccessibilityObjectWrapper.mm:
30034         (-[WebAccessibilityObjectWrapper position]): The position of AX elements within a remote SVG element needs to be handled 
30035         in a special manner.
30036         (createAccessibilityRoleMap):
30037         * loader/EmptyClients.h:
30038         (EmptyChromeClient): Expose isEmptyChromeClient() so Accessibility will know when to apply different policies for finding
30039         the accessibility bounding rect of elements.
30040         (WebCore::EmptyChromeClient::isEmptyChromeClient):
30041         * page/ChromeClient.h:
30042         (WebCore::ChromeClient::isEmptyChromeClient):
30043         (ChromeClient):
30044         * svg/graphics/SVGImage.cpp:
30045         * svg/graphics/SVGImageChromeClient.h: Added.
30046         (SVGImageChromeClient): Expose the SVGImageChromeClient so that Accessibility can reference its image.
30047         (WebCore::SVGImageChromeClient::SVGImageChromeClient):
30048         (WebCore::SVGImageChromeClient::isSVGImageChromeClient):
30049         (WebCore::SVGImageChromeClient::image):
30050         (WebCore::SVGImageChromeClient::chromeDestroyed):
30051         (WebCore::SVGImageChromeClient::invalidateContentsAndRootView):
30052         (WebCore::toSVGImageChromeClient):
30053
30054 2012-10-30  Dan Carney  <dcarney@google.com>
30055
30056         add 7 bit strings capabilities to the v8 binding layer
30057         https://bugs.webkit.org/show_bug.cgi?id=91850
30058
30059         Reviewed by Adam Barth.
30060
30061         This change enables the v8 binding layer to make use of webkit's
30062         8 bit string capabilities. Using 8 bit strings leads to certain
30063         benchmark performance improvemnts as can be seen in
30064         https://bug-91850-attachments.webkit.org/attachment.cgi?id=163334.
30065
30066         No new tests. Test coverage already extensive.
30067
30068         * bindings/v8/V8PerIsolateData.cpp:
30069         (WebCore::V8PerIsolateData::visitExternalStrings):
30070         * bindings/v8/V8StringResource.cpp:
30071         (StringTraits):
30072         (WebCore::false):
30073         (WebCore):
30074         (WebCore::true):
30075         (WebCore::v8StringToWebCoreString):
30076         * bindings/v8/V8ValueCache.cpp:
30077         (WebCore::makeExternalString):
30078         (WebCore::WebCoreStringResourceBase::visitStrings):
30079         * bindings/v8/V8ValueCache.h:
30080         (WebCore::WebCoreStringResourceBase::WebCoreStringResourceBase):
30081         (WebCore::WebCoreStringResourceBase::~WebCoreStringResourceBase):
30082         (WebCore::WebCoreStringResourceBase::atomicString):
30083         (WebCoreStringResourceBase):
30084         (WebCore::WebCoreStringResourceBase::memoryConsumption):
30085
30086 2012-10-30  Christophe Dumez  <christophe.dumez@intel.com>
30087
30088         [AC] Fix compilation warnings when enabling Accelerated Compositing
30089         https://bugs.webkit.org/show_bug.cgi?id=100741
30090
30091         Reviewed by Kenneth Rohde Christiansen.
30092
30093         Fix a few compilation warnings when building EFL port
30094         with accelerated compositing enabled.
30095
30096         No new tests, no behavior change.
30097
30098         * platform/graphics/surfaces/qt/GraphicsSurfaceGLX.cpp:
30099         (WebCore::GraphicsSurfacePrivate::GraphicsSurfacePrivate):
30100         (WebCore::resolveGLMethods):
30101         (WebCore::GraphicsSurface::platformCopyToGLTexture):
30102         (WebCore::GraphicsSurface::platformLock):
30103         * platform/graphics/texmap/TextureMapperGL.cpp:
30104         (WebCore::BitmapTextureGL::updateContents):
30105
30106 2012-10-30  No'am Rosenthal  <noam.rosenthal@nokia.com>
30107
30108         [Qt] Animations jump when the page is suspended
30109         https://bugs.webkit.org/show_bug.cgi?id=100673
30110
30111         Reviewed by Kenneth Rohde Christiansen.
30112
30113         GraphicsLayerAnimations::pause() should accept time from start and not an offset.
30114
30115         We need to support the "freeze" API before this can be reliably tested.
30116         See https://bugs.webkit.org/show_bug.cgi?id=100703.
30117
30118         * platform/graphics/GraphicsLayerAnimation.cpp:
30119         (WebCore::GraphicsLayerAnimation::pause):
30120
30121 2012-10-30  Kondapally Kalyan  <kalyan.kondapally@intel.com>
30122
30123         [Qt][EFL][AC] While Using WebGL, MiniBrowser segfaults on Refreshing the page.
30124         https://bugs.webkit.org/show_bug.cgi?id=100639.
30125
30126         Reviewed by Kenneth Rohde Christiansen.
30127
30128         TextureMapperSurfaceBackingStore can import textures from a GraphicSurface.
30129         In such cases GraphicsSurfaceGLX creates an XPixmap to read texture content
30130         from a given WindowId, but doesn't create any new window.
30131         However, OffScreenRootWindow always tries to unmap window (in its destructor) resulting in segfault.
30132         With this patch OffScreenRootWindow would check for a valid window before trying to unmap it.
30133
30134         * platform/graphics/surfaces/qt/GraphicsSurfaceGLX.cpp:
30135         (WebCore::OffScreenRootWindow::~OffScreenRootWindow):
30136
30137 2012-10-30  Emil A Eklund  <eae@chromium.org>
30138
30139         [subixel] Change LineWidth::shrinkAvailableWidthForNewFloatIfNeeded to not pixel snap
30140         https://bugs.webkit.org/show_bug.cgi?id=100742
30141
30142         Reviewed by Levi Weintraub.
30143
30144         As we no longer pixel snap values when computing the current width for a
30145         line we should not do it in shrinkAvailableWidthForNewFloatIfNeeded
30146         either.
30147
30148         Test: fast/sub-pixel/float-wrap-zoom.html
30149
30150         * rendering/RenderBlockLineLayout.cpp:
30151         (WebCore::LineWidth::LineWidth): Remove unnecessary ifdef.
30152         (WebCore::LineWidth::shrinkAvailableWidthForNewFloatIfNeeded): Use float values instead of pixel snapped/floored values as the line width calculations uses floats.
30153
30154 2012-10-30  Max Vujovic  <mvujovic@adobe.com>
30155
30156         [CSS Shaders] Reject vertex shaders with custom attributes
30157         https://bugs.webkit.org/show_bug.cgi?id=98973
30158
30159         Reviewed by Dean Jackson.
30160
30161         Improved CSS Custom Filters shader validation. With this patch:
30162         (1) Shaders with custom attributes do not execute (e.g. attribute float my_attribute;).
30163         (2) Shaders with a_triangleCoord defined do not execute with an attached mesh.
30164
30165         Most of the changes are from renaming CustomFilterOperation::MeshType to
30166         CustomFilterMeshType, and moving the enumeration to CustomFilterConstants.h. This avoids
30167         pulling in CustomFilterOperation for classes that only care about the mesh type.
30168
30169         Note that in CSS Custom Filters, the a_triangleCoord attribute is only available in detached
30170         meshes. In detached meshes, no vertices are shared between triangles. Thus, each vertex
30171         belongs to a specific triangle, which a_triangleCoord identifies. In attached meshes,
30172         vertices can belong to many triangles, which a_triangleCoord cannot identify because it's
30173         only a vec3.
30174
30175         Tests:
30176         Add two new checks to the test file:
30177             css3/filters/custom/invalid-custom-filter-attribute-types.html
30178         Add two new shaders:
30179             css3/filters/resources/invalid-custom-attribute.vs
30180             css3/filters/resources/invalid-a-triangle-coord-with-attached-mesh.vs
30181
30182         * WebCore.xcodeproj/project.pbxproj:
30183             Update a broken reference to CustomFilterConstants.h in the Xcode project file.
30184         * css/CSSComputedStyleDeclaration.cpp:
30185         (WebCore::CSSComputedStyleDeclaration::valueForFilter):
30186             Replace CustomFilterOperation::MeshType with CustomFilterMeshType.
30187         * css/StyleResolver.cpp:
30188         (WebCore::StyleResolver::createCustomFilterOperation): Ditto.
30189         * platform/graphics/filters/CustomFilterConstants.h:
30190             Add CustomFilterMeshType enum to share across the Custom Filters codebase, so that we
30191             don't have to include CustomFilterOperation just to access the old
30192             CustomFilterOperation::MeshType enum.
30193         * platform/graphics/filters/CustomFilterMesh.cpp:
30194         (WebCore::CustomFilterMesh::CustomFilterMesh):
30195             Replace CustomFilterOperation::MeshType with CustomFilterMeshType.
30196         * platform/graphics/filters/CustomFilterMesh.h:
30197         (WebCore::CustomFilterMesh::create): Ditto.
30198         (WebCore::CustomFilterMesh::meshType): Ditto.
30199         (CustomFilterMesh): Ditto.
30200         * platform/graphics/filters/CustomFilterMeshGenerator.cpp: Ditto.
30201         (WebCore::CustomFilterMeshGenerator::CustomFilterMeshGenerator): Ditto.
30202         (WebCore::CustomFilterMeshGenerator::dumpBuffers): Ditto.
30203         * platform/graphics/filters/CustomFilterMeshGenerator.h:
30204         (CustomFilterMeshGenerator): Ditto.
30205         (WebCore::CustomFilterMeshGenerator::floatsPerVertex): Ditto.
30206         (WebCore::CustomFilterMeshGenerator::verticesCount): Ditto.
30207         * platform/graphics/filters/CustomFilterOperation.cpp: 
30208         (WebCore::CustomFilterOperation::CustomFilterOperation): Ditto.
30209         * platform/graphics/filters/CustomFilterOperation.h:
30210         (WebCore::CustomFilterOperation::create): Ditto.
30211         (WebCore::CustomFilterOperation::meshType): Ditto.
30212         (CustomFilterOperation): Ditto.
30213         * platform/graphics/filters/CustomFilterProgram.cpp:
30214         (WebCore::CustomFilterProgram::CustomFilterProgram):
30215             Add a meshType constructor parameter because the program now needs to know the meshType
30216             to properly validate.
30217         (WebCore::CustomFilterProgram::programInfo):
30218             Pass meshType to CustomFilterProgram constructor.
30219         (WebCore::CustomFilterProgram::operator==):
30220             Check the meshType in the equals operator.
30221         * platform/graphics/filters/CustomFilterProgram.h:
30222             Make vertexShaderString() and fragmentShaderString() public so that we don't have to ask
30223             for a programInfo object just to get the shader strings in
30224             CoordinatedGraphicsArgumentCoders.cpp.
30225         * platform/graphics/filters/CustomFilterProgramInfo.cpp:
30226         (WebCore::CustomFilterProgramInfo::CustomFilterProgramInfo):
30227             Add a meshType constructor parameter.       
30228         (WebCore::CustomFilterProgramInfo::hash):
30229             Include the meshType in the validated program hash, since the same shader code can pass
30230             or fail validation based on the meshType.
30231         (WebCore::CustomFilterProgramInfo::operator==):
30232             Check the meshType in the equals operator.
30233         * platform/graphics/filters/CustomFilterProgramInfo.h:
30234         (CustomFilterProgramInfo):
30235             Update method prototype.
30236         (WebCore::CustomFilterProgramInfo::meshType):
30237             Add meshType getter.
30238         * platform/graphics/filters/CustomFilterValidatedProgram.cpp:
30239         (WebCore::CustomFilterValidatedProgram::validateSymbols):
30240             If the author defines attribute that is is not found in the built-in attribute map,
30241             reject the shader.
30242             If the author defines a_triangleCoord without a detached mesh type, reject the shader.
30243             Also, make this previously file-static function into a method of
30244             CustomFilterValidatedProgram because it now needs to access the m_meshType.
30245         * platform/graphics/filters/CustomFilterValidatedProgram.h:
30246         (CustomFilterValidatedProgram):
30247             Add a meshType constructor parameter because the program now needs to know the meshType
30248             to properly validate.
30249         * platform/graphics/filters/FECustomFilter.cpp:
30250         (WebCore::FECustomFilter::FECustomFilter):
30251             Replace CustomFilterOperation::MeshType with CustomFilterMeshType.
30252         (WebCore::FECustomFilter::create): Ditto.
30253         (WebCore::FECustomFilter::bindProgramAndBuffers): Ditto.
30254         (WebCore::FECustomFilter::unbindVertexAttributes): Ditto.
30255         * platform/graphics/filters/FECustomFilter.h:
30256         (FECustomFilter): Ditto.
30257         * rendering/style/StyleCustomFilterProgram.h:
30258         (WebCore::StyleCustomFilterProgram::create):
30259             Add a meshType constructor parameter.
30260         (WebCore::StyleCustomFilterProgram::StyleCustomFilterProgram): Ditto.
30261
30262 2012-10-30  Andrey Lushnikov  <lushnikov@google.com>
30263
30264         Web Inspector: adds isOwnProperty to remote protocol
30265         https://bugs.webkit.org/show_bug.cgi?id=100664
30266
30267         Reviewed by Pavel Feldman.
30268
30269         Test: inspector/runtime/runtime-getProperties-isOwnProperty.html
30270
30271         Adds requested 'isOwn' property to the 'PropertyDescriptor' class of the
30272         remote debugging protocol. 
30273
30274         * inspector/InjectedScriptSource.js:
30275         (.):
30276         * inspector/Inspector.json:
30277
30278 2012-10-30  Zeno Albisser  <zeno@webkit.org>
30279
30280         [Qt][Win] BitmapTextureGL::updateContents() broken after r132019.
30281         https://bugs.webkit.org/show_bug.cgi?id=100680
30282
30283         When creating a temporary for swizzling the image data,
30284         the temporary will have the target size.
30285         Therefore no offset within the available image data
30286         shall be applied in this case.
30287
30288         Reviewed by Noam Rosenthal.
30289
30290         * platform/graphics/texmap/TextureMapperGL.cpp:
30291         (WebCore::BitmapTextureGL::updateContents):
30292
30293 2012-10-30  Kent Tamura  <tkent@chromium.org>
30294
30295         Remove unused code for old input[type=date] UI
30296         https://bugs.webkit.org/show_bug.cgi?id=100734
30297
30298         Reviewed by Hajime Morita.
30299
30300         The old input[type=date] UI used in Google Chrome 20-23 (text field with
30301         a fixed placeholder) was replaced with ENABLE_INPUT_MULTIPLE_FIELDS_UI.
30302
30303         No new tests because of no behavior changes.
30304
30305         * html/DateInputType.cpp: Remove ENABLE_INPUT_TYPE_DATE_LEGACY_UI code path.
30306         * html/DateInputType.h: Ditto.
30307
30308         * html/HTMLInputElement.cpp:
30309         (WebCore::HTMLInputElement::supportsPlaceholder):
30310         Remove fixed-placeholder feature.
30311         * html/HTMLInputElement.h:
30312         (HTMLInputElement): Ditto.
30313         * html/HTMLTextFormControlElement.h:
30314         (HTMLTextFormControlElement): isPlaceholderEmpty() is not needed to be virtual
30315         * html/InputType.cpp: Remove fixed-placeholder feature.
30316         * html/InputType.h: Ditto.
30317         * html/TextFieldInputType.cpp:
30318         (WebCore::TextFieldInputType::updatePlaceholderText): Ditto.
30319
30320         * platform/text/PlatformLocale.h:
30321         (Locale): Remove dateFormatText.
30322         * platform/text/LocaleICU.cpp: Ditto.
30323         * platform/text/LocaleICU.h: Ditto.
30324         * platform/text/LocaleNone.cpp: Ditto.
30325         * platform/text/mac/LocaleMac.h: Ditto.
30326         * platform/text/mac/LocaleMac.mm: Ditto.
30327         * platform/text/win/LocaleWin.cpp: Ditto.
30328         * platform/text/win/LocaleWin.h: Ditto.
30329         * platform/LocalizedStrings.h:
30330         (WebCore): Remove unused functions; calendarTodayText,
30331         calendarClearText, dateFormatYearText, dateFormatMonthText,
30332         dateFormatDayInMonthText
30333
30334 2012-10-30  Kent Tamura  <tkent@chromium.org>
30335
30336         Fix crash by calendar picker or suggestion picker
30337         https://bugs.webkit.org/show_bug.cgi?id=100728
30338
30339         Reviewed by Hajime Morita.
30340
30341         Change DateTimeChooser so that it is ref-coutned.
30342
30343         Test: platform/chromium/fast/forms/calendar-picker/calendar-picker-type-change-onchange.html
30344
30345         * platform/DateTimeChooser.h: Made DateTimeChooser RefCounted.
30346         * page/ChromeClient.h:
30347         (ChromeClient): openDateTimeChooser should return PassRefPtr<DateTimeChooser>.
30348         * loader/EmptyClients.h:
30349         (EmptyChromeClient): Follow the above change.
30350         * loader/EmptyClients.cpp:
30351         (WebCore::EmptyChromeClient::openDateTimeChooser): Ditto.
30352
30353         * html/shadow/PickerIndicatorElement.h:
30354         (PickerIndicatorElement): Hold DateTimeChooser in RefPtr<DateTimeChooser>.
30355         * html/shadow/PickerIndicatorElement.cpp:
30356         (WebCore::PickerIndicatorElement::PickerIndicatorElement):
30357         Remove unnecessary initialization.
30358
30359 2012-10-30  Eugene Klyuchnikov  <eustas.bug@gmail.com>
30360
30361         Web Inspector: Timeline: promote "cpu activity" out of experiment
30362         https://bugs.webkit.org/show_bug.cgi?id=100726
30363
30364         Reviewed by Pavel Feldman.
30365
30366         1. CPU actibity bars redesigned
30367         2. Experiment setting removed
30368         3. Feature setting added
30369
30370         * English.lproj/localizedStrings.js: Updated setting label.
30371         * inspector/front-end/Settings.js: Replaced experiment with setting.
30372         * inspector/front-end/SettingsScreen.js: Added new setting.
30373         * inspector/front-end/TimelinePanel.js: Update cpu bars appearance.
30374         * inspector/front-end/timelinePanel.css: Ditto.
30375
30376 2012-10-30  Michelangelo De Simone  <michelangelo@webkit.org>
30377
30378         [CSS Shaders] Change the default compositing mode and the default CSS value for <fragmentShader>
30379         https://bugs.webkit.org/show_bug.cgi?id=94020
30380
30381         Reviewed by Dean Jackson.
30382
30383         The default compositing mode has been changed from "normal source-over" to
30384         "normal source-atop". This applies to the default fragment shader that will
30385         kick in when there is no explicit fragment shader or mix function defined.
30386
30387         This has required to update all the existing tests; the dummy empty fragment
30388         shader has also been removed because not needed.
30389
30390         * css/CSSComputedStyleDeclaration.cpp:
30391         (WebCore::CSSComputedStyleDeclaration::valueForFilter): An existence check
30392         for the fragment shader has been added.
30393         * css/StyleResolver.cpp:
30394         (WebCore::StyleResolver::createCustomFilterOperation): The default program
30395         has been updated: PROGRAM_TYPE_BLENDS_TEXTURE (compositing enabled) now is
30396         the default.
30397         * platform/graphics/filters/CustomFilterProgramInfo.h:
30398         (WebCore::CustomFilterProgramMixSettings::CustomFilterProgramMixSettings):
30399         New CustomFilterProgramMixSettings defaults to "source-atop" composite
30400         operator.
30401
30402 2012-10-30  Ádám Kallai  <kadam@inf.u-szeged.hu>
30403
30404         [Qt][Mac] Unreviewed build fix.
30405         https://bugs.webkit.org/show_bug.cgi?id=100727.
30406
30407         Speculative build fix after 132858. Include missing CoreFoundation/CoreFoundation.h header.
30408
30409         * platform/text/cf/AtomicStringCF.cpp:
30410
30411 2012-10-30  Gabor Rapcsanyi  <rgabor@webkit.org>
30412
30413         Optimize vclip for NEON in VectorMath
30414         https://bugs.webkit.org/show_bug.cgi?id=100737
30415
30416         Reviewed by Zoltan Herczeg.
30417
30418         Speed up vclip in VectorMath with NEON intrinsics.
30419
30420         * platform/audio/VectorMath.cpp:
30421         (WebCore::VectorMath::vclip):
30422
30423 2012-10-30  Alexandru Chiculita  <achicu@adobe.com>
30424
30425         [CSS Shaders] Software and composited filters should have a common path
30426         https://bugs.webkit.org/show_bug.cgi?id=100532
30427
30428         Reviewed by Dean Jackson.
30429
30430         Added computeFilterOperations as a common method between the software filters
30431         and hardware composited ones. The method rejects custom filters that are not
30432         loaded yet. In bug 100533 it will also convert the CustomFilterOperation to a 
30433         ValidatedCustomFilterOperation. That will help us keep the loading and verification 
30434         code for the custom filters common across all the ports.
30435
30436         No new tests, just refactoring existing code.
30437
30438         * rendering/RenderLayer.cpp:
30439         (WebCore::RenderLayer::computeFilterOperations):
30440         (WebCore):
30441         (WebCore::RenderLayer::updateOrRemoveFilterEffect):
30442         * rendering/RenderLayer.h:
30443         (WebCore):
30444         (RenderLayer):
30445         * rendering/RenderLayerBacking.cpp:
30446         (WebCore::RenderLayerBacking::updateFilters):
30447
30448 2012-10-30  Alexei Filippov  <alph@chromium.org>
30449
30450         Web Inspector: Implement native memory snapshot grid view
30451         https://bugs.webkit.org/show_bug.cgi?id=100656
30452
30453         Native memory snapshots are now shown as an expandable tree form
30454         using the grid control.
30455
30456         Reviewed by Yury Semikhatsky.
30457
30458         * inspector/front-end/NativeMemorySnapshotView.js:
30459         (WebInspector.NativeMemorySnapshotView):
30460         (WebInspector.NativeSnapshotDataGrid):
30461         (WebInspector.NativeSnapshotNode):
30462         (WebInspector.NativeSnapshotNode.prototype.createCell):
30463         (WebInspector.NativeSnapshotNode.prototype._createSizeCell):
30464         (WebInspector.NativeSnapshotNode.prototype._populate):
30465         (WebInspector.MemoryBlockViewProperties._initialize):
30466         (WebInspector.MemoryBlockViewProperties._forMemoryBlock):
30467         * inspector/front-end/dataGrid.css:
30468         (.data-grid td):
30469         * inspector/front-end/nativeMemoryProfiler.css:
30470         (.memory-bar-chart-bar):
30471         (.native-snapshot-view):
30472         (.native-snapshot-view.visible):
30473         (.native-snapshot-view .data-grid):
30474         (.native-snapshot-view .data-grid table):
30475         (.native-snapshot-view .data-grid div.size-text):
30476         (.native-snapshot-view .data-grid div.size-bar):
30477         (.native-snapshot-view .data-grid div.percent-text):
30478
30479 2012-10-30  Zoltan Nyul  <zoltan.nyul@intel.com>
30480
30481         3d rotation with [0, 0, 0] direction vector should not be applied
30482         https://bugs.webkit.org/show_bug.cgi?id=100733
30483
30484         Reviewed by Levi Weintraub.
30485
30486         As stated in the specification (http://dev.w3.org/csswg/css3-3d-transforms/#transform-functions),
30487         a direction vector that cannot be normalized, such as [0, 0, 0], will cause the rotation to not be applied,
30488         but webkit applies it with [1, 0, 0] direction vector.
30489
30490         Test: transforms/3d/general/3dtransform-values.html
30491
30492         * platform/graphics/transforms/TransformationMatrix.cpp:
30493         (WebCore::TransformationMatrix::rotate3d):
30494
30495 2012-10-30  Yury Semikhatsky  <yurys@chromium.org>
30496
30497         Memory instrumentation: report actual object address for CachedResourceClients
30498         https://bugs.webkit.org/show_bug.cgi?id=100659
30499
30500         Reviewed by Alexander Pavlov.
30501
30502         Skipped pointers to objects that are not allocated on the heap directly.
30503
30504         To test this we need to compare addresses of objects traversed by the memory
30505         insrumentation with those allocated by the memory allocator. The latter set
30506         should include the former one.
30507
30508         * css/StyleResolver.cpp:
30509         (WTF): skip pointers to RuleData structures as they are stored by value in RuleSet
30510         objects and should not be reported separately.
30511         * loader/cache/CachedResource.cpp:
30512         (WTF): do not report memory occupied by CachedResourceClients as objects implementing
30513         the interface may have address which differ from CachedResourceClient*. The clients
30514         should be reachable from their instrumented owners where we know exact type of the
30515         clients and hence can figure correct address.
30516
30517 2012-10-29  Shinya Kawanaka  <shinyak@chromium.org>
30518
30519         [Refatoring] Remove ElementShadow::insertionPointFor
30520         https://bugs.webkit.org/show_bug.cgi?id=100625
30521
30522         Reviewed by Hajime Morita.
30523
30524         Now that ElementShadow::insertionPointFor does not do any special things, and it's only used in
30525         ComposedShadowTreeWalker. So we can remove it.
30526
30527         No new tests, simple refactoring.
30528
30529         * dom/ComposedShadowTreeWalker.cpp:
30530         (WebCore::resolveReprojection):
30531         (WebCore::AncestorChainWalker::parent):
30532         * dom/ElementShadow.cpp:
30533         * dom/ElementShadow.h:
30534         (ElementShadow):
30535         * dom/ShadowRoot.h: ShadowRoot has insertionPointFor declaration, but we don't have any implementation.
30536         We should remove it.
30537
30538 2012-10-29  Andy Estes  <aestes@apple.com>
30539
30540         Fix a typo that caused SVG external resources to be blocked on
30541         platforms other than Chromium.
30542
30543         * loader/cache/CachedResourceLoader.cpp:
30544         (WebCore::CachedResourceLoader::canRequest):
30545
30546 2012-10-29  Keishi Hattori  <keishi@webkit.org>
30547
30548         NSLocale leaks in LocaleMac
30549         https://bugs.webkit.org/show_bug.cgi?id=97628
30550
30551         Reviewed by Kent Tamura.
30552
30553         We need to adopt the NSLocale object so it doesn't leak and
30554         determineLocale() should return a NSLocale without additional retain.
30555
30556         No new tests.
30557
30558         * platform/text/mac/LocaleMac.mm:
30559         (WebCore::determineLocale): Returns a RetainPtr<NSLocale>.
30560         (WebCore::Locale::create):
30561         (WebCore::LocaleMac::LocaleMac): m_locale should adopt the NSLocale object.
30562         (WebCore::LocaleMac::create): LocaleMac constructor takes NSLocale without additional retain.
30563
30564 2012-10-29  Charles Wei  <charles.wei@torchmobile.com.cn>
30565
30566         [BlackBerry] Disable redirect to data scheme for potential fishing.
30567         https://bugs.webkit.org/show_bug.cgi?id=100713
30568
30569         Reviewed by George Staikos.
30570
30571         We will disable redirect to data scheme to avoid potential security concern, 
30572         described in klevjers.com/papers/phishing.pdf.
30573
30574
30575         * platform/network/blackberry/NetworkJob.cpp:
30576         (WebCore::NetworkJob::handleRedirect):
30577
30578 2012-10-29  Vincent Scheib  <scheib@chromium.org>
30579
30580         Unreviewed, rolling out r132845.
30581         http://trac.webkit.org/changeset/132845
30582         https://bugs.webkit.org/show_bug.cgi?id=99975
30583
30584         Broke chromium builds, linker errors from
30585         IDBBindingUtilitiesTest
30586
30587         * Modules/indexeddb/IDBRequest.cpp:
30588         (WebCore::IDBRequest::IDBRequest):
30589         (WebCore::IDBRequest::onSuccess):
30590         (WebCore::IDBRequest::dispatchEvent):
30591         * Modules/indexeddb/IDBRequest.h:
30592         (IDBRequest):
30593         * bindings/v8/IDBBindingUtilities.cpp:
30594         (WebCore::createIDBKeyFromScriptValueAndKeyPath):
30595         (WebCore):
30596         (WebCore::deserializeIDBValue):
30597         (WebCore::injectIDBKeyIntoScriptValue):
30598         (WebCore::idbKeyToScriptValue):
30599         * bindings/v8/V8PerIsolateData.cpp:
30600         (WebCore::V8PerIsolateData::ensureAuxiliaryContext):
30601         (WebCore):
30602         * bindings/v8/V8PerIsolateData.h:
30603         (V8PerIsolateData):
30604
30605 2012-10-29  Anders Carlsson  <andersca@apple.com>
30606
30607         Fix Windows build.
30608
30609         * platform/network/cf/ResourceRequestCFNet.cpp:
30610         (WebCore::setHeaderFields):
30611
30612 2012-10-28  Mark Rowe  <mrowe@apple.com>
30613
30614         Simplify Xcode configuration settings that used to vary between OS versions.
30615
30616         Reviewed by Dan Bernstein.
30617
30618         * Configurations/Base.xcconfig:
30619         * Configurations/DebugRelease.xcconfig:
30620         * Configurations/WebCore.xcconfig:
30621
30622 2012-10-28  Mark Rowe  <mrowe@apple.com>
30623
30624         Remove references to unsupported OS and Xcode versions.
30625
30626         Reviewed by Anders Carlsson.
30627
30628         * Configurations/Base.xcconfig:
30629         * Configurations/CompilerVersion.xcconfig: Removed.
30630         * Configurations/DebugRelease.xcconfig:
30631         * Configurations/Version.xcconfig:
30632         * Configurations/WebCore.xcconfig:
30633         * DerivedSources.make:
30634         * WebCore.xcodeproj/project.pbxproj:
30635
30636 2012-10-29  Anders Carlsson  <andersca@apple.com>
30637
30638         AtomicString(CFStringRef) shouldn't unconditionally create a StringImpl
30639         https://bugs.webkit.org/show_bug.cgi?id=100701
30640
30641         Reviewed by Dan Bernstein.
30642
30643         * WebCore.exp.in:
30644         Export AtomicString::add(CFStringRef).
30645
30646         * Target.pri:
30647         * WebCore.gypi:
30648         * WebCore.vcproj/WebCore.vcproj:
30649         * WebCore.xcodeproj/project.pbxproj:
30650         Add AtomicStringCF.cpp 
30651
30652         * platform/text/cf/AtomicStringCF.cpp: Added.
30653         (WTF::AtomicString::add):
30654         When trying to add the atomic string to the table, first try to get a Latin-1 pointer
30655         from the string. Second, try to get a Unicode pointer from the string.
30656         If that also fails, copy the string to a temporary unicode buffer and add it from there.
30657
30658         * platform/text/cf/HyphenationCF.cpp:
30659         (WebCore::::createValueForKey):
30660         Update for AtomicString::createCFString being removed.
30661
30662 2012-10-25  Stephen Chenney  <schenney@chromium.org>
30663
30664         feImage should not be allowed to self reference
30665         https://bugs.webkit.org/show_bug.cgi?id=94652
30666
30667         Reviewed by Eric Seidel.
30668
30669         Add cycle detection for SVG filter application, and also fix a problem
30670         with graphics context restore when filters are applied. This also
30671         converts the flags in FilterData to a state tracking system, as the
30672         number of flags was getting messy and only one flag is valid at any given time.
30673
30674         Test: svg/filters/feImage-self-and-other-referencing.html
30675
30676         * rendering/svg/RenderSVGResourceFilter.cpp: Convert to new FilterData
30677         state management and enable cycle detection.
30678         (WebCore):
30679         (WebCore::RenderSVGResourceFilter::removeClientFromCache): Change isBuilt and markedForRemoval flags to state enums.
30680         (WebCore::RenderSVGResourceFilter::applyResource): Change flags to state enums and detect cycles.
30681         (WebCore::RenderSVGResourceFilter::postApplyResource): Change flags to state and add handling
30682         for the various states.
30683         (WebCore::RenderSVGResourceFilter::primitiveAttributeChanged): Change isBuilt flag to state enums.
30684         * rendering/svg/RenderSVGResourceFilter.h:
30685         (WebCore::FilterData::FilterData):
30686         (FilterData): Convert to a state tracking system.
30687         * rendering/svg/RenderSVGRoot.cpp:
30688         (WebCore::RenderSVGRoot::paintReplaced): Add a block around the
30689         SVGRenderingContext so that it applies the filter and reverts the
30690         context before the calling method restores the context.
30691
30692 2012-10-29  Dan Bernstein  <mitz@apple.com>
30693
30694         <rdar://problem/12592716> REGRESSION (r132545): With full-page accelerated drawing, a
30695         reproducible hang occurs at <http://www.cbsnews.com/stories/2010/01/24/ftn/main6136386.shtml>.
30696
30697         Reviewed by Anders Carlsson.
30698
30699         Work around <rdar://problem/12584492> by limiting the scope of the fix for <http://webkit.org/b/100413>.
30700
30701         * platform/graphics/cg/GraphicsContextCG.cpp:
30702         (WebCore::GraphicsContext::clipOut): Reverted to using CGContextGetClipBoundingBox() rather
30703         than CGRectInfinite when the context is accelerated and has a transform that is not just
30704         a translation or a scale.
30705
30706 2012-10-29  Rob Buis  <rbuis@rim.com>
30707
30708         [BlackBerry] Simplify AuthenticationChallengeManager::instance
30709         https://bugs.webkit.org/show_bug.cgi?id=100614
30710
30711         Reviewed by Yong Li.
30712         Internally reviewed by Lyon Chen.
30713
30714         Use a standard Singleton pattern here, this makes sure we create lazily.
30715
30716         * platform/blackberry/AuthenticationChallengeManager.cpp:
30717         (WebCore):
30718         * platform/blackberry/AuthenticationChallengeManager.h:
30719         (AuthenticationChallengeManager):
30720
30721 2012-10-29  Adam Barth  <abarth@webkit.org>
30722
30723         Block SVG external references pending a security review
30724         https://bugs.webkit.org/show_bug.cgi?id=100635
30725
30726         Reviewed by Eric Seidel.
30727
30728         We need to do a security review of loading external SVG references
30729         before we're sure that it is safe.
30730
30731         * css/StyleResolver.cpp:
30732         (WebCore::StyleResolver::createFilterOperations):
30733         * loader/cache/CachedResourceLoader.cpp:
30734         (WebCore::CachedResourceLoader::canRequest):
30735
30736 2012-10-29  Joshua Bell  <jsbell@chromium.org>
30737
30738         IndexedDB: Crash on checking version of corrupt backing store
30739         https://bugs.webkit.org/show_bug.cgi?id=100692
30740
30741         Reviewed by Tony Chang.
30742
30743         If the backing store fails to open (due to corruption, non-writeable disk, etc)
30744         the subsequent schema version check dereferences a null pointer. Fix to only
30745         do the schema check if the database opened.
30746
30747         Chromium tests will be included with crrev.com/11196029
30748
30749         * Modules/indexeddb/IDBLevelDBBackingStore.cpp:
30750         (WebCore::IDBLevelDBBackingStore::open):
30751
30752 2012-10-29  Philip Rogers  <pdr@google.com>
30753
30754         Let SVGElements have pending resources.
30755         https://bugs.webkit.org/show_bug.cgi?id=99694
30756
30757         Reviewed by Eric Seidel.
30758
30759         Our SVG pending resource tracking is used for handling dynamic id changes. For example,
30760         if an SVG element references an id that is not yet in the document (or has been removed),
30761         the SVG element will be 'pending' an id. When styled elements are inserted into
30762         the document, buildPendingResourcesIfNeeded() is called to force any pending elements
30763         to resolve their dependencies. Only SVGStyledElement targets can be referenced using
30764         this infrastructure, and that is not changed with this patch.
30765
30766         Previously, only SVGStyledElements could have pending resources. Some examples of where
30767         this is violated are SVGAnimateElement and SVGMPathElement which are not a styled elements
30768         but which can have pending references (they can reference styled elements and
30769         paths, respectively). This patch changes the pending resource handling to allow
30770         any SVGElement to have pending resources.
30771
30772         This patch is only a refactoring of code in preparation for WK99694 and does not
30773         affect existing functionality or tests.
30774
30775         * svg/SVGDocumentExtensions.cpp:
30776         (WebCore::SVGDocumentExtensions::addPendingResource):
30777         (WebCore::SVGDocumentExtensions::isElementPendingResources):
30778         (WebCore::SVGDocumentExtensions::isElementPendingResource):
30779         (WebCore::SVGDocumentExtensions::removeElementFromPendingResources):
30780         (WebCore::SVGDocumentExtensions::removeElementFromPendingResourcesForRemoval):
30781         * svg/SVGDocumentExtensions.h:
30782         (WebCore):
30783         (SVGDocumentExtensions):
30784         * svg/SVGElement.cpp:
30785         (WebCore::SVGElement::~SVGElement):
30786         (WebCore::SVGElement::removedFrom):
30787         (WebCore::SVGElement::hasPendingResources):
30788         (WebCore):
30789         (WebCore::SVGElement::setHasPendingResources):
30790         (WebCore::SVGElement::clearHasPendingResourcesIfPossible):
30791         * svg/SVGElement.h:
30792         (SVGElement):
30793         (WebCore::SVGElement::buildPendingResource):
30794         * svg/SVGStyledElement.cpp:
30795         (WebCore):
30796         (WebCore::SVGStyledElement::buildPendingResourcesIfNeeded):
30797         (WebCore::SVGStyledElement::removedFrom):
30798         * svg/SVGStyledElement.h:
30799         (SVGStyledElement):
30800         (WebCore::SVGStyledElement::selfHasRelativeLengths):
30801
30802 2012-10-29  Dan Carney  <dcarney@google.com>
30803
30804         Remove ensureAuxiliaryContext
30805         https://bugs.webkit.org/show_bug.cgi?id=99975
30806
30807         Reviewed by Adam Barth.
30808
30809         Removed auxilliaryContext as use if it is problematic in IDB.
30810
30811         No new tests. No change in functionality.
30812
30813         * Modules/indexeddb/IDBCursor.cpp:
30814         (WebCore::IDBCursor::update):
30815         (WebCore::IDBCursor::setValueReady):
30816         * Modules/indexeddb/IDBCursor.h:
30817         (IDBCursor):
30818         * Modules/indexeddb/IDBObjectStore.cpp:
30819         (WebCore::generateIndexKeysForValue):
30820         (WebCore::IDBObjectStore::put):
30821         (WebCore):
30822         * Modules/indexeddb/IDBRequest.cpp:
30823         (WebCore::IDBRequest::onSuccess):
30824         (WebCore::IDBRequest::dispatchEvent):
30825         * bindings/v8/IDBBindingUtilities.cpp:
30826         (WebCore::createIDBKeyFromScriptValueAndKeyPath):
30827         (WebCore::deserializeIDBValue):
30828         (WebCore::injectIDBKeyIntoScriptValue):
30829         * bindings/v8/IDBBindingUtilities.h:
30830         (WebCore):
30831         * bindings/v8/V8Binding.cpp:
30832         (WebCore::toV8Context):
30833         (WebCore):
30834         * bindings/v8/V8Binding.h:
30835         (WebCore):
30836         * bindings/v8/V8PerIsolateData.cpp:
30837         (WebCore):
30838         * bindings/v8/V8PerIsolateData.h:
30839
30840 2012-10-29  Alpha Lam  <hclam@chromium.org>
30841
30842         [skia] Handle mask box image.
30843         https://bugs.webkit.org/show_bug.cgi?id=100570
30844
30845         Reviewed by James Robinson.
30846
30847         When drawing an image with source rectangle it should intersect with image rectangle.
30848         This should be the case for drawing single image and tiling an image.
30849
30850         Test: fast/images/mask-box-image-crash.html
30851
30852         * platform/graphics/skia/ImageSkia.cpp:
30853         (WebCore::Image::drawPattern):
30854         (WebCore::BitmapImage::draw):
30855         (WebCore::BitmapImageSingleFrameSkia::draw):
30856
30857 2012-10-29  Eric Carlson  <eric.carlson@apple.com>
30858
30859         Support captions when PLUGIN_PROXY_FOR_VIDEO
30860         https://bugs.webkit.org/show_bug.cgi?id=100690
30861
30862         Reviewed by Simon Fraser.
30863
30864         When built with PLUGIN_PROXY_FOR_VIDEO, WebCore uses a plug-in for the media element's
30865         platform media engine. Update this code path so the shadow DOM elements used to display
30866         text tracks are created and configured correctly.
30867
30868         * html/HTMLMediaElement.cpp:
30869         (WebCore::HTMLMediaElement::configureMediaControls): Create media controls if necessary.
30870
30871         * rendering/RenderEmbeddedObject.cpp:
30872         (WebCore::RenderEmbeddedObject::layout): Set the position and size of the shadow DOM when the
30873             position of the embedded element changes.
30874         * rendering/RenderEmbeddedObject.h:
30875
30876 2012-10-29  Justin Novosad  <junov@google.com>
30877
30878         [Chromium] flickering observed when copying 2D canvas to webGL texture
30879         https://bugs.webkit.org/show_bug.cgi?id=100691
30880
30881         Reviewed by Stephen White.
30882
30883         Added a flush to the webgl context after texture upload from an image
30884         buffer to ensure proper graphics context synchronization with respect
30885         to subsequent changes to the source image.
30886
30887         Tests: fast/canvas/webgl/canvas-2d-webgl-texture.html
30888
30889         * platform/graphics/skia/ImageBufferSkia.cpp:
30890         (WebCore::ImageBuffer::copyToPlatformTexture):
30891
30892 2012-10-29  Glenn Adams  <glenn@skynav.com>
30893
30894         [CSSOM] Extraneous whitespace in CSSImportRule.cssText
30895         https://bugs.webkit.org/show_bug.cgi?id=100657
30896
30897         Reviewed by Simon Fraser.
30898
30899         Remove extraneous whitespace when serializing CSSImportRule.cssText when
30900         media list is empty.
30901
30902         Test: cssom/cssimportrule-media.html
30903
30904         * css/CSSImportRule.cpp:
30905         (WebCore::CSSImportRule::cssText):
30906         Don't append extra whitespace if mediaText is empty.
30907
30908 2012-10-29  Arnaud Renevier  <a.renevier@sisa.samsung.com>
30909
30910         webview not redrawn as needed when accelerated compositing is enabled.
30911         https://bugs.webkit.org/show_bug.cgi?id=99109
30912
30913         Reviewed by Martin Robinson.
30914
30915         GL shared display is not in the gtk loop and therefore, its events are
30916         not captured by gtk. So, we use gdk default instead.
30917
30918         No new tests, covered by existing tests.
30919
30920         * platform/gtk/RedirectedXCompositeWindow.cpp:
30921         (WebCore::RedirectedXCompositeWindow::RedirectedXCompositeWindow):
30922         (WebCore::RedirectedXCompositeWindow::~RedirectedXCompositeWindow):
30923         (WebCore::RedirectedXCompositeWindow::resize):
30924
30925 2012-10-29  Pavel Feldman  <pfeldman@chromium.org>
30926
30927         Web Inspector: bind redo to Ctrl+Y on non-mac platforms
30928         https://bugs.webkit.org/show_bug.cgi?id=100685
30929
30930         Reviewed by Vsevolod Vlasov.
30931
30932         * inspector/front-end/DefaultTextEditor.js:
30933         (WebInspector.DefaultTextEditor.prototype._registerShortcuts):
30934
30935 2012-10-29  Enrica Casucci  <enrica@apple.com>
30936
30937         Add ENABLE_USERSELECT_ALL feature flag.
30938         https://bugs.webkit.org/show_bug.cgi?id=100559
30939
30940         Reviewed by Eric Seidel.
30941
30942         * Configurations/FeatureDefines.xcconfig:
30943
30944 2012-10-29  Alexandru Chiculita  <achicu@adobe.com>
30945
30946         [CSS Shaders] Extract the CustomFilterParameterList to its own file
30947         https://bugs.webkit.org/show_bug.cgi?id=100548
30948
30949         Reviewed by Dean Jackson.
30950
30951         Moved all the CustomFilterParameterList related methods to their own file.
30952         Also made CustomFilterParameterList inherit from Vector instead of typedefing it,
30953         so that we can add a different operator== and a blend method to it.
30954
30955         No new tests, just refactoring existing code.
30956
30957         * CMakeLists.txt:
30958         * GNUmakefile.list.am:
30959         * Target.pri:
30960         * WebCore.gypi:
30961         * WebCore.xcodeproj/project.pbxproj:
30962         * css/StyleResolver.h:
30963         * platform/graphics/filters/CustomFilterOperation.cpp:
30964         (WebCore::CustomFilterOperation::CustomFilterOperation):
30965         (WebCore::CustomFilterOperation::blend):
30966         * platform/graphics/filters/CustomFilterOperation.h:
30967         (WebCore):
30968         (WebCore::CustomFilterOperation::operator==):
30969         * platform/graphics/filters/CustomFilterParameterList.cpp: Added.
30970         (WebCore):
30971         (WebCore::CustomFilterParameterList::operator==):
30972         (WebCore::CustomFilterParameterList::checkAlphabeticalOrder):
30973         (WebCore::CustomFilterParameterList::blend):
30974         * platform/graphics/filters/CustomFilterParameterList.h: Added.
30975         (WebCore):
30976         (CustomFilterParameterList):
30977
30978 2012-10-29  Brady Eidson  <beidson@apple.com>
30979
30980         Try to fix 32-bit builds after my incompletely tested m_identifier change.
30981
30982         Not reviewed.
30983
30984         * loader/ResourceLoader.h:
30985         (WebCore::ResourceLoader::identifier): Revert my "unsigned long" -> "uint64_t" change in two places.
30986
30987 2012-10-29  Csaba Osztrogonác  <ossy@webkit.org>
30988
30989         [Qt] Text with zero font size renders as X px sometimes, causing fast/text/zero-font-size-2.html to fail
30990         https://bugs.webkit.org/show_bug.cgi?id=100115
30991
30992         Reviewed by Noam Rosenthal.
30993
30994         * platform/graphics/qt/FontQt.cpp:
30995         (WebCore::Font::drawGlyphs):
30996
30997 2012-10-29  Huang Dongsung  <luxtella@company100.net>
30998
30999         [TexMap] Make GraphicsLayerAnimation choose a proper timing function.
31000         https://bugs.webkit.org/show_bug.cgi?id=100623
31001
31002         Reviewed by Noam Rosenthal.
31003
31004         Currently, GraphicsLayerAnimation chooses a timing function in the wrong
31005         way. Other GraphicsLayers choose a timing function in the similar way to
31006         GraphicsLayerCA::timingFunctionForAnimationValue(). The way consists of
31007         the following steps.
31008         1. Try to query the timing function of the current keyframe animation value.
31009         2. If the timing function of #1 is null, try to query the timing function of Animation.
31010         3. If the timing function of #2 is null, return CubicBezierTimingFunction::defaultTimingFunction().
31011
31012         This patch makes GraphicsLayerAnimation choose a timing function in the same way
31013         to other implementations.
31014
31015         Covered by existing animations tests.
31016
31017         * platform/graphics/GraphicsLayerAnimation.cpp:
31018         (WebCore::timingFunctionForAnimationValue):
31019         (WebCore::GraphicsLayerAnimation::apply):
31020
31021 2012-10-29  Patrick Dubroy  <dubroy@chromium.org>
31022
31023         Web Inspector: Toolbar overflow appears outside window
31024         https://bugs.webkit.org/show_bug.cgi?id=100663
31025
31026         Reviewed by Pavel Feldman.
31027
31028         Since the search bar was removed from the toolbar, the overflow menu appears too far
31029         to the right, and is unreadable. Fixed this by aligning it relative to the right side
31030         of the window, rather than the left.
31031
31032         * inspector/front-end/Toolbar.js:
31033         (WebInspector.ToolbarDropdown.prototype.show):
31034         * inspector/front-end/inspector.css:
31035         (#toolbar-dropdown .toolbar-label):
31036
31037 2012-10-29  Michelangelo De Simone  <michelangelo@webkit.org>
31038
31039         [CSS Shaders] Implement CustomFilterArrayParameter::blend
31040         https://bugs.webkit.org/show_bug.cgi?id=96437
31041
31042         Reviewed by Dean Jackson.
31043
31044         This patch adds the missing code to blend values within
31045         an array() when using Custom Filters.
31046
31047         Test: css3/filters/custom/custom-filter-array-blending.html
31048
31049         * platform/graphics/filters/CustomFilterArrayParameter.h:
31050         (WebCore::CustomFilterArrayParameter::blend):
31051
31052 2012-10-29  Alexander Pavlov  <apavlov@chromium.org>
31053
31054         Web Inspector: Drag and drop a URL in inspector is not working as expected
31055         https://bugs.webkit.org/show_bug.cgi?id=100527
31056
31057         Reviewed by Yury Semikhatsky.
31058
31059         Inhibit custom dragstart handling when the active element is A.
31060
31061         * inspector/front-end/ElementsTreeOutline.js:
31062         (WebInspector.ElementsTreeOutline.prototype._ondragstart):
31063
31064 2012-10-29  Mike West  <mkwst@chromium.org>
31065
31066         Web Inspector: Error/warning count is one pixel off.
31067         https://bugs.webkit.org/show_bug.cgi?id=100660
31068
31069         Reviewed by Pavel Feldman.
31070
31071         The error/warning count div had a top padding of 6. That was one pixel
31072         too many.
31073
31074         * inspector/front-end/inspector.css:
31075         (#error-warning-count):
31076
31077 2012-10-29  Shinya Kawanaka  <shinyak@chromium.org> 
31078
31079         [Refactoring] Use isActiveInsertionPoint() instead of isInsertionPoint()
31080         https://bugs.webkit.org/show_bug.cgi?id=100459
31081
31082         Reviewed by Hajime Morita.
31083
31084         Checking InsertionPoint and its activeness with two if-statement is error-prone. We would like to
31085         use a utility function which checks both at once.
31086
31087         We rewrite some lines with such function.
31088
31089         No new tests, simple refactoring.
31090
31091         * dom/ComposedShadowTreeWalker.cpp:
31092         (WebCore::ComposedShadowTreeWalker::traverseNode):
31093         * html/shadow/ContentDistributor.cpp:
31094         (WebCore::ContentDistributor::populate):
31095         (WebCore::ContentDistributor::distribute):
31096         (WebCore::ContentDistributor::distributeNodeChildrenTo):
31097         * html/shadow/InsertionPoint.h:
31098         (WebCore::isInsertionPoint): Since our convention is the argument of this kind of function should not be null,
31099         we would like to make it similar to the other functions.
31100         (WebCore::toInsertionPoint):
31101         (WebCore::isLowerEncapsulationBoundary):
31102
31103 2012-10-29  Patrick Dubroy  <dubroy@chromium.org>
31104
31105         Web Inspector: Fix vertical alignment in toolbar backgrounds and overflow button.
31106         https://bugs.webkit.org/show_bug.cgi?id=100373
31107
31108         Reviewed by Pavel Feldman.
31109
31110         Fix the background image for the selected toolbar item to be vertically centered.
31111         Make close button and toolbar overflow button vertically centered for any toolbar
31112         height.
31113
31114         * inspector/front-end/Toolbar.js: Remove unused variable.
31115         * inspector/front-end/inspector.css:
31116         (.toolbar-item.toggleable):
31117         (body.compact .toolbar-item.toggleable):
31118         (.toolbar-item.toggleable.toggled-on):
31119         (body.compact .toolbar-label):
31120         (#toolbar-dropdown-arrow):
31121         (#close-button-left, #close-button-right):
31122         (.toolbar-item.close-left):
31123         * inspector/front-end/inspector.html:
31124
31125 2012-10-29  Eugene Klyuchnikov  <eustas.bug@gmail.com>
31126
31127         Web Inspector: Timeline: Overview bars do not correspond to timeline bars
31128         https://bugs.webkit.org/show_bug.cgi?id=100500
31129
31130         Reviewed by Yury Semikhatsky.
31131
31132         Fix: do not shorten bars by nested records of the same category.
31133
31134         * inspector/front-end/TimelineOverviewPane.js: Check added.
31135
31136 2012-10-29  Eugene Klyuchnikov  <eustas.bug@gmail.com>
31137
31138         Web Inspector: Timeline: make cpu-monitoring feature available only on capable browsers
31139         https://bugs.webkit.org/show_bug.cgi?id=100530
31140
31141         Reviewed by Yury Semikhatsky.
31142
31143         Motivation: cpu-monitoring feature looks like a glitch,
31144         when it is not supported by browser.
31145
31146         * inspector/Inspector.json: Added capability getter to protocol.
31147         * inspector/InspectorClient.h: Added capability getter.
31148         * inspector/InspectorTimelineAgent.cpp: Proxy to request to client.
31149         * inspector/InspectorTimelineAgent.h: Added capability getter.
31150         * inspector/front-end/Settings.js: Added capability field.
31151         * inspector/front-end/TimelinePanel.js: Check capability.
31152         * inspector/front-end/inspector.js: Forward capability value.
31153
31154 2012-10-29  Antti Koivisto  <antti@apple.com>
31155
31156         Move seamless stylesheet collecting to DocumentStyleSheetCollection
31157         https://bugs.webkit.org/show_bug.cgi?id=100655
31158
31159         Reviewed by Andreas Kling.
31160
31161         Move the code from StyleResolver to DocumentStyleSheetCollection. StyleResolver should focus on resolving style.
31162
31163         * css/StyleResolver.cpp:
31164         (WebCore::StyleResolver::StyleResolver):
31165         
31166             Use standard create() pattern.
31167
31168         (WebCore):
31169         * css/StyleResolver.h:
31170         (StyleResolver):
31171         * dom/Document.cpp:
31172         (WebCore::Document::Document):
31173         * dom/DocumentStyleSheetCollection.cpp:
31174         (WebCore::collectActiveCSSStyleSheetsFromSeamlessParents):
31175         
31176             Since parent activeAuthorStyleSheets() contains all seamlessly inherited sheets too, this does not need to
31177             iterate to ancestors anymore.
31178
31179         (WebCore):
31180         (WebCore::DocumentStyleSheetCollection::updateActiveStyleSheets):
31181         * dom/DocumentStyleSheetCollection.h:
31182         (WebCore::DocumentStyleSheetCollection::create):
31183         (DocumentStyleSheetCollection):
31184         (WebCore::DocumentStyleSheetCollection::styleSheetsForStyleSheetList):
31185         (WebCore::DocumentStyleSheetCollection::activeAuthorStyleSheets):
31186         
31187             activeAuthorStyleSheets() now includes the stylesheets inherited from the seamless parent too.
31188
31189         (WebCore::DocumentStyleSheetCollection::needsUpdateActiveStylesheetsOnStyleRecalc):
31190
31191 2012-10-29  Andreas Kling  <kling@webkit.org>
31192
31193         Don't expose implementation details of StylePropertySet storage.
31194         <http://webkit.org/b/100644>
31195
31196         Reviewed by Antti Koivisto.
31197
31198         Add a StylePropertySet::PropertyReference class, now returned by propertyAt(index).
31199         This will allow us to refactor the internal storage of StylePropertySet without
31200         breaking its API.
31201
31202         A PropertyReference is a simple inlinable wrapper around a StylePropertySet&/index pair.
31203
31204         * css/CSSComputedStyleDeclaration.cpp:
31205         * css/CSSParser.cpp:
31206         * css/CSSParser.h:
31207         * css/SVGCSSParser.cpp:
31208         * css/StylePropertySet.cpp:
31209         (WebCore::StylePropertySet::asText):
31210         (WebCore::StylePropertySet::mergeAndOverrideOnConflict):
31211         (WebCore::StylePropertySet::findPropertyWithId):
31212         (WebCore::StylePropertySet::reportMemoryUsage):
31213         * css/StylePropertySet.h:
31214         (StylePropertySet):
31215         (PropertyReference):
31216         (WebCore::StylePropertySet::PropertyReference::PropertyReference):
31217         (WebCore::StylePropertySet::PropertyReference::id):
31218         (WebCore::StylePropertySet::PropertyReference::isImportant):
31219         (WebCore::StylePropertySet::PropertyReference::isInherited):
31220         (WebCore::StylePropertySet::PropertyReference::cssName):
31221         (WebCore::StylePropertySet::PropertyReference::cssText):
31222         (WebCore::StylePropertySet::PropertyReference::value):
31223         (WebCore::StylePropertySet::PropertyReference::propertyInternal):
31224         (WebCore::StylePropertySet::propertyAt):
31225         (WebCore::StylePropertySet::propertyAtInternal):
31226         (WebCore):
31227         * css/StyleResolver.cpp:
31228         (WebCore::attributeStylesEqual):
31229         (WebCore::StyleResolver::applyProperties):
31230         (WebCore::StyleResolver::resolveVariables):
31231         * editing/ApplyStyleCommand.cpp:
31232         * editing/EditingStyle.cpp:
31233         (WebCore::EditingStyle::mergeStyle):
31234         (WebCore::EditingStyle::mergeStyleFromRulesForSerialization):
31235         * editing/Editor.cpp:
31236         * editing/markup.cpp:
31237         * page/Frame.cpp:
31238         * svg/SVGFontFaceElement.cpp:
31239
31240 2012-10-29  Kent Tamura  <tkent@chromium.org>
31241
31242         Move LocaleWin.{cpp,h} to platform/text/win/
31243         https://bugs.webkit.org/show_bug.cgi?id=100641
31244
31245         Reviewed by Kentaro Hara.
31246
31247         We have platform/text/win/ directory. Windows-specific files should be
31248         in it.
31249         Note that these files are used only in Chromium-win for now.
31250
31251         No new tests. This doesn't change any behavior.
31252
31253         * WebCore.gyp/WebCore.gyp: Fix path names.
31254         * WebCore.gypi: Ditto.
31255         * platform/text/win/LocaleWin.cpp: Renamed from Source/WebCore/platform/text/LocaleWin.cpp.
31256         * platform/text/win/LocaleWin.h: Renamed from Source/WebCore/platform/text/LocaleWin.h.
31257
31258 2012-10-29  Kent Tamura  <tkent@chromium.org>
31259
31260         Rename Localizer to Locale
31261         https://bugs.webkit.org/show_bug.cgi?id=100634
31262
31263         Reviewed by Kentaro Hara.
31264
31265         - Rename Localizer class to Locale
31266         - Rename localizer with locale in variable names
31267         - Rename localizer with locale in function names
31268
31269         No new tests. This doesn't make any behavior changes.
31270
31271         * dom/Document.h:
31272         (WebCore): Declare Locale instead of Localizer.
31273         (Document):
31274         - Rename getCachedLocalizer to getCachedLocale.
31275         - Rename LocaleToLocalizerMap to LocaleIdentifierToLocaleMap.
31276         - Rename m_localizerCache to m_localeCache.
31277         * dom/Document.cpp:
31278         (WebCore::Document::getCachedLocale): Follow renamings.
31279         * dom/Element.h:
31280         (WebCore): Declare Locale instead of Localizer.
31281         (Element): Rename localizer() to locale().
31282         * dom/Element.cpp:
31283         (WebCore::Element::locale): Follow renamings.
31284
31285         * html/BaseDateAndTimeInputType.cpp:
31286         (WebCore::BaseDateAndTimeInputType::localizeValue): Ditto.
31287         (WebCore::BaseDateAndTimeInputType::convertFromVisibleValue): Ditto.
31288         * html/BaseMultipleFieldsDateAndTimeInputType.cpp:
31289         (WebCore::BaseMultipleFieldsDateAndTimeInputType::updateInnerTextValue): Ditto.
31290         * html/DateInputType.cpp:
31291         (WebCore::DateInputType::fixedPlaceholder): Ditto.
31292         (WebCore::DateInputType::setupLayoutParameters): Ditto.
31293         * html/DateTimeInputType.cpp:
31294         (WebCore::DateTimeInputType::setupLayoutParameters): Ditto.
31295         * html/DateTimeLocalInputType.cpp:
31296         (WebCore::DateTimeLocalInputType::setupLayoutParameters): Ditto.
31297         * html/MonthInputType.cpp:
31298         (WebCore::MonthInputType::setupLayoutParameters): Ditto.
31299         * html/NumberInputType.cpp:
31300         (WebCore::NumberInputType::localizeValue): Ditto.
31301         (WebCore::NumberInputType::convertFromVisibleValue): Ditto.
31302         * html/TimeInputType.cpp:
31303         (WebCore::TimeInputType::localizeValue): Ditto.
31304         (WebCore::TimeInputType::setupLayoutParameters): Ditto.
31305
31306         * html/shadow/DateTimeEditElement.h:
31307         (WebCore): Declare Locale instead of Localizer.
31308         (LayoutParameters): Rename localizer data member to locale.
31309         (WebCore::DateTimeEditElement::LayoutParameters::LayoutParameters): Follow renamings.
31310         * html/shadow/DateTimeEditElement.cpp:
31311         (WebCore::DateTimeEditBuilder::visitField): Ditto.
31312         * html/shadow/DateTimeNumericFieldElement.h:
31313         (DateTimeNumericFieldElement): Rename localizerForOwner to localeForOwner.
31314         * html/shadow/DateTimeNumericFieldElement.cpp:
31315         (WebCore::DateTimeNumericFieldElement::formatValue): Follow renamings.
31316         (WebCore::DateTimeNumericFieldElement::handleKeyboardEvent): Ditto.
31317         (WebCore::DateTimeNumericFieldElement::localeForOwner): Ditto.
31318         * page/PagePopupClient.h:
31319         (WebCore): Declare Locale instead of Localizer.
31320         (PagePopupClient): Rename localizer member function to locale.
31321         * page/PagePopupController.cpp:
31322         (WebCore::PagePopupController::localizeNumberString): Follow renamings.
31323
31324         * platform/text/PlatformLocale.cpp: Rename the Localizer class to Locale.
31325         (DateTimeStringBuilder):
31326         (WebCore::DateTimeStringBuilder::DateTimeStringBuilder):
31327         (WebCore::Locale::~Locale):
31328         (WebCore::Locale::setLocaleData): Renamed from setLocalizerData.
31329         (WebCore::Locale::convertToLocalizedNumber):
31330         (WebCore::Locale::detectSignAndGetDigitRange):
31331         (WebCore::Locale::matchedDecimalSymbolIndex):
31332         (WebCore::Locale::convertFromLocalizedNumber):
31333         (WebCore::Locale::localizedDecimalSeparator):
31334         (WebCore::Locale::dateTimeFormatWithSeconds):
31335         (WebCore::Locale::dateTimeFormatWithoutSeconds):
31336         (WebCore::Locale::formatDateTime):
31337         * platform/text/PlatformLocale.h: Update the ifndef macro.
31338         (Locale): Renamed from Localizer. Also, renamed the followings:
31339          - initializeLocalizerData -> initializeLocaleData
31340          - setLocalizerData -> setLocaleData
31341          - m_hasLocalizerData -> m_hasLocaleData
31342         (WebCore::Locale::Locale):
31343         (WebCore::Locale::createDefault):
31344         * platform/text/LocaleICU.cpp: Follow renamings.
31345         * platform/text/LocaleICU.h: Ditto.
31346         * platform/text/LocaleNone.cpp: Ditto.
31347         * platform/text/LocaleWin.cpp: Ditto.
31348         * platform/text/LocaleWin.h: Ditto.
31349         * platform/text/mac/LocaleMac.h: Ditto.
31350         * platform/text/mac/LocaleMac.mm: Ditto.
31351
31352 2012-10-29  Mike West  <mkwst@chromium.org>
31353
31354         Web Inspector: Error messages lines in console are 1px taller than regular messages
31355         https://bugs.webkit.org/show_bug.cgi?id=100521
31356
31357         Reviewed by Pavel Feldman.
31358
31359         The inspector is adding a 1px bottom border to list elements inside
31360         a disclosure list. This is unnecessary in the current layout; it's
31361         causing console messages with stack traces to be one pixel taller than
31362         other console messages, which this patch fixes.
31363
31364         As a drive-by, this patch also adjusts the disclosure triangle's
31365         position to match.
31366
31367         * inspector/front-end/inspector.css:
31368         (.outline-disclosure li):
31369         (.outline-disclosure li.parent::before):
31370
31371 2012-10-29  Mike West  <mkwst@chromium.org>
31372
31373         Web Inspector: The bubble for repeated errors is misplaced.
31374         https://bugs.webkit.org/show_bug.cgi?id=100525
31375
31376         Reviewed by Pavel Feldman.
31377
31378         The repeated-message bubble is displayed as an inline-block element,
31379         which works well as long as no stack trace is present. If present, the
31380         message is wrapped in an 'ol' element displayed as a block, which pushes
31381         itself down to the next line.
31382
31383         To avoid that issue, this patch switches the wrapper element to flexbox,
31384         glorious flexbox.
31385
31386         * inspector/front-end/inspector.css:
31387         (.console-message .bubble):
31388         (.repeated-message .outline-disclosure):
31389         (.filter-all .console-log-level.repeated-message, .filter-logs .console-log-level.repeated-message):
31390
31391 2012-10-29  Alexander Pavlov  <apavlov@chromium.org>
31392
31393         Web Inspector: [Styles] Handle non-parsedOk properties as inactive ones
31394         https://bugs.webkit.org/show_bug.cgi?id=100119
31395
31396         Reviewed by Vsevolod Vlasov.
31397
31398         Test: inspector/styles/inactive-properties.html
31399
31400         * inspector/front-end/StylesSidebarPane.js:
31401         (WebInspector.StylesSidebarPane.createExclamationMark):
31402         (WebInspector.ComputedStylePropertiesSection.prototype.rebuildComputedTrace):
31403         * inspector/front-end/elementsPanel.css:
31404         (.styles-section.computed-style .properties li.not-parsed-ok):
31405         (.styles-section.computed-style .properties li.not-parsed-ok img.exclamation-mark):
31406         (.styles-section .properties .not-parsed-ok):
31407
31408 2012-10-29  Eric Seidel  <eric@webkit.org>
31409
31410         Make rendering tables with <colgroups> twice as fast by avoiding walking the DOM for colgroups 4 times for each cell
31411         https://bugs.webkit.org/show_bug.cgi?id=100630
31412
31413         Reviewed by Ojan Vafai.
31414
31415         This is not a complete fix.  Our rendering of this large tables still takes 7.8 seconds
31416         on my retina MBP (down from 14.3s before this change).
31417         It's very expensive to walk the DOM each time we call RenderTable::colElement
31418         so this caches the RenderTableCol* in a vector for easier walking.
31419         We invalidate the cache any time a RenderTableCol is added or removed from the
31420         rendering sub-tree to avoid holding a bad pointer.
31421
31422         * rendering/RenderTable.cpp:
31423         (WebCore::RenderTable::RenderTable):
31424         (WebCore::RenderTable::invalidateCachedColumns):
31425         (WebCore):
31426         (WebCore::RenderTable::addColumn):
31427         (WebCore::RenderTable::removeColumn):
31428         (WebCore::RenderTable::updateColumnCache):
31429         (WebCore::RenderTable::slowColElement):
31430         * rendering/RenderTable.h:
31431         (RenderTable):
31432         * rendering/RenderTableCol.cpp:
31433         (WebCore::RenderTableCol::insertedIntoTree):
31434         (WebCore):
31435         (WebCore::RenderTableCol::willBeRemovedFromTree):
31436         * rendering/RenderTableCol.h:
31437
31438 2012-10-28  Kent Tamura  <tkent@chromium.org>
31439
31440         Rename Localizer.{cpp,h} to PlatformLocale.{cpp,h}
31441         https://bugs.webkit.org/show_bug.cgi?id=100627
31442
31443         Reviewed by Yuta Kitamura.
31444
31445         We'd like to rename Localizer class to Locale class. However we use
31446         PlatformLocale.cpp and PlatformLocale.h as their file names because
31447         <locale.h> exists in the C standard.  In this patch, we rename only file
31448         names. We're going to rename the class name later.
31449
31450         No new tests. This doesn't make any behavior change.
31451
31452         * platform/text/PlatformLocale.h: Renamed from Source/WebCore/platform/text/Localizer.h.
31453         * platform/text/PlatformLocale.cpp: Renamed from Source/WebCore/platform/text/Localizer.cpp.
31454         Follow the Localizer.h -> PlatformLocale.cpp renaming.
31455
31456         * CMakeLists.txt: Follow the file name renaming.
31457         * GNUmakefile.list.am: Ditto.
31458         * Target.pri: Ditto.
31459         * WebCore.gypi: Ditto.
31460         * WebCore.vcproj/WebCore.vcproj: Ditto.
31461         * WebCore.xcodeproj/project.pbxproj: Ditto.
31462         * dom/Document.cpp: Ditto.
31463         * html/BaseDateAndTimeInputType.cpp: Ditto.
31464         * html/BaseMultipleFieldsDateAndTimeInputType.cpp: Ditto.
31465         * html/DateInputType.cpp: Ditto.
31466         * html/DateTimeInputType.cpp: Ditto.
31467         * html/DateTimeLocalInputType.cpp: Ditto.
31468         * html/MonthInputType.cpp: Ditto.
31469         * html/NumberInputType.cpp: Ditto.
31470         * html/TimeInputType.cpp: Ditto.
31471         * html/shadow/DateTimeEditElement.cpp: Ditto.
31472         * html/shadow/DateTimeNumericFieldElement.cpp: Ditto.
31473         * page/PagePopupController.cpp: Ditto.
31474         * platform/text/LocaleICU.h: Ditto.
31475         * platform/text/LocaleNone.cpp: Ditto.
31476         * platform/text/LocaleWin.h: Ditto.
31477         * platform/text/mac/LocaleMac.h: Ditto.
31478
31479 2012-10-28  Shinya Kawanaka  <shinyak@chromium.org>
31480
31481         The shadow element is not reprojected to a nested ShadowRoot.
31482         https://bugs.webkit.org/show_bug.cgi?id=99228
31483
31484         Reviewed by Dimitri Glazkov.
31485
31486         We support shadow reprojection; elements distributed to <shadow> element can be reprojected to <content> now.
31487
31488         First, we have a distribution vector for each InsertionPoint, even if InsertionPoint is a shadow insertion point.
31489         And we update a node-distribution map. Basically We're creating a map from node to InsertionPoint in ElementShadow.
31490         If a node can be distributed to several InsertionPoint (e.g. in case reprojection happens),
31491         the InsertionPoint in older ShadowDOM is chosen.
31492
31493         We also fix ComposedShadowTreeWalker to consider shadow reprojection.
31494
31495         Tests: fast/dom/shadow/composed-shadow-tree-walker-shadow-reprojection.html
31496                fast/dom/shadow/shadow-reprojection-click.html
31497                fast/dom/shadow/shadow-reprojection-dynamic.html
31498                fast/dom/shadow/shadow-reprojection-fallback.html
31499                fast/dom/shadow/shadow-reprojection.html
31500                fast/dom/shadow/shadow-reprojection2.html
31501
31502         * css/StyleResolver.cpp:
31503         (WebCore::shouldResetStyleInheritance): Now context.insertionPoint() returns the final insertion point where
31504         a node is distributed. So we don't have to trace shadow insertion point anymore here.
31505         (WebCore::StyleResolver::styleForElement): Since a direct child of ShadowRoot can be distributed now. In that case,
31506         we don't have any parentElement. The parent node is a ShadowRoot in that case.
31507         * dom/ComposedShadowTreeWalker.cpp:
31508         (WebCore::nodeCanBeDistributed): If a node can be distributed, returns true.
31509         (WebCore):
31510         (WebCore::resolveReprojection): Resolves content-reprojection and shadow-reprojection both.
31511         (WebCore::ComposedShadowTreeWalker::traverseSiblingOrBackToInsertionPoint):
31512         (WebCore::ComposedShadowTreeWalker::traverseParent):
31513         (WebCore::ComposedShadowTreeWalker::traverseParentBackToYoungerShadowRootOrHost): A case ShadowRoot is assigned
31514         to some InsertionPoint should be handled with in traverseSiblingOrBackToInsertionPoint. So we remove it.
31515         (WebCore::AncestorChainWalker::parent): Now we have a case that a direct child of ShadowRoot can be distributed.
31516         In that case, we should not update m_distributedNode.
31517         * dom/ElementShadow.cpp:
31518         (WebCore::ElementShadow::insertionPointFor): Since we have a distribution vector for each InsertionPoint,
31519         we don't have a special case that a ShadowRoot is assigned to some InsertionPoint. Actually the existing code
31520         is not correct now due to shadow reprojection.
31521         * html/shadow/ContentDistributor.cpp:
31522         (WebCore::ContentDistributor::populate): Populate a POOL. If a node is InsertionPoint, we fill it with the
31523         distributed nodes.
31524         (WebCore):
31525         (WebCore::ContentDistributor::distribute): Since we want to make a distribution vector for each InsertionPoint,
31526         we have to resolve a shadow InsertionPoint
31527         (WebCore::ContentDistributor::distributeNodeChildrenTo):
31528         * html/shadow/ContentDistributor.h:
31529         (ContentDistributor):
31530         * html/shadow/HTMLShadowElement.h:
31531         (WebCore::toHTMLShadowElement):
31532         (WebCore):
31533         * html/shadow/InsertionPoint.h:
31534         (WebCore::parentNodeForDistribution):
31535         (WebCore::parentElementForDistribution):
31536         (WebCore):
31537
31538 2012-10-28  Kunihiko Sakamoto  <ksakamoto@chromium.org>
31539
31540         Webkit adds a boundary to the Content-Type: text/plain POST header
31541         https://bugs.webkit.org/show_bug.cgi?id=100445
31542
31543         Reviewed by Kent Tamura.
31544
31545         Fixed a bug where an empty boundary parameter was added to Content-Type
31546         header when POSTing forms with enctype=text/plain.
31547
31548         Test: http/tests/misc/form-post-textplain.html
31549
31550         * loader/FormSubmission.cpp:
31551         (WebCore::FormSubmission::populateFrameLoadRequest): Add boundary parameter to
31552         Content-Type only when a boundary string is generated.
31553
31554 2012-10-28  Philip Rogers  <pdr@google.com>
31555
31556         Cache calcMode() value for SVG animations.
31557         https://bugs.webkit.org/show_bug.cgi?id=99694
31558
31559         Reviewed by Eric Seidel.
31560
31561         This patch refactors SVGAnimationElement::calcMode() to return a cached value instead
31562         of recalculating its value on every call. On a simple test of 100 rectangles with 100
31563         animations each, calls to calcMode() account for 3% of the total animation. After this
31564         patch, calcMode() no longer appears in animation profiles at all.
31565
31566         No new tests as this functionality is covered by existing tests.
31567
31568         * svg/SVGAnimateMotionElement.cpp:
31569         (WebCore::SVGAnimateMotionElement::SVGAnimateMotionElement):
31570
31571             The default calcMode for all animation types is linear except AnimateMotion,
31572             which defaults to CalcModePaced.
31573             See: http://www.w3.org/TR/SVG/single-page.html#animate-CalcModeAttribute
31574
31575         * svg/SVGAnimationElement.cpp:
31576         (WebCore::SVGAnimationElement::SVGAnimationElement):
31577         (WebCore::SVGAnimationElement::isSupportedAttribute):
31578         (WebCore::SVGAnimationElement::parseAttribute):
31579         (WebCore::SVGAnimationElement::setCalcMode):
31580         * svg/SVGAnimationElement.h:
31581         (WebCore::SVGAnimationElement::calcMode):
31582         (WebCore::SVGAnimationElement::setCalcMode):
31583         (SVGAnimationElement):
31584
31585 2012-10-28  Dimitri Glazkov  <dglazkov@chromium.org>
31586
31587         Get rid of StyleResolver state related to unknown pseudo-elements.
31588         https://bugs.webkit.org/show_bug.cgi?id=100582
31589
31590         Reviewed by Eric Seidel.
31591
31592         All of the state, related to unknown pseudo-elements is already understood at the time of collecting rules.
31593         We can just get rid of most of this code in StyleResolver.
31594
31595         At the time of matching rules, we know for certain that only rules that contain unknown pseudo-elements,
31596         or are UA rules, or are explicitly invited by a TreeScope will match. So we can just return early in many cases.
31597
31598         No change in behavior, covered by existing tests.
31599
31600         * css/SelectorChecker.cpp:
31601         (WebCore::SelectorChecker::checkSelector): Removed now-unnecessary param.
31602         (WebCore::SelectorChecker::checkOneSelector): Ditto.
31603         * css/SelectorChecker.h:
31604         (SelectorChecker): Ditto.
31605         * css/StyleResolver.cpp:
31606         (WebCore::StyleResolver::StyleResolver): Ditto.
31607         (MatchingUARulesScope): Moved class definition here, since we now use it in a different place.
31608         (WebCore::StyleResolver::collectMatchingRules): Changed the logic to stop matching rules that definitely won't match in a different scope.
31609         (WebCore::StyleResolver::collectMatchingRulesForList): Removed code that's now unnecesssary.
31610         (WebCore::StyleResolver::checkSelector): Removed now-unnecessary param.
31611         (WebCore::StyleResolver::checkRegionSelector): Removed weird dead code.
31612         * css/StyleResolver.h:
31613         (StyleResolver): Removed now-unnecessary member.
31614
31615 2012-10-28  Sheriff Bot  <webkit.review.bot@gmail.com>
31616
31617         Unreviewed, rolling out r132696.
31618         http://trac.webkit.org/changeset/132696
31619         https://bugs.webkit.org/show_bug.cgi?id=100609
31620
31621         Needs a bit more clean-up on Chrome Web UI side. (Requested by
31622         dglazkov on #webkit).
31623
31624         * rendering/RenderBlock.cpp:
31625         (WebCore::RenderBlock::updateFirstLetter):
31626         * rendering/RenderListBox.h:
31627         * rendering/RenderObjectChildList.cpp:
31628         (WebCore::RenderObjectChildList::updateBeforeAfterContent):
31629
31630 2012-10-27  Alexey Proskuryakov  <ap@apple.com>
31631
31632         All tests crash in WebKit1 mode
31633         https://bugs.webkit.org/show_bug.cgi?id=100602
31634
31635         Reviewed by Sam Weinig.
31636
31637         * platform/PlatformStrategies.cpp: (WebCore::setPlatformStrategies): Fix an incorrect
31638         assertion - if this function is called twice, it should be with the same strategy.
31639
31640 2012-10-27  Anders Carlsson  <andersca@apple.com>
31641
31642         Fix AVFoundation build.
31643
31644         * platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
31645         (WebCore::MediaPlayerPrivateAVFoundationObjC::addKey):
31646
31647 2012-10-27  David Barton  <dbarton@mathscribe.com>
31648
31649         ASSERTION FAILED: m_next in LayoutState.cpp
31650         https://bugs.webkit.org/show_bug.cgi?id=99796
31651
31652         Reviewed by Eric Seidel.
31653
31654         Before RenderMathMLBlock::computeChildrenPreferredLogicalHeights calls child->layoutIfNeeded(),
31655         it must ensure a layoutState exists. We disable it in any case, since we are just calculating
31656         metrics here, and the final layout may well happen again.
31657
31658         No new tests. I don't know how to create an automated test for this. The crashes users are
31659         seeing are flaky.
31660
31661         * rendering/mathml/RenderMathMLBlock.cpp:
31662         (WebCore::RenderMathMLBlock::computeChildrenPreferredLogicalHeights):
31663
31664 2012-10-27  David Barton  <dbarton@mathscribe.com>
31665
31666         [MathML] Improve some addChild methods
31667         https://bugs.webkit.org/show_bug.cgi?id=98791
31668
31669         Reviewed by Eric Seidel.
31670
31671         MathML addChild methods need to handle any anonymous renderers correctly. Actually, most MathML elements have a fixed
31672         number of children, so conformant javascript won't be doing arbitrary addChild and removeChild calls. However, we don't
31673         want any assertions to fail, and we do want addChild to work correctly when beforeChild == 0, to build up the original
31674         renderer, and then replaceChild at least should work correctly after that. We therefore clean up these routines before
31675         giving them to the chromium fuzzers.
31676         
31677         It's best to build the anonymous wrappers just once initially if possible, so empty wrappers aren't left in the render
31678         tree after later removeChild calls.
31679
31680         Test: mathml/presentation/dynamic.html added for mfrac and msqrt. There are already tests for dynamically changing
31681         msub/sup elements, in mathml/presentation/m*-changed.xhtml.
31682
31683         * rendering/mathml/RenderMathMLFraction.cpp:
31684         (WebCore::RenderMathMLFraction::addChild):
31685             - The two wrappers are built initially. Also, the old RenderMathMLBlock::addChild(row, beforeChild); doesn't really
31686               work because beforeChild is buried inside a wrapper. This new routine allows the numerator and denominator to be
31687               added initially, and then later replaced with replaceChild. It's not clear whether e.g. a plain removeChild of a
31688               numerator should move the remaining child from the denominator to the numerator or not, so we ignore that for now.
31689         * rendering/mathml/RenderMathMLRoot.cpp:
31690         (WebCore::RenderMathMLRoot::addChild):
31691             - A bit of bullet-proofing for the fuzzers.
31692         * rendering/mathml/RenderMathMLSubSup.cpp:
31693         (WebCore::RenderMathMLSubSup::addChild):
31694             - Like RenderMathMLFraction::addChild, we create the wrappers once initially, and then fill them dynamically.
31695
31696 2012-10-27  Levi Weintraub  <leviw@chromium.org>
31697
31698         Background images can incorrectly repeat with sub-pixel layout
31699         https://bugs.webkit.org/show_bug.cgi?id=94622
31700
31701         Reviewed by Emil A Eklund.
31702
31703         Attempting to better match author expectations when painting tiled background images. When under
31704         the effects of zoom with sub-pixel layout enabled, the drawn size of a rendered element can
31705         differ depending on its location. This change looks at the size of the scaled tiled background
31706         image size, and either ceils or floors that value depending on if tiling that value will
31707         result in us being one pixel or less short of covering the background size. This is a heuristic,
31708         as sub-pixel/zooming isn't specced.
31709
31710         Test: fast/sub-pixel/scaled-background-image.html
31711
31712         * rendering/RenderBoxModelObject.cpp:
31713         (WebCore::applySubPixelHeuristicForTileSize):
31714         (WebCore):
31715         (WebCore::RenderBoxModelObject::calculateFillTileSize):
31716
31717 2012-10-27  Sheriff Bot  <webkit.review.bot@gmail.com>
31718
31719         Unreviewed, rolling out r132725.
31720         http://trac.webkit.org/changeset/132725
31721         https://bugs.webkit.org/show_bug.cgi?id=100596
31722
31723         it broke linking on chromium debug bots (Requested by loislo
31724         on #webkit).
31725
31726         * inspector/InspectorMemoryAgent.cpp:
31727         (WebCore::addPlatformComponentsInfo):
31728         (WebCore):
31729         (WebCore::InspectorMemoryAgent::getProcessMemoryDistribution):
31730         * platform/MemoryUsageSupport.cpp:
31731         (WebCore::MemoryUsageSupport::memoryUsageByComponents):
31732         * platform/MemoryUsageSupport.h:
31733         (ComponentInfo):
31734         (WebCore::MemoryUsageSupport::ComponentInfo::ComponentInfo):
31735         (MemoryUsageSupport):
31736         * platform/PlatformMemoryInstrumentation.cpp:
31737         (WebCore):
31738         * platform/PlatformMemoryInstrumentation.h:
31739         (PlatformMemoryTypes):
31740         * platform/chromium/MemoryUsageSupportChromium.cpp:
31741         (WebCore::MemoryUsageSupport::memoryUsageByComponents):
31742         * platform/qt/MemoryUsageSupportQt.cpp:
31743         (WebCore::MemoryUsageSupport::memoryUsageByComponents):
31744
31745 2012-10-27  Dan Bernstein  <mitz@apple.com>
31746
31747         REAL_PLATFORM_NAME build setting is no longer needed
31748         https://bugs.webkit.org/show_bug.cgi?id=100587
31749
31750         Reviewed by Mark Rowe.
31751
31752         Removed the definition of REAL_PLATFORM_NAME and replaced references to it with references
31753         to PLATFORM_NAME.
31754
31755         * Configurations/Base.xcconfig:
31756         * Configurations/CompilerVersion.xcconfig:
31757         * Configurations/DebugRelease.xcconfig:
31758         * Configurations/FeatureDefines.xcconfig:
31759         * Configurations/Version.xcconfig:
31760         * Configurations/WebCore.xcconfig:
31761
31762 2012-10-27  Tony Chang  <tony@chromium.org>
31763
31764         Remove internals shouldDisplayTrackKind methods; these are also on internals.settings
31765         https://bugs.webkit.org/show_bug.cgi?id=100564
31766
31767         Reviewed by Adam Barth.
31768
31769         Remove duplicate methods from internals that was just forwarding on the call to internals.settings.
31770         Also fix a bug where we didn't reset these settings properly.
31771
31772         No new tests, this is covered by existing media/track tests.
31773
31774         * testing/InternalSettings.cpp:
31775         (WebCore::InternalSettings::Backup::Backup): Properly save display track settings.
31776         (WebCore::InternalSettings::Backup::restoreTo): Restore display track settings.
31777         * testing/InternalSettings.h:
31778         * testing/InternalSettings.idl: Use [Conditional=VIDEO_TRACK].
31779         * testing/Internals.cpp: Remove code.
31780         * testing/Internals.h: Remove code.
31781         * testing/Internals.idl: Remove code.
31782
31783 2012-10-26  Ilya Tikhonovsky  <loislo@chromium.org>
31784
31785         Web Inspector: instrument chromium GlyphCache. It keeps ~2mb.
31786         https://bugs.webkit.org/show_bug.cgi?id=100515
31787
31788         Reviewed by Yury Semikhatsky.
31789
31790         I replaced old version with an abstract number with new one which precisely reports allocated SkGlyphCache objects and their sizes.
31791
31792         * inspector/InspectorMemoryAgent.cpp:
31793         (WebCore::InspectorMemoryAgent::getProcessMemoryDistribution):
31794         * platform/MemoryUsageSupport.cpp:
31795         (WebCore::MemoryUsageSupport::reportMemoryUsage):
31796         * platform/MemoryUsageSupport.h:
31797         (MemoryUsageSupport):
31798         * platform/PlatformMemoryInstrumentation.cpp:
31799         (WebCore):
31800         * platform/PlatformMemoryInstrumentation.h:
31801         (PlatformMemoryTypes):
31802         * platform/chromium/MemoryUsageSupportChromium.cpp:
31803         (reportMemoryUsage):
31804         (WebCore::reportGlyphCache):
31805         (WebCore):
31806         (WebCore::MemoryUsageSupport::reportMemoryUsage):
31807         * platform/qt/MemoryUsageSupportQt.cpp:
31808         (WebCore::MemoryUsageSupport::reportMemoryUsage):
31809
31810 2012-10-26  Philip Rogers  <pdr@google.com>
31811
31812         Prevent NaN offset values in ElementTimeControl.
31813         https://bugs.webkit.org/show_bug.cgi?id=100322
31814
31815         Reviewed by Abhishek Arya.
31816
31817         NaN values can cause ElementTimeControl to go back in time!
31818         If a value of NaN is passed to ElementTimeControl::beginElementAt(offset),
31819         subsequent sorting will cause an assert in SVGSMILElement::findInstanceTime
31820         because NaN values are not properly sorted. NaN SMILTime values
31821         should not be allowed at all, so this patch adds a check for them in
31822         ElementTimeControl's setters.
31823  
31824         This patch also adds preventative asserts to catch if SMILTime is ever
31825         initialized with NaN, or if addEndTime/addBeginTime are ever called
31826         with NaN values.
31827
31828         Test: svg/custom/elementTimeControl-nan-crash.html
31829
31830         * svg/SVGAnimationElement.cpp:
31831         (WebCore::SVGAnimationElement::beginElementAt):
31832         (WebCore::SVGAnimationElement::endElementAt):
31833         * svg/animation/SMILTime.h:
31834         (WebCore::SMILTime::SMILTime):
31835         * svg/animation/SVGSMILElement.cpp:
31836         (WebCore::SVGSMILElement::addBeginTime):
31837         (WebCore::SVGSMILElement::addEndTime):
31838
31839 2012-10-26  Charles Wei  <charles.wei@torchmobile.com.cn>
31840
31841         [BlackBerry] Browser prematurely sends wrong credentials
31842         https://bugs.webkit.org/show_bug.cgi?id=100585
31843
31844         Reviewed by Yong Li.
31845
31846         Manually revert the patch for bug 96362, which causes regressions and the right patch has been
31847         submitted with patch for bug 100448. Since the auto-revert fails, we use this patch to manually
31848         revert.
31849
31850         No new tests. The test is coverted by patch for 100448.
31851
31852         * platform/network/blackberry/CredentialBackingStore.cpp:
31853         * platform/network/blackberry/CredentialBackingStore.h:
31854         (CredentialBackingStore):
31855         * platform/network/blackberry/NetworkManager.cpp:
31856         (WebCore::NetworkManager::startJob):
31857
31858 2012-10-26  Brady Eidson  <beidson@apple.com>
31859
31860         Have NetworkProcess manage resource load scheduling.
31861         https://bugs.webkit.org/show_bug.cgi?id=100479
31862
31863         Reviewed by Alexey Proskuryakov.
31864
31865         Down in WebCore we need to virtualize a handful of ResourceLoadScheduler methods
31866         to be overridden by WebKit's implementation.
31867
31868         No new tests (No change in Core behavior).
31869
31870         * WebCore.exp.in:
31871         * WebCore.xcodeproj/project.pbxproj:
31872
31873         * loader/ResourceLoadScheduler.cpp:
31874         (WebCore::resourceLoadScheduler): Gracefully handle LoaderStrategies wanting to return the default scheduler.
31875         (WebCore::ResourceLoadScheduler::scheduleLoad): Call notifyDidScheduleResourceRequest.
31876         (WebCore::ResourceLoadScheduler::notifyDidScheduleResourceRequest): Moved InspectorInstrumentation call
31877           here so derived classes can do it indirectly.
31878         (WebCore::ResourceLoadScheduler::startResourceLoader): To allow derived classes the ability to call
31879           ResourceLoader::start() which only ResourceLoadScheduler can do.
31880
31881         * loader/ResourceLoadScheduler.h:
31882         (ResourceLoadScheduler): Virtualize some core public methods so they can be overridden.
31883         (WebCore::ResourceLoadScheduler::setSerialLoadingEnabled): Make virtual.
31884         (WebCore::ResourceLoadScheduler::isSuspendingPendingRequests): Make private as it's internal only.
31885
31886         * loader/ResourceLoader.cpp:
31887         (WebCore::ResourceLoader::setIdentifier): Add this setter so outside clients can manually change the identifier.
31888
31889         * loader/ResourceLoader.h:
31890         (WebCore::ResourceLoader::identifier): Change identifier to explicitly be uint64_t.
31891         (WebCore::ResourceLoader::request): Make public.
31892         (ResourceLoader):
31893
31894 2012-10-26  Chris Rogers  <crogers@google.com>
31895
31896         Implement AudioBufferSourceNode .loopStart and .loopEnd attributes
31897         https://bugs.webkit.org/show_bug.cgi?id=100170
31898
31899         Reviewed by Kenneth Russell.
31900
31901         AudioBufferSourceNode currently only supports looping of an entire AudioBuffer.
31902         Sample-based synthesis is a very common technique which requires "internal" loop-points.
31903         For example, the first part of the sample data might represent the attack portion of
31904         a synthesized instrument, which then enters a loop portion.
31905
31906         Tests: webaudio/audiobuffersource-loop-comprehensive.html
31907                webaudio/audiobuffersource-loop-points.html
31908
31909         * Modules/webaudio/AudioBufferSourceNode.cpp:
31910         (WebCore::AudioBufferSourceNode::AudioBufferSourceNode):
31911         (WebCore::AudioBufferSourceNode::process):
31912         (WebCore::AudioBufferSourceNode::renderFromBuffer):
31913         * Modules/webaudio/AudioBufferSourceNode.h:
31914         (AudioBufferSourceNode):
31915         (WebCore::AudioBufferSourceNode::loopStart):
31916         (WebCore::AudioBufferSourceNode::loopEnd):
31917         (WebCore::AudioBufferSourceNode::setLoopStart):
31918         (WebCore::AudioBufferSourceNode::setLoopEnd):
31919         * Modules/webaudio/AudioBufferSourceNode.idl:
31920
31921 2012-10-26  Daniel Cheng  <dcheng@chromium.org>
31922
31923         dragover's default action should prevent drop for file drags
31924         https://bugs.webkit.org/show_bug.cgi?id=79173
31925
31926         Reviewed by Tony Chang.
31927
31928         During a file drag, we need to keep track of whether or not the document has cancelled the
31929         dragover action. We should only send a drop event if the dragover event was cancelled; this
31930         matches the behavior of the spec, as well as IE, Gecko, and Opera. The relevant sections
31931         from the spec are the sections pertaining to dragover and drop events at:
31932         http://www.whatwg.org/specs/web-apps/current-work/#drag-and-drop-processing-model
31933
31934         Test: fast/events/only-valid-drop-targets-receive-file-drop.html
31935
31936         * page/DragController.cpp:
31937         (WebCore::DragController::performDrag):
31938         (WebCore::DragController::dragEnteredOrUpdated):
31939         (WebCore::DragController::tryDocumentDrag):
31940         * page/DragController.h:
31941         (DragController): Cleanup to repurpose a variable that doesn't need to be a member anymore
31942                           and remove the corresponding getter/setter.
31943
31944 2012-10-26  Nico Weber  <thakis@chromium.org>
31945
31946         Fix a operator ordering bug in SVGSMILElement::calculateAnimationPercentAndRepeat
31947         https://bugs.webkit.org/show_bug.cgi?id=94756
31948
31949         Reviewed by Dirk Schulze.
31950
31951         The function has an early exit for !simpleDuration.value(), so
31952         !simpleDuration.value() always is 0 when passed as second parameter to
31953         fmod(), which means fmod() always returns NaN, which always evaluates
31954         to true. Simplify the code by removing that explicit check.
31955
31956         No observable behavior change.
31957
31958         Covered by existing svg tests.
31959
31960         * svg/animation/SVGSMILElement.cpp:
31961         (WebCore::SVGSMILElement::calculateAnimationPercentAndRepeat):
31962
31963 2012-10-26  Sheriff Bot  <webkit.review.bot@gmail.com>
31964
31965         Unreviewed, rolling out r132695.
31966         http://trac.webkit.org/changeset/132695
31967         https://bugs.webkit.org/show_bug.cgi?id=100581
31968
31969         caused 20+ test crashes on bots (Requested by estes on
31970         #webkit).
31971
31972         * dom/ContainerNode.cpp:
31973         (WebCore::ContainerNode::suspendPostAttachCallbacks):
31974         (WebCore::ContainerNode::resumePostAttachCallbacks):
31975         * loader/MainResourceLoader.cpp:
31976         (WebCore::MainResourceLoader::loadNow):
31977         * loader/ResourceLoadScheduler.cpp:
31978         (WebCore::resourceLoadScheduler):
31979         * loader/ResourceLoadScheduler.h:
31980         * loader/ResourceLoader.cpp:
31981         (WebCore::ResourceLoader::releaseResources):
31982         (WebCore::ResourceLoader::willSendRequest):
31983         * loader/cache/CachedResource.cpp:
31984         (WebCore::CachedResource::load):
31985         * loader/cache/CachedResourceLoader.cpp:
31986         (WebCore::CachedResourceLoader::performPostLoadActions):
31987
31988 2012-10-26  Vincent Scheib  <scheib@chromium.org>
31989
31990         Unreviewed, rolling out r132702.
31991         http://trac.webkit.org/changeset/132702
31992         https://bugs.webkit.org/show_bug.cgi?id=100322
31993
31994         Compile error on Chromium Linux dbg builder (and others)
31995
31996         * svg/SVGAnimationElement.cpp:
31997         (WebCore::SVGAnimationElement::beginElementAt):
31998         (WebCore::SVGAnimationElement::endElementAt):
31999         * svg/animation/SMILTime.h:
32000         (WebCore::SMILTime::SMILTime):
32001         * svg/animation/SVGSMILElement.cpp:
32002         (WebCore::SVGSMILElement::addBeginTime):
32003         (WebCore::SVGSMILElement::addEndTime):
32004
32005 2012-10-26  Philip Rogers  <pdr@google.com>
32006
32007         Prevent NaN offset values in ElementTimeControl.
32008         https://bugs.webkit.org/show_bug.cgi?id=100322
32009
32010         Reviewed by Abhishek Arya.
32011
32012         NaN values can cause ElementTimeControl to go back in time!
32013         If a value of NaN is passed to ElementTimeControl::beginElementAt(offset),
32014         subsequent sorting will cause an assert in SVGSMILElement::findInstanceTime
32015         because NaN values are not properly sorted. NaN SMILTime values
32016         should not be allowed at all, so this patch adds a check for them in
32017         ElementTimeControl's setters.
32018
32019         This patch also adds preventative asserts to catch if SMILTime is ever
32020         initialized with NaN, or if addEndTime/addBeginTime are ever called
32021         with NaN values.
32022
32023         Test: svg/custom/elementTimeControl-nan-crash.html
32024
32025         * svg/SVGAnimationElement.cpp:
32026         (WebCore::SVGAnimationElement::beginElementAt):
32027         (WebCore::SVGAnimationElement::endElementAt):
32028         * svg/animation/SMILTime.h:
32029         (WebCore::SMILTime::SMILTime):
32030         * svg/animation/SVGSMILElement.cpp:
32031         (WebCore::SVGSMILElement::addBeginTime):
32032         (WebCore::SVGSMILElement::addEndTime):
32033
32034 2012-10-26  Tony Chang  <tony@chromium.org>
32035
32036         Move non-Settings Inspector methods from internals.settings to internals
32037         https://bugs.webkit.org/show_bug.cgi?id=100392
32038
32039         Reviewed by Adam Barth.
32040
32041         These methods don't have to do with the WebCore Settings object, so move them up to internals.
32042         I moved the reset code from InternalSettings to Internals.
32043
32044         No new tests, this is just a rename. Existing tests should pass.
32045
32046         * testing/InternalSettings.cpp:
32047         (WebCore::InternalSettings::Backup::Backup): Remove inspector methods.
32048         (WebCore::InternalSettings::Backup::restoreTo): Remove inspector methods.
32049         * testing/InternalSettings.h:
32050         * testing/InternalSettings.idl:
32051         * testing/Internals.cpp:
32052         (WebCore::Internals::resetToConsistentState): New method for resetting page state. Named after similar
32053         methods in WTR.
32054         (WebCore::Internals::setInspectorResourcesDataSizeLimits): Moved from InspectorSettings.
32055         (WebCore::Internals::setJavaScriptProfilingEnabled): Moved from InspectorSettings.
32056         * testing/Internals.h:
32057         * testing/Internals.idl:
32058         * testing/js/WebCoreTestSupport.cpp:
32059         (WebCoreTestSupport::resetInternalsObject): Reset state in Internals.
32060         * testing/v8/WebCoreTestSupport.cpp:
32061         (WebCoreTestSupport::resetInternalsObject): Reset state in Internals.
32062
32063 2012-10-26  Dominic Mazzoni  <dmazzoni@google.com>
32064
32065         AX: Notification should be sent when accessibilityIsIgnored changes
32066         https://bugs.webkit.org/show_bug.cgi?id=99547
32067
32068         Reviewed by Chris Fleizach.
32069
32070         Adds a new flag in AccessibilityObject that keeps track of the most recent
32071         value of accessibilityIsIgnored(). After certain events such as an ARIA
32072         attribute change or content change, checks the new value of
32073         accessibilityIsIgnored() and posts a "children changed" notification on the
32074         parent node if it changed, making sure the parent recomputes its vector of
32075         (unignored) children.
32076
32077         Also moves handling of attribute changes to AXObjectCache, and sends
32078         notifications for some attribute changes that were previously silent. On
32079         Chromium, all changes to an accessibility object's attributes should
32080         result in some notification.
32081
32082         Some tests would have broken because an AccessibilityScrollView was created
32083         and holding a reference to a ScrollView for an iframe after it was deleted,
32084         so this change switches AccessibilityScrollView to hold a weak reference
32085         to ScrollView instead.
32086
32087         Tests: platform/chromium/accessibility/is-ignored-change-sends-notification.html
32088                platform/chromium/accessibility/other-aria-attribute-change-sends-notification.html
32089                platform/chromium/accessibility/text-change-notification.html
32090
32091         * accessibility/AXObjectCache.cpp:
32092         (WebCore::AXObjectCache::focusedUIElementForPage):
32093         (WebCore::AXObjectCache::getOrCreate):
32094         (WebCore::AXObjectCache::textChanged):
32095         (WebCore):
32096         (WebCore::AXObjectCache::childrenChanged):
32097         (WebCore::AXObjectCache::handleAriaRoleChanged):
32098         (WebCore::AXObjectCache::handleAttributeChanged):
32099         (WebCore::AXObjectCache::labelChanged):
32100         (WebCore::AXObjectCache::recomputeIsIgnored):
32101         * accessibility/AXObjectCache.h:
32102         (AXObjectCache):
32103         (WebCore::AXObjectCache::childrenChanged):
32104         (WebCore::AXObjectCache::textChanged):
32105         (WebCore::AXObjectCache::handleAttributeChanged):
32106         (WebCore::AXObjectCache::recomputeIsIgnored):
32107         * accessibility/AccessibilityNodeObject.cpp:
32108         (WebCore::AccessibilityNodeObject::insertChild):
32109         * accessibility/AccessibilityObject.cpp:
32110         (WebCore::AccessibilityObject::AccessibilityObject):
32111         (WebCore::AccessibilityObject::cachedIsIgnoredValue):
32112         (WebCore):
32113         (WebCore::AccessibilityObject::setCachedIsIgnoredValue):
32114         (WebCore::AccessibilityObject::notifyIfIgnoredValueChanged):
32115         * accessibility/AccessibilityObject.h:
32116         (WebCore::AccessibilityObject::textChanged):
32117         (AccessibilityObject):
32118         * accessibility/AccessibilityRenderObject.cpp:
32119         (WebCore::AccessibilityRenderObject::accessibilityIsIgnored):
32120         (WebCore::AccessibilityRenderObject::correspondingControlForLabelElement):
32121         (WebCore::AccessibilityRenderObject::textChanged):
32122         (WebCore::AccessibilityRenderObject::addHiddenChildren):
32123         (WebCore::AccessibilityRenderObject::addChildren):
32124         * accessibility/AccessibilityRenderObject.h:
32125         (AccessibilityRenderObject):
32126         * accessibility/AccessibilityScrollView.cpp:
32127         (WebCore::AccessibilityScrollView::~AccessibilityScrollView):
32128         (WebCore):
32129         (WebCore::AccessibilityScrollView::detach):
32130         (WebCore::AccessibilityScrollView::isAttachment):
32131         (WebCore::AccessibilityScrollView::widgetForAttachmentView):
32132         (WebCore::AccessibilityScrollView::updateScrollbars):
32133         (WebCore::AccessibilityScrollView::webAreaObject):
32134         (WebCore::AccessibilityScrollView::elementRect):
32135         (WebCore::AccessibilityScrollView::documentFrameView):
32136         (WebCore::AccessibilityScrollView::parentObject):
32137         (WebCore::AccessibilityScrollView::parentObjectIfExists):
32138         (WebCore::AccessibilityScrollView::getScrollableAreaIfScrollable):
32139         (WebCore::AccessibilityScrollView::scrollTo):
32140         * accessibility/AccessibilityScrollView.h:
32141         (WebCore::AccessibilityScrollView::scrollView):
32142         (AccessibilityScrollView):
32143         * accessibility/AccessibilityTable.cpp:
32144         (WebCore::AccessibilityTable::isDataTable):
32145         * accessibility/chromium/AXObjectCacheChromium.cpp:
32146         (WebCore::AXObjectCache::postPlatformNotification):
32147         * dom/Element.cpp:
32148         (WebCore::Element::attributeChanged):
32149         * rendering/RenderBlock.cpp:
32150         (WebCore::RenderBlock::deleteLineBoxTree):
32151         (WebCore::RenderBlock::createAndAppendRootInlineBox):
32152         * rendering/RenderObject.cpp:
32153         (WebCore::RenderObject::styleWillChange):
32154         * rendering/RenderText.cpp:
32155         (WebCore::RenderText::setText):
32156
32157 2012-10-26  Joshua Bell  <jsbell@chromium.org>
32158
32159         [WebKitIDL] Optional dictionary types should have default values of empty dictionary
32160         https://bugs.webkit.org/show_bug.cgi?id=100547
32161
32162         Reviewed by Adam Barth.
32163
32164         Per WebIDL, "Optional dictionary type arguments are always considered to have a default
32165         value of an empty dictionary." WebKitIDL already supported this via the extended attribute
32166         [Optional=DefaultIsUndefined] but make this the default for Dictionary.
32167
32168         Binding test expectations updated.
32169
32170         * Modules/filesystem/DirectoryEntry.h: Remove default parameters.
32171         (DirectoryEntry):
32172         * Modules/indexeddb/IDBDatabase.h: Remove overloads.
32173         (IDBDatabase):
32174         * Modules/indexeddb/IDBObjectStore.h: Remove overloads.
32175         (IDBObjectStore):
32176         * Modules/mediastream/RTCPeerConnection.idl: Remove DefaultIsUndefined annotations.
32177         * bindings/scripts/CodeGeneratorJS.pm: Special case for Optional Dictionary.
32178         (GenerateParametersCheck):
32179         * bindings/scripts/CodeGeneratorV8.pm: Ditto.
32180         (GenerateParametersCheck):
32181         * bindings/scripts/test/JS/JSTestObj.cpp:
32182         (WebCore::jsTestObjPrototypeFunctionOptionsObject): Updated expectation - no early call.
32183         * bindings/scripts/test/V8/V8TestObj.cpp:
32184         (WebCore::TestObjV8Internal::optionsObjectCallback): Ditto.
32185
32186 2012-10-26  Vincent Scheib  <scheib@chromium.org>
32187
32188         Generated should not be supported for things with a shadow
32189         https://bugs.webkit.org/show_bug.cgi?id=98836
32190
32191         Unreviewed rollout of rollout of http://trac.webkit.org/changeset/132269.
32192         Initial rollout was speculative and was shown not to be related to crashes.
32193         Change author: Elliott Sprehn  <esprehn@chromium.org>
32194
32195         As far as CSS is concerned inputs and things with shadow content inside 
32196         shouldn't support pseudo elements like :before, :after or :first-letter.
32197         Neither Gecko or Presto supports it, and we only accidentally supported 
32198         it. 
32199  
32200         Until the spec tells us what to do we should disable support. This is 
32201         also neccesary because the new generated content implementation doesn't 
32202         support shadows. 
32203
32204         Test: fast/forms/pseudo-elements.html
32205
32206         * rendering/RenderBlock.cpp:
32207         (WebCore::RenderBlock::updateFirstLetter):
32208         * rendering/RenderListBox.h:
32209         * rendering/RenderObjectChildList.cpp:
32210         (WebCore::RenderObjectChildList::updateBeforeAfterContent):
32211
32212 2012-10-26  Brady Eidson  <beidson@apple.com>
32213
32214         Crash in WebProces at WebCore::ResourceLoadScheduler::crossOriginRedirectReceived + 78
32215         <rdar://problem/12575514> and https://bugs.webkit.org/show_bug.cgi?id=100554
32216
32217         Reviewed by Alexey Proskuryakov.
32218
32219         This was fallout from http://trac.webkit.org/changeset/132501 where I missed some of the 
32220         spots that call resourceLoadScheduler().
32221
32222         As a result we were creating more than one ResourceLoadScheduler, allowing the host records 
32223         to get out of sync.
32224
32225         The fix that also results in less #ifdefs scattered throughout the code is to use a single 
32226         choke point for all ResourceLoadScheduler access.
32227
32228         No new tests 
32229         (No change of behavior for the default config, not testable at this time in the repro config)
32230
32231         Add a single choke point for accessing the correct ResourceLoadScheduler:
32232         * loader/ResourceLoadScheduler.cpp:
32233         (WebCore::defaultResourceLoadScheduler): New private function that keeps the singleton default ResourceLoadScheduler.
32234         (WebCore::resourceLoadScheduler): Refactor this function to either ask the LoaderStrategy or call through to
32235
32236         Revert back to using that single choke point everywhere:
32237         * dom/ContainerNode.cpp:
32238         (WebCore::ContainerNode::suspendPostAttachCallbacks):
32239         (WebCore::ContainerNode::resumePostAttachCallbacks):
32240
32241         * loader/MainResourceLoader.cpp:
32242         (WebCore::MainResourceLoader::loadNow):
32243
32244         * loader/ResourceLoader.cpp:
32245         (WebCore::ResourceLoader::releaseResources):
32246         (WebCore::ResourceLoader::willSendRequest):
32247
32248         * loader/cache/CachedResource.cpp:
32249         (WebCore::CachedResource::load):
32250
32251         * loader/cache/CachedResourceLoader.cpp:
32252         (WebCore::CachedResourceLoader::performPostLoadActions):
32253
32254 2012-10-26  Elliott Sprehn  <esprehn@chromium.org>
32255
32256         Try to fix the windows build
32257         https://bugs.webkit.org/show_bug.cgi?id=100556
32258
32259         Reviewed by Eric Seidel.
32260
32261         Touch files by adding whitespace to try and make the windows
32262         build bot regenerate files.
32263
32264         No new tests, just kick the bot.
32265
32266         * dom/DOMAllInOne.cpp:
32267         * html/HTMLElementsAllInOne.cpp:
32268         * html/shadow/TextControlInnerElements.cpp:
32269
32270 2012-10-26  Rob Buis  <rbuis@rim.com>
32271
32272         [BlackBerry] Platform Abstraction for WebKit Resource/Image Loading
32273         https://bugs.webkit.org/show_bug.cgi?id=100518
32274
32275         PR 231732
32276
32277         Reviewed by Yong Li.
32278
32279         Use the new resource/image loading abstraction ResourceStore.
32280
32281         * platform/graphics/blackberry/ImageBlackBerry.cpp:
32282         (WebCore::Image::loadPlatformResource):
32283
32284 2012-10-26  Bear Travis  <betravis@adobe.com>
32285
32286         [CSS Exclusions] Block children have incorrect offset when shape-inside element lays out below other elements
32287         https://bugs.webkit.org/show_bug.cgi?id=98189
32288
32289         Reviewed by Dirk Schulze.
32290
32291         The initial code assumed that each block created a new layout state, such that
32292         LayoutState::layoutOffset would be specific to each block child of a shape-inside.
32293         Typically, however, block children of a shape-inside do not create a new layout state,
32294         and therefore we use the current element's offset instead.
32295
32296         Test: fast/exclusions/shape-inside/shape-inside-subsequent-blocks.html
32297
32298         * rendering/RenderBlockLineLayout.cpp:
32299         (WebCore::RenderBlock::layoutRunsAndFloatsInRange): Modified to use only logicalTop
32300         rather than LayoutState::layoutOffset::width/height and logicalTop.
32301
32302 2012-10-26  Elliott Sprehn  <esprehn@chromium.org>
32303
32304         Remove setRenderStyle in favor of callbacks on HTMLOptionElement and HTMLOptGroupElement
32305         https://bugs.webkit.org/show_bug.cgi?id=100397
32306
32307         Reviewed by Ojan Vafai.
32308
32309         Use Node custom callbacks to support the non-renderer style caching for option
32310         and optgroup eliminating the need for setRenderStyle.
32311
32312         setRenderStyle only existed to support HTMLOptionElement and HTMLOptGroupElement
32313         so they could store their RenderStyle even though they have no renderer. This
32314         means all style setting went through the virtual call to setRenderStyle, and it
32315         also hid the if statement protecting against null renderers meaning we end up
32316         checking if the renderer is null repeatedly in recalcStyle. This refactor cleans
32317         up recalcStyle to be more clear about what's going on.
32318
32319         No new tests needed, this is just a refactor.
32320
32321         * dom/Element.cpp:
32322         (WebCore::Element::pseudoStyleCacheIsInvalid):
32323         (WebCore::Element::recalcStyle):
32324         * dom/Node.cpp:
32325         (WebCore::Node::createRenderer):
32326         (WebCore::Node::setRenderStyle):
32327             Removed this method because it was only here to support HTMLOptionElement
32328             and HTMLOptGroupElement. Instead we can use node custom callbacks.
32329         * dom/Node.h:
32330         (WebCore::Node::nonRendererStyle): Renamed from nonRendererRenderStyle to match other style methods.
32331         * dom/NodeRenderStyle.h:
32332         (WebCore::Node::renderStyle):
32333         * html/HTMLOptGroupElement.cpp:
32334         (WebCore::HTMLOptGroupElement::HTMLOptGroupElement):
32335         (WebCore::HTMLOptGroupElement::attach): Reorder the logic to avoid calling styleForRenderer twice.
32336         (WebCore::HTMLOptGroupElement::updateNonRenderStyle): Updates the cached non-renderer style.
32337         (WebCore::HTMLOptGroupElement::nonRendererStyle):
32338         (WebCore::HTMLOptGroupElement::customStyleForRenderer):
32339         * html/HTMLOptGroupElement.h:
32340         * html/HTMLOptionElement.cpp:
32341         (WebCore::HTMLOptionElement::HTMLOptionElement):
32342         (WebCore::HTMLOptionElement::attach): Reorder the logic to avoid calling styleForRenderer twice.
32343         (WebCore::HTMLOptionElement::updateNonRenderStyle): Updates the cached non-renderer style.
32344         (WebCore::HTMLOptionElement::nonRendererStyle):
32345         (WebCore::HTMLOptionElement::customStyleForRenderer):
32346         (WebCore::HTMLOptionElement::didRecalcStyle): Requests the repaint of the select like setRenderStyle used to.
32347         * html/HTMLOptionElement.h:
32348
32349 2012-10-26  Dirk Schulze  <krit@webkit.org>
32350
32351         -webkit-clip-path property should just reference clipPath
32352         https://bugs.webkit.org/show_bug.cgi?id=100531
32353
32354         Reviewed by Eric Seidel.
32355
32356         The -webkit-clip-path property should just reference clipPath. Added a check for that.
32357
32358         Test: css3/masking/clip-path-reference-of-fake-clipPath.html
32359
32360         * rendering/RenderLayer.cpp:
32361         (WebCore::RenderLayer::paintLayerContents):
32362
32363 2012-10-26  Aaron Colwell  <acolwell@chromium.org>
32364
32365         Remove the circular reference between TextTrack and TextTrackCue
32366         https://bugs.webkit.org/show_bug.cgi?id=100300
32367
32368         Reviewed by Eric Carlson.
32369
32370         Changed TextTrackCue.m_track to a normal pointer to break the circular
32371         reference that was keeping both objects from ever getting deleted.
32372
32373         No new tests. This simply fixes a memory leak.
32374
32375         * html/track/TextTrack.cpp:
32376         (WebCore::TextTrack::~TextTrack):
32377         * html/track/TextTrackCue.cpp:
32378         (WebCore::TextTrackCue::TextTrackCue):
32379         (WebCore::TextTrackCue::~TextTrackCue):
32380         (WebCore::TextTrackCue::track):
32381         (WebCore::TextTrackCue::setTrack):
32382         * html/track/TextTrackCue.h:
32383         (TextTrackCue):
32384
32385 2012-10-26  Vsevolod Vlasov  <vsevik@chromium.org>
32386
32387         Web Inspector: Breakpoints are not managed correctly when editing uiSourceCode that was bound to ScriptFile after JavaScriptSourceFrame creation.
32388         https://bugs.webkit.org/show_bug.cgi?id=100535
32389
32390         Reviewed by Pavel Feldman.
32391
32392         Added SourceMappingChanged event to UISourceCode and made
32393         JavaScriptSourceFrame update ScriptFile events listeners on it.
32394
32395         * inspector/front-end/JavaScriptSourceFrame.js:
32396         (WebInspector.JavaScriptSourceFrame):
32397         (WebInspector.JavaScriptSourceFrame.prototype._onSourceMappingChanged):
32398         (WebInspector.JavaScriptSourceFrame.prototype._updateScriptFile):
32399         * inspector/front-end/ResourceScriptMapping.js:
32400         (WebInspector.ResourceScriptMapping.prototype._bindUISourceCodeToScripts):
32401         * inspector/front-end/UISourceCode.js:
32402         (WebInspector.UISourceCode.prototype.setSourceMapping):
32403
32404 2012-10-26  Vincent Scheib  <scheib@chromium.org>
32405
32406         Unreviewed, rolling out r132644.
32407         http://trac.webkit.org/changeset/132644
32408         https://bugs.webkit.org/show_bug.cgi?id=100497
32409
32410         Causes webkit_unit_tests
32411         MemoryInstrumentationTest.ImageObserver to fail.
32412
32413         * platform/network/ResourceRequestBase.cpp:
32414         (WebCore::ResourceRequestBase::reportMemoryUsage):
32415         * platform/network/ResourceRequestBase.h:
32416         (ResourceRequestBase):
32417         * platform/network/chromium/ResourceRequest.cpp:
32418         * platform/network/chromium/ResourceRequest.h:
32419
32420 2012-10-26  Zeno Albisser  <zeno@webkit.org>
32421
32422         [Qt] MiniBrowser segfaults on exit after using WebGL.
32423         https://bugs.webkit.org/show_bug.cgi?id=100523
32424
32425         The display connection must not be closed before
32426         destroying the offscreen window.
32427         Therefore opening the connection is moved to the
32428         getXWindow() function. And closing the connection
32429         is being moved to the destructor of the offscreen window.
32430
32431         Reviewed by Kenneth Rohde Christiansen.
32432
32433
32434         * platform/graphics/surfaces/qt/GraphicsSurfaceGLX.cpp:
32435         (WebCore::OffScreenRootWindow::OffScreenRootWindow):
32436         (WebCore::OffScreenRootWindow::getXWindow):
32437         (OffScreenRootWindow):
32438         (WebCore::OffScreenRootWindow::display):
32439         (WebCore::OffScreenRootWindow::~OffScreenRootWindow):
32440         (WebCore):
32441         (WebCore::GraphicsSurfacePrivate::GraphicsSurfacePrivate):
32442         (WebCore::GraphicsSurfacePrivate::~GraphicsSurfacePrivate):
32443         (WebCore::GraphicsSurfacePrivate::createSurface):
32444
32445 2012-10-26  Parth Patel  <parpatel@rim.com>
32446
32447         [BlackBerry] Extending existing ThreadUnsafe singletons in webkit to
32448         Generic ThreadUnsafe Singleton
32449         https://bugs.webkit.org/show_bug.cgi?id=100529
32450
32451         Reviewed by Yong Li.
32452
32453         No new tests added as there was no behavioural change.
32454
32455         * platform/network/blackberry/NetworkManager.cpp:
32456         (WebCore):
32457         * platform/network/blackberry/NetworkManager.h:
32458         (NetworkManager):
32459
32460 2012-10-26  Mike West  <mkwst@chromium.org>
32461
32462         Web Inspector: Fix log-type icon alignment.
32463         https://bugs.webkit.org/show_bug.cgi?id=100520
32464
32465         Reviewed by Yury Semikhatsky.
32466
32467         The icons are just a pixel or two off, and it's driving me nuts.
32468
32469         * inspector/front-end/inspector.css:
32470         (.console-message::before, .console-user-command::before, #console-prompt::before, .console-group-title::before):
32471         (.console-warning-level::before):
32472
32473 2012-10-26  Erik Arvidsson  <arv@chromium.org>
32474
32475         Replaceable attributes should also have readonly
32476         https://bugs.webkit.org/show_bug.cgi?id=91768
32477
32478         Reviewed by Adam Barth.
32479
32480         This updates the code generators for JSC and V8 to handle this case correctly.
32481
32482         * Modules/intents/DOMWindowIntents.idl:
32483         * bindings/scripts/CodeGeneratorJS.pm:
32484         * bindings/scripts/CodeGeneratorV8.pm:
32485         * bindings/scripts/test/GObject/WebKitDOMTestObj.cpp:
32486         * bindings/scripts/test/ObjC/DOMTestObj.h:
32487         * bindings/scripts/test/ObjC/DOMTestObj.mm:
32488         * bindings/scripts/test/TestObj.idl:
32489         * bindings/scripts/test/V8/V8TestObj.cpp:
32490         * page/DOMWindow.idl:
32491         * workers/WorkerContext.idl:
32492
32493 2012-10-26  Nico Weber  <thakis@chromium.org>
32494
32495         Clear m_orientation in FrameData::clear() for skia
32496         https://bugs.webkit.org/show_bug.cgi?id=100456
32497
32498         Reviewed by Stephen White.
32499
32500         clear() is only called by the FrameData destructor and for multi-image
32501         images in BitmapImage::destroyDecodedData(). Multi-frame images don't
32502         have exif data, so this patch should have no effect in practice. It
32503         makes the skia code match the CG code in BitmapImageCG.cpp though.
32504
32505         * platform/graphics/skia/ImageSkia.cpp:
32506         (WebCore::FrameData::clear):
32507
32508 2012-10-26  Florin Malita  <fmalita@chromium.org>
32509
32510         Crash on loading SVG filter resource on HTML element
32511         https://bugs.webkit.org/show_bug.cgi?id=100491
32512
32513         Reviewed by Dirk Schulze.
32514
32515         Skip non-filter elements referenced via -webkit-filter.
32516
32517         Test: svg/filters/filter-reference-crash.html
32518
32519         * rendering/RenderLayerFilterInfo.cpp:
32520         (WebCore::RenderLayerFilterInfo::updateReferenceFilterClients):
32521
32522 2012-10-26  Antti Koivisto  <antti@apple.com>
32523
32524         Lots of time spent under DNSResolveQueue::platformProxyIsEnabledInSystemPreferences
32525         https://bugs.webkit.org/show_bug.cgi?id=100514
32526
32527         Reviewed by Anders Carlsson.
32528
32529         DNSResolveQueue::platformProxyIsEnabledInSystemPreferences gets called for every link in
32530         the document. The function is relatively slow.
32531         
32532         This patch caches the result of the last check for 5 seconds. Based on code comments
32533         prefetching is disabled with proxies due to regressing performance with some configurations.
32534         Proxy status changes rarely and a slight reaction delay shoudn't cause practical problems.
32535
32536         * platform/network/DNSResolveQueue.cpp:
32537         (WebCore::DNSResolveQueue::DNSResolveQueue):
32538         
32539             Add constructor. Also fixes a bug, m_requestsInFlight was not initialized.
32540             
32541         (WebCore):
32542         (WebCore::DNSResolveQueue::isUsingProxy):
32543         (WebCore::DNSResolveQueue::add):
32544         (WebCore::DNSResolveQueue::fired):
32545         * platform/network/DNSResolveQueue.h:
32546         (DNSResolveQueue):
32547
32548 2012-10-26  Sheriff Bot  <webkit.review.bot@gmail.com>
32549
32550         Unreviewed, rolling out r132662.
32551         http://trac.webkit.org/changeset/132662
32552         https://bugs.webkit.org/show_bug.cgi?id=100528
32553
32554         It is not necessary any more. (Requested by loislo on
32555         #webkit).
32556
32557         * platform/qt/MemoryUsageSupportQt.cpp:
32558         (WebCore::MemoryUsageSupport::memoryUsageByComponents):
32559         (WebCore):
32560
32561 2012-10-26  Ilya Tikhonovsky  <loislo@chromium.org>
32562
32563         Unreviewed build fix for Qt builders.
32564
32565         * platform/qt/MemoryUsageSupportQt.cpp:
32566
32567 2012-10-26  Csaba Osztrogonác  <ossy@webkit.org>
32568
32569         Unreviewed, rolling out r132658.
32570         http://trac.webkit.org/changeset/132658
32571         https://bugs.webkit.org/show_bug.cgi?id=100515
32572
32573         It broke the Qt build
32574
32575         * inspector/InspectorMemoryAgent.cpp:
32576         (WebCore::addPlatformComponentsInfo):
32577         (WebCore):
32578         (WebCore::InspectorMemoryAgent::getProcessMemoryDistribution):
32579         * platform/MemoryUsageSupport.cpp:
32580         (WebCore::MemoryUsageSupport::memoryUsageByComponents):
32581         * platform/MemoryUsageSupport.h:
32582         (ComponentInfo):
32583         (WebCore::MemoryUsageSupport::ComponentInfo::ComponentInfo):
32584         (MemoryUsageSupport):
32585         * platform/PlatformMemoryInstrumentation.cpp:
32586         (WebCore):
32587         * platform/PlatformMemoryInstrumentation.h:
32588         (PlatformMemoryTypes):
32589         * platform/chromium/MemoryUsageSupportChromium.cpp:
32590         (WebCore::MemoryUsageSupport::memoryUsageByComponents):
32591
32592 2012-10-26  Vsevolod Vlasov  <vsevik@chromium.org>
32593
32594         Web Inspector: Some context menu items are duplicated on Resources and Sources panels.
32595         https://bugs.webkit.org/show_bug.cgi?id=100522
32596
32597         Reviewed by Pavel Feldman.
32598
32599         Method appendApplicableItems now receives event as a parameter.
32600         HandlerRegistry now makes sure that it is not called more than once for certain context menu event.
32601
32602         * inspector/front-end/BreakpointsSidebarPane.js:
32603         (WebInspector.JavaScriptBreakpointsSidebarPane.prototype._emptyElementContextMenu):
32604         (WebInspector.JavaScriptBreakpointsSidebarPane.prototype._breakpointContextMenu):
32605         (WebInspector.XHRBreakpointsSidebarPane.prototype._emptyElementContextMenu):
32606         (WebInspector.XHRBreakpointsSidebarPane.prototype._contextMenu):
32607         * inspector/front-end/CallStackSidebarPane.js:
32608         (WebInspector.CallStackSidebarPane.Placard.prototype._placardContextMenu):
32609         * inspector/front-end/ConsoleView.js:
32610         * inspector/front-end/ContextMenu.js:
32611         (WebInspector.ContextMenu):
32612         (WebInspector.ContextMenu.prototype.show):
32613         (WebInspector.ContextMenu.prototype.appendApplicableItems):
32614         (WebInspector.ContextMenu.Provider.prototype.appendApplicableItems):
32615         * inspector/front-end/CookieItemsView.js:
32616         (WebInspector.CookieItemsView.prototype._contextMenu):
32617         * inspector/front-end/DOMBreakpointsSidebarPane.js:
32618         (WebInspector.DOMBreakpointsSidebarPane.prototype._contextMenu):
32619         * inspector/front-end/DataGrid.js:
32620         (WebInspector.DataGrid.prototype._contextMenuInDataTable):
32621         * inspector/front-end/DefaultTextEditor.js:
32622         (WebInspector.DefaultTextEditor.prototype._contextMenu):
32623         * inspector/front-end/ElementsPanel.js:
32624         (WebInspector.ElementsPanel.prototype._contextMenuEventFired.set get var):
32625         * inspector/front-end/ElementsPanelDescriptor.js:
32626         (WebInspector.ElementsPanelDescriptor.prototype.appendApplicableItems):
32627         * inspector/front-end/ElementsTreeOutline.js:
32628         (WebInspector.ElementsTreeOutline.prototype._contextMenuEventFired):
32629         * inspector/front-end/HandlerRegistry.js:
32630         (WebInspector.HandlerRegistry.prototype.appendApplicableItems):
32631         * inspector/front-end/ImageView.js:
32632         (WebInspector.ImageView.prototype._contextMenu):
32633         * inspector/front-end/NavigatorView.js:
32634         (WebInspector.NavigatorView.prototype.handleContextMenu):
32635         * inspector/front-end/NetworkPanel.js:
32636         (WebInspector.NetworkLogView.prototype._contextMenu):
32637         * inspector/front-end/NetworkPanelDescriptor.js:
32638         (WebInspector.NetworkPanelDescriptor.prototype.appendApplicableItems):
32639         * inspector/front-end/ObjectPropertiesSection.js:
32640         (WebInspector.ObjectPropertiesSection.prototype._contextMenuEventFired):
32641         (WebInspector.ObjectPropertyTreeElement.prototype._contextMenuFired):
32642         * inspector/front-end/ProfilesPanel.js:
32643         (WebInspector.ProfilesPanel.prototype._handleContextMenuEvent):
32644         (WebInspector.ProfileSidebarTreeElement.prototype.handleContextMenuEvent):
32645         * inspector/front-end/ResourcesPanel.js:
32646         (WebInspector.FrameResourceTreeElement.prototype._handleContextMenuEvent):
32647         (WebInspector.IndexedDBTreeElement.prototype._handleContextMenuEvent):
32648         (WebInspector.FileSystemListTreeElement.prototype._handleContextMenuEvent):
32649         (WebInspector.IDBDatabaseTreeElement.prototype._handleContextMenuEvent):
32650         * inspector/front-end/ScriptsNavigator.js:
32651         (WebInspector.SnippetsNavigatorView.prototype.handleContextMenu):
32652         * inspector/front-end/ScriptsPanel.js:
32653         (WebInspector.ScriptsPanel.prototype.appendApplicableItems):
32654         * inspector/front-end/ScriptsPanelDescriptor.js:
32655         (WebInspector.ScriptsPanelDescriptor.prototype.appendApplicableItems):
32656         * inspector/front-end/StylesSidebarPane.js:
32657         (WebInspector.StylesSidebarPane.prototype._contextMenuEventFired):
32658         * inspector/front-end/TabbedPane.js:
32659         (WebInspector.TabbedPaneTab.prototype._tabContextMenu):
32660         * inspector/front-end/TimelinePanel.js:
32661         (WebInspector.TimelinePanel.prototype._contextMenu):
32662         * inspector/front-end/WatchExpressionsSidebarPane.js:
32663         (WebInspector.WatchExpressionsSection.prototype._emptyElementContextMenu):
32664         (WebInspector.WatchExpressionTreeElement.prototype._contextMenu):
32665
32666 2012-10-26  Ilya Tikhonovsky  <loislo@chromium.org>
32667
32668         Web Inspector: instrument chromium GlyphCache. It keeps ~2mb data on gmail.
32669         https://bugs.webkit.org/show_bug.cgi?id=100515
32670
32671         Reviewed by Yury Semikhatsky.
32672
32673         I replaced old version with an abstract number with new one which precisely reports allocated SkGlyphCache objects and their sizes.
32674
32675         * inspector/InspectorMemoryAgent.cpp:
32676         (WebCore::InspectorMemoryAgent::getProcessMemoryDistribution):
32677         * platform/MemoryUsageSupport.cpp:
32678         (WebCore::MemoryUsageSupport::reportMemoryUsage):
32679         * platform/MemoryUsageSupport.h:
32680         (MemoryUsageSupport):
32681         * platform/PlatformMemoryInstrumentation.cpp:
32682         (WebCore):
32683         * platform/PlatformMemoryInstrumentation.h:
32684         (PlatformMemoryTypes):
32685         * platform/chromium/MemoryUsageSupportChromium.cpp:
32686         (reportMemoryUsage):
32687         (WebCore::reportGlyphCache):
32688         (WebCore):
32689         (WebCore::MemoryUsageSupport::reportMemoryUsage):
32690
32691 2012-10-26  Kent Tamura  <tkent@chromium.org>
32692
32693         [Chromium] Build fix for r132650.
32694         https://bugs.webkit.org/show_bug.cgi?id=100482
32695
32696         * platform/text/LocaleWin.cpp:
32697         (WebCore::LocaleWin::timeFormat):
32698
32699 2012-10-26  Yury Semikhatsky  <yurys@chromium.org>
32700
32701         [v8] Memory instrumentation: don't count memory of WrapperTypeInfo
32702         https://bugs.webkit.org/show_bug.cgi?id=100517
32703
32704         Reviewed by Alexander Pavlov.
32705
32706         * bindings/v8/V8PerIsolateData.cpp: when estimating bindings memory size skip
32707         pointers to WrapperTypeInfo objects as they are static fields and belong to
32708         the data segment.
32709         (WTF):
32710
32711 2012-10-26  Kent Tamura  <tkent@chromium.org>
32712
32713         Refactor Localizer-related classes.
32714         https://bugs.webkit.org/show_bug.cgi?id=100482
32715
32716         Reviewed by Kentaro Hara.
32717
32718         - Localizer has unused code
32719          Localizer should have function implementations only if they are used in
32720          multiple subclasses.
32721         - Some Localizer subclasses hide Localizer data members
32722         - Should use String::isNull to check initialization-or-not
32723
32724         No new tests. This should not change any behavior.
32725
32726         * platform/text/Localizer.h:
32727         (Localizer):
32728         - timeFormat, shortTimeFormat, and timeAMPMLabels should be pure virtual.
32729         - Remove m_localizedDateFormatText, m_localizedShortTimeFormatText, and
32730           m_timeAMPMLabels
32731         * platform/text/Localizer.cpp:
32732         Remove implementations of timeFormat, shortTimeFormat, and timeAMPMLabels.
32733
32734         * platform/text/LocaleICU.h:
32735         (LocaleICU): Introduce m_timeFormatWithSeconds and m_timeFormatWithoutSeconds.
32736         * platform/text/LocaleICU.cpp:
32737         (WebCore::LocaleICU::initializeDateTimeFormat):
32738         Use new data members instead of Localizer data members.
32739         (WebCore::LocaleICU::dateFormat): Use isNull.
32740
32741         * platform/text/LocaleNone.cpp:
32742         (LocaleNone): Add timeFormat, shortTimeFormat, timeAMPMLabels
32743         implementations, and m_timeAMPMLabels.
32744         (WebCore::LocaleNone::timeFormat): Returns the HTML time format.
32745         (WebCore::LocaleNone::shortTimeFormat): Returns the HTML time format.
32746         (WebCore::LocaleNone::timeAMPMLabels): Returns "AM" and "PM".
32747
32748         * platform/text/LocaleWin.h:
32749         (LocaleWin): Add m_timeFormatWithSeconds.
32750         * platform/text/LocaleWin.cpp:
32751         (WebCore::LocaleWin::dateFormat): Use isNull.
32752         (WebCore::LocaleWin::timeFormat): Use m_timeFormatWithSeconds.
32753
32754         * platform/text/mac/LocaleMac.h:
32755         (LocaleMac): Rename m_localized*TimeFormatText to m_timeFormatWith*Seconds.
32756         * platform/text/mac/LocaleMac.mm:
32757         (WebCore::LocaleMac::timeFormat): Follow the renaming.
32758         (WebCore::LocaleMac::shortTimeFormat): Ditto.
32759
32760 2012-10-26  Kent Tamura  <tkent@chromium.org>
32761
32762         Crash in PagePopupController by events after WebPagePopupImpl::closePopup
32763         https://bugs.webkit.org/show_bug.cgi?id=100454
32764
32765         Reviewed by Hajime Morita.
32766
32767         No new tests. The bug is timing-dependent.
32768
32769         * page/DOMWindowPagePopup.cpp:
32770         (WebCore::DOMWindowPagePopup::~DOMWindowPagePopup):
32771         Calls clearPagePopupClient for the associalated PagePopupController object.
32772         * page/PagePopupController.cpp:
32773         (WebCore::PagePopupController::setValueAndClosePopup):
32774         Do nothing if m_popupClient is 0.
32775         (WebCore::PagePopupController::localizeNumberString): Ditto.
32776         (WebCore::PagePopupController::clearPagePopupClient): Added.
32777         * page/PagePopupController.h:
32778         (PagePopupController): Declare clearPagePopupClient.
32779
32780 2012-10-25  Alexander Pavlov  <apavlov@chromium.org>
32781
32782         Web Inspector: Bring device geolocation and orientation emulation from behind the experiment
32783         https://bugs.webkit.org/show_bug.cgi?id=100220
32784
32785         Reviewed by Yury Semikhatsky.
32786
32787         * inspector/front-end/Settings.js:
32788         (WebInspector.ExperimentsSettings):
32789         * inspector/front-end/SettingsScreen.js:
32790         (WebInspector.UserAgentSettingsTab):
32791
32792 2012-10-26  Yury Semikhatsky  <yurys@chromium.org>
32793
32794         Memory instrumentation: report memory occupied by ResourceRequest instead of its base ResourceRequestBase
32795         https://bugs.webkit.org/show_bug.cgi?id=100497
32796
32797         Reviewed by Alexander Pavlov.
32798
32799         Added memory reporting method to Chromium implementation of ResourceRequest.
32800
32801         * platform/network/ResourceRequestBase.cpp:
32802         (WebCore::ResourceRequestBase::reportMemoryUsageBase): Renamed reportMemoryUsage
32803         on ResourceRequestBase to reportMemoryUsageBase and made it protected. I'd
32804         rather make ResourceRequestBase::reportMemoryUsage virtual and override it
32805         in the descendant but ResourceRequestBase doesn't have any virtual methods
32806         and shouldn't be used directly (ResourceRequest should be used instead).
32807         * platform/network/ResourceRequestBase.h:
32808         (ResourceRequestBase):
32809         * platform/network/chromium/ResourceRequest.cpp:
32810         (WebCore::ResourceRequest::reportMemoryUsage):
32811         (WebCore):
32812         * platform/network/chromium/ResourceRequest.h:
32813         (ResourceRequest):
32814
32815 2012-10-26  Alexander Pavlov  <apavlov@chromium.org>
32816
32817         Web Inspector: Remove the on-hover highlighting of console messages
32818         https://bugs.webkit.org/show_bug.cgi?id=100511
32819
32820         Reviewed by Pavel Feldman.
32821
32822         This clashes with the hovered element highlight in console messages.
32823
32824         * inspector/front-end/inspector.css:
32825         (ol.watch-expressions > li.hovered):
32826
32827 2012-10-26  Sheriff Bot  <webkit.review.bot@gmail.com>
32828
32829         Unreviewed, rolling out r132612.
32830         http://trac.webkit.org/changeset/132612
32831         https://bugs.webkit.org/show_bug.cgi?id=100512
32832
32833         Crashes fast/events/tabindex-focus-blur-all.html in debug mode
32834         (Requested by pfeldman on #webkit).
32835
32836         * rendering/AutoTableLayout.cpp:
32837         (WebCore::AutoTableLayout::recalcColumn):
32838         * rendering/FixedTableLayout.cpp:
32839         (WebCore::FixedTableLayout::calcWidthArray):
32840         * rendering/RenderTable.cpp:
32841         (WebCore::RenderTable::layout):
32842         * rendering/RenderTableCol.cpp:
32843         (WebCore::RenderTableCol::styleDidChange):
32844         (WebCore::RenderTableCol::updateFromElement):
32845         (WebCore::RenderTableCol::computePreferredLogicalWidths):
32846         * rendering/RenderTableCol.h:
32847         (RenderTableCol):
32848
32849 2012-10-26  Pavel Feldman  <pfeldman@chromium.org>
32850
32851         Web Inspector: fast return upon setting the same dock side.
32852         https://bugs.webkit.org/show_bug.cgi?id=100510
32853
32854         Reviewed by Vsevolod Vlasov.
32855
32856         Added fast return.
32857
32858         * inspector/front-end/DockController.js:
32859
32860 2012-10-26  Simon Hausmann  <simon.hausmann@digia.com>
32861
32862         Unreviewed trivial build fix: It's glXGetCurrentContext not glxGetCurrentContext :)
32863
32864         * platform/graphics/surfaces/qt/GraphicsSurfaceGLX.cpp:
32865         (WebCore::GraphicsSurfacePrivate::GraphicsSurfacePrivate):
32866
32867 2012-10-26  Kenneth Rohde Christiansen  <kenneth@webkit.org>
32868
32869         Printing should use use high resolution images when available
32870         https://bugs.webkit.org/show_bug.cgi?id=100488
32871
32872         Reviewed by Antti Koivisto.
32873
32874         The images loaded using -webkit-device-pixel-ratio depends on
32875         the display type (deviceScaleFactor) and thus affects which
32876         images are being used for printing. Printing should always
32877         use the higher resolution images (aka 'retina' images).
32878
32879         Test: fast/media/mq-pixel-ratio-print.html
32880
32881         * css/MediaQueryEvaluator.cpp:
32882         (WebCore::device_pixel_ratioMediaFeatureEval):
32883
32884 2012-10-26  Ilya Tikhonovsky  <loislo@chromium.org>
32885
32886         Web Inspector: NMI instrument InspectorResourceAgent. it caches resources for the front-end.
32887         https://bugs.webkit.org/show_bug.cgi?id=100496
32888
32889         Reviewed by Yury Semikhatsky.
32890
32891         It is plain instrumentation for InspectorResourceAgent and NetworkResourceData which is used by the agent.
32892
32893         * dom/WebCoreMemoryInstrumentation.cpp:
32894         (WebCore):
32895         * dom/WebCoreMemoryInstrumentation.h:
32896         (WebCoreMemoryTypes):
32897         * inspector/InspectorResourceAgent.cpp:
32898         (WebCore::InspectorResourceAgent::reportMemoryUsage):
32899         (WebCore):
32900         * inspector/InspectorResourceAgent.h:
32901         (InspectorResourceAgent):
32902         * inspector/NetworkResourcesData.cpp:
32903         (WebCore::XHRReplayData::reportMemoryUsage):
32904         (WebCore):
32905         (WebCore::NetworkResourcesData::ResourceData::reportMemoryUsage):
32906         (WebCore::NetworkResourcesData::reportMemoryUsage):
32907         * inspector/NetworkResourcesData.h:
32908         (XHRReplayData):
32909         (ResourceData):
32910         (NetworkResourcesData):
32911
32912 2012-10-26  Sheriff Bot  <webkit.review.bot@gmail.com>
32913
32914         Unreviewed, rolling out r132493.
32915         http://trac.webkit.org/changeset/132493
32916         https://bugs.webkit.org/show_bug.cgi?id=100509
32917
32918         It didn't fix the tests on the bot as we had hoped. (Requested
32919         by drott on #webkit).
32920
32921         * platform/network/cf/ResourceErrorCF.cpp:
32922         (WebCore::ResourceError::ResourceError):
32923
32924 2012-10-26  Zeno Albisser  <zeno@webkit.org>
32925
32926         [Qt] Temporarily disable use of QXcbNativeInterface in GraphicsSurfaceGLX.
32927         https://bugs.webkit.org/show_bug.cgi?id=100493
32928
32929         Once QXcbNativeInterface::nativeResourceForContext() can provide the
32930         GLXContext for an existing QOpenGLContext, this patch shall be reverted.
32931
32932         Reviewed by Simon Hausmann.
32933
32934         * platform/graphics/surfaces/qt/GraphicsSurfaceGLX.cpp:
32935         (WebCore::GraphicsSurfacePrivate::GraphicsSurfacePrivate):
32936
32937 2012-10-26  Zeno Albisser  <zeno@webkit.org>
32938
32939         [Qt] Remove QOpenGL specific code from GraphicsSurfaceGLX.
32940         https://bugs.webkit.org/show_bug.cgi?id=100492
32941
32942         This patch removes most of the QOpenGLContext related code
32943         from GraphicsSurfaceGLX. This allows sharing almost all
32944         GraphicsSurfaceGLX code with EFL, by relying on pure GLX.
32945
32946         Reviewed by Kenneth Rohde Christiansen.
32947
32948         * platform/graphics/surfaces/qt/GraphicsSurfaceGLX.cpp:
32949         (WebCore::OffScreenRootWindow::get):
32950         (WebCore::OffScreenRootWindow::~OffScreenRootWindow):
32951         (OffScreenRootWindow):
32952         (WebCore):
32953         (WebCore::GraphicsSurfacePrivate::GraphicsSurfacePrivate):
32954         (WebCore::GraphicsSurfacePrivate::createSurface):
32955         (WebCore::GraphicsSurfacePrivate::makeCurrent):
32956         (WebCore::GraphicsSurfacePrivate::doneCurrent):
32957         (WebCore::GraphicsSurfacePrivate::swapBuffers):
32958         (WebCore::GraphicsSurfacePrivate::copyFromTexture):
32959         (GraphicsSurfacePrivate):
32960         (WebCore::resolveGLMethods):
32961
32962 2012-10-26  Regina Chung  <heejin.r.chung@samsung.com>
32963
32964         [EFL][WK2] Enable WebGL
32965         https://bugs.webkit.org/show_bug.cgi?id=97652
32966
32967         Reviewed by Gyuyoung Kim.
32968
32969         Implemented GraphicsSurface for EFL to enable WebGL for WebKit2.
32970         Depends on GLX since Evas doesn't provide the necessary functionality.
32971
32972         No new tests. Covered by existing tests.
32973
32974         * PlatformEfl.cmake:
32975         * platform/graphics/GraphicsContext3D.h:
32976         * platform/graphics/efl/GraphicsContext3DEfl.cpp:
32977         (WebCore::GraphicsContext3D::createGraphicsSurfaces):
32978         * platform/graphics/efl/GraphicsContext3DPrivate.cpp:
32979         (WebCore::GraphicsContext3DPrivate::GraphicsContext3DPrivate):
32980         (WebCore::GraphicsContext3DPrivate::~GraphicsContext3DPrivate):
32981         (WebCore):
32982         (WebCore::GraphicsContext3DPrivate::createGraphicsSurfaces):
32983         (WebCore::GraphicsContext3DPrivate::copyToGraphicsSurface):
32984         (WebCore::GraphicsContext3DPrivate::graphicsSurfaceToken):
32985         * platform/graphics/efl/GraphicsContext3DPrivate.h:
32986         (GraphicsContext3DPrivate):
32987         * platform/graphics/opengl/GraphicsContext3DOpenGLCommon.cpp:
32988         (WebCore::GraphicsContext3D::reshape):
32989         * platform/graphics/surfaces/efl: Added.
32990         * platform/graphics/surfaces/efl/GraphicsSurfaceEfl.cpp: Added.
32991         (WebCore):
32992         (WebCore::OffScreenRootWindow::get):
32993         (WebCore::OffScreenRootWindow::~OffScreenRootWindow):
32994         (WebCore::GraphicsSurfacePrivate::GraphicsSurfacePrivate):
32995         (WebCore::GraphicsSurfacePrivate::createSurface):
32996         (WebCore::GraphicsSurfacePrivate::makeCurrent):
32997         (WebCore::GraphicsSurfacePrivate::doneCurrent):
32998         (WebCore::GraphicsSurfacePrivate::swapBuffers):
32999         (WebCore::GraphicsSurface::platformBeginPaint):
33000         (WebCore::GraphicsSurface::createReadOnlyImage):
33001         * platform/graphics/surfaces/qt/GraphicsSurfaceGLX.cpp:
33002         * platform/graphics/surfaces/qt/GraphicsSurfaceGLX.h: Added.
33003         (WebCore):
33004         (OffScreenRootWindow):
33005         (WebCore::OffScreenRootWindow::OffScreenRootWindow):
33006         (GraphicsSurfacePrivate):
33007         (WebCore::GraphicsSurfacePrivate::~GraphicsSurfacePrivate):
33008         (WebCore::GraphicsSurfacePrivate::createPixmap):
33009         (WebCore::GraphicsSurfacePrivate::copyFromTexture):
33010         (WebCore::GraphicsSurfacePrivate::display):
33011         (WebCore::GraphicsSurfacePrivate::glxPixmap):
33012         (WebCore::GraphicsSurfacePrivate::size):
33013         (WebCore::GraphicsSurfacePrivate::glContext):
33014         (WebCore::resolveGLMethods):
33015         * platform/graphics/surfaces/qt/GraphicsSurfaceQt.cpp:
33016         (WebCore):
33017         (WebCore::OffScreenRootWindow::OffScreenRootWindow::get):
33018         (WebCore::OffScreenRootWindow::~OffScreenRootWindow):
33019         (WebCore::GraphicsSurfacePrivate::GraphicsSurfacePrivate):
33020         (WebCore::GraphicsSurfacePrivate::createSurface):
33021         (WebCore::GraphicsSurfacePrivate::makeCurrent):
33022         (WebCore::GraphicsSurfacePrivate::doneCurrent):
33023         (WebCore::GraphicsSurfacePrivate::swapBuffers):
33024
33025 2012-10-26  Alexander Pavlov  <apavlov@chromium.org>
33026
33027         Web Inspector: [Overrides] Do not persist the User Agent "master switch"
33028         https://bugs.webkit.org/show_bug.cgi?id=100484
33029
33030         Reviewed by Yury Semikhatsky.
33031
33032         The User Agent override state is managed in the front-end, just like for other override-able parameters.
33033
33034         * inspector/InspectorResourceAgent.cpp:
33035         (WebCore::InspectorResourceAgent::disable):
33036         * inspector/front-end/NetworkManager.js:
33037         (WebInspector.NetworkManager.get NetworkAgent):
33038         (WebInspector.NetworkManager):
33039         * inspector/front-end/SettingsScreen.js:
33040         (WebInspector.UserAgentSettingsTab.prototype._createUserAgentSelectRowElement.set checkboxClicked):
33041         (WebInspector.UserAgentSettingsTab.prototype._createUserAgentSelectRowElement):
33042         * inspector/front-end/UserAgentSupport.js:
33043         (WebInspector.UserAgentSupport):
33044         (WebInspector.UserAgentSupport.prototype.toggleUserAgentOverride):
33045         (WebInspector.UserAgentSupport.prototype._userAgentChanged):
33046
33047 2012-10-26  Takashi Sakamoto  <tasak@google.com>
33048
33049         [Shadow]: removing styles in shadow dom subtree causes crash.
33050         https://bugs.webkit.org/show_bug.cgi?id=100455
33051
33052         Reviewed by Hajime Morita.
33053
33054         To quickly check whether shadow roots or elements have any scoped
33055         styles or not, elements have hasStyleScoped flag. If elements have
33056         any scoped styles, the styles are direct children of the element.
33057         The original code just sees how many chilren are scoped style or not.
33058         However styles in shadow dom subtree are registered with the shadow
33059         root but are not always direct children of shadow roots. So to check
33060         whether shadow roots have any scoped styles, modified to count
33061         number of styles registered with the shadow root.
33062
33063         Test: fast/dom/shadow/remove-styles-in-shadow-crash.html
33064
33065         * dom/Node.cpp:
33066         (WebCore::Node::registerScopedHTMLStyleChild):
33067         (WebCore::Node::unregisterScopedHTMLStyleChild):
33068         Made the above two method virtual. class ShadowRoot overrides these
33069         methods.
33070         (WebCore::Node::numberOfScopedHTMLStyleChildren):
33071         Moved HTMLStyleElement.cpp to Node.cpp, because the above two methods
33072         are moved into Node.cpp.
33073         * dom/Node.h:
33074         (Node):
33075         * dom/ShadowRoot.cpp:
33076         (WebCore::ShadowRoot::ShadowRoot):
33077         (WebCore::ShadowRoot::registerScopedHTMLStyleChild):
33078         (WebCore::ShadowRoot::unregisterScopedHTMLStyleChild):
33079         Modify to count how many styles are registered with the shadow root.
33080         The "counting" is done when styles are registered and unregistered
33081         with the shadow root, i.e. style element is inserted into document or
33082         removed from document. When unregister some style, there are no more
33083         styles registered with the shadow root. Set style scoped flag false.
33084         * dom/ShadowRoot.h:
33085         (ShadowRoot):
33086         * html/HTMLStyleElement.cpp:
33087         * html/HTMLStyleElement.h:
33088         (WebCore::HTMLStyleElement::isRegisteredAsScoped):
33089         Now isRegisteredAsScoped is used in Node.cpp, so removed inline and
33090         moved .cpp to .h.
33091
33092 2012-10-26  Sheriff Bot  <webkit.review.bot@gmail.com>
33093
33094         Unreviewed, rolling out r132589.
33095         http://trac.webkit.org/changeset/132589
33096         https://bugs.webkit.org/show_bug.cgi?id=100498
33097
33098         Breaks font-face layout tests (Requested by pfeldman on
33099         #webkit).
33100
33101         * css/CSSFontFaceSource.cpp:
33102         (WebCore::CSSFontFaceSource::getFontData):
33103
33104 2012-10-26  Takashi Sakamoto  <tasak@google.com>
33105
33106         [Shadow DOM] Needs @host rule for ShadowDOM styling
33107         https://bugs.webkit.org/show_bug.cgi?id=88606
33108
33109         Reviewed by Hajime Morita.
33110
33111         Implemented @host-@rules according to the shadow dom spec:
33112         http://dvcs.w3.org/hg/webcomponents/raw-file/tip/spec/shadow/index.html#host-at-rule
33113         The design doc is:
33114         https://docs.google.com/document/d/1P2yorchF8lci2sccr-mVSRf2dtvjKeiuyQWzCB2bEA8/edit
33115
33116         Test: fast/dom/shadow/athost-atrules.html
33117
33118         * css/CSSGrammar.y.in:
33119         Added rules for parsing @host @-rules.
33120         * css/CSSParser.cpp:
33121         (WebCore::CSSParser::detectAtToken):
33122         Added a new token "@host".
33123         (WebCore::CSSParser::createHostRule):
33124         Added a new method to create an @host @-rule, which is invoked from
33125         (WebCore):
33126         * css/CSSParser.h:
33127         Added a declaration of the above new method: createHostRule.
33128         * css/CSSPropertySourceData.h:
33129         Added HOST_RULE to enum Type.
33130         * css/RuleSet.cpp:
33131         (WebCore::RuleData::RuleData):
33132         Modified multiple bool arguments into one argument. Now it
33133         uses combinations of values from enum AddRuleFlags.
33134         (WebCore::RuleSet::addRule):
33135         (WebCore::RuleSet::addRegionRule):
33136         (WebCore::RuleSet::addStyleRule):
33137         Updated according to the RuleData's change.
33138         Modified to Invoke increaseSpecificity if the given rule is @host
33139         @-rule.
33140         (WebCore::RuleSet::addRulesFromSheet):
33141         Invoked addHostRule if the given rule is @host @-rule.
33142         * css/RuleSet.h:
33143         (RuleData):
33144         (WebCore::RuleData::increaseSpecificity):
33145         Added a new method to increase selector's specificity. This method is
33146         used to make @host @-rules' specificity larger than normal author
33147         rules' specificity.
33148         (RuleSet):
33149         * css/StyleResolver.cpp:
33150         (WebCore::makeRuleSet):
33151         (WebCore::StyleResolver::addHostRule):
33152         A wrapper method to invoke StyleScopeResolver::addHostRule. The method
33153         is used to make only StyleResolver know an implementation detail about
33154         class StyleScopeResolver.
33155         (WebCore::StyleResolver::appendAuthorStylesheets):
33156         Updated according to the RuleData's change.
33157         (WebCore::StyleResolver::styleSharingCandidateMatchesHostRules):
33158         A new method to find matched host rules when an element is given.
33159         This method invokes
33160         StyleScopeResolver::styleSharingCandidateMatchesHostRules to find
33161         matched host rules.
33162         (WebCore):
33163         (WebCore::StyleResolver::matchHostRules):
33164         A new method to find matched host rules when an element is given.
33165         This method invokes StyleScopeResolver::matchHostRules to find
33166         matched host rules.
33167         (WebCore::StyleResolver::matchScopedAuthorRules):
33168         Modified to invoke matchHostRules.
33169         (WebCore::StyleResolver::locateSharedStyle):
33170         Disable sibling style cache if the given element is a shadow host and
33171         any @host @-rules are applied to the element.
33172         * css/StyleResolver.h:
33173         (WebCore::StyleResolver::ensureScopeResolver):
33174         If no scopeResolver is created, create and return the instance.
33175         If created, just return the instance.
33176         (StyleResolver):
33177         * css/StyleRule.cpp:
33178         (WebCore::StyleRuleBase::reportMemoryUsage):
33179         (WebCore::StyleRuleBase::destroy):
33180         (WebCore::StyleRuleBase::copy):
33181         (WebCore::StyleRuleBase::createCSSOMWrapper):
33182         (WebCore::StyleRuleHost::StyleRuleHost):
33183         Implemented class StyleRuleHost. The class is almost the same as
33184         StyleRuleBlock except type.
33185         (WebCore):
33186         * css/StyleRule.h:
33187         (WebCore::StyleRuleBase::isHostRule):
33188         (StyleRuleHost):
33189         (WebCore::StyleRuleHost::create):
33190         (WebCore::StyleRuleHost::copy):
33191         (WebCore):
33192         * css/StyleScopeResolver.cpp:
33193         (WebCore::StyleScopeResolver::ensureAtHostRuleSetFor):
33194         A new method to create a new RuleSet for the given shadow root.
33195         (WebCore):
33196         (WebCore::StyleScopeResolver::atHostRuleSetFor):
33197         A new private inline method to obtain @host @-rules declared in
33198         the given shadow root.
33199         (WebCore::StyleScopeResolver::addHostRule):
33200         Added a new method to register @host @-rules with shadow roots.
33201         (WebCore::StyleScopeResolver::styleSharingCandidateMatchesHostRules):
33202         A new method to find whether any @host @-rules are applied to
33203         the given host element.
33204         (WebCore::StyleScopeResolver::matchHostRules):
33205         A new method to find matched rules for the given host element.
33206         (WebCore::StyleScopeResolver::reportMemoryUsage):
33207         * css/StyleScopeResolver.h:
33208         (WebCore):
33209         (StyleScopeResolver):
33210         * css/StyleSheetContents.cpp:
33211         (WebCore::childRulesHaveFailedOrCanceledSubresources):
33212
33213 2012-10-26  Jaehun Lim  <ljaehun.lim@samsung.com>
33214
33215         [CMAKE] Add TextAutosizer.cpp in WebCore/CMakeLists.txt
33216         https://bugs.webkit.org/show_bug.cgi?id=100476
33217
33218         Reviewed by Kentaro Hara.
33219
33220         ENABLE_TEXT_AUTOSIZING option is added in CMAKE,
33221         but the source file for that feature is omitted.
33222
33223         No new tests. Covered by existing tests.
33224
33225         * CMakeLists.txt:
33226
33227 2012-10-26  Julien Chaffraix  <jchaffraix@webkit.org>
33228
33229         RenderTableCol::computePreferredLogicalWidths and RenderTableCol::layout should never be called
33230         https://bugs.webkit.org/show_bug.cgi?id=99861
33231
33232         Reviewed by Ojan Vafai.
33233
33234         RenderTableCol's computePreferredLogicalWidths and layout's only purpose were to clear the preferred logical
33235         widths dirty / layout flag so that we would properly propagate the information to our containing table. This
33236         led to clunky code where the table layout code had to forcefully call RenderTableCol::computePreferredLogicalWidths
33237         or else we would ignore the next layout hint on the <col> or <colgroup>.
33238
33239         Tests: fast/table/col-span-change-relayout.html
33240                fast/table/simplified-layout-table.html
33241
33242         * rendering/AutoTableLayout.cpp:
33243         (WebCore::AutoTableLayout::recalcColumn):
33244         * rendering/RenderTable.cpp:
33245         (WebCore::RenderTable::layout):
33246         Simplified the code now that we only need to iterate over the sections.
33247
33248         * rendering/FixedTableLayout.cpp:
33249         (WebCore::FixedTableLayout::calcWidthArray):
33250         Removed call to computePreferredLogicalWidths.
33251
33252         * rendering/RenderTableCol.cpp:
33253         (WebCore::RenderTableCol::styleDidChange):
33254         (WebCore::RenderTableCol::updateFromElement):
33255         Forward a layout hint to the table so that we properly recompute the cell's logical withs.
33256
33257         (WebCore::RenderTableCol::computePreferredLogicalWidths):
33258         (WebCore::RenderTableCol::layout):
33259         Change our implementations of those 2 methods to be no-ops, while enforcing that they are
33260         never called when it was possible.
33261
33262         (WebCore::RenderTableCol::propagateLayoutCueToTable):
33263         New helper function that forward any layout cue to the containing table, this works around
33264         us not clearing the flags which confuses RenderObject markContainingBlocksForLayout and
33265         invalidateContainerPreferredLogicalWidths.
33266
33267         * rendering/RenderTableCol.h:
33268         Made the function that we are not expected to be called private.
33269
33270 2012-10-26  Sheriff Bot  <webkit.review.bot@gmail.com>
33271
33272         Unreviewed, rolling out r132601.
33273         http://trac.webkit.org/changeset/132601
33274         https://bugs.webkit.org/show_bug.cgi?id=100494
33275
33276         It broke the Qt build (Requested by Ossy on #webkit).
33277
33278         * PlatformEfl.cmake:
33279         * platform/graphics/GraphicsContext3D.h:
33280         * platform/graphics/efl/GraphicsContext3DEfl.cpp:
33281         (WebCore::GraphicsContext3D::createGraphicsSurfaces):
33282         * platform/graphics/efl/GraphicsContext3DPrivate.cpp:
33283         (WebCore::GraphicsContext3DPrivate::GraphicsContext3DPrivate):
33284         (WebCore::GraphicsContext3DPrivate::~GraphicsContext3DPrivate):
33285         (WebCore):
33286         * platform/graphics/efl/GraphicsContext3DPrivate.h:
33287         (GraphicsContext3DPrivate):
33288         * platform/graphics/opengl/GraphicsContext3DOpenGLCommon.cpp:
33289         (WebCore::GraphicsContext3D::reshape):
33290         * platform/graphics/surfaces/qt/GraphicsSurfaceGLX.cpp:
33291         (WebCore::OffScreenRootWindow::get):
33292         (WebCore::OffScreenRootWindow::~OffScreenRootWindow):
33293         (OffScreenRootWindow):
33294         (WebCore):
33295         (WebCore::GraphicsSurfacePrivate::GraphicsSurfacePrivate):
33296         (WebCore::GraphicsSurfacePrivate::createSurface):
33297         (WebCore::GraphicsSurfacePrivate::makeCurrent):
33298         (WebCore::GraphicsSurfacePrivate::doneCurrent):
33299         (WebCore::GraphicsSurfacePrivate::swapBuffers):
33300         (WebCore::GraphicsSurfacePrivate::copyFromTexture):
33301         (GraphicsSurfacePrivate):
33302         (WebCore::resolveGLMethods):
33303
33304 2012-10-26  Yury Semikhatsky  <yurys@chromium.org>
33305
33306         Memory instrumentation: do not report memory occupied by v8::String
33307         https://bugs.webkit.org/show_bug.cgi?id=100487
33308
33309         Reviewed by Alexander Pavlov.
33310
33311         Pointers to v8::String are skipped when reporting memory usage of V8 bindings'
33312         string cache.
33313
33314         * bindings/v8/V8Binding.cpp:
33315         (WTF):
33316
33317 2012-10-26  Mihnea Ovidenie  <mihnea@adobe.com>
33318
33319         [CSSRegions] Add support for auto-height regions with region-breaks
33320         https://bugs.webkit.org/show_bug.cgi?id=99952
33321
33322         Reviewed by David Hyatt.
33323
33324         This patch takes region breaks into account when computing the height for auto logical height regions.
33325         When a region break is encountered before/after an element from within a flow thread and we are in the layout
33326         phase in which we lay out the flow threads in regions unconstrained, we use the region break to
33327         compute the region override logical content height if the region break fits inside an auto logical height region.
33328         A region break inside an auto logical height region determines the region override logical content height, taking
33329         min/max height into account.
33330
33331         Tests: fast/regions/autoheight-allregions-nobreaks.html
33332                fast/regions/autoheight-allregions.html
33333                fast/regions/autoheight-breakafteralways-maxheight.html
33334                fast/regions/autoheight-breakbeforealways.html
33335                fast/regions/autoheight-firstregion-breakalways.html
33336                fast/regions/autoheight-lastregion-overflowauto-breaksignored.html
33337                fast/regions/autoheight-lastregion-overflowauto.html
33338                fast/regions/autoheight-middleregion.html
33339                fast/regions/autoheight-secondregion-breakoutside.html
33340                fast/regions/autoheight-secondregion.html
33341                fast/regions/autoheight-singleregion-breakafteralways-maxheight.html
33342                fast/regions/autoheight-singleregion-breakafteralways.html
33343                fast/regions/autoheight-singleregion-breakaftermargin.html
33344                fast/regions/autoheight-singleregion-breakbeforealways-minheight.html
33345                fast/regions/autoheight-singleregion-breakbeforealways.html
33346                fast/regions/autoheight-singleregion-multiplebreaks.html
33347                fast/regions/autoheight-singleregion-overflowauto-breaksignored.html
33348                fast/regions/autoheight-singleregion-overflowauto.html
33349
33350         * rendering/RenderBlock.cpp: When encounter a region break before/after an element inside a flow thread,
33351         try to use it to determine the override logical content height for auto logical height regions.
33352         (WebCore::RenderBlock::applyBeforeBreak):
33353         (WebCore::RenderBlock::applyAfterBreak):
33354         * rendering/RenderFlowThread.cpp:
33355         (WebCore::RenderFlowThread::layout):
33356         (WebCore::RenderFlowThread::computeOverflowStateForRegions):
33357         Simulate a region break at the end of the flow thread content.
33358         (WebCore::RenderFlowThread::updateRegionsFlowThreadPortionRect):
33359         (WebCore::RenderFlowThread::clearOverrideLogicalContentHeightInRegions):
33360         Helper method used to clear the overrideLogicalContentHeight for auto logical height regions.
33361         (WebCore::RenderFlowThread::addForcedRegionBreak):
33362         Extend the method to process region breaks. The method returns true if at least one auto logical height region
33363         has its override logical content height computed.        
33364         * rendering/RenderFlowThread.h:
33365         * rendering/RenderRegion.cpp: Make these methods work with auto logical height regions.
33366         (WebCore::RenderRegion::pageLogicalHeight):
33367         (WebCore::RenderRegion::logicalHeightOfAllFlowThreadContent):
33368
33369 2012-10-26  Regina Chung  <heejin.r.chung@samsung.com>
33370
33371         [EFL][WK2] Enable WebGL
33372         https://bugs.webkit.org/show_bug.cgi?id=97652
33373
33374         Reviewed by Gyuyoung Kim.
33375
33376         Implemented GraphicsSurface for EFL to enable WebGL for WebKit2.
33377         Depends on GLX since Evas doesn't provide the necessary functionality.
33378
33379         No new tests. Covered by existing tests.
33380
33381         * PlatformEfl.cmake:
33382         * platform/graphics/GraphicsContext3D.h:
33383         * platform/graphics/efl/GraphicsContext3DEfl.cpp:
33384         (WebCore::GraphicsContext3D::createGraphicsSurfaces):
33385         * platform/graphics/efl/GraphicsContext3DPrivate.cpp:
33386         (WebCore::GraphicsContext3DPrivate::GraphicsContext3DPrivate):
33387         (WebCore::GraphicsContext3DPrivate::~GraphicsContext3DPrivate):
33388         (WebCore):
33389         (WebCore::GraphicsContext3DPrivate::createGraphicsSurfaces):
33390         (WebCore::GraphicsContext3DPrivate::copyToGraphicsSurface):
33391         (WebCore::GraphicsContext3DPrivate::graphicsSurfaceToken):
33392         * platform/graphics/efl/GraphicsContext3DPrivate.h:
33393         (GraphicsContext3DPrivate):
33394         * platform/graphics/opengl/GraphicsContext3DOpenGLCommon.cpp:
33395         (WebCore::GraphicsContext3D::reshape):
33396         * platform/graphics/surfaces/efl: Added.
33397         * platform/graphics/surfaces/efl/GraphicsSurfaceEfl.cpp: Added.
33398         (WebCore):
33399         (WebCore::OffScreenRootWindow::get):
33400         (WebCore::OffScreenRootWindow::~OffScreenRootWindow):
33401         (WebCore::GraphicsSurfacePrivate::GraphicsSurfacePrivate):
33402         (WebCore::GraphicsSurfacePrivate::createSurface):
33403         (WebCore::GraphicsSurfacePrivate::makeCurrent):
33404         (WebCore::GraphicsSurfacePrivate::doneCurrent):
33405         (WebCore::GraphicsSurfacePrivate::swapBuffers):
33406         (WebCore::GraphicsSurface::platformBeginPaint):
33407         (WebCore::GraphicsSurface::createReadOnlyImage):
33408         * platform/graphics/surfaces/qt/GraphicsSurfaceGLX.cpp:
33409         * platform/graphics/surfaces/qt/GraphicsSurfaceGLX.h: Added.
33410         (WebCore):
33411         (OffScreenRootWindow):
33412         (WebCore::OffScreenRootWindow::OffScreenRootWindow):
33413         (GraphicsSurfacePrivate):
33414         (WebCore::GraphicsSurfacePrivate::~GraphicsSurfacePrivate):
33415         (WebCore::GraphicsSurfacePrivate::createPixmap):
33416         (WebCore::GraphicsSurfacePrivate::copyFromTexture):
33417         (WebCore::GraphicsSurfacePrivate::display):
33418         (WebCore::GraphicsSurfacePrivate::glxPixmap):
33419         (WebCore::GraphicsSurfacePrivate::size):
33420         (WebCore::GraphicsSurfacePrivate::glContext):
33421         (WebCore::resolveGLMethods):
33422         * platform/graphics/surfaces/qt/GraphicsSurfaceQt.cpp:
33423         (WebCore):
33424         (WebCore::OffScreenRootWindow::OffScreenRootWindow::get):
33425         (WebCore::OffScreenRootWindow::~OffScreenRootWindow):
33426         (WebCore::GraphicsSurfacePrivate::GraphicsSurfacePrivate):
33427         (WebCore::GraphicsSurfacePrivate::createSurface):
33428         (WebCore::GraphicsSurfacePrivate::makeCurrent):
33429         (WebCore::GraphicsSurfacePrivate::doneCurrent):
33430         (WebCore::GraphicsSurfacePrivate::swapBuffers):
33431
33432 2012-10-26  Thiago Marcos P. Santos  <thiago.santos@intel.com>
33433
33434         Add feature flags for CSS Device Adaptation
33435         https://bugs.webkit.org/show_bug.cgi?id=95960
33436
33437         Reviewed by Kenneth Rohde Christiansen.
33438
33439         * Configurations/FeatureDefines.xcconfig:
33440         * GNUmakefile.am:
33441         * GNUmakefile.features.am:
33442
33443 2012-10-26  Li Yin  <li.yin@intel.com>
33444
33445         fast/forms/file/input-file-write-files.html should cover correct setting value
33446         https://bugs.webkit.org/show_bug.cgi?id=100085
33447
33448         Reviewed by Kentaro Hara.
33449
33450         From Spec: http://dev.w3.org/html5/spec/single-page.html#dom-input-value-filename
33451         On setting, if the new value is the empty string, it must empty the list of selected
33452         files; otherwise, it must throw an InvalidStateError exception.
33453
33454         Test: fast/forms/file/input-file-value.html
33455
33456         * html/HTMLInputElement.cpp:
33457         (WebCore::HTMLInputElement::setValue):
33458         (WebCore):
33459         * html/HTMLInputElement.h:
33460         (HTMLInputElement):
33461         * html/HTMLInputElement.idl:
33462
33463 2012-10-26  Keishi Hattori  <keishi@webkit.org>
33464
33465         Refactor calendar picker to remove _x/_y from DaysTable
33466         https://bugs.webkit.org/show_bug.cgi?id=100460
33467
33468         Reviewed by Kent Tamura.
33469
33470         _x/_y properties keep the coordinates for the selection but when we add
33471         week and month picking capabilities, the selection can't be expressed as
33472         a set of coordinates. This change will remove it.
33473
33474         No new tests. Covered by calendar-picker-*.html tests.
33475
33476         * Resources/pagepopups/calendarPicker.js:
33477         (DaysTable): Removed _x/_y properties.
33478         (DaysTable.prototype._hasSelection): Changed to refer to the DOM to see if we have a selection.
33479         (DaysTable.prototype.navigateToMonthAndKeepSelectionPosition): Lookup the selection position.
33480         (DaysTable.prototype.selectDate): Deselect first so we don't have two selections.
33481         (DaysTable.prototype._selectRangeContainingNode): Selects date/week/month containing the given day node.
33482         (DaysTable.prototype._selectRangeAtPosition): Selects date/week/month at the given position.
33483         (DaysTable.prototype._firstNodeInSelectedRange): Returns first selected day node.
33484         (DaysTable.prototype._deselect): Deselects all selections.
33485         (DaysTable.prototype._handleMouseOver): Use _selectRangeContainingNode so we don't have many places handling the selection.
33486         (DaysTable.prototype._handleMouseOut): Use _deselect.
33487         (DaysTable.prototype._handleKey): Lookup the selection position.
33488         (DaysTable.prototype.updateSelection): Use _selectRangeAtPosition.
33489
33490 2012-10-26  Ningxin Hu  <ningxin.hu@intel.com>
33491
33492         FileReader abort case causes Chromium renderer crash
33493         https://bugs.webkit.org/show_bug.cgi?id=99142
33494
33495         Reviewed by Kentaro Hara.
33496
33497         Before dispatching load event, FileReader should check if it is
33498         in aborting.
33499
33500         Test: manually launch fast/files/file-reader-abort.html in Chromium
33501         browser and compare the result with
33502         fast/files/file-reader-abort-expected.txt.
33503
33504         * fileapi/FileReader.cpp:
33505         (WebCore::FileReader::didFinishLoading):
33506
33507 2012-10-26  Julien Chaffraix  <jchaffraix@webkit.org>
33508
33509         Generate less repaint calls during subtree detaching
33510         https://bugs.webkit.org/show_bug.cgi?id=99741
33511
33512         Reviewed by Eric Seidel.
33513
33514         Following bug 98336, detach is now a subtree top-down operation. Because we
33515         track visual overflow from our children during layout for most cases, we can
33516         generate a repaint only on the subtree root.
33517
33518         On http://dglazkov.github.com/performance-tests/redraw.html, this ups the FPS to
33519         26 fps from 22 fps on my MBP (+ 15%). On PerformanceTests/layout/subtree-detach.html,
33520         it decreases the time by 35%. This is due to being the best case and we now generate
33521         only one repaint per detach phase.
33522
33523         Covered by existing pixels tests (including but not limited to repaint ones).
33524
33525         * rendering/RenderObject.cpp:
33526         (WebCore::RenderObject::destroyAndCleanupAnonymousWrappers):
33527         Changed the function not to be recursive anymore to generate one painting for
33528         our root only. Added a FIXME about using our RenderLayer for repainting to avoid
33529         the cost of computing our absolute repaint rectangle.
33530
33531         * rendering/RenderObjectChildList.cpp:
33532         (WebCore::RenderObjectChildList::removeChildNode):
33533         Removed the logic for repainting in the general case. However we still force a repaint
33534         if we have a RenderLayer as we don't track their overflow in some cases (e.g. positioned
33535         objects). This check is conservative and could be narrowed down (e.g overflow RenderLayers
33536         are properly accounted for in our clipppedOverflowRectForRepaint).
33537
33538 2012-10-26  Kenichi Ishibashi  <bashi@chromium.org>
33539
33540         local(Helvetica) in src descriptor prevent fallback
33541         https://bugs.webkit.org/show_bug.cgi?id=100446
33542
33543         Reviewed by Dan Bernstein.
33544
33545         FontCache::getCachedFontData() has a mechanism that aliases a few pairs
33546         of font family names, so that if the family name specified in the font-family
33547         property is not available on the system, but the its alias is available,
33548         it will be used instead. This is appropriate for the font-family property,
33549         but not for font family names specified in the local() function of the src
33550         descriptor in a @font-face rule.
33551
33552         This patch disables the mechanism while checking src descriptor of @font-face.
33553
33554         No new tests. It's difficult to test the change because 'Helvetica' can
33555         be mapped any other font. For example, chromium DRT uses FontConfig to
33556         map Helvetica to Times New Roman. Other ports may map Helvetica to other
33557         fonts. We can't define the expected result.
33558
33559         * css/CSSFontFaceSource.cpp:
33560         (WebCore::CSSFontFaceSource::getFontData):
33561         Call fontCache()->getCachedFontData() with checkingAlternateName = true.
33562         This disables aliasing font family names in FontCache.
33563
33564 2012-10-26  Eugene Klyuchnikov  <eustas.bug@gmail.com>
33565
33566         Web Inspector: Doctype Audits panel code
33567         https://bugs.webkit.org/show_bug.cgi?id=100371
33568
33569         Reviewed by Alexander Pavlov.
33570
33571         This is a preparation step for ongoing refactoring.
33572         It is much easier to read doctyped code.
33573
33574         * inspector/front-end/AuditRules.js:
33575         (WebInspector.AuditRules.MinimizeDnsLookupsRule.prototype.doRun):
33576         Replaced "undefined" with "null"
33577         * inspector/front-end/AuditsPanel.js:
33578         (WebInspector.AuditCategory.prototype.callbackWrapper):
33579         Removed callback parameter indirection.        
33580         (WebInspector.AuditRuleResult.prototype.addFormatted):
33581         Converted private instance function to scoped function.
33582
33583 2012-10-26  János Badics  <jbadics@inf.u-szeged.hu>
33584
33585         [Qt]REGRESSION(r131428): cookies.db created on wrong place
33586         https://bugs.webkit.org/show_bug.cgi?id=99445
33587
33588         Reviewed by Simon Hausmann.
33589
33590         Added a slash to the path of cookies.db in CookieJarQt.cpp.
33591
33592         * platform/qt/CookieJarQt.cpp:
33593         (WebCore::SharedCookieJarQt::SharedCookieJarQt):
33594
33595 2012-10-26  Adam Barth  <abarth@webkit.org>
33596
33597         Unreviewed. This ASSERT is no longer correct (and fires on many tests.)
33598
33599         * bindings/v8/V8DOMWrapper.h:
33600         (WebCore::V8DOMWrapper::setJSWrapperForDOMObject):
33601
33602 2012-10-26  Kent Tamura  <tkent@chromium.org>
33603
33604         [Chromium-Win] Support shortTimeFormat
33605         https://bugs.webkit.org/show_bug.cgi?id=100471
33606
33607         Reviewed by Kentaro Hara.
33608
33609         No new tests. Covered by fast/forms/time-multiple-fields/ and
33610         WebKit/chromium/tests/LocaleWinTest.
33611
33612         * platform/text/LocaleWin.cpp:
33613         (WebCore::LocaleWin::shortTimeFormat):
33614         Gets a format by LOCALE_SSHORTTIME. If it fails, remove "<delimiter>ss"
33615         from the format by LOCALE_STIMEFORMAT.
33616         * platform/text/LocaleWin.h:
33617         (LocaleWin): Declare m_timeFormatWithoutSeconds.
33618
33619 2012-10-26  Adam Barth  <abarth@webkit.org>
33620
33621         Unreviewed. Update run-bindings-tests results after recent active DOM
33622         object changes.
33623
33624         * bindings/scripts/test/V8/V8TestInterface.cpp:
33625         (WebCore::V8TestInterface::constructorCallback):
33626         (WebCore::V8TestInterface::wrapSlow):
33627         * bindings/scripts/test/V8/V8TestInterface.h:
33628         (WebCore::V8TestInterface::wrap):
33629         * bindings/scripts/test/V8/V8TestNamedConstructor.cpp:
33630         (WebCore::V8TestNamedConstructorConstructorCallback):
33631         (WebCore::V8TestNamedConstructor::wrapSlow):
33632         * bindings/scripts/test/V8/V8TestNamedConstructor.h:
33633         (WebCore::V8TestNamedConstructor::wrap):
33634
33635 2012-10-26  MORITA Hajime  <morrita@google.com>
33636
33637         [V8] REGRESSION(132540) Assertion failure on V8DOMWrapper::setJSWrapperForDOMNode()
33638         https://bugs.webkit.org/show_bug.cgi?id=100462
33639
33640         Reviewed by Adam Barth.
33641
33642         Removed the no longer correct assertion statement.
33643
33644         No new tests. Covered by breaking tests.
33645
33646         * bindings/v8/V8DOMWrapper.cpp:
33647         (WebCore::V8DOMWrapper::setJSWrapperForDOMNode):
33648
33649 2012-10-25  Adam Barth  <abarth@webkit.org>
33650
33651         [V8] WorkerContextExecutionProxy should use ScopedPersistent
33652         https://bugs.webkit.org/show_bug.cgi?id=100443
33653
33654         Reviewed by Eric Seidel.
33655
33656         This class was manually re-implementing the ScopedPersistent pattern.
33657
33658         * bindings/v8/WorkerContextExecutionProxy.cpp:
33659         (WebCore::WorkerContextExecutionProxy::dispose):
33660         (WebCore::WorkerContextExecutionProxy::initializeIfNeeded):
33661         (WebCore::WorkerContextExecutionProxy::evaluate):
33662         * bindings/v8/WorkerContextExecutionProxy.h:
33663         (WebCore::WorkerContextExecutionProxy::context):
33664         (WorkerContextExecutionProxy):
33665
33666 2012-10-25  Peter Wang  <peter.wang@torchmobile.com.cn>
33667
33668         A mistake in WebCore::JavaScriptCallFrame::evaluate which will cause assert failed
33669         https://bugs.webkit.org/show_bug.cgi?id=100347
33670
33671         Reviewed by Mark Lam and Filip Pizlo.
33672
33673         In worker context, calling "JSDOMWindowBase::commonJSGlobalData" will cause assert,
33674         since there is "ASSERT(isMainThread())" in "JSDOMWindowBase::commonJSGlobalData".
33675
33676         No new test case, since no behaviour changed.
33677
33678         * bindings/js/JavaScriptCallFrame.cpp:
33679         (WebCore::JavaScriptCallFrame::evaluate):
33680
33681 2012-10-25  Adam Barth  <abarth@webkit.org>
33682
33683         [V8] We can merge the wrapper maps for DOM objects and active DOM objects
33684         https://bugs.webkit.org/show_bug.cgi?id=100432
33685
33686         Reviewed by Eric Seidel.
33687
33688         Now that we use the same object to visit both DOM objects and active
33689         DOM objects, there's no reason to keep them in separate hash maps.
33690
33691         * bindings/scripts/CodeGeneratorV8.pm:
33692         (GetDomMapName):
33693         * bindings/v8/DOMDataStore.cpp:
33694         (WebCore::DOMDataStore::DOMDataStore):
33695         (WebCore::DOMDataStore::~DOMDataStore):
33696         (WebCore::DOMDataStore::reportMemoryUsage):
33697         * bindings/v8/DOMDataStore.h:
33698         (DOMDataStore):
33699         * bindings/v8/V8DOMMap.cpp:
33700         * bindings/v8/V8DOMMap.h:
33701         (NodeWrapperVisitor):
33702         (WebCore):
33703         * bindings/v8/V8DOMWrapper.h:
33704         (V8DOMWrapper):
33705         * bindings/v8/V8GCController.cpp:
33706         (WebCore::V8GCController::majorGCPrologue):
33707         * bindings/v8/custom/V8WebSocketCustom.cpp:
33708         (WebCore::V8WebSocket::constructorCallback):
33709         * bindings/v8/custom/V8XMLHttpRequestConstructor.cpp:
33710         (WebCore::V8XMLHttpRequest::constructorCallback):
33711
33712 2012-10-25  Charles Wei  <charles.wei@torchmobile.com.cn>
33713
33714         [BlackBerry] User Challenged again after browser restart for HTTP/FTP sites already successfully authenticated.
33715         https://bugs.webkit.org/show_bug.cgi?id=100448
33716
33717         Reviewed by George Staikos.
33718
33719         Internally reviewed by Joe Mason.
33720
33721         We didn't check the persistent Credential Storage for Credentials when challenged by the server.
33722
33723         Manual Test: login to ftp://localhost on BlackBerry device, and restart the browser to login again.
33724
33725         * platform/network/blackberry/NetworkJob.cpp:
33726         (WebCore::NetworkJob::sendRequestWithCredentials):
33727
33728 2012-10-25  Joshua Bell  <jsbell@chromium.org>
33729
33730         IndexedDB: Add histogram statistics for backing store errors
33731         https://bugs.webkit.org/show_bug.cgi?id=98465
33732
33733         Reviewed by Adam Barth.
33734
33735         Define a macro for consistent asserting (during development), logging, and recording
33736         internal backing store errors via histograms. Define specific histogram values to
33737         track issues with opening backing stores to gather stats on corruption.
33738
33739         No new tests - just the stats, ma'am, just the stats.
33740
33741         * Modules/indexeddb/IDBLevelDBBackingStore.cpp:
33742         (WebCore):
33743         (WebCore::setUpMetadata):
33744         (WebCore::IDBLevelDBBackingStore::open):
33745         (WebCore::IDBLevelDBBackingStore::getIDBDatabaseMetaData):
33746         (WebCore::IDBLevelDBBackingStore::createIDBDatabaseMetaData):
33747         (WebCore::IDBLevelDBBackingStore::updateIDBDatabaseIntVersion):
33748         (WebCore::IDBLevelDBBackingStore::updateIDBDatabaseMetaData):
33749         (WebCore::deleteRange):
33750         (WebCore::IDBLevelDBBackingStore::getObjectStores):
33751         (WebCore::IDBLevelDBBackingStore::createObjectStore):
33752         (WebCore::IDBLevelDBBackingStore::putObjectStoreRecord):
33753         (WebCore::IDBLevelDBBackingStore::maybeUpdateKeyGeneratorCurrentNumber):
33754         (WebCore::IDBLevelDBBackingStore::forEachObjectStoreRecord):
33755         (WebCore::IDBLevelDBBackingStore::getIndexes):
33756         (WebCore::IDBLevelDBBackingStore::createIndex):
33757         (WebCore::IDBLevelDBBackingStore::deleteIndex):
33758         (WebCore::IDBLevelDBBackingStore::findKeyInIndex):
33759
33760 2012-10-25  Adam Barth  <abarth@webkit.org>
33761
33762         [V8] We can merge ActiveDOMObjectPrologueVisitor with ObjectVisitor
33763         https://bugs.webkit.org/show_bug.cgi?id=100430
33764
33765         Reviewed by Eric Seidel.
33766
33767         There's no reason for these visitors to be separate objects anymore.
33768
33769         * bindings/v8/V8GCController.cpp:
33770         (WebCore::ObjectVisitor::ObjectVisitor):
33771         (WebCore::ObjectVisitor::visitDOMWrapper):
33772         (WebCore::V8GCController::majorGCPrologue):
33773
33774 2012-10-25  Tony Chang  <tony@chromium.org>
33775
33776         Remove unused static methods from DOMTimer.h
33777         https://bugs.webkit.org/show_bug.cgi?id=100427
33778
33779         Reviewed by Kenneth Russell.
33780
33781         Since these values got moved into Settings, these methods are no longer called.
33782
33783         No new tests, removing dead code.
33784
33785         * page/DOMTimer.h:
33786         (DOMTimer): Remove unused getters.
33787
33788 2012-10-25  Leo Yang  <leoyang@rim.com>
33789
33790         [BlackBerry] Infinite redirect loop is not displayed to user
33791         https://bugs.webkit.org/show_bug.cgi?id=100420
33792
33793         Reviewed by George Staikos.
33794
33795         CNN.com is redirecting us infinitely with 302 http code and response body. We catch
33796         it my setting our extended error code as we defined. But we were not trying to notify
33797         error because we have received body. This was wrong. For extended http status code
33798         which is less than 0 we should display our own error page regardless there was data
33799         received from the server or not.
33800
33801         Tested by manually loading CNN.com.
33802
33803         * platform/network/blackberry/NetworkJob.cpp:
33804         (WebCore::NetworkJob::shouldNotifyClientFailed):
33805
33806 2012-10-25  Nico Weber  <thakis@chromium.org>
33807
33808         Flip ImageOrientation coordinate system from lefthanded to righthanded
33809         https://bugs.webkit.org/show_bug.cgi?id=100414
33810
33811         Reviewed by Eric Seidel.
33812
33813         platform/graphics, noteably GraphicsContext uses a right-handed
33814         coordinate system (origin in the top left corner, x growing to the
33815         right, y to the bottom).  ImageOrientation was an outlier from
33816         and used a left-handed coordinate system.  This patch makes
33817         ImageOrientation match the rest of platform/graphics.
33818
33819         This is a pure refactoring and has no observable effects.
33820
33821         * platform/chromium/DragImageChromiumSkia.cpp:
33822         (WebCore::createDragImageFromImage):
33823         * platform/graphics/ImageOrientation.cpp:
33824         (WebCore::ImageOrientation::transformFromDefault):
33825         * platform/graphics/cg/GraphicsContextCG.cpp:
33826         (WebCore::GraphicsContext::drawNativeImage):
33827         * platform/graphics/skia/ImageSkia.cpp:
33828         (WebCore::BitmapImage::draw):
33829         * platform/mac/DragImageMac.mm:
33830         (WebCore::createDragImageFromImage):
33831         * rendering/RenderObject.cpp:
33832         (WebCore::RenderObject::shouldRespectImageOrientation):
33833
33834 2012-10-25  Keishi Hattori  <keishi@webkit.org>
33835
33836         Hide popup while transitioning from the suggestion picker to the calendar picker
33837         https://bugs.webkit.org/show_bug.cgi?id=99537
33838
33839         Reviewed by Kent Tamura.
33840
33841         Right now you can see a squished calendar picker while transitioning
33842         from suggestion picker from calendar picker. This change will hide the
33843         popup before opening the calendar picker.
33844
33845         No new tests.
33846
33847         * Resources/pagepopups/pickerCommon.js: Hiding the window will also trigger a resize event so I created a separate event, didOpenPicker.
33848         (hideWindow): Resize the window to 1x1 because we can't resize to 0x0.
33849         * Resources/pagepopups/suggestionPicker.js:
33850         (SuggestionPicker.prototype.selectEntry): Hide the window first and then open the calendar picker.
33851
33852 2012-10-25  Anders Carlsson  <andersca@apple.com>
33853
33854         Fix build.
33855
33856         * page/mac/EventHandlerMac.mm:
33857         (WebCore::EventHandler::needsKeyboardEventDisambiguationQuirks):
33858
33859 2012-10-25  Anders Carlsson  <andersca@apple.com>
33860
33861         Remove feed and feeds URL scheme workarounds
33862         https://bugs.webkit.org/show_bug.cgi?id=100442
33863
33864         Reviewed by Dan Bernstein.
33865
33866         * dom/DocumentEventQueue.cpp:
33867         (WebCore::DocumentEventQueue::enqueueOrDispatchScrollEvent):
33868         * page/mac/EventHandlerMac.mm:
33869         (WebCore::EventHandler::needsKeyboardEventDisambiguationQuirks):
33870
33871 2012-10-25  Sheriff Bot  <webkit.review.bot@gmail.com>
33872
33873         Unreviewed, rolling out r132514.
33874         http://trac.webkit.org/changeset/132514
33875         https://bugs.webkit.org/show_bug.cgi?id=100440
33876
33877         "Broke chromium content_browsertests AccessibilityAriaMenu
33878         AccessibilityInputRange AccessibilityListMarkers" (Requested
33879         by scheib on #webkit).
33880
33881         * accessibility/AXObjectCache.cpp:
33882         (WebCore::AXObjectCache::getOrCreate):
33883         (WebCore::AXObjectCache::contentChanged):
33884         (WebCore::AXObjectCache::childrenChanged):
33885         (WebCore::AXObjectCache::handleAriaRoleChanged):
33886         * accessibility/AXObjectCache.h:
33887         (AXObjectCache):
33888         (WebCore::AXObjectCache::contentChanged):
33889         * accessibility/AccessibilityObject.cpp:
33890         (WebCore::AccessibilityObject::AccessibilityObject):
33891         * accessibility/AccessibilityObject.h:
33892         (WebCore::AccessibilityObject::contentChanged):
33893         (AccessibilityObject):
33894         * accessibility/AccessibilityRenderObject.cpp:
33895         (WebCore::AccessibilityRenderObject::accessibilityIsIgnored):
33896         (WebCore::AccessibilityRenderObject::correspondingControlForLabelElement):
33897         (WebCore::AccessibilityRenderObject::contentChanged):
33898         * accessibility/AccessibilityRenderObject.h:
33899         (AccessibilityRenderObject):
33900         * accessibility/AccessibilityScrollView.cpp:
33901         (WebCore::AccessibilityScrollView::isAttachment):
33902         (WebCore::AccessibilityScrollView::widgetForAttachmentView):
33903         (WebCore::AccessibilityScrollView::updateScrollbars):
33904         (WebCore::AccessibilityScrollView::webAreaObject):
33905         (WebCore::AccessibilityScrollView::elementRect):
33906         (WebCore::AccessibilityScrollView::documentFrameView):
33907         (WebCore::AccessibilityScrollView::parentObject):
33908         (WebCore::AccessibilityScrollView::parentObjectIfExists):
33909         (WebCore::AccessibilityScrollView::getScrollableAreaIfScrollable):
33910         (WebCore::AccessibilityScrollView::scrollTo):
33911         * accessibility/AccessibilityScrollView.h:
33912         (WebCore::AccessibilityScrollView::scrollView):
33913         (AccessibilityScrollView):
33914         * accessibility/AccessibilityTable.cpp:
33915         (WebCore::AccessibilityTable::isDataTable):
33916         * accessibility/chromium/AXObjectCacheChromium.cpp:
33917         (WebCore::AXObjectCache::postPlatformNotification):
33918         * dom/Element.cpp:
33919         (WebCore::Element::attributeChanged):
33920         * rendering/RenderBlock.cpp:
33921         (WebCore::RenderBlock::deleteLineBoxTree):
33922         (WebCore::RenderBlock::createAndAppendRootInlineBox):
33923         * rendering/RenderObject.cpp:
33924         (WebCore::RenderObject::styleWillChange):
33925         * rendering/RenderText.cpp:
33926         (WebCore::RenderText::setText):
33927
33928 2012-10-25  Dan Bernstein  <mitz@apple.com>
33929
33930         <rdar://problem/12544626> [cg] RenderBlock::selectionGaps() is extremely slow when there are many floats
33931         https://bugs.webkit.org/show_bug.cgi?id=100413
33932
33933         Reviewed by Anders Carlsson.
33934
33935         RenderBlock::selectionGaps() calls GraphicsContext::clipOut(const IntRect&) for each float.
33936         Sped up the Core Graphics implementation of this function considerably by removing an
33937         unnecessary call to CGContextGetClipBoundingBox.
33938
33939         * platform/graphics/cg/GraphicsContextCG.cpp:
33940         (WebCore::GraphicsContext::clipOut): Changed to use CGRectInfinite rather than the bounding
33941         box of the current clip.
33942
33943 2012-10-25  Tim Horton  <timothy_horton@apple.com>
33944
33945         REGRESSION (132422): Tiles don't move when the Find dialog causes programmatic scrolls
33946         https://bugs.webkit.org/show_bug.cgi?id=100433
33947         <rdar://problem/12575582>
33948
33949         Reviewed by Simon Fraser.
33950
33951         Actually update GraphicsLayer positions from updateMainFrameScrollPosition if
33952         we're doing a programmatic scroll; otherwise programmatic scrolls while scrolling
33953         on the main thread will short-circuit and end up only updating the GraphicsLayer's
33954         notion of its current position, but never synchronizing that to the layer itself.
33955
33956         No new tests, as this is currently untestable.
33957
33958         * page/scrolling/ScrollingCoordinator.cpp:
33959         (WebCore::ScrollingCoordinator::updateMainFrameScrollPosition):
33960
33961 2012-10-25  Simon Fraser  <simon.fraser@apple.com>
33962
33963         Tiled layers are missing content on zooming
33964         https://bugs.webkit.org/show_bug.cgi?id=100422
33965
33966         Reviewed by Beth Dakin.
33967
33968         Tiled layers using TileCaches were missing content after
33969         zooming. TileCache was confused in the presence of scaling;
33970         it unapplies the scale on the layer above the tiles (so the tiles
33971         live in screen space), and computed the tile coverage rect
33972         in these tile coordinates. This worked for the page tile cache,
33973         because its visibleRect was sent in pre-scaled. However, for
33974         tiled layer TileCaches this was wrong.
33975         
33976         Fix by scaling the tile coverage rect by m_scale before
33977         using it to compute which tiles to throw away and bring in.
33978         
33979         To fix the problem of the visibleRect being pre-scaled
33980         for the page tile cache, remove the setting of the visibleRect
33981         in RenderLayerCompositor::frameViewDidScroll(), and rely on 
33982         GraphicsLayerCA::updateVisibleRect() which computes the
33983         visible rect in the correct, layer coordinates.
33984
33985         Test: compositing/tiling/tile-cache-zoomed.html
33986
33987         * platform/graphics/ca/GraphicsLayerCA.cpp:
33988         (WebCore::GraphicsLayerCA::updateVisibleRect): Call setVisibleRect()
33989         for all tile cache layers, not just tiled layer ones, but only do
33990         the visible rect adjustment for those that are not the page tile cache.
33991         * platform/graphics/ca/mac/TileCache.mm:
33992         (WebCore::TileCache::revalidateTiles): Use a coverageRectInTileCoords rect,
33993         which is scaled to be in the same coordinate space as the tile grid.
33994         * rendering/RenderLayerCompositor.cpp:
33995         (WebCore::RenderLayerCompositor::frameViewDidScroll): Remove the code
33996         that sets the setVisibleRect() on the TiledBacking.
33997
33998 2012-10-25  Adam Barth  <abarth@webkit.org>
33999
34000         [V8] ActiveDOMNodes no longer require a separate wrapper map
34001         https://bugs.webkit.org/show_bug.cgi?id=100352
34002
34003         Reviewed by Eric Seidel.
34004
34005         There is no longer any reason to keep a separate DOM wrapper map for
34006         active DOM nodes. We can simply store them in the normal DOM node
34007         wrapper map (which is more efficient because it doesn't use a HashMap).
34008
34009         * bindings/scripts/CodeGeneratorV8.pm:
34010         (GetDomMapName):
34011         * bindings/v8/DOMDataStore.cpp:
34012         (WebCore::DOMDataStore::DOMDataStore):
34013         (WebCore::DOMDataStore::~DOMDataStore):
34014         (WebCore::DOMDataStore::reportMemoryUsage):
34015         * bindings/v8/DOMDataStore.h:
34016         (DOMDataStore):
34017         * bindings/v8/IntrusiveDOMWrapperMap.h:
34018         * bindings/v8/V8DOMMap.cpp:
34019         * bindings/v8/V8DOMMap.h:
34020         (WebCore):
34021         * bindings/v8/V8DOMWrapper.cpp:
34022         * bindings/v8/V8DOMWrapper.h:
34023         (V8DOMWrapper):
34024         (WebCore::V8DOMWrapper::getCachedWrapper):
34025
34026 2012-10-25  Tony Chang  <tony@chromium.org>
34027
34028         Unreviewed, fix the build on Mac.
34029
34030         Putting the getter in the Settings.h caused the global variable to be inlined and needing it to be exported.
34031         Instead, put the implementation in the cpp file.
34032
34033         * page/Settings.cpp:
34034         (WebCore::Settings::defaultMinDOMTimerInterval):
34035         (WebCore):
34036         (WebCore::Settings::defaultDOMTimerAlignmentInterval):
34037         * page/Settings.h:
34038         (Settings):
34039
34040 2012-10-25  Tony Chang  <tony@chromium.org>
34041
34042         Move default DOM Timer values into Settings
34043         https://bugs.webkit.org/show_bug.cgi?id=100405
34044
34045         Reviewed by Kenneth Russell.
34046
34047         Move the global values for defaultMinDOMTimerInterval and defaultDOMTimerAlignmentInterval into
34048         the Settings object. This is more consistent with other global settings and allows us to remove
34049         the setters on the DOMTimer object.
34050
34051         No new tests, this is a refactor.
34052
34053         * page/DOMTimer.cpp: Remove globals.
34054         * page/DOMTimer.h:
34055         (WebCore::DOMTimer::defaultMinTimerInterval): Call through to Settings
34056         (WebCore::DOMTimer::defaultTimerAlignmentInterval): Call through to Settings.
34057         (DOMTimer): Remove setters.
34058         * page/Settings.cpp:
34059         (WebCore::Settings::setDefaultMinDOMTimerInterval): Use a global in Settings.
34060         (WebCore::Settings::setDefaultDOMTimerAlignmentInterval): Use a global in Settings.
34061         * page/Settings.h:
34062         (WebCore::Settings::defaultMinDOMTimerInterval): Inline the getter.
34063         (WebCore::Settings::defaultDOMTimerAlignmentInterval): Inline the getter.
34064         (Settings): Add globals.
34065
34066 2012-10-25  Simon Fraser  <simon.fraser@apple.com>
34067
34068         Report the tile coverage rect in layer coords, and add some tests for tiled backing and zooming
34069         https://bugs.webkit.org/show_bug.cgi?id=100416
34070
34071         Reviewed by Beth Dakin.
34072
34073         The tileCoverageRect is computed in "tile" coordinates, which don't match
34074         the visibleRect coordinates. It's more useful when testing to see the
34075         tile coverage relative to the view bounds, so unapply the scale whem
34076         reporting tile coverage in tests.
34077
34078         Tests: platform/mac/tiled-drawing/tiled-drawing-zoom-scrolled.html
34079                platform/mac/tiled-drawing/tiled-drawing-zoom.html
34080
34081         * platform/graphics/ca/mac/TileCache.h:
34082         * platform/graphics/ca/mac/TileCache.mm:
34083         (WebCore::TileCache::tileCoverageRect):
34084
34085 2012-10-25  Sheriff Bot  <webkit.review.bot@gmail.com>
34086
34087         Unreviewed, rolling out r132269.
34088         http://trac.webkit.org/changeset/132269
34089         https://bugs.webkit.org/show_bug.cgi?id=100412
34090
34091         "Speculative rollout of r132269 in hopes of fixing a
34092         mysterious recalcStyle crasher" (Requested by eseidel on
34093         #webkit).
34094
34095         * rendering/RenderBlock.cpp:
34096         (WebCore::RenderBlock::updateFirstLetter):
34097         * rendering/RenderListBox.h:
34098         * rendering/RenderObjectChildList.cpp:
34099         (WebCore::RenderObjectChildList::updateBeforeAfterContent):
34100
34101 2012-10-25  Stephen White  <senorblanco@chromium.org>
34102
34103         Change ReferenceFilterOperations to reference (own) the data passed to
34104         them.
34105         https://bugs.webkit.org/show_bug.cgi?id=97715
34106
34107         Reviewed by Nate Chapin.
34108
34109         Covered by css3/filters/reference-filter-update-after-remove.html
34110
34111         * css/CachedSVGDocumentReference.h: Added.
34112         (CachedSVGDocumentReference):
34113         New class which holds a CachedResourceHandle<CachedSVGDocument>, but
34114         can be placed in ReferenceFilterOperation's Data.  It also calls
34115         addClient() / removeClient(), in order to keep the CachedSVGDocument
34116         alive until the FilterEffectRenderer can get it.
34117         (WebCore::CachedSVGDocumentReference::CachedSVGDocumentReference):
34118         (WebCore::CachedSVGDocumentReference::~CachedSVGDocumentReference):
34119         (WebCore::CachedSVGDocumentReference::document):
34120         Accessor for the underlying document.
34121         * css/StyleResolver.cpp:
34122         (WebCore::StyleResolver::loadPendingSVGDocuments):
34123         Wrap the CachedSVGDocument handle in a CachedSVGDocumentReference, and
34124         transfer ownership to the ReferenceFilterOperation.
34125         (WebCore::StyleResolver::createFilterOperations):
34126         Same as above.
34127         * platform/graphics/filters/FilterOperation.h:
34128         (Data):
34129         New base class for generic data which can be deleted polymorphically.
34130         (WebCore::FilterOperation::ReferenceFilterOperation::data):
34131         (WebCore::FilterOperation::ReferenceFilterOperation::setData):
34132         Use the above-mentioned Data class, instead of a void *.
34133         (WebCore::FilterOperation::ReferenceFilterOperation::ReferenceFilterOperation):
34134         Don't initialize data to null; OwnPtr will do that for us.
34135         * rendering/FilterEffectRenderer.cpp:
34136         (WebCore::FilterEffectRenderer::buildReferenceFilter):
34137         Extract the cached SVG document from the reference data.
34138         * rendering/RenderLayerFilterInfo.cpp:
34139         (WebCore::RenderLayerFilterInfo::updateReferenceFilterClients):
34140         Extract the cached SVG document from the reference data.
34141
34142 2012-10-25  Simon Fraser  <simon.fraser@apple.com>
34143
34144         Incorrect tile size in the slow scrolling case
34145         https://bugs.webkit.org/show_bug.cgi?id=100411
34146
34147         Reviewed by Beth Dakin.
34148
34149         If we're in slow scrolling mode, we don't want to inflate the
34150         coverage rect based on scrollability. This ensures that the few
34151         big tiles we create have the correct size.
34152
34153         * platform/graphics/ca/mac/TileCache.mm:
34154         (WebCore::TileCache::computeTileCoverageRect):
34155
34156 2012-10-25  Nico Weber  <thakis@chromium.org>
34157
34158         Move ImageOrientation transform back in CG space (lower-left origin), adapt the skia code to work with that, turn on feature for chromium
34159         https://bugs.webkit.org/show_bug.cgi?id=100401
34160
34161         Reviewed by Eric Seidel.
34162
34163         This is an alternative fix for the regression caused by r132384 / bug
34164         100179. The bug exists because different pieces of code didn't agree
34165         which space the transformation returned by ImageOrientation was in.
34166
34167         r132384 moved it from CG coordinates to skia coordinates, but didn't
34168         do it completetely. This CL reverts this part of r132384 so that the
34169         transformation is in CG coordinates again, and adapts the skia code to
34170         work in that space.
34171
34172         Alternatively, https://bugs.webkit.org/show_bug.cgi?id=100319 woudl
34173         make the cg code work with the transform in skia coordinates.
34174
34175         Covered by fast/images/exif-orientation.html
34176
34177         * platform/chromium/DragImageChromiumSkia.cpp:
34178         (WebCore::createDragImageFromImage):
34179         * platform/graphics/ImageOrientation.cpp:
34180         (WebCore::ImageOrientation::transformFromDefault):
34181         * platform/graphics/ImageOrientation.h:
34182         (WebCore):
34183         (WebCore::ImageOrientation::usesWidthAsHeight):
34184         (WebCore::ImageOrientation::fromEXIFValue):
34185         (ImageOrientation):
34186         * platform/graphics/cg/GraphicsContextCG.cpp:
34187         (WebCore::GraphicsContext::drawNativeImage):
34188         * platform/graphics/skia/ImageSkia.cpp:
34189         (WebCore::BitmapImage::draw):
34190         * platform/mac/DragImageMac.mm:
34191         (WebCore::createDragImageFromImage):
34192         * rendering/RenderObject.cpp:
34193         (WebCore::RenderObject::shouldRespectImageOrientation):
34194
34195 2012-10-25  Simon Fraser  <simon.fraser@apple.com>
34196
34197         Log the tile cache tile size in test output
34198         https://bugs.webkit.org/show_bug.cgi?id=100409
34199
34200         Reviewed by Beth Dakin.
34201
34202         When dumping tile cache information in tests, also dump the tile size.
34203
34204         * platform/graphics/TiledBacking.h:
34205         * platform/graphics/ca/GraphicsLayerCA.cpp:
34206         (WebCore::GraphicsLayerCA::dumpAdditionalProperties):
34207         * platform/graphics/ca/mac/TileCache.h:
34208
34209 2012-10-25  Arnaud Renevier  <a.renevier@sisa.samsung.com>
34210
34211         do not multiply/demultiply colors when alpha is 255
34212         https://bugs.webkit.org/show_bug.cgi?id=89246
34213
34214         Reviewed by Kenneth Rohde Christiansen.
34215
34216         Do not use colorFromPremultipliedARGB in getImageData nor
34217         premultipliedARGBFromColor in putByteArray. Avoiding object creation
34218         and function call make canvas.getImageData about 10% faster and
34219         canvas.putImageData about 30% faster.
34220
34221         Also, we avoid multiplication/demultiplication computation when alpha
34222         is 255. Result is the same, but when there is no transparency,
34223         canvas.getImageData is about 4x faster, and canvas.putImageData is
34224         about 2x faster.
34225
34226         No new tests. No change in behavior.
34227
34228         * platform/graphics/cairo/ImageBufferCairo.cpp:
34229         (WebCore::getImageData):
34230         (WebCore::ImageBuffer::putByteArray):
34231
34232 2012-10-25  Nate Chapin  <japhet@chromium.org>
34233
34234         Add a main resource type to the memory cache
34235         https://bugs.webkit.org/show_bug.cgi?id=99864
34236
34237         Reviewed by Adam Barth.
34238
34239         No new tests, no functionality change.
34240
34241         * inspector/InspectorPageAgent.cpp:
34242         (WebCore::hasTextContent):
34243         (WebCore::InspectorPageAgent::cachedResourceType):
34244         * loader/SubresourceLoader.cpp:
34245         (WebCore::SubresourceLoader::willSendRequest):
34246         (WebCore::SubresourceLoader::didReceiveResponse):
34247         (WebCore::SubresourceLoader::didFail):
34248         * loader/cache/CachedRawResource.cpp:
34249         (WebCore::CachedRawResource::CachedRawResource):
34250         (WebCore::CachedRawResource::addAdditionalRequestHeaders):
34251         (WebCore):
34252         (WebCore::CachedRawResource::setShouldBufferData):
34253         (WebCore::CachedRawResource::loader):
34254         (WebCore::CachedRawResource::clear):
34255         * loader/cache/CachedRawResource.h:
34256         (WebCore):
34257         (CachedRawResource):
34258         * loader/cache/CachedResource.cpp:
34259         (WebCore::defaultPriorityForResourceType):
34260         (WebCore::cachedResourceTypeToTargetType):
34261         (WebCore::CachedResource::updateResourceRequest):
34262         (WebCore):
34263         * loader/cache/CachedResource.h:
34264         (WebCore::CachedResource::setResourceError):
34265         (WebCore::CachedResource::resourceError):
34266         (CachedResource):
34267         (WebCore::CachedResource::ignoreForRequestCount):
34268         * loader/cache/CachedResourceLoader.cpp:
34269         (WebCore::createResource):
34270         (WebCore::CachedResourceLoader::requestRawResource):
34271         (WebCore::CachedResourceLoader::checkInsecureContent):
34272         (WebCore::CachedResourceLoader::canRequest):
34273         (WebCore::CachedResourceLoader::determineRevalidationPolicy):
34274         * loader/cache/CachedResourceLoader.h:
34275         (CachedResourceLoader):
34276         * platform/network/ResourceLoadPriority.h:
34277         * platform/network/cf/ResourceRequestCFNet.h:
34278         (WebCore::toResourceLoadPriority):
34279         (WebCore::toHTTPPipeliningPriority):
34280
34281 2012-10-25  Ojan Vafai  <ojan@chromium.org>
34282
34283         [V8] Add histograms to measure V8 work done during window close and navigation
34284         https://bugs.webkit.org/show_bug.cgi?id=100358
34285
34286         Reviewed by Adam Barth.
34287
34288         * bindings/v8/ScriptController.cpp:
34289         (WebCore::ScriptController::clearForClose):
34290         (WebCore::ScriptController::clearWindowShell):
34291
34292 2012-10-25  Antti Koivisto  <antti@apple.com>
34293
34294         Avoid unnecessary style recalcs on id attribute mutation.
34295         https://bugs.webkit.org/show_bug.cgi?id=100395
34296
34297         Reviewed by Andreas Kling.
34298
34299         There is no need to invalidate element style on id attribute change if neither the old nor the new id were 
34300         mentioned in any stylesheet. This is similar to the optimization we already have for class attributes.
34301         
34302         Recalculating element style is expensive. It seems id attribute mutation is often used in scripts for purposes other than styling. 
34303
34304         * css/StyleResolver.cpp:
34305         (WebCore::StyleResolver::hasSelectorForId):
34306         (WebCore):
34307         * css/StyleResolver.h:
34308         * dom/Element.cpp:
34309         (WebCore::makeIdForStyleResolution):
34310         (WebCore):
34311         (WebCore::Element::attributeChanged):
34312
34313 2012-10-25  Dominic Mazzoni  <dmazzoni@google.com>
34314
34315         AX: Notification should be sent when accessibilityIsIgnored changes
34316         https://bugs.webkit.org/show_bug.cgi?id=99547
34317
34318         Reviewed by Chris Fleizach.
34319
34320         Adds a new flag in AccessibilityObject that keeps track of the most recent
34321         value of accessibilityIsIgnored(). After certain events such as an ARIA
34322         attribute change or content change, checks the new value of
34323         accessibilityIsIgnored() and posts a "children changed" notification on the
34324         parent node if it changed, making sure the parent recomputes its vector of
34325         (unignored) children.
34326
34327         Also moves handling of attribute changes to AXObjectCache, and sends
34328         notifications for some attribute changes that were previously silent. On
34329         Chromium, all changes to an accessibility object's attributes should
34330         result in some notification.
34331
34332         Some tests would have broken because an AccessibilityScrollView was created
34333         and holding a reference to a ScrollView for an iframe after it was deleted,
34334         so this change switches AccessibilityScrollView to hold a weak reference
34335         to ScrollView instead.
34336
34337         Tests: platform/chromium/accessibility/is-ignored-change-sends-notification.html
34338                platform/chromium/accessibility/other-aria-attribute-change-sends-notification.html
34339                platform/chromium/accessibility/text-change-notification.html
34340
34341         * accessibility/AXObjectCache.cpp:
34342         (WebCore::AXObjectCache::focusedUIElementForPage):
34343         (WebCore::AXObjectCache::getOrCreate):
34344         (WebCore::AXObjectCache::textChanged):
34345         (WebCore):
34346         (WebCore::AXObjectCache::childrenChanged):
34347         (WebCore::AXObjectCache::handleAriaRoleChanged):
34348         (WebCore::AXObjectCache::handleAttributeChanged):
34349         (WebCore::AXObjectCache::labelChanged):
34350         (WebCore::AXObjectCache::recomputeIsIgnored):
34351         * accessibility/AXObjectCache.h:
34352         (AXObjectCache):
34353         (WebCore::AXObjectCache::childrenChanged):
34354         (WebCore::AXObjectCache::textChanged):
34355         (WebCore::AXObjectCache::handleAttributeChanged):
34356         (WebCore::AXObjectCache::recomputeIsIgnored):
34357         * accessibility/AccessibilityNodeObject.cpp:
34358         (WebCore::AccessibilityNodeObject::insertChild):
34359         * accessibility/AccessibilityObject.cpp:
34360         (WebCore::AccessibilityObject::AccessibilityObject):
34361         (WebCore::AccessibilityObject::cachedIsIgnoredValue):
34362         (WebCore):
34363         (WebCore::AccessibilityObject::setCachedIsIgnoredValue):
34364         (WebCore::AccessibilityObject::notifyIfIgnoredValueChanged):
34365         * accessibility/AccessibilityObject.h:
34366         (WebCore::AccessibilityObject::textChanged):
34367         (AccessibilityObject):
34368         * accessibility/AccessibilityRenderObject.cpp:
34369         (WebCore::AccessibilityRenderObject::accessibilityIsIgnored):
34370         (WebCore::AccessibilityRenderObject::correspondingControlForLabelElement):
34371         (WebCore::AccessibilityRenderObject::textChanged):
34372         (WebCore::AccessibilityRenderObject::addHiddenChildren):
34373         (WebCore::AccessibilityRenderObject::addChildren):
34374         * accessibility/AccessibilityRenderObject.h:
34375         (AccessibilityRenderObject):
34376         * accessibility/AccessibilityScrollView.cpp:
34377         (WebCore::AccessibilityScrollView::~AccessibilityScrollView):
34378         (WebCore):
34379         (WebCore::AccessibilityScrollView::detach):
34380         (WebCore::AccessibilityScrollView::isAttachment):
34381         (WebCore::AccessibilityScrollView::widgetForAttachmentView):
34382         (WebCore::AccessibilityScrollView::updateScrollbars):
34383         (WebCore::AccessibilityScrollView::webAreaObject):
34384         (WebCore::AccessibilityScrollView::elementRect):
34385         (WebCore::AccessibilityScrollView::documentFrameView):
34386         (WebCore::AccessibilityScrollView::parentObject):
34387         (WebCore::AccessibilityScrollView::parentObjectIfExists):
34388         (WebCore::AccessibilityScrollView::getScrollableAreaIfScrollable):
34389         (WebCore::AccessibilityScrollView::scrollTo):
34390         * accessibility/AccessibilityScrollView.h:
34391         (WebCore::AccessibilityScrollView::scrollView):
34392         (AccessibilityScrollView):
34393         * accessibility/AccessibilityTable.cpp:
34394         (WebCore::AccessibilityTable::isDataTable):
34395         * accessibility/chromium/AXObjectCacheChromium.cpp:
34396         (WebCore::AXObjectCache::postPlatformNotification):
34397         * dom/Element.cpp:
34398         (WebCore::Element::attributeChanged):
34399         * rendering/RenderBlock.cpp:
34400         (WebCore::RenderBlock::deleteLineBoxTree):
34401         (WebCore::RenderBlock::createAndAppendRootInlineBox):
34402         * rendering/RenderObject.cpp:
34403         (WebCore::RenderObject::styleWillChange):
34404         * rendering/RenderText.cpp:
34405         (WebCore::RenderText::setText):
34406
34407 2012-10-25  Dominik Röttsches  <dominik.rottsches@intel.com>
34408
34409         Conditionalize XHR timeout support
34410         https://bugs.webkit.org/show_bug.cgi?id=100356
34411
34412         Reviewed by Adam Barth.
34413
34414         Adding feature for XHR_TIMEOUT to disable it on ports that don't have
34415         network backend support for setTimeoutInterval.
34416
34417         No new tests, covered by http/tests/xmlhttprequest/timeout/*
34418
34419         * Configurations/FeatureDefines.xcconfig: Default ON on mac.
34420         * GNUmakefile.am:
34421         * GNUmakefile.features.am:
34422           Autotools support for the flag.
34423         * xml/XMLHttpRequest.cpp: #if ENABLE(XHR_TIMEOUT) wrapping
34424         (WebCore::XMLHttpRequest::XMLHttpRequest):
34425         (WebCore):
34426         (WebCore::XMLHttpRequest::open):
34427         (WebCore::XMLHttpRequest::createRequest):
34428         (WebCore::XMLHttpRequest::didFail):
34429         * xml/XMLHttpRequest.h: #if ENABLE(XHR_TIMEOUT) wrapping
34430         (XMLHttpRequest):
34431         * xml/XMLHttpRequest.idl: Conditional properties timeout and ontimeout (event handler).
34432
34433 2012-10-25  Tom Sepez  <tsepez@chromium.org>
34434
34435         XSSAuditor must replace form action with about:blank when reflected action detected.
34436         https://bugs.webkit.org/show_bug.cgi?id=100280
34437
34438         Reviewed by Daniel Bates.
34439
34440         Changes empty string form-action replacement to about:blank.
34441         Existing form-action.html test modified to check this case.
34442         
34443         * html/parser/XSSAuditor.cpp:
34444         (WebCore::XSSAuditor::filterFormToken):
34445
34446 2012-10-25  Kevin Ellis  <kevers@chromium.org>
34447
34448         Touch adjustment snaps to wrong target at a plugin boundary.
34449         https://bugs.webkit.org/show_bug.cgi?id=99938
34450
34451         Reviewed by Antonio Gomes.
34452
34453         Inidcate that an <embed> element can respond to
34454         mouse click events, since mouse events are forwarded
34455         to the plugin.  Fixes touch adjustment at a plugin
34456         boundary.  Prior to the patch a clickable element 
34457         adjacent to the plugin would capture synthetic mouse
34458         events from tap gestures that spanned the plugin
34459         boundary.
34460
34461         Test: touchadjustment/plugin.html
34462
34463         * html/HTMLEmbedElement.cpp:
34464         (WebCore::HTMLEmbedElement::willRespondToMouseClickEvents):
34465         (WebCore):
34466         * html/HTMLEmbedElement.h:
34467
34468 2012-10-25  Ojan Vafai  <ojan@chromium.org>
34469
34470         Get rid of ScriptController::clearForNavigation
34471         https://bugs.webkit.org/show_bug.cgi?id=100390
34472
34473         Reviewed by Adam Barth.
34474
34475         Get rid of clearForNavigation and change resetIsolatedWorlds
34476         to reset so that it can also do the hintForCollectGarbage call.
34477         No new tests. No behavior change.
34478
34479         * bindings/v8/ScriptController.cpp:
34480         (WebCore::ScriptController::reset):
34481         (WebCore::ScriptController::clearForClose):
34482         (WebCore::ScriptController::clearWindowShell):
34483         * bindings/v8/ScriptController.h:
34484         (ScriptController):
34485
34486 2012-10-25  Simon Fraser  <simon.fraser@apple.com>
34487
34488         r132427 changed the tiling behavior of tiled layer TileCaches as well as the page tile cache
34489         https://bugs.webkit.org/show_bug.cgi?id=100323
34490
34491         Reviewed by Anders Carlsson.
34492
34493         r132427 assumed that TileCaches were only used for the page, and changed the tile
34494         size behavior of all non-page TileCaches.
34495         
34496         Fix by giving TiledBacking a new 'CoverageForSlowScrolling' flag which
34497         affects the tile size behavior.
34498         
34499         Consolidated the two places that set TileCoverage into one, and in the process
34500         reduced FrameView's direct communication with TiledBacking.
34501
34502         No new tests because we can't test tile size via tests.
34503
34504         * page/FrameView.cpp:
34505         (WebCore::FrameView::didMoveOnscreen): Rely on RenderLayerCompositor to
34506         call setIsInWindow() on the main page tile cache.
34507         (WebCore::FrameView::willMoveOffscreen): Ditto.
34508         (WebCore::FrameView::performPostLayoutTasks): Rather than explicitly tell
34509         the TiledBacking that it should do stuff, just tell the compositor that
34510         layout happened.
34511         * platform/graphics/TiledBacking.h: New CoverageForSlowScrolling flag.
34512         * platform/graphics/ca/mac/TileCache.mm:
34513         (WebCore::TileCache::tileSizeForCoverageRect): Only use one big tile
34514         if the CoverageForSlowScrolling flag is set.
34515         * rendering/RenderLayerBacking.cpp:
34516         (WebCore::RenderLayerBacking::RenderLayerBacking): layer->isRootLayer()
34517         is equivalent to renderer()->isRenderView() and clearer.
34518         (WebCore::RenderLayerBacking::tiledBacking): Call adjustTileCacheCoverage().
34519         It would be nice to move the rest of this TiledBacking code from here somehow.
34520         (WebCore::RenderLayerBacking::adjustTileCacheCoverage): Update the TileCoverage
34521         flags, taking into account horizontal and vertical scrollability independently,
34522         and whether we're in slow scrolling mode.
34523         * rendering/RenderLayerBacking.h:
34524         (RenderLayerBacking):
34525         * rendering/RenderLayerCompositor.cpp:
34526         (WebCore::RenderLayerCompositor::frameViewDidLayout): Have the page
34527         tiled backing update it's coverage flags.
34528         (WebCore::RenderLayerCompositor::pageTiledBacking): Utility function.
34529         (WebCore::RenderLayerCompositor::didMoveOnscreen): Moved from FrameView.
34530         (WebCore::RenderLayerCompositor::willMoveOffscreen): Ditto.
34531         * rendering/RenderLayerCompositor.h:
34532         (RenderLayerCompositor):
34533
34534 2012-10-25  Elliott Sprehn  <esprehn@chromium.org>
34535
34536         Everything that sets RenderObject::m_style should go through setStyleInternal
34537         https://bugs.webkit.org/show_bug.cgi?id=100338
34538
34539         Reviewed by Ojan Vafai.
34540
34541         Whenever we set m_style in RenderObject go through setStyleInternal and make
34542         it inline. This gives a common place to put printfs and makes the code cleaner.
34543
34544         No new tests, just a refactor.
34545
34546         * rendering/RenderObject.cpp:
34547         (WebCore::RenderObject::createObject):
34548         (WebCore::RenderObject::setStyle):
34549         * rendering/RenderObject.h:
34550         (WebCore::RenderObject::setStyleInternal):
34551
34552 2012-10-25  Brady Eidson  <beidson@apple.com>
34553
34554         Allow LoaderStrategy to override the ResourceLoadScheduler
34555         https://bugs.webkit.org/show_bug.cgi?id=100355
34556
34557         Reviewed by Anders Carlsson.
34558
34559         Allow LoaderStrategy to override the implementation of the ResourceLoadScheduler.
34560         Add a default implementation that just returns the current ResourceLoadScheduler.
34561
34562         No new tests (No behavior change).
34563
34564         Project file stuff:
34565         * CMakeLists.txt:
34566         * GNUmakefile.list.am:
34567         * Target.pri:
34568         * WebCore.exp.in:
34569         * WebCore.gypi:
34570         * WebCore.vcproj/WebCore.vcproj:
34571         * WebCore.xcodeproj/project.pbxproj:
34572
34573         "Virtualize" ResourceLoadScheduler to expose build issues in preparation for future virtualization:
34574         * loader/ResourceLoadScheduler.cpp:
34575         (WebCore::ResourceLoadScheduler::~ResourceLoadScheduler):
34576         * loader/ResourceLoadScheduler.h:
34577         (ResourceLoadScheduler):
34578
34579         Add the new method plus a default implementation:
34580          * loader/LoaderStrategy.cpp: 
34581         (WebCore::LoaderStrategy::resourceLoadScheduler):
34582         * loader/LoaderStrategy.h:
34583
34584         When strategies are enabled, use the LoaderStrategy for this:
34585         * dom/ContainerNode.cpp:
34586         (WebCore::ContainerNode::suspendPostAttachCallbacks):
34587         (WebCore::ContainerNode::resumePostAttachCallbacks):
34588
34589         * loader/MainResourceLoader.cpp:
34590         (WebCore::MainResourceLoader::loadNow):
34591
34592         * loader/ResourceLoader.cpp:
34593         (WebCore::ResourceLoader::releaseResources):
34594         (WebCore::ResourceLoader::willSendRequest):
34595
34596         * loader/cache/CachedResource.cpp:
34597         (WebCore::CachedResource::load):
34598
34599         * loader/cache/CachedResourceLoader.cpp:
34600         (WebCore::CachedResourceLoader::performPostLoadActions):
34601
34602 2012-10-25  Yury Semikhatsky  <yurys@chromium.org>
34603
34604         Web Inspector: inspector tests failing after r132454
34605         https://bugs.webkit.org/show_bug.cgi?id=100381
34606
34607         Reviewed by Pavel Feldman.
34608
34609         Added implementation for DOMNodeWrapperMap::reportMemoryUsage method,
34610         otherwise no actual pointer is reported which breaks instrumentation.
34611
34612         * bindings/v8/IntrusiveDOMWrapperMap.h:
34613
34614 2012-10-25  Dominik Röttsches  <dominik.rottsches@intel.com>
34615
34616         Init timeout flag in ResourceErrorCF
34617         https://bugs.webkit.org/show_bug.cgi?id=100349
34618
34619         Reviewed by Alexey Proskuryakov.
34620
34621         Initialize the timeout property to true if the network error was a timeout error.
34622         This is a speculative fix for the XHR timeout test cases failing on Apple Win -
34623         I can't verify this on a local machine.
34624
34625         No new tests, covered by
34626         LayoutTests/http/tests/xmlhttprequest/timeout/*
34627
34628         * platform/network/cf/ResourceErrorCF.cpp:
34629         (WebCore::ResourceError::ResourceError): Init m_timeout from error code.
34630
34631 2012-10-25  Kenneth Rohde Christiansen  <kenneth@webkit.org>
34632
34633         'resolution' MQ: Printing should use use high resolution images when available
34634         https://bugs.webkit.org/show_bug.cgi?id=100382
34635
34636         Reviewed by Antti Koivisto.
34637
34638         Special case print to not use the dpi of the screen, but one of 300.
34639
34640         Updated the resolution media query test to cover this.
34641
34642         * css/MediaQueryEvaluator.cpp:
34643         (WebCore::resolutionMediaFeatureEval): Update compared decimal points
34644         to three, due to 300 / 96 being equal to 3.125.
34645
34646 2012-10-25  Kinuko Yasuda  <kinuko@chromium.org>
34647
34648         [chromium] External FileSystem should use the root path returned by requestFileSystem
34649         https://bugs.webkit.org/show_bug.cgi?id=100372
34650
34651         Reviewed by Kentaro Hara.
34652
34653         External FileSystem should use the root path returned by
34654         requestFileSystem as other type is doing. Current implementation
34655         completely ignore the returned path.
34656
34657         New tests are to be added in chromium (as the type is only available in chromeos and chrome extensions)
34658
34659         * Modules/filesystem/chromium/DOMFileSystemChromium.cpp:
34660         (WebCore::DOMFileSystemBase::createFileSystemURL):
34661
34662 2012-10-25  Kevin Ellis  <kevers@chromium.org>
34663
34664         Can't easily position the cursor on an empty line in a textarea with touch if touch adjustment is enabled
34665         https://bugs.webkit.org/show_bug.cgi?id=97576
34666
34667         Reviewed by Antonio Gomes.
34668
34669         Consolidate touch adjustment candidates that are
34670         editable.  Adjustment becomes coarse being based
34671         on the bounds of the outermost editable element.
34672         This fix allows tap positioning of the text caret
34673         on a blank line immediately above or below another
34674         element.
34675
34676         Test: touchadjustment/editable-content.html
34677
34678         * page/TouchAdjustment.cpp:
34679         (WebCore::TouchAdjustment::compileSubtargetList):
34680         (WebCore::TouchAdjustment::hybridDistanceFunction):
34681
34682 2012-10-25  Yury Semikhatsky  <yurys@chromium.org>
34683
34684         Memory instrumentation: add reportMemoryUsage to ImageObserver interface
34685         https://bugs.webkit.org/show_bug.cgi?id=100091
34686
34687         Reviewed by Pavel Feldman.
34688
34689         Added reportMemoryUsage method to ImageObserver to make sure it is reported as
34690         appropriate descendant(with pointer adjusted due to offsets added by inheritance)
34691         rather than as a standalone memory block.
34692
34693         * platform/graphics/ImageObserver.h:
34694         (ImageObserver):
34695
34696 2012-10-25  Alexander Pavlov  <apavlov@chromium.org>
34697
34698         Web Inspector: [Overrides] Add latitude and longitude labels for the geolocation fields
34699         https://bugs.webkit.org/show_bug.cgi?id=100375
34700
34701         Reviewed by Yury Semikhatsky.
34702
34703         No new tests, a UI change.
34704
34705         * English.lproj/localizedStrings.js:
34706         * inspector/front-end/SettingsScreen.js:
34707         (WebInspector.UserAgentSettingsTab.prototype._createGeolocationOverrideElement):
34708
34709 2012-10-25  Mikhail Pozdnyakov  <mikhail.pozdnyakov@intel.com>
34710
34711         Add setMediaTypeOverride to window.internals.settings
34712         https://bugs.webkit.org/show_bug.cgi?id=100249
34713
34714         Reviewed by Kenneth Rohde Christiansen.
34715
34716         Added setMediaTypeOverride to window.internals.settings.
34717
34718         Test: fast/media/print-restores-previous-mediatype.html
34719
34720         * WebCore.exp.in: Exported WebCore::Settings::setMediaTypeOverride(WTF::String const&) for MAC.
34721         * page/Settings.cpp:
34722         (WebCore::Settings::Settings):
34723         (WebCore::Settings::setMediaTypeOverride):
34724         (WebCore):
34725         * page/Settings.h:
34726         (Settings):
34727         (WebCore::Settings::mediaTypeOverride):
34728         * testing/InternalSettings.cpp:
34729         (WebCore::InternalSettings::Backup::Backup):
34730         (WebCore::InternalSettings::Backup::restoreTo):
34731         (WebCore::InternalSettings::setMediaTypeOverride):
34732         (WebCore):
34733         * testing/InternalSettings.h:
34734         (Backup):
34735         (InternalSettings):
34736         * testing/InternalSettings.idl:
34737
34738 2012-10-22  Mikhail Naganov  <mnaganov@chromium.org>
34739
34740         [Chromium] Add supportMultipleWindows setting, needed for Android
34741         https://bugs.webkit.org/show_bug.cgi?id=99716
34742
34743         Reviewed by Adam Barth.
34744
34745         Add supportMultipleWindows settings for reusing the same view when
34746         opening popups. This is required for emulating the behavior of
34747         Android WebView. Adding into WebCore, as other ports might want to
34748         use this setting in the future.
34749
34750         Tests: fast/dom/HTMLAnchorElement/anchor-no-multiple-windows.html
34751                fast/dom/Window/window-open-no-multiple-windows.html
34752                fast/forms/post-popup-no-multiple-windows.html
34753
34754         * loader/FrameLoader.cpp:
34755         (WebCore::createWindow):
34756         * page/ContextMenuController.cpp:
34757         (WebCore::openNewWindow):
34758         * page/Settings.cpp:
34759         (WebCore::Settings::Settings):
34760         (WebCore::Settings::setSupportsMultipleWindows):
34761         (WebCore):
34762         * page/Settings.h:
34763         (Settings):
34764         (WebCore::Settings::supportsMultipleWindows):
34765
34766 2012-10-25  Alexander Pavlov  <apavlov@chromium.org>
34767
34768         Unreviewed, fix Web Inspector frontend compilability
34769
34770         * inspector/front-end/ElementsTreeOutline.js:
34771         (WebInspector.ElementsTreeOutline.prototype._ondragstart):
34772         * inspector/front-end/StylesSidebarPane.js:
34773         (WebInspector.StylePropertiesSection.prototype._handleEmptySpaceClick):
34774         (WebInspector.StylePropertyTreeElement.prototype):
34775
34776 2012-10-23  Alexander Pavlov  <apavlov@chromium.org>
34777
34778         Web Inspector: Drag and drop property value from Inspector is not working as expected
34779         https://bugs.webkit.org/show_bug.cgi?id=100040
34780
34781         Reviewed by Vsevolod Vlasov.
34782
34783         Do not start a custom drag for a tree element if there is a non-collapsed selection in the Inspector.
34784
34785         * inspector/front-end/ElementsTreeOutline.js:
34786         (WebInspector.ElementsTreeOutline.prototype._ondragstart):
34787
34788 2012-10-25  Ilya Tikhonovsky  <loislo@chromium.org>
34789
34790         Web Inspector: NMI instrument InspectorDebuggerAgent. It uses a lot of memory on heavy js sites because it keeps all the scripts in a map.
34791         https://bugs.webkit.org/show_bug.cgi?id=100340
34792
34793         Reviewed by Yury Semikhatsky.
34794
34795         * dom/WebCoreMemoryInstrumentation.cpp:
34796         (WebCore):
34797         * dom/WebCoreMemoryInstrumentation.h:
34798         (WebCoreMemoryTypes):
34799         * inspector/InspectorDebuggerAgent.cpp:
34800         (WebCore::InspectorDebuggerAgent::reportMemoryUsage):
34801         (WebCore):
34802         (WebCore::ScriptDebugListener::Script::reportMemoryUsage):
34803         * inspector/InspectorDebuggerAgent.h:
34804         (InspectorDebuggerAgent):
34805         * inspector/ScriptDebugListener.h:
34806         (Script):
34807
34808 2012-10-25  Adam Barth  <abarth@webkit.org>
34809
34810         [V8] We can handle ActiveDOMNodes and DOMNodes in the same GC visitor
34811         https://bugs.webkit.org/show_bug.cgi?id=100351
34812
34813         Reviewed by Eric Seidel.
34814
34815         There is no reason to handle active DOM nodes in a separate pass from
34816         regular DOM nodes anymore.
34817
34818         * bindings/v8/V8DOMMap.cpp:
34819         * bindings/v8/V8DOMMap.h:
34820         (WebCore):
34821         * bindings/v8/V8GCController.cpp:
34822         (WebCore::ActiveDOMObjectPrologueVisitor::visitDOMWrapper):
34823         (WebCore::NodeVisitor::NodeVisitor):
34824         (NodeVisitor):
34825         (WebCore::NodeVisitor::visitNodeWrapper):
34826         (WebCore::V8GCController::majorGCPrologue):
34827
34828 2012-10-25  Alexander Pavlov  <apavlov@chromium.org>
34829
34830         Web Inspector: Improper out-of-order call on a rule that is being removed from the stylesheet.
34831         https://bugs.webkit.org/show_bug.cgi?id=100357
34832
34833         Reviewed by Vsevolod Vlasov.
34834
34835         * inspector/InspectorStyleSheet.cpp:
34836         (WebCore::InspectorStyleSheet::deleteRule):
34837
34838 2012-10-25  Adam Barth  <abarth@webkit.org>
34839
34840         [V8] DOMDataStoreHandle serves no purpose and can be removed
34841         https://bugs.webkit.org/show_bug.cgi?id=100333
34842
34843         Reviewed by Eric Seidel.
34844
34845         After https://bugs.webkit.org/show_bug.cgi?id=100316,
34846         DOMDataStoreHandle is just a glorified OwnPtr.
34847
34848         * bindings/v8/DOMWrapperWorld.h:
34849         (WebCore::DOMWrapperWorld::domDataStore):
34850         (DOMWrapperWorld):
34851         (WebCore::DOMWrapperWorld::DOMWrapperWorld):
34852         * bindings/v8/V8DOMMap.cpp:
34853         * bindings/v8/V8DOMMap.h:
34854
34855 2012-10-25  Elliott Sprehn  <esprehn@chromium.org>
34856
34857         Remove dead Node::isBlockFlowOrBlockTable
34858         https://bugs.webkit.org/show_bug.cgi?id=100336
34859
34860         Reviewed by Eric Seidel.
34861
34862         Nothing uses Node::isBlockFlowOrBlockTable anymore so remove it.
34863
34864         No new tests needed, just removing dead code.
34865
34866         * dom/Node.cpp:
34867         * dom/Node.h:
34868         (Node):
34869
34870 2012-10-25  Eugene Klyuchnikov  <eustas.bug@gmail.com>
34871
34872         Web Inspector: Fix "check-inspector-strings" script and fix localized strings.
34873         https://bugs.webkit.org/show_bug.cgi?id=100090
34874
34875         Reviewed by Vsevolod Vlasov.
34876
34877         Fixed localized strings table.
34878
34879         * English.lproj/localizedStrings.js: Added missing, removed orhans.
34880         * inspector/front-end/CSSNamedFlowView.js: Removed tailing whitespaces.
34881         * inspector/front-end/NativeMemorySnapshotView.js:
34882         Removed double localization.
34883
34884 2012-10-25  Adam Barth  <abarth@webkit.org>
34885
34886         [V8] We can merge DOMDataStore, ScopedDOMDataStore, and StaticDOMDataStore into one class
34887         https://bugs.webkit.org/show_bug.cgi?id=100316
34888
34889         Reviewed by Eric Seidel.
34890
34891         Prior to this patch, DOMDataStore had two subclasses,
34892         ScopedDOMDataStore and StaticDOMDataStore, which used slighly different
34893         wrapper map base classes and had different lifetimes. This patch
34894         unifies all these classes into DOMDataStore itself. This makes this
34895         code much more straightforward.
34896
34897         * WebCore.gypi:
34898         * bindings/v8/DOMDataStore.cpp:
34899         (WebCore::DOMDataStore::DOMDataStore):
34900         (WebCore::DOMDataStore::~DOMDataStore):
34901         (WebCore::DOMDataStore::current):
34902         (WebCore::DOMDataStore::reportMemoryUsage):
34903         * bindings/v8/DOMDataStore.h:
34904         (DOMDataStore):
34905         (WebCore::DOMDataStore::domNodeMap):
34906         (WebCore::DOMDataStore::activeDomNodeMap):
34907         (WebCore::DOMDataStore::domObjectMap):
34908         (WebCore::DOMDataStore::activeDomObjectMap):
34909         * bindings/v8/ScopedDOMDataStore.cpp: Removed.
34910         * bindings/v8/ScopedDOMDataStore.h: Removed.
34911         * bindings/v8/SerializedScriptValue.cpp:
34912         (WebCore::neuterBinding):
34913         * bindings/v8/StaticDOMDataStore.cpp: Removed.
34914         * bindings/v8/StaticDOMDataStore.h: Removed.
34915         * bindings/v8/V8DOMMap.cpp:
34916         (WebCore::DOMDataStoreHandle::DOMDataStoreHandle):
34917         (WebCore::DOMDataStoreHandle::~DOMDataStoreHandle):
34918         (WebCore::visitActiveDOMNodes):
34919         (WebCore::visitDOMObjects):
34920         (WebCore::visitActiveDOMObjects):
34921         * bindings/v8/V8DOMMap.h:
34922         (WebCore):
34923         * bindings/v8/V8PerIsolateData.h:
34924         (V8PerIsolateData):
34925         * bindings/v8/WorkerScriptController.cpp:
34926         (WebCore::WorkerScriptController::WorkerScriptController):
34927         (WebCore::WorkerScriptController::~WorkerScriptController):
34928         * bindings/v8/WorkerScriptController.h:
34929         (WorkerScriptController):
34930
34931 2012-10-24  Kent Tamura  <tkent@chromium.org>
34932
34933         Minimize CSS rulesets for multiple-fields input
34934         https://bugs.webkit.org/show_bug.cgi?id=100198
34935
34936         Reviewed by Kentaro Hara.
34937
34938         - Unify rulesets for input::-webkit-datetime-edit-*-field.
34939          input::-webkit-datetime-edit-*-field had identical ruleset.
34940
34941         - Move some rulesets near to related rulesets.
34942          Move -webkit-datetime-edit-*-field:focus nearby the new unified ruleset.
34943          Move input::-webkit-datetime-edit-second-field[readonly] nearby
34944         input::-webkit-datetime-edit-minute-field[readonly].
34945
34946         No new tests. This shouldn't make any behavior change.
34947
34948         * css/html.css:
34949         (input::-webkit-datetime-edit-year-field):
34950         (input::-webkit-datetime-edit-year-field:focus):
34951         (input::-webkit-datetime-edit-second-field[readonly]):
34952
34953 2012-10-24  Kent Tamura  <tkent@chromium.org>
34954
34955         REGRESSION(r132291): Crash in BaseMultipleFieldsDateAndTimeInputType
34956         https://bugs.webkit.org/show_bug.cgi?id=100326
34957
34958         Reviewed by Eric Seidel.
34959
34960         Test: fast/forms/time-multiple-fields/time-multiple-fields-change-type.html
34961
34962         * html/BaseMultipleFieldsDateAndTimeInputType.cpp:
34963         (WebCore::BaseMultipleFieldsDateAndTimeInputType::destroyShadowSubtree):
34964         We need to disconnect m_spinButtonElement before destructing the UA shadow tree.
34965
34966 2012-10-24  Adam Barth  <abarth@webkit.org>
34967
34968         [V8] DOMData is no longer needed
34969         https://bugs.webkit.org/show_bug.cgi?id=100313
34970
34971         Reviewed by Eric Seidel.
34972
34973         This class serves no purpose anymore and can be deleted.
34974
34975         * WebCore.gypi:
34976         * bindings/v8/DOMData.cpp: Removed.
34977         * bindings/v8/DOMData.h: Removed.
34978         * bindings/v8/DOMDataStore.cpp:
34979         (WebCore::DOMDataStore::current):
34980         * bindings/v8/DOMDataStore.h:
34981         (WebCore):
34982         (DOMDataStore):
34983         * bindings/v8/SerializedScriptValue.cpp:
34984         (WebCore::neuterBinding):
34985         * bindings/v8/V8DOMMap.cpp:
34986         (WebCore::getDOMNodeMap):
34987         (WebCore::getActiveDOMNodeMap):
34988         (WebCore::getDOMObjectMap):
34989         (WebCore::getActiveDOMObjectMap):
34990         (WebCore::removeAllDOMObjects):
34991         (WebCore::visitActiveDOMNodes):
34992         (WebCore::visitDOMObjects):
34993         (WebCore::visitActiveDOMObjects):
34994
34995 2012-10-24  Kent Tamura  <tkent@chromium.org>
34996
34997         Sort an Xcode project file.
34998
34999         * WebCore.xcodeproj/project.pbxproj: Sorted.
35000
35001 2012-10-24  Adam Barth  <abarth@webkit.org>
35002
35003         [V8] AbstractWeakReferenceMap is unnecessarily general and complex
35004         https://bugs.webkit.org/show_bug.cgi?id=100175
35005
35006         Reviewed by Eric Seidel.
35007
35008         Before this patch, AbstractWeakReferenceMap served two masters:
35009
35010         1) DOM wrappers
35011         2) NPV8 function templates
35012
35013         These two uses cases pushed AbstractWeakReferenceMap to be more general
35014         and complex that needed. This patch separates these two uses cases into
35015         two separate classes. V8NPTemplateMap is all of 40 lines of code. It's
35016         not worth complicating the DOM wrapper code path to share that tiny
35017         amount of code.
35018
35019         The other thing this patch does is store a pointer to the DOM wrapper
35020         map as the weak callback context object. That means we no longer need
35021         to search through all the wrapper maps in order to find the map that
35022         contains this particular DOM wrapper.
35023
35024         * WebCore.gypi:
35025         * bindings/v8/DOMData.cpp:
35026         * bindings/v8/DOMData.h:
35027         (DOMData):
35028         * bindings/v8/DOMDataStore.cpp:
35029             - Delete all these complicated weak callback functions. The weak
35030               callback functions are now an order of magnitude simpler and
35031               declared as private member functions on the wrapper map.
35032         * bindings/v8/DOMDataStore.h:
35033         (WebCore::DOMDataStore::domNodeMap):
35034         (WebCore::DOMDataStore::activeDomNodeMap):
35035         (DOMDataStore):
35036             - We now have a consistent type to use for all these wrapper maps.
35037               Both the hash map and the intrusive map derive from
35038               DOMWrapperMap (with a single template parameter).
35039         * bindings/v8/DOMWrapperMap.h: Added.
35040         (WebCore):
35041         (DOMWrapperVisitor):
35042             - The visitor is no longer an inner class. It's just a top-level
35043               class that does the same thing.
35044         (DOMWrapperMap):
35045             - The abstract interface for DOMWrapperMap has about half as many
35046               functions as the old AbstractWeakReferenceMap because the two use
35047               cases are disentangled.
35048         (WebCore::DOMWrapperMap::~DOMWrapperMap):
35049         (DOMWrapperHashMap):
35050             - This is a concrete instance of DOMWrapperMap that uses a hash map.
35051         (WebCore::DOMWrapperHashMap::DOMWrapperHashMap):
35052         (WebCore::DOMWrapperHashMap::remove):
35053         (WebCore::DOMWrapperHashMap::defaultWeakCallback):
35054             - Notice that the context parameter now points to the hashmap
35055               itself rather than to the native object. Now that we don't need
35056               to handle the NPAPI case, we can recover the native object from
35057               the wrapper using toNative. The assert in set() ensures that this
35058               always works.
35059         * bindings/v8/DOMWrapperWorld.h:
35060         * bindings/v8/IntrusiveDOMWrapperMap.h:
35061             - These classes are now simplified because they need to implement
35062               fewer functions.
35063         (WebCore::DOMNodeWrapperMap::weakCallback):
35064             - For this weak callback, we still use the native object as the
35065               context parameter. We could also recover the native object from
35066               the wrapper, which means this context parameter is available to
35067               do other work.
35068         * bindings/v8/ScopedDOMDataStore.cpp:
35069         (WebCore::ScopedDOMDataStore::ScopedDOMDataStore):
35070             - This code no longer needs to have knowledge of which weak
35071               callbacks these objects use.
35072         (WebCore::ScopedDOMDataStore::~ScopedDOMDataStore):
35073             - We need to clear the maps before deleting them because there are
35074               still JavaScript objects that have references to the map in their
35075               weak callback parameter. Previously, we handled this case because
35076               we would search all the wrapper maps and fail to find the wrapper.
35077         * bindings/v8/ScriptProfiler.cpp:
35078         (WebCore::ScriptProfiler::visitExternalArrays):
35079         * bindings/v8/StaticDOMDataStore.cpp:
35080             - This code no longer needs to have knowledge of which weak
35081               callback these maps use.
35082         * bindings/v8/StaticDOMDataStore.h:
35083         (StaticDOMDataStore):
35084         * bindings/v8/V8DOMMap.cpp:
35085         (WebCore::getDOMNodeMap):
35086         (WebCore::getActiveDOMNodeMap):
35087         (WebCore::removeAllDOMObjects):
35088             - Rather than using some complicated visitor pattern, we can now
35089               just call clear() directly on the maps to remove all the objects.
35090         (WebCore::visitActiveDOMNodes):
35091         (WebCore::visitDOMObjects):
35092         (WebCore::visitActiveDOMObjects):
35093         * bindings/v8/V8DOMMap.h:
35094         (WebCore):
35095             - Delete the old versions of these classes.
35096         (DOMDataStoreHandle):
35097             - Style nit: one-argument constructors should be marked explicit.
35098         * bindings/v8/V8DOMWrapper.cpp:
35099         (WebCore::V8DOMWrapper::domWrapperType):
35100             - I moved this logic into WrapperTypeInfo.h to avoid a circular
35101               header dependency.
35102         * bindings/v8/V8DOMWrapper.h:
35103         (WebCore::V8DOMWrapper::getCachedWrapper):
35104         * bindings/v8/V8GCController.cpp:
35105             - EnsureWeakDOMNodeVisitor is no longer used (or needed since we no
35106               longer clear the weak callbacks in V8GCController).
35107         * bindings/v8/V8NPObject.cpp:
35108         (V8NPTemplateMap):
35109             - staticTemplateMap is no longer an instance of WeakReferenceMap.
35110               Instead, this patch just implements the functionality we need
35111               here directly.
35112         (WebCore::V8NPTemplateMap::get):
35113         (WebCore::V8NPTemplateMap::set):
35114         (WebCore::V8NPTemplateMap::sharedInstance):
35115         (WebCore::V8NPTemplateMap::weakCallback):
35116         (WebCore::V8NPTemplateMap::dispose):
35117         (WebCore::npObjectGetProperty):
35118         (WebCore):
35119         (WebCore::staticNPObjectMap):
35120         (WebCore::weakNPObjectCallback):
35121             - DOMWrapperMap no longer exposes a "forget" function. Instead, we
35122               just use the more basic "remove" and "Dispose" operations to do
35123               the same thing. This is possible now because we no longer have
35124               "removeIfPossible" to support searching all the wrapper maps for
35125               the one that has the right wrapper.
35126         (WebCore::createV8ObjectForNPObject):
35127             - DOMWrapperMap No longer has a "contains" function. Instead, we
35128               use get, which actually makes this code more efficient because we
35129               only do one hash map lookup.
35130         (WebCore::forgetV8ObjectForNPObject):
35131             - The changes here are a combination of the two sorts of changes
35132               above.
35133         * bindings/v8/WrapperTypeInfo.h:
35134         (WebCore::toNative):
35135         (WebCore::toWrapperTypeInfo):
35136             - The patch moves these functions into this header to avoid a
35137               circular header dependency.
35138
35139 2012-10-24  Arnaud Renevier  <a.renevier@sisa.samsung.com>
35140
35141         [cairo] unneeded FloatRect object creation in BitmapImage::draw
35142         https://bugs.webkit.org/show_bug.cgi?id=100298
35143
35144         Reviewed by Martin Robinson.
35145
35146         Do not copy FloatRect arguments src and dst to local variables.
35147         Instead, use src and dst directly.
35148
35149         No new tests. No change in behavior.
35150
35151         * platform/graphics/cairo/BitmapImageCairo.cpp:
35152         (WebCore::BitmapImage::draw):
35153
35154 2012-10-24  Seokju Kwon  <seokju.kwon@samsung.com>
35155
35156         [SOUP] Provide logging for SocketStreamHandleSoup
35157         https://bugs.webkit.org/show_bug.cgi?id=100215
35158
35159         Reviewed by Alexey Proskuryakov.
35160
35161         Add logging to SocketStreamHandleSoup to facilitate debugging.
35162
35163         * platform/network/soup/SocketStreamHandleSoup.cpp:
35164         (WebCore::SocketStreamHandle::SocketStreamHandle):
35165         (WebCore::SocketStreamHandle::~SocketStreamHandle):
35166         (WebCore::SocketStreamHandle::platformSend):
35167         (WebCore::SocketStreamHandle::platformClose):
35168
35169 2012-10-24  Nico Weber  <thakis@chromium.org>
35170
35171         Pass on exif orientation from ImageSource when using the open-source image decoders
35172         https://bugs.webkit.org/show_bug.cgi?id=100164
35173
35174         Reviewed by Eric Seidel.
35175
35176         The orientation is honored always for image documents, and optionally
35177         for <img> elements if shouldRespectImageOrientation is set (off by
35178         default). However, the feature needs port-specific modifications to
35179         GraphicsContext (without this, webcore will use the rotated bounds but
35180         draw the image as if it hadn't be rotated, resulting in squished
35181         pixels), and most ports don't implement these yet -- so put
35182         turning this on for image documents behind a port-specific #ifdef.
35183
35184         No observable behavior change. Once it's hooked up, it will be tested
35185         by fast/images/exif-orientation.html.
35186
35187         * platform/graphics/ImageSource.cpp:
35188         (WebCore::ImageSource::size):
35189         (WebCore::ImageSource::frameSizeAtIndex):
35190         (WebCore::ImageSource::orientationAtIndex):
35191         * platform/graphics/chromium/DeferredImageDecoder.cpp:
35192         (WebCore::DeferredImageDecoder::orientation):
35193         (WebCore):
35194         * platform/graphics/chromium/DeferredImageDecoder.h:
35195         (DeferredImageDecoder):
35196         * platform/image-decoders/jpeg/JPEGImageDecoder.cpp:
35197         (WebCore::readImageOrientation):
35198         * rendering/RenderObject.cpp:
35199         (WebCore::RenderObject::shouldRespectImageOrientation):
35200
35201 2012-10-24  Beth Dakin  <bdakin@apple.com>
35202
35203         https://bugs.webkit.org/show_bug.cgi?id=100169
35204         We should make TileCache tiles the size of the tile coverage rect 
35205         when we can't do fast scrolling
35206         -and-
35207         <rdar://problem/12505021>
35208
35209         Reviewed by Simon Fraser.
35210
35211         Some websites that don't do fast scrolling still scroll slower than 
35212         they do with tiled drawing disabled. 
35213         https://bugs.webkit.org/show_bug.cgi?id=99768 addressed some of this 
35214         performance problem, but there is still more ground to make up. This 
35215         patch addresses the remaining issue by making tiles the size of the 
35216         window when we can't do fast scrolling. 
35217
35218         The constructor and create function no longer take a size parameter. 
35219         That's all fully controlled within TileCache now. m_tileSize is no 
35220         longer const.
35221         * platform/graphics/ca/mac/TileCache.h:
35222
35223         Store the current default size as constants so that we can access it 
35224         in both the constructor and adjustTileSizeForCoverageRect().
35225         * platform/graphics/ca/mac/TileCache.mm:
35226         (WebCore::TileCache::TileCache):
35227
35228         This new function will set m_tileSize to the size of the tile 
35229         coverage rect if the tile coverage is limited to the visible area. 
35230         Otherwise, the tiles are set to be the default size.
35231         (WebCore::TileCache::adjustTileSizeForCoverageRect):
35232         
35233         Call adjustTileSizeForCoverageRect().
35234         (WebCore::TileCache::revalidateTiles):
35235
35236         No need to send in a size anymore.
35237         * platform/graphics/ca/mac/WebTileCacheLayer.h:
35238         (WebCore):
35239
35240 2012-10-24  David Barton  <dbarton@mathscribe.com>
35241
35242         MathML tests trigger font cache assertions in debug bots
35243         https://bugs.webkit.org/show_bug.cgi?id=100268
35244
35245         Reviewed by Eric Seidel.
35246
35247         Add a FontCachePurgePreventer to fix this.
35248
35249         Tested by existing tests.
35250
35251         * rendering/mathml/RenderMathMLOperator.cpp:
35252         (WebCore::RenderMathMLOperator::updateFromElement):
35253
35254 2012-10-24  Tim Horton  <timothy_horton@apple.com>
35255
35256         Update main frame scroll position immediately for programmatic scrolls
35257         https://bugs.webkit.org/show_bug.cgi?id=98074
35258
35259         Reviewed by Simon Fraser.
35260
35261         Immediately update the main frame scroll position after a programmatic scroll,
35262         so that performing a scrollBy or scrollTo will be instantly reflected in
35263         all of the scroll offset accessors.
35264
35265         No new tests; this will be tested by many scrolling tests once WebKitTestRunner
35266         can use threaded scrolling.
35267
35268         * page/scrolling/ScrollingCoordinator.cpp:
35269         (WebCore::ScrollingCoordinator::requestScrollPositionUpdate):
35270
35271 2012-10-24  Mihai Parparita  <mihaip@chromium.org>
35272
35273         [Chromium] Allow pushState and related history APIs to be disabled per context
35274         https://bugs.webkit.org/show_bug.cgi?id=99780
35275
35276         Reviewed by Adam Barth.
35277
35278         Chrome Apps do not support the history API (or navigation in general).
35279         Since pushState is generally feature detected, it's cleanest to disable
35280         it via a V8 per-context feature, so that applications can have the
35281         appropriate fallback behavior (other history APIs are re-mapped to throw
35282         exceptions, since history.back() and the link are not feature detected).
35283
35284         * dom/ContextFeatures.cpp:
35285         (WebCore::ContextFeatures::pushStateEnabled):
35286         (WebCore):
35287         * dom/ContextFeatures.h:
35288         * dom/Document.cpp:
35289         (WebCore::Document::enqueuePopstateEvent):
35290         * page/History.idl:
35291
35292 2012-10-24  Tommy Widenflycht  <tommyw@google.com>
35293
35294         MediaStream API: Make sure all events are dispatched asynchronously
35295         https://bugs.webkit.org/show_bug.cgi?id=100286
35296
35297         Reviewed by Adam Barth.
35298
35299         This is necessary to safeguard against if the UA uses synchronous UA->WebKit calls,
35300         and the web application calls methods on the RTCPeerConnection in the event callbacks.
35301
35302         Test: fast/mediastream/RTCPeerConnection-events.html
35303         Also tested by the chromium webrtc fuzz tests.
35304
35305         * Modules/mediastream/RTCPeerConnection.cpp:
35306         (WebCore::RTCPeerConnection::RTCPeerConnection):
35307         (WebCore::RTCPeerConnection::negotiationNeeded):
35308         (WebCore::RTCPeerConnection::didGenerateIceCandidate):
35309         (WebCore::RTCPeerConnection::didAddRemoteStream):
35310         (WebCore::RTCPeerConnection::didRemoveRemoteStream):
35311         (WebCore::RTCPeerConnection::didAddRemoteDataChannel):
35312         (WebCore::RTCPeerConnection::changeReadyState):
35313         (WebCore::RTCPeerConnection::changeIceState):
35314         (WebCore):
35315         (WebCore::RTCPeerConnection::scheduleDispatchEvent):
35316         (WebCore::RTCPeerConnection::scheduledEventTimerFired):
35317         * Modules/mediastream/RTCPeerConnection.h:
35318         (RTCPeerConnection):
35319
35320 2012-10-24  Mark Pilgrim  <pilgrim@chromium.org>
35321
35322         [Chromium] Remove screen-related functions from PlatformSupport
35323         https://bugs.webkit.org/show_bug.cgi?id=97474
35324
35325         Reviewed by Adam Barth.
35326
35327         Screen-related functions like screenHorizontalDPI that
35328         used to be on PlatformSupport are now accessed through a new
35329         PlatformPageClient attached to Widget in WebCore-land, which is
35330         implemented by ChromeClientImpl in WebKit-land, which proxies
35331         calls to WebWidgetClient, which is actually implemented in
35332         Chromium-land.
35333
35334         * WebCore.gypi:
35335         * platform/Widget.h:
35336         * platform/chromium/PageClientChromium.h: Copied from Source/WebCore/platform/chromium/PlatformWidget.h.
35337         (PageClientChromium):
35338         * platform/chromium/PlatformScreenChromium.cpp:
35339         (WebCore::toPlatformPageClient):
35340         (WebCore):
35341         (WebCore::screenHorizontalDPI):
35342         (WebCore::screenVerticalDPI):
35343         (WebCore::screenDepth):
35344         (WebCore::screenDepthPerComponent):
35345         (WebCore::screenIsMonochrome):
35346         (WebCore::screenRect):
35347         (WebCore::screenAvailableRect):
35348         * platform/chromium/PlatformSupport.h:
35349         (PlatformSupport):
35350
35351 2012-10-24  Adam Barth  <abarth@webkit.org>
35352
35353         [V8] WorkerContextExecutionProxy doesn't need to track events
35354         https://bugs.webkit.org/show_bug.cgi?id=100295
35355
35356         Reviewed by Eric Seidel.
35357
35358         This code was added when this code was originally upstreamed as part of
35359         the Chromium port. There doesn't appear to be any reason why
35360         WorkerContextExecutionProxy needs to keep a Vector of raw event
35361         pointers. Those points are likely to become dangling, making the rest
35362         of what this code does very sketchy.
35363
35364         * bindings/v8/V8WorkerContextEventListener.cpp:
35365         (WebCore::V8WorkerContextEventListener::callListenerFunction):
35366         * bindings/v8/WorkerContextExecutionProxy.cpp:
35367         (WebCore::WorkerContextExecutionProxy::dispose):
35368         * bindings/v8/WorkerContextExecutionProxy.h:
35369         (WebCore::WorkerContextExecutionState::WorkerContextExecutionState):
35370         (WorkerContextExecutionProxy):
35371
35372 2012-10-24  Max Vujovic  <mvujovic@adobe.com>
35373
35374         [CSS Shaders] The mesh should be specified using <column, row> order
35375         https://bugs.webkit.org/show_bug.cgi?id=96285
35376
35377         Reviewed by Dean Jackson.
35378
35379         Change StyleResolver and CSSComputedStyleDeclaration to handle the mesh parameters in
35380         column, row order.
35381
35382         Test: css3/filters/custom/custom-filter-mesh-column-row-order.html
35383
35384         * css/CSSComputedStyleDeclaration.cpp:
35385         (WebCore::CSSComputedStyleDeclaration::valueForFilter):
35386             Append the number of columns before the number of rows in the meshParameters
35387             CSSValueList.
35388         * css/StyleResolver.cpp:
35389         (WebCore::StyleResolver::createCustomFilterOperation):
35390             Store the second mesh parameter in meshRows instead of meshColumns.
35391
35392 2012-10-24  Jae Hyun Park  <jae.park@company100.net>
35393
35394         loaderRunLoop() should use synchronization instead of while loop
35395         https://bugs.webkit.org/show_bug.cgi?id=55402
35396
35397         Reviewed by Alexey Proskuryakov.
35398
35399         Originally, loaderRunLoop() sleeps until a thread has started and set
35400         the loaderRunLoopObject static variable. This patch uses
35401         ThreadCondition to synchronize instead of a while loop.
35402
35403         No new tests (No behavior change).
35404
35405         * platform/network/cf/LoaderRunLoopCF.cpp:
35406         (WebCore::runLoaderThread):
35407         (WebCore::loaderRunLoop):
35408         * platform/network/cf/LoaderRunLoopCF.h:
35409         (WebCore):
35410
35411 2012-10-24  Sailesh Agrawal  <sail@chromium.org>
35412
35413         Incorrect keycodes for numpad /, -, +, .
35414         https://bugs.webkit.org/show_bug.cgi?id=99188
35415
35416         Reviewed by Tony Chang.
35417
35418         In r57951 we switched to mapping keys by character code.
35419         This regressed the numpad keys which no longer match the Windows virtual key codes.
35420         This CL fixes this by never mapping numpad keys by character code.
35421
35422         Test: platform/mac/fast/events/numpad-keycode-mapping.html
35423
35424         * platform/mac/PlatformEventFactoryMac.mm:
35425         (WebCore::windowsKeyCodeForKeyEvent):
35426
35427 2012-10-24  Simon Fraser  <simon.fraser@apple.com>
35428
35429         Null-check the RenderView in ocument::windowScreenDidChange to fix a crash when saving PDFs
35430         https://bugs.webkit.org/show_bug.cgi?id=100141
35431         <rdar://problem/12559147>
35432
35433         Reviewed by Tim Horton.
35434
35435         For PDF documents the RenderView is null, so null-check it to avoid a crash
35436         when saving PDFs.
35437
35438         * dom/Document.cpp:
35439         (WebCore::Document::windowScreenDidChange):
35440
35441 2012-10-24  Terry Anderson  <tdanderson@chromium.org>
35442
35443         Handle two-finger tap gestures in the same way as long-press gestures
35444         https://bugs.webkit.org/show_bug.cgi?id=99947
35445
35446         Reviewed by Adam Barth.
35447
35448         Currently a long-press gesture is used to dispatch a context menu (for platforms 
35449         defining CONTEXT_MENUS) or to select text (for Android). Additionally, for platforms 
35450         defining TOUCH_ADJUSTMENT, gesture target fuzzing is performed on the location and 
35451         touch area of the long-press gesture.
35452
35453         This CL will cause two-finger tap gestures to be handled in the same way as long-press 
35454         gestures. The location and touch area of a two-finger tap gesture will correspond to 
35455         the location and touch area of the first finger down; the location/area of the second 
35456         finger will be ignored.
35457
35458         Test: touchadjustment/touch-links-two-finger-tap.html
35459
35460         * page/EventHandler.cpp:
35461         (WebCore::EventHandler::handleGestureLongPress):
35462         (WebCore):
35463         (WebCore::EventHandler::handleGestureForTextSelectionOrContextMenu):
35464         (WebCore::EventHandler::handleGestureTwoFingerTap):
35465         (WebCore::EventHandler::adjustGesturePosition):
35466         * page/EventHandler.h:
35467         (EventHandler):
35468
35469 2012-10-24  Chris Fleizach  <cfleizach@apple.com>
35470
35471         AX:When aria-label is used, the text under an element is still appearing as the AXTitle
35472         https://bugs.webkit.org/show_bug.cgi?id=98167
35473
35474         Reviewed by Beth Dakin.
35475
35476         According to WAI-ARIA text computation, the presence of aria-label and alternative text
35477         should override the visible text within an element.
35478
35479         Test: platform/mac/accessibility/aria-label-overrides-visible-text.html
35480
35481         * accessibility/mac/WebAccessibilityObjectWrapper.mm:
35482         (-[WebAccessibilityObjectWrapper accessibilityTitle]):
35483
35484 2012-10-24  Sheriff Bot  <webkit.review.bot@gmail.com>
35485
35486         Unreviewed, rolling out r132303 and r132312.
35487         http://trac.webkit.org/changeset/132303
35488         http://trac.webkit.org/changeset/132312
35489         https://bugs.webkit.org/show_bug.cgi?id=100287
35490
35491         Triggering crashes on many popular websites (Requested by
35492         leviw|gardening on #webkit).
35493
35494         * css/CSSGrammar.y.in:
35495         * css/CSSParser.cpp:
35496         (WebCore::CSSParser::detectAtToken):
35497         * css/CSSParser.h:
35498         * css/CSSPropertySourceData.h:
35499         * css/RuleSet.cpp:
35500         (WebCore::RuleData::RuleData):
35501         (WebCore::RuleSet::addRule):
35502         (WebCore::RuleSet::addRegionRule):
35503         (WebCore::RuleSet::addRulesFromSheet):
35504         (WebCore::RuleSet::addStyleRule):
35505         * css/RuleSet.h:
35506         (RuleData):
35507         (RuleSet):
35508         * css/StyleResolver.cpp:
35509         (WebCore::makeRuleSet):
35510         (WebCore::StyleResolver::appendAuthorStyleSheets):
35511         (WebCore::StyleResolver::matchScopedAuthorRules):
35512         (WebCore::StyleResolver::locateSharedStyle):
35513         * css/StyleResolver.h:
35514         (StyleResolver):
35515         * css/StyleRule.cpp:
35516         (WebCore::StyleRuleBase::reportMemoryUsage):
35517         (WebCore::StyleRuleBase::destroy):
35518         (WebCore::StyleRuleBase::copy):
35519         (WebCore::StyleRuleBase::createCSSOMWrapper):
35520         * css/StyleRule.h:
35521         * css/StyleScopeResolver.cpp:
35522         (WebCore::StyleScopeResolver::reportMemoryUsage):
35523         * css/StyleScopeResolver.h:
35524         (WebCore):
35525         (StyleScopeResolver):
35526         * css/StyleSheetContents.cpp:
35527         (WebCore::childRulesHaveFailedOrCanceledSubresources):
35528
35529 2012-10-24  Joshua Bell  <jsbell@chromium.org>
35530
35531         IndexedDB: Cursor property value identities should be preserved
35532         https://bugs.webkit.org/show_bug.cgi?id=100051
35533
35534         Reviewed by Tony Chang.
35535
35536         Some W3C test submissions point out that subsequent accesses to cursor properties should
35537         yield the same value until the cursor advances. We handled this with custom binding code for
35538         IDBCursor.value but not IDBCursor.key or IDBCursor.primaryKey. The custom value code is
35539         being removed in webkit.org/b/100034 in favor of returning ScriptValue and the same fix can
35540         be applied to key/primaryKey.
35541
35542         Test: storage/indexeddb/cursor-properties.html
35543
35544         * Modules/indexeddb/IDBCursor.cpp: Compute/store/serve up ScriptValues instead of IDBKeys
35545         (WebCore::IDBCursor::key):
35546         (WebCore::IDBCursor::primaryKey):
35547         (WebCore::IDBCursor::setValueReady):
35548         * Modules/indexeddb/IDBCursor.h:
35549         (IDBCursor):
35550         (WebCore::IDBCursor::idbPrimaryKey): Expose this for callers that need access to the IDBKey
35551         * Modules/indexeddb/IDBCursor.idl:
35552         * Modules/indexeddb/IDBObjectStore.cpp: ... like this one.
35553         (WebCore):
35554         * Modules/indexeddb/IDBRequest.cpp:
35555         (WebCore::IDBRequest::dispatchEvent): Pass along script context, for the conversion.
35556         * bindings/v8/IDBBindingUtilities.cpp:
35557         (WebCore::idbKeyToScriptValue): New method for explicit conversion.
35558         (WebCore):
35559         * bindings/v8/IDBBindingUtilities.h:
35560         (WebCore):
35561
35562 2012-10-24  Ami Fischman  <fischman@chromium.org>
35563
35564         call to setNeedsLayout during RenderVideo::paintReplaced
35565         https://bugs.webkit.org/show_bug.cgi?id=100265
35566
35567         Reviewed by Eric Carlson.
35568
35569         Removed unnecessary call and added new defensive guards to catch erroneous setNeedsLayout() calls
35570         during paints earlier (so the offending calls are in the emitted stacktrace).
35571
35572         No new tests - new defensive checks are triggered by existing tests.
35573
35574         * page/FrameView.cpp:
35575         (WebCore::FrameView::paintContents): forbid setNeedsLayout() during painting
35576         * rendering/RenderObject.cpp:
35577         (WebCore):
35578         (WebCore::RenderObject::SetLayoutNeededForbiddenScope::SetLayoutNeededForbiddenScope):
35579         (WebCore::RenderObject::SetLayoutNeededForbiddenScope::~SetLayoutNeededForbiddenScope):
35580         * rendering/RenderObject.h:
35581         (RenderObject):
35582         (SetLayoutNeededForbiddenScope): added helper class for forbidding setNeedsLayout() in a scope.
35583         * rendering/RenderVideo.cpp:
35584         (WebCore::RenderVideo::paintReplaced): drop the offending & unnecessary call to updatePlayer().
35585
35586 2012-10-24  Adam Barth  <abarth@webkit.org>
35587
35588         [V8] ActiveDOMObjectEpilogueVisitor is unnecessary and can be deleted
35589         https://bugs.webkit.org/show_bug.cgi?id=100208
35590
35591         Reviewed by Eric Seidel.
35592
35593         Rather than clearing and re-establishing the weak callback for
35594         ActiveDOMObjects during every GC, this patch puts all the
35595         ActiveDOMObjects with pending activity into an object group with a live
35596         object, causing them not to be garbage collected.
35597
35598         In addition to simplifying this code, this patch makes the patch in
35599         https://bugs.webkit.org/show_bug.cgi?id=100175 much easier because
35600         V8GCController no longer needs to know how to configure the weak
35601         callbacks for these objects.
35602
35603         * bindings/v8/V8GCController.cpp:
35604         (WebCore::ActiveDOMObjectPrologueVisitor::ActiveDOMObjectPrologueVisitor):
35605         (ActiveDOMObjectPrologueVisitor):
35606         (WebCore::ActiveDOMObjectPrologueVisitor::visitDOMWrapper):
35607         (WebCore::V8GCController::majorGCPrologue):
35608         (WebCore::V8GCController::majorGCEpilogue):
35609         * bindings/v8/V8PerIsolateData.cpp:
35610         (WebCore::V8PerIsolateData::V8PerIsolateData):
35611         * bindings/v8/V8PerIsolateData.h:
35612         (WebCore::V8PerIsolateData::liveRoot):
35613         (V8PerIsolateData):
35614
35615 2012-10-24  Brady Eidson  <beidson@apple.com>
35616
35617         Add a strategy for loader customization.
35618         https://bugs.webkit.org/show_bug.cgi?id=100278
35619
35620         Reviewed by Alexey Proskuryakov.
35621
35622         It's empty for now and does nothing, just like the goggles.
35623
35624         * WebCore.gypi:
35625         * WebCore.vcproj/WebCore.vcproj:
35626         * WebCore.xcodeproj/project.pbxproj:
35627         * platform/PlatformStrategies.h:
35628         (WebCore::PlatformStrategies::loaderStrategy):
35629         (PlatformStrategies):
35630         (WebCore::PlatformStrategies::PlatformStrategies):
35631
35632 2012-10-24  Tony Chang  <tony@chromium.org>
35633
35634         Setting width of a flexitem causes the adjacent flex item to be displayed poorly.
35635         https://bugs.webkit.org/show_bug.cgi?id=99925
35636
35637         Reviewed by Ojan Vafai.
35638
35639         Make sure that we always repaint when moving a child. This is similar to what RenderDeprecatedFlexibleBox does.
35640
35641         Test: css3/flexbox/repaint-during-resize-no-flex.html
35642
35643         * rendering/RenderFlexibleBox.cpp:
35644         (WebCore::RenderFlexibleBox::setFlowAwareLocationForChild): Move logic for repaining into the helper method
35645         for setting the location of a child.
35646         (WebCore::RenderFlexibleBox::layoutColumnReverse): Remove code for repaint since it's now in setFlowAwareLocationForChild.
35647         (WebCore::RenderFlexibleBox::adjustAlignmentForChild): Remove code for repaint since it's now in setFlowAwareLocationForChild.
35648
35649 2012-10-24  Simon Fraser  <simon.fraser@apple.com>
35650
35651         Fix CALayer hiearchy when combining tiling with preserve-3d
35652         https://bugs.webkit.org/show_bug.cgi?id=100205
35653
35654         Reviewed by Dean Jackson.
35655
35656         When an element has "transform-style: preserve-3d", its GraphicsLayerCA has a
35657         m_structuralLayer which is a CATransformLayer. The primary CALayer which contains rendered
35658         content becomes a sublayer of the CATransformLayer. If the element has backface-visibility:hidden,
35659         it is the primary layer that is set to be single-sided.
35660         
35661         In r131940 we started to use TileCaches in place of CATiledLayer. TileCaches work via
35662         "customSublayers" returned from the PlatformCALayer, where the custom sublayer is 
35663         the tile cache container layer. However, the custom sublayers were being added as
35664         children of the structural (CATransformLayer) layer, not of the primary (CALayer) layer,
35665         thus they were not affected by the doubleSided property.
35666         
35667         This change cleans up the confusing code in GraphicsLayerCA::updateSublayerList()
35668         by maintaining two vectors of PlatformCALayers, one for sublayers of the structural
35669         layer, and one for sublayers of the primary layer. It adds custom sublayers to
35670         the latter list, so now the tile cache container layer becomes a sublayer of
35671         the primary layer, so is affected by that layer's doubleSided property.
35672
35673         Test: compositing/tiling/backface-preserve-3d-tiled.html
35674
35675         * platform/graphics/ca/GraphicsLayerCA.cpp:
35676         (WebCore::GraphicsLayerCA::updateSublayerList):
35677
35678 2012-10-23  Zhenyao Mo  <zmo@google.com>
35679
35680         Update mozilla's CheckedInt.h to the latest version
35681         https://bugs.webkit.org/show_bug.cgi?id=100177
35682
35683         Reviewed by Kenneth Russell.
35684
35685         * html/canvas/CheckedInt.h: Sync with mozilla's copy with minumum modifications.
35686         (detail):
35687         (IsSupportedPass2):
35688         (IsSupported):
35689         (UnsignedType):
35690         (IsSigned):
35691         (TwiceBiggerType):
35692         (PositionOfSignBit):
35693         (MinValue):
35694         (MaxValue):
35695         (WebCore::detail::HasSignBit):
35696         (WebCore::detail::BinaryComplement):
35697         (WebCore::detail::IsInRange):
35698         (WebCore::detail::IsAddValid):
35699         (WebCore::detail::IsSubValid):
35700         (WebCore::detail::IsMulValid):
35701         (WebCore::detail::IsDivValid):
35702         (WebCore::detail::OppositeIfSignedImpl::run):
35703         (WebCore::detail::OppositeIfSigned):
35704         (WebCore):
35705         (CheckedInt):
35706         (WebCore::CheckedInt::CheckedInt):
35707         (WebCore::CheckedInt::value):
35708         (WebCore::CheckedInt::isValid):
35709         (WebCore::CheckedInt::operator -):
35710         (WebCore::CheckedInt::operator ==):
35711         (WebCore::CheckedInt::operator++):
35712         (WebCore::CheckedInt::operator--):
35713         (CastToCheckedIntImpl):
35714         (WebCore::detail::CastToCheckedIntImpl::run):
35715         (WebCore::castToCheckedInt):
35716         (WebCore::operator ==):
35717         * html/canvas/DataView.cpp: change valid() to isValid().
35718         (WebCore::DataView::create):
35719         * html/canvas/WebGLBuffer.cpp: Ditto.
35720         (WebCore::WebGLBuffer::associateBufferDataImpl):
35721         (WebCore::WebGLBuffer::associateBufferSubDataImpl):
35722         * html/canvas/WebGLRenderingContext.cpp: Ditto.
35723         (WebCore):
35724         (WebCore::WebGLRenderingContext::drawArrays):
35725         * platform/graphics/GraphicsContext3D.cpp: Ditto.
35726         (WebCore::GraphicsContext3D::computeImageSizeInBytes):
35727
35728 2012-10-24  Noam Rosenthal  <noam.rosenthal@nokia.com>
35729
35730         [Qt-on-Mac] GraphicsSurfaces should not create a global IOSurface handle
35731         https://bugs.webkit.org/show_bug.cgi?id=89885
35732
35733         Reviewed by Kenneth Rohde Christiansen.
35734
35735         Use mach_port instead of global tokens for IOSurfaces.
35736         Global IOSurfaces are accessible from other processes using their handle, while mach_ports
35737         can only be shared directly via IPC.
35738
35739         Tested by existing WebGL tests.
35740
35741         * platform/graphics/surfaces/GraphicsSurfaceToken.h:
35742         (GraphicsSurfaceToken):
35743         * platform/graphics/surfaces/mac/GraphicsSurfaceMac.cpp:
35744         (WebCore::GraphicsSurfacePrivate::GraphicsSurfacePrivate):
35745         (WebCore::GraphicsSurfacePrivate::~GraphicsSurfacePrivate):
35746
35747 2012-10-24  Rick Byers  <rbyers@chromium.org>
35748
35749         image-set doesn't round-trip properly with cssText
35750         https://bugs.webkit.org/show_bug.cgi?id=99725
35751
35752         Reviewed by Beth Dakin.
35753
35754         Fix serialization of -webkit-image-set rules to use the same format as
35755         is used for parsing.
35756
35757         Test: fast/css/image-set-setting.html
35758
35759         * css/CSSImageSetValue.cpp:
35760         (WebCore::CSSImageSetValue::customCssText):
35761         * css/CSSValueList.h:
35762         (WebCore::CSSValueList::item): Add const overload
35763
35764 2012-10-24  Jonathan Feldstein  <jfeldstein@rim.com>
35765
35766         BlackBerry fix for webgl-depth-texture.html
35767         https://bugs.webkit.org/show_bug.cgi?id=100258
35768
35769         Reviewed by Yong Li.
35770
35771         Removed a platform specific define that is unnecessary.
35772
35773         * platform/graphics/GraphicsContext3D.cpp:
35774         (WebCore::GraphicsContext3D::computeFormatAndTypeParameters):
35775
35776 2012-10-24  Nico Weber  <thakis@chromium.org>
35777
35778         Honor image orientation in GraphicsContextSkia
35779         https://bugs.webkit.org/show_bug.cgi?id=100179
35780
35781         Reviewed by Stephen White.
35782
35783         Also fix a bug in ImageOrientation.h: Some of the values were
35784         switched. They now match the description in the exif spec at
35785         http://www.exif.org/Exif2-2.PDF page 18, and the notes at
35786         http://www.sno.phy.queensu.ca/~phil/exiftool/TagNames/EXIF.html and
35787         the picture at http://www.80sidea.com/archives/2316.
35788
35789         They showed up correctly in Safari because the orientation transform
35790         was done after flipping Y. Let the flipping happen later. I verified
35791         that flipping transformation order and fixing the exif enum cancelled
35792         each other out, so this has no effect on the apple port.
35793
35794         Not hooked up yet, so no observable difference.
35795
35796         * platform/graphics/BitmapImage.h:
35797         * platform/graphics/ImageOrientation.h:
35798         (WebCore::ImageOrientation::usesWidthAsHeight):
35799         (WebCore::ImageOrientation::fromEXIFValue):
35800         * platform/graphics/cg/GraphicsContextCG.cpp:
35801         (WebCore::GraphicsContext::drawNativeImage):
35802         * platform/graphics/skia/ImageSkia.cpp:
35803         (WebCore::paintSkBitmap):
35804         (WebCore::BitmapImage::draw):
35805         (WebCore):
35806
35807 2012-10-24  Alexey Proskuryakov  <ap@apple.com>
35808
35809         Fixed Windows path for SharedWorkerStrategy.h - it's in workers/, not platform/.
35810
35811         * WebCore.vcproj/WebCore.vcproj:
35812
35813 2012-10-24  Chris Fleizach  <cfleizach@apple.com>
35814
35815         AX: WebKit exposes abstract ARIA role range as AXSlider; should be generic AXGroup
35816         https://bugs.webkit.org/show_bug.cgi?id=100204
35817
35818         Reviewed by Beth Dakin.
35819
35820         Remove the "range" role as a valid ARIA role.
35821
35822         Test: platform/mac/accessibility/aria-slider-value.html
35823
35824         * accessibility/AccessibilityObject.cpp:
35825         (WebCore::createARIARoleMap):
35826
35827 2012-10-24  Florin Malita  <fmalita@chromium.org>
35828
35829         [Chromium] SVG repaint issues
35830         https://bugs.webkit.org/show_bug.cgi?id=99874
35831
35832         Reviewed by Levi Weintraub.
35833
35834         RenderSVGRoot::paintReplaced() converts the container offsets to a relative transform,
35835         but in doing so it ends up accumulating subpixel rounding deltas twice: first for 
35836         adjustedPaintOffset and second in localToParentTransform(). If coordinates are on
35837         half-pixel boundaries, the 2x rounding delta yields a full pixel drift and we end up
35838         painting at the wrong location.
35839
35840         This can be avoided by using localToBorderBoxTransform() directly, which (unlike
35841         localToParentTransform()) doesn't perform rounding.
35842
35843         No new tests: existing pixel results cover this change after rebaseline.
35844
35845         * rendering/svg/RenderSVGRoot.cpp:
35846         (WebCore::RenderSVGRoot::paintReplaced):
35847
35848 2012-10-24  Levi Weintraub  <leviw@chromium.org>
35849
35850         Fixing the Chromium build after typo in r132367.
35851
35852         * WebCore.gypi:
35853
35854 2012-10-24  Nico Weber  <thakis@chromium.org>
35855
35856         [chromium] Respect image orientation in image dragging code
35857         https://bugs.webkit.org/show_bug.cgi?id=100200
35858
35859         Reviewed by Tony Chang.
35860
35861         Based on the corresponding code in DragImageMac.mm.  The image
35862         rotation code isn't hooked up yet, so no observable effect for now.
35863
35864         * platform/chromium/DragImageChromiumSkia.cpp:
35865         (WebCore::createDragImageFromImage):
35866
35867 2012-10-24  Michael Saboff  <msaboff@apple.com>
35868
35869         Code cleanup after r132165
35870         https://bugs.webkit.org/show_bug.cgi?id=100135
35871
35872         Reviewed by Geoffrey Garen.
35873
35874         Fixed up some unneccesary and inefficient constructs in MarkupTokenBase.h.
35875
35876         Code clean up without functional changes, therefore no new tests.
35877
35878         * xml/parser/MarkupTokenBase.h:
35879         (WebCore::MarkupTokenBase::beginEndTag): Changed argument to be const Vector<LChar, 32>&.
35880         (WebCore::MarkupTokenBase::appendToCharacter): Changed argument to be const Vector<LChar, 32>&.
35881         (WebCore::MarkupTokenBase::appendToName): Elimintated inline.
35882         (WebCore::MarkupTokenBase::name): Elimintated inline.
35883         (WebCore::MarkupTokenBase::nameString): Elimintated inline.
35884
35885 2012-10-24  Toni Barzic  <tbarzic@chromium.org>
35886
35887         Crash when trying to write exception message to null console
35888         https://bugs.webkit.org/show_bug.cgi?id=99658
35889
35890         Reviewed by Adam Barth.
35891
35892         DOMWindow::console may return NULL, so we should do a NULL check before adding message to it.
35893         This may happen e.g. if a worker throws an exception just as the document is being replaced in the view.
35894         The exception task could be processes after current window in the frame changes, and console in the document window is nulled.
35895
35896         Test: fast/workers/worker-exception-during-navigation.html
35897
35898         * dom/Document.cpp:
35899         (WebCore::Document::addMessage):
35900
35901 2012-10-24  Cosmin Truta  <ctruta@rim.com>
35902
35903         Incorrect conditional use of LogFTP
35904         https://bugs.webkit.org/show_bug.cgi?id=100260
35905
35906         Reviewed by Alexey Proskuryakov.
35907
35908         Use LogFTP if !LOG_DISABLED, to allow toggling ASSERTIONS_DISABLED_DEFAULT
35909         without breaking the build.
35910
35911         * html/FTPDirectoryDocument.cpp:
35912         (WebCore::FTPDirectoryDocument::FTPDirectoryDocument):
35913
35914 2012-10-23  Alexey Proskuryakov  <ap@apple.com>
35915
35916         Add a strategy for shared workers
35917         https://bugs.webkit.org/show_bug.cgi?id=100165
35918
35919         Reviewed by Brady Eidson.
35920
35921         Also a little bit of alphabetization.
35922
35923         * WebCore.gypi:
35924         * WebCore.vcproj/WebCore.vcproj:
35925         * WebCore.xcodeproj/project.pbxproj:
35926         * platform/PlatformStrategies.h:
35927         * workers/SharedWorkerStrategy.h: Added.
35928
35929 2012-10-24  David Barton  <dbarton@mathscribe.com>
35930
35931         [MathML] Timeouts on linux after r132264
35932         https://bugs.webkit.org/show_bug.cgi?id=100202
35933
35934         Reviewed by Eric Seidel.
35935
35936         When building a stretched operator, such as a large parenthesis or bracket, we need to
35937         check that the extension glyph's height is > 0, to avoid an infinite loop. The 0 height
35938         can occur if the glyph is missing on the host system.
35939
35940         Tested by existing tests.
35941
35942         * rendering/mathml/RenderMathMLOperator.cpp:
35943         (WebCore::RenderMathMLOperator::updateFromElement):
35944
35945 2012-10-24  Parth Patel  <parpatel@rim.com>
35946
35947         [BlackBerry] Extending existing ThreadUnsafe singletons in webkit to
35948         Generic ThreadUnsafe Singleton
35949         https://bugs.webkit.org/show_bug.cgi?id=100145
35950
35951         Reviewed by Rob Buis.
35952
35953         Extending the singletons to generic singleton and changing
35954         getInstance() in IconDatabaseClientBlackBerry to instance()
35955         to match the generic singleton template.
35956
35957         Reviewed Internally by Yong Li.
35958
35959         Tests are not modified and added as there was no behavioural change.
35960
35961         * platform/blackberry/SharedTimerBlackBerry.cpp:
35962         (SharedTimerBlackBerry):
35963         (WebCore):
35964
35965 2012-10-24  Ilya Tikhonovsky  <loislo@chromium.org>
35966
35967         Web Inspector: NMI add instrumentation for ResourceBuffer. It gives us 10mb on gmail
35968         https://bugs.webkit.org/show_bug.cgi?id=100254
35969
35970         Reviewed by Yury Semikhatsky.
35971
35972         * loader/ResourceBuffer.cpp:
35973         (WebCore::ResourceBuffer::reportMemoryUsage):
35974         (WebCore):
35975         * loader/ResourceBuffer.h:
35976         (ResourceBuffer):
35977
35978 2012-10-24  Eric Carlson  <eric.carlson@apple.com>
35979
35980         Allow ports to override text track rendering style
35981         https://bugs.webkit.org/show_bug.cgi?id=97800
35982         <rdar://problem/12044964>
35983
35984         Unreviewed Build fix.
35985         
35986         CGFloat is already a float in a 32-bit build so narrowPrecisionToFloat() is unnecessary
35987
35988         * page/CaptionUserPreferencesMac.mm:
35989         (WebCore::CaptionUserPreferencesMac::captionFontSizeScale):
35990
35991 2012-10-24  Eric Carlson  <eric.carlson@apple.com>
35992
35993         Allow ports to override text track rendering style
35994         https://bugs.webkit.org/show_bug.cgi?id=97800
35995         <rdar://problem/12044964>
35996
35997         Reviewed by Maciej Stachowiak.
35998
35999         * WebCore.exp.in: Export new WebkitSystemInterface functions.
36000         * WebCore.xcodeproj/project.pbxproj: Add CaptionUserPreferences.h, CaptionUserPreferencesMac.mm,
36001             and CaptionUserPreferencesMac.h.
36002
36003         * css/mediaControls.css: Rearrange the caption CSS so it is possible to style the cue window,
36004             background, and text independently.
36005
36006         * html/HTMLMediaElement.cpp:
36007         (WebCore::HTMLMediaElement::HTMLMediaElement): Initialize m_disableCaptions with theme->userPrefersCaptions().
36008         (WebCore::HTMLMediaElement::attach): Register for caption preferences change callbacks.
36009         (WebCore::HTMLMediaElement::detach): Unregister for caption preferences change callbacks.
36010         (WebCore::HTMLMediaElement::userPrefersCaptions): Return theme->userPrefersCaptions().
36011         (WebCore::HTMLMediaElement::userIsInterestedInThisTrackKind): Consider userPrefersCaptions().
36012         (WebCore::HTMLMediaElement::setClosedCaptionsVisible): Move the code that marks all tracks as
36013             un-configured to markCaptionAndSubtitleTracksAsUnconfigured so it can be reused.
36014         (WebCore::HTMLMediaElement::captionPreferencesChanged): New, force a reevaluation of all text tracks.
36015         (WebCore::HTMLMediaElement::markCaptionAndSubtitleTracksAsUnconfigured): New, code moved from 
36016             setClosedCaptionsVisible
36017         * html/HTMLMediaElement.h: Inherit from CaptionPreferencesChangedListener.
36018
36019         * html/shadow/MediaControlElements.cpp:
36020         (WebCore::MediaControlTextTrackContainerElement::updateSizes): Get rid of unnecessary member
36021             variable. Get caption font scale from theme instead of hard coding.
36022         * html/shadow/MediaControlElements.h:
36023
36024         * html/track/TextTrack.cpp:
36025         (WebCore::TextTrack::TextTrack): Change attributes from String to AtomicString.
36026         (WebCore::TextTrack::isValidKindKeyword): Ditto.
36027         (WebCore::TextTrack::setKind): Ditto.
36028         (WebCore::TextTrack::setMode): Ditto.
36029         (WebCore::TextTrack::mode): Ditto.
36030         * html/track/TextTrack.h:
36031         (WebCore::TextTrack::create): Ditto.
36032         (WebCore::TextTrack::kind): Ditto.
36033         (WebCore::TextTrack::label): Ditto.
36034         (WebCore::TextTrack::setLabel): Ditto.
36035         (WebCore::TextTrack::language): Ditto.
36036         (WebCore::TextTrack::setLanguage): Ditto.
36037
36038         * html/track/TextTrackCue.cpp:
36039         (WebCore::TextTrackCueBox::TextTrackCueBox): Set the shadow pseudo id.
36040         (WebCore::TextTrackCueBox::textTrackCueBoxShadowPseudoId): New, class method to return the 
36041             shadow pseudo id so it can be used elsewhere.
36042         (WebCore::TextTrackCueBox::shadowPseudoId): Call textTrackCueBoxShadowPseudoId.
36043         (WebCore::TextTrackCue::pastNodesShadowPseudoId): New, class method to return the 
36044             shadow pseudo id so it can be used elsewhere.
36045         (WebCore::TextTrackCue::futureNodesShadowPseudoId): Ditto.
36046         (WebCore::TextTrackCue::updateDisplayTree):
36047         * html/track/TextTrackCue.h:
36048
36049         * page/CaptionUserPreferences.h: Added.
36050         * page/CaptionUserPreferencesMac.h: Added.
36051         * page/CaptionUserPreferencesMac.mm: Added.
36052         (WebCore::userCaptionPreferencesChangedNotificationCallback):
36053         (WebCore::CaptionUserPreferencesMac::CaptionUserPreferencesMac):
36054         (WebCore::CaptionUserPreferencesMac::~CaptionUserPreferencesMac):
36055         (WebCore::CaptionUserPreferencesMac::userHasCaptionPreferences): New, passthrough to WKSI function.
36056         (WebCore::CaptionUserPreferencesMac::userPrefersCaptions): Ditto.
36057         (WebCore::CaptionUserPreferencesMac::captionsWindowColor): Return Color with user's caption window color preference.
36058         (WebCore::CaptionUserPreferencesMac::captionsBackgroundColor): Return Color with user's caption 
36059             background color preference.
36060         (WebCore::CaptionUserPreferencesMac::captionsTextColor): Return Color with user's caption text color preference.
36061         (WebCore::CaptionUserPreferencesMac::captionsEdgeColorForTextColor): Return Color for text edge effect.
36062         (WebCore::CaptionUserPreferencesMac::cssPropertyWithTextEdgeColor): Return String with CSS to set a text-shadow
36063             or webkit-text-stroke property.
36064         (WebCore::CaptionUserPreferencesMac::cssColorProperty): Return a String with css to set a property 
36065             with a color value.
36066         (WebCore::CaptionUserPreferencesMac::captionsTextEdgeStyle): Return a String with css to style caption 
36067             text with the user's preferred text edge stye.
36068         (WebCore::CaptionUserPreferencesMac::captionsDefaultFont): Return a String with css to style caption
36069             text with the user's preferred font.
36070         (WebCore::CaptionUserPreferencesMac::captionsStyleSheetOverride): Return a String with css to style captions
36071             with the user's preferred style.
36072         (WebCore::CaptionUserPreferencesMac::captionFontSizeScale): Return the user's preferred caption font scale.
36073         (WebCore::CaptionUserPreferencesMac::captionPreferencesChanged): Notify listeners of caption preference change.
36074         (WebCore::CaptionUserPreferencesMac::registerForCaptionPreferencesChangedCallbacks): Add a caption preferences 
36075             changes listener.
36076         (WebCore::CaptionUserPreferencesMac::unregisterForCaptionPreferencesChangedCallbacks): Remove a caption preferences
36077             changes listener.
36078         (WebCore::CaptionUserPreferencesMac::updateCaptionStyleSheetOveride): New, if theme has a captions style sheet override,
36079             inject it into the current page group, otherwise remove injected sheet.
36080
36081         * page/PageGroup.cpp:
36082         (WebCore::PageGroup::captionPreferences):
36083         (WebCore::PageGroup::registerForCaptionPreferencesChangedCallbacks): New, passthrough to platform specific function
36084             of the same name.
36085         (WebCore::PageGroup::unregisterForCaptionPreferencesChangedCallbacks): Ditto.
36086         (WebCore::PageGroup::userPrefersCaptions): Ditto.
36087         (WebCore::PageGroup::userHasCaptionPreferences): Ditto.
36088         (WebCore::PageGroup::captionFontSizeScale): Ditto.
36089         * page/PageGroup.h:
36090
36091         * platform/mac/WebCoreSystemInterface.h: Updated.
36092         * platform/mac/WebCoreSystemInterface.mm: Ditto.
36093
36094 2012-10-24  Vsevolod Vlasov  <vsevik@chromium.org>
36095
36096         Web Inspector: Introduce workspace provider as a content providing backend for project.
36097         https://bugs.webkit.org/show_bug.cgi?id=100244
36098
36099         Reviewed by Pavel Feldman.
36100
36101         Introduced WorkspaceProvider interface as a content providing backend for project.
36102         Added NetworkWorkspaceProvider as a network based (default) implementation.
36103
36104         * WebCore.gypi:
36105         * WebCore.vcproj/WebCore.vcproj:
36106         * inspector/compile-front-end.py:
36107         * inspector/front-end/CompilerScriptMapping.js:
36108         (WebInspector.CompilerScriptMapping):
36109         * inspector/front-end/DebuggerScriptMapping.js:
36110         (WebInspector.DebuggerScriptMapping):
36111         * inspector/front-end/NetworkUISourceCodeProvider.js:
36112         (WebInspector.NetworkUISourceCodeProvider):
36113         (WebInspector.NetworkUISourceCodeProvider.prototype._parsedScriptSource):
36114         (WebInspector.NetworkUISourceCodeProvider.prototype._resourceAdded):
36115         (WebInspector.NetworkUISourceCodeProvider.prototype._addFile):
36116         * inspector/front-end/NetworkWorkspaceProvider.js: Added.
36117         (WebInspector.NetworkWorkspaceProvider):
36118         (WebInspector.NetworkWorkspaceProvider.prototype.requestFileContent):
36119         (WebInspector.NetworkWorkspaceProvider.prototype.setFileContent):
36120         (WebInspector.NetworkWorkspaceProvider.prototype.searchInFileContent):
36121         (WebInspector.NetworkWorkspaceProvider.prototype.addFile):
36122         (WebInspector.NetworkWorkspaceProvider.prototype.removeFile):
36123         (WebInspector.NetworkWorkspaceProvider.prototype.reset):
36124         * inspector/front-end/SASSSourceMapping.js:
36125         (WebInspector.SASSSourceMapping):
36126         (_bindUISourceCode):
36127         * inspector/front-end/ScriptSnippetModel.js:
36128         (WebInspector.ScriptSnippetModel):
36129         (WebInspector.ScriptSnippetModel.prototype._addScriptSnippet):
36130         * inspector/front-end/WebKit.qrc:
36131         * inspector/front-end/Workspace.js:
36132         (WebInspector.FileDescriptor):
36133         (WebInspector.WorkspaceProvider):
36134         (WebInspector.WorkspaceProvider.prototype.requestFileContent):
36135         (WebInspector.WorkspaceProvider.prototype.searchInFileContent):
36136         (WebInspector.WorkspaceProvider.prototype.addEventListener):
36137         (WebInspector.WorkspaceProvider.prototype.removeEventListener):
36138         (WebInspector.Project):
36139         (WebInspector.Project.prototype.reset):
36140         (WebInspector.Project.prototype._fileAdded):
36141         (WebInspector.Project.prototype._fileRemoved):
36142         (WebInspector.Project.prototype.requestFileContent):
36143         (WebInspector.Project.prototype.searchInFileContent):
36144         (WebInspector.Workspace):
36145         (WebInspector.Workspace.prototype.addProject):
36146         (WebInspector.Workspace.prototype.project):
36147         * inspector/front-end/inspector.html:
36148         * inspector/front-end/inspector.js:
36149
36150 2012-10-24  Nikita Vasilyev  <me@elv1s.ru>
36151
36152         Web Inspector: Styles pane: Don't select whole value when I select just a part
36153         https://bugs.webkit.org/show_bug.cgi?id=100242
36154
36155         Reviewed by Alexander Pavlov.
36156
36157         * inspector/front-end/StylesSidebarPane.js:
36158         (WebInspector.StylePropertiesSection.prototype._handleEmptySpaceClick):
36159         (WebInspector.StylePropertyTreeElement.prototype):
36160
36161 2012-10-24  Vsevolod Vlasov  <vsevik@chromium.org>
36162
36163         Web Inspector: UiSourceCode should rely on the workspace as a content provider.
36164         https://bugs.webkit.org/show_bug.cgi?id=100216
36165
36166         Reviewed by Pavel Feldman.
36167
36168         Workspace is now passed to UISourceCode to be used as a content provider.
36169         Content providers are now stored in the workspace/project.
36170         Next step would be to move content providers to workspace providers.
36171
36172         * inspector/front-end/BreakpointManager.js:
36173         (WebInspector.BreakpointManager.breakpointStorageId):
36174         * inspector/front-end/UISourceCode.js:
36175         (WebInspector.UISourceCode):
36176         (WebInspector.UISourceCode.prototype.contentType):
36177         (WebInspector.UISourceCode.prototype.requestContent):
36178         (WebInspector.UISourceCode.prototype.requestOriginalContent):
36179         (WebInspector.UISourceCode.prototype._commitContent):
36180         (WebInspector.UISourceCode.prototype.searchInContent):
36181         * inspector/front-end/Workspace.js:
36182         (WebInspector.WorkspaceController.prototype._mainFrameNavigated):
36183         (WebInspector.Project):
36184         (WebInspector.Project.prototype.addUISourceCode):
36185         (WebInspector.Project.prototype.removeUISourceCode):
36186         (WebInspector.Project.prototype.uiSourceCodes):
36187         (WebInspector.Project.prototype.requestFileContent):
36188         (WebInspector.Project.prototype.searchInFileContent):
36189         (WebInspector.Workspace):
36190         (WebInspector.Workspace.prototype.addTemporaryUISourceCode):
36191         (WebInspector.Workspace.prototype.removeTemporaryUISourceCode):
36192         (WebInspector.Workspace.prototype.reset):
36193
36194 2012-10-24  Zeno Albisser  <zeno@webkit.org>
36195
36196         Implement GraphicsSurface for Windows.
36197         https://bugs.webkit.org/show_bug.cgi?id=98147
36198
36199         Reviewed by Kenneth Rohde Christiansen.
36200
36201         * Target.pri:
36202             Include GraphicsSurfaceWin.cpp in SOURCES on Windows.
36203         * platform/graphics/surfaces/GraphicsSurface.h:
36204             Add typedef for PlatformGraphicsSurface on Windows.
36205         * platform/graphics/surfaces/GraphicsSurfaceToken.h:
36206             Add typedef for BufferHandle on Windows.
36207         (GraphicsSurfaceToken):
36208         * platform/graphics/surfaces/win/GraphicsSurfaceWin.cpp: Added.
36209             The GraphicsSurface implementation on Windows relies on the
36210             availability of ANGLE and the EGL_ANGLE_query_surface_pointer extension.
36211             For Qt this requirements are implicitly satisfied, when Qt is built
36212             on Windows and QT_CONFIG contains OpenGLES2.
36213             The GraphicsSurface then renders a given texture onto an offscreen
36214             pixel buffer surface, queries the surface pointer using the
36215             EGL_ANGLE_query_surface_pointer extension, and transmits the received
36216             surface pointer (share handle) over IPC.
36217             On the UIProcess side, the surface pointer can then be resolved
36218             using eglCreatePbufferFromClientBuffer.
36219         (WebCore):
36220         (WebCore::loadShader):
36221             Initialize the shaders needed for drawing onto the GraphicsSurface.
36222         (GraphicsSurfacePrivate):
36223         (WebCore::GraphicsSurfacePrivate::GraphicsSurfacePrivate):
36224             In case of the instance being on the WebProcess side,
36225             create an EGLContext that shares the texture objects with the provided
36226             share context. Also create two pixel buffer surfaces, one as front- and
36227             one as backbuffer.
36228             Query the surface pointers for the pixel buffer surfaces and initialize
36229             the GraphicsSurfaceToken that can be passed over IPC later.
36230         (WebCore::GraphicsSurfacePrivate::~GraphicsSurfacePrivate):
36231             Release all aquired resources and destroy the pixel buffer surfaces.
36232             Also close the EGL-Display connection.
36233         (WebCore::GraphicsSurfacePrivate::copyFromTexture):
36234             Make the belonging context current on the back buffer surface
36235             and use drawTexture() to draw the provided texture onto the GraphicsSurface.
36236         (WebCore::GraphicsSurfacePrivate::makeCurrent):
36237             Save the previously current context, then make the context belonging
36238             to the GraphicsSurface current.
36239         (WebCore::GraphicsSurfacePrivate::doneCurrent):
36240             Restore the context that was current before calling makeCurrent().
36241         (WebCore::GraphicsSurfacePrivate::swapBuffers):
36242             Swap front and back buffer surfaces and handles.
36243         (WebCore::GraphicsSurfacePrivate::token):
36244         (WebCore::GraphicsSurfacePrivate::frontBufferTextureID):
36245             This function is meant to be called from the UIProcess side.
36246             If no front buffer surface has been created before for the current
36247             front buffer handle, one will be created.
36248             Then eglBindTexImage will be used to actually bind the current
36249             front buffer surface to a texture as a source for drawing.
36250         (WebCore::GraphicsSurfacePrivate::initialFrontBufferShareHandle):
36251         (WebCore::GraphicsSurfacePrivate::frontBufferShareHandle):
36252         (WebCore::GraphicsSurfacePrivate::backBufferShareHandle):
36253         (WebCore::GraphicsSurfacePrivate::releaseFrontBufferTexture):
36254             Free the resources related to the front buffer surface.
36255             On the UIProcess side we never actually bind the back buffer.
36256         (WebCore::GraphicsSurfacePrivate::initializeShaderProgram):
36257             Initialize and link the shader programs necessary for drawing
36258             onto the GraphicsSurface.
36259         (WebCore::GraphicsSurfacePrivate::createSurfaceFromShareHandle):
36260             Creates a single pixel buffer surface from a share Handle.
36261             This function will be called on the UIProcess side,
36262             for the front buffer handle, whenever the buffers have been swapped.
36263         (WebCore::GraphicsSurfacePrivate::drawTexture):
36264             The WebProcess uses this function to draw a given
36265             texture onto the GraphicsSurface's back buffer.
36266         (WebCore::GraphicsSurface::platformExport):
36267         (WebCore::GraphicsSurface::platformGetTextureID):
36268         (WebCore::GraphicsSurface::platformCopyToGLTexture):
36269         (WebCore::GraphicsSurface::platformCopyFromTexture):
36270         (WebCore::GraphicsSurface::platformPaintToTextureMapper):
36271             Uses TextureMapperGL::drawTexture() to draw the front buffer texture
36272             to the TextureMapper on the UIProcess side.
36273         (WebCore::GraphicsSurface::platformFrontBuffer):
36274         (WebCore::GraphicsSurface::platformSwapBuffers):
36275         (WebCore::GraphicsSurface::platformCreate):
36276         (WebCore::GraphicsSurface::platformImport):
36277         (WebCore::GraphicsSurface::platformLock):
36278         (WebCore::GraphicsSurface::platformUnlock):
36279         (WebCore::GraphicsSurface::platformDestroy):
36280
36281 2012-09-27  Yury Semikhatsky  <yurys@chromium.org>
36282
36283         Web Inspector: provide memory instrumentation for ListHashSet
36284         https://bugs.webkit.org/show_bug.cgi?id=97786
36285
36286         Reviewed by Vsevolod Vlasov.
36287
36288         Switched existing usages of addListHashSet to the generic instrumentation mechanism
36289         as it should work just just fine now that there is a memory instrumentation of
36290         ListHashSet.
36291
36292         * dom/DocumentEventQueue.cpp:
36293         * dom/DocumentStyleSheetCollection.cpp:
36294         (WebCore::DocumentStyleSheetCollection::reportMemoryUsage):
36295         * loader/cache/CachedResourceLoader.cpp:
36296         (WebCore::CachedResourceLoader::reportMemoryUsage):
36297
36298 2012-10-24  Charles Wei  <charles.wei@torchmobile.com.cn>
36299
36300         [BlackBerry] Credentials not re-used for a redirected request to the same domain
36301         https://bugs.webkit.org/show_bug.cgi?id=100193
36302
36303         Reviewed by George Staikos.
36304
36305         We should store the credentials in the redirection response handler, if the request is challenged.
36306         Because the redirect response suggests the authentication succeeds. 
36307
36308         Test: http://browsertest01.rim.net/authbasic
36309
36310         * platform/network/blackberry/NetworkJob.cpp:
36311         (WebCore::NetworkJob::handleRedirect):
36312
36313 2012-10-24  Alexander Pavlov  <apavlov@chromium.org>
36314
36315         Web Inspector: Implement CSS reload upon related SASS resource saving
36316         https://bugs.webkit.org/show_bug.cgi?id=98024
36317
36318         Reviewed by Vsevolod Vlasov.
36319
36320         SASS-generated debug info in CSS is parsed to find out which SASS files contributed to this stylesheet.
36321         Upon SASS file save in the Sources panel, all affected external CSS stylesheets are reloaded to update
36322         the page styles (presuming that SASS is running in the "watch" mode during the development cycle).
36323
36324         * English.lproj/localizedStrings.js:
36325         * inspector/front-end/SASSSourceMapping.js:
36326         (WebInspector.SASSSourceMapping):
36327         (WebInspector.SASSSourceMapping.prototype._fileSaveFinished.callback):
36328         (WebInspector.SASSSourceMapping.prototype._reloadCSS):
36329         (_bindUISourceCode):
36330         (_addCSSURLforSASSURL):
36331         * inspector/front-end/Settings.js:
36332         * inspector/front-end/SettingsScreen.js:
36333         (WebInspector.GenericSettingsTab):
36334
36335 2012-10-23  Yury Semikhatsky  <yurys@chromium.org>
36336
36337         Memory instrumentation: don't count agent-specific front-ends separately
36338         https://bugs.webkit.org/show_bug.cgi?id=100087
36339
36340         Reviewed by Alexander Pavlov.
36341
36342         Pointers to domain-specific inspector front-end interfaces are reported as
36343         weak pointers instead of members to avoid double-counting.
36344
36345         Test by comparing set of reported instrumented objects with the set of objects
36346         allocated by tcmalloc.
36347
36348         * inspector/InspectorDOMStorageAgent.cpp:
36349         (WebCore::InspectorDOMStorageAgent::reportMemoryUsage):
36350         * inspector/InspectorDOMStorageResource.cpp:
36351         (WebCore::InspectorDOMStorageResource::reportMemoryUsage):
36352         * inspector/InspectorProfilerAgent.cpp:
36353         (WebCore::InspectorProfilerAgent::reportMemoryUsage):
36354
36355 2012-10-23  Christophe Dumez  <christophe.dumez@intel.com>
36356
36357         Regression(r132303) Broke debug build when SHADOW_DOM is enabled but STYLE_SCOPED is disabled
36358         https://bugs.webkit.org/show_bug.cgi?id=100203
36359
36360         Unreviewed Build fix.
36361
36362         Fix compilation error in StyleResolver.h when SHADOW_DOM flag is
36363         set and STYLE_SCOPED is not.
36364
36365         No new tests, no behavior change.
36366
36367         * css/StyleResolver.h:
36368         (WebCore::StyleResolver::ensureScopeResolver):
36369
36370 2012-10-23  Andreas Kling  <kling@webkit.org>
36371
36372         Remove specialized hash traits for GlyphPages.
36373         <http://webkit.org/b/100185>
36374
36375         Reviewed by Dan Bernstein.
36376
36377         Now that the default minimum table size has been lowered for all tables, there's no need
36378         for this specialization anymore.
36379
36380         * platform/graphics/FontFallbackList.h:
36381         (FontFallbackList):
36382
36383 2012-10-23  Kent Tamura  <tkent@chromium.org>
36384
36385         Multiple fields input UI: Don't use CSS properties for physical direction
36386         https://bugs.webkit.org/show_bug.cgi?id=100195
36387
36388         Reviewed by Kentaro Hara.
36389
36390         CSS declarations such as "padding: 0 0 0 1px;" "margin-left: 0.2em;" are
36391         not direction-neutral, and makes unexpected appearance in RTL. We should
36392         use -webkit-padding-start or -webkit-margin-start.
36393
36394         No new tests. Covered by date-multiple-fields-appearance-l10n.html and
36395         month-multiple-fields-appearance-l10n.html
36396
36397         * css/html.css:
36398         (input[type="date"]): Use padding:0 and -webkit-padding-start:1px;
36399         (input[type="datetime"]): Ditto.
36400         (input[type="datetime-local"]): Ditto.
36401         (input[type="month"]): Ditto.
36402         (input[type="time"]): Ditto.
36403         (input[type="week"]): Ditto.
36404         (input[type="week"]::-webkit-inner-spin-button):
36405         Use -webkit-margin-start. Also use an integral pixel size instead of
36406         avoid a fractional relative size to avoid subpixel layout rounding.
36407
36408 2012-10-23  Dan Bernstein  <mitz@apple.com>
36409
36410         The font cache evicts inactive font data too aggressively when not under memory pressure
36411         https://bugs.webkit.org/show_bug.cgi?id=100194
36412
36413         Reviewed by Sam Weinig.
36414
36415         Increasing the number of inactive font data objects the cache may hold increases the hit
36416         rate, leading to improved page load performance. When memory pressure is detected,
36417         MemoryPressureHandler evicts all inactive objects, regardless of the limits we are
36418         increasing here.
36419
36420         * platform/graphics/FontCache.cpp:
36421         (WebCore): Increased the maximum number of inactive font data objects in the cache from 50
36422         to 225, and the number of objects to evict once the limit is met from 20 to 25.
36423
36424 2012-10-23  Takashi Sakamoto  <tasak@google.com>
36425
36426         [Shadow DOM] Needs @host rule for ShadowDOM styling
36427         https://bugs.webkit.org/show_bug.cgi?id=88606
36428
36429         Reviewed by Hajime Morita.
36430
36431         Implemented @host-@rules according to the shadow dom spec:
36432         http://dvcs.w3.org/hg/webcomponents/raw-file/tip/spec/shadow/index.html#host-at-rule
36433         The design doc is:
36434         https://docs.google.com/document/d/1P2yorchF8lci2sccr-mVSRf2dtvjKeiuyQWzCB2bEA8/edit
36435
36436         Test: fast/dom/shadow/athost-atrules.html
36437
36438         * css/CSSGrammar.y.in:
36439         Added rules for parsing @host @-rules.
36440         * css/CSSParser.cpp:
36441         (WebCore::CSSParser::detectAtToken):
36442         Added a new token "@host".
36443         (WebCore::CSSParser::createHostRule):
36444         Added a new method to create an @host @-rule, which is invoked from
36445         (WebCore):
36446         * css/CSSParser.h:
36447         Added a declaration of the above new method: createHostRule.
36448         * css/CSSPropertySourceData.h:
36449         Added HOST_RULE to enum Type.
36450         * css/RuleSet.cpp:
36451         (WebCore::RuleData::RuleData):
36452         Modified multiple bool arguments into one argument. Now it
36453         uses combinations of values from enum AddRuleFlags.
36454         (WebCore::RuleSet::addRule):
36455         (WebCore::RuleSet::addRegionRule):
36456         (WebCore::RuleSet::addStyleRule):
36457         Updated according to the RuleData's change.
36458         Modified to Invoke increaseSpecificity if the given rule is @host
36459         @-rule.
36460         (WebCore::RuleSet::addRulesFromSheet):
36461         Invoked addHostRule if the given rule is @host @-rule.
36462         * css/RuleSet.h:
36463         (RuleData):
36464         (WebCore::RuleData::increaseSpecificity):
36465         Added a new method to increase selector's specificity. This method is
36466         used to make @host @-rules' specificity larger than normal author
36467         rules' specificity.
36468         (RuleSet):
36469         * css/StyleResolver.cpp:
36470         (WebCore::makeRuleSet):
36471         (WebCore::StyleResolver::addHostRule):
36472         A wrapper method to invoke StyleScopeResolver::addHostRule. The method
36473         is used to make only StyleResolver know an implementation detail about
36474         class StyleScopeResolver.
36475         (WebCore::StyleResolver::appendAuthorStylesheets):
36476         Updated according to the RuleData's change.
36477         (WebCore::StyleResolver::styleSharingCandidateMatchesHostRules):
36478         A new method to find matched host rules when an element is given.
36479         This method invokes
36480         StyleScopeResolver::styleSharingCandidateMatchesHostRules to find
36481         matched host rules.
36482         (WebCore):
36483         (WebCore::StyleResolver::matchHostRules):
36484         A new method to find matched host rules when an element is given.
36485         This method invokes StyleScopeResolver::matchHostRules to find
36486         matched host rules.
36487         (WebCore::StyleResolver::matchScopedAuthorRules):
36488         Modified to invoke matchHostRules.
36489         (WebCore::StyleResolver::locateSharedStyle):
36490         Disable sibling style cache if the given element is a shadow host and
36491         any @host @-rules are applied to the element.
36492         * css/StyleResolver.h:
36493         (WebCore::StyleResolver::ensureScopeResolver):
36494         If no scopeResolver is created, create and return the instance.
36495         If created, just return the instance.
36496         (StyleResolver):
36497         * css/StyleRule.cpp:
36498         (WebCore::StyleRuleBase::reportMemoryUsage):
36499         (WebCore::StyleRuleBase::destroy):
36500         (WebCore::StyleRuleBase::copy):
36501         (WebCore::StyleRuleBase::createCSSOMWrapper):
36502         (WebCore::StyleRuleHost::StyleRuleHost):
36503         Implemented class StyleRuleHost. The class is almost the same as
36504         StyleRuleBlock except type.
36505         (WebCore):
36506         * css/StyleRule.h:
36507         (WebCore::StyleRuleBase::isHostRule):
36508         (StyleRuleHost):
36509         (WebCore::StyleRuleHost::create):
36510         (WebCore::StyleRuleHost::copy):
36511         (WebCore):
36512         * css/StyleScopeResolver.cpp:
36513         (WebCore::StyleScopeResolver::ensureAtHostRuleSetFor):
36514         A new method to create a new RuleSet for the given shadow root.
36515         (WebCore):
36516         (WebCore::StyleScopeResolver::atHostRuleSetFor):
36517         A new private inline method to obtain @host @-rules declared in
36518         the given shadow root.
36519         (WebCore::StyleScopeResolver::addHostRule):
36520         Added a new method to register @host @-rules with shadow roots.
36521         (WebCore::StyleScopeResolver::styleSharingCandidateMatchesHostRules):
36522         A new method to find whether any @host @-rules are applied to
36523         the given host element.
36524         (WebCore::StyleScopeResolver::matchHostRules):
36525         A new method to find matched rules for the given host element.
36526         (WebCore::StyleScopeResolver::reportMemoryUsage):
36527         * css/StyleScopeResolver.h:
36528         (WebCore):
36529         (StyleScopeResolver):
36530         * css/StyleSheetContents.cpp:
36531         (WebCore::childRulesHaveFailedOrCanceledSubresources):
36532
36533 2012-10-23  Andreas Kling  <kling@webkit.org>
36534
36535         REGRESSION(r130643): ASSERTION FAILED: result.iterator != end() below PluginDatabase::add
36536         <http://webkit.org/b/100065>
36537
36538         Reviewed by Anders Carlsson.
36539
36540         Restore the pre-r130643 hash table size for PluginDatabase to prevent these easily reproducible
36541         collisions. This will need a proper fix at some point.
36542
36543         * plugins/PluginDatabase.h:
36544         * plugins/PluginPackage.h:
36545         (PluginPackageHashTraits):
36546
36547 2012-10-23  Simon Fraser  <simon.fraser@apple.com>
36548
36549         Allow tests to run with a tile cache, and optionally dump the tile cache via layerTreeAsText()
36550         https://bugs.webkit.org/show_bug.cgi?id=100159
36551
36552         Reviewed by Tim Horton.
36553
36554         Add a LAYER_TREE_INCLUDES_PAGE_TILE_CACHE flag for layerTreeAsText(), and plumb it
36555         through to GraphicsLayerCA, which dumps the TiledBacking tile coverage rect.
36556
36557         Test: platform/mac/tiled-drawing/use-tiled-drawing.html
36558
36559         * page/Frame.h:
36560         * platform/graphics/GraphicsLayer.cpp:
36561         (showGraphicsLayerTree):
36562         * platform/graphics/GraphicsLayer.h:
36563         (WebCore::GraphicsLayer::tiledBacking):
36564         * platform/graphics/TiledBacking.h:
36565         * platform/graphics/ca/GraphicsLayerCA.cpp:
36566         (WebCore::GraphicsLayerCA::tiledBacking):
36567         (WebCore::GraphicsLayerCA::dumpAdditionalProperties):
36568         * platform/graphics/ca/GraphicsLayerCA.h:
36569         (GraphicsLayerCA):
36570         * platform/graphics/ca/mac/TileCache.h:
36571         (WebCore::TileCache::tileCoverageRect):
36572         (TileCache):
36573         * platform/graphics/ca/mac/TileCache.mm:
36574         (WebCore::TileCache::computeTileCoverageRect):
36575         (WebCore::TileCache::revalidateTiles):
36576         * rendering/RenderLayerCompositor.cpp:
36577         (WebCore::RenderLayerCompositor::layerTreeAsText):
36578         * testing/Internals.cpp:
36579         (WebCore::Internals::layerTreeAsText):
36580         * testing/Internals.h:
36581         * testing/Internals.idl:
36582
36583 2012-10-23  Simon Fraser  <simon.fraser@apple.com>
36584
36585         Flush pending GraphicsLayer changes when reattaching compositing layers if necessary
36586         https://bugs.webkit.org/show_bug.cgi?id=100187
36587         <rdar://problem/12546770>
36588
36589         Reviewed by Dan Bernstein.
36590
36591         Fix a regression from r131940. That revision changed RenderLayerCompositor::flushPendingLayerChanges()
36592         to bail if the root layer is unattached, which indicates that we're in the page cache, or in a
36593         background tab. However, that dropped the layer flush on the floor, so that any subsequent changes
36594         to GraphicsLayerCAs would just pile up and never get flushed. This was most evident on pages
36595         that require frequent flushing, such as those running animated GIFs.
36596         
36597         Fix by setting a flag in flushPendingLayerChanges() if we're unattached. Consult the flag
36598         when re-attaching the root layer, and if it's set, flush the GraphicsLayers.
36599         
36600         Not testable because we can't test detaching and re-adding web views in DRT/WTR.
36601
36602         * rendering/RenderLayerCompositor.cpp:
36603         (WebCore::RenderLayerCompositor::RenderLayerCompositor): Initialize m_shouldFlushOnReattach to false.
36604         (WebCore::RenderLayerCompositor::flushPendingLayerChanges): If the root layer attachment
36605         is RootLayerUnattached, set the m_shouldFlushOnReattach flag before returning.
36606         (WebCore::RenderLayerCompositor::attachRootLayer): If m_shouldFlushOnReattach, flush the layers,
36607         saying that we're the flush root.
36608         * rendering/RenderLayerCompositor.h:
36609         (RenderLayerCompositor): Add m_shouldFlushOnReattach flag.
36610
36611 2012-10-23  Sheriff Bot  <webkit.review.bot@gmail.com>
36612
36613         Unreviewed, rolling out r132276.
36614         http://trac.webkit.org/changeset/132276
36615         https://bugs.webkit.org/show_bug.cgi?id=100189
36616
36617         It broke the Qt-WK2 build intentionally (Requested by
36618         Ossy_night on #webkit).
36619
36620         * page/Frame.h:
36621         * platform/graphics/GraphicsLayer.cpp:
36622         (showGraphicsLayerTree):
36623         * platform/graphics/GraphicsLayer.h:
36624         (WebCore::GraphicsLayer::tiledBacking):
36625         * platform/graphics/TiledBacking.h:
36626         * platform/graphics/ca/GraphicsLayerCA.cpp:
36627         (WebCore::GraphicsLayerCA::tiledBacking):
36628         (WebCore::GraphicsLayerCA::dumpAdditionalProperties):
36629         * platform/graphics/ca/GraphicsLayerCA.h:
36630         (GraphicsLayerCA):
36631         * platform/graphics/ca/mac/TileCache.h:
36632         * platform/graphics/ca/mac/TileCache.mm:
36633         (WebCore::TileCache::tileCoverageRect):
36634         (WebCore::TileCache::revalidateTiles):
36635         * rendering/RenderLayerCompositor.cpp:
36636         (WebCore::RenderLayerCompositor::layerTreeAsText):
36637         * testing/Internals.cpp:
36638         (WebCore::Internals::layerTreeAsText):
36639         * testing/Internals.h:
36640         * testing/Internals.idl:
36641
36642 2012-10-23  Philip Rogers  <pdr@google.com>
36643
36644         Add extra check for data() in PageSerializer.
36645         https://bugs.webkit.org/show_bug.cgi?id=99102
36646
36647         Reviewed by Eric Seidel.
36648
36649         The image returned from imageForRenderer() does not contain the raw SVG data
36650         so this patch adds a check for image->image()->data() before writing SVG
36651         in PageSerializer::addImageToResources.
36652
36653         Covered by existing test WebPageNewSerializeTest.SVGImageDontCrash.
36654
36655         * page/PageSerializer.cpp:
36656         (WebCore::PageSerializer::addImageToResources):
36657
36658 2012-10-23  Kent Tamura  <tkent@chromium.org>
36659
36660         Move appendAsLDMLLiteral in LocaleWin.cpp to a common place
36661         https://bugs.webkit.org/show_bug.cgi?id=100129
36662
36663         Reviewed by Kentaro Hara.
36664
36665         We're going to use appendAsLDMLLiteral in other code, and it is
36666         related to DateTimeFormat class.  So we move it to DateTimeFormat
36667         class as quoteAndAppendLiteral.
36668
36669         No new tests because of no behavior change.
36670
36671         * platform/text/DateTimeFormat.cpp:
36672         (WebCore::DateTimeFormat::quoteAndAppendLiteral):
36673         Moved from LocaleWin.cpp
36674         * platform/text/DateTimeFormat.h:
36675         Declare StringBuilder by wtf/Forward.h. It also declares String.
36676         (DateTimeFormat): Declare quoteAndAppendLiteral.
36677         * platform/text/LocaleWin.cpp:
36678         (WebCore): Move appendLDMLLiteral to DateTimeFormat.
36679         (WebCore::convertWindowsDateFormatToLDML):
36680         Follow the moving.
36681
36682 2012-10-23  Kent Tamura  <tkent@chromium.org>
36683
36684         REGRESSION(r131421): Text baseline is not aligned in some locales
36685         https://bugs.webkit.org/show_bug.cgi?id=100088
36686
36687         Reviewed by Hajime Morita.
36688
36689         Before this patch, the element with ::-webkit-datetime-edit had
36690         -webkit-align-items:center. It was incorrect at all because it
36691         ignores baselines of each of inner fields. We need to change it to
36692         -webkit-align-items:baseline, or stop using -webkit-flex.
36693
36694         However -webkit-align-items:baseline doesn't work because a spin
36695         button element in the element doesn't have the baseline. If we
36696         specified -webkit-align-items:baseline, the spin button would
36697         shift up.
36698
36699         So, we change the element structure for multiple fields input
36700         elements. Before this patch, the structure was:
36701
36702         input
36703           |
36704            - ::-webkit-date-and-time-container (flex cotainer)
36705              |
36706              |- ::-webkit-datetime-edit (has flexibility in date-and-time-container, also this is a flex container)
36707              |  |- ::-webkit-datetime-edit-foo
36708              |  |      :
36709              |  |
36710              |  |- ::-webkit-date-time-edit-gap  (has flexibility in datetime-edit)
36711              |   - ::-webkit-inne-spin-button
36712               - ::-webkit-calendar-picker-indicator
36713
36714         After the patch, the structure will be:
36715
36716         input
36717           |
36718            - ::-webkit-date-and-time-container (flexible box)
36719              |
36720              |- ::-webkit-datetime-edit (has flexibility in date-and-time-container)
36721              |  |- ::-webkit-datetime-edit-foo
36722              |  |      :
36723              |  |
36724              |
36725              |- ::-webkit-inne-spin-button
36726               - ::-webkit-calendar-picker-indicator
36727
36728         Because the spin button owner is date-and-time-container, we don't
36729         need to make the datetime-edit element a flex container.
36730
36731         Also, we had rounding error by subpixel layout. To avoid it, we
36732         stop using fractional paddings.
36733
36734         In order to implement this, we need to change the SpinButtonOwner
36735         interface provider from DateTimeEditElement to
36736         BaseMultipleFieldsDateAndTimeInputType.
36737
36738         No new tests. Covered by month-multiple-fields-appearance-l10n.html.
36739
36740         * css/html.css:
36741         (input::-webkit-datetime-edit): Stop making this a flex
36742         container. Inner fields in this use the single baseline.
36743         (input::-webkit-datetime-edit-ampm-field):
36744         Don't use fractional paddings to avoid rounding erros of subpixel
36745         layout.  Use integral margin instead to avoid overwrap of focus
36746         ring and background-color of the field.
36747         (input::-webkit-datetime-edit-day-field): Ditto.
36748         (input::-webkit-datetime-edit-hour-field): Ditto.
36749         (input::-webkit-datetime-edit-millisecond-field): Ditto.
36750         (input::-webkit-datetime-edit-minute-field): Ditto.
36751         (input::-webkit-datetime-edit-month-field): Ditto.
36752         (input::-webkit-datetime-edit-second-field): Ditto.
36753         (input::-webkit-datetime-edit-week-field): Ditto.
36754         (input::-webkit-datetime-edit-year-field): Ditto.
36755         (input::-webkit-date-and-time-container): Ditto.
36756
36757         * html/BaseMultipleFieldsDateAndTimeInputType.h:
36758         (BaseMultipleFieldsDateAndTimeInputType): Overrides
36759         SpinButtonOwner functions, and add m_spinButtonElement.
36760         * html/BaseMultipleFieldsDateAndTimeInputType.cpp:
36761         (WebCore::BaseMultipleFieldsDateAndTimeInputType::focusAndSelectSpinButtonOwner):
36762         Just delegate to DateTimeEditElement::focusIfNoFocus.
36763         (WebCore::BaseMultipleFieldsDateAndTimeInputType::shouldSpinButtonRespondToMouseEvents):
36764         Moved from DateTimeEditElement::shouldSpinButtonRespondToMouseEvents.
36765         (WebCore::BaseMultipleFieldsDateAndTimeInputType::shouldSpinButtonRespondToWheelEvents):
36766         Moved from DateTimeEditElement::shouldSpinButtonRespondToWheelEvents.
36767         (WebCore::BaseMultipleFieldsDateAndTimeInputType::spinButtonStepDown):
36768         Delegate to DateTimeEditElement::stepDown.
36769         (WebCore::BaseMultipleFieldsDateAndTimeInputType::spinButtonStepUp):
36770         Delegate to DateTimeEditElement::stepUp.
36771         (WebCore::BaseMultipleFieldsDateAndTimeInputType::BaseMultipleFieldsDateAndTimeInputType):
36772         Initialize m_spinButtonElement.
36773         (WebCore::BaseMultipleFieldsDateAndTimeInputType::~BaseMultipleFieldsDateAndTimeInputType):
36774         Reset SpinButtonOwner for m_spinButtonElement like the old code of ~DateTimeEditElement.
36775         (WebCore::BaseMultipleFieldsDateAndTimeInputType::createShadowSubtree):
36776         Put a SpinButtonElement between the DateTimeEditElement and the PickerIndicatorElement.
36777         (WebCore::BaseMultipleFieldsDateAndTimeInputType::forwardEvent):
36778         Take care of SpinButtonElement.
36779         (WebCore::BaseMultipleFieldsDateAndTimeInputType::disabledAttributeChanged):
36780         Release capture of SpinButtonElement. This corresponds to the old
36781         code of DateTimeEditElement::updateUIState.
36782         (WebCore::BaseMultipleFieldsDateAndTimeInputType::readonlyAttributeChanged): Ditto.
36783
36784         * html/TextFieldInputType.h:
36785         Make SpinButtonElement::SpinButtonOwner protected to allow overriding.
36786
36787         * html/shadow/DateTimeEditElement.h:
36788         (DateTimeEditElement): Remove SpniButtonOwner implementation,
36789         m_spinButton, and rename some functions.
36790         * html/shadow/DateTimeEditElement.cpp:
36791         (WebCore::DateTimeEditElement::DateTimeEditElement):
36792         Remove m_spinButton.
36793         (WebCore::DateTimeEditElement::~DateTimeEditElement): Ditto.
36794         (WebCore::DateTimeEditElement::focusIfNoFocus):
36795         Renamed from focusAndSelectSpinButtonOwner. This is called
36796         BaseMultipleFieldsDateAndTimeInputType::focusAndSelectSpinButtonOwner.
36797         (WebCore::DateTimeEditElement::layout):
36798         Remove creation code for -webkit-datetime-edit-gap and SpinButtonElement.
36799         (WebCore::DateTimeEditElement::defaultEventHandler):
36800         Move the code for m_spinButton to
36801         BaseMultipleFieldsDateAndTimeInputType::forwardEvent.
36802         (WebCore::DateTimeEditElement::hasFocusedField): A helper for
36803         BaseMultipleFieldsDateAndTimeInputType::shouldSpinButtonRespondToWheelEvents.
36804         (WebCore::DateTimeEditElement::stepDown): A helper for
36805         BaseMultipleFieldsDateAndTimeInputType::spinButtonStepDown.
36806         (WebCore::DateTimeEditElement::stepUp): A helper for
36807         BaseMultipleFieldsDateAndTimeInputType::spinButtonStepUp.
36808         (WebCore::DateTimeEditElement::updateUIState): Move the code to
36809         BaseMultipleFieldsDateAndTimeInputType::disabledAttributeChanged
36810         and readonlyAttributeChanged.
36811
36812 2012-10-23  Andreas Kling  <kling@webkit.org>
36813
36814         Shrink immutable ElementAttributeData and StylePropertySet by one pointer each.
36815         <http://webkit.org/b/100123>
36816
36817         Reviewed by Anders Carlsson.
36818
36819         Remove one pointer of unintentional padding in the immutable versions of these objects.
36820         583kB progression on Membuster3.
36821
36822         * css/StylePropertySet.cpp:
36823         (WebCore::immutableStylePropertySetSize):
36824         * dom/ElementAttributeData.cpp:
36825         (WebCore::immutableElementAttributeDataSize):
36826
36827 2012-10-23  Nate Chapin  <japhet@chromium.org>
36828
36829         Crash in WebCore::SubresourceLoader::willSendRequest.
36830         https://bugs.webkit.org/show_bug.cgi?id=100147
36831
36832         Reviewed by Abhishek Arya.
36833
36834         No new tests. There is a test case that should cover this, but it doesn't
36835         work correctly on many platforms due to its use of testRunner.addURLToRedirect().
36836         See http/tests/loading/cross-origin-XHR-willLoadRequest.html.
36837         Tested manually on http://www.nick.co.uk/shows/spongebob
36838
36839         * loader/SubresourceLoader.cpp:
36840         (WebCore::SubresourceLoader::willSendRequest):
36841
36842 2012-10-23  Martin Robinson  <mrobinson@igalia.com>
36843
36844         [GTK][Soup] Implement the default authentication dialog via WebCoreSupport
36845         https://bugs.webkit.org/show_bug.cgi?id=99351
36846
36847         Reviewed by Carlos Garcia Campos.
36848
36849         Instead of connecting to the SoupSession::authenticate signal in the API layer
36850         via a SoupSessionFeature, route the message through the typical WebCore authentication
36851         mechanism. This is a step on the path to having full-blown support for authentication
36852         in the API allowing for custom authentication dialogs and behavior in clients.
36853
36854         No new tests. This should not change behavior.
36855
36856         * GNUmakefile.list.am: Add the new implementation file for the AuthenticationChallenge.
36857         * loader/ResourceLoader.cpp:
36858         (WebCore::ResourceLoader::didReceiveAuthenticationChallenge): Include GTK+ here as well.
36859         * platform/gtk/GtkAuthenticationDialog.cpp: Instead of carrying a raw pointer to a SoupAuth
36860         carry a GRefPtr which will allow the dialog to be used even after the AuthenticationChallenge
36861         is destroyed.
36862         * platform/gtk/GtkAuthenticationDialog.h: ditto.
36863         * platform/network/ResourceHandle.h: Add a didReceiveAuthenticationChallenge method.
36864         * platform/network/ResourceHandleInternal.h:
36865         (ResourceHandleInternal): Remove the getter for the initiating page ID.
36866         * platform/network/soup/AuthenticationChallenge.h: Added an implementation of AuthenticationChallenge
36867         that takes a bit of data from the handle including SoupMessage, SoupAuth, and SoupSession.
36868         * platform/network/soup/AuthenticationChallengeSoup.cpp: Added. Ditto.
36869         * platform/network/soup/ResourceError.h:
36870         (ResourceError): Added a factory for authentication errors.
36871         * platform/network/soup/ResourceErrorSoup.cpp: Ditto.
36872         * platform/network/soup/ResourceHandleSoup.cpp:
36873         (WebCore::setSoupRequestInitiaingPageID): Just get the page directly from the NetworkingContext.
36874         (WebCore::createSoupMessageForHandleAndRequest): Always set the "handle" data on the message.
36875         It's always used now.
36876         (WebCore::ResourceHandle::start): Get the initiating page ID directly from the NetworkingContext.
36877         (WebCore::ResourceHandle::didReceiveAuthenticationChallenge): Added this method which routes
36878         the authentication challenge to the client.
36879         (WebCore::ResourceHandle::receivedRequestToContinueWithoutCredential): Added a stub for this method.
36880         (WebCore::ResourceHandle::loadResourceSynchronously): Don't pass the session to the loader.
36881         (WebCore::authenicateCallback): Added.
36882         (WebCore::ResourceHandle::defaultSession): Connect the authenticate callback.
36883
36884 2012-10-23  Adam Barth  <abarth@webkit.org>
36885
36886         [V8] Simplify GCEpilogueVisitor along the same lines as GCPrologueVisitor
36887         https://bugs.webkit.org/show_bug.cgi?id=100157
36888
36889         Reviewed by Eric Seidel.
36890
36891         This patch removes the traits template parameter from GCEpilogueVisitor
36892         and makes it mirror GCPrologueVisitor again.
36893
36894         * bindings/v8/V8GCController.cpp:
36895         (WebCore):
36896         (ActiveDOMObjectEpilogueVisitor):
36897         (WebCore::ActiveDOMObjectEpilogueVisitor::ActiveDOMObjectEpilogueVisitor):
36898         (WebCore::ActiveDOMObjectEpilogueVisitor::visitDOMWrapper):
36899         (WebCore::V8GCController::majorGCEpilogue):
36900
36901 2012-10-23  Varun Jain  <varunjain@chromium.org>
36902
36903         Context menu generated from touch gestures on textareas has
36904         context of the cursor position instead of the position where the event occurs.
36905         https://bugs.webkit.org/show_bug.cgi?id=99520
36906
36907         Reviewed by Kenneth Rohde Christiansen.
36908
36909         Send a synthetic mouse down event for context menu-summoning-gesture events so
36910         that textareas can correctly set cursors before receiving the context menu event.
36911
36912         Test: fast/events/touch/gesture/right-click-gestures-set-cursor-at-correct-position.html
36913
36914         * page/EventHandler.cpp:
36915         (WebCore::EventHandler::handleGestureEvent):
36916         (WebCore::EventHandler::handleGestureTwoFingerTap):
36917         (WebCore):
36918         (WebCore::EventHandler::sendContextMenuEventForGesture):
36919         * page/EventHandler.h:
36920         (EventHandler):
36921
36922 2012-10-23  Andy Estes  <aestes@apple.com>
36923
36924         [WebKit2 API] Add properties to get textRects from a WKDOMRange or WKDOMNode
36925         https://bugs.webkit.org/show_bug.cgi?id=100162
36926
36927         Reviewed by Sam Weinig.
36928
36929         * WebCore.exp.in: Exported symbols needed by WebKit2.
36930         * bindings/objc/DOM.mm:
36931         (-[DOMNode textRects]): Moved some logic into Node::textRects()
36932         (everything but the call to updateLayoutIgnorePendingStylesheets()).
36933         * dom/Node.cpp:
36934         (WebCore::Node::textRects):
36935         * dom/Node.h:
36936
36937 2012-10-23  Adam Barth  <abarth@webkit.org>
36938
36939         [V8] Remove unused function from DOM wrapper visitor
36940         https://bugs.webkit.org/show_bug.cgi?id=100163
36941
36942         Reviewed by Eric Seidel.
36943
36944         No one overrides these virtual functions. They were added in
36945         http://trac.webkit.org/changeset/73491, but we don't use them in the GC
36946         controller anymore.
36947
36948         * bindings/v8/V8DOMMap.h:
36949         (WebCore::WeakReferenceMap::visit):
36950
36951 2012-10-23  Aaron Colwell  <acolwell@chromium.org>
36952
36953         Clear m_mediaSource reference when the MediaSource is closed
36954         https://bugs.webkit.org/show_bug.cgi?id=100047
36955
36956         Reviewed by Eric Carlson.
36957
36958         The m_mediaSource object shouldn't be accessed after the object
36959         transitions to closed so this change simply clears the reference
36960         when that transition happens.
36961
36962         No new tests because the change isn't visible to JavaScript.
36963
36964         * html/HTMLMediaElement.cpp:
36965         (WebCore::HTMLMediaElement::loadResource): Removed a closed transition that is actually dead code.
36966         (WebCore::HTMLMediaElement::setSourceState): Clear the m_mediaSource reference on closed transition.
36967
36968 2012-10-23  Simon Fraser  <simon.fraser@apple.com>
36969
36970         Allow tests to run with a tile cache, and optionally dump the tile cache via layerTreeAsText()
36971         https://bugs.webkit.org/show_bug.cgi?id=100159
36972
36973         Reviewed by Tim Horton.
36974
36975         Add a LAYER_TREE_INCLUDES_PAGE_TILE_CACHE flag for layerTreeAsText(), and plumb it
36976         through to GraphicsLayerCA, which dumps the TiledBacking tile coverage rect.
36977
36978         Test: platform/mac/tiled-drawing/use-tiled-drawing.html
36979
36980         * page/Frame.h:
36981         * platform/graphics/GraphicsLayer.cpp:
36982         (showGraphicsLayerTree):
36983         * platform/graphics/GraphicsLayer.h:
36984         (WebCore::GraphicsLayer::tiledBacking):
36985         * platform/graphics/TiledBacking.h:
36986         * platform/graphics/ca/GraphicsLayerCA.cpp:
36987         (WebCore::GraphicsLayerCA::tiledBacking):
36988         (WebCore::GraphicsLayerCA::dumpAdditionalProperties):
36989         * platform/graphics/ca/GraphicsLayerCA.h:
36990         (GraphicsLayerCA):
36991         * platform/graphics/ca/mac/TileCache.h:
36992         (WebCore::TileCache::tileCoverageRect):
36993         (TileCache):
36994         * platform/graphics/ca/mac/TileCache.mm:
36995         (WebCore::TileCache::computeTileCoverageRect):
36996         (WebCore::TileCache::revalidateTiles):
36997         * rendering/RenderLayerCompositor.cpp:
36998         (WebCore::RenderLayerCompositor::layerTreeAsText):
36999         * testing/Internals.cpp:
37000         (WebCore::Internals::layerTreeAsText):
37001         * testing/Internals.h:
37002         * testing/Internals.idl:
37003
37004 2012-10-23  No'am Rosenthal  <noam.rosenthal@nokia.com>
37005
37006         Coordinated Graphics: Enable threaded/IPC animations
37007         https://bugs.webkit.org/show_bug.cgi?id=93146
37008
37009         Reviewed by Kenneth Rohde Christiansen.
37010
37011         Add enablers to TextureMapper and GraphicsLayerAnimation so that they could be used
37012         across processes with IPC. Added some public accessors to GraphicsLayerAnimation,
37013         and allowed a GraphicsLayerTextureMapper to receive a full list of animations.
37014
37015         Covered by existing animation and compositing tests.
37016
37017         * platform/graphics/GraphicsLayerAnimation.cpp:
37018         (WebCore::GraphicsLayerAnimation::GraphicsLayerAnimation):
37019             Initialize the animation with the startTime instead of the offset.
37020
37021         (WebCore::GraphicsLayerAnimations::getActiveAnimations):
37022         * platform/graphics/GraphicsLayerAnimation.h:
37023         (WebCore::GraphicsLayerAnimation::setState):
37024             Allow setting the pause time as well.
37025
37026         (WebCore::GraphicsLayerAnimation::boxSize):
37027         (WebCore::GraphicsLayerAnimation::startTime):
37028         (WebCore::GraphicsLayerAnimation::pauseTime):
37029         (WebCore::GraphicsLayerAnimation::animation):
37030         (WebCore::GraphicsLayerAnimation::keyframes):
37031         (WebCore::GraphicsLayerAnimation::listsMatch):
37032         (WebCore::GraphicsLayerAnimations::size):
37033         (WebCore::GraphicsLayerAnimations::animations):
37034             Add public accessors to GraphicsLayerAnimation properties.
37035
37036         (GraphicsLayerAnimation):
37037         (GraphicsLayerAnimations):
37038         * platform/graphics/texmap/GraphicsLayerTextureMapper.cpp:
37039         (WebCore::GraphicsLayerTextureMapper::addAnimation):
37040         (WebCore::GraphicsLayerTextureMapper::setAnimations):
37041             Allow replacing the entire list of animations.
37042
37043         (WebCore):
37044         * platform/graphics/texmap/GraphicsLayerTextureMapper.h:
37045         (GraphicsLayerTextureMapper):
37046         * platform/graphics/texmap/TextureMapperLayer.cpp:
37047         (WebCore::TextureMapperLayer::applyAnimationsRecursively):
37048         (WebCore):
37049         * platform/graphics/texmap/TextureMapperLayer.h:
37050         (TextureMapperLayer):
37051
37052 2012-10-23  Chris Rogers  <crogers@google.com>
37053
37054         Change setTargetValueAtTime() to setTargetAtTime()
37055         https://bugs.webkit.org/show_bug.cgi?id=100153
37056
37057         Reviewed by Adam Barth.
37058
37059         The AudioParam method name has changed due to Web Audio API spec review.
37060         Keep legacy support for the old name.
37061
37062         Test: webaudio/audioparam-setTargetAtTime.html
37063
37064         * Modules/webaudio/AudioParam.h:
37065         (WebCore::AudioParam::setTargetAtTime):
37066         * Modules/webaudio/AudioParam.idl:
37067         * Modules/webaudio/AudioParamTimeline.cpp:
37068         (WebCore::AudioParamTimeline::setTargetAtTime):
37069         (WebCore::AudioParamTimeline::valuesForTimeRangeImpl):
37070         * Modules/webaudio/AudioParamTimeline.h:
37071         (AudioParamTimeline):
37072
37073 2012-10-23  Benjamin Poulain  <benjamin@webkit.org>
37074
37075         [Mac] Remove extraneous conversion to String->NSString
37076         https://bugs.webkit.org/show_bug.cgi?id=100044
37077
37078         Reviewed by Darin Adler.
37079
37080         Improve some unfortunate use of String->NSString.
37081
37082         * accessibility/mac/AXObjectCacheMac.mm:
37083         (WebCore::AXObjectCache::postPlatformNotification): The variable macNotification is ultimately
37084         needed as NSString, and all its value are or can be NSString.
37085         Convert the last 3 char* values to NSString literal and use NSString* all the way.
37086
37087         * loader/mac/LoaderNSURLExtras.h:
37088         * loader/mac/LoaderNSURLExtras.mm:
37089         (suggestedFilenameWithMIMEType):
37090         We converted the String to NSString to pass to suggestedFilenameWithMIMEType. There is no need
37091         for the string to be a NSSTring there, we can leave it in its original type.
37092
37093         The case checking for a nil MIMEType was dead code because the implicit conversion never returns nil.
37094
37095         * platform/mac/DragImageMac.mm:
37096         (WebCore::createDragImageForLink):
37097         Use String's nsStringNilIfEmpty().
37098
37099         * platform/mac/HTMLConverter.mm:
37100         (-[WebHTMLConverter _addAttachmentForElement:URL:needsParagraph:usePlaceholder:]):
37101         Fix the coding style. Do the conversion to NSString only when needed.
37102
37103 2012-10-23  Roger Fong  <roger_fong@apple.com>
37104
37105         [Win] Popup menus positioning needs to take multiple monitors into account.
37106         https://bugs.webkit.org/show_bug.cgi?id=100158
37107
37108         Reviewed by Timothy Horton.
37109
37110         Add screen.x() to repositioning check to account for position of current monitor.
37111
37112         * platform/win/PopupMenuWin.cpp:
37113         (WebCore::PopupMenuWin::calculatePositionAndSize):
37114
37115 2012-10-23  Huang Dongsung  <luxtella@company100.net>
37116
37117         [CSS Shaders] Set FilterOperations on GraphicsLayer after the program of CSS Shaders is loaded.
37118         https://bugs.webkit.org/show_bug.cgi?id=99908
37119
37120         Reviewed by Dean Jackson.
37121
37122         CSS Shaders can not render anything until the program is loaded. If there is
37123         partial loaded shaders program, whole FilterOperations chain can not render
37124         anything. It occurs a flash. So We have to wait until the program is loaded, to
37125         prevent a flash as RenderLayerBacking::updateImageContents() waits until an
37126         image is fully loaded.
37127
37128         No new tests, CSS Shaders on Accelerated Compositing are not activated yet.
37129
37130         * rendering/RenderLayerBacking.cpp:
37131         (WebCore::RenderLayerBacking::updateFilters):
37132
37133 2012-10-23  Elliott Sprehn  <esprehn@chromium.org>
37134
37135         Generated should not be supported for things with a shadow
37136         https://bugs.webkit.org/show_bug.cgi?id=98836
37137
37138         Reviewed by Dimitri Glazkov.
37139
37140         As far as CSS is concerned inputs and things with shadow content inside
37141         shouldn't support pseudo elements like :before, :after or :first-letter.
37142         Neither Gecko or Presto supports it, and we only accidentally supported
37143         it.
37144
37145         Until the spec tells us what to do we should disable support. This is
37146         also neccesary because the new generated content implementation doesn't
37147         support shadows.
37148
37149         Test: fast/forms/pseudo-elements.html
37150
37151         * rendering/RenderBlock.cpp:
37152         (WebCore::RenderBlock::updateFirstLetter):
37153         * rendering/RenderListBox.h: Added missing canHaveGeneratedChildren() that returns false.
37154         * rendering/RenderObjectChildList.cpp:
37155         (WebCore::RenderObjectChildList::updateBeforeAfterContent):
37156
37157 2012-10-23  Huang Dongsung  <luxtella@company100.net>
37158
37159         [CSS Shaders] Implement overlay, color-dodge, color-burn, hard-light, soft-light blend modes.
37160         https://bugs.webkit.org/show_bug.cgi?id=98504
37161
37162         Reviewed by Dean Jackson.
37163
37164         Add expressions for the aforementioned blend modes. The expressions are lifted
37165         directly from the CSS Compositing and Blending spec [1]. WebKit adds these
37166         blending expressions to the author's shader.
37167
37168         [1]: https://dvcs.w3.org/hg/FXTF/rawfile/tip/compositing/index.html#blendingnormal
37169
37170         Test: css3/filters/custom/custom-filter-blend-modes.html
37171
37172         * platform/graphics/filters/CustomFilterValidatedProgram.cpp:
37173         (WebCore::CustomFilterValidatedProgram::rewriteMixFragmentShader):
37174         (WebCore::CustomFilterValidatedProgram::blendFunctionString):
37175
37176 2012-10-23  Huang Dongsung  <luxtella@company100.net>
37177
37178         [CSS Shaders] Implement all composite operators except destination and lighter.
37179         https://bugs.webkit.org/show_bug.cgi?id=97859
37180
37181         Reviewed by Dean Jackson.
37182
37183         Add expressions for all composite operators except destination and
37184         lighter. The expressions are lifted directly from the CSS Compositing
37185         and Blending spec [1]. WebKit adds these compositing expressions to the
37186         author's shader.
37187
37188         [1]: https://dvcs.w3.org/hg/FXTF/rawfile/tip/compositing/index.html#advancedcompositing
37189
37190         Test: css3/filters/custom/custom-filter-composite-operators.html
37191
37192         * platform/graphics/filters/CustomFilterCompiledProgram.cpp:
37193         (WebCore::CustomFilterCompiledProgram::initializeParameterLocations):
37194             Remove ASSERTION checking if glGetUniformLocation returns negative,
37195             because ASSERTION can fail with clear and copy composite operations.
37196             Clear and copy composite operations do not need "css_u_texture"
37197             representing the DOM element texture. If the driver compiler is
37198             smart, "css_u_texture" is not regarded as an active uniform, so
37199             glGetuniformLocation returns -1. glGetAttribLocation ditto.
37200         * platform/graphics/filters/CustomFilterValidatedProgram.cpp:
37201         (WebCore::CustomFilterValidatedProgram::compiledProgram):
37202             Move the above ASSERTION in CustomFilterCompiledProgram to here.
37203             ASSERTION checks if m_samplerLocation is not -1 when the author
37204             shader needs an input texture.
37205         (WebCore::CustomFilterValidatedProgram::needsInputTexture):
37206         (WebCore):
37207         (WebCore::CustomFilterValidatedProgram::compositeFunctionString):
37208         * platform/graphics/filters/CustomFilterValidatedProgram.h:
37209         (CustomFilterValidatedProgram):
37210
37211 2012-10-23  Max Vujovic  <mvujovic@adobe.com>
37212
37213         [CSS Shaders] Changing the blend mode in CSS doesn't update the custom filter rendering
37214         https://bugs.webkit.org/show_bug.cgi?id=99887
37215
37216         Reviewed by Dirk Schulze.
37217
37218         Before this patch, WebKit would not recompute an element's style when just its custom filter
37219         blend mode changed.
37220
37221         For example, suppose an element initially has the style:
37222         -webkit-filter: custom(none mix(url(shader.fs) multiply source-atop));
37223
37224         Then, we change the blend mode from "multiply" to "normal":
37225         -webkit-filter: custom(none mix(url(shader.fs) normal source-atop));
37226
37227         WebKit now detects this change and recomputes the style.
37228
37229         CustomFilterProgram now has an equals operator that considers the program type and the mix
37230         settings. The mix settings contain the blend mode.
37231
37232         Test: css3/filters/custom/custom-filter-change-blend-mode.html
37233
37234         * platform/graphics/filters/CustomFilterProgram.cpp:
37235         (WebCore::CustomFilterProgram::operator==):
37236             Previously, the equals operator was pure virtual in CustomFilterProgram. Now,
37237             CustomFilterProgram implements it and compares the program type and mix settings, if
37238             appropriate.
37239         (WebCore):
37240         * platform/graphics/filters/CustomFilterProgram.h:
37241         * platform/graphics/filters/CustomFilterProgramInfo.cpp:
37242         (WebCore::CustomFilterProgramInfo::hash):
37243             Refactor a repeated condition into a boolean to improve readability.
37244         (WebCore::CustomFilterProgramInfo::operator==):
37245             Refactor repeated conditions to improve readability. Reorder the conditions so the less
37246             expensive ones occur first.
37247         * rendering/style/StyleCustomFilterProgram.h:
37248         (WebCore::StyleCustomFilterProgram::operator==):
37249             Call the base class's equals operator.
37250
37251 2012-10-23  David Barton  <dbarton@mathscribe.com>
37252
37253         [MathML] Symbol font uses greek letters for roman ones on linux and Windows
37254         https://bugs.webkit.org/show_bug.cgi?id=99921
37255
37256         Reviewed by Eric Seidel.
37257
37258         For parts of stretched parentheses and brackets, mathml.css currently uses the Symbol font,
37259         which on linux and Windows has greek letters at roman code points. To fix this, we switch
37260         to the STIXSizeOneSym font when available. However, this can cause vertical gaps between
37261         glyph parts, because of hard-coded constants in RenderMathMLOperator.cpp. We eliminate all
37262         these constants. We also shift glyphs upward by 1px and truncate them to avoid the gaps.
37263
37264         Tested by existing tests, and one test added to LayoutTests/mathml/presentation/mo.xhtml.
37265
37266         * css/mathml.css:
37267         (math, mfenced > *):
37268             - Set font-family for mn, mi, etc.
37269         (mo, mfenced):
37270             - Set font-family for mo and anonymous operators, including extension glyphs for
37271               stretched operators like parentheses and brackets.
37272         (math):
37273         * rendering/mathml/RenderMathMLOperator.cpp:
37274         (WebCore):
37275             - Change 0x23d0 to 0x23aa for STIX & Cambria Math fonts.
37276         (WebCore::RenderMathMLOperator::glyphHeightForCharacter):
37277         (WebCore::RenderMathMLOperator::updateFromElement):
37278         (WebCore::RenderMathMLOperator::createStackableStyle):
37279             - Eliminate unused lineHeight and topRelative parameters, and the hard-coded font size
37280               of 14.
37281         (WebCore::RenderMathMLOperator::createGlyph):
37282             - Eliminate unused lineHeight and topRelative parameters.
37283         * rendering/mathml/RenderMathMLOperator.h:
37284         (RenderMathMLOperator):
37285
37286 2012-10-23  Benjamin Poulain  <benjamin@webkit.org>
37287
37288         WTFURL: Implement KURL::setPort()
37289         https://bugs.webkit.org/show_bug.cgi?id=99898
37290
37291         Reviewed by Adam Barth.
37292
37293         * platform/KURLWTFURL.cpp:
37294         (WebCore::KURL::setPort):
37295
37296 2012-10-23  Nico Weber  <thakis@chromium.org>
37297
37298         In the open-source jpeg decoder, read image orientation from the exif data
37299         https://bugs.webkit.org/show_bug.cgi?id=100144
37300
37301         Reviewed by Eric Seidel.
37302
37303         This will be used to implement the shouldRespectImageOrientation
37304         setting (see bug 19688). Currently this isn't hooked up anywhere, so
37305         it has no observable effect for now.
37306
37307         Once it's hooked up, it will be tested by
37308         fast/images/exif-orientation.html
37309
37310         * platform/graphics/BitmapImage.h:
37311         * platform/image-decoders/ImageDecoder.h:
37312         (WebCore::ImageDecoder::orientation):
37313         (ImageDecoder):
37314         * platform/image-decoders/jpeg/JPEGImageDecoder.cpp:
37315         (WebCore::readUint16):
37316         (WebCore):
37317         (WebCore::readUint32):
37318         (WebCore::checkExifHeader):
37319         (WebCore::readImageOrientation):
37320         (WebCore::JPEGImageReader::JPEGImageReader):
37321         (WebCore::JPEGImageReader::decode):
37322         * platform/image-decoders/jpeg/JPEGImageDecoder.h:
37323         (WebCore::JPEGImageDecoder::setOrientation):
37324
37325 2012-10-23  Chris Rogers  <crogers@google.com>
37326
37327         Fix thread safety issue in AudioParamTimeline
37328         https://bugs.webkit.org/show_bug.cgi?id=100154
37329
37330         Reviewed by Kenneth Russell.
37331
37332         Add appropriate locking in AudioParamTimeline::valueForContextTime()
37333
37334         * Modules/webaudio/AudioParamTimeline.cpp:
37335         (WebCore::AudioParamTimeline::valueForContextTime):
37336
37337 2012-10-23  Alec Flett  <alecflett@chromium.org>
37338
37339         IndexedDB: refactor backend to use IDB*Metadata
37340         https://bugs.webkit.org/show_bug.cgi?id=100055
37341
37342         Reviewed by Tony Chang.
37343
37344         This further encapsulates the static data in
37345         IDBObjectStoreBackendImpl and IDBIndexBackendImp into their
37346         respective IDB*Metadata structs, in preparation for
37347         https://bugs.webkit.org/show_bug.cgi?id=99774.
37348
37349         No new tests as this is purely a refactor.
37350
37351         * Modules/indexeddb/IDBBackingStore.h:
37352         (IDBBackingStore):
37353         * Modules/indexeddb/IDBDatabaseBackendImpl.cpp:
37354         (WebCore::IDBDatabaseBackendImpl::createObjectStore):
37355         (WebCore::IDBDatabaseBackendImpl::loadObjectStores):
37356         * Modules/indexeddb/IDBIndexBackendImpl.cpp:
37357         (WebCore::IDBIndexBackendImpl::IDBIndexBackendImpl):
37358         (WebCore::IDBIndexBackendImpl::metadata):
37359         * Modules/indexeddb/IDBIndexBackendImpl.h:
37360         (WebCore::IDBIndexBackendImpl::create):
37361         (WebCore::IDBIndexBackendImpl::id):
37362         (WebCore::IDBIndexBackendImpl::setId):
37363         (WebCore::IDBIndexBackendImpl::hasValidId):
37364         (WebCore::IDBIndexBackendImpl::name):
37365         (WebCore::IDBIndexBackendImpl::keyPath):
37366         (WebCore::IDBIndexBackendImpl::unique):
37367         (WebCore::IDBIndexBackendImpl::multiEntry):
37368         (IDBIndexBackendImpl):
37369         * Modules/indexeddb/IDBLevelDBBackingStore.cpp:
37370         (WebCore::IDBLevelDBBackingStore::getObjectStores):
37371         (WebCore::IDBLevelDBBackingStore::getIndexes):
37372         * Modules/indexeddb/IDBLevelDBBackingStore.h:
37373         (IDBLevelDBBackingStore):
37374         * Modules/indexeddb/IDBMetadata.h:
37375         (WebCore::IDBObjectStoreMetadata::IDBObjectStoreMetadata):
37376         * Modules/indexeddb/IDBObjectStoreBackendImpl.cpp:
37377         (WebCore::IDBObjectStoreBackendImpl::IDBObjectStoreBackendImpl):
37378         (WebCore::IDBObjectStoreBackendImpl::metadata):
37379         (WebCore::IDBObjectStoreBackendImpl::setIndexKeys):
37380         (WebCore::IDBObjectStoreBackendImpl::putInternal):
37381         (WebCore::IDBObjectStoreBackendImpl::createIndex):
37382         (WebCore::IDBObjectStoreBackendImpl::loadIndexes):
37383         * Modules/indexeddb/IDBObjectStoreBackendImpl.h:
37384         (WebCore::IDBObjectStoreBackendImpl::create):
37385         (WebCore::IDBObjectStoreBackendImpl::id):
37386         (WebCore::IDBObjectStoreBackendImpl::setId):
37387         (WebCore::IDBObjectStoreBackendImpl::name):
37388         (WebCore::IDBObjectStoreBackendImpl::keyPath):
37389         (WebCore::IDBObjectStoreBackendImpl::autoIncrement):
37390         (IDBObjectStoreBackendImpl):
37391
37392 2012-10-19  Roger Fong  <roger_fong@apple.com>
37393
37394         [WebGL] conformance/textures/texture-size.html is failing on Apple Mountain Lion
37395         https://bugs.webkit.org/show_bug.cgi?id=94041
37396
37397         Reviewed by Dean Jackson.
37398
37399         When binding a texture to GL_TEXTURE_2D when GL_ACTIVE_TEXTURE is 0, we set m_boundTexture0 to the texture unit. 
37400         However when we delete the texture, we need to be setting m_boundTexture0 to 0.
37401         Otherwise when we draw to the screen we bind m_boundTexture0 in the prepareTexture() method and since the associated texture 
37402         has already been deleted we end up in an error state.
37403
37404         Tested using Khronos WebGL conformance suite:
37405         conformance/textures/texture-size.html
37406
37407         * platform/graphics/opengl/GraphicsContext3DOpenGLCommon.cpp:
37408         (WebCore::GraphicsContext3D::deleteTexture):
37409
37410 2012-10-22  Dirk Schulze  <krit@webkit.org>
37411
37412         BasicShapePolygon::path takes width instead of height for boundary calculation
37413         https://bugs.webkit.org/show_bug.cgi?id=99919
37414
37415         Reviewed by Darin Adler.
37416
37417         The 'y' parameters of polygon were calculated by the with of the bounding box of the object.
37418         This caused problems on percentage values for point positions. 
37419         Changed it to the height of the bounding box.
37420
37421         Test: css3/masking/clip-path-polygon-percentage.html
37422
37423         * rendering/style/BasicShapes.cpp:
37424         (WebCore::BasicShapePolygon::path):
37425
37426 2012-10-23  Dominik Röttsches  <dominik.rottsches@intel.com>
37427
37428         Add timeout support to XMLHttpRequest
37429         https://bugs.webkit.org/show_bug.cgi?id=74802
37430
37431         Reviewed by Nate Chapin.
37432
37433         An implementation of XHR2 timeouts by using ResourceRequest's setTimeoutInterval.
37434         This made several changes necessary in CachedResource and SubresourceLoader in order
37435         to distinguish and forward the timeout case from there.
37436
37437         The case of late updates to the timeout property, changing the timeout value after send()
37438         is not supported yet and handled separately in bug 98156.
37439
37440         XHR2 timeout tests were initially written by Mozilla's Alex Vincent's. He granted
37441         permission to reuse them under PD/BSD license
37442         in https://bugzilla.mozilla.org/show_bug.cgi?id=525816#c86 - big thanks!
37443         I adapted them for W3C testharness.js and split them into groups with shorter test running time
37444         so that they can be used as WebKit layout tests.
37445
37446         Tests: http/tests/xmlhttprequest/timeout/xmlhttprequest-timeout-aborted.html
37447                http/tests/xmlhttprequest/timeout/xmlhttprequest-timeout-abortedonmain.html
37448                http/tests/xmlhttprequest/timeout/xmlhttprequest-timeout-overridesexpires.html
37449                http/tests/xmlhttprequest/timeout/xmlhttprequest-timeout-simple.html
37450                http/tests/xmlhttprequest/timeout/xmlhttprequest-timeout-synconmain.html
37451                http/tests/xmlhttprequest/timeout/xmlhttprequest-timeout-twice.html
37452                http/tests/xmlhttprequest/timeout/xmlhttprequest-timeout-worker-aborted.html
37453                http/tests/xmlhttprequest/timeout/xmlhttprequest-timeout-worker-overridesexpires.html
37454                http/tests/xmlhttprequest/timeout/xmlhttprequest-timeout-worker-simple.html
37455                http/tests/xmlhttprequest/timeout/xmlhttprequest-timeout-worker-synconworker.html
37456                http/tests/xmlhttprequest/timeout/xmlhttprequest-timeout-worker-twice.html
37457
37458         * loader/DocumentThreadableLoader.cpp:
37459         (WebCore::DocumentThreadableLoader::notifyFinished): Forward information about timeout case.
37460         * loader/SubresourceLoader.cpp:
37461         (WebCore::SubresourceLoader::didFail): Distinguish timeout case when informing client.
37462         * loader/cache/CachedResource.h: Distinguishing timeout case for errors.
37463         (WebCore::CachedResource::errorOccurred):
37464         (WebCore::CachedResource::loadFailedOrCanceled):
37465         (WebCore::CachedResource::timedOut):
37466         * xml/XMLHttpRequest.cpp:
37467         (WebCore::XMLHttpRequest::XMLHttpRequest): Initializing m_timeout value to zero.
37468         (WebCore::XMLHttpRequest::setTimeout): Setter function, possibly raising JS exception.
37469         (WebCore):
37470         (WebCore::XMLHttpRequest::open): Open call may raise exception for synchronous requests when timeout value is set.
37471         (WebCore::XMLHttpRequest::createRequest): Assigning timeout value to ResourceRequest.
37472         (WebCore::XMLHttpRequest::didFail): Handling timeout case separately.
37473         (WebCore::XMLHttpRequest::didTimeout): Timeout case state transisition and event firing as spec'ed.
37474         * xml/XMLHttpRequest.h: New event listener, member and callback for handling timeout.
37475         (WebCore::XMLHttpRequest::timeout):
37476         (XMLHttpRequest):
37477         * xml/XMLHttpRequest.idl: New event listener and property added.
37478         * xml/XMLHttpRequestException.cpp:
37479         * xml/XMLHttpRequestException.h: Added an exception value for the timeout case.
37480
37481
37482 2012-10-23  Christophe Dumez  <christophe.dumez@intel.com>
37483
37484         Possible assertion hit in WebCore::HTMLSelectElement::updateListBoxSelection()
37485         https://bugs.webkit.org/show_bug.cgi?id=99967
37486
37487         Reviewed by Tony Chang.
37488
37489         Fix assertion hit in WebCore::HTMLSelectElement::updateListBoxSelection() when
37490         pressing the left mouse button outside a multiselect and then moving the cursor
37491         over the multiselect element while holding the button down.
37492
37493         The issue is that the HTMLSelectElement handler for the mouse move event does
37494         not check if there is a selection before trying to extend the selection.
37495
37496         Test: fast/dom/HTMLSelectElement/select-selectedIndex-noAnchorIndex-crash.html
37497
37498         * html/HTMLSelectElement.cpp:
37499         (WebCore::HTMLSelectElement::listBoxDefaultEventHandler):
37500
37501 2012-10-23  Adam Barth  <abarth@webkit.org>
37502
37503         [V8] ScriptWrappable should hold the wrapper handle directly (Dromaeo/dom-modify and dom-traverse get ~2.5% faster)
37504         https://bugs.webkit.org/show_bug.cgi?id=97974
37505
37506         Reviewed by Eric Seidel.
37507
37508         Previously, we stored a pointer to a handle to a wrapper in Node. That
37509         is an extra layer of indirection that slows down finding the wrapper
37510         for the node. A handle is just a pointer, so we might as we just store
37511         the handle in the Node directly. That speeds up dom-modify and
37512         dom-traverse by about 2.5%.
37513
37514         This change also lets us get rid of the ChunkedTable we were using to
37515         store all the wrappers because they're now stored in the Nodes
37516         directly.
37517
37518         * bindings/scripts/CodeGeneratorV8.pm:
37519         (GenerateHeader):
37520         * bindings/v8/IntrusiveDOMWrapperMap.h:
37521         (WebCore::IntrusiveDOMWrapperMap::IntrusiveDOMWrapperMap):
37522         (WebCore::IntrusiveDOMWrapperMap::get):
37523         (WebCore::IntrusiveDOMWrapperMap::set):
37524         (WebCore::IntrusiveDOMWrapperMap::contains):
37525         (WebCore::IntrusiveDOMWrapperMap::visit):
37526         (WebCore::IntrusiveDOMWrapperMap::removeIfPresent):
37527         (WebCore::IntrusiveDOMWrapperMap::clear):
37528         * bindings/v8/ScriptWrappable.h:
37529         (WebCore::ScriptWrappable::ScriptWrappable):
37530         (WebCore::ScriptWrappable::wrapper):
37531         (WebCore::ScriptWrappable::setWrapper):
37532         (WebCore::ScriptWrappable::disposeWrapper):
37533         (WebCore::ScriptWrappable::reportMemoryUsage):
37534         (ScriptWrappable):
37535         * bindings/v8/V8DOMWrapper.h:
37536         (WebCore::V8DOMWrapper::getCachedWrapper):
37537
37538 2012-10-23  Kentaro Hara  <haraken@chromium.org>
37539
37540         [V8] Replace SetGlobalGCPrologueCallback() with AddGCPrologueCallback()
37541         https://bugs.webkit.org/show_bug.cgi?id=100140
37542
37543         Reviewed by Adam Barth.
37544
37545         SetGlobalGCPrologueCallback() and SetGlobalGCEpilogueCallback()
37546         are deprecated (See http://code.google.com/codesearch#OAMlx_jo-ck/src/v8/include/v8.h&exact_package=chromium&q=v8.h&type=cs&l=3149)
37547         Instead we should use AddGCPrologueCallback()
37548         and AddGCEpilogueCallback().
37549
37550         No tests. No change in behavior.
37551
37552         * bindings/v8/V8DOMWindowShell.cpp:
37553         (WebCore::initializeV8IfNeeded):
37554         * bindings/v8/V8GCController.cpp:
37555         (WebCore::V8GCController::gcPrologue):
37556         (WebCore):
37557         (WebCore::V8GCController::minorGCPrologue):
37558         (WebCore::V8GCController::majorGCPrologue):
37559         (WebCore::V8GCController::gcEpilogue):
37560         (WebCore::V8GCController::minorGCEpilogue):
37561         (WebCore::V8GCController::majorGCEpilogue):
37562         * bindings/v8/V8GCController.h:
37563         (V8GCController):
37564         * bindings/v8/WorkerContextExecutionProxy.cpp:
37565         (WebCore::WorkerContextExecutionProxy::initIsolate):
37566
37567 2012-10-23  Adam Barth  <abarth@webkit.org>
37568
37569         [V8] Enumerate Nodes via the V8 heap rather than via a list in WebCore
37570         https://bugs.webkit.org/show_bug.cgi?id=100033
37571
37572         Reviewed by Eric Seidel.
37573
37574         This patch changes how we enumerate nodes during garbage collection.
37575         After this patch, we use V8's list of open handles to enumerate node
37576         wrappers rather than using a separate list that we maintain in WebCore
37577         for this purpose. A future patch will remove the list in WebCore for a
37578         DOM performance gain.
37579
37580         * bindings/js/ScriptProfiler.h:
37581         (WebCore):
37582         (WebCore::ScriptProfiler::visitNodeWrappers):
37583         * bindings/scripts/CodeGeneratorV8.pm:
37584         (GenerateToV8Converters):
37585         * bindings/scripts/test/V8/V8TestNode.cpp:
37586         (WebCore::V8TestNode::wrapSlow):
37587         * bindings/v8/IntrusiveDOMWrapperMap.h:
37588         (WebCore::IntrusiveDOMWrapperMap::set):
37589         * bindings/v8/ScriptProfiler.cpp:
37590         (WebCore::ScriptProfiler::visitNodeWrappers):
37591         * bindings/v8/ScriptProfiler.h:
37592         (WebCore):
37593         (ScriptProfiler):
37594         * bindings/v8/V8DOMMap.cpp:
37595         (WebCore::NodeWrapperVisitor::~NodeWrapperVisitor):
37596         (WebCore):
37597         (WebCore::visitAllDOMNodes):
37598         * bindings/v8/V8DOMMap.h:
37599         (WebCore):
37600         (NodeWrapperVisitor):
37601         * bindings/v8/V8DOMWrapper.cpp:
37602         (WebCore::V8DOMWrapper::setJSWrapperForDOMNode):
37603         (WebCore::V8DOMWrapper::setJSWrapperForActiveDOMNode):
37604         * bindings/v8/V8GCController.cpp:
37605         (WebCore::NodeVisitor::visitNodeWrapper):
37606         (WebCore::V8GCController::gcPrologue):
37607         (WebCore::V8GCController::gcEpilogue):
37608         * inspector/BindingVisitors.h:
37609         (WebCore::WrappedNodeVisitor::~WrappedNodeVisitor):
37610         * inspector/InspectorMemoryAgent.cpp:
37611         (WebCore):
37612
37613 2012-10-22  Andrey Kosyakov  <caseq@chromium.org>
37614
37615         Web Inspector: paint rectangles are incorrectly shown in case subframes are present
37616         https://bugs.webkit.org/show_bug.cgi?id=99849
37617
37618         Reviewed by Pavel Feldman.
37619
37620         Move GraphicsContext and paint rectangle from willPaint() to didPaint(), so we don't have
37621         to store them as a state of InspectorPageAgent
37622
37623         * inspector/InspectorInstrumentation.cpp:
37624         (WebCore):
37625         (WebCore::InspectorInstrumentation::willPaintImpl):
37626         (WebCore::InspectorInstrumentation::didPaintImpl):
37627         * inspector/InspectorInstrumentation.h:
37628         (InspectorInstrumentation):
37629         (WebCore::InspectorInstrumentation::willPaint):
37630         (WebCore::InspectorInstrumentation::didPaint):
37631         * inspector/InspectorPageAgent.cpp:
37632         (WebCore::InspectorPageAgent::didPaint):
37633         * inspector/InspectorPageAgent.h:
37634         * inspector/InspectorTimelineAgent.cpp:
37635         (WebCore::InspectorTimelineAgent::willPaint):
37636         (WebCore::InspectorTimelineAgent::didPaint):
37637         * inspector/InspectorTimelineAgent.h:
37638         (InspectorTimelineAgent):
37639         * inspector/TimelineRecordFactory.cpp:
37640         * inspector/TimelineRecordFactory.h:
37641         (TimelineRecordFactory):
37642         * page/FrameView.cpp:
37643         (WebCore::FrameView::paintContents):
37644         * rendering/RenderLayerBacking.cpp:
37645         (WebCore::RenderLayerBacking::paintContents):
37646
37647 2012-10-23  Pavel Feldman  <pfeldman@chromium.org>
37648
37649         Web Inspector: array grouping does not work for arrays with exactly 10000 elements.
37650         https://bugs.webkit.org/show_bug.cgi?id=100131
37651
37652         Reviewed by Vsevolod Vlasov.
37653
37654         Using ceil() - 1 instead of floor() in bucket size calculation.
37655
37656         * inspector/front-end/ObjectPropertiesSection.js:
37657
37658 2012-10-23  Shinya Kawanaka  <shinyak@chromium.org>
37659
37660         The order of resolving distribution in tree composition is wrong.
37661         https://bugs.webkit.org/show_bug.cgi?id=99552
37662
37663         Reviewed by Dimitri Glazkov.
37664
37665         According to the current ShadowDOM spec, we have to resolve <content> first, then resolve <shadow>.
37666         However, the order of resolution is now the mixed tree order of <content> and <shadow>.
37667
37668         Test: fast/dom/shadow/content-reprojection-order.html
37669
37670         * html/shadow/ContentDistributor.cpp:
37671         (WebCore::ContentDistributor::distribute): We should resolve <content> before <shadow>.
37672         Only the first active shadow insertion point can select the rest of contents.
37673         * html/shadow/HTMLContentElement.h:
37674         (HTMLContentElement):
37675         * html/shadow/HTMLShadowElement.cpp:
37676         * html/shadow/HTMLShadowElement.h:
37677         (WebCore::isHTMLShadowElement):
37678         (WebCore):
37679         (WebCore::toHTMLShadowElement):
37680         * html/shadow/InsertionPoint.h:
37681         (InsertionPoint): We don't need doesSelectFromHostChildren() anymore.
37682
37683 2012-10-23  Vsevolod Vlasov  <vsevik@chromium.org>
37684
37685         Web Inspector: Move UISourceCode creation out of mappings to workspace.
37686         https://bugs.webkit.org/show_bug.cgi?id=100092
37687
37688         Reviewed by Pavel Feldman.
37689
37690         Moved uiSourceCode constructor calls out of mappings to workspace.
37691
37692         * inspector/front-end/CompilerScriptMapping.js:
37693         * inspector/front-end/NetworkUISourceCodeProvider.js:
37694         (WebInspector.NetworkUISourceCodeProvider.prototype._parsedScriptSource):
37695         (WebInspector.NetworkUISourceCodeProvider.prototype._addUISourceCode):
37696         * inspector/front-end/ResourceScriptMapping.js:
37697         (WebInspector.ResourceScriptMapping.prototype._deleteOriginalUISourceCodeForScripts):
37698         (WebInspector.ResourceScriptMapping.prototype._deleteTemporaryUISourceCodeForScripts):
37699         (WebInspector.ResourceScriptMapping.prototype._bindUISourceCodeToScripts):
37700         (WebInspector.ResourceScriptMapping.prototype._createUISourceCode):
37701         (WebInspector.ResourceScriptMapping.prototype._getOrCreateTemporaryUISourceCode):
37702         (WebInspector.ResourceScriptMapping.prototype._getOrCreateOriginalUISourceCode):
37703         * inspector/front-end/SASSSourceMapping.js:
37704         (_bindUISourceCode):
37705         * inspector/front-end/ScriptSnippetModel.js:
37706         (WebInspector.ScriptSnippetModel.prototype._addScriptSnippet):
37707         (WebInspector.ScriptSnippetModel.prototype._createUISourceCodeForScript):
37708         * inspector/front-end/Workspace.js:
37709         (WebInspector.Project.prototype.addUISourceCode):
37710         (WebInspector.Project.prototype.removeUISourceCode):
37711         (WebInspector.Workspace.prototype.addTemporaryUISourceCode):
37712         (WebInspector.Workspace.prototype.removeTemporaryUISourceCode):
37713
37714 2012-10-23  Emil A Eklund  <eae@chromium.org>
37715
37716         Remove unnecessary m_layoutDelta[XY]Saturated initialization
37717         https://bugs.webkit.org/show_bug.cgi?id=100018
37718
37719         Reviewed by Julien Chaffraix.
37720         
37721         Remove unnecessary initialization from LayoutState constructor
37722         added in r132105.
37723
37724         No new tests, no change in functionality.
37725
37726         * rendering/LayoutState.cpp:
37727         (WebCore::LayoutState::LayoutState):
37728
37729 2012-10-23  Zeno Albisser  <zeno@webkit.org>
37730
37731         [Texmap] Fix drawTextureRectangleARB after r131485.
37732         https://bugs.webkit.org/show_bug.cgi?id=100133
37733
37734         Consistently rename u_textureSize to u_samplerSize.
37735
37736         Reviewed by Noam Rosenthal.
37737
37738         * platform/graphics/texmap/TextureMapperGL.cpp:
37739         (WebCore::TextureMapperGL::drawTextureRectangleARB):
37740         * platform/graphics/texmap/TextureMapperShaderManager.cpp:
37741         (WebCore::getShaderSpec):
37742         * platform/graphics/texmap/TextureMapperShaderManager.h:
37743         (TextureMapperShaderProgram):
37744
37745 2012-10-23  Mike West  <mkwst@chromium.org>
37746
37747         Web Inspector: 'data:' URLs should be properly trimmed for readability.
37748         https://bugs.webkit.org/show_bug.cgi?id=100083
37749
37750         Reviewed by Pavel Feldman.
37751
37752         We recently landed a patch to trim the middle out of long URLs in
37753         console messages in order to improve readability. That patch didn't
37754         effect 'data:' URLs, as they didn't match the regex in the linkifier.
37755         This patch ensures that 'data:' URLs are properly trimmed down to
37756         size.
37757
37758         This problem came to light while resolving a different, smaller issue:
37759         'image/jpg' wasn't whitelisted as an image MIME type. That trivial fix
37760         is included in this patch.
37761
37762         Test: http/tests/inspector/network/image-as-text-loading-data-url.html
37763
37764         * inspector/front-end/NetworkManager.js:
37765         (WebInspector.NetworkManager):
37766             Adds 'image/jpg' as a valid image type.
37767         * inspector/front-end/ResourceUtils.js:
37768         (WebInspector.linkifyStringAsFragmentWithCustomLinkifier):
37769             Supports 'data:' URLs in the linkifier's regex.
37770
37771 2012-10-23  Mike West  <mkwst@chromium.org>
37772
37773         Web Inspector: Floated anchor element sometimes overlaps following content.
37774         https://bugs.webkit.org/show_bug.cgi?id=100105
37775
37776         Reviewed by Pavel Feldman.
37777
37778         This patch ensures that each console message clears the
37779         potentially-overlapping floated anchor element.
37780
37781         * inspector/front-end/inspector.css:
37782         (#console-prompt):
37783         (.console-message, .console-user-command):
37784             Clear the float, and flip the border from the bottom of the
37785             message to the top. Do the same for the prompt.
37786         (.console-message:first-child):
37787             Ensure that the first message doesn't have a top border.
37788
37789 2012-10-23  Alexander Pavlov  <apavlov@chromium.org>
37790
37791         Web Inspector: Crash when adding a keyframes rule in the Styles pane
37792         https://bugs.webkit.org/show_bug.cgi?id=99826
37793
37794         Reviewed by Pavel Feldman.
37795
37796         The client-supplied selector text is first parsed to make sure it results in a valid style rule selector.
37797
37798         Test: inspector/styles/add-new-rule-invalid-selector.html
37799
37800         * inspector/InspectorStyleSheet.cpp:
37801         (WebCore::createCSSParser):
37802         (WebCore):
37803         (WebCore::InspectorStyle::setPropertyText):
37804         (WebCore::checkStyleRuleSelector):
37805         (WebCore::InspectorStyleSheet::addRule):
37806         (WebCore::InspectorStyleSheet::ensureSourceData):
37807         (WebCore::InspectorStyleSheetForInlineStyle::getStyleAttributeRanges):
37808
37809 2012-10-15  Kenneth Rohde Christiansen  <kenneth@webkit.org>
37810
37811         Add support for resolution media query
37812         https://bugs.webkit.org/show_bug.cgi?id=99077
37813
37814         Reviewed by Antti Koivisto.
37815
37816         Add support for 'resolution' media query feature.
37817
37818         Background info:
37819         http://www.w3.org/blog/CSS/2012/06/14/unprefix-webkit-device-pixel-ratio
37820
37821         Related spec links:
37822         http://www.w3.org/TR/css3-mediaqueries/#resolution (recommendation)
37823         http://www.w3.org/TR/css3-values/#resolution (candidate recommentation)
37824
37825         Add infrastructure to make it testable.
37826
37827         Test: fast/media/mq-resolution.html
37828
37829         * css/CSSParser.cpp:
37830         (WebCore::CSSParser::validUnit):
37831         (WebCore::CSSParser::createPrimitiveNumericValue):
37832         (WebCore::CSSParser::parseValidPrimitive):
37833         (WebCore::CSSParser::detectNumberToken):
37834         * css/CSSParser.h:
37835         * css/CSSPrimitiveValue.cpp:
37836         (WebCore::isValidCSSUnitTypeForDoubleConversion):
37837         (WebCore::unitCategory):
37838         (WebCore::CSSPrimitiveValue::canonicalUnitTypeForCategory):
37839         (WebCore::CSSPrimitiveValue::customCssText):
37840         (WebCore::CSSPrimitiveValue::cloneForCSSOM):
37841         * css/CSSPrimitiveValue.h:
37842
37843             Enable dpi, dpcm and dppx units when RESOLUTION_MEDIA_QUERY
37844             is enabled.
37845
37846         * WebCore.exp.in:
37847
37848             Export the WebCore::Settings setting.
37849
37850         * css/CSSPrimitiveValue.h:
37851         (WebCore::CSSPrimitiveValue::isDotsPerInch):
37852         (WebCore::CSSPrimitiveValue::isDotsPerPixel):
37853         (WebCore::CSSPrimitiveValue::isDotsPerCentimeter):
37854         (CSSPrimitiveValue):
37855
37856             Add function for checking the recently added density types.
37857
37858         * css/MediaFeatureNames.h:
37859         (MediaFeatureNames):
37860
37861             Add support for resolution, min-resolution and max-resolution.
37862
37863         * css/MediaQueryEvaluator.cpp:
37864         (WebCore::compareResolution): Add methods for comparing resolutions.
37865         (WebCore):
37866         (WebCore::resolutionMediaFeatureEval):
37867         (WebCore::min_resolutionMediaFeatureEval):
37868         (WebCore::max_resolutionMediaFeatureEval):
37869
37870             Implement the resolution method evaluation.
37871
37872         * css/MediaQueryExp.cpp:
37873         (WebCore::featureWithValidPositiveDensity):
37874         (WebCore):
37875         (WebCore::featureWithoutValue):
37876         (WebCore::MediaQueryExp::MediaQueryExp):
37877
37878             Hook up resolution with the right pre-checks.
37879
37880        * page/Screen.cpp:
37881         (WebCore::Screen::horizontalDPI):
37882         (WebCore::Screen::verticalDPI):
37883
37884             Check whether an override exists, and if so, uses it.
37885             If not calculate the value given the device scale factor.
37886
37887         * page/Settings.cpp:
37888         (WebCore::Settings::setResolutionOverride):
37889         (WebCore):
37890         * page/Settings.h:
37891         (Settings):
37892         (WebCore::Settings::resolutionOverride):
37893
37894             Add a resolution override to settings.
37895
37896         * testing/InternalSettings.cpp:
37897         (WebCore::InternalSettings::Backup::Backup):
37898         (WebCore::InternalSettings::Backup::restoreTo):
37899         (WebCore::InternalSettings::setResolutionOverride):
37900         (WebCore):
37901         * testing/InternalSettings.h:
37902         (Backup):
37903         (InternalSettings):
37904         * testing/InternalSettings.idl:
37905
37906             Add a new setResolutionOverride method to internals.settings.
37907
37908 2012-10-23  Filip Spacek  <fspacek@rim.com>
37909
37910         [BlackBerry] Improve the use of stencil buffer during compositing
37911         https://bugs.webkit.org/show_bug.cgi?id=100020
37912
37913         We always want to scissor so remove the define.
37914         Only turn stenciling on if needed.
37915
37916         Reviewed by Rob Buis.
37917
37918         Reviewed internally by Arvid Nilsson.
37919
37920         * platform/graphics/blackberry/LayerRenderer.cpp:
37921         (WebCore::LayerRenderer::setViewport):
37922         (WebCore::LayerRenderer::compositeLayers):
37923         (WebCore::LayerRenderer::drawLayersOnSurfaces):
37924         (WebCore::LayerRenderer::compositeLayersRecursive):
37925         (WebCore::LayerRenderer::updateScissorIfNeeded):
37926
37927 2012-10-23  'Pavel Feldman'  <pfeldman@chromium.org>
37928
37929         Not reviewed: kick out non-chromium files from WebCore.gypi.
37930
37931         * WebCore.gypi:
37932
37933 2012-10-23  Alexander Shalamov  <alexander.shalamov@intel.com>
37934
37935         [EFL][WK2] ecore_x should be initialised in WebProcess to avoid re-initialization by PlatformScreenEfl utilities and systemBeep() function
37936         https://bugs.webkit.org/show_bug.cgi?id=100110
37937
37938         Reviewed by Kenneth Rohde Christiansen.
37939
37940         Removed initialization of ecore_x, since it is initialized when process starts.
37941
37942         test: fast/media/*
37943
37944         * platform/efl/PlatformScreenEfl.cpp:
37945         (WebCore::screenDepth):
37946         (WebCore::screenRect):
37947         * platform/efl/SoundEfl.cpp:
37948         (WebCore::systemBeep):
37949
37950 2012-10-23  Adam Klein  <adamk@chromium.org>
37951
37952         Always parse pasted fragments as HTML even on XHTML pages
37953         https://bugs.webkit.org/show_bug.cgi?id=99880
37954
37955         Reviewed by Ojan Vafai.
37956
37957         When pasting HTML into a page, using the XML parser is unlikely
37958         to work correctly, as the contents of the clipboard are unlikely
37959         to be properly-formed XHTML. Thus, for the pasting case, it's always
37960         better to use HTML parsing, which will properly parse either HTML
37961         (which is what's usually in the clipboard) or XHTML (which is
37962         sometimes there as well).
37963
37964         The Mac port previously worked around this problem by falling back to plain text
37965         when parsing failed, but switching to HTML seems like a clear improvement.
37966
37967         This also fixes a crash in Chromium (see http://webkit.org/b/99607
37968         and http://crbug.com/136218); it erroneously assumed that createFragmentFromMarkup()
37969         would never return null. This patch makes that true.
37970
37971         * editing/markup.cpp:
37972         (WebCore::createFragmentFromMarkup): Don't delegate to createContextualFragment:
37973         we already know our context element is safe (i.e., it's <body>),
37974         and we want to force HTML (not XML) parsing.
37975
37976 2012-10-23  Allan Sandfeld Jensen  <allan.jensen@digia.com>
37977
37978         [Qt] REGRESSION (r130851): fast/text/word-space-with-kerning.html fails
37979         https://bugs.webkit.org/show_bug.cgi?id=98876
37980
37981         Reviewed by Simon Hausmann.
37982
37983         Do not add word-spacing for leading space. This matches what simple path font-width does.
37984
37985         Tested by existing tests.
37986
37987         * platform/graphics/qt/FontQt.cpp:
37988         (WebCore::Font::floatWidthForComplexText):
37989
37990 2012-10-23  Alexander Pavlov  <apavlov@chromium.org>
37991
37992         Web Inspector: Incorrect resolution of relative URLs containing a scheme in query parameters
37993         https://bugs.webkit.org/show_bug.cgi?id=100084
37994
37995         Reviewed by Vsevolod Vlasov.
37996
37997         Use the RFC 3986 grammar for the URL scheme.
37998
37999         * inspector/front-end/ParsedURL.js:
38000         (WebInspector.ParsedURL):
38001
38002 2012-10-23  Eugene Klyuchnikov  <eustas.bug@gmail.com>
38003
38004         Web Inspector: Elaborate source panel sidebar context menus.
38005         https://bugs.webkit.org/show_bug.cgi?id=99980
38006
38007         Reviewed by Vsevolod Vlasov.
38008
38009         - Watches: add "Add watch expression" item to items and empty element
38010         - Watches: hide "Remove watch expression" from editing prompt context menu
38011         - Watches: add titles to header buttons
38012         - XHR Breakpoints: add "Add Breakpoint" item to items and empty element
38013         - XHR Breakpoints: add "Remove all breakpoints" item to items (when >1)
38014         - XHR Breakpoints: add title to header button
38015         - JS Breakpoints: hide "Remove/(De)Activate breakpoints" when only 1 item present
38016         - JS Breakpoints: add "(De)Activate breakpoints" to empty element context menu
38017
38018         * English.lproj/localizedStrings.js: Added corresponding strings.
38019         * inspector/front-end/BreakpointsSidebarPane.js: Adjusted context menu.
38020         (WebInspector.XHRBreakpointsSidebarPane): Ditto.
38021         * inspector/front-end/ObjectPropertiesSection.js: Added "isEditing()"
38022         * inspector/front-end/WatchExpressionsSidebarPane.js: Adjusted context menu.
38023
38024 2012-10-23  Kent Tamura  <tkent@chromium.org>
38025
38026         Update binding test results for r132194
38027         https://bugs.webkit.org/show_bug.cgi?id=100097
38028
38029         * bindings/scripts/test/V8/V8TestObj.cpp:
38030         (WebCore::V8TestObj::installPerContextProperties):
38031
38032 2012-10-23  Alexander Pavlov  <apavlov@chromium.org>
38033
38034         Web Inspector: Sass can only resolve same folder paths
38035         https://bugs.webkit.org/show_bug.cgi?id=99259
38036
38037         Reviewed by Vsevolod Vlasov.
38038
38039         The actual reason is that the rule source location linkifier tries to linkify a resource (*.scss), which does not exist,
38040         and falls back to just stripping the main page URL prefix from the rule location URL. This change introduces LiveLocations
38041         for CSSRule locations and makes sure they are linkified using uiSourceCode's parsedURL.displayName.
38042
38043         * inspector/front-end/CSSStyleModel.js:
38044         (WebInspector.CSSStyleModel): Introduced LiveLocation management for CSSRules.
38045         (WebInspector.CSSStyleModel.prototype.setSourceMapping):
38046         (WebInspector.CSSStyleModel.prototype._updateLocations):
38047         (WebInspector.CSSStyleModel.prototype.createLiveLocation):
38048         (WebInspector.CSSStyleModel.prototype.updateLocations):
38049         (WebInspector.CSSStyleModel.LiveLocation): A LiveLocation for the CSS domain.
38050         (WebInspector.CSSStyleModel.LiveLocation.prototype.uiLocation):
38051         (WebInspector.CSSStyleModel.LiveLocation.prototype.dispose):
38052         * inspector/front-end/Linkifier.js:
38053         (WebInspector.Linkifier.prototype.linkifyCSSRuleLocation): CSSRule LiveLocation-based link builder.
38054         (WebInspector.Linkifier.DefaultFormatter.prototype.formatLiveAnchor): Add a title for anchors.
38055         (WebInspector.Linkifier.DefaultCSSFormatter): Formatter for CSS location links.
38056         (WebInspector.Linkifier.DefaultCSSFormatter.prototype.formatLiveAnchor):
38057         * inspector/front-end/ResourceUtils.js:
38058         (WebInspector.displayNameForURL): Use parsedURL.displayName if uiSourceCode is present for the specified URL.
38059         * inspector/front-end/SASSSourceMapping.js:
38060         * inspector/front-end/StylesSidebarPane.js:
38061         (WebInspector.StylesSidebarPane):
38062         (WebInspector.StylesSidebarPane.prototype._innerRebuildUpdate):
38063         * inspector/front-end/inspector.html:
38064
38065 2012-10-23  Sheriff Bot  <webkit.review.bot@gmail.com>
38066
38067         Unreviewed, rolling out r132149.
38068         http://trac.webkit.org/changeset/132149
38069         https://bugs.webkit.org/show_bug.cgi?id=100098
38070
38071         Breaks inspector profiler tests in debug mode. (Requested by
38072         pfeldman1 on #webkit).
38073
38074         * rendering/AutoTableLayout.cpp:
38075         (WebCore::AutoTableLayout::recalcColumn):
38076         * rendering/FixedTableLayout.cpp:
38077         (WebCore::FixedTableLayout::calcWidthArray):
38078         * rendering/RenderTable.cpp:
38079         (WebCore::RenderTable::layout):
38080         * rendering/RenderTableCol.cpp:
38081         (WebCore::RenderTableCol::styleDidChange):
38082         (WebCore::RenderTableCol::updateFromElement):
38083         (WebCore::RenderTableCol::computePreferredLogicalWidths):
38084         * rendering/RenderTableCol.h:
38085         (RenderTableCol):
38086
38087 2012-10-23  Simon Hausmann  <simon.hausmann@digia.com>
38088
38089         Unreviewed trivial Qt build fix: Fix build without USE_3D_GRAPHICS
38090
38091         Move the #if USE(GRAPHICS_SURFACE) up to protect the inclusion of
38092         GraphicsContext3D.h to be done only if we use the surface.
38093
38094         * platform/graphics/surfaces/GraphicsSurface.h:
38095
38096 2012-10-23  Sheriff Bot  <webkit.review.bot@gmail.com>
38097
38098         Unreviewed, rolling out r132033.
38099         http://trac.webkit.org/changeset/132033
38100         https://bugs.webkit.org/show_bug.cgi?id=100097
38101
38102         Broke calendar picker (Requested by tkent on #webkit).
38103
38104         * bindings/scripts/CodeGeneratorV8.pm:
38105         (GenerateImplementation):
38106
38107 2012-10-23  Andras Becsi  <andras.becsi@digia.com>
38108
38109         Remove devicePixelRatio from ViewportAttributes
38110         https://bugs.webkit.org/show_bug.cgi?id=99845
38111
38112         Reviewed by Adam Barth.
38113
38114         Since r121555 the devicePixelRatio is not calculated any more
38115         and the scale factor is stored in Page::m_deviceScaleFactor,
38116         thus it can be removed from ViewportAttributes to reduce
38117         redundancy and unnecessary client code.
38118         Use a new parameter in viewport calculation functions using
38119         the visible viewport size (instead of passing the adjusted
38120         viewport size) so that after this change clients do not end
38121         up using the unadjusted viewport size for calculations.
38122
38123         No behavioural change, no new tests needed.
38124
38125         * WebCore.exp.in:
38126         * dom/ViewportArguments.cpp:
38127         (WebCore::computeViewportAttributes):
38128         (WebCore::computeMinimumScaleFactorForContentContained):
38129         Add the devicePixelRatio as a parameter.
38130         (WebCore::restrictMinimumScaleFactorToViewportSize): Ditto.
38131         * dom/ViewportArguments.h:
38132         (ViewportAttributes):
38133         (WebCore):
38134         * testing/InternalSettings.cpp:
38135         (WebCore::InternalSettings::configurationForViewport):
38136
38137 2012-10-23  Kent Tamura  <tkent@chromium.org>
38138
38139         Support full month names in DateTimeEditElement, and use them in input[type=month] by default
38140         https://bugs.webkit.org/show_bug.cgi?id=100060
38141
38142         Reviewed by Kentaro Hara.
38143
38144         According to https://plus.google.com/104770450049736549185/posts/4zsoeHoa7SM
38145         no one wants to show abbreviated month names for input[type=month].
38146         This change add support for full month names in DateTimeEditELement, and
38147         LocaleICU and LocaleMac retun month formats with full month names. Note
38148         that LocaleWin::monthFormat returns formats for full month names.
38149
38150         No new tests. Covered by fast/forms/month-multiple-fields/month-multiple-fields-appearance-*.html
38151
38152         * html/shadow/DateTimeEditElement.cpp:
38153         (WebCore::DateTimeEditBuilder::visitField):
38154         If count is 4, use Localizer::monthLabels or standAloneMonthLabels.
38155         * platform/text/LocaleICU.cpp:
38156         (WebCore::LocaleICU::monthFormat):
38157         Returns a format for full month names.
38158         * platform/text/mac/LocaleMac.mm:
38159         (WebCore::LocaleMac::monthFormat): Ditto.
38160
38161 2012-10-23  Mike West  <mkwst@chromium.org>
38162
38163         Viewport errors should be slightly friendlier with regard to ';'.
38164         https://bugs.webkit.org/show_bug.cgi?id=100003
38165
38166         Reviewed by Adam Barth.
38167
38168         This patch scans viewport values that cause errors for ';'. If found,
38169         a quick message is appended to the error, noting that semicolons are
38170         not valid separators in viewport contents, and that commas would be
38171         the proper substitute.
38172
38173         No functional changes, just a better error message.
38174
38175         * dom/ViewportArguments.cpp:
38176         (WebCore::reportViewportWarning):
38177
38178 2012-10-23  Timothy Hatcher  <timothy@apple.com>
38179
38180         Docking/undocking the Web Inspector does not work correctly in Safari.
38181
38182         The "docked" and "bottom" strings need quoted instead of being passed as identifiers.
38183
38184         https://bugs.webkit.org/show_bug.cgi?id=100080
38185
38186         Reviewed by Yury Semikhatsky.
38187
38188         * inspector/InspectorFrontendClientLocal.cpp:
38189         (WebCore::InspectorFrontendClientLocal::setAttachedWindow): Put quotes around the %s.
38190
38191 2012-10-23  Sudarsana Nagineni  <sudarsana.nagineni@intel.com>
38192
38193         [EFL][WK2] Compilation warning in GraphicsContext3DPrivate.cpp when AC is enabled
38194         https://bugs.webkit.org/show_bug.cgi?id=99723
38195
38196         Reviewed by Kenneth Rohde Christiansen.
38197
38198         Fix compilation warning in GraphicsContext3DPrivate.cpp when AC is
38199         enabled.
38200
38201         No new tests, no change in behavior.
38202
38203         * platform/graphics/efl/GraphicsContext3DPrivate.cpp:
38204         (WebCore::GraphicsContext3DPrivate::createSurface):
38205
38206 2012-10-23  Dan Carney  <dcarney@google.com>
38207
38208         When blocking localStorage, Firefox throws a security exception on access, and maybe so should we
38209         https://bugs.webkit.org/show_bug.cgi?id=63257
38210
38211         Reviewed by Jochen Eisinger.
38212
38213         Throw security exception when local storage is accessed
38214         under certain circumstances to match firefox.
38215
38216         No new tests. Existing tests modified.
38217
38218         * bindings/js/JSStorageCustom.cpp:
38219         (WebCore::JSStorage::canGetItemsForName):
38220         (WebCore::JSStorage::nameGetter):
38221         (WebCore::JSStorage::deleteProperty):
38222         (WebCore::JSStorage::getOwnPropertyNames):
38223         * bindings/v8/custom/V8StorageCustom.cpp:
38224         (WebCore):
38225         (WebCore::setDOMException):
38226         (WebCore::V8Storage::namedPropertyEnumerator):
38227         (WebCore::storageGetter):
38228         (WebCore::V8Storage::namedPropertyQuery):
38229         (WebCore::storageDeleter):
38230         * inspector/InspectorDOMStorageAgent.cpp:
38231         (WebCore::InspectorDOMStorageAgent::getDOMStorageEntries):
38232         (WebCore::InspectorDOMStorageAgent::removeDOMStorageItem):
38233         * page/DOMWindow.cpp:
38234         (WebCore::DOMWindow::sessionStorage):
38235         (WebCore::DOMWindow::localStorage):
38236         * storage/Storage.cpp:
38237         * storage/Storage.h:
38238         (WebCore):
38239         (WebCore::Storage::length):
38240         (WebCore::Storage::key):
38241         (WebCore::Storage::getItem):
38242         (WebCore::Storage::setItem):
38243         (WebCore::Storage::removeItem):
38244         (WebCore::Storage::clear):
38245         (WebCore::Storage::contains):
38246         * storage/Storage.idl:
38247         * storage/StorageArea.h:
38248         (StorageArea):
38249         * storage/StorageAreaImpl.cpp:
38250         (WebCore::StorageAreaImpl::canAccessStorage): Checks whether access to storage is a security violation.
38251         (WebCore):
38252         (WebCore::StorageAreaImpl::disabledByPrivateBrowsingInFrame):
38253         (WebCore::StorageAreaImpl::length):
38254         (WebCore::StorageAreaImpl::key):
38255         (WebCore::StorageAreaImpl::getItem):
38256         (WebCore::StorageAreaImpl::setItem):
38257         (WebCore::StorageAreaImpl::removeItem):
38258         (WebCore::StorageAreaImpl::clear):
38259         (WebCore::StorageAreaImpl::contains):
38260         * storage/StorageAreaImpl.h:
38261         (StorageAreaImpl):
38262
38263 2012-10-22  Joshua Bell  <jsbell@chromium.org>
38264
38265         IndexedDB: Remove custom binding code for IDBCursor.value
38266         https://bugs.webkit.org/show_bug.cgi?id=100034
38267
38268         Reviewed by Kentaro Hara.
38269
38270         Now that we're using ScriptValue instead of SerializedScriptValue we can just expose
38271         IDBCursor.value as an |any| (IDL) or |ScriptValue| (C++) to maintain the specified
38272         semantics that the object identity is retained across accesses.
38273
38274         Test: storage/indexeddb/cursor-value.html
38275
38276         * Modules/indexeddb/IDBCursor.cpp: Remove "dirty" tracking.
38277         (WebCore::IDBCursor::IDBCursor):
38278         (WebCore::IDBCursor::value):
38279         (WebCore::IDBCursor::setValueReady):
38280         * Modules/indexeddb/IDBCursor.h: IDBAny -> ScriptValue
38281         (IDBCursor):
38282         * Modules/indexeddb/IDBCursorWithValue.idl: IDBAny -> any
38283         * Modules/indexeddb/IDBObjectStore.cpp: No need to route through IDBAny to get ScriptValue.
38284         (WebCore):
38285         * UseV8.cmake: Remove references to IDBCustomBindings.cpp
38286         * WebCore.gypi: Ditto.
38287         * WebCore.vcproj/WebCore.vcproj: Ditto.
38288         * bindings/v8/IDBCustomBindings.cpp: Removed.
38289
38290 2012-10-22  Dan Bernstein  <mitz@apple.com>
38291
38292         Font’s fast code path is used for partial runs with kerning and ligatures, but shouldn’t be
38293         https://bugs.webkit.org/show_bug.cgi?id=100068
38294
38295         Reviewed by Sam Weinig.
38296
38297         As described in <http://webkit.org/b/100050>, the fast code path doesn’t handle partial runs
38298         correctly when kerning or ligatures are enabled. Since the partial-run case is uncommon,
38299         for now just use the complex code path in this case.
38300
38301         * platform/graphics/Font.cpp:
38302         (WebCore::Font::drawText): Changed to use the complex path for partial runs if there are any
38303         typesetting features.
38304         (WebCore::Font::drawEmphasisMarks): Ditto.
38305         (WebCore::Font::selectionRectForText): Ditto.
38306         (WebCore::Font::offsetForPosition): Changed to use the complex path if there are any
38307         typesetting features.
38308
38309 2012-10-22  Peter Wang  <peter.wang@torchmobile.com.cn>
38310
38311         [BlackBerry] Missing some cookies in HTTP response header when set several cookies in one "Set-Cookie" header.
38312         https://bugs.webkit.org/show_bug.cgi?id=99950
38313
38314         Reviewed by George Staikos.
38315
38316         In "NetworkJob::handleNotifyHeaderReceived", if there are several "Set-Cookie" headers, 
38317         we should combine the following ones with the first.
38318
38319         No new test case.
38320
38321         * platform/network/blackberry/NetworkJob.cpp:
38322         (WebCore::NetworkJob::handleNotifyHeaderReceived):
38323
38324 2012-10-22  MORITA Hajime  <morrita@google.com>
38325
38326         Assertion failed at WebCore::toInsertionPoint / WebCore::ContentDistributor::distribute
38327         https://bugs.webkit.org/show_bug.cgi?id=100038
38328
38329         Reviewed by Kent Tamura.
38330
38331         isHTMLContentElement() assumes that the content element always has
38332         a tag name "content" but it doesn't when Shadow DOM feature is
38333         disabled. This fix let the function see the correct tag name.
38334
38335         Test: fast/dom/shadow/insertion-points-with-shadow-disabled.html
38336
38337         * html/shadow/HTMLContentElement.cpp:
38338         (WebCore::HTMLContentElement::contentTagName):
38339         * html/shadow/HTMLContentElement.h:
38340         (HTMLContentElement):
38341         (WebCore::isHTMLContentElement):
38342
38343 2012-10-22  Shinya Kawanaka  <shinyak@chromium.org>
38344
38345         [Shadow] Fallback content should also be reprojection.
38346         https://bugs.webkit.org/show_bug.cgi?id=99750
38347
38348         Reviewed by Dimitri Glazkov.
38349
38350         Fallback content of InsertionPoint should be reprojected. The existing assumption that
38351         only the direct child of host element can be distributed to InsertionPoint does not hold anymore.
38352         So, if the parent of an element is InsertionPoint which should show fallback element, we have to
38353         check the grand parent of the element instead of the element.
38354
38355         Tests: fast/dom/shadow/content-reprojection-fallback-reprojection.html
38356                fast/dom/shadow/content-reprojection-fallback.html
38357
38358         * css/StyleResolver.cpp:
38359         (WebCore::shouldResetStyleInheritance): Checks the grandparent of the element if the parent is
38360         an InsertionPoint which uses fallback content.
38361         * dom/ComposedShadowTreeWalker.cpp:
38362         (WebCore::shadowOfParentForDistribution):
38363         (WebCore):
38364         (WebCore::resolveReprojection):
38365         (WebCore::ComposedShadowTreeWalker::traverseParent):
38366         * html/shadow/InsertionPoint.cpp:
38367         (WebCore::InsertionPoint::shouldUseFallbackElements): True if the InsertionPoint should use fallback content.
38368         (WebCore):
38369         * html/shadow/InsertionPoint.h:
38370         (WebCore::parentElementForDistribution): Returns the grandparent element if the parent is InsertionPoint which uses
38371         fallback content. Returns parent element otherwise.
38372         (WebCore):
38373
38374 2012-10-22  Keishi Hattori  <keishi@webkit.org>
38375
38376         Label position is wrong in the suggestion picker when all the suggestions have labels
38377         https://bugs.webkit.org/show_bug.cgi?id=99965
38378
38379         Reviewed by Kent Tamura.
38380
38381         Somehow the scrollbar was appearing and so the label element was being wrapped to the next line.
38382
38383         No new tests. Can't reproduce in layout test.
38384
38385         * Resources/pagepopups/suggestionPicker.css:
38386         (.suggestion-list):
38387         * Resources/pagepopups/suggestionPicker.js:
38388         (SuggestionPicker.prototype._fixWindowSize): Explicitly show the scroll bar.
38389
38390 2012-10-22  MORITA Hajime  <morrita@google.com>
38391
38392         [Chromium] Needs to track ShadowRoot usage
38393         https://bugs.webkit.org/show_bug.cgi?id=99955
38394
38395         Reviewed by Dimitri Glazkov.
38396
38397         Added an UMA instrumentation.
38398
38399         * dom/ShadowRoot.cpp:
38400         (WebCore::determineUsageType):
38401         (WebCore):
38402         (WebCore::ShadowRoot::create):
38403
38404 2012-10-22  Kent Tamura  <tkent@chromium.org>
38405
38406         Introduce Localizer::standAloneMonthLabels
38407         https://bugs.webkit.org/show_bug.cgi?id=99963
38408
38409         Reviewed by Kentaro Hara.
38410
38411         We realized full month names and full stand-alone month names were
38412         necessary for input[type=month] UI. We change the compile-flag for
38413         Localizer::monthLabels from "ENABLE(CALENDAR_PICKER)" to
38414         "ENABLE(CALENDAR_PICKER) || ENABLE(INPUT_MULTIPLE_FIELDS_UI)," and
38415         introduce Localizer::standAloneMonthLabels.
38416
38417         Tests: Add some test cases to Source/WebKit/chromium/LocaleMacTest.cpp
38418         and LocalizedDateICUTest.cpp.
38419
38420         * platform/text/Localizer.h:
38421         (Localizer):
38422         - Add pure virtual standAloneMonthLabels.
38423         - Change the condition for monthLabels.
38424
38425         * platform/text/LocaleNone.cpp:
38426         (LocaleNone): Declare monthLabels, standAloneMonthLabels, and m_monthLabels.
38427         (WebCore::LocaleNone::monthLabels):
38428         Added. It always returns English month names.
38429         (WebCore::LocaleNone::standAloneMonthLabels):
38430         Added. Just calls monthLabels.
38431
38432         * platform/text/LocaleWin.h:
38433         (LocaleWin):
38434         Declare standAloneMonthLabels, and change the condition for monthLabels.
38435         * platform/text/LocaleWin.cpp:
38436         (WebCore): Change the condition for monthLabels.
38437         (WebCore::LocaleWin::standAloneMonthLabels):
38438         Added. Just calls monthLabels.
38439
38440         * platform/text/mac/LocaleMac.h:
38441         (LocaleMac):
38442         - Add standAloneMonthLabels and m_standAloneMonthLabels
38443         - Change the condition for monthLabels and m_monthLabels.
38444         * platform/text/mac/LocaleMac.mm:
38445         (WebCore): Change the condition for monthLabels.
38446         (WebCore::LocaleMac::standAloneMonthLabels):
38447         Added. Get the information with NSDateFormatter::standaloneMonthSymbols.
38448
38449         * platform/text/LocaleICU.h:
38450         (LocaleICU):
38451         - Add standAloneMonthLabels and m_standAloneMonthLabels
38452         - Change the condition for monthLabels and m_monthLabels.
38453         * platform/text/LocaleICU.cpp:
38454         (WebCore::LocaleICU::initializeCalendar):
38455         Remove m_monthLabels initialization in order to avoid dependecy from monthLabels.
38456         (WebCore):
38457         (WebCore::createFallbackMonthLabels): Change the compile condition.
38458         (WebCore::LocaleICU::monthLabels):
38459         - Change the compile condition.
38460         - Don't depend on initializeCalendar to make the code for
38461         ENABLE(INPUT_MULTIPLE_FIELDS_UI) && !ENABLE(CALENDAR_PICKER) minimal.
38462         (WebCore::LocaleICU::standAloneMonthLabels):
38463         Added. The code is similar to shortStandAloneMonthLabels.
38464
38465 2012-10-22  Shinya Kawanaka  <shinyak@chromium.org>
38466
38467         Refactoring around ContainerNode::attachChildren
38468         https://bugs.webkit.org/show_bug.cgi?id=99968
38469
38470         Reviewed by Hajime Morita.
38471
38472         Since ContainerNode::attach() is now equivalent to ContainerNode::attachChildren() + Node::attach(), we should call
38473         ContainerNode::attach() instead of calling them.
38474
38475         No new tests, no change in behavior.
38476
38477         * dom/ContainerNode.h:
38478         (ContainerNode):
38479         * dom/Element.cpp:
38480         (WebCore::Element::attach):
38481         * dom/ShadowRoot.cpp:
38482         (WebCore::ShadowRoot::attach):
38483
38484 2012-10-22  Michael Saboff  <msaboff@apple.com>
38485
38486         HTML Parser should produce 8 bit strings for doctype, comment and tagName tokens
38487         https://bugs.webkit.org/show_bug.cgi?id=99889
38488
38489         Reviewed by Geoffrey Garen.
38490
38491         Added 8 bit check for accumulating all token data in MarkupTokenBase.  Added code to convert
38492         "name" token data directly to a string (8 or 16 as appropriate).  Changed to accumulate
38493         m_bufferedEndTagName as LChar's.
38494
38495         No new tests, covered by existing tests.
38496
38497         * html/parser/HTMLToken.h:
38498         (HTMLToken):
38499         * html/parser/HTMLTokenizer.cpp:
38500         (WebCore::HTMLTokenizer::nextToken):
38501         (WebCore::HTMLTokenizer::addToPossibleEndTag):
38502         (WebCore::HTMLTokenizer::isAppropriateEndTag):
38503         * html/parser/HTMLTokenizer.h:
38504         (HTMLTokenizer):
38505         * html/parser/HTMLTreeBuilder.cpp:
38506         (WebCore::HTMLTreeBuilder::ExternalCharacterTokenBuffer::takeLeading):
38507         * xml/parser/MarkupTokenBase.h:
38508         (WebCore::MarkupTokenBase::beginStartTag):
38509         (WebCore::MarkupTokenBase::beginEndTag):
38510         (MarkupTokenBase):
38511         (WebCore::MarkupTokenBase::beginDOCTYPE):
38512         (WebCore::MarkupTokenBase::appendToComment):
38513         (WebCore::MarkupTokenBase::appendToName):
38514         (WebCore::MarkupTokenBase::nameString):
38515         (WebCore::AtomicMarkupTokenBase::AtomicMarkupTokenBase):
38516
38517 2012-10-22  Tony Chang  <tony@chromium.org>
38518
38519         margin-top/bottom has no effect for child nodes of flex items
38520         https://bugs.webkit.org/show_bug.cgi?id=99923
38521
38522         Reviewed by Ojan Vafai.
38523
38524         Flexitems, like table cells, shouldn't collapse margins.
38525
38526         Test: css3/flexbox/flexitem-no-margin-collapsing.html
38527
38528         * rendering/RenderBlock.cpp:
38529         (WebCore::RenderBlock::MarginInfo::MarginInfo): Check to see if the parent is a flexible box.
38530         We should always have a parent if we make it this far in the check.
38531
38532 2012-10-22  Marja Hölttä  <marja@chromium.org>
38533
38534         Refactor CachedResourceLoader: add CachedResourceRequest
38535         https://bugs.webkit.org/show_bug.cgi?id=99736
38536
38537         Reviewed by Adam Barth.
38538
38539         For fixing bugs 84883 and 92761,
38540         CachedResourceLoader::requestResource should take as parameter
38541         information about who initiated the request. But the parameter
38542         list was already long. This gathers all the parameters into a
38543         separate class, CachedResourceRequest. The next step is to add
38544         information about who initiated the request into
38545         CachedResourceRequest.
38546
38547         No new tests because no changes in functionality, just moving code
38548         around.
38549
38550         * CMakeLists.txt:
38551         * GNUmakefile.list.am:
38552         * Target.pri:
38553         * WebCore.gypi:
38554         * WebCore.vcproj/WebCore.vcproj:
38555         * WebCore.xcodeproj/project.pbxproj:
38556         * css/CSSFontFaceSrcValue.cpp:
38557         (WebCore::CSSFontFaceSrcValue::cachedFont):
38558         * css/CSSImageSetValue.cpp:
38559         (WebCore::CSSImageSetValue::cachedImageSet):
38560         * css/CSSImageValue.cpp:
38561         (WebCore::CSSImageValue::cachedImage):
38562         * css/StyleRuleImport.cpp:
38563         (WebCore::StyleRuleImport::requestStyleSheet):
38564         * css/WebKitCSSSVGDocumentValue.cpp:
38565         (WebCore::WebKitCSSSVGDocumentValue::load):
38566         * css/WebKitCSSShaderValue.cpp:
38567         (WebCore::WebKitCSSShaderValue::cachedShader):
38568         * dom/ProcessingInstruction.cpp:
38569         (WebCore::ProcessingInstruction::checkStyleSheet):
38570         * dom/ScriptElement.cpp:
38571         (WebCore::ScriptElement::requestScript):
38572         * html/HTMLLinkElement.cpp:
38573         (WebCore::HTMLLinkElement::process):
38574         * loader/DocumentThreadableLoader.cpp:
38575         (WebCore::DocumentThreadableLoader::loadRequest):
38576         * loader/ImageLoader.cpp:
38577         (WebCore::ImageLoader::updateFromElement):
38578         * loader/LinkLoader.cpp:
38579         (WebCore::LinkLoader::loadLink):
38580         * loader/TextTrackLoader.cpp:
38581         (WebCore::TextTrackLoader::load):
38582         * loader/cache/CachedResourceLoader.cpp:
38583         (WebCore::CachedResourceLoader::requestImage):
38584         (WebCore::CachedResourceLoader::requestFont):
38585         (WebCore::CachedResourceLoader::requestTextTrack):
38586         (WebCore::CachedResourceLoader::requestShader):
38587         (WebCore::CachedResourceLoader::requestCSSStyleSheet):
38588         (WebCore::CachedResourceLoader::requestUserCSSStyleSheet):
38589         (WebCore::CachedResourceLoader::requestScript):
38590         (WebCore::CachedResourceLoader::requestXSLStyleSheet):
38591         (WebCore::CachedResourceLoader::requestSVGDocument):
38592         (WebCore::CachedResourceLoader::requestLinkResource):
38593         (WebCore::CachedResourceLoader::requestRawResource):
38594         (WebCore::CachedResourceLoader::requestResource):
38595         (WebCore::CachedResourceLoader::requestPreload):
38596         (WebCore::CachedResourceLoader::defaultCachedResourceOptions):
38597         (WebCore):
38598         * loader/cache/CachedResourceLoader.h:
38599         (WebCore):
38600         (CachedResourceLoader):
38601         * loader/cache/CachedResourceRequest.cpp: Added.
38602         (WebCore):
38603         (WebCore::CachedResourceRequest::CachedResourceRequest):
38604         * loader/cache/CachedResourceRequest.h: Added.
38605         (WebCore):
38606         (CachedResourceRequest):
38607         (WebCore::CachedResourceRequest::mutableResourceRequest):
38608         (WebCore::CachedResourceRequest::resourceRequest):
38609         (WebCore::CachedResourceRequest::charset):
38610         (WebCore::CachedResourceRequest::setCharset):
38611         (WebCore::CachedResourceRequest::options):
38612         (WebCore::CachedResourceRequest::priority):
38613         (WebCore::CachedResourceRequest::forPreload):
38614         (WebCore::CachedResourceRequest::setForPreload):
38615         (WebCore::CachedResourceRequest::defer):
38616         (WebCore::CachedResourceRequest::setDefer):
38617         * loader/icon/IconLoader.cpp:
38618         (WebCore::IconLoader::startLoading):
38619         * svg/SVGFEImageElement.cpp:
38620         (WebCore::SVGFEImageElement::requestImageResource):
38621         * svg/SVGFontFaceUriElement.cpp:
38622         (WebCore::SVGFontFaceUriElement::loadFont):
38623         * svg/SVGUseElement.cpp:
38624         (WebCore::SVGUseElement::svgAttributeChanged):
38625         * xml/XSLImportRule.cpp:
38626         (WebCore::XSLImportRule::loadSheet):
38627
38628 2012-10-22  Adam Barth  <abarth@webkit.org>
38629
38630         [V8] ASSERT that removeAllDOMObjects() is called only on worker threads
38631         https://bugs.webkit.org/show_bug.cgi?id=100046
38632
38633         Reviewed by Eric Seidel.
38634
38635         This function is called only on worker threads. We should ASSERT that
38636         fact and remove the dead code that tries to handle the main thread
38637         case.
38638
38639         * bindings/v8/V8DOMMap.cpp:
38640         (WebCore::removeAllDOMObjects):
38641
38642 2012-10-22  Adam Barth  <abarth@webkit.org>
38643
38644         [V8] We should call the faster v8::Integer::New APIs
38645         https://bugs.webkit.org/show_bug.cgi?id=100016
38646
38647         Reviewed by Eric Seidel.
38648
38649         In working to remove the integer cache, I added some faster APIs for
38650         creating v8::Integers. These APIs are faster than the old APIs, but not
38651         quite fast enough to replace the integer cache. We should still use
38652         them when we miss the integer cache.
38653
38654         I've also included a small refactoring to V8PerIsolateData to make it
38655         clearer when we're calling v8::Isolate::GetCurrent().
38656
38657         * bindings/v8/DOMData.cpp:
38658         (WebCore::DOMData::getCurrentStore):
38659         * bindings/v8/V8Binding.h:
38660         (WebCore::v8ExternalString):
38661         (WebCore::v8Integer):
38662         (WebCore::v8UnsignedInteger):
38663         * bindings/v8/V8PerIsolateData.h:
38664         (WebCore::V8PerIsolateData::current):
38665         (WebCore::V8PerIsolateData::from):
38666         * bindings/v8/V8ValueCache.cpp:
38667         (WebCore::StringCache::v8ExternalStringSlow):
38668         (WebCore::IntegerCache::createSmallIntegers):
38669         * bindings/v8/V8ValueCache.h:
38670         (WebCore::IntegerCache::v8Integer):
38671         (WebCore::IntegerCache::v8UnsignedInteger):
38672         (IntegerCache):
38673         * bindings/v8/custom/V8HTMLCanvasElementCustom.cpp:
38674         (WebCore::V8HTMLCanvasElement::getContextCallback):
38675
38676 2012-10-22  Julien Chaffraix  <jchaffraix@webkit.org>
38677
38678         RenderTableCol::computePreferredLogicalWidths and RenderTableCol::layout should never be called
38679         https://bugs.webkit.org/show_bug.cgi?id=99861
38680
38681         Reviewed by Ojan Vafai.
38682
38683         RenderTableCol's computePreferredLogicalWidths and layout's only purpose were to clear the preferred logical
38684         widths dirty / layout flag so that we would properly propagate the information to our containing table. This
38685         led to clunky code where the table layout code had to forcefully call RenderTableCol::computePreferredLogicalWidths
38686         or else we would ignore the next layout hint on the <col> or <colgroup>.
38687
38688         Test: fast/table/col-span-change-relayout.html
38689
38690         * rendering/AutoTableLayout.cpp:
38691         (WebCore::AutoTableLayout::recalcColumn):
38692         * rendering/RenderTable.cpp:
38693         (WebCore::RenderTable::layout):
38694         Simplified the code now that we only need to iterate over the sections.
38695
38696         * rendering/FixedTableLayout.cpp:
38697         (WebCore::FixedTableLayout::calcWidthArray):
38698         Removed call to computePreferredLogicalWidths.
38699
38700         * rendering/RenderTableCol.cpp:
38701         (WebCore::RenderTableCol::styleDidChange):
38702         (WebCore::RenderTableCol::updateFromElement):
38703         Forward a layout hint to the table so that we properly recompute the cell's logical withs.
38704
38705         (WebCore::RenderTableCol::computePreferredLogicalWidths):
38706         (WebCore::RenderTableCol::layout):
38707         Change our implementations of those 2 methods to be no-ops, while enforcing that they are
38708         never called.
38709
38710         (WebCore::RenderTableCol::propagateLayoutCueToTable):
38711         New helper function that forward any layout cue to the containing table, this works around
38712         us not clearing the flags which confuses RenderObject markContainingBlocksForLayout and
38713         invalidateContainerPreferredLogicalWidths.
38714
38715         * rendering/RenderTableCol.h:
38716         Made the function that we are not expected to be called private.
38717
38718 2012-10-22  Pan Deng  <pan.deng@intel.com>
38719
38720         [User Timing]Integrate with Perforamnce Timeline.
38721         https://bugs.webkit.org/show_bug.cgi?id=91072.
38722
38723         Reviewed by Tony Gentilcore.
38724
38725         This patch expose user timing entries via performance timeline interface. JavaScriptCore custom binding will be another patch
38726
38727         No new tests, user timing test cases have been landed.
38728
38729         * page/Performance.cpp:
38730         (WebCore::Performance::Performance):
38731         (WebCore::Performance::webkitGetEntries):
38732         (WebCore::Performance::webkitGetEntriesByType):
38733         (WebCore::Performance::webkitGetEntriesByName):
38734         * page/PerformanceEntry.h:
38735         (WebCore::PerformanceEntry::startTimeCompareLessThan):
38736         (PerformanceEntry):
38737         * page/PerformanceEntryList.cpp:
38738         (WebCore::PerformanceEntryList::sort):
38739         (WebCore):
38740         * page/PerformanceEntryList.h:
38741         (PerformanceEntryList):
38742         * page/PerformanceUserTiming.cpp:
38743         (WebCore::convertToEntrySequence):
38744         (WebCore):
38745         (WebCore::getEntrySequenceByName):
38746         (WebCore::UserTiming::getMarks):
38747         (WebCore::UserTiming::getMeasures):
38748         * page/PerformanceUserTiming.h:
38749         (UserTiming):
38750
38751 2012-10-22  Pan Deng  <pan.deng@intel.com>
38752
38753         Modify obsolete code in User Timing
38754         https://bugs.webkit.org/show_bug.cgi?id=99851
38755
38756         Reviewed by Tony Gentilcore.
38757
38758         Modify user timing implementation as PlatformString.h, prefix of webkitNow is removed, etc.
38759
38760         No new tests.
38761
38762         * page/PerformanceUserTiming.cpp:
38763         (WebCore::insertPerformanceEntry):
38764         (WebCore::UserTiming::mark):
38765         (WebCore::UserTiming::measure):
38766         * page/PerformanceUserTiming.h:
38767
38768 2012-10-22  Mark Lam  <mark.lam@apple.com>
38769
38770         Change stack recursion checks to be based on stack availability.
38771         https://bugs.webkit.org/show_bug.cgi?id=99872.
38772
38773         Reviewed by Filip Pizlo and Geoffrey Garen.
38774
38775         Removed the use of ThreadStackType. Enabled the reserved JSStack space
38776         for error processing before doing work in reportException().
38777
38778         * bindings/js/JSDOMBinding.cpp:
38779         (WebCore::reportException):
38780         * bindings/js/JSDOMWindowBase.cpp:
38781         (WebCore::JSDOMWindowBase::commonJSGlobalData):
38782         * bindings/js/WorkerScriptController.cpp:
38783         (WebCore::WorkerScriptController::WorkerScriptController):
38784
38785 2012-10-22  Andreas Kling  <kling@webkit.org>
38786
38787         REGRESSION(r131104): Heap-use-after-free in WebCore::Element::attributeChanged
38788         <http://webkit.org/b/99937>
38789
38790         Reviewed by Anders Carlsson.
38791
38792         Setting the "type" attribute on an HTMLInputElement that has no "value" attribute set will cause the
38793         input type changing mechanism to write a value attribute onto the element. This happens in
38794         HTMLInputElement::updateType(), below parseAttribute().
38795
38796         It's done via Element::setAttribute(), so we end up re-entering Element::setAttributeInternal()
38797         where the 'existingAttribute' pointer may now be invalid if adding the "value" attribute caused
38798         a reallocation in the ElementAttributeData's underlying Vector<Attribute>.
38799
38800         To make it harder to introduce this kind of bug in the future, I changed almost all functions that take
38801         a "const Attribute&" to take a QualifiedName/AtomicString couple instead (the idea being that the 
38802         fewer references into the attribute store we have, the better.)
38803
38804         Test: fast/html/input-type-change-crash.html
38805
38806         * dom/Attr.cpp:
38807         (WebCore::Attr::setValue):
38808         (WebCore::Attr::childrenChanged):
38809         * dom/Element.cpp:
38810         (WebCore::Element::setAttributeInternal):
38811         (WebCore::Element::attributeChanged):
38812         (WebCore::Element::parserSetAttributes):
38813         (WebCore::Element::addAttributeInternal):
38814         (WebCore::Element::didAddAttribute):
38815         (WebCore::Element::didModifyAttribute):
38816         (WebCore::Element::didRemoveAttribute):
38817         * dom/Element.h:
38818         (Element):
38819         * dom/ElementAttributeData.cpp:
38820         (WebCore::ElementAttributeData::cloneDataFrom):
38821         * dom/StyledElement.cpp:
38822         (WebCore::StyledElement::attributeChanged):
38823         * dom/StyledElement.h:
38824         * html/HTMLInputElement.cpp:
38825         (WebCore::HTMLInputElement::updateType):
38826         * svg/SVGElement.cpp:
38827         (WebCore::SVGElement::attributeChanged):
38828         * svg/SVGElement.h:
38829         (SVGElement):
38830
38831 2012-10-22  Joshua Bell  <jsbell@chromium.org>
38832
38833         IndexedDB: Bounds check for IDBCursor.advance() incorrect
38834         https://bugs.webkit.org/show_bug.cgi?id=100014
38835
38836         Reviewed by Tony Chang.
38837
38838         Fix introduced by trac.webkit.org/changeset/131658 restricted cursor.advance()'s argument
38839         as [EnforceRange] unsigned long long, but it's typed as [EnforceRange] unsigned long; the
38840         useless comparison was caught by a clang check.
38841
38842         In lieu of webkit.org/b/96798 make it long long and correct the range check.
38843
38844         Test: storage/indexeddb/cursor-advance.html
38845
38846         * Modules/indexeddb/IDBCursor.cpp:
38847         (WebCore::IDBCursor::advance):
38848         * Modules/indexeddb/IDBCursor.h:
38849         (IDBCursor):
38850         * Modules/indexeddb/IDBCursor.idl:
38851
38852 2012-10-22  Tony Chang  <tony@chromium.org>
38853
38854         WebKit does not support 'flex-wrap: nowrap'
38855         https://bugs.webkit.org/show_bug.cgi?id=99924
38856
38857         Reviewed by Ojan Vafai.
38858
38859         The spec changed back from using none to nowrap for the single-line
38860         flexbox case.
38861         http://dev.w3.org/csswg/css3-flexbox/#flex-wrap-property
38862
38863         No new tests, covered by css3/flexbox/css-properties.html and others.
38864
38865         * css/CSSParser.cpp:
38866         (WebCore::isValidKeywordPropertyAndValue):
38867         * css/CSSPrimitiveValueMappings.h:
38868         (WebCore::CSSPrimitiveValue::CSSPrimitiveValue):
38869         (WebCore::CSSPrimitiveValue::operator EFlexWrap):
38870         * css/CSSValueKeywords.in:
38871         * rendering/RenderBox.cpp:
38872         (WebCore::isStretchingColumnFlexItem):
38873         (WebCore::RenderBox::sizesLogicalWidthToFitContent):
38874         * rendering/RenderFlexibleBox.cpp:
38875         (WebCore::RenderFlexibleBox::isMultiline):
38876         * rendering/style/RenderStyle.h:
38877         * rendering/style/RenderStyleConstants.h:
38878
38879 2012-10-22  Mike West  <mkwst@chromium.org>
38880
38881         'image/pjpeg' should be treated as an image by Web Inspector.
38882         https://bugs.webkit.org/show_bug.cgi?id=100001
38883
38884         Reviewed by Pavel Feldman.
38885
38886         It's not exactly a "real" MIME type, but it's in use.
38887
38888         * inspector/front-end/NetworkManager.js:
38889         (WebInspector.NetworkManager):
38890             Adding 'image/pjpeg' as an image MIME type.
38891
38892 2012-10-22  Sheriff Bot  <webkit.review.bot@gmail.com>
38893
38894         Unreviewed, rolling out r132119.
38895         http://trac.webkit.org/changeset/132119
38896         https://bugs.webkit.org/show_bug.cgi?id=100019
38897
38898         Fails its own test on Mac platforms. (Requested by leviw on
38899         #webkit).
38900
38901         * page/EventHandler.cpp:
38902         (WebCore::EventHandler::handleGestureEvent):
38903         (WebCore::EventHandler::sendContextMenuEventForGesture):
38904         * page/EventHandler.h:
38905         (EventHandler):
38906
38907 2012-10-22  Hans Muller  <hmuller@adobe.com>
38908
38909         [CSS Exclusions] Points on the bottom and right edges of an exclusion shape should be classified as "outside"
38910         https://bugs.webkit.org/show_bug.cgi?id=98967
38911
38912         Reviewed by Dirk Schulze.
38913
38914         Changed the way lines are represented in the ExclusionShapeInsideInfo and ExclusionShape classes
38915         so that they're consistent with the rendering code that depends on them.  Lines are now defined
38916         by logicalTop, logicalHeight, instead of logicalTop,logicalBottom.  This a clean-up, not a change
38917         in functionality. It's already covered by the existing fast/exclusions LayoutTests.
38918
38919         Test: fast/exclusions/shape-inside/shape-inside-bottom-edge.html
38920
38921         * rendering/ExclusionPolygon.cpp:
38922         (WebCore::ExclusionPolygon::getExcludedIntervals):
38923         (WebCore::ExclusionPolygon::getIncludedIntervals):
38924         * rendering/ExclusionPolygon.h:
38925         * rendering/ExclusionRectangle.cpp:
38926         (WebCore::ExclusionRectangle::getExcludedIntervals):
38927         (WebCore::ExclusionRectangle::getIncludedIntervals):
38928         * rendering/ExclusionRectangle.h:
38929         * rendering/ExclusionShape.h:
38930         (LineSegment): Moved the struct fields below the constructor per webkit style.
38931         (ExclusionShape):
38932         (WebCore::ExclusionShape::minYForLogicalLine):
38933         (WebCore::ExclusionShape::maxYForLogicalLine):
38934         * rendering/ExclusionShapeInsideInfo.cpp:
38935         (WebCore::ExclusionShapeInsideInfo::computeSegmentsForLine):
38936         * rendering/ExclusionShapeInsideInfo.h:
38937         (ExclusionShapeInsideInfo):
38938         (WebCore::ExclusionShapeInsideInfo::lineOverlapsShapeBounds): Changed the test to not include
38939             lines whose logicalTop is equal to the shape's top+height.
38940         * rendering/RenderBlockLineLayout.cpp:
38941         (WebCore::RenderBlock::layoutRunsAndFloatsInRange):
38942
38943 2012-10-22  Chris Rogers  <crogers@google.com>
38944
38945         Update some AudioContext create() method names to latest Web Audio spec
38946         https://bugs.webkit.org/show_bug.cgi?id=99888
38947
38948         Reviewed by Adam Barth.
38949
38950         The following AudioContext method names are being changed, with legacy support for the old names:
38951         createGainNode -> createGain
38952         createDelayNode -> createDelay
38953         createJavaScriptNode -> createScriptProcessor
38954
38955         For details:
38956         https://www.w3.org/Bugs/Public/show_bug.cgi?id=18332
38957
38958         Tests changed: webaudio/delaynode.html, webaudio/gain.html, webaudio/javascriptaudionode.html
38959         to test coverage of the new names.
38960
38961         * Modules/webaudio/AudioBufferSourceNode.idl:
38962         * Modules/webaudio/AudioContext.cpp:
38963         (WebCore::AudioContext::createScriptProcessor):
38964         (WebCore::AudioContext::createGain):
38965         (WebCore::AudioContext::createDelay):
38966         * Modules/webaudio/AudioContext.h:
38967         (AudioContext):
38968         * Modules/webaudio/AudioContext.idl:
38969         * page/FeatureObserver.h:
38970
38971 2012-10-22  Varun Jain  <varunjain@chromium.org>
38972
38973         Context menu generated from touch gestures on textareas has
38974         context of the cursor position instead of the position where the event occurs.
38975         https://bugs.webkit.org/show_bug.cgi?id=99520
38976
38977         Reviewed by Kenneth Rohde Christiansen.
38978
38979         Send a synthetic mouse down event for context menu-summoning-gesture events so
38980         that textareas can correctly set cursors before receiving the context menu event.
38981
38982         Test: fast/events/touch/gesture/right-click-gestures-set-cursor-at-correct-position.html
38983
38984         * page/EventHandler.cpp:
38985         (WebCore::EventHandler::handleGestureEvent):
38986         (WebCore::EventHandler::handleGestureTwoFingerTap):
38987         (WebCore):
38988         (WebCore::EventHandler::sendContextMenuEventForGesture):
38989         * page/EventHandler.h:
38990         (EventHandler):
38991
38992 2012-10-22  Zeno Albisser  <zeno@webkit.org>
38993
38994         TextureMapperSurfaceBackingStore should check if GraphicsSurface is valid.
38995         https://bugs.webkit.org/show_bug.cgi?id=100002
38996
38997         Reviewed by Kenneth Rohde Christiansen.
38998
38999         * platform/graphics/texmap/TextureMapperBackingStore.cpp:
39000         (WebCore::TextureMapperSurfaceBackingStore::setGraphicsSurface):
39001             Check if a surface has been created before accessing the pointer.
39002         (WebCore::TextureMapperSurfaceBackingStore::paintToTextureMapper):
39003             Check if m_graphicsSurface is a valid pointer before dereferencing it.
39004
39005 2012-10-22  Michael Saboff  <msaboff@apple.com>
39006
39007         r131955 is has improper function call in LinkHashChromium.cpp
39008         https://bugs.webkit.org/show_bug.cgi?id=100008
39009
39010         Reviewed by Alexey Proskuryakov.
39011
39012         Followup fix to r131955 for chromium platform.  Added call to 
39013         (const UChar*, unsigned) version of visitedLinkHash from String& version.
39014
39015         * platform/chromium/LinkHashChromium.cpp:
39016         (WebCore::visitedLinkHash):
39017
39018 2012-10-22  Aaron Colwell  <acolwell@chromium.org>
39019
39020         webkitsourceopen event doesn't always fire
39021         https://bugs.webkit.org/show_bug.cgi?id=99868
39022
39023         Reviewed by Adam Barth.
39024
39025         Changed MediaSource to derive from ActiveDOMObject so that event listeners
39026         will still fire even if all references to the object go out of scope.
39027
39028         Test: http/tests/media/media-source/video-media-source-garbage-collection-before-sourceopen.html
39029
39030         * Modules/mediasource/MediaSource.cpp:
39031         (WebCore::MediaSource::create):
39032         (WebCore::MediaSource::MediaSource):
39033         (WebCore::MediaSource::scriptExecutionContext):
39034         (WebCore):
39035         (WebCore::MediaSource::hasPendingActivity):
39036         (WebCore::MediaSource::stop): Clears m_player & m_asyncEventQueue so they don't indicate pending activity anymore.
39037         * Modules/mediasource/MediaSource.h:
39038         (MediaSource):
39039         * Modules/mediasource/MediaSource.idl:
39040         * Modules/mediasource/MediaSourceRegistry.cpp:
39041         (WebCore::MediaSourceRegistry::registerMediaSourceURL): Added setPendingActivity() call so the MediaSource object stays active while in the registry.
39042         (WebCore::MediaSourceRegistry::unregisterMediaSourceURL): Added unsetPendingActivity() call so the MediaSource object can become inactive after being removed from the registry.
39043
39044 2012-10-22  Adam Barth  <abarth@webkit.org>
39045
39046         [V8] Vastly simplify V8GCController's NodeVisitor
39047         https://bugs.webkit.org/show_bug.cgi?id=99884
39048
39049         Reviewed by Kentaro Hara.
39050
39051         NodeVisitor was vastly more complicated than necessary.
39052
39053         This patch improve performance on these new gc benchmarks:
39054
39055         gc-forest: 1.14% better
39056         gc-mini-tree: 5.09% better
39057         gc-tree: 4.60% better
39058
39059         * bindings/v8/V8GCController.cpp:
39060         (WebCore::ObjectVisitor::visitDOMWrapper):
39061         (WebCore::addImplicitReferencesForNodeWithEventListeners):
39062         (WebCore::rootForGC):
39063         (WebCore::NodeVisitor::visitDOMWrapper):
39064         (WebCore::NodeVisitor::applyGrouping):
39065         (NodeVisitor):
39066
39067 2012-10-22  Emil A Eklund  <eae@chromium.org>
39068
39069         Change baselinePosition and maxAscent/maxDescent to int
39070         https://bugs.webkit.org/show_bug.cgi?id=99767
39071
39072         Reviewed by Levi Weintraub.
39073
39074         Currently baselinePostion, maxAscent and maxDescent are
39075         LayoutUnits while ascent, descent and m_lineHeight are ints.
39076         This can lead to subtle alignment and rounding problems.
39077
39078         Change baselinePosition and maxAscent/maxDescent to int to avoid
39079         these issues.
39080
39081         Test: fast/sub-pixel/replaced-element-baseline.html
39082
39083         * editing/FrameSelection.cpp:
39084         (WebCore::repaintRectForCaret):
39085         Inflate Y dimension just like we do for X to ensure that the
39086         repaint rect fully contains the caret.
39087
39088         * rendering/InlineBox.cpp:
39089         (WebCore::InlineBox::baselinePosition):
39090         * rendering/InlineBox.h:
39091         (InlineBox):
39092         * rendering/InlineFlowBox.cpp:
39093         (WebCore::InlineFlowBox::adjustMaxAscentAndDescent):
39094         (WebCore::InlineFlowBox::computeLogicalBoxHeights):
39095         (WebCore::InlineFlowBox::placeBoxesInBlockDirection):
39096         Change maxAscent/maxDescent to int to match ascent/descent.
39097         
39098         * rendering/InlineFlowBox.h:
39099         (InlineFlowBox):
39100         * rendering/InlineTextBox.cpp:
39101         (WebCore::InlineTextBox::baselinePosition):
39102         * rendering/InlineTextBox.h:
39103         (InlineTextBox):
39104         * rendering/RenderBlock.cpp:
39105         (WebCore::RenderBlock::baselinePosition):
39106         (WebCore::RenderBlock::firstLineBoxBaseline):
39107         (WebCore::RenderBlock::lastLineBoxBaseline):
39108         * rendering/RenderBlock.h:
39109         (RenderBlock):
39110         * rendering/RenderBox.cpp:
39111         (WebCore::RenderBox::baselinePosition):
39112         * rendering/RenderBox.h:
39113         (WebCore::RenderBox::firstLineBoxBaseline):
39114         (WebCore::RenderBox::lastLineBoxBaseline):
39115         (RenderBox):
39116         * rendering/RenderBoxModelObject.h:
39117         (RenderBoxModelObject):
39118         * rendering/RenderFlexibleBox.cpp:
39119         (WebCore::RenderFlexibleBox::baselinePosition):
39120         (WebCore::RenderFlexibleBox::firstLineBoxBaseline):
39121         * rendering/RenderFlexibleBox.h:
39122         * rendering/RenderInline.cpp:
39123         (WebCore::RenderInline::baselinePosition):
39124         * rendering/RenderInline.h:
39125         (RenderInline):
39126         * rendering/RenderListBox.cpp:
39127         (WebCore::RenderListBox::baselinePosition):
39128         * rendering/RenderListBox.h:
39129         (RenderListBox):
39130         * rendering/RenderListMarker.cpp:
39131         (WebCore::RenderListMarker::baselinePosition):
39132         * rendering/RenderListMarker.h:
39133         (RenderListMarker):
39134         * rendering/RenderSlider.cpp:
39135         (WebCore::RenderSlider::baselinePosition):
39136         * rendering/RenderSlider.h:
39137         (RenderSlider):
39138         * rendering/RenderTable.cpp:
39139         (WebCore::RenderTable::baselinePosition):
39140         (WebCore::RenderTable::lastLineBoxBaseline):
39141         (WebCore::RenderTable::firstLineBoxBaseline):
39142         * rendering/RenderTable.h:
39143         (RenderTable):
39144         * rendering/RenderTableSection.cpp:
39145         (WebCore::RenderTableSection::firstLineBoxBaseline):
39146         * rendering/RenderTableSection.h:
39147         (RenderTableSection):
39148         * rendering/RenderTextControlMultiLine.cpp:
39149         (WebCore::RenderTextControlMultiLine::baselinePosition):
39150         * rendering/RenderTextControlMultiLine.h:
39151         (RenderTextControlMultiLine):
39152         * rendering/RenderTheme.cpp:
39153         (WebCore::RenderTheme::baselinePosition):
39154         * rendering/RenderTheme.h:
39155         (RenderTheme):
39156         * rendering/RenderThemeSafari.cpp:
39157         (WebCore::RenderThemeSafari::baselinePosition):
39158         * rendering/RenderThemeSafari.h:
39159         (RenderThemeSafari):
39160         * rendering/RootInlineBox.cpp:
39161         (WebCore::RootInlineBox::baselinePosition):
39162         (WebCore::RootInlineBox::alignBoxesInBlockDirection):
39163         * rendering/RootInlineBox.h:
39164         (RootInlineBox):
39165         * rendering/mathml/RenderMathMLBlock.cpp:
39166         (WebCore::RenderMathMLBlock::baselinePosition):
39167         (WebCore::RenderMathMLTable::firstLineBoxBaseline):
39168         * rendering/mathml/RenderMathMLBlock.h:
39169         (RenderMathMLBlock):
39170         (RenderMathMLTable):
39171         * rendering/mathml/RenderMathMLFraction.cpp:
39172         (WebCore::RenderMathMLFraction::firstLineBoxBaseline):
39173         * rendering/mathml/RenderMathMLFraction.h:
39174         (RenderMathMLFraction):
39175         * rendering/mathml/RenderMathMLOperator.cpp:
39176         (WebCore::RenderMathMLOperator::firstLineBoxBaseline):
39177         * rendering/mathml/RenderMathMLOperator.h:
39178         * rendering/mathml/RenderMathMLUnderOver.cpp:
39179         (WebCore::RenderMathMLUnderOver::firstLineBoxBaseline):
39180         * rendering/mathml/RenderMathMLUnderOver.h:
39181         (RenderMathMLUnderOver):
39182
39183 2012-10-22  Emil A Eklund  <eae@chromium.org>
39184
39185         Modify LayoutState ASSERTS to support SATURATED_LAYOUT_ARITHMETIC
39186         https://bugs.webkit.org/show_bug.cgi?id=98692
39187
39188         Reviewed by Dan Bernstein.
39189
39190         We currently overflow/wrap when computing the delta in
39191         RenderBlock::setLogicalTopForChild in cases where we have an
39192         element with a width or height exceeding maxLayoutUnit. When
39193         the delta is later added back in RenderBlock::layoutBlockChild
39194         the number wraps again getting us back to the correct value.
39195
39196         With SATURATED_LAYOUT_ARITHMETIC enabled the values no longer
39197         wraps, which seems like the correct thing to do however this
39198         causes the compare to fail for obvious reasons. By accounting
39199         for this we can keep the asserts (which have proven very
39200         helpful) even when SATURATED_LAYOUT_ARITHMETIC is turned on.
39201
39202         No new tests, covered by existing tests.
39203
39204         * rendering/LayoutState.cpp:
39205         (WebCore::LayoutState::LayoutState):
39206         * rendering/LayoutState.h:
39207         (WebCore::LayoutState::LayoutState):
39208         (LayoutState):
39209         * rendering/RenderBlock.cpp:
39210         (WebCore::RenderBlock::layoutBlockChild):
39211         * rendering/RenderView.cpp:
39212         (WebCore::RenderView::layout):
39213         * rendering/RenderView.h:
39214         (WebCore::RenderView::addLayoutDelta):
39215         (RenderView):
39216         (WebCore::RenderView::layoutDeltaMatches):
39217
39218 2012-10-22  Tony Chang  <tony@chromium.org>
39219
39220         Fix some baseline flexbox alignment
39221         https://bugs.webkit.org/show_bug.cgi?id=99879
39222
39223         Reviewed by Ojan Vafai.
39224
39225         Fix a bug where we weren't handling margin properly on inline-flexbox.
39226         Fix a bug where we weren't getting the edge of the content box properly when synthesizing
39227         a baseline.
39228
39229         Test: css3/flexbox/flexbox-baseline-margins.html
39230
39231         * rendering/RenderBlock.cpp:
39232         (WebCore::RenderBlock::baselinePosition):
39233         (WebCore::RenderBlock::inlineBlockBaseline): Add a new method that is used when calculating an inline-block's
39234         baseline. Previously we would use lastLineBoxBaseline.
39235         (WebCore::RenderBlock::lastLineBoxBaseline): Pass in direction and when searching children, use inlineBlockBaseline.
39236         * rendering/RenderBlock.h:
39237         (RenderBlock): Make lastLineBoxBaseline non-virtual.
39238         * rendering/RenderBox.h:
39239         (WebCore::RenderBox::inlineBlockBaseline): Replace lastLineBoxBaseline with inlineBlockBaseline.
39240         * rendering/RenderFlexibleBox.cpp:
39241         (WebCore::synthesizedBaselineFromContentBox): Helper method for getting the baseline from the content box.
39242         (WebCore::RenderFlexibleBox::baselinePosition): Always include the margin. This fixes the inline-flexbox case.
39243         (WebCore::RenderFlexibleBox::firstLineBoxBaseline): Fix a case where we didn't synthesize a baseline.  Returning -1 means there is no baseline, but we can
39244         synthesize a baseline if we have a flexitem without text.
39245         (WebCore::RenderFlexibleBox::inlineBlockBaseline):
39246         * rendering/RenderFlexibleBox.h:
39247         * rendering/RenderTable.cpp: Replace lastLineBoxBaseline with inlineBlockBaseline.
39248         (WebCore::RenderTable::inlineBlockBaseline): Try to make comment more direct.
39249         * rendering/RenderTable.h:
39250         (RenderTable): Replace lastLineBoxBaseline with inlineBlockBaseline.
39251
39252 2012-10-22  Levi Weintraub  <leviw@chromium.org>
39253
39254         Unreviewed Chromium build fix following r132074.
39255
39256         * WebCore.gypi:
39257
39258 2012-10-22  Mario Sanchez Prada  <msanchez@igalia.com>
39259
39260         [GTK] Don't use deprecated AccessibilityObject methods after r99502
39261         https://bugs.webkit.org/show_bug.cgi?id=99985
39262
39263         Reviewed by Chris Fleizach.
39264
39265         Update callers for AccessibilityObject's title() and
39266         accessibilityDescription() so they now use AccessibilityText.
39267
39268         * accessibility/gtk/WebKitAccessibleUtil.cpp:
39269         (titleTagShouldBeUsedInDescriptionField): Internal helper function.
39270         (accessibilityTitle): New helper function, returns an String with
39271         the title for a AccessibilityObject, using AccessibleText.
39272         (accessibilityDescription): New helper function, returns an String with
39273         the description for a AccessibilityObject, using AccessibleText.
39274         * accessibility/gtk/WebKitAccessibleUtil.h: Added public
39275         declarations for accessibilityTitle and accessibilityDescription.
39276
39277         * accessibility/gtk/WebKitAccessibleWrapperAtk.cpp:
39278         (webkitAccessibleGetName): Use new helpers for retrieving the title.
39279         (webkitAccessibleGetDescription): Use new helpers for retrieving
39280         the title and description.
39281
39282         * accessibility/gtk/WebKitAccessibleInterfaceImage.cpp:
39283         (webkitAccessibleImageGetImageDescription): Use new helpers for
39284         retrieving the title.
39285
39286 2012-10-16  Andrey Kosyakov  <caseq@chromium.org>
39287
39288         Web Inspector: add timeline instrumentation for scrolling of a layer
39289         https://bugs.webkit.org/show_bug.cgi?id=99461
39290
39291         Reviewed by Pavel Feldman.
39292
39293         - added timeline instrumentation for scrolling of a layer;
39294         - added TRACE_EVENT for ScrollableArea::scrollPositionChanged()
39295
39296         * inspector/InspectorInstrumentation.cpp:
39297         (WebCore):
39298         (WebCore::InspectorInstrumentation::willScrollLayerImpl):
39299         (WebCore::InspectorInstrumentation::didScrollLayerImpl):
39300         * inspector/InspectorInstrumentation.h:
39301         (InspectorInstrumentation):
39302         (WebCore::InspectorInstrumentation::willScrollLayer):
39303         (WebCore):
39304         (WebCore::InspectorInstrumentation::didScrollLayer):
39305         * inspector/InspectorTimelineAgent.cpp:
39306         (TimelineRecordType):
39307         (WebCore::InspectorTimelineAgent::willScroll):
39308         (WebCore):
39309         (WebCore::InspectorTimelineAgent::didScroll):
39310         * inspector/InspectorTimelineAgent.h:
39311         (InspectorTimelineAgent):
39312         * inspector/front-end/TimelineModel.js:
39313         * inspector/front-end/TimelinePresentationModel.js:
39314         (WebInspector.TimelinePresentationModel._initRecordStyles):
39315         * rendering/RenderLayer.cpp:
39316         (WebCore::RenderLayer::scrollTo):
39317         * platform/ScrollableArea.cpp:
39318         (WebCore::ScrollableArea::scrollPositionChanged):
39319
39320 2012-10-22  Jan Keromnes  <janx@linux.com>
39321
39322         Moved cmdevtools.js to folder cm/
39323
39324         Web Inspector: Move file `cmdevtools.css` to `cm/`
39325         https://bugs.webkit.org/show_bug.cgi?id=99956
39326
39327         Reviewed by Pavel Feldman.
39328
39329         The file cmdevtools.js belongs to the CodeMirror editor experiment in cm/.
39330
39331         * WebCore.gypi:
39332         * WebCore.vcproj/WebCore.vcproj:
39333         * inspector/front-end/WebKit.qrc:
39334         * inspector/front-end/cm/cmdevtools.css: Renamed from Source/WebCore/inspector/front-end/cmdevtools.css.
39335         (.CodeMirror):
39336         (.CodeMirror-scroll):
39337         (.cm-highlight):
39338         (@-webkit-keyframes fadeout):
39339         (to):
39340         (.cm-breakpoint):
39341         (.cm-breakpoint-disabled):
39342         (.cm-breakpoint-conditional):
39343         (.cm-execution-line):
39344         (.cm-s-web-inspector-js span.cm-keyword):
39345         (.cm-s-web-inspector-js span.cm-number):
39346         (.cm-s-web-inspector-js span.cm-comment):
39347         (.cm-s-web-inspector-js span.cm-string):
39348         (.cm-s-web-inspector-js span.cm-string-2):
39349         (.cm-s-web-inspector-css span.cm-keyword):
39350         (.cm-s-web-inspector-css span.cm-number):
39351         (.cm-s-web-inspector-css span.cm-comment):
39352         (.cm-s-web-inspector-css span.cm-string):
39353         (.cm-s-web-inspector-css span.cm-string-2):
39354         (.cm-s-web-inspector-css span.cm-link):
39355         (.cm-s-web-inspector-css span.cm-variable):
39356         (.cm-s-web-inspector-html span.cm-meta):
39357         (.cm-s-web-inspector-html span.cm-comment):
39358         (.cm-s-web-inspector-html span.cm-string):
39359         (.cm-s-web-inspector-html span.cm-tag):
39360         (.cm-s-web-inspector-html span.cm-attribute):
39361         (.cm-s-web-inspector-html span.cm-link):
39362         (.webkit-html-message-bubble):
39363         (.webkit-html-warning-message):
39364         (.webkit-html-error-message):
39365         (.webkit-html-message-line):
39366         (.webkit-html-message-line-hover):
39367
39368 2012-10-22  Vsevolod Vlasov  <vsevik@chromium.org>
39369
39370         Web Inspector: Prepare mappings to moving uiSourceCodes creation out of them to workspace.
39371         https://bugs.webkit.org/show_bug.cgi?id=99997
39372
39373         Reviewed by Pavel Feldman.
39374
39375         Source mappings could now store a link to temporary uiSourceCodes only.
39376         Otherwise it should retrieve uiSourceCodes from workspace by URL.
39377         Original uiSourceCodes are now temporary in CompilerScriptMapping.
39378
39379         * inspector/front-end/CompilerScriptMapping.js:
39380         (WebInspector.CompilerScriptMapping):
39381         (WebInspector.CompilerScriptMapping.prototype.rawLocationToUILocation):
39382         (WebInspector.CompilerScriptMapping.prototype.loadSourceMapForScript):
39383         (WebInspector.CompilerScriptMapping.prototype._reset):
39384         * inspector/front-end/NetworkUISourceCodeProvider.js:
39385         (WebInspector.NetworkUISourceCodeProvider):
39386         (WebInspector.NetworkUISourceCodeProvider.prototype._parsedScriptSource):
39387         (WebInspector.NetworkUISourceCodeProvider.prototype._resourceAdded):
39388         (WebInspector.NetworkUISourceCodeProvider.prototype._addUISourceCode):
39389         (WebInspector.NetworkUISourceCodeProvider.prototype._projectWillReset):
39390         * inspector/front-end/SASSSourceMapping.js:
39391         (WebInspector.SASSSourceMapping):
39392         (_bindUISourceCode):
39393         (_reset):
39394
39395 2012-10-22  Nicolas Dufresne <nicolas.dufresne@collabora.com>
39396
39397         Gstreamer 1.0 not working
39398         https://bugs.webkit.org/show_bug.cgi?id=99852
39399
39400         Reviewed by Philippe Normand.
39401
39402         There was a series of trivial issue, g_object_is_floating() was called
39403         on type GstCaps (which is not a GObject), webkitGstGetPadCaps() was
39404         returning non-fixed caps and GST_MESSAGE_DURATION has been renamed
39405         to GST_MESSAGE_DURATION_CHANGED.
39406
39407         Most failing test passes now.
39408
39409         * platform/graphics/gstreamer/GRefPtrGStreamer.cpp:
39410         (WTF::adoptGRef):
39411         * platform/graphics/gstreamer/GStreamerVersioning.cpp:
39412         (webkitGstGetPadCaps):
39413         * platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:
39414         (WebCore::MediaPlayerPrivateGStreamer::handleMessage):
39415
39416 2012-10-22  Vsevolod Vlasov  <vsevik@chromium.org>
39417
39418         Web Inspector: Treat dynamic anonymous scripts as other anonymous and fix anonymous script editing and breakpoints.
39419         https://bugs.webkit.org/show_bug.cgi?id=99989
39420
39421         Reviewed by Pavel Feldman.
39422
39423         Dynamic anonymous scripts are now mapped to anonymous temporary uiSourceCodes.
39424         ResourceScriptMapping now supports two types of temporary uiSourceCodes:
39425          - original uiSourceCodes represent scripts while main uiSourceCodes are diverged;
39426          - temporary uiSourceCodes represent scripts for which resources are not yet loaded.
39427
39428         * inspector/front-end/BreakpointManager.js:
39429         (WebInspector.BreakpointManager.breakpointStorageId):
39430         (WebInspector.BreakpointManager.Storage.prototype._updateBreakpoint):
39431         * inspector/front-end/NetworkUISourceCodeProvider.js:
39432         (WebInspector.NetworkUISourceCodeProvider.prototype._parsedScriptSource):
39433         * inspector/front-end/ResourceScriptMapping.js:
39434         (WebInspector.ResourceScriptMapping):
39435         (WebInspector.ResourceScriptMapping.prototype.rawLocationToUILocation):
39436         (WebInspector.ResourceScriptMapping.prototype._hasMergedToVM):
39437         (WebInspector.ResourceScriptMapping.prototype.addScript):
39438         (WebInspector.ResourceScriptMapping.prototype._deleteOriginalUISourceCodeForScripts):
39439         (WebInspector.ResourceScriptMapping.prototype._deleteTemporaryUISourceCodeForScripts):
39440         (WebInspector.ResourceScriptMapping.prototype._bindUISourceCodeToScripts):
39441         (WebInspector.ResourceScriptMapping.prototype._createUISourceCode):
39442         (WebInspector.ResourceScriptMapping.prototype._getOrCreateTemporaryUISourceCode):
39443         (WebInspector.ResourceScriptMapping.prototype._getOrCreateOriginalUISourceCode):
39444         (WebInspector.ResourceScriptMapping.prototype._uiSourceCodeAddedToWorkspace):
39445         (WebInspector.ResourceScriptMapping.prototype._scriptsForUISourceCode.get if):
39446         (WebInspector.ResourceScriptMapping.prototype._reset):
39447
39448 2012-10-22  Bruno de Oliveira Abinader  <bruno.abinader@basyskom.com>
39449
39450         [css3-text] Add rendering support for -webkit-text-decoration-style
39451         https://bugs.webkit.org/show_bug.cgi?id=94094
39452
39453         Reviewed by Julien Chaffraix.
39454
39455         This patch implements the "text-decoration-style" property rendering as
39456         specified in CSS3 working draft, with "-webkit-" prefix. The specification can
39457         be found here: http://dev.w3.org/csswg/css3-text/#text-decoration-style
39458
39459         Additionally, Mozilla implementation details can be found here:
39460         https://developer.mozilla.org/en/CSS/text-decoration-style
39461
39462         Tests: fast/css3-text/css3-text-decoration/repaint/repaint-text-decoration-style.html
39463                fast/css3-text/css3-text-decoration/text-decoration-style.html
39464
39465         * platform/graphics/GraphicsContext.h:
39466         * platform/graphics/cairo/GraphicsContextCairo.cpp:
39467         (WebCore::GraphicsContext::setPlatformStrokeStyle):
39468         * platform/graphics/cg/GraphicsContextCG.cpp:
39469         (WebCore::GraphicsContext::drawLine):
39470         * platform/graphics/qt/GraphicsContextQt.cpp:
39471         (WebCore::toQPenStyle):
39472         (WebCore::GraphicsContext::drawLine):
39473         * platform/graphics/skia/PlatformContextSkia.cpp:
39474         (WebCore::PlatformContextSkia::setupPaintForStroking):
39475         * platform/graphics/wince/GraphicsContextWinCE.cpp:
39476         (WebCore::createPen):
39477         * platform/graphics/wx/GraphicsContextWx.cpp:
39478         (WebCore::strokeStyleToWxPenStyle):
39479         Added 'DoubleStroke' and 'WavyStroke' to StrokeStyle enum and updated
39480         platform-specific stroke handling. Some styles requires
39481         platform-specific implementation (handled in bug 92868).
39482         * rendering/InlineTextBox.cpp:
39483         (WebCore::InlineTextBox::paint):
39484         (WebCore::textDecorationStyleToStrokeStyle): Added static function that
39485         translates text decoration to stroke styles.
39486         (WebCore::InlineTextBox::paintDecoration): Text decoration style does
39487         not specify a property for line thickness (like border-width does for
39488         border style), so we statically set it to 1 for now. The 'double' style
39489         implementation simply adds a parallel line (depending if it is
39490         underline, overline or line-through) and the space between lines follows
39491         the approach used by border's 'double' style.
39492         * rendering/InlineTextBox.h:
39493         (InlineTextBox):
39494         * rendering/style/RenderStyle.h:
39495         * rendering/style/RenderStyleConstants.h:
39496         Added text decoration style rendering support to
39497         InlineTextBox::paintDecoration().
39498
39499 2012-10-22  Allan Sandfeld Jensen  <allan.jensen@digia.com>
39500
39501         [Qt] Use the DNS resolve queue
39502         https://bugs.webkit.org/show_bug.cgi?id=99994
39503
39504         Reviewed by Simon Hausmann.
39505
39506         Use the DNS resolve queue, to ensure we can prefetch more than just the first 10 hostname encountered
39507         during parsing. It also ensure each hostname is only appears once in the queue.
39508
39509         * Target.pri:
39510         * platform/network/qt/DNSQt.cpp: Added.
39511         (DnsPrefetchHelper):
39512         (WebCore::DnsPrefetchHelper::DnsPrefetchHelper):
39513         (WebCore::DnsPrefetchHelper::lookup):
39514         (WebCore::DnsPrefetchHelper::lookedUp):
39515         (WebCore::prefetchDNS):
39516         (WebCore::DNSResolveQueue::platformProxyIsEnabledInSystemPreferences):
39517         (WebCore::DNSResolveQueue::platformResolve):
39518         * platform/network/qt/DnsPrefetchHelper.cpp: Removed.
39519         * platform/network/qt/DnsPrefetchHelper.h: Removed.
39520         (DnsPrefetchHelper):
39521
39522 2012-10-22  Erik Arvidsson  <arv@chromium.org>
39523
39524         HTMLBaseElement href attribute binding returns wrong URL
39525         https://bugs.webkit.org/show_bug.cgi?id=98184
39526
39527         Reviewed by Ojan Vafai.
39528
39529         Resolve the href attribute binding relative to the document URL instead of resolving it to the
39530         base element itself. If there is no href attribute this should return the fallback base URL.
39531
39532         http://www.whatwg.org/specs/web-apps/current-work/multipage/semantics.html#the-base-element
39533
39534         Tests: fast/dom/HTMLAnchorElement/set-href-attribute-rebase.html
39535                fast/dom/HTMLBaseElement/href-attribute-resolves-with-respect-to-document.html
39536
39537         * html/HTMLBaseElement.cpp:
39538         (WebCore::HTMLBaseElement::href): Don't use completeURL. Resolve href based on document's URL instead
39539         of the generic [Reflect, URL] binding.
39540         (WebCore::HTMLBaseElement::setHref): Just sets the attribute.
39541         * html/HTMLBaseElement.h:
39542         * html/HTMLBaseElement.idl: We can no longer use [Reflect, URL]
39543
39544 2012-10-22  Vsevolod Vlasov  <vsevik@chromium.org>
39545
39546         Web Inspector: Revisions should not be restored and persisted for anonymous uiSourceCodes.
39547         https://bugs.webkit.org/show_bug.cgi?id=99991
39548
39549         Reviewed by Alexander Pavlov.
39550
39551         * inspector/front-end/UISourceCode.js:
39552         (WebInspector.UISourceCode):
39553
39554 2012-10-22  Florin Malita  <fmalita@chromium.org>
39555
39556         Incorrect embedded SVG image sizing on first load
39557         https://bugs.webkit.org/show_bug.cgi?id=99489
39558
39559         Reviewed by Nikolas Zimmermann.
39560
39561         RenderSVGImage::updateImageViewport() must be called after the image loader is finished,
39562         to ensure that a SVGImageCache::SizeAndScalesMap entry is created even if layout has
39563         already been performed.
39564
39565         Test: svg/custom/svg-image-initial-size.html
39566
39567         * rendering/svg/RenderSVGImage.cpp:
39568         (WebCore::RenderSVGImage::imageChanged):
39569
39570 2012-10-22  Keishi Hattori  <keishi@webkit.org>
39571
39572         Remove monthFormatInLDML
39573         https://bugs.webkit.org/show_bug.cgi?id=99971
39574
39575         Reviewed by Kent Tamura.
39576
39577         Removing monthFormatInLDML from localized strings because Localizer class now provides the same functionality.
39578
39579         No new tests. Just removing unused code.
39580
39581         * platform/LocalizedStrings.h:
39582         (WebCore):
39583
39584 2012-10-22  Zan Dobersek  <zandobersek@gmail.com>
39585
39586         [GTK] Enable Microdata DOM API
39587         https://bugs.webkit.org/show_bug.cgi?id=99033
39588
39589         Reviewed by Martin Robinson.
39590
39591         Enable the Microdata DOM API, but still disable it when the unstable
39592         features should be disabled (for instance in release builds).
39593
39594         No new tests - related tests are being unskipped and are expected to pass.
39595
39596         * GNUmakefile.am:
39597         * GNUmakefile.features.am:
39598         * bindings/gobject/GNUmakefile.am: Add the required files so the Microdata
39599         API GObject bindings are generated and built.
39600
39601 2012-10-22  Zan Dobersek  <zandobersek@gmail.com>
39602
39603         [GTK] Enable CSP 1.1
39604         https://bugs.webkit.org/show_bug.cgi?id=99064
39605
39606         Reviewed by Martin Robinson.
39607
39608         Enable CSP 1.1 in development builds but keep it disabled when the
39609         unstable features should not be enabled (like in stable releases).
39610
39611         No new tests - they already exist and will be unskipped.
39612
39613         * GNUmakefile.am:
39614         * GNUmakefile.features.am:
39615
39616 2012-10-22  Jocelyn Turcotte  <jocelyn.turcotte@digia.com>
39617
39618         [Qt] Fix "ASSERTION FAILED: !document->inPageCache()" when loading a page
39619         https://bugs.webkit.org/show_bug.cgi?id=98514
39620
39621         Reviewed by Kenneth Rohde Christiansen.
39622
39623         The problem is that we call setFixedVisibleContentRect, which triggers
39624         a layout, after the document has been put in the page cache and before
39625         the load has been actually committed.
39626
39627         This applies the same trick as with setFixedLayoutSize by passing the rect
39628         in Frame::createView and calling setFixedVisibleContentRect before the
39629         new FrameView gets attached to the Frame/Document to prevent the layout.
39630
39631         * WebCore.exp.in:
39632         * page/Frame.cpp:
39633         (WebCore::Frame::createView): Give a default value to the fixedLayoutSize and
39634         useFixedLayout arguments as well since they are used exceptionally.
39635         * page/Frame.h:
39636         (Frame):
39637
39638 2012-10-22  Allan Sandfeld Jensen  <allan.jensen@digia.com>
39639
39640         [Qt] Handle GET of blob URLs.
39641         https://bugs.webkit.org/show_bug.cgi?id=99053
39642
39643         Reviewed by Simon Hausmann.
39644
39645         Let BlobResourceHandle handle Blob request internally.
39646
39647         * platform/network/qt/ResourceHandleQt.cpp:
39648         (WebCore::ResourceHandle::loadResourceSynchronously):
39649
39650 2012-10-22  Kenichi Ishibashi  <bashi@chromium.org>
39651
39652         HarfBuzzShaper::shape() should return false when it adds no glyph to GlyphBuffer
39653         https://bugs.webkit.org/show_bug.cgi?id=99966
39654
39655         Reviewed by Kent Tamura.
39656
39657         If no glyph is added to GlyphBuffer, HarfBuzzShaper::shape() returns false.
39658
39659         No new tests. Confirmed the fix by using Address Sanitizer.
39660
39661         * platform/graphics/harfbuzz/ng/HarfBuzzShaper.cpp:
39662         (WebCore::HarfBuzzShaper::shape):
39663         (WebCore::HarfBuzzShaper::fillGlyphBuffer): Returns false when glyphBuffer.size() == 0
39664         * platform/graphics/harfbuzz/ng/HarfBuzzShaper.h:
39665         (HarfBuzzShaper):
39666
39667 2012-10-22  Shinya Kawanaka  <shinyak@chromium.org>
39668
39669         [Shadow] ASSERT triggered when we try reprojecting fallback elements.
39670         https://bugs.webkit.org/show_bug.cgi?id=99815
39671
39672         Reviewed by Hajime Morita.
39673
39674         When fallback elements of InsertionPoint is reprojected, they were attached twice.
39675         We have to skip attaching them if they are attached. We also add a few ASSERT not to
39676         allow attaching twice if not necessary.
39677
39678         We have confirmed that this patch does not regress the performance. The summary of the
39679         performance test is the following:
39680
39681         Dromaeo/dom-modify.html [runs/s]:
39682                                median stdev    min    max
39683            without this patch:   3928   184   3655   4361
39684            with this patch   :   3925   178   3652   4350
39685
39686         Parser/html5-full-render.html [s]:
39687                                median stdev    min    max
39688            without this patch:   3821    17   3811   3850
39689            with this patch   :   3838   4.4   3833   3844
39690
39691         Test: fast/dom/shadow/content-reprojection-fallback-crash.html
39692
39693         * dom/ContainerNode.cpp:
39694         (WebCore):
39695         (WebCore::childAttachedAllowedWhenAttachingChildren): If true, children of this node might
39696         be attached in advance because of ShadowDOM attaching process.
39697         * dom/ContainerNode.h:
39698         (ContainerNode):
39699         (WebCore):
39700         (WebCore::ContainerNode::attachChildren):
39701         * dom/Element.cpp:
39702         (WebCore::Element::attach):
39703         * dom/ShadowRoot.cpp:
39704         (WebCore::ShadowRoot::attach):
39705
39706 2012-10-22  Pavel Feldman  <pfeldman@chromium.org>
39707
39708         Web Inspector: merge "docked" state into the "dock side" enum.
39709         https://bugs.webkit.org/show_bug.cgi?id=99717
39710
39711         Reviewed by Vsevolod Vlasov.
39712
39713         Otherwise, it is hard to manage these inter-dependent flags.
39714
39715         * WebCore.exp.in:
39716         * inspector/InspectorFrontendClient.h:
39717         (InspectorFrontendClient):
39718         * inspector/InspectorFrontendClientLocal.cpp:
39719         (WebCore::InspectorFrontendClientLocal::requestSetDockSide):
39720         (WebCore::InspectorFrontendClientLocal::setAttachedWindow):
39721         * inspector/InspectorFrontendClientLocal.h:
39722         (InspectorFrontendClientLocal):
39723         * inspector/InspectorFrontendHost.cpp:
39724         (WebCore::InspectorFrontendHost::requestSetDockSide):
39725         * inspector/InspectorFrontendHost.h:
39726         (InspectorFrontendHost):
39727         * inspector/InspectorFrontendHost.idl:
39728         * inspector/front-end/DockController.js:
39729         (WebInspector.DockController):
39730         (WebInspector.DockController.prototype._updateUI.get sides):
39731         (WebInspector.DockController.prototype._updateUI):
39732         (WebInspector.DockController.prototype._toggleDockState):
39733         * inspector/front-end/InspectorFrontendAPI.js:
39734         (InspectorFrontendAPI.setAttachedWindow):
39735         (InspectorFrontendAPI.setDockSide):
39736         * inspector/front-end/InspectorFrontendHostStub.js:
39737         (.WebInspector.InspectorFrontendHostStub.prototype.requestSetDockSide):
39738         * inspector/front-end/externs.js:
39739
39740 2012-10-22  MORITA Hajime  <morrita@google.com>
39741
39742         Unreviewed follow up to update test result after r132033.
39743
39744         * bindings/scripts/test/V8/V8TestObj.cpp:
39745         (WebCore::V8TestObj::installPerContextProperties):
39746
39747 2012-10-21  MORITA Hajime  <morrita@google.com>
39748
39749         [V8] V8EnablePerContext shouldn't require document() accessor to the native object.
39750         https://bugs.webkit.org/show_bug.cgi?id=99954
39751
39752         Reviewed by Kentaro Hara.
39753
39754         It now refers ScriptExecutionContext of the creation context instead of document() of
39755         wrapped object.
39756
39757         No new tests. No behavior change at this time.
39758
39759         * bindings/scripts/CodeGeneratorV8.pm:
39760         (GenerateImplementation):
39761
39762 2012-10-21  Kent Tamura  <tkent@chromium.org>
39763
39764         Page popup: Fix crash by events after closing
39765         https://bugs.webkit.org/show_bug.cgi?id=99951
39766
39767         Reviewed by Hajime Morita.
39768
39769         WebCore should provide a way to uninstall a DOMWindowPagePopup supplement.
39770
39771         No new tests. The bug is timing-dependent.
39772
39773         * page/DOMWindowPagePopup.cpp:
39774         (WebCore::DOMWindowPagePopup::uninstall):
39775         Added. Calls Supplementable::removeSupplement.
39776         * page/DOMWindowPagePopup.h:
39777         (DOMWindowPagePopup): Declare uninstall.
39778         * platform/Supplementable.h:
39779         (WebCore::Supplementable::removeSupplement): Added.
39780
39781 2012-10-21  Keishi Hattori  <keishi@webkit.org>
39782
39783         Refactor picker tests to fix flakiness and share code
39784         https://bugs.webkit.org/show_bug.cgi?id=99671
39785
39786         Reviewed by Kent Tamura.
39787
39788         Disable transitions until the picker is fully ready. This should fix flakiness.
39789
39790         No new tests.
39791
39792         * Resources/pagepopups/calendarPicker.css:
39793         (.preparing .unavailable): Disable transitions.
39794         (.preparing .available): Disable transitions.
39795         * Resources/pagepopups/calendarPicker.js:
39796         (CalendarPicker): Set "preparing" class.
39797         (CalendarPicker.prototype._handleWindowResize): Remove the "preparing" class when the window finishes resizing.
39798
39799 2012-10-21  Shinya Kawanaka  <shinyak@chromium.org>
39800
39801         Web Inspector: Shadow DOM: Node removal doesn't reflect.
39802         https://bugs.webkit.org/show_bug.cgi?id=99567
39803
39804         Reviewed by Pavel Feldman.
39805
39806         We have to call InspectorInstrumentation::willRemoveDOMNode() even if a node is in a shadow tree.
39807         Otherwise, node won't be removed from the inspector.
39808
39809         Test: inspector/elements/update-shadowdom.html
39810
39811         * dom/ContainerNode.cpp:
39812         (WebCore::dispatchChildRemovalEvents):
39813
39814 2012-10-21  Andreas Kling  <kling@webkit.org>
39815
39816         Remove Page::javaScriptURLsAreAllowed setting.
39817         <http://webkit.org/b/99944>
39818
39819         Reviewed by Anders Carlsson.
39820
39821         This setting was exposed through internal WebView API in Apple's WebKit1.
39822         There are no longer any clients of that API.
39823
39824         This is a step towards preventing elements from modifying their own attributes
39825         below attributeChanged().
39826
39827         * WebCore.exp.in:
39828         * WebCore.order:
39829         * bindings/ScriptControllerBase.cpp:
39830         (WebCore::ScriptController::executeIfJavaScriptURL):
39831         * html/HTMLAnchorElement.cpp:
39832         (WebCore::HTMLAnchorElement::parseAttribute):
39833         * page/Page.cpp:
39834         (WebCore::Page::Page):
39835         * page/Page.h:
39836         (Page):
39837
39838 2012-10-21  Hyungchan Kim  <hyungchan2.kim@lge.com>
39839
39840         Add a separate flag for rgb swizzling whether it can be modified or not
39841         https://bugs.webkit.org/show_bug.cgi?id=98728
39842
39843         BitmapTexture swizzles the source image if the OpenGL driver
39844         doesn't support the BGRA extension.
39845         In case of directly composited images, the source image should not
39846         be modified.
39847
39848         http://www.satine.org/research/webkit/snowleopard/snowstack.html
39849
39850         Reviewed by Noam Rosenthal.
39851
39852         No new tests as this is only testable on specific hardware and
39853         currently not avaiable in the bots.
39854
39855         * platform/graphics/texmap/TextureMapper.h:
39856         (BitmapTexture):
39857         * platform/graphics/texmap/TextureMapperBackingStore.cpp:
39858         (WebCore::TextureMapperTile::updateContents):
39859         (WebCore::TextureMapperTiledBackingStore::updateContentsFromImageIfNeeded):
39860         (WebCore::TextureMapperTiledBackingStore::updateContents):
39861         * platform/graphics/texmap/TextureMapperBackingStore.h:
39862         (TextureMapperTile):
39863         (TextureMapperTiledBackingStore):
39864         (WebCore::TextureMapperTiledBackingStore::updateContents):
39865         * platform/graphics/texmap/TextureMapperGL.cpp:
39866         (WebCore::TextureMapperGL::drawRepaintCounter):
39867         (WebCore::BitmapTextureGL::updateContents):
39868         * platform/graphics/texmap/TextureMapperGL.h:
39869         (BitmapTextureGL):
39870         * platform/graphics/texmap/TextureMapperImageBuffer.cpp:
39871         (WebCore::BitmapTextureImageBuffer::updateContents):
39872         * platform/graphics/texmap/TextureMapperImageBuffer.h:
39873         (BitmapTextureImageBuffer):
39874         * platform/graphics/texmap/TextureMapperLayer.cpp:
39875         (WebCore::TextureMapperLayer::updateBackingStore):
39876
39877 2012-10-21  Antti Koivisto  <antti@apple.com>
39878
39879         Factor stylesheet invalidation analysis code into a class
39880         https://bugs.webkit.org/show_bug.cgi?id=99933
39881
39882         Reviewed by Sam Weinig.
39883
39884         Currently the stylesheet analysis code is all over the place. It should be factored into a class to make
39885         further progress easier.
39886
39887         The patch adds StyleInvalidationAnalysis class and moves a bunch of code from SelectorChecker, StyleResolver
39888         and DocumentStyleSheetCollection there. No functional changes.
39889
39890         * CMakeLists.txt:
39891         * GNUmakefile.list.am:
39892         * Target.pri:
39893         * WebCore.gypi:
39894         * WebCore.vcproj/WebCore.vcproj:
39895         * WebCore.xcodeproj/project.pbxproj:
39896         * css/SelectorChecker.cpp:
39897         (WebCore):
39898         * css/SelectorChecker.h:
39899         (WebCore):
39900         * css/StyleInvalidationAnalysis.cpp: Added.
39901         (WebCore):
39902         (WebCore::StyleInvalidationAnalysis::StyleInvalidationAnalysis):
39903         (WebCore::StyleInvalidationAnalysis::create):
39904         (WebCore::determineSelectorScopes):
39905         (WebCore::StyleInvalidationAnalysis::analyzeStyleSheet):
39906         (WebCore::elementMatchesSelectorScopes):
39907         (WebCore::StyleInvalidationAnalysis::invalidateStyle):
39908         * css/StyleInvalidationAnalysis.h: Added.
39909         (WebCore):
39910         (StyleInvalidationAnalysis):
39911         (WebCore::StyleInvalidationAnalysis::dirtiesAllStyle):
39912         * css/StyleResolver.cpp:
39913         (WebCore::StyleResolver::checkRegionSelector):
39914         * css/StyleResolver.h:
39915         (StyleResolver):
39916         * dom/DocumentStyleSheetCollection.cpp:
39917         (WebCore):
39918         (WebCore::DocumentStyleSheetCollection::analyzeStyleSheetChange):
39919         * dom/DocumentStyleSheetCollection.h:
39920         (DocumentStyleSheetCollection):
39921
39922 2012-10-08  Robert Hogan  <robert@webkit.org>
39923
39924         In some float situations, the original layout is wrong and only corrects itself on repaint
39925         https://bugs.webkit.org/show_bug.cgi?id=18939
39926
39927         Reviewed by Levi Weintraub.
39928
39929         A <br> that follows collapsing spaces and has clearance set always needs to get a run and a linebox of its own.
39930         This allows the line below it to check for clearance from the <br> if it gets dirtied but the line with the <br>
39931         does not.
39932
39933         Test: fast/block/br-with-clearance-after-collapsing-space.html
39934
39935         * rendering/RenderBlockLineLayout.cpp:
39936         (WebCore::RenderBlock::LineBreaker::nextLineBreak):
39937
39938 2012-10-08  Robert Hogan  <robert@webkit.org>
39939
39940         floated element with negative margin causes text wrap bug
39941         https://bugs.webkit.org/show_bug.cgi?id=94825
39942
39943         Reviewed by Levi Weintraub.
39944
39945         Avoid over-estimating the available width on the line by ensuring that the offset taken to avoid
39946         floats on the line is at least as much as the offset given by border, margin and padding. This only
39947         happens when a negative margin on the float brings its edge back before the offset
39948         given by the border, margin and padding of its parents.
39949
39950         Test: fast/block/float/float-on-line-obeys-container-padding.html
39951
39952         * rendering/RenderBlockLineLayout.cpp:
39953         (WebCore::LineWidth::shrinkAvailableWidthForNewFloatIfNeeded):
39954
39955 2012-10-20  Martin Robinson  <mrobinson@igalia.com>
39956
39957         Fix 'make dist' for the GTK+ port
39958
39959         * GNUmakefile.am: Add missing files to the source list.
39960         * GNUmakefile.list.am: Ditto.
39961
39962 2012-10-20  Dan Bernstein  <mitz@apple.com>
39963
39964         <rdar://problem/12512710> [mac] Text with zero font size renders as 12px sometimes
39965         https://bugs.webkit.org/show_bug.cgi?id=99918
39966
39967         Reviewed by Geoff Garen.
39968
39969         -[NSFont fontWithName:size:] returns an NSFont of size 12 (the default User Font size) when
39970         asked for size 0, and this is what Font::drawGlyphs uses to draw the text.
39971
39972         Test: fast/text/zero-font-size-2.html
39973
39974         * platform/graphics/mac/FontMac.mm:
39975         (WebCore::Font::drawGlyphs): Added an early return if the size is zero.
39976
39977 2012-10-20  Andreas Kling  <kling@webkit.org>
39978
39979         Clean up QualifiedName-as-hash-key scenario.
39980         <http://webkit.org/b/99394>
39981
39982         Reviewed by Anders Carlsson.
39983
39984         Cache the hash on QualifiedNameImpl after the first time it's computed.
39985         This grows QualifiedNameImpl by 4 bytes on 32-bit (no change on 64-bit due to base class padding)
39986         which I believe is fine, since QualifiedName is a shared object.
39987
39988         Add a global nullQName() function that returns a QualifiedName(nullAtom, nullAtom, nullAtom)
39989         and use this to implement HashTraits<QualifiedName>::emptyValue(). The old implementation would
39990         create a new QualifiedName(nullAtom, nullAtom, nullAtom) each time, which had to be hashed,
39991         added to  the global QualifiedName cache, etc.
39992
39993         Finally, don't have SVGAttributeHashTranslator create a temporary QualifiedName just to compute
39994         the hash of a (namespace, prefix, localName) tuple, use QualifiedNameComponents and hashComponents()
39995         directly instead.
39996
39997         Altogether this shaves ~100ms off of the RoboHornet svgresize.html benchmark on my MBP.
39998
39999         * dom/QualifiedName.cpp:
40000         (WebCore::nullQName):
40001         (WebCore::QualifiedName::QualifiedNameImpl::computeHash):
40002         * dom/QualifiedName.h:
40003         (QualifiedNameImpl):
40004         (WebCore::QualifiedName::QualifiedNameImpl::QualifiedNameImpl):
40005         (WebCore::QualifiedNameHash::hash):
40006         * svg/SVGElement.h:
40007         (WebCore::SVGAttributeHashTranslator::hash):
40008
40009 2012-10-20  Yael Aharon  <yael.aharon@intel.com>
40010
40011         [EFL][AC] Build fix after r131933
40012         https://bugs.webkit.org/show_bug.cgi?id=99901
40013
40014         Reviewed by Kentaro Hara.
40015
40016         Add ArrayBoundsClamper.cpp to WebCore/CMakeLists.txt.
40017
40018         No new tests.
40019
40020         * CMakeLists.txt:
40021
40022 2012-10-19  Adam Barth  <abarth@webkit.org>
40023
40024         [V8] V8DOMWrapper should avoid using its document parameter (so we can remove it soon)
40025         https://bugs.webkit.org/show_bug.cgi?id=99876
40026
40027         Reviewed by Kentaro Hara.
40028
40029         We want to remove the document parameter to instantiateV8Object. There
40030         isn't always a Document available, so it doesn't make sense to pass it
40031         as a parameter. We're just waiting for a V8 API change so we can still
40032         construct Node wrappers quickly.
40033
40034         This patch removes a use of the document that snuck in. Rather than
40035         passing the ScriptExecutionContext around, we get it from the
40036         CreationContext of the prototype object (and only when we actually need
40037         it).
40038
40039         * Modules/notifications/NotificationCenter.cpp:
40040         * Modules/notifications/NotificationCenter.h:
40041         (NotificationCenter):
40042         * bindings/scripts/CodeGeneratorV8.pm:
40043         (GenerateHeader):
40044         (GenerateConstructorGetter):
40045         (GenerateImplementation):
40046         (GenerateToV8Converters):
40047         * bindings/v8/V8DOMWindowShell.cpp:
40048         (WebCore::V8DOMWindowShell::installDOMWindow):
40049         * bindings/v8/V8DOMWrapper.cpp:
40050         (WebCore::V8DOMWrapper::instantiateV8Object):
40051         * bindings/v8/V8PerContextData.cpp:
40052         (WebCore::V8PerContextData::createWrapperFromCacheSlowCase):
40053         (WebCore::V8PerContextData::constructorForTypeSlowCase):
40054         * bindings/v8/V8PerContextData.h:
40055         (WebCore::V8PerContextData::createWrapperFromCache):
40056         (WebCore::V8PerContextData::constructorForType):
40057         (V8PerContextData):
40058         * bindings/v8/WorkerContextExecutionProxy.cpp:
40059         (WebCore::WorkerContextExecutionProxy::initializeIfNeeded):
40060         * bindings/v8/WrapperTypeInfo.h:
40061         (WebCore):
40062         (WebCore::WrapperTypeInfo::installPerContextPrototypeProperties):
40063
40064 2012-10-19  Florin Malita  <fmalita@chromium.org>
40065
40066         Incorrect pattern scaling
40067         https://bugs.webkit.org/show_bug.cgi?id=99870
40068
40069         Reviewed by Dirk Schulze.
40070
40071         The pattern space transform scale should reflect the tile_size(user space)
40072         to tile_image_size ratio, instead of tile_size to absolute_tile_size.
40073
40074         Test: svg/custom/pattern-scaling.svg
40075
40076         * rendering/svg/RenderSVGResourcePattern.cpp:
40077         (WebCore::RenderSVGResourcePattern::applyResource):
40078
40079 2012-10-19  Tony Chang  <tony@chromium.org>
40080
40081         RenderFlexibleBox::preferredMainAxisContentExtentForChild can return a negative value
40082         https://bugs.webkit.org/show_bug.cgi?id=97827
40083
40084         Reviewed by Ojan Vafai.
40085
40086         I'm pretty sure this isn't possible (logicalHeight and maxPreferredLogicalWidth should always include
40087         border and padding), so just add an assert.
40088
40089         No new tests, the assert is for code clarity.
40090
40091         * rendering/RenderFlexibleBox.cpp:
40092         (WebCore::RenderFlexibleBox::preferredMainAxisContentExtentForChild):
40093
40094 2012-10-19  Tony Chang  <tony@chromium.org>
40095
40096         Replace calls to updateLogicalHeight with calls to computeLogicalHeight
40097         https://bugs.webkit.org/show_bug.cgi?id=99883
40098
40099         Reviewed by Ojan Vafai.
40100
40101         In RenderBox and RenderBlock, switch to using computeLogicalHeight instead of
40102         saving the old height, calling update logical height, then restoring the old height.
40103
40104         No new tests, this is just a refactoring.
40105
40106         * rendering/RenderBlock.cpp:
40107         (WebCore::RenderBlock::computeBlockPreferredLogicalWidths): Simple replace.
40108         * rendering/RenderBox.cpp:
40109         (WebCore::RenderBox::computePercentageLogicalHeight): Adjust for content height.
40110         (WebCore::RenderBox::computeReplacedLogicalHeightUsing): Adjust for content height.
40111         (WebCore::RenderBox::availableLogicalHeightUsing): Adjust for content height.
40112
40113 2012-10-19  Pablo Flouret  <pablof@motorola.com>
40114
40115         Implement setRangeText() on text controls
40116         https://bugs.webkit.org/show_bug.cgi?id=91907
40117
40118         Reviewed by Kent Tamura.
40119
40120         setRangeText() replaces a range of text with some other text, and
40121         adjusts the existing selection according to its parameters.
40122
40123         Spec: http://www.whatwg.org/specs/web-apps/current-work/multipage/association-of-controls-and-forms.html#dom-textarea/input-setrangetext
40124
40125         Tests: fast/forms/color/color-setrangetext.html
40126                fast/forms/date/date-setrangetext.html
40127                fast/forms/datetime/datetime-setrangetext.html
40128                fast/forms/datetimelocal/datetimelocal-setrangetext.html
40129                fast/forms/file/file-setrangetext.html
40130                fast/forms/hidden/hidden-setrangetext.html
40131                fast/forms/image/image-setrangetext.html
40132                fast/forms/month/month-setrangetext.html
40133                fast/forms/number/number-setrangetext.html
40134                fast/forms/range/range-setrangetext.html
40135                fast/forms/search/search-setrangetext.html
40136                fast/forms/setrangetext.html
40137                fast/forms/textarea/textarea-setrangetext.html
40138                fast/forms/time/time-setrangetext.html
40139                fast/forms/week/week-setrangetext.html
40140
40141
40142         * bindings/scripts/CodeGeneratorGObject.pm:
40143         (SkipFunction):
40144             The GObject generator doesn't support function overloads, so skip the
40145             version of setRangeText() that has only one argument, its behavior
40146             can be emulated with the four-argument version.
40147
40148         * html/InputType.cpp:
40149         (WebCore::InputType::supportsSelectionAPI):
40150         (WebCore):
40151         * html/InputType.h:
40152         (InputType):
40153             Add supportsSelectionAPI() which indicates whether the various
40154             selection api functions like setRangeText, setSelectionRange, etc.
40155             are supported by this input element.
40156
40157         * html/BaseTextInputType.cpp:
40158         (WebCore::BaseTextInputType::supportsSelectionAPI):
40159         (WebCore):
40160         * html/BaseTextInputType.h:
40161         (BaseTextInputType):
40162             Text-based input types support the selection APIs.
40163
40164         * html/EmailInputType.cpp:
40165         (WebCore::EmailInputType::supportsSelectionAPI):
40166         (WebCore):
40167         * html/EmailInputType.h:
40168         (EmailInputType):
40169             Email inputs don't support the selection APIs.
40170
40171         * html/HTMLInputElement.cpp:
40172         (WebCore::HTMLInputElement::setRangeText):
40173         * html/HTMLInputElement.h:
40174         (HTMLInputElement):
40175             Add a setRangeText override which checks if it should apply to the
40176             input type, and calls the actual implementation on the parent class.
40177         * html/HTMLInputElement.idl:
40178         * html/HTMLTextAreaElement.idl:
40179
40180         * html/HTMLTextFormControlElement.cpp:
40181         (WebCore::HTMLTextFormControlElement::setRangeText):
40182         * html/HTMLTextFormControlElement.h:
40183         (HTMLTextFormControlElement):
40184             setRangeText implementation.
40185
40186
40187 2012-10-19  Luke Macpherson   <macpherson@chromium.org>
40188
40189         Remove HANDLE_INHERIT_AND_INITIAL_AND_PRIMITIVE macro in StyleResolver.
40190         https://bugs.webkit.org/show_bug.cgi?id=99782
40191
40192         Reviewed by Sam Weinig.
40193
40194         Removes last usage of HANDLE_INHERIT_AND_INITIAL_AND_PRIMITIVE macro, so that in future there will be no temptation
40195         to use it instead of adding a line to StyleBuilder.
40196         Also removes redundant checks for inital and inherit (HANDLE_INHERIT_AND_INTIAL already returns in those cases).
40197         I don't want to move this code into StyleBuilder until the FIXME that is already there is fixed.
40198
40199         Covered by many existing writing mode tests (eg. fast/html/details-writing-mode.html)
40200
40201         * css/StyleResolver.cpp:
40202         (WebCore):
40203         (WebCore::StyleResolver::applyProperty):
40204
40205 2012-10-19  Joshua Bell  <jsbell@chromium.org>
40206
40207         IndexedDB: Hidden indexing events are visible to script via bubbling/capture
40208         https://bugs.webkit.org/show_bug.cgi?id=96566
40209
40210         Reviewed by Tony Chang.
40211
40212         Stop propagation of error events fired at internal indexing requests as a result of
40213         aborting, as they should not be visible to scripts.
40214
40215         Test: storage/indexeddb/index-population.html
40216
40217         * Modules/indexeddb/IDBObjectStore.cpp:
40218         (WebCore::IDBObjectStore::createIndex):
40219         * Modules/indexeddb/IDBRequest.cpp:
40220         (WebCore::IDBRequest::IDBRequest):
40221         (WebCore::IDBRequest::dispatchEvent):
40222         * Modules/indexeddb/IDBRequest.h:
40223         (WebCore::IDBRequest::preventPropagation):
40224         (IDBRequest):
40225
40226 2012-10-19  Simon Fraser  <simon.fraser@apple.com>
40227
40228         Remove .get() calls in assertions as suggested by Darin Adler.
40229         
40230         * platform/graphics/ca/mac/PlatformCALayerMac.mm:
40231         (PlatformCALayer::appendSublayer):
40232         (PlatformCALayer::insertSublayer):
40233         (PlatformCALayer::replaceSublayer):
40234
40235 2012-10-19  Simon Fraser  <simon.fraser@apple.com>
40236
40237         Fix a hang when combining tile cache layers with preserve-3d or reflections
40238         https://bugs.webkit.org/show_bug.cgi?id=99890
40239         <rdar://problem/12539560>
40240
40241         Reviewed by Dean Jackson.
40242
40243         The new tile cache code added an updateSublayers() call when switching to/from
40244         tiled layers. This confused later sublayer rebuilding, causing us to attempt to
40245         add a layer as a child of itself, causing a hang in CA.
40246         
40247         Fix by removing all the explicit calls to updateFoo when updating the structural
40248         layer and switching to/from tiled layers. Instead, we set dirty flags, and rely
40249         on the fact that these flag-dirtying functions get called before the later functions
40250         that process those dirty flags. This is assured by some reordering of the update
40251         function calls.
40252         
40253         A final wrinkle is that ensureStructuralLayer() can change the layer that our
40254         parent GraphicsLayer put in its sublayer list. Rather than diddle with that sublayer
40255         list directly like we used to, just call noteSublayersChanged() on the parent, and have
40256         commitLayerChangesAfterSublayers() check the ChildrenChanged and do a second update
40257         of sublayers if necessary (we clear the flag in commitLayerChangesBeforeSublayers(), so
40258         only do this work if a sublayer requested it).
40259         
40260         Tests: compositing/tiling/preserve3d-tiled.html
40261                compositing/tiling/reflected-tiled.html
40262
40263         * platform/graphics/ca/GraphicsLayerCA.cpp:
40264         (WebCore::GraphicsLayerCA::commitLayerChangesBeforeSublayers):
40265         (WebCore::GraphicsLayerCA::commitLayerChangesAfterSublayers):
40266         (WebCore::GraphicsLayerCA::ensureStructuralLayer):
40267         (WebCore::GraphicsLayerCA::swapFromOrToTiledLayer):
40268         * platform/graphics/ca/mac/PlatformCALayerMac.mm:
40269         (PlatformCALayer::appendSublayer): Add assertion about adding a layer to itself.
40270         (PlatformCALayer::insertSublayer): Ditto.
40271         (PlatformCALayer::replaceSublayer): Ditto.
40272
40273 2012-10-19  Chris Fleizach  <cfleizach@apple.com>
40274
40275         AX: aria-hidden=false does not work as expected
40276         https://bugs.webkit.org/show_bug.cgi?id=98787
40277
40278         Reviewed by Beth Dakin.
40279
40280         ARIA requires that aria-hidden=false override an element's native visibility and include that
40281         node in the AX hierarchy.
40282
40283         To accomplish this we have to allow invisible items to be included, as well as items that
40284         have no renderers associated with them.
40285
40286         Test: accessibility/aria-hidden-negates-no-visibility.html
40287
40288         * accessibility/AXObjectCache.cpp:
40289         (WebCore::AXObjectCache::getOrCreate):
40290         * accessibility/AccessibilityARIAGrid.cpp:
40291         (WebCore::AccessibilityARIAGrid::addTableCellChild):
40292         (WebCore::AccessibilityARIAGrid::addChildren):
40293         * accessibility/AccessibilityARIAGrid.h:
40294         (AccessibilityARIAGrid):
40295         * accessibility/AccessibilityNodeObject.cpp:
40296         (WebCore):
40297        (WebCore::AccessibilityNodeObject::boundingBoxRect):
40298         (WebCore::AccessibilityNodeObject::insertChild):
40299         (WebCore::AccessibilityNodeObject::addChild):
40300         (WebCore::AccessibilityNodeObject::addChildren):
40301         (WebCore::AccessibilityNodeObject::textUnderElement):
40302         * accessibility/AccessibilityNodeObject.h:
40303         (AccessibilityNodeObject):
40304         * accessibility/AccessibilityObject.cpp:
40305         (WebCore::AccessibilityObject::textIteratorBehaviorForTextRange):
40306         (WebCore):
40307         * accessibility/AccessibilityObject.h:
40308         (AccessibilityObject):
40309         (WebCore::AccessibilityObject::addChild):
40310         (WebCore::AccessibilityObject::insertChild):
40311         * accessibility/AccessibilityRenderObject.cpp:
40312         (WebCore):
40313         (WebCore::AccessibilityRenderObject::accessibilityIsIgnoredBase):
40314         (WebCore::AccessibilityRenderObject::addHiddenChildren):
40315         (WebCore::AccessibilityRenderObject::addChildren):
40316         * accessibility/AccessibilityRenderObject.h:
40317         (AccessibilityRenderObject):
40318
40319 2012-10-19  Michael Saboff  <msaboff@apple.com>
40320
40321         Add String version of visitedLinkHash() to properly handle 8-bit URL Strings.
40322         https://bugs.webkit.org/show_bug.cgi?id=99735
40323
40324         Reviewed by Filip Pizlo.
40325
40326         Added String version of visitedLinkHash().  Made speculative addition of visitedLinkHash()
40327         to chromium platform version of LinkHashChromium.cpp.
40328         Changed calls in the form of visitedLinkHash(string.characters(), string.length()) to use the
40329         new form.
40330
40331         No changes to functionality, so no new tests.
40332
40333         * WebCore.exp.in:
40334         * loader/HistoryController.cpp:
40335         (WebCore::addVisitedLink):
40336         * page/PageGroup.cpp:
40337         (WebCore::PageGroup::addVisitedLink):
40338         * platform/LinkHash.cpp:
40339         (WebCore::visitedLinkHashInline):
40340         (WebCore::visitedLinkHash):
40341         * platform/LinkHash.h:
40342         * platform/chromium/LinkHashChromium.cpp:
40343         (WebCore::visitedLinkHash):
40344
40345 2012-10-19  Michael Saboff  <msaboff@apple.com>
40346
40347         String(CFStringRef) should try to converting to an 8 bit string before converting to  16 bit string
40348         https://bugs.webkit.org/show_bug.cgi?id=99794
40349
40350         Reviewed by Filip Pizlo.
40351
40352         Try getting a Latin1 byte string before getting a UTF16 (UChar*) string.
40353
40354         No new test, added 8 bit path.
40355
40356         * platform/text/cf/StringCF.cpp:
40357         (WTF::String::String):
40358
40359 2012-10-19  Dima Gorbik  <dgorbik@apple.com>
40360
40361         Page should be removed from the cache right after restore was called.
40362         https://bugs.webkit.org/show_bug.cgi?id=99737
40363
40364         Reviewed by Brady Eidson.
40365
40366         The pageCache was inconsistent after the restoration for a period of time because the cachedFrame is being nulled,
40367         but the page is still in the Cache. Now the page is being removed from the cache right after the restoration.
40368         This issue was spotted in a custom built application using WebKit and unfortunately there is no way to test this
40369         behavior in LayoutTests. All the current tests that exercise the page cache do pass.
40370
40371         No new tests.
40372
40373         * loader/FrameLoader.cpp:
40374         (WebCore::FrameLoader::commitProvisionalLoad):
40375
40376 2012-10-19  Max Vujovic  <mvujovic@adobe.com>
40377
40378         [WebGL] getUniformLocation fails for uniform array name without array brackets
40379         https://bugs.webkit.org/show_bug.cgi?id=99854
40380
40381         Reviewed by Dean Jackson.
40382
40383         Before this patch, gl.getUniformLocation(program, "array[0]") would return the array
40384         location, but gl.getUniformLocation(program, "array") would not. Now, the latter also
40385         returns the array location.
40386
40387         In the process of adding a check to the following Khronos WebGL conformance test:
40388         conformance/glsl/misc/glsl-long-variable-names.html
40389
40390         * platform/graphics/ANGLEWebKitBridge.cpp:
40391         (WebCore::getSymbolInfo):
40392             Before, we used to check that the symbol size was greater than one to determine that the
40393             symbol was an array. However, this doesn't identify arrays of length one. Now, we check
40394             if the symbol name ends in "[0]", since ANGLE appends this suffix to array symbol
40395             names.
40396             If the symbol is an array, we strip off the "[0]" and add a symbol with just the base
40397             name. We set the isArray flag on the symbol, so we don't lose the information that it is
40398             an array.
40399             Then, we create symbols for each array element like before. However, instead of
40400             replacing the "0" in array[0]" with each index, we take the base name "array" and
40401             append array brackets containing each index (e.g. "array" + "[7]").
40402         * platform/graphics/ANGLEWebKitBridge.h:
40403         (ANGLEShaderSymbol):
40404             Add isArray boolean to ANGLEShaderSymbol. Since array symbols don't end in "[0]"
40405             anymore, this is the only way to identify arrays.
40406
40407 2012-10-19  Csaba Osztrogonác  <ossy@webkit.org>
40408
40409         Unreviewed, rolling out r131915.
40410         http://trac.webkit.org/changeset/131915
40411         https://bugs.webkit.org/show_bug.cgi?id=98787
40412
40413         It broke the build on platforms with \!HAVE(ACCESSIBILITY)
40414
40415         * accessibility/AXObjectCache.cpp:
40416         (WebCore::AXObjectCache::getOrCreate):
40417         (WebCore::AXObjectCache::nodeIsTextControl):
40418         * accessibility/AXObjectCache.h:
40419         (WebCore):
40420         * accessibility/AccessibilityARIAGrid.cpp:
40421         (WebCore::AccessibilityARIAGrid::addChild):
40422         (WebCore::AccessibilityARIAGrid::addChildren):
40423         * accessibility/AccessibilityARIAGrid.h:
40424         (AccessibilityARIAGrid):
40425         * accessibility/AccessibilityNodeObject.cpp:
40426         (WebCore::AccessibilityNodeObject::elementRect):
40427         (WebCore::AccessibilityNodeObject::addChildren):
40428         (WebCore::AccessibilityNodeObject::textUnderElement):
40429         * accessibility/AccessibilityNodeObject.h:
40430         (AccessibilityNodeObject):
40431         * accessibility/AccessibilityObject.cpp:
40432         * accessibility/AccessibilityObject.h:
40433         (AccessibilityObject):
40434         * accessibility/AccessibilityRenderObject.cpp:
40435         (WebCore::textIteratorBehaviorForTextRange):
40436         (WebCore):
40437         (WebCore::AccessibilityRenderObject::accessibilityIsIgnoredBase):
40438         (WebCore::AccessibilityRenderObject::addChildren):
40439         * accessibility/AccessibilityRenderObject.h:
40440         (AccessibilityRenderObject):
40441
40442 2012-10-19  Tony Chang  <tony@chromium.org>
40443
40444         Unreviewed, rolling out r131936.
40445         http://trac.webkit.org/changeset/131936
40446         https://bugs.webkit.org/show_bug.cgi?id=99717
40447
40448         Broke the clang build
40449
40450         * WebCore.exp.in:
40451         * inspector/InspectorFrontendClient.h:
40452         (InspectorFrontendClient):
40453         * inspector/InspectorFrontendClientLocal.cpp:
40454         (WebCore::InspectorFrontendClientLocal::requestAttachWindow):
40455         (WebCore):
40456         (WebCore::InspectorFrontendClientLocal::requestDetachWindow):
40457         (WebCore::InspectorFrontendClientLocal::setAttachedWindow):
40458         * inspector/InspectorFrontendClientLocal.h:
40459         (InspectorFrontendClientLocal):
40460         (WebCore::InspectorFrontendClientLocal::requestSetDockSide):
40461         * inspector/InspectorFrontendHost.cpp:
40462         (WebCore::InspectorFrontendHost::requestAttachWindow):
40463         (WebCore):
40464         (WebCore::InspectorFrontendHost::requestDetachWindow):
40465         (WebCore::InspectorFrontendHost::requestSetDockSide):
40466         * inspector/InspectorFrontendHost.h:
40467         (InspectorFrontendHost):
40468         * inspector/InspectorFrontendHost.idl:
40469         * inspector/front-end/DockController.js:
40470         (WebInspector.DockController):
40471         (WebInspector.DockController.prototype.setDocked):
40472         (WebInspector.DockController.prototype._innerSetDocked.set if):
40473         (WebInspector.DockController.prototype._innerSetDocked):
40474         (WebInspector.DockController.prototype._updateUI.get states):
40475         (WebInspector.DockController.prototype._updateUI):
40476         (WebInspector.DockController.prototype._toggleDockState):
40477         * inspector/front-end/InspectorFrontendAPI.js:
40478         (InspectorFrontendAPI.setAttachedWindow):
40479         (InspectorFrontendAPI.setDockSide):
40480         * inspector/front-end/InspectorFrontendHostStub.js:
40481         (.WebInspector.InspectorFrontendHostStub.prototype.requestAttachWindow):
40482         (.WebInspector.InspectorFrontendHostStub.prototype.requestDetachWindow):
40483         (.WebInspector.InspectorFrontendHostStub.prototype.requestSetDockSide):
40484         * inspector/front-end/externs.js:
40485         (InspectorFrontendHostAPI.prototype.requestAttachWindow):
40486         (InspectorFrontendHostAPI.prototype.requestDetachWindow):
40487
40488 2012-10-09  Martin Robinson  <mrobinson@igalia.com>
40489
40490         REGRESSION (r130699): 5 various fast/ tests started failing
40491         https://bugs.webkit.org/show_bug.cgi?id=98729
40492
40493         Reviewed by Xan Lopez.
40494
40495         Do not try to remove the URL fragment for data URLs. This will likely
40496         just corrupt the URL.
40497
40498         No new tests. This unskips some previously failing tests.
40499
40500         * platform/network/soup/ResourceRequestSoup.cpp:
40501         (WebCore::ResourceRequest::urlStringForSoup): Do nothing for data URLs.
40502
40503 2012-10-19  Simon Fraser  <simon.fraser@apple.com>
40504
40505         Use tile caches in place of CATiledLayer
40506         https://bugs.webkit.org/show_bug.cgi?id=99806
40507         <rdar://problem/6474145>
40508
40509         Reviewed by Tim Horton.
40510
40511         Have GraphicsLayerCA use TileCaches instead of CATiledLayer now for
40512         layers that exceed the 2000px size threshold.
40513
40514         * platform/graphics/TiledBacking.h:
40515         (TiledBacking): Have normal getter and setter for the visible rect.
40516         * platform/graphics/ca/GraphicsLayerCA.cpp:
40517         (WebCore::GraphicsLayerCA::flushCompositingStateForThisLayerOnly): We need
40518         to pass in an old visibleRect to commitLayerChangesBeforeSublayers(). Just use
40519         our current visible rect, which result in no tile area work.
40520         (WebCore::GraphicsLayerCA::computeVisibleRect): Make this const and have it
40521         return the rect, for clarity.
40522         (WebCore::GraphicsLayerCA::recursiveCommitChanges): Keep track of the old
40523         visible rect, and use the change flags mechanism to ensure that we recompute
40524         tile areas later.
40525         When calling commitLayerChangesBeforeSublayers() on the mask layer, just pass
40526         its own visible rect as the old visible rect.
40527         (WebCore::GraphicsLayerCA::commitLayerChangesBeforeSublayers): Pass in the
40528         oldVisibleRect so that updateVisibleRect() can use this to see how the
40529         visibleRect is changing.
40530         (WebCore::GraphicsLayerCA::adjustTiledLayerVisibleRect): This member function
40531         compares the old and new visible rects, and extends the tile coverage area
40532         in directions where more content is being exposed. It takes care to avoid
40533         "jitter" in the visible rect deltas causing edge tiles to get created then
40534         destroyed by keeping any extra padding that already exists in a direction
40535         where more content is being exposed.
40536         (WebCore::GraphicsLayerCA::updateVisibleRect): Call adjustTiledLayerVisibleRect()
40537         and use the result to update the TiledBacking's visibleRect.
40538         (WebCore::GraphicsLayerCA::swapFromOrToTiledLayer): Create layers of type
40539         LayerTypeTileCacheLayer instead of LayerTypeWebTiledLayer. Because tile
40540         cache layers involve adding an extra layer to the hierarchy (the tile container),
40541         we call updateSublayerList() when changing layer type.
40542         * platform/graphics/ca/GraphicsLayerCA.h: New m_sizeAtLastVisibleRectUpdate member
40543         that is used to prevent the adjustTiledLayerVisibleRect() logic being confused by
40544         size changes.
40545         (WebCore::GraphicsLayerCA::visibleRect):
40546         * platform/graphics/ca/mac/TileCache.h: Have normal getter and setter for the visible rect.
40547         * platform/graphics/ca/mac/TileCache.mm:
40548         (WebCore::TileCache::setVisibleRect): Renamed to setVisibleRect().
40549         * rendering/RenderLayerCompositor.cpp:
40550         (WebCore::RenderLayerCompositor::flushPendingLayerChanges): Avoid doing work
40551         for pages in the page cache, for which the root layer is unattached.
40552         (WebCore::RenderLayerCompositor::frameViewDidScroll): visibleRectChanged() was renamed
40553         to setVisibleRect().
40554
40555 2012-10-19  Beth Dakin  <bdakin@apple.com>
40556
40557         https://bugs.webkit.org/show_bug.cgi?id=99768
40558         We should limit the tile cache coverage when a page can't take 
40559         advantage of fast tile scrolling anyway
40560
40561         Reviewed by Simon Fraser.
40562
40563         When sites can't use fast-scrolling, there is no need to inflate the 
40564         tile cache. In fact, we get a performance boost by keeping it small 
40565         on painting-intensive sites. 
40566
40567         Instead of just looking a whether or not the FrameView 
40568         canHaveScrollbar(), consult 
40569         shouldUpdateScrollLayerPositionOnMainThread().
40570         * page/FrameView.cpp:
40571         (WebCore::FrameView::performPostLayoutTasks):
40572         * rendering/RenderLayerBacking.cpp:
40573         (WebCore::RenderLayerBacking::RenderLayerBacking):
40574         
40575         Expose shouldUpdateScrollLayerPositionOnMainThread().
40576         * page/scrolling/ScrollingCoordinator.cpp:
40577         (WebCore::ScrollingCoordinator::hasNonLayerFixedObjects):
40578         (WebCore::ScrollingCoordinator::shouldUpdateScrollLayerPositionOnMainThread):
40579         (WebCore):
40580         (WebCore::ScrollingCoordinator::updateShouldUpdateScrollLayerPositionOnMainThread):
40581         * page/scrolling/ScrollingCoordinator.h:
40582         (ScrollingCoordinator):
40583
40584         Bug fix. Should be bitwise and.
40585         * platform/graphics/ca/mac/TileCache.mm:
40586         (WebCore::TileCache::tileCoverageRect):
40587
40588 2012-10-19  Mark Lam  <mark.lam@apple.com>
40589
40590         Added WTF::StackStats mechanism.
40591         https://bugs.webkit.org/show_bug.cgi?id=99805.
40592
40593         Reviewed by Geoffrey Garen.
40594
40595         Added StackStats probes in layout methods.
40596
40597         * dom/Document.cpp:
40598         (WebCore::Document::updateLayout):
40599         * rendering/RenderBlock.cpp:
40600         (WebCore::RenderBlock::layout):
40601         * rendering/RenderBox.cpp:
40602         (WebCore::RenderBox::layout):
40603         * rendering/RenderDialog.cpp:
40604         (WebCore::RenderDialog::layout):
40605         * rendering/RenderEmbeddedObject.cpp:
40606         (WebCore::RenderEmbeddedObject::layout):
40607         * rendering/RenderFlowThread.cpp:
40608         (WebCore::RenderFlowThread::layout):
40609         * rendering/RenderFrameSet.cpp:
40610         (WebCore::RenderFrameSet::layout):
40611         * rendering/RenderIFrame.cpp:
40612         (WebCore::RenderIFrame::layout):
40613         * rendering/RenderImage.cpp:
40614         (WebCore::RenderImage::layout):
40615         * rendering/RenderListBox.cpp:
40616         (WebCore::RenderListBox::layout):
40617         * rendering/RenderListItem.cpp:
40618         (WebCore::RenderListItem::layout):
40619         * rendering/RenderListMarker.cpp:
40620         (WebCore::RenderListMarker::layout):
40621         * rendering/RenderMedia.cpp:
40622         (WebCore::RenderMedia::layout):
40623         * rendering/RenderObject.cpp:
40624         (WebCore::RenderObject::layout):
40625         * rendering/RenderObject.h:
40626         * rendering/RenderRegion.cpp:
40627         (WebCore::RenderRegion::layout):
40628         * rendering/RenderReplaced.cpp:
40629         (WebCore::RenderReplaced::layout):
40630         * rendering/RenderReplica.cpp:
40631         (WebCore::RenderReplica::layout):
40632         * rendering/RenderRubyRun.cpp:
40633         (WebCore::RenderRubyRun::layoutSpecialExcludedChild):
40634         * rendering/RenderScrollbarPart.cpp:
40635         (WebCore::RenderScrollbarPart::layout):
40636         * rendering/RenderSlider.cpp:
40637         (WebCore::RenderSlider::layout):
40638         * rendering/RenderTable.cpp:
40639         (WebCore::RenderTable::layout):
40640         * rendering/RenderTableCell.cpp:
40641         (WebCore::RenderTableCell::layout):
40642         * rendering/RenderTableRow.cpp:
40643         (WebCore::RenderTableRow::layout):
40644         * rendering/RenderTableSection.cpp:
40645         (WebCore::RenderTableSection::layout):
40646         * rendering/RenderTextControlSingleLine.cpp:
40647         (WebCore::RenderTextControlSingleLine::layout):
40648         * rendering/RenderTextTrackCue.cpp:
40649         (WebCore::RenderTextTrackCue::layout):
40650         * rendering/RenderVideo.cpp:
40651         (WebCore::RenderVideo::layout):
40652         * rendering/RenderView.cpp:
40653         (WebCore::RenderView::layout):
40654         * rendering/RenderWidget.cpp:
40655         (WebCore::RenderWidget::layout):
40656         * rendering/svg/RenderSVGContainer.cpp:
40657         (WebCore::RenderSVGContainer::layout):
40658         * rendering/svg/RenderSVGForeignObject.cpp:
40659         (WebCore::RenderSVGForeignObject::layout):
40660         * rendering/svg/RenderSVGGradientStop.cpp:
40661         (WebCore::RenderSVGGradientStop::layout):
40662         * rendering/svg/RenderSVGHiddenContainer.cpp:
40663         (WebCore::RenderSVGHiddenContainer::layout):
40664         * rendering/svg/RenderSVGImage.cpp:
40665         (WebCore::RenderSVGImage::layout):
40666         * rendering/svg/RenderSVGResourceContainer.cpp:
40667         (WebCore::RenderSVGResourceContainer::layout):
40668         * rendering/svg/RenderSVGResourceMarker.cpp:
40669         (WebCore::RenderSVGResourceMarker::layout):
40670         * rendering/svg/RenderSVGRoot.cpp:
40671         (WebCore::RenderSVGRoot::layout):
40672         * rendering/svg/RenderSVGShape.cpp:
40673         (WebCore::RenderSVGShape::layout):
40674         * rendering/svg/RenderSVGText.cpp:
40675         (WebCore::RenderSVGText::layout):
40676
40677 2012-10-19  Pavel Feldman  <pfeldman@chromium.org>
40678
40679         Web Inspector: merge "docked" state into the "dock side" enum.
40680         https://bugs.webkit.org/show_bug.cgi?id=99717
40681
40682         Reviewed by Vsevolod Vlasov.
40683
40684         Otherwise, it is hard to manage these inter-dependent flags.
40685
40686         * inspector/InspectorFrontendClient.h:
40687         (InspectorFrontendClient):
40688         * inspector/InspectorFrontendClientLocal.cpp:
40689         (WebCore::InspectorFrontendClientLocal::requestSetDockSide):
40690         (WebCore::InspectorFrontendClientLocal::setAttachedWindow):
40691         * inspector/InspectorFrontendClientLocal.h:
40692         (InspectorFrontendClientLocal):
40693         * inspector/InspectorFrontendHost.cpp:
40694         (WebCore::InspectorFrontendHost::requestSetDockSide):
40695         * inspector/InspectorFrontendHost.h:
40696         (InspectorFrontendHost):
40697         * inspector/InspectorFrontendHost.idl:
40698         * inspector/front-end/DockController.js:
40699         (WebInspector.DockController):
40700         (WebInspector.DockController.prototype._updateUI.get sides):
40701         (WebInspector.DockController.prototype._updateUI):
40702         (WebInspector.DockController.prototype._toggleDockState):
40703         * inspector/front-end/InspectorFrontendAPI.js:
40704         (InspectorFrontendAPI.setAttachedWindow):
40705         * inspector/front-end/InspectorFrontendHostStub.js:
40706         (.WebInspector.InspectorFrontendHostStub.prototype.requestSetDockSide):
40707
40708 2012-10-19  Joshua Bell  <jsbell@chromium.org>
40709
40710         [V8] IndexedDB: Crash when lazy-indexing Date keys
40711         https://bugs.webkit.org/show_bug.cgi?id=99860
40712
40713         Reviewed by Adam Barth.
40714
40715         Missing a scope/context needed when digging values out of Date objects
40716         in an indexing callback.
40717
40718         Test: storage/indexeddb/lazy-index-types.html
40719
40720         * bindings/v8/IDBBindingUtilities.cpp:
40721         (WebCore::createIDBKeyFromScriptValueAndKeyPath):
40722
40723 2012-10-18  Dean Jackson  <dino@apple.com>
40724
40725         Shader translator needs option to clamp uniform array accesses in vertex shaders
40726         https://bugs.webkit.org/show_bug.cgi?id=98977
40727         https://code.google.com/p/angleproject/issues/detail?id=49
40728
40729         Reviewed by Alok Priyadarshi and Ken Russell.
40730
40731         WebGL forbids out-of-bounds array access in shaders. Rewrite any shaders to
40732         ensure that non-direct array indexing is clamped to the bounds of the array.
40733
40734         Test: fast/canvas/webgl/array-bounds-clamping.html
40735
40736         * platform/graphics/ANGLEWebKitBridge.cpp:
40737         (WebCore::ANGLEWebKitBridge::compileShaderSource): Pass new compiler option SH_CLAMP_INDIRECT_ARRAY_BOUNDS
40738
40739 2012-10-19  Justin Novosad  <junov@chromium.org>
40740
40741         [Chromium] Reduce memory footprint of canvas pattern object with deferred rendering
40742         https://bugs.webkit.org/show_bug.cgi?id=99856
40743
40744         Reviewed by Stephen White.
40745
40746         Marking internal bitmap copy as immutable to prevent it from being
40747         unnecessarily duplicated in skia by SkBitmapHeap.
40748
40749         No new tests: code path already well covered by existing layout tests 
40750         fast/canvas/canvas-pattern-*
40751
40752         * platform/graphics/skia/PatternSkia.cpp:
40753         (WebCore::Pattern::platformPattern):
40754
40755 2012-10-19  Antti Koivisto  <antti@apple.com>
40756
40757         Maintain a list of active CSS stylesheets
40758         https://bugs.webkit.org/show_bug.cgi?id=99843
40759
40760         Reviewed by Andreas Kling.
40761
40762         Currently we maintain a per-document list of stylesheets that matches what is returned by the StyleSheetList DOM API. 
40763         This list contains both CSS and XSLT stylesheets which internally have basically nothing in common. Maintaining 
40764         a list of active CSS stylesheets separately simplifies code in number of places.
40765
40766         * css/StyleResolver.cpp:
40767         (WebCore::StyleResolver::StyleResolver):
40768         (WebCore::StyleResolver::addStylesheetsFromSeamlessParents):
40769         (WebCore::StyleResolver::appendAuthorStyleSheets):
40770         (WebCore::collectCSSOMWrappers):
40771         * css/StyleResolver.h:
40772         (StyleResolver):
40773         * css/StyleSheetList.cpp:
40774         (WebCore::StyleSheetList::styleSheets):
40775         (WebCore::StyleSheetList::detachFromDocument):
40776         * dom/Document.cpp:
40777         (WebCore::Document::setCompatibilityMode):
40778         * dom/DocumentStyleSheetCollection.cpp:
40779         (WebCore::DocumentStyleSheetCollection::analyzeStyleSheetChange):
40780         (WebCore::styleSheetsUseRemUnits):
40781         (WebCore::filterEnabledCSSStyleSheets):
40782         (WebCore):
40783         (WebCore::DocumentStyleSheetCollection::updateActiveStyleSheets):
40784         (WebCore::DocumentStyleSheetCollection::reportMemoryUsage):
40785         * dom/DocumentStyleSheetCollection.h:
40786         (WebCore::DocumentStyleSheetCollection::styleSheetsForStyleSheetList):
40787         (DocumentStyleSheetCollection):
40788         (WebCore::DocumentStyleSheetCollection::activeAuthorStyleSheets):
40789
40790 2012-09-08  Alpha Lam  <hclam@chromium.org>
40791
40792         [chromium] Implement deferred image decoding
40793         https://bugs.webkit.org/show_bug.cgi?id=94240
40794
40795         Reviewed by Stephen White.
40796
40797         Objectives:
40798
40799         To record image decoding operations during painting and to defer
40800         decoding operations until rasterization.
40801
40802         Rationale:
40803
40804         This is a key feature that enables impl-side painting which requires
40805         fast recording of drawing operations. The existing decode-on-draw
40806         restricts that recording has to block on expensive decoding operations.
40807         This change allows recording of image decoding operations during paint
40808         time.
40809
40810         Design:
40811
40812         Image decoding happens when a BitmapImage is drawn into a
40813         GraphicsContext. When per-tile painting is enabled GraphicsContext
40814         is backed by SkCanvas in recording mode. This SkCanvas records drawing
40815         and image decoding operations to minimize recording time.
40816
40817         An image decoding operation is recorded as a SkPixelRef object
40818         implemented by LazyDecodingPixelRef. This object references raw encoded
40819         data, regions to be decoded and scaling information.
40820
40821         When used in conjunction with per-tile painting this feature defers
40822         image decoding until the SkCanvas referencing the image is rasterized.
40823
40824         Both recording and rasterization happen on the main thread.
40825
40826         Performance Impact:
40827
40828         This feature is enabled by WebKit::setDeferredImageDecodingEnabled()
40829         and does not have an impact when disabled.
40830
40831         This feature is disabled by default.
40832
40833         Upcoming Changes:
40834
40835         1. Implement a full-featured image cache in ImageDecodingStore.
40836         2. Allow rasterization and decoding on impl thread.
40837
40838         Classes Involved:
40839
40840         BitmapImage
40841
40842         BitmapImage is the entry point for deferred image decoding. When
40843         drawing a BitmapImage into a GraphicsContext it makes a request to
40844         create a NativeImageSkia. We substitute the content in NativeImageSkia
40845         such that it is lazily decoded.
40846
40847         DeferredImageDecoder
40848
40849         This is the platform implementation of a image decoder for Chromium.
40850         This is a bridge layer that either delegates calls to the actual
40851         ImageDecoder or create a lazily-decoded SkBitmap and delegates calls
40852         to ImageDecodingStore.
40853
40854         ImageDecodingStore
40855
40856         This object manages all encoded images. It keeps track of encoded
40857         data and the corresponding ImageDecoder for doing actual decoding. It
40858         is also responsible for generating lazily decoded SkBitmaps. This
40859         SkBitmap contains a LazyDecodingPixelRef object which references to an
40860         image entry in ImageDecodingStore.
40861
40862         ScaledImageFragment
40863
40864         A container for a scaled image fragment. In addition to bitmap pixels
40865         it contains information about the ID of the image, scale and clipping.
40866
40867         ImageFrameGenerator
40868
40869         This object is responsible for generating decoded pixels. It is also
40870         a container for encoded image data and corresponding image decoder.
40871
40872         LazyDecodingPixelRef
40873
40874         This object is embedded in a SkBitmap to enable lazy decoding. When
40875         SkBitmap needs to access pixels LazyDecodingPixelRef is locked. It
40876         contains information to locate an image and scaling info, these
40877         information is submitted to ImageDecodingStore to access actual pixels.
40878
40879         Layout tests. There are about 80 tests in this virtual test suite
40880         running this feature in this directory:
40881
40882         platform/chromium/virtual/deferred/fast/images
40883
40884         Unit tests. Added DeferredImageDecoderTest to verify deferred
40885         image decoding behavior.
40886
40887         * WebCore.gypi:
40888         * platform/graphics/ImageSource.cpp:
40889         (WebCore::ImageSource::setData):
40890         * platform/graphics/ImageSource.h:
40891         (WebCore):
40892         (ImageSource):
40893         * platform/graphics/chromium/DeferredImageDecoder.cpp: Added.
40894         (WebCore):
40895         (WebCore::DeferredImageDecoder::DeferredImageDecoder):
40896         (WebCore::DeferredImageDecoder::~DeferredImageDecoder):
40897         (WebCore::DeferredImageDecoder::create):
40898         (WebCore::DeferredImageDecoder::createForTesting):
40899         (WebCore::DeferredImageDecoder::filenameExtension):
40900         (WebCore::DeferredImageDecoder::frameBufferAtIndex):
40901         (WebCore::DeferredImageDecoder::setData):
40902         (WebCore::DeferredImageDecoder::isSizeAvailable):
40903         (WebCore::DeferredImageDecoder::size):
40904         (WebCore::DeferredImageDecoder::frameSizeAtIndex):
40905         (WebCore::DeferredImageDecoder::frameCount):
40906         (WebCore::DeferredImageDecoder::repetitionCount):
40907         (WebCore::DeferredImageDecoder::clearFrameBufferCache):
40908         (WebCore::DeferredImageDecoder::frameHasAlphaAtIndex):
40909         (WebCore::DeferredImageDecoder::frameBytesAtIndex):
40910         * platform/graphics/chromium/DeferredImageDecoder.h: Added.
40911         (WebCore):
40912         (DeferredImageDecoder):
40913         * platform/graphics/chromium/ImageDecodingStore.cpp: Added.
40914         (WebCore::ImageDecodingStore::ImageDecodingStore):
40915         (WebCore):
40916         (WebCore::ImageDecodingStore::~ImageDecodingStore):
40917         (WebCore::ImageDecodingStore::instanceOnMainThread):
40918         (WebCore::ImageDecodingStore::initializeOnMainThread):
40919         (WebCore::ImageDecodingStore::shutdown):
40920         (WebCore::ImageDecodingStore::isLazyDecoded):
40921         (WebCore::ImageDecodingStore::createLazyDecodedSkBitmap):
40922         (WebCore::ImageDecodingStore::resizeLazyDecodedSkBitmap):
40923         (WebCore::ImageDecodingStore::setData):
40924         (WebCore::ImageDecodingStore::lockPixels):
40925         (WebCore::ImageDecodingStore::unlockPixels):
40926         (WebCore::ImageDecodingStore::frameGeneratorBeingDestroyed):
40927         (WebCore::ImageDecodingStore::calledOnValidThread):
40928         (WebCore::ImageDecodingStore::lookupFrameCache):
40929         (WebCore::ImageDecodingStore::deleteFrameCache):
40930         * platform/graphics/chromium/ImageDecodingStore.h: Added.
40931         (WebCore):
40932         (ImageDecodingStore):
40933         (WebCore::ImageDecodingStore::create):
40934         * platform/graphics/chromium/ScaledImageFragment.cpp: Added.
40935         (WebCore):
40936         (WebCore::ScaledImageFragment::~ScaledImageFragment):
40937         (WebCore::ScaledImageFragment::ScaledImageFragment):
40938         (WebCore::ScaledImageFragment::isEqual):
40939         * platform/graphics/chromium/ScaledImageFragment.h: Added.
40940         (WebCore):
40941         (ScaledImageFragment):
40942         (WebCore::ScaledImageFragment::create):
40943         (WebCore::ScaledImageFragment::bitmap):
40944         (WebCore::ScaledImageFragment::isComplete):
40945         * platform/graphics/chromium/ImageFrameGenerator.cpp: Added.
40946         (WebCore):
40947         (WebCore::ImageFrameGenerator::ImageFrameGenerator):
40948         (WebCore::ImageFrameGenerator::~ImageFrameGenerator):
40949         (WebCore::ImageFrameGenerator::decoder):
40950         (WebCore::ImageFrameGenerator::setData):
40951         * platform/graphics/chromium/ImageFrameGenerator.h: Added.
40952         (WebCore):
40953         (ImageFrameGenerator):
40954         (WebCore::ImageFrameGenerator::create):
40955         (WebCore::ImageFrameGenerator::size):
40956         (WebCore::ImageFrameGenerator::imageId):
40957         * platform/graphics/chromium/LazyDecodingPixelRef.cpp: Added.
40958         (WebCore):
40959         (WebCore::LazyDecodingPixelRef::LazyDecodingPixelRef):
40960         (WebCore::LazyDecodingPixelRef::~LazyDecodingPixelRef):
40961         (WebCore::LazyDecodingPixelRef::isScaled):
40962         (WebCore::LazyDecodingPixelRef::isClipped):
40963         (WebCore::LazyDecodingPixelRef::onLockPixels):
40964         (WebCore::LazyDecodingPixelRef::onUnlockPixels):
40965         (WebCore::LazyDecodingPixelRef::onLockPixelsAreWritable):
40966         * platform/graphics/chromium/LazyDecodingPixelRef.h: Added.
40967         (WebCore):
40968         (LazyDecodingPixelRef):
40969         (WebCore::LazyDecodingPixelRef::frameGenerator):
40970         * platform/graphics/skia/NativeImageSkia.cpp:
40971         (WebCore::NativeImageSkia::resizedBitmap):
40972         * platform/image-decoders/ImageDecoder.h:
40973         (ImageFrame):
40974         (WebCore::ImageFrame::setSkBitmap):
40975         (WebCore::ImageFrame::getSkBitmap):
40976
40977 2012-10-18  Yael Aharon  <yael.aharon@intel.com>
40978
40979         [EFL] GraphicsContext3D::m_renderStyle is not initialized
40980         https://bugs.webkit.org/show_bug.cgi?id=99721
40981
40982         Reviewed by Antonio Gomes.
40983
40984         Initialize GraphicsContext3D::m_renderStyle.
40985
40986         No new tests, no new functionality.
40987
40988         * platform/graphics/efl/GraphicsContext3DEfl.cpp:
40989         (WebCore::GraphicsContext3D::GraphicsContext3D):
40990
40991 2012-10-19  Dongwoo Joshua Im  <dw.im@samsung.com>
40992
40993         Rename ENABLE_CSS3_TEXT_DECORATION to ENABLE_CSS3_TEXT
40994         https://bugs.webkit.org/show_bug.cgi?id=99804
40995
40996         Reviewed by Julien Chaffraix.
40997
40998         CSS3 text related properties will be implemented under this flag,
40999         including text decoration, text-align-last, and text-justify.
41000
41001         No new functionality, no new test.
41002
41003         * Configurations/FeatureDefines.xcconfig:
41004         * GNUmakefile.am:
41005         * GNUmakefile.features.am:
41006         * css/CSSComputedStyleDeclaration.cpp:
41007         (WebCore):
41008         (WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue):
41009         * css/CSSParser.cpp:
41010         (WebCore::CSSParser::parseValue):
41011         (WebCore::CSSParser::addTextDecorationProperty):
41012         (WebCore::CSSParser::parseTextDecoration):
41013         * css/CSSPrimitiveValueMappings.h:
41014         (WebCore):
41015         * css/CSSProperty.cpp:
41016         (WebCore::CSSProperty::isInheritedProperty):
41017         * css/CSSPropertyNames.in:
41018         * css/CSSValueKeywords.in:
41019         * css/StyleBuilder.cpp:
41020         (WebCore::StyleBuilder::StyleBuilder):
41021         * css/StyleResolver.cpp:
41022         (WebCore::StyleResolver::applyProperty):
41023         * rendering/style/RenderStyle.cpp:
41024         (WebCore::RenderStyle::diff):
41025         * rendering/style/RenderStyle.h:
41026         * rendering/style/RenderStyleConstants.h:
41027         (WebCore):
41028         * rendering/style/StyleRareNonInheritedData.cpp:
41029         (WebCore::StyleRareNonInheritedData::StyleRareNonInheritedData):
41030         (WebCore::StyleRareNonInheritedData::operator==):
41031         * rendering/style/StyleRareNonInheritedData.h:
41032         (StyleRareNonInheritedData):
41033
41034 2012-10-19  Nate Chapin  <japhet@chromium.org>
41035
41036         Reorder some functions in SubresourceLoader to permit main resources
41037         https://bugs.webkit.org/show_bug.cgi?id=99769
41038
41039         Reviewed by Adam Barth.
41040
41041         Most resource types that go through the memory cache (and therefore
41042         through SubresourceLoader) are not sensitive to the exact ordering of
41043         the callbacks they receive, particularly as it relates to ResourceLoadNotifier
41044         calls.  Main resources are not so lenient.  For main resources to be cacheable
41045         and maintain the current behavior as precisely as possible, we will need to
41046         rearrange SubresourceLoader's willSendRequest() and didReceiveData().
41047
41048         No new tests, refactor only.
41049
41050         * loader/SubresourceLoader.cpp:
41051         (WebCore::SubresourceLoader::willSendRequest): There are a series of checks that can result
41052             in the request being canceled, plus calls to CachedResource::willSendRequest() and
41053             ResourceLoader::willSendRequest().  MainResourceLoader (which will be a
41054             CachedResourceClient) has work it expects to do before ResourceLoader::willSendRequest()
41055             is called, but the calls are out of order for that, so swap those.
41056         (WebCore::SubresourceLoader::didReceiveData): We need to populate ResourceLoader::m_resourceData
41057             before notifying CachedResource of new data, but we also want to do CachedResourceClients calls
41058             before calling ResourceLoadNotifier. This means we can't delegate to ResourceLoader.
41059
41060 2012-10-19  Chris Fleizach  <cfleizach@apple.com>
41061
41062         AX: aria-hidden=false does not work as expected
41063         https://bugs.webkit.org/show_bug.cgi?id=98787
41064
41065         Reviewed by Beth Dakin.
41066
41067         ARIA requires that aria-hidden=false override an element's native visibility and include that
41068         node in the AX hierarchy.
41069  
41070         To accomplish this we have to allow invisible items to be included, as well as items that
41071         have no renderers associated with them.
41072
41073         Test: accessibility/aria-hidden-negates-no-visibility.html
41074
41075         * accessibility/AXObjectCache.cpp:
41076         (WebCore::AXObjectCache::getOrCreate):
41077         * accessibility/AccessibilityARIAGrid.cpp:
41078         (WebCore::AccessibilityARIAGrid::addTableCellChild):
41079         (WebCore::AccessibilityARIAGrid::addChildren):
41080         * accessibility/AccessibilityARIAGrid.h:
41081         (AccessibilityARIAGrid):
41082         * accessibility/AccessibilityNodeObject.cpp:
41083         (WebCore):
41084         (WebCore::AccessibilityNodeObject::boundingBoxRect):
41085         (WebCore::AccessibilityNodeObject::insertChild):
41086         (WebCore::AccessibilityNodeObject::addChild):
41087         (WebCore::AccessibilityNodeObject::addChildren):
41088         (WebCore::AccessibilityNodeObject::textUnderElement):
41089         * accessibility/AccessibilityNodeObject.h:
41090         (AccessibilityNodeObject):
41091         * accessibility/AccessibilityObject.cpp:
41092         (WebCore::AccessibilityObject::textIteratorBehaviorForTextRange):
41093         (WebCore):
41094         * accessibility/AccessibilityObject.h:
41095         (AccessibilityObject):
41096         (WebCore::AccessibilityObject::addChild):
41097         (WebCore::AccessibilityObject::insertChild):
41098         * accessibility/AccessibilityRenderObject.cpp:
41099         (WebCore):
41100         (WebCore::AccessibilityRenderObject::accessibilityIsIgnoredBase):
41101         (WebCore::AccessibilityRenderObject::addHiddenChildren):
41102         (WebCore::AccessibilityRenderObject::addChildren):
41103         * accessibility/AccessibilityRenderObject.h:
41104         (AccessibilityRenderObject):
41105
41106 2012-10-19  Tommy Widenflycht  <tommyw@google.com>
41107
41108         MediaStream API: Rename owner to client in MediaStreamDescriptor
41109         https://bugs.webkit.org/show_bug.cgi?id=99593
41110
41111         Reviewed by Adam Barth.
41112
41113         This patch renames owner to client in MediaStreamDescriptor as discussed in #99080.
41114
41115         No new tests needed, covered by existing tests.
41116
41117         * Modules/mediastream/MediaStream.cpp:
41118         (WebCore::MediaStream::MediaStream):
41119         (WebCore::MediaStream::~MediaStream):
41120         * Modules/mediastream/MediaStream.h:
41121         (MediaStream):
41122         * Modules/mediastream/PeerConnection00.cpp:
41123         (WebCore::PeerConnection00::didRemoveRemoteStream):
41124         * Modules/mediastream/RTCPeerConnection.cpp:
41125         (WebCore::RTCPeerConnection::didRemoveRemoteStream):
41126         * platform/mediastream/MediaStreamCenter.cpp:
41127         (WebCore::MediaStreamCenter::endLocalMediaStream):
41128         (WebCore::MediaStreamCenter::addMediaStreamTrack):
41129         (WebCore::MediaStreamCenter::removeMediaStreamTrack):
41130         * platform/mediastream/MediaStreamDescriptor.h:
41131         (WebCore::MediaStreamDescriptorClient::~MediaStreamDescriptorClient):
41132         (WebCore::MediaStreamDescriptor::client):
41133         (WebCore::MediaStreamDescriptor::setClient):
41134         (WebCore::MediaStreamDescriptor::MediaStreamDescriptor):
41135         (MediaStreamDescriptor):
41136
41137 2012-10-19  Shinya Kawanaka  <shinyak@chromium.org>
41138
41139         Elements assigned to <shadow> should not be reprojected.
41140         https://bugs.webkit.org/show_bug.cgi?id=99680
41141
41142         Reviewed by Dimitri Glazkov.
41143
41144         In the current spec, we don't have shadow reprojection, i.e. elements assigned to <shadow> should not be
41145         reprojected to content. However, we can select them by <shadow>.
41146
41147         Tests: fast/dom/shadow/content-reprojection-complex.html
41148                fast/dom/shadow/content-reprojection-shadow.html
41149                fast/dom/shadow/shadow-reprojection-prohibited.html
41150
41151         * html/shadow/ContentDistributor.cpp:
41152         (WebCore::ContentDistributor::distribute): When a node is <shadow>, we should not add elements assigned to <shadow>
41153         to POOL. Instead, <shadow> itself should be added to POOL.
41154         * html/shadow/HTMLContentElement.h:
41155         (WebCore::isHTMLContentElement):
41156         (WebCore):
41157
41158 2012-10-19  Chris Fleizach  <cfleizach@apple.com>
41159
41160         VO issues with hidden <legend> and last explicitly labelled element within a group <fieldset>
41161         https://bugs.webkit.org/show_bug.cgi?id=96325
41162
41163         Reviewed by Beth Dakin.
41164
41165          When finding a <legend> for accessibility, we need to consider those that are offscreen. This patch
41166          modifies the original findLegend method to take a parameter to determine what should be done.
41167
41168         Test: accessibility/hidden-legend.html
41169
41170         * accessibility/AccessibilityRenderObject.cpp:
41171         (WebCore::AccessibilityRenderObject::titleUIElement):
41172         * rendering/RenderFieldset.cpp:
41173         (WebCore::RenderFieldset::findLegend):
41174         * rendering/RenderFieldset.h:
41175
41176 2012-10-17  Chris Fleizach  <cfleizach@apple.com>
41177
41178         AX: Refactor accessibility name computation so it's more platform independent
41179         https://bugs.webkit.org/show_bug.cgi?id=99502
41180
41181         Reviewed by Beth Dakin.
41182
41183         The current model of determining the accessible text for an object has a lot of Mac biases built in
41184         due to legacy implementation. 
41185
41186         This change categorizes and orders accessibility text based on WAI-ARIA text computation rules and then
41187         allows the platform (only Mac right now) to decide how best to apply that text to its own AX API.
41188         http://www.w3.org/TR/wai-aria/roles#textalternativecomputation
41189
41190         This change tried very hard not to change any test behavior, even though it exposed a number of weird
41191         edge cases where we were treating attributes differently based on element type. 
41192
41193         Future patches will resolve those discrepancies.
41194
41195         * accessibility/AccessibilityImageMapLink.cpp:
41196         (WebCore::AccessibilityImageMapLink::accessibilityText):
41197         * accessibility/AccessibilityImageMapLink.h:
41198         (AccessibilityImageMapLink):
41199         * accessibility/AccessibilityMediaControls.cpp:
41200         (WebCore::AccessibilityMediaControl::accessibilityText):
41201         * accessibility/AccessibilityMediaControls.h:
41202         (AccessibilityMediaControl):
41203         (WebCore::AccessibilityMediaTimeDisplay::isMediaControlLabel):
41204         * accessibility/AccessibilityNodeObject.cpp:
41205         (WebCore::AccessibilityNodeObject::titleElementText):
41206         (WebCore::AccessibilityNodeObject::accessibilityText):
41207         (WebCore::AccessibilityNodeObject::ariaLabeledByText):
41208         (WebCore::AccessibilityNodeObject::alternativeText):
41209         (WebCore::AccessibilityNodeObject::alternativeTextForWebArea):
41210         (WebCore::AccessibilityNodeObject::visibleText):
41211         (WebCore::AccessibilityNodeObject::helpText):
41212         (WebCore::AccessibilityNodeObject::ariaDescribedByAttribute):
41213         * accessibility/AccessibilityNodeObject.h:
41214         (AccessibilityNodeObject):
41215         * accessibility/AccessibilityObject.h:
41216         (AccessibilityText):
41217         (WebCore::AccessibilityText::AccessibilityText):
41218         (WebCore::AccessibilityObject::isMediaControlLabel):
41219         (AccessibilityObject):
41220         (WebCore::AccessibilityObject::accessibilityText):
41221         (WebCore::AccessibilityObject::setAccessibleName):
41222         (WebCore::AccessibilityObject::accessibilityDescription):
41223         (WebCore::AccessibilityObject::title):
41224         (WebCore::AccessibilityObject::helpText):
41225         (WebCore::AccessibilityObject::stringValue):
41226         (WebCore::AccessibilityObject::textUnderElement):
41227         (WebCore::AccessibilityObject::text):
41228         (WebCore::AccessibilityObject::textLength):
41229         (WebCore::AccessibilityObject::setRoleValue):
41230         (WebCore::AccessibilityObject::roleValue):
41231         (WebCore::AccessibilityObject::selection):
41232         (WebCore::AccessibilityObject::hierarchicalLevel):
41233         * accessibility/AccessibilityRenderObject.cpp:
41234         * accessibility/AccessibilityRenderObject.h:
41235         (AccessibilityRenderObject):
41236         * accessibility/mac/WebAccessibilityObjectWrapper.mm:
41237         (-[WebAccessibilityObjectWrapper titleTagShouldBeUsedInDescriptionField]):
41238         (-[WebAccessibilityObjectWrapper accessibilityTitle]):
41239         (-[WebAccessibilityObjectWrapper accessibilityDescription]):
41240         (-[WebAccessibilityObjectWrapper accessibilityHelpText]):
41241         (-[WebAccessibilityObjectWrapper accessibilityAttributeValue:]):
41242         * platform/LocalizedStrings.cpp:
41243         (WebCore::localizedMediaControlElementHelpText):
41244
41245 2012-10-19  Kent Tamura  <tkent@chromium.org>
41246
41247         Use Localizer::monthFormat to construct input[type=month] UI
41248         https://bugs.webkit.org/show_bug.cgi?id=99818
41249
41250         Reviewed by Kentaro Hara.
41251
41252         Use an LDML format returned by Localizer::monthFormat for
41253         input[type=month] UI.
41254
41255         Because the format may contain symbolic month names and symbolic
41256         stand-alone month names, we need to add:
41257          - Symbolic/numeric detection in DateTimeEditBuilder
41258          - Normal/stand-alone detection in DateTimeEditBuilder
41259          - Symbolic edit field for months
41260
41261         Test: fast/forms/month-multiple-fields/month-multiple-fields-appearance-l10n.html,
41262               fast/forms/month-multiple-fields/month-multiple-fields-keyboard-events.html
41263
41264         * html/MonthInputType.cpp:
41265         (WebCore::MonthInputType::setupLayoutParameters):
41266         Use Localizer::monthFormat.
41267
41268         * html/shadow/DateTimeEditElement.cpp:
41269         (WebCore::DateTimeEditBuilder::visitField):
41270         - If the number of continuous field character is greater than 2, use
41271         DateTimeSymbolicMonthFieldElement.
41272         - Supports stand-alone month field.
41273
41274         * html/shadow/DateTimeFieldElements.h:
41275         (DateTimeSymbolicMonthFieldElement): Added. A subclass of DateTimeSymbolicFieldElement.
41276         * html/shadow/DateTimeFieldElements.cpp:
41277         (WebCore::DateTimeSymbolicMonthFieldElement::DateTimeSymbolicMonthFieldElement):
41278         Added.
41279         (WebCore::DateTimeSymbolicMonthFieldElement::create): Added.
41280         (WebCore::DateTimeSymbolicMonthFieldElement::populateDateTimeFieldsState):
41281         We need to add 1 because the internal integer representation is 0-based
41282         and DateTimeFieldsState uses 1-based month.
41283         (WebCore::DateTimeSymbolicMonthFieldElement::setValueAsDate):
41284         DateComponents::month is 0-based.
41285         (WebCore::DateTimeSymbolicMonthFieldElement::setValueAsDateTimeFieldsState):
41286         We need to subtract 1 because the internal integer representation is 0-based
41287         and DateTimeFieldsState uses 1-based month.
41288
41289         * html/shadow/DateTimeSymbolicFieldElement.h:
41290         (WebCore::DateTimeSymbolicFieldElement::symbolsSize):
41291         Added for DateTimeSymbolicMonthFieldElement::setValueAsDateTimeFieldsState.
41292
41293 2012-10-19  Vsevolod Vlasov  <vsevik@chromium.org>
41294
41295         Web Inspector: inspector/styles/styles-history.html is failing Text on Windows and Linux
41296         https://bugs.webkit.org/show_bug.cgi?id=99519
41297
41298         Reviewed by Alexander Pavlov.
41299
41300         Extracted _styleContentSet callback in a class method to make it sniffable by tests.
41301
41302         * inspector/front-end/StylesSourceMapping.js:
41303         (WebInspector.StyleFile.prototype._commitIncrementalEdit):
41304         (WebInspector.StyleFile.prototype._styleContentSet):
41305
41306 2012-10-19  Pavel Feldman  <pfeldman@chromium.org>
41307
41308         Web Inspector: add object-src 'none' to the inspector.html
41309         https://bugs.webkit.org/show_bug.cgi?id=99728
41310
41311         Reviewed by Vsevolod Vlasov.
41312
41313         * inspector/front-end/inspector.html:
41314
41315 2012-10-19  Vsevolod Vlasov  <vsevik@chromium.org>
41316
41317         Web Inspector: Get rid of isSnippetEvaluation flag on UISourceCode
41318         https://bugs.webkit.org/show_bug.cgi?id=99823
41319
41320         Reviewed by Yury Semikhatsky.
41321
41322         Replaced isSnippetEvaluation flag with a pair of isSnippet and isTemporary set.
41323
41324         * inspector/front-end/ResourceScriptMapping.js:
41325         (WebInspector.ResourceScriptMapping.prototype._getOrCreateTemporaryUISourceCode):
41326         * inspector/front-end/ScriptSnippetModel.js:
41327         (WebInspector.ScriptSnippetModel.prototype._releasedUISourceCodes):
41328         (WebInspector.ScriptSnippetModel.prototype._createUISourceCodeForScript):
41329         * inspector/front-end/ScriptsNavigator.js:
41330         (WebInspector.ScriptsNavigator.prototype._snippetsNavigatorViewForUISourceCode):
41331         (WebInspector.ScriptsNavigator.prototype.revealUISourceCode):
41332         * inspector/front-end/ScriptsPanel.js:
41333         (WebInspector.ScriptsPanel.prototype._createSourceFrame):
41334         * inspector/front-end/Workspace.js:
41335         (WebInspector.Project.prototype.addTemporaryUISourceCode):
41336
41337 2012-10-19  Alexander Pavlov  <apavlov@chromium.org>
41338
41339         Web Inspector: Invalid Regex in SASSSourceMapping/didRequestContent, breaks Support for Sass experiment
41340         https://bugs.webkit.org/show_bug.cgi?id=99729
41341
41342         Reviewed by Vsevolod Vlasov.
41343
41344         Decode only the first line number digit written in a six-character escaped Unicode format.
41345
41346         * inspector/front-end/SASSSourceMapping.js:
41347         (WebInspector.SASSSourceMapping.prototype._resourceAdded.didRequestContent):
41348         (WebInspector.SASSSourceMapping.prototype._resourceAdded):
41349
41350 2012-10-19  Tommy Widenflycht  <tommyw@google.com>
41351
41352         MediaStream API: Update the RuntimeEnabledFeatures flags
41353         https://bugs.webkit.org/show_bug.cgi?id=99714
41354
41355         Reviewed by Adam Barth.
41356
41357         Updating the RuntimeEnabledFeatures flags to match reality:
41358         isMediaStreamEnabled and isPeerConnectionEnabled should be true by default and
41359         isDeprecatedPeerConnectionEnabled false.
41360
41361         Patch covered by existing tests.
41362
41363         * bindings/generic/RuntimeEnabledFeatures.cpp:
41364         (WebCore):
41365
41366 2012-10-19  Adam Barth  <abarth@webkit.org>
41367
41368         [V8] Simplify GCPrologueVisitor
41369         https://bugs.webkit.org/show_bug.cgi?id=99819
41370
41371         Reviewed by Kentaro Hara.
41372
41373         Previously, GCPrologueVisitor used a complicated traits-based template
41374         design. That's not necessary. We can just implement it directly without
41375         template magic.
41376
41377         The one subtly here is that MessagePort is not actually a subclass of
41378         ActiveDOMObject. The next stage of this cleanup is to make MessagePort
41379         inherit from ActiveDOMObject and remove this special case entirely.
41380
41381         * bindings/v8/V8GCController.cpp:
41382         (WebCore::EnsureWeakDOMNodeVisitor::visitDOMWrapper):
41383         (WebCore):
41384         (WebCore::ActiveDOMObjectPrologueVisitor::visitDOMWrapper):
41385         (WebCore::NodeVisitor::visitDOMWrapper):
41386         (WebCore::V8GCController::gcPrologue):
41387
41388 2012-10-19  Eugene Klyuchnikov  <eustas.bug@gmail.com>
41389
41390         Web Inspector: Saving HAR, snapshots and timeline data do not work in remote debugging mode
41391         https://bugs.webkit.org/show_bug.cgi?id=99179
41392
41393         Reviewed by Yury Semikhatsky.
41394
41395         Added method "close" to InspectorFrontendHost.
41396         Symantically, this method forces to flush all unsaved buffers for
41397         specified file. In native implementation this turns to be no-op.
41398
41399         In stub implementation "close" causes compilation of blob object an
41400         navigating to blob-schema url.
41401
41402         Removed "canAppend", as appending in now suppurted
41403         by all implementations.
41404
41405         Repaced schema "data" with "blob" in InspectorFrontendHostStub "save"
41406         to avoid out-of-memory errors.
41407
41408         * inspector/InspectorFrontendHost.cpp:
41409         (WebCore::InspectorFrontendHost::close): Compiles blob object and
41410         navigates to blob-object url.
41411         (WebCore):
41412         * inspector/InspectorFrontendHost.h: Added "close" method.
41413         * inspector/InspectorFrontendHost.idl: Ditto.
41414         * inspector/front-end/FileManager.js:
41415         (WebInspector.FileManager.prototype.close): Proxy to InspectorFrontend.
41416         * inspector/front-end/FileUtils.js:
41417         (WebInspector.FileOutputStream.prototype.close):
41418         Invoke "close" on FileManager.
41419         (WebInspector.FileOutputStream.prototype._onAppendDone): Ditto.
41420         * inspector/front-end/HandlerRegistry.js: Added mandatory "close" call.
41421         * inspector/front-end/HeapSnapshotView.js:
41422         (WebInspector.HeapProfileHeader.prototype.canSaveToFile): Fixed check.
41423         * inspector/front-end/InspectorFrontendHostStub.js:
41424         (.WebInspector.InspectorFrontendHostStub):
41425         Added "appendable" behaviour emulation.
41426         * inspector/front-end/SourceFrame.js: Added mandatory "close" call.
41427         * inspector/front-end/externs.js: Replaced "canAppend" with "close"
41428
41429 2012-10-18  Dominic Mazzoni  <dmazzoni@google.com>
41430
41431         AX: labelForElement is slow when there are a lot of DOM elements
41432         https://bugs.webkit.org/show_bug.cgi?id=97825
41433
41434         Reviewed by Ryosuke Niwa.
41435
41436         Adds a DocumentOrderedMap to TreeScope that allows accessibility to
41437         quickly map from an id to the label for that id. This speeds up
41438         AccessibilityNode::labelForElement, which was a bottleneck in Chromium
41439         when accessibility was on.
41440
41441         Tests: accessibility/title-ui-element-correctness.html
41442                perf/accessibility-title-ui-element.html
41443
41444         * accessibility/AccessibilityNodeObject.cpp:
41445         (WebCore::AccessibilityNodeObject::labelForElement):
41446         * dom/DocumentOrderedMap.cpp:
41447         (WebCore::keyMatchesLabelForAttribute):
41448         (WebCore):
41449         (WebCore::DocumentOrderedMap::get):
41450         (WebCore::DocumentOrderedMap::getElementByLabelForAttribute):
41451         * dom/DocumentOrderedMap.h:
41452         (DocumentOrderedMap):
41453         * dom/Element.cpp:
41454         (WebCore::Element::insertedInto):
41455         (WebCore::Element::removedFrom):
41456         (WebCore::Element::updateLabel):
41457         (WebCore):
41458         (WebCore::Element::willModifyAttribute):
41459         * dom/Element.h:
41460         (Element):
41461         * dom/TreeScope.cpp:
41462         (WebCore::TreeScope::TreeScope):
41463         (WebCore::TreeScope::destroyTreeScopeData):
41464         (WebCore::TreeScope::addLabel):
41465         (WebCore):
41466         (WebCore::TreeScope::removeLabel):
41467         (WebCore::TreeScope::labelElementForId):
41468         * dom/TreeScope.h:
41469         (WebCore):
41470         (TreeScope):
41471         (WebCore::TreeScope::shouldCacheLabelsByForAttribute):
41472
41473 2012-10-19  Eugene Klyuchnikov  <eustas.bug@gmail.com>
41474
41475         Web Inspector: Update localizedStrings.js
41476         https://bugs.webkit.org/show_bug.cgi?id=99701
41477
41478         Reviewed by Yury Semikhatsky.
41479
41480         Fixed most of missing strings and orphans.
41481
41482         * English.lproj/localizedStrings.js:
41483         * inspector/front-end/SettingsScreen.js:
41484
41485 2012-10-17  Ilya Tikhonovsky  <loislo@chromium.org>
41486
41487         Web Inspector: NMI provide data for mixing with tcmalloc heap dumps.
41488         https://bugs.webkit.org/show_bug.cgi?id=99457
41489
41490         Reviewed by Yury Semikhatsky.
41491
41492         countObjectSize now accepts ptr as the first argument and saves it into HashMap if the binary was ran with HEAPPROFILE env variable.
41493         getProcessMemoryDistribution does snapshot and calls the downstream code with the map of counted objects.
41494
41495         * inspector/InspectorClient.h:
41496         (WebCore::InspectorClient::dumpUncountedAllocatedObjects):
41497         * inspector/InspectorMemoryAgent.cpp:
41498         (WebCore::reportJSHeapInfo):
41499         (WebCore::reportRenderTreeInfo):
41500         (WebCore):
41501         (WebCore::InspectorMemoryAgent::getProcessMemoryDistribution):
41502         * inspector/MemoryInstrumentationImpl.cpp:
41503         (WebCore::MemoryInstrumentationClientImpl::countObjectSize):
41504         (WebCore::MemoryInstrumentationClientImpl::reportMemoryUsage):
41505         * inspector/MemoryInstrumentationImpl.h:
41506         (MemoryInstrumentationClientImpl):
41507         (WebCore::MemoryInstrumentationClientImpl::countedObjects):
41508
41509 2012-10-19  Adam Barth  <abarth@webkit.org>
41510
41511         [V8] DOMObjectVisitor does nothing
41512         https://bugs.webkit.org/show_bug.cgi?id=99812
41513
41514         Reviewed by Kentaro Hara.
41515
41516         This code doesn't do anything, even in Debug! We should just remove it.
41517
41518         * bindings/v8/V8GCController.cpp:
41519         (WebCore):
41520         (WebCore::V8GCController::gcPrologue):
41521         (WebCore::V8GCController::gcEpilogue):
41522
41523 2012-10-19  Adam Barth  <abarth@webkit.org>
41524
41525         [V8] Remove unused typedef from V8GCController.cpp
41526         https://bugs.webkit.org/show_bug.cgi?id=99808
41527
41528         Reviewed by Kentaro Hara.
41529
41530         This typedef is not used.
41531
41532         * bindings/v8/V8GCController.cpp:
41533
41534 2012-10-18  Alexander Pavlov  <apavlov@chromium.org>
41535
41536         Web Inspector: [Styles] Property considered overridden if it is non-inherited important property in inherited style
41537         https://bugs.webkit.org/show_bug.cgi?id=99720
41538
41539         Reviewed by Yury Semikhatsky.
41540
41541         Non-inherited properties are now disregarded in inherited styles.
41542
41543         * inspector/front-end/StylesSidebarPane.js:
41544         (WebInspector.StylesSidebarPane.prototype._refreshStyleRules):
41545         (WebInspector.StylesSidebarPane.prototype._markUsedProperties):
41546
41547 2012-10-18  Adam Barth  <abarth@webkit.org>
41548
41549         [V8] GrouperVisitor is secretly two entirely separate objects
41550         https://bugs.webkit.org/show_bug.cgi?id=99810
41551
41552         Reviewed by Kentaro Hara.
41553
41554         We can separate out the two things that GrouperVisitor is trying to do
41555         because they have nothing to do with each other.
41556
41557         * bindings/v8/V8GCController.cpp:
41558         (ObjectVisitor):
41559         (WebCore::ObjectVisitor::visitDOMWrapper):
41560         (WebCore):
41561         (WebCore::V8GCController::gcPrologue):
41562
41563 2012-10-18  Kiran Muppala  <cmuppala@apple.com>
41564
41565         Automatically start plugins created within a user gesture, skipping snapshotting
41566         https://bugs.webkit.org/show_bug.cgi?id=99778
41567
41568         Reviewed by Alexey Proskuryakov.
41569
41570         If a user gesture is being processed, do not set the display state of
41571         HTMLPluginImageElement to WaitingForSnapshot.
41572
41573         No new tests, since it only affects when plugins switch from snapshot to running
41574         state.  Does not affect rendering of other elements.
41575
41576         * html/HTMLPlugInImageElement.cpp:
41577         (WebCore::HTMLPlugInImageElement::HTMLPlugInImageElement):
41578
41579 2012-10-18  Kent Tamura  <tkent@chromium.org>
41580
41581         Add shortMonthLabels and shortStandAloneMonthLabels to Localizer
41582         https://bugs.webkit.org/show_bug.cgi?id=99787
41583
41584         Reviewed by Kentaro Hara.
41585
41586         This is going to be used for input[type=month] UI. This doesn't affect
41587         any bahevior yet.
41588
41589         Tests: Add some tests to Source/WebKit/chromium/tests/, and will add
41590         layout tests later.
41591
41592         * platform/text/Localizer.h:
41593         (Localizer): Add shortMonthLabels and shortStandAloneMonthLabels as pure
41594         virtual member functions.
41595
41596         * platform/text/LocaleICU.h:
41597         (LocaleICU): Declare shortMonthLabels and shortStandAloneMonthLabels.
41598         * platform/text/LocaleICU.cpp:
41599         (WebCore::LocaleICU::shortMonthLabels): Added.
41600         (WebCore::LocaleICU::shortStandAloneMonthLabels): Added.
41601
41602         * platform/text/LocaleNone.cpp:
41603         (LocaleNone): Declare shortMonthLabels and shortStandAloneMonthLabels.
41604         (WebCore::LocaleNone::shortMonthLabels):
41605         Added. Always returns English labels.
41606         (WebCore::LocaleNone::shortStandAloneMonthLabels):
41607         Addes. Just calls shortMonthLabels.
41608
41609         * platform/text/LocaleWin.h:
41610         (LocaleWin): Declare shortMonthLabels and shortStandAloneMonthLabels.
41611         * platform/text/LocaleWin.cpp:
41612         (WebCore::LocaleWin::shortMonthLabels): Added.
41613         (WebCore::LocaleWin::shortStandAloneMonthLabels):
41614         Added. Always returns shortMonthLabels.
41615
41616         * platform/text/mac/LocaleMac.h:
41617         (LocaleMac): Declare shortMonthLabels and shortStandAloneMonthLabels.
41618         * platform/text/mac/LocaleMac.mm:
41619         (WebCore::LocaleMac::shortMonthLabels): Added.
41620         (WebCore::LocaleMac::shortStandAloneMonthLabels): Added.
41621
41622 2012-10-18  Kunihiko Sakamoto  <ksakamoto@chromium.org>
41623
41624         Implement value sanitization algorithm for type=datetime
41625         https://bugs.webkit.org/show_bug.cgi?id=76893
41626
41627         Reviewed by Kent Tamura.
41628
41629         Implement the value sanitization algorithm for type=datetime that adjusts
41630         the value to a valid normalized forced-UTC global date and time string.
41631         See http://www.whatwg.org/specs/web-apps/current-work/multipage/common-microsyntaxes.html#valid-normalized-forced-utc-global-date-and-time-string
41632
41633         Test: fast/forms/datetime/datetime-value-sanitization.html
41634
41635         * html/DateTimeInputType.cpp:
41636         (WebCore::DateTimeInputType::sanitizeValue): Implemented.
41637         (WebCore):
41638         * html/DateTimeInputType.h:
41639         (DateTimeInputType): Add sanitizeValue.
41640         * platform/DateComponents.cpp:
41641         (WebCore::DateComponents::addMinute): Fixed a bug that caused wrong adjustment
41642         of timezone offset (e.g. 2012-10-17T01:00+01:00 -> 2012-10-17T01:-60Z).
41643
41644 2012-10-18  Byungwoo Lee  <bw80.lee@samsung.com>
41645
41646         Fix build warning.
41647         https://bugs.webkit.org/show_bug.cgi?id=99788
41648
41649         Reviewed by Kentaro Hara.
41650
41651         Use UNUSED_PARAM macro for removing -Wunused-parameter.
41652
41653         * rendering/RenderLayer.cpp:
41654         (WebCore::RenderLayer::currentTransform):
41655
41656 2012-10-18  Benjamin Poulain  <bpoulain@apple.com>
41657
41658         [WK2] WebKit2 does not build without PLUGIN_PROCESS on Mac
41659         https://bugs.webkit.org/show_bug.cgi?id=99771
41660
41661         Reviewed by Anders Carlsson.
41662
41663         * WebCore.exp.in: The symbol is used by WebCore Test Support, move it
41664         to the general section.
41665
41666 2012-10-18  Adam Barth  <abarth@webkit.org>
41667
41668         [V8] fast/dom/gc-9.html fails for document.styleSheets
41669         https://bugs.webkit.org/show_bug.cgi?id=99786
41670
41671         Reviewed by Kentaro Hara.
41672
41673         V8 needs to know about this IDL attribute as well.
41674
41675         * css/StyleSheetList.idl:
41676
41677 2012-10-18  Adam Barth  <abarth@webkit.org>
41678
41679         [V8] fast/dom/gc-9.html fails for document.implementation
41680         https://bugs.webkit.org/show_bug.cgi?id=99783
41681
41682         Reviewed by Kentaro Hara.
41683
41684         In order to correctly manage the lifetime of document.implementation,
41685         we need to implement GenerateIsReachable=ImplDocument.
41686
41687         * bindings/scripts/CodeGeneratorV8.pm:
41688         (GenerateVisitDOMWrapper):
41689         * bindings/scripts/IDLAttributes.txt:
41690         * dom/DOMImplementation.idl:
41691
41692 2012-10-18  Chris Fleizach  <cfleizach@apple.com>
41693
41694         AX: Crashes in WebProcess at com.apple.WebCore: -[AccessibilityObjectWrapper remoteAccessibilityParentObject] + 78
41695         https://bugs.webkit.org/show_bug.cgi?id=96443
41696
41697         Reviewed by Beth Dakin.
41698
41699         Separate out the chain of calls so that the number of times document() is called is reduced and it will be easier
41700         to determine which line this crash is happening on.
41701
41702         * accessibility/mac/WebAccessibilityObjectWrapper.mm:
41703         (-[WebAccessibilityObjectWrapper remoteAccessibilityParentObject]):
41704
41705 2012-10-18  Alec Flett  <alecflett@chromium.org>
41706
41707         IndexedDB: Refactor IDBDatabaseBackendImpl to use IDBDatabaseMetadata
41708         https://bugs.webkit.org/show_bug.cgi?id=99773
41709
41710         Reviewed by Tony Chang.
41711
41712         Refactor to begin separating out metadata from stateful backend objects,
41713         in preparation for https://bugs.webkit.org/show_bug.cgi?id=99774.
41714
41715         Also includes some #include dependency cleanup so that the backing store
41716         depends less on the stateful backend objects.
41717
41718         No new tests as this is purely a refactor.
41719
41720         * Modules/indexeddb/IDBBackingStore.h:
41721         (WebCore):
41722         (IDBBackingStore):
41723         * Modules/indexeddb/IDBCursor.h:
41724         * Modules/indexeddb/IDBCursorBackendImpl.h:
41725         (WebCore):
41726         * Modules/indexeddb/IDBDatabaseBackendImpl.cpp:
41727         (WebCore::IDBDatabaseBackendImpl::IDBDatabaseBackendImpl):
41728         (WebCore::IDBDatabaseBackendImpl::openInternal):
41729         (WebCore::IDBDatabaseBackendImpl::metadata):
41730         (WebCore::IDBDatabaseBackendImpl::createObjectStore):
41731         (WebCore::IDBDatabaseBackendImpl::setVersion):
41732         (WebCore::IDBDatabaseBackendImpl::setVersionInternal):
41733         (WebCore::IDBDatabaseBackendImpl::setIntVersionInternal):
41734         (WebCore::IDBDatabaseBackendImpl::processPendingCalls):
41735         (WebCore::IDBDatabaseBackendImpl::openConnection):
41736         (WebCore::IDBDatabaseBackendImpl::runIntVersionChangeTransaction):
41737         (WebCore::IDBDatabaseBackendImpl::openConnectionWithVersion):
41738         (WebCore::IDBDatabaseBackendImpl::deleteDatabase):
41739         (WebCore::IDBDatabaseBackendImpl::loadObjectStores):
41740         (WebCore::IDBDatabaseBackendImpl::resetVersion):
41741         * Modules/indexeddb/IDBDatabaseBackendImpl.h:
41742         (WebCore::IDBDatabaseBackendImpl::id):
41743         (IDBDatabaseBackendImpl):
41744         * Modules/indexeddb/IDBLevelDBBackingStore.cpp:
41745         (WebCore::IDBLevelDBBackingStore::getIDBDatabaseMetaData):
41746         (WebCore::IDBLevelDBBackingStore::deleteDatabase):
41747         * Modules/indexeddb/IDBLevelDBBackingStore.h:
41748         (IDBLevelDBBackingStore):
41749         * Modules/indexeddb/IDBObjectStoreBackendInterface.h:
41750         * Modules/indexeddb/IDBTransaction.h:
41751         (WebCore):
41752
41753 2012-10-18  Peter Kasting  <pkasting@google.com>
41754
41755         [Skia] Set m_hasAlpha correctly in ImageFrame::copyBitmapData.
41756         https://bugs.webkit.org/show_bug.cgi?id=99781
41757
41758         Reviewed by Adam Barth.
41759
41760         No tests, since the actual effects of this bug are fickle and it's not
41761         clear how to extract and check particular subframes of an animated GIF.
41762
41763         * platform/image-decoders/skia/ImageDecoderSkia.cpp:
41764         (WebCore::ImageFrame::copyBitmapData):
41765
41766 2012-10-18  Pan Deng  <pan.deng@intel.com>
41767
41768         [Resource Timing]Implementation of resource timing buffer size restriction functionality
41769         https://bugs.webkit.org/show_bug.cgi?id=84885.
41770
41771         Reviewed by Tony Gentilcore.
41772
41773         http://www.w3.org/TR/2012/CR-resource-timing-20120522/
41774         This patch enable functionality of set buffer size(default is 150 as spec). When buffer is full, resourceTimingBufferFull event will be fired. Incoming entries will be dropped if no more space for them. 
41775
41776         Tests: http/tests/w3c/webperf/submission/Intel/resource-timing/test_resource_timing_buffer_full_when_populate_entries.html
41777                http/tests/w3c/webperf/submission/Intel/resource-timing/test_resource_timing_buffer_full_when_shrink_buffer_size.html
41778                http/tests/w3c/webperf/submission/Intel/resource-timing/test_resource_timing_buffer_size_restriction.html
41779                http/tests/w3c/webperf/submission/Intel/resource-timing/test_resource_timing_clear_resource_timing_functionality.html
41780                http/tests/w3c/webperf/submission/Intel/resource-timing/test_resource_timing_on_shrink_buffer_size.html
41781                http/tests/w3c/webperf/submission/Intel/resource-timing/test_resource_timing_store_and_clear_during_callback.html
41782
41783         * page/Performance.cpp:
41784         (WebCore):
41785         (WebCore::Performance::Performance):
41786         (WebCore::Performance::webkitSetResourceTimingBufferSize):
41787         (WebCore::Performance::addResourceTiming):
41788         (WebCore::Performance::isResourceTimingBufferFull):
41789         * page/Performance.h:
41790         (Performance):
41791
41792 2012-10-18  Ryosuke Niwa  <rniwa@webkit.org>
41793
41794         REGRESSION(r130411): Copying & pasting the first line of text can move caret to the end of text area
41795         https://bugs.webkit.org/show_bug.cgi?id=99663
41796
41797         Reviewed by Enrica Casucci and Levi Weintraub.
41798
41799         The bug was caused by positionOnlyToBeUpdated's offset not being shifted correctly in
41800         ReplaceSelectionCommand::mergeTextNodesAroundPosition. Suppose we have text nodes t1 and t2 and
41801         positionOnlyToBeUpdated had offset k in t2. When t2 is merged into t1, positionOnlyToBeUpdated should be
41802         moved to (t1, n + k) where n is the ORIGINAL length of t1 before t2 is merged. But we were using
41803         the length after t2 is merged.
41804
41805         Fixed the bug by saving the original length of t1 and using that in the offset adjustment.
41806         Also use the right offset.
41807
41808         Test: editing/pasteboard/copy-paste-first-line-in-textarea.html
41809
41810         * editing/ReplaceSelectionCommand.cpp:
41811         (WebCore::ReplaceSelectionCommand::mergeTextNodesAroundPosition):
41812
41813 2012-10-18  Claudio Saavedra  <csaavedra@igalia.com>
41814
41815         [GTK] Invalid read from WebKit::DOMObjectCache::clearByFrame
41816         https://bugs.webkit.org/show_bug.cgi?id=82882
41817
41818         Reviewed by Xan Lopez.
41819
41820         Based on a patch by Milan Crha <mcrha@redhat.com>
41821
41822         Prevent an invalid access to a pointer while clearing the DOM
41823         object cache.
41824         * bindings/gobject/DOMObjectCache.cpp:
41825         (WebKit::DOMObjectCache::clearByFrame): Prevent an invalid access.
41826
41827 2012-10-18  Sheriff Bot  <webkit.review.bot@gmail.com>
41828
41829         Unreviewed, rolling out r131810.
41830         http://trac.webkit.org/changeset/131810
41831         https://bugs.webkit.org/show_bug.cgi?id=99762
41832
41833         Broke linux debug webkit_unit_tests (Requested by
41834         danakj|gardening on #webkit).
41835
41836         * WebCore.gypi:
41837         * platform/graphics/ImageSource.cpp:
41838         (WebCore::ImageSource::setData):
41839         * platform/graphics/ImageSource.h:
41840         (WebCore):
41841         (ImageSource):
41842         * platform/graphics/chromium/DeferredImageDecoder.cpp: Removed.
41843         * platform/graphics/chromium/DeferredImageDecoder.h: Removed.
41844         * platform/graphics/chromium/ImageDecodingStore.cpp: Removed.
41845         * platform/graphics/chromium/ImageDecodingStore.h: Removed.
41846         * platform/graphics/chromium/ImageFrameGenerator.cpp: Removed.
41847         * platform/graphics/chromium/ImageFrameGenerator.h: Removed.
41848         * platform/graphics/chromium/LazyDecodingPixelRef.cpp: Removed.
41849         * platform/graphics/chromium/LazyDecodingPixelRef.h: Removed.
41850         * platform/graphics/chromium/ScaledImageFragment.cpp: Removed.
41851         * platform/graphics/chromium/ScaledImageFragment.h: Removed.
41852         * platform/graphics/skia/NativeImageSkia.cpp:
41853         (WebCore::NativeImageSkia::resizedBitmap):
41854         * platform/image-decoders/ImageDecoder.h:
41855         (ImageFrame):
41856
41857 2012-10-18  Tommy Widenflycht  <tommyw@google.com>
41858
41859         MediaStream API: Do some cleanup in the chromium WebKit API
41860         https://bugs.webkit.org/show_bug.cgi?id=99713
41861
41862         Reviewed by Adam Barth.
41863
41864         Removing the deprecated version of WebMediaStreamDescriptor::initialize.
41865
41866         No testing needed since only an unused function is removed.
41867
41868         * platform/chromium/support/WebMediaStreamDescriptor.cpp:
41869
41870 2012-10-18  Alpha Lam  <hclam@chromium.org>
41871
41872         [chromium] Implement deferred image decoding
41873         https://bugs.webkit.org/show_bug.cgi?id=94240
41874
41875         Reviewed by Stephen White.
41876
41877         Objectives:
41878
41879         To record image decoding operations during painting and to defer
41880         decoding operations until rasterization.
41881
41882         Rationale:
41883
41884         This is a key feature that enables impl-side painting which requires
41885         fast recording of drawing operations. The existing decode-on-draw
41886         restricts that recording has to block on expensive decoding operations.
41887         This change allows recording of image decoding operations during paint
41888         time.
41889
41890         Design:
41891
41892         Image decoding happens when a BitmapImage is drawn into a
41893         GraphicsContext. When per-tile painting is enabled GraphicsContext
41894         is backed by SkCanvas in recording mode. This SkCanvas records drawing
41895         and image decoding operations to minimize recording time.
41896
41897         An image decoding operation is recorded as a SkPixelRef object
41898         implemented by LazyDecodingPixelRef. This object references raw encoded
41899         data, regions to be decoded and scaling information.
41900
41901         When used in conjunction with per-tile painting this feature defers
41902         image decoding until the SkCanvas referencing the image is rasterized.
41903
41904         Both recording and rasterization happen on the main thread.
41905
41906         Performance Impact:
41907
41908         This feature is enabled by WebKit::setDeferredImageDecodingEnabled()
41909         and does not have an impact when disabled.
41910
41911         This feature is disabled by default.
41912
41913         Upcoming Changes:
41914
41915         1. Implement a full-featured image cache in ImageDecodingStore.
41916         2. Allow rasterization and decoding on impl thread.
41917
41918         Classes Involved:
41919
41920         BitmapImage
41921
41922         BitmapImage is the entry point for deferred image decoding. When
41923         drawing a BitmapImage into a GraphicsContext it makes a request to
41924         create a NativeImageSkia. We substitute the content in NativeImageSkia
41925         such that it is lazily decoded.
41926
41927         DeferredImageDecoder
41928
41929         This is the platform implementation of a image decoder for Chromium.
41930         This is a bridge layer that either delegates calls to the actual
41931         ImageDecoder or create a lazily-decoded SkBitmap and delegates calls
41932         to ImageDecodingStore.
41933
41934         ImageDecodingStore
41935
41936         This object manages all encoded images. It keeps track of encoded
41937         data and the corresponding ImageDecoder for doing actual decoding. It
41938         is also responsible for generating lazily decoded SkBitmaps. This
41939         SkBitmap contains a LazyDecodingPixelRef object which references to an
41940         image entry in ImageDecodingStore.
41941
41942         ScaledImageFragment
41943
41944         A container for a scaled image fragment. In addition to bitmap pixels
41945         it contains information about the ID of the image, scale and clipping.
41946
41947         ImageFrameGenerator
41948
41949         This object is responsible for generating decoded pixels. It is also
41950         a container for encoded image data and corresponding image decoder.
41951
41952         LazyDecodingPixelRef
41953
41954         This object is embedded in a SkBitmap to enable lazy decoding. When
41955         SkBitmap needs to access pixels LazyDecodingPixelRef is locked. It
41956         contains information to locate an image and scaling info, these
41957         information is submitted to ImageDecodingStore to access actual pixels.
41958
41959         Layout tests. There are about 80 tests in this virtual test suite
41960         running this feature in this directory:
41961
41962         platform/chromium/virtual/deferred/fast/images
41963
41964         Unit tests. Added DeferredImageDecoderTest to verify deferred
41965         image decoding behavior.
41966
41967         * WebCore.gypi:
41968         * platform/graphics/ImageSource.cpp:
41969         (WebCore::ImageSource::setData):
41970         * platform/graphics/ImageSource.h:
41971         (WebCore):
41972         (ImageSource):
41973         * platform/graphics/chromium/DeferredImageDecoder.cpp: Added.
41974         (WebCore):
41975         (WebCore::DeferredImageDecoder::DeferredImageDecoder):
41976         (WebCore::DeferredImageDecoder::~DeferredImageDecoder):
41977         (WebCore::DeferredImageDecoder::create):
41978         (WebCore::DeferredImageDecoder::createForTesting):
41979         (WebCore::DeferredImageDecoder::filenameExtension):
41980         (WebCore::DeferredImageDecoder::frameBufferAtIndex):
41981         (WebCore::DeferredImageDecoder::setData):
41982         (WebCore::DeferredImageDecoder::isSizeAvailable):
41983         (WebCore::DeferredImageDecoder::size):
41984         (WebCore::DeferredImageDecoder::frameSizeAtIndex):
41985         (WebCore::DeferredImageDecoder::frameCount):
41986         (WebCore::DeferredImageDecoder::repetitionCount):
41987         (WebCore::DeferredImageDecoder::clearFrameBufferCache):
41988         (WebCore::DeferredImageDecoder::frameHasAlphaAtIndex):
41989         (WebCore::DeferredImageDecoder::frameBytesAtIndex):
41990         * platform/graphics/chromium/DeferredImageDecoder.h: Added.
41991         (WebCore):
41992         (DeferredImageDecoder):
41993         * platform/graphics/chromium/ImageDecodingStore.cpp: Added.
41994         (WebCore::ImageDecodingStore::ImageDecodingStore):
41995         (WebCore):
41996         (WebCore::ImageDecodingStore::~ImageDecodingStore):
41997         (WebCore::ImageDecodingStore::instanceOnMainThread):
41998         (WebCore::ImageDecodingStore::initializeOnMainThread):
41999         (WebCore::ImageDecodingStore::shutdown):
42000         (WebCore::ImageDecodingStore::isLazyDecoded):
42001         (WebCore::ImageDecodingStore::createLazyDecodedSkBitmap):
42002         (WebCore::ImageDecodingStore::resizeLazyDecodedSkBitmap):
42003         (WebCore::ImageDecodingStore::setData):
42004         (WebCore::ImageDecodingStore::lockPixels):
42005         (WebCore::ImageDecodingStore::unlockPixels):
42006         (WebCore::ImageDecodingStore::frameGeneratorBeingDestroyed):
42007         (WebCore::ImageDecodingStore::calledOnValidThread):
42008         (WebCore::ImageDecodingStore::lookupFrameCache):
42009         (WebCore::ImageDecodingStore::deleteFrameCache):
42010         * platform/graphics/chromium/ImageDecodingStore.h: Added.
42011         (WebCore):
42012         (ImageDecodingStore):
42013         (WebCore::ImageDecodingStore::create):
42014         * platform/graphics/chromium/ScaledImageFragment.cpp: Added.
42015         (WebCore):
42016         (WebCore::ScaledImageFragment::~ScaledImageFragment):
42017         (WebCore::ScaledImageFragment::ScaledImageFragment):
42018         (WebCore::ScaledImageFragment::isEqual):
42019         * platform/graphics/chromium/ScaledImageFragment.h: Added.
42020         (WebCore):
42021         (ScaledImageFragment):
42022         (WebCore::ScaledImageFragment::create):
42023         (WebCore::ScaledImageFragment::bitmap):
42024         (WebCore::ScaledImageFragment::isComplete):
42025         * platform/graphics/chromium/ImageFrameGenerator.cpp: Added.
42026         (WebCore):
42027         (WebCore::ImageFrameGenerator::ImageFrameGenerator):
42028         (WebCore::ImageFrameGenerator::~ImageFrameGenerator):
42029         (WebCore::ImageFrameGenerator::decoder):
42030         (WebCore::ImageFrameGenerator::setData):
42031         * platform/graphics/chromium/ImageFrameGenerator.h: Added.
42032         (WebCore):
42033         (ImageFrameGenerator):
42034         (WebCore::ImageFrameGenerator::create):
42035         (WebCore::ImageFrameGenerator::size):
42036         (WebCore::ImageFrameGenerator::imageId):
42037         * platform/graphics/chromium/LazyDecodingPixelRef.cpp: Added.
42038         (WebCore):
42039         (WebCore::LazyDecodingPixelRef::LazyDecodingPixelRef):
42040         (WebCore::LazyDecodingPixelRef::~LazyDecodingPixelRef):
42041         (WebCore::LazyDecodingPixelRef::isScaled):
42042         (WebCore::LazyDecodingPixelRef::isClipped):
42043         (WebCore::LazyDecodingPixelRef::onLockPixels):
42044         (WebCore::LazyDecodingPixelRef::onUnlockPixels):
42045         (WebCore::LazyDecodingPixelRef::onLockPixelsAreWritable):
42046         * platform/graphics/chromium/LazyDecodingPixelRef.h: Added.
42047         (WebCore):
42048         (LazyDecodingPixelRef):
42049         (WebCore::LazyDecodingPixelRef::frameGenerator):
42050         * platform/graphics/skia/NativeImageSkia.cpp:
42051         (WebCore::NativeImageSkia::resizedBitmap):
42052         * platform/image-decoders/ImageDecoder.h:
42053         (ImageFrame):
42054         (WebCore::ImageFrame::setSkBitmap):
42055         (WebCore::ImageFrame::getSkBitmap):
42056
42057 2012-10-18  Yael Aharon  <yael.aharon@intel.com>
42058
42059         [EFL] GraphicsContext3D::m_renderStyle is not initialized
42060         https://bugs.webkit.org/show_bug.cgi?id=99721
42061
42062         Reviewed by Antonio Gomes.
42063
42064         Initialize GraphicsContext3D::m_renderStyle.
42065
42066         No new tests, no new functionality.
42067
42068         * platform/graphics/efl/GraphicsContext3DEfl.cpp:
42069         (WebCore::GraphicsContext3D::GraphicsContext3D):
42070
42071 2012-10-18  Max Vujovic  <mvujovic@adobe.com>
42072
42073         [CSS Shaders] Validate types of built-in vertex attributes
42074         https://bugs.webkit.org/show_bug.cgi?id=98972
42075
42076         Reviewed by Dean Jackson.
42077
42078         Reject custom filters in which the author defined built-in attributes with the wrong type.
42079         For example, the GLSL declaration "attribute float a_position" is incorrect because
42080         a_position should be a vec4, not a float.
42081
42082         Test: css3/filters/custom/invalid-custom-filter-attribute-types.html
42083
42084         * platform/graphics/ANGLEWebKitBridge.h:
42085         (WebCore::ANGLEShaderSymbol::isSampler):
42086             Add const qualifier to isSampler method.
42087         * platform/graphics/filters/CustomFilterValidatedProgram.cpp:
42088         (WebCore):
42089         (WebCore::builtInAttributeNameToTypeMap):
42090             New file static function. Returns a map of the CSS Custom Filters built-in attribute
42091             names and their expected types.
42092         (WebCore::validateSymbols):
42093             New file static function. Loop through all of the symbols. Reject the shader if we find
42094             a built-in attribute defined with the wrong type.
42095         (WebCore::CustomFilterValidatedProgram::CustomFilterValidatedProgram):
42096             Call the new validateSymbols function. If it returns false, exit the constructor early,
42097             which rejects the program.
42098             Move the loop that checks if any uniform is a sampler into the the validateSymbols
42099             function.
42100
42101 2012-10-18  Mike Reed  <reed@google.com>
42102
42103         Handle if we fail to allocate nonPlatformCanvas in ImageBuffer constructor
42104         https://bugs.webkit.org/show_bug.cgi?id=99752
42105
42106         Reviewed by Stephen White.
42107
42108         Current code does not check if we were able to allocate the pixels, but still returns the canvas.
42109         However, the caller explicitly is checking for null on failure, so it will continue (and possibly
42110         crash later on).
42111         This change brings the nonPlatformCanvas behavior inline with createAcceleratedCanvas and
42112         TryCreateBitmapCanvas, both of which are also called by ImageBuffer's constructor.
42113
42114         No new tests. Existing tests exercise ImageBuffer constructor.
42115
42116         * platform/graphics/skia/ImageBufferSkia.cpp:
42117         (WebCore::createNonPlatformCanvas):
42118
42119 2012-10-18  Beth Dakin  <bdakin@apple.com>
42120
42121         https://bugs.webkit.org/show_bug.cgi?id=99668
42122         REGRESSION: Crash in 
42123         WebCore::ScrollingStateScrollingNode::setNonFastScrollableRegion
42124         -and corresponding-
42125         <rdar://problem/12491901>
42126
42127         Reviewed by Simon Fraser.
42128
42129         http://trac.webkit.org/changeset/130783 changed the lifetime of the 
42130         ScrollingStateTree's rootStateNode. Before that patch, the root state 
42131         node was never destroyed. It was just constantly re-used for 
42132         different RenderLayerBackings. This crash is just one of a few bugs 
42133         that has occurred because of that change. I have fixed the other bugs 
42134         individually, but I think that long-term, it is the safest solution 
42135         to go back to the original ownership model.
42136
42137         So this patch ensures that the state tree will always have a root 
42138         state node. Instead of destroying and re-creating the root node when 
42139         it's scroll ID changes, we just update the ID.
42140
42141         attachToStateTree() now takes an additional ID representing the ID of 
42142         the parent node.
42143         * page/scrolling/ScrollingCoordinator.h:
42144         (WebCore::ScrollingCoordinator::attachToStateTree):
42145
42146         Add a way to set the scrolling node ID.
42147         * page/scrolling/ScrollingStateNode.h:
42148         (WebCore::ScrollingStateNode::setScrollingNodeID):
42149
42150         This code that provided a way to mark all properties as having 
42151         changed was added in http://trac.webkit.org/changeset/130989 as a way 
42152         to ensure we would re-set ScrollingThread's nodes when we destroyed 
42153         and re-created the rootStateNode. Now that we are no longer 
42154         destroying and re-creating the rootStateNode, this code is no longer 
42155         necessary.
42156         * page/scrolling/ScrollingStateScrollingNode.cpp:
42157         * page/scrolling/ScrollingStateScrollingNode.h:
42158
42159         create m_rootStateNode right in the ScrollingStateTree's constructor.
42160         * page/scrolling/ScrollingStateTree.cpp:
42161         (WebCore::ScrollingStateTree::ScrollingStateTree):
42162
42163         Don't let removeNode() destroy m_rootStateNode.
42164         (WebCore::ScrollingStateTree::removeNode):
42165
42166         Also a part of r130989 that is no longer needed.
42167         (WebCore::ScrollingStateTree::rootLayerDidChange():
42168         * page/scrolling/ScrollingStateTree.h:
42169         (WebCore::ScrollingStateTree::rootStateNode):
42170         (ScrollingStateTree):
42171         (WebCore::ScrollingStateTree::setRootStateNode):
42172
42173         attachToStateTree() now takes an additional ID representing the ID of 
42174         the parent node.
42175         * page/scrolling/mac/ScrollingCoordinatorMac.h:
42176         (ScrollingCoordinatorMac):
42177
42178         We no longer need ScrollingStateTree::rootLayerDidChange()
42179         * page/scrolling/mac/ScrollingCoordinatorMac.mm:
42180         (WebCore::ScrollingCoordinatorMac::frameViewRootLayerDidChange):
42181
42182         Do not destroy and re-create the state node. Just update its ID. When 
42183         we support child nodes soon, we will create them in this function.
42184         (WebCore::ScrollingCoordinatorMac::attachToStateTree):
42185
42186         No need to null-check the rootStateNode.
42187         (WebCore::ScrollingCoordinatorMac::clearStateTree):
42188
42189         Send 0 as the parent node ID to attachToStateTree() to represent the 
42190         root node.
42191         (WebCore::ScrollingCoordinatorMac::ensureRootStateNodeForFrameView):
42192         * rendering/RenderLayerBacking.cpp:
42193
42194         RenderLayerBacking::attachToScrollingCoordinator() now takes a parent 
42195         layer.
42196         (WebCore::RenderLayerBacking::attachToScrollingCoordinator):
42197         * rendering/RenderLayerBacking.h:
42198         (RenderLayerBacking):
42199
42200         Since this is the root, send 0 to represent the parent layer.
42201         * rendering/RenderLayerCompositor.cpp:
42202         (WebCore::RenderLayerCompositor::updateBacking):
42203
42204 2012-10-18  Yael Aharon  <yael.aharon@intel.com>
42205
42206         [EFL] GraphicsContext3D::m_renderStyle is not initialized
42207         https://bugs.webkit.org/show_bug.cgi?id=99721
42208
42209         Reviewed by Antonio Gomes.
42210
42211         Initialize GraphicsContext3D::m_renderStyle.
42212
42213         No new tests, no new functionality.
42214
42215         * platform/graphics/efl/GraphicsContext3DEfl.cpp:
42216         (WebCore::GraphicsContext3D::GraphicsContext3D):
42217
42218 2012-10-18  Brian White  <bcwhite@chromium.org>
42219
42220         WebKit Doesn't Recognize Content-Language HTTP Header
42221         https://bugs.webkit.org/show_bug.cgi?id=97929
42222
42223         Reviewed by Alexey Proskuryakov.
42224
42225         The HTTP "Content-Language" header may be present and include the
42226         language of the page contents (as opposed to an embedded meta tag).
42227
42228         * loader/FrameLoader.cpp:
42229         (WebCore::FrameLoader::didBeginDocument):
42230
42231 2012-10-18  Jer Noble  <jer.noble@apple.com>
42232
42233         Crash in WebCore::Document::webkitExitFullscreen + 618
42234         https://bugs.webkit.org/show_bug.cgi?id=99496
42235
42236         Reviewed by Eric Carlson.
42237
42238         Prospective fix for null-dereference crash in Document::webkitExitFullscreen().
42239
42240         * dom/Document.cpp:
42241         (WebCore::Document::webkitExitFullscreen): Null check page() before calling page()->chrome.
42242
42243 2012-10-18  Pablo Flouret  <pablof@motorola.com>
42244
42245         Implement css3-conditional's @supports rule
42246         https://bugs.webkit.org/show_bug.cgi?id=86146
42247
42248         Reviewed by Antti Koivisto.
42249
42250         The "@supports" rule is a conditional group rule whose condition tests
42251         whether the user agent supports CSS property:value pairs.
42252
42253         http://dev.w3.org/csswg/css3-conditional/#at-supports
42254
42255         Test: css3/supports.html
42256
42257         * Configurations/FeatureDefines.xcconfig:
42258         * GNUmakefile.am:
42259         * GNUmakefile.features.am:
42260             Add an ENABLE_CSS3_CONDITIONAL_RULES flag.
42261
42262         * css/CSSGrammar.y.in:
42263         * css/CSSParser.cpp:
42264         (WebCore):
42265         (WebCore::CSSParser::detectSupportsToken): Tries to find 'and', 'not' and 'or' tokens.
42266         (WebCore::CSSParser::detectAtToken): Enter SupportsMode if @supports is detected.
42267         (WebCore::CSSParser::realLex): Try to detect supports tokens when in SupportsMode.
42268         * css/CSSParser.h: Added new SupportsMode parsing mode.
42269         (CSSParser):
42270
42271 2012-10-18  Marja Hölttä  <marja@chromium.org>
42272
42273         Fix: CachedResourceLoader::requestSVGDocument was passing an URL as charset
42274         https://bugs.webkit.org/show_bug.cgi?id=99730
42275
42276         Reviewed by Jochen Eisinger.
42277
42278         * loader/cache/CachedResourceLoader.cpp:
42279         (WebCore::CachedResourceLoader::requestSVGDocument):
42280
42281 2012-10-18  Jer Noble  <jer.noble@apple.com>
42282
42283         Fullscreen movie controls behave incorrectly when clicked (and dragged)
42284         https://bugs.webkit.org/show_bug.cgi?id=99610
42285
42286         Reviewed by Eric Carlson.
42287
42288         Do not reset the relative drag position to 0,0 at the beginning of every drag.  Instead,
42289         store the cumulative drag offset and accumulate during each additional drag.
42290
42291         No new tests; modified the fullscreen/video-controls-drag.html test.
42292
42293         * html/shadow/MediaControlElements.cpp:
42294         (WebCore::MediaControlPanelElement::startDrag): Reset m_lastDragEventLocation.
42295         (WebCore::MediaControlPanelElement::continueDrag): Accumulate drag distance in m_cumulativeDragOffset.
42296         (WebCore::MediaControlPanelElement::resetPosition): Reset m_cumulativeDragOffset.
42297         * html/shadow/MediaControlElements.h:
42298
42299 2012-10-18  Brandon Jones  <bajones@google.com>
42300
42301         Implement OES_element_index_uint / WEBKIT_OES_element_index_uint
42302         https://bugs.webkit.org/show_bug.cgi?id=97400
42303
42304         Reviewed by Kenneth Russell.
42305
42306         Implemented OES_element_index_uint WebGL extension
42307
42308         Test: fast/canvas/webgl/oes-element-index-uint.html
42309
42310         * CMakeLists.txt:
42311         * DerivedSources.make:
42312         * DerivedSources.pri:
42313         * GNUmakefile.list.am:
42314         * Target.pri:
42315         * WebCore.gypi:
42316         * WebCore.xcodeproj/project.pbxproj:
42317         * bindings/js/JSWebGLRenderingContextCustom.cpp:
42318         (WebCore::toJS):
42319         * bindings/v8/custom/V8WebGLRenderingContextCustom.cpp:
42320         (WebCore::toV8Object):
42321         * html/canvas/OESElementIndexUint.cpp: Copied from Source/WebCore/html/canvas/WebGLExtension.h.
42322         (WebCore):
42323         (WebCore::OESElementIndexUint::OESElementIndexUint):
42324         (WebCore::OESElementIndexUint::~OESElementIndexUint):
42325         (WebCore::OESElementIndexUint::getName):
42326         (WebCore::OESElementIndexUint::create):
42327         * html/canvas/OESElementIndexUint.h: Copied from Source/WebCore/html/canvas/WebGLExtension.h.
42328         (WebCore):
42329         (OESElementIndexUint):
42330         * html/canvas/OESElementIndexUint.idl: Copied from Source/WebCore/html/canvas/WebGLExtension.h.
42331         * html/canvas/WebGLExtension.h:
42332         * html/canvas/WebGLRenderingContext.cpp:
42333         (WebCore):
42334         (WebCore::WebGLRenderingContext::validateElementArraySize):
42335         (WebCore::WebGLRenderingContext::validateIndexArrayConservative):
42336         (WebCore::WebGLRenderingContext::validateIndexArrayPrecise):
42337         (WebCore::WebGLRenderingContext::validateRenderingState):
42338         (WebCore::WebGLRenderingContext::drawElements):
42339         (WebCore::WebGLRenderingContext::getExtension):
42340         (WebCore::WebGLRenderingContext::getSupportedExtensions):
42341         * html/canvas/WebGLRenderingContext.h:
42342         (WebCore):
42343         (WebGLRenderingContext):
42344         * platform/graphics/Extensions3D.h:
42345         (Extensions3D):
42346         * platform/graphics/opengl/Extensions3DOpenGL.cpp:
42347         (WebCore::Extensions3DOpenGL::supportsExtension):
42348
42349 2012-10-18  Jer Noble  <jer.noble@apple.com>
42350
42351         Add diagnostic logging to track per-page media engine usage.
42352         https://bugs.webkit.org/show_bug.cgi?id=99615
42353         <rdar://problem/12476473>
42354
42355         Reviewed by Eric Carlson.
42356
42357         Add diagnostic logging triggered only once-per-page and once-per-page-per-engine.
42358
42359         * html/HTMLMediaElement.cpp:
42360         (WebCore::logMediaLoadRequest): Encapsulate diagnostic logging into single static method.
42361         (WebCore::HTMLMediaElement::mediaLoadingFailed): Call logMediaLoadRequest.
42362         (WebCore::HTMLMediaElement::setReadyState): Ditto.
42363         * loader/FrameLoader.cpp:
42364         (WebCore::FrameLoader::dispatchDidCommitLoad): Reset the set of seen media engines.
42365
42366         Add new methods to Page to track per-page media engine diagnostic info, similar to plugin diagnostic info.
42367         * page/Page.cpp:
42368         (WebCore::Page::hasSeenAnyMediaEngine):
42369         (WebCore::Page::hasSeenMediaEngine):
42370         (WebCore::Page::sawMediaEngine):
42371         (WebCore::Page::resetSeenMediaEngines):
42372         * page/Page.h:
42373
42374         Add new static logging key definitions:
42375         * page/DiagnosticLoggingKeys.cpp:
42376         (WebCore::DiagnosticLoggingKeys::pageContainsMediaEngineKey):
42377         (WebCore::DiagnosticLoggingKeys::pageContainsAtLeastOneMediaEngineKey):
42378         * page/DiagnosticLoggingKeys.h:
42379
42380 2012-10-18  Michael Saboff  <msaboff@apple.com>
42381
42382         Add 8-bit path to RenderBlock::handleTrailingSpaces()
42383         https://bugs.webkit.org/show_bug.cgi?id=99731
42384
42385         Reviewed by Dan Bernstein.
42386
42387         Factored out and added findFirstTrailingSpace() templated helper function that is called with the 
42388         approriate character pointer type.
42389
42390         No tests needed, change covered by existing tests.
42391
42392         * rendering/RenderBlockLineLayout.cpp:
42393         (WebCore::findFirstTrailingSpace):
42394         (WebCore::RenderBlock::handleTrailingSpaces):
42395
42396 2012-10-18  Hans Muller  <hmuller@adobe.com>
42397
42398         [CSS Exclusions] Add ExclusionShape::shapeBoundingBox() method
42399         https://bugs.webkit.org/show_bug.cgi?id=99216
42400
42401         Reviewed by Dirk Schulze.
42402
42403         Added a FloatRect::extend() method which simplifies writing loops that
42404         accumulate the bounding box for a sequence of FloatPoints. The new method
42405         is used by ExclusionPolygon to initialize the shape's logical and physical
42406         bounding boxes. This a clean-up, not a change in functionality. It's already
42407         covered by the existing fast/exclusions LayoutTests.
42408
42409         * platform/graphics/FloatRect.cpp:
42410         (WebCore::FloatRect::extend): Extend the FloatRect's bounds to include a FloatPoint.
42411         (WebCore):
42412         * platform/graphics/FloatRect.h:
42413         (FloatRect): Added extend() method.
42414         * rendering/ExclusionPolygon.cpp:
42415         (WebCore::ExclusionPolygon::ExclusionPolygon): Use FloatRect::extend() to compute the polygon's internal bounding box.
42416         * rendering/ExclusionShape.cpp:
42417         (WebCore::ExclusionShape::createExclusionShape): Use FloatRect::extend() to compute the polygon's physical bounding box.
42418         * rendering/ExclusionShape.h:
42419         (WebCore::ExclusionShape::shapeBoundingBox): Return the shape's bounding box in physical coordinates.
42420         (ExclusionShape):
42421
42422 2012-10-18  Hans Muller  <hmuller@adobe.com>
42423
42424         [CSS Exclusions] Handle special case "empty" shapes
42425         https://bugs.webkit.org/show_bug.cgi?id=99342
42426
42427         Reviewed by Dirk Schulze.
42428
42429         Provide expclit coverage of the simple "empty" shape-inside shapes.
42430         Shapes will be considered "empty" in the sense that ExclusionShape::getIncludedIntervals()
42431         and ExclusionShape::getExcludedIntervals() will always return empty lists of intervals.
42432         This patch covers rectangles of zero width or height, circles with 0 radius, ellipses
42433         with 0 radiusX or radiusY, polygons with less than 3 vertices.
42434
42435         Test: fast/exclusions/shape-inside/shape-inside-empty.html
42436
42437         * rendering/ExclusionPolygon.cpp:
42438         (WebCore::ExclusionPolygon::ExclusionPolygon): Initialize the m_empty flag.
42439         (WebCore::ExclusionPolygon::getExcludedIntervals): Added short-circuit return when the polygon is empty.
42440         (WebCore::ExclusionPolygon::getIncludedIntervals): Added short-circuit return when the polygon is empty.
42441         * rendering/ExclusionPolygon.h: Added the isEmpty() method.
42442         * rendering/ExclusionRectangle.cpp:
42443         (WebCore::ExclusionRectangle::getExcludedIntervals): Added short-circuit return when the rectangle is empty.
42444         (WebCore::ExclusionRectangle::getIncludedIntervals): Added short-circuit return when the rectangle is empty.
42445         * rendering/ExclusionRectangle.h: Added the isEmpty() method.
42446         * rendering/ExclusionShape.h: Added a virtual isEmpty() ExclusionShape method.
42447         (ExclusionShape):
42448
42449 2012-10-18  Takashi Sakamoto  <tasak@google.com>
42450
42451         REGRESSION(r131464): Null-pointer crash in StyleResolver::styleForElement
42452         https://bugs.webkit.org/show_bug.cgi?id=99587
42453
42454         Reviewed by Dimitri Glazkov.
42455
42456         Since contents in datalist are not shown, summary in datalist is not
42457         shown either. So the summary has no render style. On the other hand,
42458         the summary is implemented by shadow DOM and it has some insertion
42459         point. Its child, e.g. title in the below test, is distributed.
42460         To solve the child's user-modify, looking at shadow host(=summary)'s
42461         style causes null-pointer crash.
42462
42463         Test: fast/dom/shadow/user-modify-in-datalist-crash.html
42464
42465         * css/StyleResolver.cpp:
42466         (WebCore::StyleResolver::styleForElement):
42467         Added a code to check whether the shadow host has any style or not.
42468
42469 2012-10-17  Philippe Normand  <pnormand@igalia.com>
42470
42471         [GTK] AudioBusGtk sometimes fails to load the HRTF database
42472         https://bugs.webkit.org/show_bug.cgi?id=99601
42473
42474         Reviewed by Martin Robinson.
42475
42476         AudioBusGtk now first lookup for the uninstalled resource files,
42477         if the AUDIO_RESOURCES_PATH environment variable is
42478         set. Additionally the audio file reader is now better dealing with
42479         errors, returning an empty AudioBus in such cases and issuing
42480         warnings on the console output. The cleanup of some member
42481         variables was also moved to the destructor.
42482
42483         * platform/audio/gstreamer/AudioFileReaderGStreamer.cpp:
42484         (AudioFileReader):
42485         (WebCore::AudioFileReader::AudioFileReader):
42486         (WebCore::AudioFileReader::~AudioFileReader): Clear and free
42487         member variables. This was done in createBus before.
42488         (WebCore::AudioFileReader::handleMessage): Issue warnings in case
42489         of error and exit from the main loop so the pipeline is not
42490         forever stuck.
42491         (WebCore::AudioFileReader::createBus): Return an empty bus in case
42492         of error.
42493         * platform/audio/gtk/AudioBusGtk.cpp:
42494         (WebCore::AudioBus::loadPlatformResource): Load uninstalled
42495         resources first if AUDIO_RESOURCES_PATH is set.
42496
42497 2012-10-18  Pavel Feldman  <pfeldman@chromium.org>
42498
42499         Web Inspector: provisional change for merging "doced" state into the "dock side" enum.
42500         https://bugs.webkit.org/show_bug.cgi?id=99718
42501
42502         Reviewed by Vsevolod Vlasov.
42503
42504         Adds stub method that could be executed from the embedder.
42505
42506         * inspector/front-end/InspectorFrontendAPI.js:
42507         (InspectorFrontendAPI.setDockSide):
42508
42509 2012-10-18  Kent Tamura  <tkent@chromium.org>
42510
42511         Add Localizer::monthFormat and implementations
42512         https://bugs.webkit.org/show_bug.cgi?id=99704
42513
42514         Reviewed by Kentaro Hara.
42515
42516         Localizer::monthFormat will be used for constructing input[type=month] UI.
42517
42518         Tests: Add unit tests to Source/WebKit/chromium/tests/.
42519
42520         * platform/text/Localizer.h:
42521         (Localizer): Declare pure virtual monthFormat function.
42522
42523         * platform/text/LocaleNone.cpp:
42524         (LocaleNone): Declare monthFormat.
42525         (WebCore::LocaleNone::monthFormat):
42526         Added. Always reutrns an ISO-8601 format, "yyyy-MM"
42527
42528         * platform/text/LocaleICU.h:
42529         (LocaleICU): Declare monthFormat.
42530         * platform/text/LocaleICU.cpp:
42531         (WebCore::getFormatForSkeleton):
42532         A helper to get a format for the specified skeleton.
42533         The overflow-allocalte-try-again pattern is similar to
42534         LocaleICU::decimalSymbol and LocaleICU::decimalTextAttribute.
42535         (WebCore::LocaleICU::monthFormat):
42536         Added. Calls getFormatForSkeleton with "yyyyMMM".
42537
42538         * platform/text/mac/LocaleMac.h:
42539         (LocaleMac): Declare monthFormat.
42540         * platform/text/mac/LocaleMac.mm:
42541         (WebCore::LocaleMac::monthFormat):
42542         Added. Calls NSDateFormatter::dateFormatFromTemplate with "yyyyMMM".
42543
42544         * platform/text/LocaleWin.h:
42545         (LocaleWin): Declare monthFormat.
42546         * platform/text/LocaleWin.cpp:
42547         (WebCore::LocaleWin::monthFormat):
42548         Get a format by LOCALE_SYEARMONTH, and convert it to an LDML format.
42549
42550 2012-10-18  Pavel Feldman  <pfeldman@chromium.org>
42551
42552         Web Inspector: add X-WebKit-CSP header into inspector.html
42553         https://bugs.webkit.org/show_bug.cgi?id=99710
42554
42555         Reviewed by Vsevolod Vlasov.
42556
42557         A simple sanity measure.
42558
42559         * inspector/front-end/inspector.html:
42560
42561 2012-10-18  Huang Dongsung  <luxtella@company100.net>
42562
42563         [WK2] Add CustomFilterOperation serialization in ArgumentCoder.
42564         https://bugs.webkit.org/show_bug.cgi?id=98733
42565
42566         Reviewed by Noam Rosenthal.
42567
42568         Change CustomFilterOperation::parameters() to const function, because
42569         this method is a getter and a const instance needs to call this method.
42570
42571         No new tests because there is no change in behavior.
42572
42573         * platform/graphics/filters/CustomFilterOperation.h:
42574         (WebCore::CustomFilterOperation::parameters):
42575
42576 2012-10-18  Hayato Ito  <hayato@chromium.org>
42577
42578         treeScopeOfParent doesn't return the TreeScope of the parent
42579         https://bugs.webkit.org/show_bug.cgi?id=98207
42580
42581         Reviewed by Hajime Morita.
42582
42583         A minor clean up. Remove treeScopeOfParent() in Element.cpp.
42584
42585         No tests needed, this is just a clean up.
42586
42587         * dom/Element.cpp:
42588         (WebCore::Element::removedFrom):
42589
42590 2012-10-18  Alexander Pavlov  <apavlov@chromium.org>
42591
42592         Web Inspector: [Styles] Forcibly invoke property names suggestion box for empty prefix
42593         https://bugs.webkit.org/show_bug.cgi?id=99711
42594
42595         Reviewed by Vsevolod Vlasov.
42596
42597         Suggestions should be returned unconditionally for CSS property names, regardless of the prefix.
42598
42599         * inspector/front-end/CSSCompletions.js:
42600         (WebInspector.CSSCompletions):
42601         (WebInspector.CSSCompletions.requestCSSNameCompletions):
42602         (WebInspector.CSSCompletions.prototype._firstIndexOfPrefix):
42603         * inspector/front-end/CSSKeywordCompletions.js:
42604         (WebInspector.CSSKeywordCompletions.forProperty):
42605
42606 2012-10-18  Raphael Kubo da Costa  <raphael.kubo.da.costa@intel.com>
42607
42608         Unreviewed, do not make UseV8.cmake executable.
42609
42610         * UseV8.cmake: Removed property svn:executable.
42611
42612 2012-10-18  Tommy Widenflycht  <tommyw@google.com>
42613
42614         MediaStream API: Add better RTCPeerConnectionHandler creation logic
42615         https://bugs.webkit.org/show_bug.cgi?id=99308
42616
42617         Reviewed by Adam Barth.
42618
42619         This patch makes sure that if the RTCPeerConnectionHandler can't be fully initialized/created
42620         the RTCPeerConnection constructor throws an exception.
42621
42622         Not full testable, existing tests cover the normal case though.
42623
42624         * platform/mediastream/chromium/RTCPeerConnectionHandlerChromium.cpp:
42625         (WebCore::RTCPeerConnectionHandler::create):
42626         (WebCore::RTCPeerConnectionHandlerChromium::RTCPeerConnectionHandlerChromium):
42627         (WebCore::RTCPeerConnectionHandlerChromium::createWebHandler):
42628         (WebCore::RTCPeerConnectionHandlerChromium::initialize):
42629         (WebCore::RTCPeerConnectionHandlerChromium::createOffer):
42630         (WebCore::RTCPeerConnectionHandlerChromium::createAnswer):
42631         (WebCore::RTCPeerConnectionHandlerChromium::setLocalDescription):
42632         (WebCore::RTCPeerConnectionHandlerChromium::setRemoteDescription):
42633         (WebCore::RTCPeerConnectionHandlerChromium::updateIce):
42634         (WebCore::RTCPeerConnectionHandlerChromium::addIceCandidate):
42635         (WebCore::RTCPeerConnectionHandlerChromium::localDescription):
42636         (WebCore::RTCPeerConnectionHandlerChromium::remoteDescription):
42637         (WebCore::RTCPeerConnectionHandlerChromium::addStream):
42638         (WebCore::RTCPeerConnectionHandlerChromium::removeStream):
42639         (WebCore::RTCPeerConnectionHandlerChromium::getStats):
42640         (WebCore::RTCPeerConnectionHandlerChromium::openDataChannel):
42641         (WebCore::RTCPeerConnectionHandlerChromium::sendStringData):
42642         (WebCore::RTCPeerConnectionHandlerChromium::sendRawData):
42643         (WebCore::RTCPeerConnectionHandlerChromium::closeDataChannel):
42644         (WebCore::RTCPeerConnectionHandlerChromium::stop):
42645         * platform/mediastream/chromium/RTCPeerConnectionHandlerChromium.h:
42646         (RTCPeerConnectionHandlerChromium):
42647
42648 2012-10-19  Zeno Albisser  <zeno@webkit.org>
42649
42650         Temporarily disable use of QCocoaNativeInterface in GraphicsSurfaceMac.
42651         https://bugs.webkit.org/show_bug.cgi?id=99320
42652
42653         The current version of Qt5 deployed on the buildbots does not yet have
42654         an implementation for QCocoaNativeInterface::nativeResourceForContext().
42655         Therefore we disable this code path until Qt5/qtbase has been updated to
42656         a revision above Change-Id: Id00efc88a73d7df04a68c022f19d9d1c4f6d386b.
42657
42658         Once Qt5 has been updated, this patch must be reverted.
42659
42660         Reviewed by Noam Rosenthal.
42661
42662         * platform/graphics/surfaces/mac/GraphicsSurfaceMac.cpp:
42663         (WebCore::GraphicsSurfacePrivate::GraphicsSurfacePrivate):
42664
42665 2012-10-18  Zeno Albisser  <zeno@webkit.org>
42666
42667         GraphicsSurface should not modify the current GL context.
42668         https://bugs.webkit.org/show_bug.cgi?id=99320
42669
42670         Instead of reusing the currently bound GL context for drawing
42671         the texture onto the GraphicsSurface, GraphicsSurface should
42672         create a new context that shares the texture names with a context
42673         provided by the caller.
42674         This way the OpenGL states are clearly separated and we do not
42675         risk interfeering with the currently bound GL context.
42676
42677         Reviewed by Noam Rosenthal.
42678
42679         * platform/graphics/qt/GraphicsContext3DQt.cpp:
42680         (WebCore::GraphicsContext3DPrivate::GraphicsContext3DPrivate):
42681             When creating a GraphicsSurface pass the platform GL context
42682             as a parameter, so it can be used for sharing textures with.
42683         (WebCore::GraphicsContext3DPrivate::copyToGraphicsSurface):
42684             Pass the texture instead of the FBO. A Texture can be drawn
42685             directly or bound to another FBO, where a framebuffer
42686             always needs to be blit onto the surface.
42687         (WebCore::GraphicsContext3DPrivate::createGraphicsSurfaces):
42688             Pass the platform GL context as a parameter.
42689         * platform/graphics/surfaces/GraphicsSurface.cpp:
42690         (WebCore::GraphicsSurface::create):
42691         (WebCore::GraphicsSurface::copyFromTexture):
42692         * platform/graphics/surfaces/GraphicsSurface.h:
42693         (GraphicsSurface):
42694         * platform/graphics/surfaces/mac/GraphicsSurfaceMac.cpp:
42695         (WebCore::GraphicsSurfacePrivate::GraphicsSurfacePrivate):
42696             Create a new GL context that shares the textures with the
42697             context provided by the caller.
42698         (WebCore::GraphicsSurfacePrivate::~GraphicsSurfacePrivate):
42699         (WebCore::GraphicsSurfacePrivate::makeCurrent):
42700             Add a convenience function to make the context that
42701             belongs to the surface current.
42702         (GraphicsSurfacePrivate):
42703         (WebCore::GraphicsSurfacePrivate::doneCurrent):
42704             Add a convenience function to make the previously
42705             bound context current again.
42706         (WebCore::GraphicsSurfacePrivate::copyFromTexture):
42707             Move blitting of the texture onto the surface
42708             into a separate function within GraphicsSurfacePrivate.
42709         (WebCore::GraphicsSurface::platformCopyFromTexture):
42710             Rename function platformCopyFromFramebuffer to
42711             platformCopyFromTexture, as we are now passing the texture only.
42712         (WebCore::GraphicsSurface::platformCreate):
42713         * platform/graphics/surfaces/qt/GraphicsSurfaceGLX.cpp:
42714         (WebCore):
42715         (WebCore::GraphicsSurfacePrivate::GraphicsSurfacePrivate):
42716         (WebCore::GraphicsSurfacePrivate::makeCurrent):
42717             Add a convenience function to make the context that
42718             belongs to the surface current.
42719         (GraphicsSurfacePrivate):
42720         (WebCore::GraphicsSurfacePrivate::doneCurrent):
42721             Add a convenience function to make the previously
42722         (WebCore::GraphicsSurfacePrivate::copyFromTexture):
42723             Move blitting of the texture onto the surface
42724             into a separate function within GraphicsSurfacePrivate.
42725         (WebCore::resolveGLMethods):
42726             Resolve additional GL methods necessary for this change.
42727         (WebCore::GraphicsSurface::platformCopyFromTexture):
42728             Rename function platformCopyFromFramebuffer to
42729             platformCopyFromTexture, as we are now passing the texture only.
42730         (WebCore::GraphicsSurface::platformCreate):
42731
42732 2012-10-18  Kent Tamura  <tkent@chromium.org>
42733
42734         Set min-width property instead of width property for date/time fields
42735         https://bugs.webkit.org/show_bug.cgi?id=99673
42736
42737         Reviewed by Hajime Morita.
42738
42739         A field can have a text wider than pre-computed width because of
42740         :first-letter property. So, we should set min-width, not width.
42741
42742         Tests: Covered by fast/forms/*-multiple-fields/*-multipe-fields-appearance-style.html
42743
42744         * html/shadow/DateTimeNumericFieldElement.cpp:
42745         (WebCore::DateTimeNumericFieldElement::customStyleForRenderer):
42746         Set min-width instead of width.
42747         * html/shadow/DateTimeSymbolicFieldElement.cpp:
42748         (WebCore::DateTimeSymbolicFieldElement::customStyleForRenderer): Ditto.
42749
42750 2012-10-18  MORITA Hajime  <morrita@google.com>
42751
42752         Assertion failure at TreeScopeAdopter::moveNodeToNewDocument()
42753         https://bugs.webkit.org/show_bug.cgi?id=99510
42754
42755         Reviewed by Kent Tamura.
42756
42757         Shadow DOM notification call didn't have checks for mutation detection.
42758         This change adds such checks.
42759
42760         Test: fast/forms/textarea/textarea-autofocus-removal-while-focusing-with-style.html
42761
42762         * dom/ContainerNodeAlgorithms.cpp:
42763         (WebCore::ChildNodeInsertionNotifier::notifyDescendantInsertedIntoDocument):
42764         (WebCore::ChildNodeRemovalNotifier::notifyDescendantRemovedFromDocument):
42765
42766 2012-10-17  Kentaro Hara  <haraken@chromium.org>
42767
42768         Unreviewed. Rebaselined run-bindings-tests.
42769
42770         * bindings/scripts/test/V8/V8Float64Array.h:
42771         (V8Float64Array):
42772         * bindings/scripts/test/V8/V8TestActiveDOMObject.h:
42773         (V8TestActiveDOMObject):
42774         * bindings/scripts/test/V8/V8TestCustomNamedGetter.h:
42775         (V8TestCustomNamedGetter):
42776         * bindings/scripts/test/V8/V8TestEventConstructor.h:
42777         (V8TestEventConstructor):
42778         * bindings/scripts/test/V8/V8TestEventTarget.h:
42779         (V8TestEventTarget):
42780         * bindings/scripts/test/V8/V8TestException.h:
42781         (V8TestException):
42782         * bindings/scripts/test/V8/V8TestInterface.h:
42783         (V8TestInterface):
42784         * bindings/scripts/test/V8/V8TestMediaQueryListListener.h:
42785         (V8TestMediaQueryListListener):
42786         * bindings/scripts/test/V8/V8TestNamedConstructor.h:
42787         (V8TestNamedConstructor):
42788         * bindings/scripts/test/V8/V8TestNode.h:
42789         (V8TestNode):
42790         * bindings/scripts/test/V8/V8TestObj.h:
42791         (V8TestObj):
42792         * bindings/scripts/test/V8/V8TestSerializedScriptValueInterface.h:
42793         (V8TestSerializedScriptValueInterface):
42794
42795 2012-10-17  Mike West  <mkwst@chromium.org>
42796
42797         Move mixed content logic out of FrameLoader
42798         https://bugs.webkit.org/show_bug.cgi?id=45638
42799
42800         Reviewed by Eric Seidel.
42801
42802         This change moves checks for mixed content out of FrameLoader, and into
42803         a new MixedContentChecker object. It's a pretty straightforward
42804         refactoring with no change to the overall logic, and only minor changes
42805         to the code to reduce repetition.
42806
42807         The only substantive change is renaming the methods from 'checkIf*' to
42808         'can*' to reflect the value of the boolean they return.
42809
42810         The visible functionality shouldn't change; this change should be
42811         covered by existing tests in http/tests/security/mixedContent.
42812
42813         This patch is mostly a revitalization of Eric Sidel's original
42814         patch: https://bugs.webkit.org/attachment.cgi?id=67432&action=prettypatch
42815
42816         * CMakeLists.txt:
42817         * GNUmakefile.list.am:
42818         * Target.pri:
42819         * WebCore.gypi:
42820         * WebCore.vcproj/WebCore.vcproj:
42821         * WebCore.xcodeproj/project.pbxproj:
42822             Hey, look! A new file!
42823         * loader/FrameLoader.cpp:
42824         (WebCore::FrameLoader::FrameLoader):
42825         * loader/FrameLoader.h:
42826         (WebCore::FrameLoader::mixedContentChecker):
42827         (FrameLoader):
42828         * loader/MixedContentChecker.cpp: Added.
42829         (WebCore):
42830         (WebCore::MixedContentChecker::MixedContentChecker):
42831         (WebCore::MixedContentChecker::client):
42832         (WebCore::asUTF8):
42833         (WebCore::MixedContentChecker::isMixedContent):
42834         (WebCore::MixedContentChecker::canDisplayInsecureContent):
42835         (WebCore::MixedContentChecker::canRunInsecureContent):
42836         (WebCore::MixedContentChecker::logWarning):
42837         * loader/MixedContentChecker.h: Added.
42838         (WebCore):
42839         (MixedContentChecker):
42840             Migrate functionality from FrameLoader::checkIf* to
42841             MixedContentChecker::can*.
42842         * loader/MainResourceLoader.cpp:
42843         (WebCore::MainResourceLoader::willSendRequest):
42844         * loader/SubframeLoader.cpp:
42845         (WebCore::SubframeLoader::pluginIsLoadable):
42846         (WebCore::SubframeLoader::loadMediaPlayerProxyPlugin):
42847         * loader/cache/CachedResourceLoader.cpp:
42848         (WebCore::CachedResourceLoader::checkInsecureContent):
42849             Use the new method locations.
42850
42851 2012-10-17  Dan Bernstein  <mitz@apple.com>
42852
42853         REGRESSION (r95391): ComplexTextController is unnecessarily slow with characters with combining marks when the base character is not covered by any font
42854         https://bugs.webkit.org/show_bug.cgi?id=99654
42855
42856         Reviewed by Adele Peterson.
42857
42858         When the base character of a combining character sequence is not covered by any one of the
42859         available fonts, there is no point looking for a font that covers the entire sequence, nor
42860         to try to use a combination of fallback fonts for the entire sequence.
42861
42862         * platform/graphics/SimpleFontData.h:
42863         (WebCore::SimpleFontData::systemFallback): Moved ComplexTextController::systemFallbackFontData
42864         here and renamed it.
42865         * platform/graphics/mac/ComplexTextController.cpp:
42866         (WebCore::ComplexTextController::collectComplexTextRuns): This function used to use
42867         systemFallbackFontData() whenever Font::fontDataForCombiningCharacterSequence returned 0
42868         for a base character with combining marks, regardless of whether the base character was
42869         covered by any font. Changed it to preserve the return value of
42870         fontDataForCombiningCharacterSequence, which is now 0 only if the base charcater is not in
42871         any font, while systemFallbackFontData() is used to indicate that no single font in the
42872         fallback list covers all characters in the sequence, but the base character is in some font.
42873         * platform/graphics/mac/ComplexTextController.h:
42874         (ComplexTextController): Moved systemFallbackFontData from here to SimpleFontData.
42875         * platform/graphics/mac/ComplexTextControllerCoreText.mm:
42876         (WebCore::ComplexTextController::collectComplexTextRunsForCharacters): Updated for the above
42877         move.
42878         * platform/graphics/mac/FontComplexTextMac.cpp:
42879         (WebCore::Font::fontDataForCombiningCharacterSequence): Changed to return
42880         systemFallbackFontData() if no single font in the fallback list covers all characters in the
42881         sequence, while using 0 to signal the base character does not exist in any font.
42882
42883 2012-10-17  Dan Bernstein  <mitz@apple.com>
42884
42885         Try to fix the build after r131701.
42886
42887         * WebCore.exp.in:
42888
42889 2012-10-17  Hayato Ito  <hayato@chromium.org>
42890
42891         Content element does not expose distributedNodes property.
42892         https://bugs.webkit.org/show_bug.cgi?id=99232
42893
42894         Reviewed by Dimitri Glazkov.
42895
42896         Add getDistributedNodes() to HTMLContentElement's IDL, which returns a
42897         static NodeList whose node are distributed to the content element.
42898
42899         Test: fast/dom/shadow/content-element-distributed-nodes.html
42900
42901         * html/shadow/HTMLContentElement.idl:
42902         * html/shadow/InsertionPoint.cpp:
42903         (WebCore::InsertionPoint::getDistributedNodes):
42904         * html/shadow/InsertionPoint.h:
42905         (InsertionPoint):
42906         * testing/Internals.cpp:
42907         * testing/Internals.h:
42908         (Internals):
42909         * testing/Internals.idl:
42910
42911 2012-10-17  Pan Deng  <pan.deng@intel.com>
42912
42913         [User Timing] implement main interface in of User Timing, according to http://www.w3.org/TR/2012/CR-user-timing-20120726/
42914         https://bugs.webkit.org/show_bug.cgi?id=90963
42915
42916         Reviewed by Tony Gentilcore.
42917
42918         This patch implemented mark(), measure(), clearMarks() and clearMeasures() interface of User Timing. Getters are not exposed by Performance Timeline yet, it will be future patch.
42919
42920         Tests: http/tests/w3c/webperf/submission/user-timing/test_user_timing_clearMarks.html
42921                http/tests/w3c/webperf/submission/user-timing/test_user_timing_clearMeasures.html
42922                http/tests/w3c/webperf/submission/user-timing/test_user_timing_mark.html
42923                http/tests/w3c/webperf/submission/user-timing/test_user_timing_mark_exception.html
42924                http/tests/w3c/webperf/submission/user-timing/test_user_timing_measure.html
42925                http/tests/w3c/webperf/submission/user-timing/test_user_timing_measure_associate_with_navigation_timing.html
42926                http/tests/w3c/webperf/submission/user-timing/test_user_timing_measure_exception.html
42927                http/tests/w3c/webperf/submission/user-timing/test_user_timing_method_exist.html
42928
42929         * GNUmakefile.list.am:
42930         * WebCore.gypi:
42931         * page/Performance.cpp:
42932         (WebCore::Performance::webkitGetEntries):
42933         (WebCore::Performance::webkitGetEntriesByType):
42934         (WebCore::Performance::webkitGetEntriesByName):
42935         (WebCore):
42936         (WebCore::Performance::webkitMark):
42937         (WebCore::Performance::webkitClearMarks):
42938         (WebCore::Performance::webkitMeasure):
42939         (WebCore::Performance::webkitClearMeasures):
42940         * page/Performance.h:
42941         (WebCore):
42942         (Performance):
42943         * page/Performance.idl:
42944         * page/PerformanceMark.h: Added.
42945         (WebCore):
42946         (PerformanceMark):
42947         (WebCore::PerformanceMark::create):
42948         (WebCore::PerformanceMark::PerformanceMark):
42949         (WebCore::PerformanceMark::~PerformanceMark):
42950         * page/PerformanceMark.idl: Added.
42951         * page/PerformanceMeasure.h: Added.
42952         (WebCore):
42953         (PerformanceMeasure):
42954         (WebCore::PerformanceMeasure::create):
42955         (WebCore::PerformanceMeasure::PerformanceMeasure):
42956         (WebCore::PerformanceMeasure::~PerformanceMeasure):
42957         * page/PerformanceMeasure.idl: Added.
42958         * page/PerformanceUserTiming.cpp: Added.
42959         (WebCore):
42960         (WebCore::UserTiming::UserTiming):
42961         (WebCore::insertPerformanceEntry):
42962         (WebCore::clearPeformanceEntries):
42963         (WebCore::UserTiming::mark):
42964         (WebCore::UserTiming::clearMarks):
42965         (WebCore::UserTiming::findExistingMarkStartTime):
42966         (WebCore::UserTiming::measure):
42967         (WebCore::UserTiming::clearMeasures):
42968         * page/PerformanceUserTiming.h: Added.
42969         (WebCore):
42970         (UserTiming):
42971         (WebCore::UserTiming::create):
42972
42973 2012-10-17  James Robinson  <jamesr@chromium.org>
42974
42975         Unreviewed clang compile fix - GraphicsLayerUpdater needs a virtual destructor.
42976
42977         * platform/graphics/GraphicsLayerUpdater.h:
42978         (GraphicsLayerUpdater):
42979
42980 2012-10-17  Ryuan Choi  <ryuan.choi@samsung.com>
42981
42982         Attempt to fix the build after r131680.
42983
42984         Unreviewed build fix.
42985
42986         * dom/Document.cpp: Guard ACCELERATED_COMPOSITING for RenderLayerCompositor.h
42987
42988 2012-10-17  Elliott Sprehn  <esprehn@chromium.org>
42989
42990         StyleRareNonInheritedData::contentDataEquivalent only looks at the first ContentData
42991         https://bugs.webkit.org/show_bug.cgi?id=99560
42992
42993         Reviewed by Eric Seidel.
42994
42995         Previously we only compared the first ContentData in the linked
42996         list of ContentData's which meant that if the resolved style
42997         for content had the same prefix we wouldn't update the content.
42998
42999         This patch adds a loop to compare each of the ContentData objects
43000         in the linked list.
43001
43002         Test: fast/css-generated-content/content-property-change.html
43003
43004         * rendering/style/StyleRareNonInheritedData.cpp:
43005         (WebCore::StyleRareNonInheritedData::contentDataEquivalent):
43006
43007 2012-10-17  Elliott Sprehn  <esprehn@chromium.org>
43008
43009         Remove StyleContentType since it's not used anymore
43010         https://bugs.webkit.org/show_bug.cgi?id=99659
43011
43012         Reviewed by Eric Seidel.
43013
43014         Remove StyleContentType enum since it's not used anymore and
43015         make the is*() type checking methods on ContentData public.
43016
43017         No new tests needed, this is just deleting dead code.
43018
43019         * rendering/style/ContentData.h:
43020         (ContentData):
43021         * rendering/style/RenderStyleConstants.h:
43022
43023 2012-10-17  Simon Fraser  <simon.fraser@apple.com>
43024
43025         Create a GraphicsLayerUpdater class that will do periodic layer flushes for layer trees containing tile caches
43026         https://bugs.webkit.org/show_bug.cgi?id=99518
43027
43028         Reviewed by Dean Jackson.
43029
43030         When using tile caches in place of tiled layers, we need to recompute their
43031         visible area periodically while animations and scrolling are happening.
43032         Make a new class, GraphicsLayerUpdater, to handle this updating.
43033         Internally, it uses DisplayRefreshMonitor to generate the periodic updates.
43034         
43035         GraphicsLayer clients are notified that layers need periodic updates. Clients
43036         are free to make use of GraphicsLayerUpdater to handle this updating, as
43037         RenderLayerCompositor does.
43038         
43039         Also do some minor refactoring of methods in RenderLayerCompositor that
43040         get to Page.
43041
43042         * CMakeLists.txt: Add GraphicsLayerUpdater.cpp to the build.
43043         * GNUmakefile.list.am: Ditto.
43044         * PlatformBlackBerry.cmake: Ditto.
43045         * Target.pri: Ditto.
43046         * WebCore.gypi: Ditto.
43047         * WebCore.vcproj/WebCore.vcproj: Ditto.
43048         * WebCore.xcodeproj/project.pbxproj: Ditto.
43049         * dom/Document.cpp:
43050         (WebCore::Document::windowScreenDidChange): Tell the compositor that the screen
43051         changed, so it can tell the GraphicsLayerUpdater if it has one.
43052         * platform/graphics/GraphicsLayerClient.h:
43053         (WebCore::GraphicsLayerClient::notifyFlushBeforeDisplayRefresh): Method called
43054         for layers that need periodic updates, like tile cache layers.
43055         * platform/graphics/GraphicsLayerUpdater.cpp: Added. Uses DisplayRefreshMonitorManager
43056         to flush layers before the next refresh.
43057         (WebCore::GraphicsLayerUpdater::GraphicsLayerUpdater):
43058         (WebCore::GraphicsLayerUpdater::~GraphicsLayerUpdater):
43059         (WebCore::GraphicsLayerUpdater::scheduleUpdate):
43060         (WebCore::GraphicsLayerUpdater::screenDidChange):
43061         (WebCore::GraphicsLayerUpdater::displayRefreshFired):
43062         * platform/graphics/GraphicsLayerUpdater.h: Added.
43063         (GraphicsLayerUpdaterClient): Clients need to implement flushLayers().
43064         (WebCore::GraphicsLayerUpdaterClient::~GraphicsLayerUpdaterClient):
43065         * platform/graphics/ca/GraphicsLayerCA.cpp:
43066         (WebCore::GraphicsLayerCA::recursiveCommitChanges): For tile cache layers,
43067         tell the client that this layer should be updated soon to update the visible rect.
43068         * rendering/RenderLayerBacking.cpp:
43069         (WebCore::RenderLayerBacking::notifyFlushBeforeDisplayRefresh): Pass this message
43070         on to the compositor.
43071         * rendering/RenderLayerBacking.h:
43072         (RenderLayerBacking): Implement notifyFlushBeforeDisplayRefresh.
43073         Add OVERRIDE to all the client overrides.
43074         * rendering/RenderLayerCompositor.cpp:
43075         (WebCore::RenderLayerCompositor::cacheAcceleratedCompositingFlags): Use helper to get to Page.
43076         (WebCore::RenderLayerCompositor::scheduleLayerFlush): Ditto.
43077         (WebCore::RenderLayerCompositor::flushPendingLayerChanges): Soon we're going to be asking
43078         about the current state of animations inside the flush (for visible rect computation), so we
43079         need a AnimationUpdateBlock to make sure all the animation times are in sync.
43080         (WebCore::RenderLayerCompositor::notifyFlushBeforeDisplayRefresh): Make a GraphicsLayerUpdater
43081         if necessary, and tell it to update soon.
43082         (WebCore::RenderLayerCompositor::flushLayers): The GraphicsLayerUpdater client method.
43083         Just does a flush. For now, considers this Frame as the flush root, which will need fixing for iframes.
43084         (WebCore::RenderLayerCompositor::shouldPropagateCompositingToEnclosingFrame): Use helper to get to Page.
43085         (WebCore::RenderLayerCompositor::deviceScaleFactor): Ditto.
43086         (WebCore::RenderLayerCompositor::pageScaleFactor): Ditto.
43087         (WebCore::RenderLayerCompositor::destroyRootLayer): Ditto.
43088         (WebCore::RenderLayerCompositor::windowScreenDidChange): Tell the updater if we have one.
43089         (WebCore::RenderLayerCompositor::scrollingCoordinator): Use helper to get to Page.
43090         (WebCore::RenderLayerCompositor::graphicsLayerFactory): Use helper to get to Page.
43091         (WebCore::RenderLayerCompositor::page): The helper.
43092         * rendering/RenderLayerCompositor.h:
43093         (RenderLayerCompositor): Add OVERRIDE to all the client overrides.
43094
43095 2012-10-17  Eric Seidel  <eric@webkit.org>
43096
43097         Make dom-query.html slightly faster by removing unnecessary ref-churn in StringTraits
43098         https://bugs.webkit.org/show_bug.cgi?id=99652
43099
43100         Reviewed by Adam Barth.
43101
43102         My testing showed this moved dom-query.html from  465560 runs/s to 479019
43103         which is about 2% if I'm doing my math correctly.
43104
43105         I suspect that's due to avoiding the ref-churn we were incurring by using
43106         return-by-value symantics here.
43107
43108         This is just the tip of the iceburg. :)
43109
43110         * bindings/v8/V8StringResource.cpp:
43111         (StringTraits):
43112         * bindings/v8/V8ValueCache.h:
43113         (WebCore::WebCoreStringResource::webcoreString):
43114         (WebCore::WebCoreStringResource::atomicString):
43115
43116 2012-10-17  Luke Macpherson   <macpherson@chromium.org>
43117
43118         Move handling of CSSPropertyWebkitLineClamp from StyleResolver into StyleBuilder.
43119         https://bugs.webkit.org/show_bug.cgi?id=99534
43120
43121         Reviewed by Alexis Menard.
43122
43123         One small step towards removing the giant switch statement in StyleResolver, this patch moves line clamp handling into StyleBuilder.
43124
43125         Covered by fast/overflow/line-clamp.html
43126
43127         * css/StyleBuilder.cpp:
43128         (WebCore::StyleBuilder::StyleBuilder):
43129         * css/StyleResolver.cpp:
43130         (WebCore::StyleResolver::applyProperty):
43131
43132 2012-10-17  Andy Estes  <aestes@apple.com>
43133
43134         [WebKit2] Add removeChild: to WKDOMNode and make WKDOMText.data read/write
43135         https://bugs.webkit.org/show_bug.cgi?id=99662
43136
43137         Reviewed by Sam Weinig.
43138
43139         Export needed symbols.
43140
43141         * WebCore.exp.in:
43142
43143 2012-10-17  Adam Barth  <abarth@webkit.org>
43144
43145         [V8] Don't generate code that declares visitDOMWrapper if we're not going to generate the implementation
43146         https://bugs.webkit.org/show_bug.cgi?id=99653
43147
43148         Reviewed by Eric Seidel.
43149
43150         * bindings/scripts/CodeGeneratorV8.pm:
43151         (GenerateHeader):
43152
43153 2012-10-17  David Grogan  <dgrogan@chromium.org>
43154
43155         IndexedDB: Destroy leveldb directory if unknown schema is detected
43156         https://bugs.webkit.org/show_bug.cgi?id=99636
43157
43158         Reviewed by Tony Chang.
43159
43160         chromium browser test in progress at
43161         https://codereview.chromium.org/11196029
43162
43163         * Modules/indexeddb/IDBLevelDBBackingStore.cpp:
43164         (WebCore):
43165         (WebCore::isSchemaKnown):
43166         Return true when the schema key doesn't exist because new databases
43167         won't have one.
43168
43169         (WebCore::setUpMetadata):
43170         (WebCore::IDBLevelDBBackingStore::open):
43171         Piggy-back on existing leveldb::destroy code.
43172
43173 2012-10-17  Arpita Bahuguna  <arpitabahuguna@gmail.com>
43174
43175         Incorrect rendering of borders on <col> with span > 1
43176         https://bugs.webkit.org/show_bug.cgi?id=76246
43177
43178         Reviewed by Julien Chaffraix.
43179
43180         The HTML5 rendering specification [10.2.2 - Display Types] states that
43181         "For the purposes of the CSS table model, the col element is expected to
43182         be treated as if it was present as many times as its span attribute
43183         specifies."
43184         We should thus apply a col element's border as if the element is present
43185         as many number of times as its span attribute.
43186
43187         Apart from this, we should also treat the col and its enclosing colgroup
43188         separately while computing the collapsed borders.
43189
43190         Test: fast/table/border-collapsing/collapsed-border-with-col-colgroup-span.html
43191
43192         * rendering/RenderTableCell.cpp:
43193         (WebCore::RenderTableCell::computeCollapsedStartBorder):
43194         (WebCore::RenderTableCell::computeCollapsedEndBorder):
43195         Borders from col and its enclosing colgroup element should be handled
43196         separately, while considering the preceeding col's end border (for start
43197         border computation) and the next col's start border (for end border
43198         computation).
43199
43200         Also, have made changes for handling of col elements with span attribute as
43201         per the specification. We now apply the border (start or end) of the col
43202         element irrespective of whether it has any span specified for it or not.
43203
43204 2012-10-17  Tom Sepez  <tsepez@chromium.org>
43205
43206         Crash in ContainerNode::removeAllChildren()
43207         https://bugs.webkit.org/show_bug.cgi?id=98443
43208
43209         Reviewed by Eric Carlson.
43210
43211         This patch makes the errorEventSender added in WebKit Revision 112190 interact
43212         with the updatedHasPendingLoadEvent() mechanism in the same manner as the other
43213         existing event senders.
43214
43215         Test: http/tests/security/video-poster-cross-origin-crash2.html
43216
43217         * loader/ImageLoader.cpp:
43218         (WebCore::ImageLoader::setImage):
43219         (WebCore::ImageLoader::updateFromElement):
43220         (WebCore::ImageLoader::notifyFinished):
43221         (WebCore::ImageLoader::updatedHasPendingEvent):
43222         (WebCore::ImageLoader::dispatchPendingBeforeLoadEvent):
43223         (WebCore::ImageLoader::dispatchPendingLoadEvent):
43224         * loader/ImageLoader.h:
43225         (ImageLoader):
43226
43227 2012-10-17  Joshua Bell  <jsbell@chromium.org>
43228
43229         IndexedDB: Closing connection in upgradeneeded should result in error event
43230         https://bugs.webkit.org/show_bug.cgi?id=99486
43231
43232         Reviewed by Tony Chang.
43233
43234         The IDB spec requires that "...if connection is closed, return a DOMError of type AbortError".
43235         This was being handled during the "enqueue" phase, which was too early either for synchronously
43236         executing scripts or asynchronous messaging in multiprocess ports (crbug.com/150691). Move the
43237         logic to the "dispatch" phase.
43238
43239         Test: storage/indexeddb/intversion-close-in-oncomplete.html
43240
43241         * Modules/indexeddb/IDBOpenDBRequest.cpp:
43242         (WebCore::IDBOpenDBRequest::onSuccess): Move success to error morphing from here...
43243         (WebCore::IDBOpenDBRequest::dispatchEvent): To here.
43244         * Modules/indexeddb/IDBOpenDBRequest.h:
43245         (IDBOpenDBRequest):
43246
43247 2012-10-17  Elliott Sprehn  <esprehn@chromium.org>
43248
43249         Use virtual dispatch to create ContentData renderers
43250         https://bugs.webkit.org/show_bug.cgi?id=99646
43251
43252         Reviewed by Eric Seidel.
43253
43254         ContentData are conceptually very similar to Nodes and we can use
43255         the same createRenderer pattern on them to simplify creating
43256         renderers for generated content. Now each ContentData class knows
43257         how to create its own renderer.
43258
43259         Previously we switched over the StyleContentType which required a
43260         case for CONTENT_NONE and made the code look like it could return
43261         null, but this case is actually impossible because no ContentData
43262         class ever has a type of CONTENT_NONE and no null checks are really
43263         needed.
43264
43265         This is the final step in removing dependence on StyleContentType.
43266
43267         No new tests needed, this is just a refactor.
43268
43269         * rendering/RenderObjectChildList.cpp: Remove createRendererForBeforeAfterContent.
43270         (WebCore::RenderObjectChildList::updateBeforeAfterContent):
43271         * rendering/style/ContentData.cpp:
43272         (WebCore::ImageContentData::createRenderer):
43273         (WebCore):
43274         (WebCore::TextContentData::createRenderer):
43275         (WebCore::CounterContentData::createRenderer):
43276         (WebCore::QuoteContentData::createRenderer):
43277         * rendering/style/ContentData.h: Added a new virtual method createRenderer.
43278         (WebCore):
43279         (ContentData):
43280         (ImageContentData):
43281         (TextContentData):
43282         (CounterContentData):
43283         (QuoteContentData):
43284
43285 2012-10-17  Julien Chaffraix  <jchaffraix@webkit.org>
43286
43287         RenderLayer subtrees without any self-painting layer shouldn't be walked during hit testing
43288         https://bugs.webkit.org/show_bug.cgi?id=89393
43289
43290         Reviewed by Eric Seidel.
43291
43292         Performance optimization, covered by existing tests.
43293
43294         Bug 88888 added an peformance optimization for painting. As hit testing is very similar to
43295         painting, it would benefit from the same optimization.
43296
43297         On http://dglazkov.github.com/performance-tests/biggrid.html, with a 10,000 * 100 tables,
43298         it reduces the time to select some text inside a cell from 1-2 seconds to a usable time
43299         (I didn't measure the exact timing).
43300
43301         Note that as in bug 88888, the multi-column code is not covered by this optimization.
43302
43303         * rendering/RenderLayer.cpp:
43304         (WebCore::RenderLayer::hitTest):
43305         This is the entrance to the hit testing code so we check if we can bail out early.
43306
43307         (WebCore::RenderLayer::hitTestList):
43308         If we have no self-painting descendant layers, we can bail out.
43309
43310         (WebCore::RenderLayer::hitTestContents):
43311         (WebCore::RenderLayer::hitTestLayer):
43312         hitTest should filter the layers that call these functions. Added some ASSERT to
43313         make sure we don't mistakenly call them when could avoid it.
43314
43315 2012-10-17  Allan Sandfeld Jensen  <allan.jensen@digia.com>
43316
43317         [Qt] Certain SVG content freezes QtWebKit
43318         https://bugs.webkit.org/show_bug.cgi?id=97258
43319
43320         Reviewed by Simon Hausmann.
43321
43322         Ensure dashpattern is well-formed by avoiding divisions by zero.
43323
43324         Test: svg/stroke/zero-width-hang.html
43325
43326         * platform/graphics/qt/GraphicsContextQt.cpp:
43327         (WebCore::GraphicsContext::setLineDash):
43328
43329 2012-10-17  Alec Flett  <alecflett@chromium.org>
43330
43331         IndexedDB: Explicitly send null/undefined/integers to frontend IDBCallbacks
43332         https://bugs.webkit.org/show_bug.cgi?id=99619
43333
43334         Reviewed by Adam Barth.
43335
43336         Rather than pass SerializedScriptValue tokens from the backend,
43337         send explicit null, (as onSuccess(static_cast<SerializedScriptValue*>(0)))
43338         undefined, (as onSucess()), and integers (as onSuccess(long long))
43339
43340         This reduces backend dependency on things that might require a JS
43341         interpreter on the backend.
43342
43343         No new tests, this is a refactor and existing tests cover
43344         correctness. Tests that might fail include:
43345
43346         Test: storage/indexeddb/index-count.html
43347         Test: storage/indexeddb/objectstore-count.html
43348         Test: storage/indexeddb/database-basics.html
43349
43350         * Modules/indexeddb/IDBCallbacks.h:
43351         (IDBCallbacks):
43352         * Modules/indexeddb/IDBCursorBackendImpl.cpp:
43353         (WebCore::IDBCursorBackendImpl::advanceInternal):
43354         (WebCore::IDBCursorBackendImpl::continueFunctionInternal):
43355         (WebCore::IDBCursorBackendImpl::prefetchContinueInternal):
43356         * Modules/indexeddb/IDBCursorBackendImpl.h:
43357         (WebCore::IDBCursorBackendImpl::value):
43358         * Modules/indexeddb/IDBDatabaseBackendImpl.cpp:
43359         (WebCore::IDBDatabaseBackendImpl::deleteDatabase):
43360         * Modules/indexeddb/IDBIndex.cpp:
43361         * Modules/indexeddb/IDBIndexBackendImpl.cpp:
43362         (WebCore::IDBIndexBackendImpl::openCursorInternal):
43363         (WebCore::IDBIndexBackendImpl::countInternal):
43364         (WebCore::IDBIndexBackendImpl::getInternal):
43365         * Modules/indexeddb/IDBObjectStore.cpp:
43366         * Modules/indexeddb/IDBObjectStoreBackendImpl.cpp:
43367         (WebCore::IDBObjectStoreBackendImpl::getInternal):
43368         (WebCore::IDBObjectStoreBackendImpl::deleteInternal):
43369         (WebCore::IDBObjectStoreBackendImpl::clearInternal):
43370         (WebCore::IDBObjectStoreBackendImpl::openCursorInternal):
43371         (WebCore::IDBObjectStoreBackendImpl::countInternal):
43372         * Modules/indexeddb/IDBRequest.cpp:
43373         (WebCore::IDBRequest::onSuccess):
43374         (WebCore):
43375         * Modules/indexeddb/IDBRequest.h:
43376         * Modules/indexeddb/IDBTransaction.cpp:
43377         * Modules/indexeddb/IDBTransactionBackendImpl.cpp:
43378         * Modules/indexeddb/IDBTransactionBackendImpl.h:
43379         * Modules/indexeddb/IDBTransactionBackendInterface.h:
43380         * bindings/v8/IDBBindingUtilities.cpp:
43381         (WebCore::deserializeIDBValue):
43382         * inspector/InspectorIndexedDBAgent.cpp:
43383         (WebCore):
43384
43385 2012-10-17  Nate Chapin  <japhet@chromium.org>
43386
43387         Move ResourceRequest construction out of SubresourceLoader
43388         https://bugs.webkit.org/show_bug.cgi?id=99627
43389
43390         Reviewed by Adam Barth.
43391
43392         CachedResource::load() fills out a bunch of http headers.
43393         SubresourceLoader::create() adds a bunch more. Merge them.
43394         Note that this merge requires a bit more care in CachedRawResource::canReuse(),
43395         because more headers are set directly on CachedResource::m_resourceRequest, rather
43396         than on a copy of it.
43397
43398         No new tests, no functionality change intended.
43399
43400         * loader/SubresourceLoader.cpp:
43401         (WebCore::SubresourceLoader::create):
43402         * loader/cache/CachedRawResource.cpp:
43403         (WebCore::shouldIgnoreHeaderForCacheReuse):
43404         (WebCore):
43405         (WebCore::CachedRawResource::canReuse):
43406         * loader/cache/CachedResource.cpp:
43407         (WebCore::CachedResource::failBeforeStarting):
43408         (WebCore):
43409         (WebCore::CachedResource::addAdditionalRequestHeaders):
43410         (WebCore::CachedResource::load):
43411         * loader/cache/CachedResource.h:
43412         (CachedResource):
43413
43414 2012-10-17  Anders Carlsson  <andersca@apple.com>
43415
43416         Clean up Vector.h
43417         https://bugs.webkit.org/show_bug.cgi?id=99622
43418
43419         Reviewed by Benjamin Poulain.
43420
43421         Fix fallout from removing std::max and std::min using declarations.
43422
43423         * loader/cache/CachedResource.cpp:
43424         (WebCore::CachedResource::currentAge):
43425
43426 2012-10-17  Joshua Bell  <jsbell@chromium.org>
43427
43428         IndexedDB: Enforce unsigned long/unsigned long long ranges
43429         https://bugs.webkit.org/show_bug.cgi?id=99637
43430
43431         Reviewed by Tony Chang.
43432
43433         The IndexedDB spec has [EnforceRange] specified on unsigned long and unsigned long long
43434         arguments, which requires the implementation to throw TypeError for negative values or
43435         values that exceed 2^53-1 (maximum JS number that behaves like an integer) - and 0 is
43436         specifically forbidden by the APIs as well.
43437
43438         A more correct fix in the binding layer is in webkit.org/b/96798 but we can temporarily
43439         address this in the implementation.
43440
43441         Also refactor to prevent IDBFactory.open(name, -1) from triggering an internal code path.
43442
43443         Tests: storage/indexeddb/cursor-advance.html
43444                storage/indexeddb/intversion-bad-parameters.html
43445                storage/indexeddb/intversion-encoding.html
43446
43447         * Modules/indexeddb/IDBCursor.cpp:
43448         (WebCore::IDBCursor::advance): Validate argument range.
43449         * Modules/indexeddb/IDBCursor.h:
43450         (IDBCursor):
43451         * Modules/indexeddb/IDBCursor.idl: Drop "unsigned" qualifier as the binding code is
43452         not yet doing the correct validation.
43453         * Modules/indexeddb/IDBFactory.cpp: Refactor to prevent open(name, -1)
43454         (WebCore):
43455         (WebCore::IDBFactory::open): Validate the int version here, then pass to...
43456         (WebCore::IDBFactory::openInternal): ... this method.
43457         * Modules/indexeddb/IDBFactory.h:
43458         (IDBFactory):
43459         * Modules/indexeddb/IDBFactory.idl: Drop "unsigned" qualifier; meaningless to binding
43460         code right now, can be re-added once webkit.org/b/96798 lands.
43461
43462 2012-10-17  Tony Chang  <tony@chromium.org>
43463
43464         fast/forms/range/input-appearance-range-rtl.html off by one pixel
43465         https://bugs.webkit.org/show_bug.cgi?id=99625
43466
43467         Reviewed by Ojan Vafai.
43468
43469         Previously, we would assume that a vertical slider in RTL would render identically to
43470         a vertical slider in LTR. Due to differing thumb sizes, there is an off by one.
43471
43472         This worked in deprecated flexbox because it doesn't adjust for RTL when applying
43473         box-align: center.
43474
43475         Tests: fast/forms/range/input-appearance-range-rtl.html
43476
43477         * html/shadow/SliderThumbElement.cpp:
43478         (WebCore::RenderSliderContainer::layout): Force LTR for flexbox layout when vertical. We have to restore the old value
43479         just in case the user switches from vertical to horizontal.
43480
43481 2012-10-17  Michael Saboff  <msaboff@apple.com>
43482
43483         Creating a String from an NSString should check for all 8 bit strings
43484         https://bugs.webkit.org/show_bug.cgi?id=99392
43485
43486         Reviewed by Geoffrey Garen.
43487
43488         Use CFStringGetBytes() to try to get Latin1 data to create an 8 bit string.
43489
43490         No functional change, change covered by existing tests.
43491
43492         * platform/text/mac/StringMac.mm:
43493         (WTF::String::String):
43494
43495 2012-10-17  Raphael Kubo da Costa  <raphael.kubo.da.costa@intel.com>
43496
43497         [EFL] Remove redundant OpenGL library addition from the build system.
43498         https://bugs.webkit.org/show_bug.cgi?id=99629
43499
43500         Reviewed by Rob Buis.
43501
43502         * PlatformEfl.cmake: Do not add OPENGL_gl_LIBRARY to
43503         WebCore_LIBRARIES, this is already done in CMakeLists.txt these
43504         days.
43505
43506 2012-10-17  Raphael Kubo da Costa  <raphael.kubo.da.costa@intel.com>
43507
43508         [CMake] Set WebCore_LIBRARIES earlier.
43509         https://bugs.webkit.org/show_bug.cgi?id=99630
43510
43511         Reviewed by Rob Buis.
43512
43513         * CMakeLists.txt: Follow the style we use in other CMakeList.txt
43514         files and set the Foo_LIBRARIES variables before we start checking
43515         for optional features, as they might append other libraries to the
43516         list (it already happens with WTF_USE_3D_GRAPHICS, for example).
43517
43518 2012-10-17  Philip Rogers  <pdr@google.com>
43519
43520         Allow lazy initialization of SVG XML animated properties.
43521         https://bugs.webkit.org/show_bug.cgi?id=84657
43522
43523         Reviewed by Tim Horton.
43524
43525         When animating a property in the shadow tree, instance properties and tearoffs are created
43526         but they simply reference the animated element's animating properties.
43527
43528         When starting an animation for the first time (see SVGAnimateElement::resetAnimatedType),
43529         we initialize the root property and instance properties using startAnimValAnimation(...).
43530         If an instance property is added while the root property is animating, this initialization
43531         will not occur and we crash.
43532
43533         This patch updates the resetAnimValToBaseVal codepath to start (and initialize) an animated
43534         property if it is not already animating. After this patch, instance properties can be added
43535         in the middle of animation and they will be properly started/initialized.
43536
43537         Test: svg/animations/use-while-animating-crash.html
43538
43539         * svg/SVGAnimatedTypeAnimator.h:
43540         (WebCore::SVGAnimatedTypeAnimator::resetFromBaseValue):
43541         (WebCore::SVGAnimatedTypeAnimator::resetFromBaseValues):
43542         (WebCore::SVGAnimatedTypeAnimator::executeAction):
43543
43544 2012-10-17  Dan Carney  <dcarney@google.com>
43545
43546         Bind isolatedWorldSecurityOrigin to world
43547         https://bugs.webkit.org/show_bug.cgi?id=99582
43548
43549         Reviewed by Adam Barth.
43550
43551         Security origin of isolated worlds was not previously set at the world
43552         level, although it could have been. 
43553
43554         No new tests. No change in functionality.
43555
43556         * bindings/v8/DOMWrapperWorld.cpp:
43557         (WebCore::DOMWrapperWorld::deallocate):
43558         (WebCore):
43559         (WebCore::isolatedWorldSecurityOrigins):
43560         (WebCore::DOMWrapperWorld::isolatedWorldSecurityOrigin):
43561         (WebCore::DOMWrapperWorld::setIsolatedWorldSecurityOrigin):
43562         (WebCore::DOMWrapperWorld::clearIsolatedWorldSecurityOrigin):
43563         * bindings/v8/DOMWrapperWorld.h:
43564         (DOMWrapperWorld):
43565         (WebCore::DOMWrapperWorld::isIsolatedWorldId):
43566         (WebCore::DOMWrapperWorld::isIsolatedWorld):
43567         * bindings/v8/ScriptController.cpp:
43568         (WebCore::ScriptController::resetIsolatedWorlds):
43569         (WebCore::ScriptController::evaluateInIsolatedWorld):
43570         (WebCore::ScriptController::collectIsolatedContexts):
43571         * bindings/v8/ScriptController.h:
43572         (ScriptController):
43573         (WebCore::ScriptController::setIsolatedWorldSecurityOrigin):
43574         * bindings/v8/V8DOMWindowShell.cpp:
43575         (WebCore::V8DOMWindowShell::initializeIfNeeded):
43576         * bindings/v8/V8DOMWindowShell.h:
43577         (V8DOMWindowShell):
43578         * bindings/v8/custom/V8XMLHttpRequestConstructor.cpp:
43579         (WebCore::V8XMLHttpRequest::constructorCallback):
43580
43581 2012-10-17  Simon Fraser  <simon.fraser@apple.com>
43582
43583         GraphicsLayer visible rect computation needs to use the current animating transform
43584         https://bugs.webkit.org/show_bug.cgi?id=99529
43585
43586         Reviewed by Dean Jackson.
43587
43588         If we're running an accelerated animation of transform
43589         on a GraphicsLayerCA, the current value of the transform won't
43590         be reflected in the GraphicsLayer's m_transform. However,
43591         we need the current value of the transform in order to correctly
43592         compute the visible rect of this layer and descendants.
43593         
43594         Add a function to GraphicsLayerClient to retrieve the current
43595         value of the transform from the client.
43596         
43597         RenderLayer's currentTransform() used to return a transform
43598         with transform-origin baked in; GraphicsLayerClient needs one
43599         that excludes transform-origin, so enhance RenderLayer::currentTransform()
43600         to be able to produce either.
43601
43602         Tests: compositing/visible-rect/animated-from-none.html
43603                compositing/visible-rect/animated.html
43604
43605         * platform/graphics/GraphicsLayerClient.h:
43606         (WebCore):
43607         (GraphicsLayerClient):
43608         (WebCore::GraphicsLayerClient::getCurrentTransform):
43609         * platform/graphics/ca/GraphicsLayerCA.cpp:
43610         (WebCore::GraphicsLayerCA::computeVisibleRect):
43611         * rendering/RenderLayer.cpp:
43612         (WebCore::RenderLayer::currentTransform):
43613         * rendering/RenderLayer.h:
43614         * rendering/RenderLayerBacking.cpp:
43615         (WebCore::RenderLayerBacking::currentTransform):
43616         * rendering/RenderLayerBacking.h:
43617         (RenderLayerBacking):
43618
43619 2012-10-17  Sadrul Habib Chowdhury  <sadrul@chromium.org>
43620
43621         plugins: Allow a plugin to dictate whether it can receive drag events or not.
43622         https://bugs.webkit.org/show_bug.cgi?id=99355
43623
43624         Reviewed by Tony Chang.
43625
43626         When doing a drag over a plugin, ask the plugin whether it can accept
43627         drag/drop to decide whether drag/drop is possible or not. At present,
43628         plugins do not receive drag events through WebCore (i.e. various
43629         implementations of PluginView::handleMouseEvent ignores the
43630         drop-events). This change makes it possible for the ports to ask the
43631         plugin first to decide whether it can (or wants to) accept drag events.
43632         The default implementation remains the same, i.e. plugins do not receive
43633         drag events. For chromium, the overridden implementation uses the
43634         WebPlugin interface to check whether the plugin can accept drag events.
43635
43636         * html/HTMLPlugInElement.cpp:
43637         (WebCore::HTMLPlugInElement::canProcessDrag):
43638         (WebCore):
43639         * html/HTMLPlugInElement.h:
43640         (WebCore):
43641         (HTMLPlugInElement):
43642         * page/DragController.cpp:
43643         (WebCore::DragController::canProcessDrag):
43644         * plugins/PluginViewBase.h:
43645         (WebCore):
43646         (WebCore::PluginViewBase::canProcessDrag):
43647
43648 2012-10-17  Andreas Kling  <kling@webkit.org>
43649
43650         Shrink EventTargetData by making firingEventListeners vector optional.
43651         <http://webkit.org/b/99532>
43652         <rdar://problem/12515099>
43653
43654         Reviewed by Anders Carlsson.
43655
43656         The majority of event listeners never actually fire, and EventTargetData::firingEventListeners
43657         is just sitting there taking up space. Make it an OwnPtr instead, shrinking EventTargetData
43658         by 48 bytes and progressing Membuster3 by 395kB.
43659
43660         * dom/EventTarget.cpp:
43661         (WebCore::EventTarget::removeEventListener):
43662         (WebCore::EventTarget::fireEventListeners):
43663         (WebCore::EventTarget::removeAllEventListeners):
43664         * dom/EventTarget.h:
43665         (WebCore::EventTarget::isFiringEventListeners):
43666
43667 2012-10-17  Christophe Dumez  <christophe.dumez@intel.com>
43668
43669         xss-DENIED-xsl-document-securityOrigin.xml crashes with icon assertion
43670         https://bugs.webkit.org/show_bug.cgi?id=99571
43671
43672         Reviewed by Kenneth Rohde Christiansen.
43673
43674         Check that the iconURL is not empty in IconController::continueLoadWithDecision()
43675         to avoid hitting assertions later when trying to commit this empty URL to the
43676         database. IconController::url() may indeed return an empty URL but there was
43677         no check for it.
43678
43679         No new tests, already covered by http/tests/security/xss-DENIED-xsl-document-securityOrigin.xml.
43680
43681         * loader/icon/IconController.cpp:
43682         (WebCore::IconController::continueLoadWithDecision):
43683
43684 2012-10-17  Byungwoo Lee  <bw80.lee@samsung.com>
43685
43686         Fix build warnings : -Wunused-parameter, -Wunused-variable
43687         https://bugs.webkit.org/show_bug.cgi?id=99539
43688
43689         Reviewed by Kentaro Hara.
43690
43691         Fix build warnings about unused parameter or unused variable when
43692         WTF_USE_TILED_BACKING_STORE option is enabled.
43693
43694         * html/shadow/HTMLContentElement.cpp:
43695         (WebCore::contentTagName):
43696         * platform/graphics/efl/GraphicsContext3DEfl.cpp:
43697         (WebCore::GraphicsContext3D::getImageData):
43698         * platform/graphics/efl/GraphicsContext3DPrivate.cpp:
43699         (WebCore::GraphicsContext3DPrivate::createSurface):
43700         (WebCore::GraphicsContext3DPrivate::paintToTextureMapper):
43701         * platform/graphics/opengl/Extensions3DOpenGL.cpp:
43702         (WebCore::Extensions3DOpenGL::bindVertexArrayOES):
43703         * platform/graphics/texmap/TextureMapper.h:
43704         (WebCore::BitmapTexture::canReuseWith):
43705         (WebCore::TextureMapper::beginPainting):
43706         * platform/graphics/texmap/TextureMapperGL.cpp:
43707         (WebCore::TextureMapperGL::drawRepaintCounter):
43708         * platform/graphics/texmap/TextureMapperImageBuffer.cpp:
43709         (WebCore::BitmapTextureImageBuffer::updateContents):
43710         * platform/graphics/texmap/TextureMapperImageBuffer.h:
43711         * platform/graphics/texmap/TextureMapperLayer.cpp:
43712         (WebCore::TextureMapperLayer::sortByZOrder):
43713         (WebCore::TextureMapperLayer::flushCompositingStateSelf):
43714         * rendering/RenderLayerCompositor.cpp:
43715         (WebCore::RenderLayerCompositor::allowsIndependentlyCompositedFrames):
43716
43717 2012-10-17  Shinya Kawanaka  <shinyak@chromium.org>
43718
43719         Dynamically added elements do not get re-projected.
43720         https://bugs.webkit.org/show_bug.cgi?id=99227
43721
43722         Reviewed by Dimitri Glazkov.
43723
43724         When distribution happens, we have to invalidate its host shadow's distribution, since the children of the host
43725         is changed.
43726
43727         Test: fast/dom/shadow/content-reprojection-dynamic.html
43728
43729         * html/shadow/ContentDistributor.cpp:
43730         (WebCore::ContentDistributor::distribute):
43731
43732 2012-10-17  Yury Semikhatsky  <yurys@chromium.org>
43733
43734         Web Inspector: no "delete watch expression" context menu item when clicking on the expression value
43735         https://bugs.webkit.org/show_bug.cgi?id=99602
43736
43737         Reviewed by Pavel Feldman.
43738
43739         Add delete items to the watch expression's value's context menu.
43740
43741         * inspector/front-end/ObjectPropertiesSection.js:
43742         (WebInspector.ObjectPropertyTreeElement.prototype._contextMenuFired):
43743         (WebInspector.ObjectPropertyTreeElement.prototype.populateContextMenu):
43744         * inspector/front-end/WatchExpressionsSidebarPane.js:
43745         (WebInspector.WatchExpressionTreeElement.prototype.populateContextMenu):
43746         (WebInspector.WatchExpressionTreeElement.prototype._contextMenu):
43747
43748 2012-10-17  Vsevolod Vlasov  <vsevik@chromium.org>
43749
43750         Web Inspector: [Regression] Undoing script changes does not restore breakpoints.
43751         https://bugs.webkit.org/show_bug.cgi?id=99598
43752
43753         Reviewed by Pavel Feldman.
43754
43755         workingCopyChanged now dispatches did/willMergeToVM instead of did/willDivergeFromVM
43756         when change returns uiSourceCode to non dirty state.
43757         Added wasDirty parameter to workingCopyChanged event.
43758
43759         Test: inspector/debugger/live-edit-breakpoints.html
43760
43761         * inspector/front-end/ResourceScriptMapping.js:
43762         (WebInspector.ResourceScriptFile.prototype._workingCopyCommitted):
43763         (WebInspector.ResourceScriptFile.prototype._workingCopyChanged):
43764         * inspector/front-end/UISourceCode.js:
43765         (WebInspector.UISourceCode.prototype.setWorkingCopy):
43766
43767 2012-10-17  Simon Hausmann  <simon.hausmann@digia.com>
43768
43769         [Qt] Avoid re-creating CSSGrammar.cpp with each (incremental) build
43770
43771         Reviewed by Tor Arne Vestbø.
43772
43773         The expected output is CSSGrammar.cpp and the input file used to be CSSGrammar.y,
43774         so ${QMAKE_FILE_BASE}.cpp did the correct transformation. Recently the input has
43775         changed to CSSGrammar.y.in, in which case the ${QMAKE_FILE_BASE} is CSSGrammar.y
43776         unfortunately. The resulting target CSSGrammar.y.cpp will never be created and
43777         therefore the target will always run.
43778
43779         * DerivedSources.pri:
43780
43781 2012-10-17  Ilya Tikhonovsky  <loislo@chromium.org>
43782
43783         Unreviewed fix for ImageSourceCG.
43784
43785         * platform/graphics/cg/ImageSourceCG.cpp:
43786         (WebCore::ImageSource::reportMemoryUsage):
43787
43788 2012-10-17  Ilya Tikhonovsky  <loislo@chromium.org>
43789
43790         Unreviewed fix for compilation on CG bots.
43791
43792         * platform/graphics/cg/ImageSourceCG.cpp:
43793
43794 2012-10-16  Ilya Tikhonovsky  <loislo@chromium.org>
43795
43796         Web Inspector: NMI instrument ImageDecoder. It owns a buffer that could be quite big.
43797         https://bugs.webkit.org/show_bug.cgi?id=99540
43798
43799         Reviewed by Yury Semikhatsky.
43800
43801         * platform/graphics/ImageSource.cpp:
43802         (WebCore::ImageSource::reportMemoryUsage):
43803         (WebCore):
43804         * platform/graphics/ImageSource.h:
43805         (ImageSource):
43806         * platform/image-decoders/ImageDecoder.cpp:
43807         (WebCore::ImageFrame::reportMemoryUsage):
43808         (WebCore):
43809         (WebCore::ImageDecoder::reportMemoryUsage):
43810         * platform/image-decoders/ImageDecoder.h:
43811         (ImageFrame):
43812         (ImageDecoder):
43813         * platform/image-decoders/skia/ImageDecoderSkia.cpp:
43814         (WebCore::ImageFrame::reportMemoryUsage):
43815         (WebCore):
43816
43817 2012-10-17  Zeno Albisser  <zeno@webkit.org>
43818
43819         [Qt] Fix build on Mac OSX 10.6 and earlier.
43820         https://bugs.webkit.org/show_bug.cgi?id=99595
43821
43822         Reviewed by Simon Hausmann.
43823
43824         * Target.pri:
43825
43826 2012-10-17  Pavel Feldman  <pfeldman@chromium.org>
43827
43828         Web Inspector: display "disconnected" message when remote debugging terminates
43829         https://bugs.webkit.org/show_bug.cgi?id=99316
43830
43831         Reviewed by Yury Semikhatsky.
43832
43833         Otherwise, it is not clear that the front-end is no longer functional.
43834
43835         * inspector/front-end/InspectorFrontendHostStub.js:
43836         (WebInspector.RemoteDebuggingTerminatedScreen):
43837         * inspector/front-end/inspector.js:
43838         (WebInspector.loaded.WebInspector.socket.onclose):
43839         (WebInspector.loaded):
43840
43841 2012-10-17  Yury Semikhatsky  <yurys@chromium.org>
43842
43843         Web Inspector: delete watch expression button overlaps with the expression value
43844         https://bugs.webkit.org/show_bug.cgi?id=99569
43845
43846         Reviewed by Vsevolod Vlasov.
43847
43848         Delete watch expression button now doesn't overlap with the watch expression.
43849
43850         * inspector/front-end/inspector.css:
43851         (.properties-tree.watch-expressions > li > .value):
43852
43853 2012-10-17  Luke Macpherson   <macpherson@chromium.org>
43854
43855         Move handling of CSSPropertyPointerEvents from StyleResolver into StyleBuilder.
43856         https://bugs.webkit.org/show_bug.cgi?id=99536
43857
43858         Reviewed by Alexis Menard.
43859
43860         One small step towards removing the giant switch statement in StyleResolver,
43861         this patch moves pointer event property into StyleBuilder.
43862
43863         Covered by fast/events/pointer-events.html and fast/events/pointer-events-2.html.
43864
43865         * css/StyleBuilder.cpp:
43866         (WebCore::StyleBuilder::StyleBuilder):
43867         * css/StyleResolver.cpp:
43868         (WebCore::StyleResolver::applyProperty):
43869
43870 2012-10-17  Keishi Hattori  <keishi@webkit.org>
43871
43872         Localized date should be based on LDML
43873         https://bugs.webkit.org/show_bug.cgi?id=99570
43874
43875         Reviewed by Kent Tamura.
43876
43877         Localized date should be based on LDML to match the format inside DateTimeEditElement.
43878
43879         No new tests. Covered by LocaleMacTest.formatDate and LocaleWinTest.formatDate.
43880
43881         * platform/text/LocaleICU.cpp: Removed formatDateTime.
43882         * platform/text/LocaleICU.h:
43883         (LocaleICU):
43884         * platform/text/LocaleNone.cpp: Removed formatDateTime.
43885         (LocaleNone):
43886         * platform/text/LocaleWin.cpp: Removed formatDateTime and formatDate.
43887         (WebCore):
43888         * platform/text/LocaleWin.h:
43889         (LocaleWin):
43890         * platform/text/Localizer.cpp:
43891         (WebCore::DateTimeStringBuilder::visitField): Added support for year/month/day.
43892         (WebCore::Localizer::formatDateTime): Creates the formatted string based on the format from dateFormat().
43893         * platform/text/Localizer.h:
43894         * platform/text/mac/LocaleMac.h:
43895         (LocaleMac):
43896         * platform/text/mac/LocaleMac.mm: Removed formatDateTime.
43897
43898 2012-10-17  Harald Alvestrand  <hta@google.com>
43899
43900         Implement the Selector argument to RTCPeerConnection.getStats
43901         https://bugs.webkit.org/show_bug.cgi?id=99460
43902
43903         Reviewed by Adam Barth.
43904
43905         The change adds two new parameters to the RTCStatsRequest object:
43906         stream and component. Together these are enough to identify a
43907         MediaStreamTrack.
43908
43909         Test: fast/mediastream/RTCPeerConnection-statsSelector.html
43910
43911         * Modules/mediastream/MediaStreamTrack.cpp:
43912         (WebCore::MediaStreamTrack::streamDescriptor):
43913         (WebCore):
43914         * Modules/mediastream/MediaStreamTrack.h:
43915         * Modules/mediastream/RTCPeerConnection.cpp:
43916         (WebCore::RTCPeerConnection::getStats):
43917         * Modules/mediastream/RTCStatsRequestImpl.cpp:
43918         (WebCore::RTCStatsRequestImpl::create):
43919         (WebCore::RTCStatsRequestImpl::RTCStatsRequestImpl):
43920         (WebCore::RTCStatsRequestImpl::hasSelector):
43921         (WebCore):
43922         (WebCore::RTCStatsRequestImpl::stream):
43923         (WebCore::RTCStatsRequestImpl::component):
43924         * Modules/mediastream/RTCStatsRequestImpl.h:
43925         (RTCStatsRequestImpl):
43926         * platform/chromium/support/WebRTCStatsRequest.cpp:
43927         (WebKit):
43928         (WebKit::WebRTCStatsRequest::hasSelector):
43929         (WebKit::WebRTCStatsRequest::stream):
43930         (WebKit::WebRTCStatsRequest::component):
43931         * platform/mediastream/RTCStatsRequest.h:
43932         (WebCore):
43933         (RTCStatsRequest):
43934
43935 2012-10-17  Simon Hausmann  <simon.hausmann@digia.com>
43936
43937         [Qt] Enable use of more AllInOne files
43938         https://bugs.webkit.org/show_bug.cgi?id=99579
43939
43940         Reviewed by Tor Arne Vestbø.
43941
43942         The AllInOne files reduce pressure during final link time because the object files contain less duplicated
43943         symbols.
43944
43945         * Target.pri: Add HTMLElementsAllInOne, EditingAllInOne and RenderingAllInOne to the build
43946         * editing/EditingAllInOne.cpp: Place a #if USE(CF) around the inclusion of SmartReplaceCF.cpp
43947         * html/HTMLElementsAllInOne.cpp: Move HTMLPlugInElement.cpp to the top to fix builds on X11 based platforms
43948         where the X headers get confused by the "Region" type that's also declared in WebCore.
43949         * rendering/RenderingAllInOne.cpp: Fix build on case-sensitive file systems (Plugin -> PlugIn) and added a
43950         #if PLATFORM(WIN) around the inclusion of RenderThemeWin.cpp.
43951
43952 2012-10-17  Kent Tamura  <tkent@chromium.org>
43953
43954         REGRESSION(r131421): Text baseline becomes incorrect after re-layout of input[type=time]
43955         https://bugs.webkit.org/show_bug.cgi?id=99572
43956
43957         Reviewed by Kentaro Hara.
43958
43959         We use flexible box since r131421, and it seems text baseline becomes
43960         incorrect if there are text nodes in a flex container.
43961
43962         Test: fast/forms/time-multiple-fields/time-multiple-fields-static-relayout.html
43963
43964         * css/html.css:
43965         (input::-webkit-datetime-edit-text): Added.
43966         * html/shadow/DateTimeEditElement.cpp:
43967         (WebCore::DateTimeEditBuilder::visitLiteral):
43968         Wrap text with an element with ::-webkit-datetime-edit-text.
43969
43970 2012-10-17  Grzegorz Czajkowski  <g.czajkowski@samsung.com>, Michal Roj <m.roj@samsung.com>
43971
43972         [WK2][EFL] Implementation of spellchecking feature.
43973         https://bugs.webkit.org/show_bug.cgi?id=91854
43974
43975         Reviewed by Gyuyoung Kim.
43976
43977         * PlatformEfl.cmake:
43978         Add enchant-related compiler flags: header paths and the library flag.
43979
43980 2012-10-17  Alexander Pavlov  <apavlov@chromium.org>
43981
43982         Web Inspector: Avoid style updates when retrieving the inline stylesheet text
43983         https://bugs.webkit.org/show_bug.cgi?id=99576
43984
43985         Reviewed by Vsevolod Vlasov.
43986
43987         Avoid using innerText() to retrieve inline stylesheet text, which may result in style and layout updates.
43988
43989         * inspector/InspectorStyleSheet.cpp:
43990         (WebCore::InspectorStyleSheet::inlineStyleSheetText):
43991
43992 2012-10-17  Patrick Gansterer  <paroga@webkit.org>
43993
43994         Build fix for WinCE after r131365.
43995
43996         * platform/graphics/GlyphBuffer.h:
43997         (WebCore::GlyphBufferAdvance::width):
43998         * platform/graphics/wince/FontWinCE.cpp:
43999         (WebCore::cursorToX):
44000         * platform/graphics/wince/GraphicsContextWinCE.cpp:
44001         (WebCore::GraphicsContext::drawText):
44002
44003 2012-10-17  Mike West  <mkwst@chromium.org>
44004
44005         V8 should throw a more descriptive exception when blocking 'eval' via CSP.
44006         https://bugs.webkit.org/show_bug.cgi?id=94332
44007
44008         Reviewed by Adam Barth.
44009
44010         Following up on https://bugs.webkit.org/show_bug.cgi?id=94331, this
44011         patch wires up the new error message mechanism to V8, and updates the
44012         Chromium test expectations accordingly.
44013
44014         * bindings/v8/ScriptController.cpp:
44015         (WebCore::ScriptController::disableEval):
44016             Pass 'errorMessage' through to V8.
44017         * bindings/v8/V8DOMWindowShell.cpp:
44018         (WebCore::V8DOMWindowShell::initializeIfNeeded):
44019             Grab the error message from ContentSecurityPolicy, and pass it
44020             through to V8.
44021         * bindings/v8/WorkerContextExecutionProxy.cpp:
44022         (WebCore::WorkerContextExecutionProxy::WorkerContextExecutionProxy):
44023         (WebCore::WorkerContextExecutionProxy::evaluate):
44024         (WebCore::WorkerContextExecutionProxy::setEvalAllowed):
44025         * bindings/v8/WorkerContextExecutionProxy.h:
44026         (WorkerContextExecutionProxy):
44027             Convert 'm_disableEvalPending' to a string to store the current
44028             error message, and use it to set the eval state.
44029         * bindings/v8/WorkerScriptController.cpp:
44030         (WebCore::WorkerScriptController::disableEval):
44031             Pass 'errorMessage' through to V8.
44032
44033 2012-10-17  MORITA Hajime  <morrita@google.com>
44034
44035         Assertion failed on HTMLFormControlElement.cpp: updateFromElementCallback()
44036         https://bugs.webkit.org/show_bug.cgi?id=99566
44037
44038         Reviewed by Kent Tamura.
44039
44040         It had a too optimistic assertion. This change removes it.
44041
44042         Test: fast/forms/textarea/textarea-autofocus-removal-while-focusing.html
44043
44044         * html/HTMLFormControlElement.cpp:
44045         (WebCore::updateFromElementCallback):
44046
44047 2012-10-17  Vsevolod Vlasov  <vsevik@chromium.org>
44048
44049         Web Inspector: When dirty uiSourceCode is saved to disk from scripts navigator context menu working copy is not committed.
44050         https://bugs.webkit.org/show_bug.cgi?id=99555
44051
44052         Reviewed by Yury Semikhatsky.
44053
44054         Save As context menu handler now commits working copy for dirty UISourceCodes.
44055
44056         * inspector/front-end/HandlerRegistry.js:
44057
44058 2012-10-17  Vsevolod Vlasov  <vsevik@chromium.org>
44059
44060         Web Inspector: Stylesheets saved with FileManager are not saved to disk when edited from Elements panel.
44061         https://bugs.webkit.org/show_bug.cgi?id=99554
44062
44063         Reviewed by Yury Semikhatsky.
44064
44065         Moved saving to disk from SourceFrame to UISourceCode.
44066
44067         * inspector/front-end/SourceFrame.js:
44068         (WebInspector.SourceFrame.prototype._commitEditing):
44069         * inspector/front-end/UISourceCode.js:
44070         (WebInspector.UISourceCode.prototype._commitContent):
44071
44072 2012-10-17  Vsevolod Vlasov  <vsevik@chromium.org>
44073
44074         Web Inspector: [Regression] SASS sources are not saved to disk.
44075         https://bugs.webkit.org/show_bug.cgi?id=99551
44076
44077         Reviewed by Yury Semikhatsky.
44078
44079         Added resource null checks.
44080
44081         * inspector/front-end/StylesSourceMapping.js:
44082         (WebInspector.StylesSourceMapping.prototype._uiSourceCodeAddedToWorkspace):
44083
44084 2012-10-17  Elliott Sprehn  <esprehn@chromium.org>
44085
44086         Clean up ContentData operator overloads
44087         https://bugs.webkit.org/show_bug.cgi?id=99556
44088
44089         Reviewed by Eric Seidel.
44090
44091         Use virtual dispatch for checking ContentData equality instead
44092         of a switch over the type. This the first step in getting rid
44093         of the StyleContentType enum and all the switch statements over
44094         the type().
44095
44096         No tests needed, this is just a refactor.        
44097
44098         * rendering/style/ContentData.cpp:
44099         * rendering/style/ContentData.h:
44100         (ContentData):
44101         (WebCore::operator==):
44102         (WebCore):
44103         (WebCore::operator!=):
44104
44105 2012-10-17  Gabor Rapcsanyi  <rgabor@webkit.org>
44106
44107         NEON intrinsics Gauss filter does not work properly
44108         https://bugs.webkit.org/show_bug.cgi?id=98875
44109
44110         Reviewed by Zoltan Herczeg.
44111
44112         Fixing the NEON intrinsics Gauss filter. The stride parameter
44113         was missing from the intrinsics algorithm. Tested with pixel
44114         checks, now it's working properly.
44115
44116         * platform/graphics/filters/arm/FEGaussianBlurNEON.h:
44117         (WebCore::boxBlurNEON):
44118
44119 2012-10-17  MORITA Hajime  <morrita@google.com>
44120
44121         Crash on Frame::inScope() part 2
44122         https://bugs.webkit.org/show_bug.cgi?id=99543
44123
44124         Reviewed by Kent Tamura.
44125
44126         FrameTree::scopedChildCount() can be called even when the one of child frames
44127         is in orphan state. This change added a guard for that case.
44128
44129         No new tests. A hard-to-test timing issue.
44130
44131         * page/Frame.cpp:
44132         (WebCore::Frame::inScope):
44133
44134 2012-10-17  Shinya Kawanaka  <shinyak@chromium.org>
44135
44136         Remove shadowAncestorNode() from VisibleSelection
44137         https://bugs.webkit.org/show_bug.cgi?id=99544
44138
44139         Reviewed by Hajime Morita.
44140
44141         An effort to replace shadowAncestorNode() with shadowHost(), since shadowAncestorNode() is now deprecated.
44142
44143         No new tests, no change in behavior.
44144
44145         * editing/VisibleSelection.cpp:
44146         (WebCore::VisibleSelection::adjustSelectionToAvoidCrossingEditingBoundaries): Since shadowHost() returns 0 if
44147         an element is not in shadowRoot, it's ok to compare shadowAncestor to 0.
44148
44149 2012-10-17  Douglas Stockwell  <dstockwell@chromium.org>
44150
44151         Content of replaced elements should be trimmed to the content edge curve.
44152         https://bugs.webkit.org/show_bug.cgi?id=63899
44153
44154         Reviewed by Simon Fraser.
44155
44156         When a border-radius is specified the content of replaced elements needs to be clipped to avoid
44157         being painted over the padding or border in the corners. Previously the clip that was applied
44158         was set to the border-edge curve, this patch contracts the clip by the size of the border and
44159         padding (the content-edge curve) to match the css3 spec.
44160         Spec: http://www.w3.org/TR/css3-background/#corner-clipping
44161
44162         Test: fast/replaced/border-radius-clip-content-edge.html
44163
44164         * rendering/RenderBoxModelObject.h:
44165         (RenderBoxModelObject):
44166         * rendering/RenderReplaced.cpp:
44167         (WebCore::RenderReplaced::paint):
44168         * rendering/RenderWidget.cpp:
44169         (WebCore::RenderWidget::paint):
44170
44171 2012-10-17  Kunihiko Sakamoto  <ksakamoto@chromium.org>
44172
44173         The HTML5 formtarget/formaction/formenctyp/formmethod/formnovalidate attributes don't work in button tags with nested elements
44174         https://bugs.webkit.org/show_bug.cgi?id=90539
44175
44176         Reviewed by Kent Tamura.
44177
44178         Fix a bug where form(action|enctype|method|target) attributes of <button> are not
44179         honored if the target of the click event is an element nested within the button.
44180
44181         Test: fast/forms/formaction-attribute.html
44182
44183         * loader/FormSubmission.cpp:
44184         (WebCore::FormSubmission::create): Looks for the attributes for form submission
44185         from the nearest FormControlElement ancestor of the event target.
44186
44187 2012-10-16  MORITA Hajime  <morrita@google.com>
44188
44189         [Shadow DOM][V8] WebCore::V8DOMWindow::installPerContextProperties() is slow when shadowDOMEnabled flag is on.
44190         https://bugs.webkit.org/show_bug.cgi?id=99428
44191
44192         Reviewed by Adam Barth.
44193
44194         A benchmark unveiled that installPerContextProperties() could have made DOMWindow setup slower when
44195         - Some properties are added per-context basis by turnin the flag on and
44196         - There are bunch of DOMWindow object in the page (that is, there are many iframes.)
44197
44198         This change eliminates Shadow DOM related per-context properties from DOMWindow for getting rid of that slowness.
44199
44200         * dom/ContextFeatures.cpp:
44201         * dom/ContextFeatures.h: Removed shadowDOMEnabled() method and related enum entry.
44202         * dom/Position.cpp:
44203         (WebCore::Position::Position):
44204         (WebCore::Position::findParent):
44205         * dom/TreeScope.cpp:
44206         (WebCore::TreeScope::getSelection):
44207         * dom/make_names.pl: Re-introduced "runtimeConditional" directive.
44208         (defaultTagPropertyHash):
44209         (printConstructorInterior):
44210         (printFactoryCppFile):
44211         (printWrapperFunctions):
44212         (printWrapperFactoryCppFile):
44213         * html/HTMLTagNames.in:
44214         * html/shadow/HTMLContentElement.cpp:
44215         (WebCore::contentTagName):
44216         * page/DOMWindow.idl:
44217
44218 2012-10-16  Julien Chaffraix  <jchaffraix@webkit.org>
44219
44220         Make RenderObject destruction during detach a top-down operation
44221         https://bugs.webkit.org/show_bug.cgi?id=98336
44222
44223         Reviewed by Eric Seidel.
44224
44225         detach() is a DOM-driven operation that destroys the renderers bottom-up.
44226         While this is correct, it causes extra-work to be done (tree cleaning, ...)
44227         as it doesn't know about the render tree's structure.
44228
44229         The render tree on the other side already supports top-down operations
44230         but it was overriden by the DOM side of detach.
44231
44232         This change only makes ContainerNode::detach do a top-down render tree
44233         destruction. This is a required step towards doing smarter destruction.
44234
44235         Refactoring covered by existing tests.
44236
44237         * dom/ContainerNode.cpp:
44238         (WebCore::ContainerNode::detach):
44239         Changed the method to do a top-down destruction.
44240
44241         * dom/Node.cpp:
44242         (WebCore::Node::detach):
44243         Added this ASSERT that ensures that we have properly cleaned up the
44244         whole DOM subtree. The only exception is child content belonging to a
44245         flow-thread as the code will shuffle the renderers under the flow-thread.
44246
44247         * rendering/RenderObject.cpp:
44248         (WebCore::RenderObject::willBeDestroyed):
44249         As we don't update the node's renderer on the DOM side, do it here.
44250         The upside is that it ensures that we don't left any stray renderer
44251         in the tree.
44252
44253         * rendering/RenderObjectChildList.cpp:
44254         (WebCore::RenderObjectChildList::destroyLeftoverChildren):
44255         Removed the calls to setRenderer as they are redundant with what we do
44256         in willBeDestroyed.
44257
44258         * rendering/RenderTextFragment.cpp:
44259         (WebCore::RenderTextFragment::setText):
44260         Removed some now unneeded code, replaced by an ASSERT. This is because
44261         destroying m_firstLetter would automatically reset the node's renderer
44262         in destroyLeftoverChildren.
44263
44264 2012-10-16  Joseph Pecoraro  <pecoraro@apple.com>
44265
44266         HTMLSelectElement::optionSelectedByUser confuses listIndex and optionIndex
44267         https://bugs.webkit.org/show_bug.cgi?id=99523
44268
44269         Reviewed by Simon Fraser.
44270
44271         There was a call site where the optionIndex was being passed to a
44272         function that expected the listIndex. Convert appropriately.
44273
44274         Extends Test: platform/mac/fast/objc/dom-html-select-activate.html
44275
44276         * html/HTMLSelectElement.cpp:
44277         (WebCore::HTMLSelectElement::optionSelectedByUser):
44278
44279 2012-10-16  Jian Li  <jianli@chromium.org>
44280
44281         Rename feature define ENABLE_WIDGET_REGION to ENABLE_DRAGGBALE_REGION
44282         https://bugs.webkit.org/show_bug.cgi?id=98975
44283
44284         Reviewed by Adam Barth.
44285
44286         Renaming is needed to better match with the draggable region code.
44287
44288         No new tests due to no functional change.
44289
44290         * Configurations/FeatureDefines.xcconfig:
44291         * DerivedSources.make:
44292         * WebCore.exp.in:
44293         * css/CSSComputedStyleDeclaration.cpp:
44294         (WebCore):
44295         (WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue):
44296         * css/CSSParser.cpp:
44297         (WebCore::CSSParser::parseValue):
44298         * css/CSSProperty.cpp:
44299         (WebCore::CSSProperty::isInheritedProperty):
44300         * css/CSSPropertyNames.in:
44301         * css/CSSValueKeywords.in:
44302         * css/StyleResolver.cpp:
44303         (WebCore::StyleResolver::applyProperty):
44304         * dom/Document.cpp:
44305         (WebCore::Document::Document):
44306         (WebCore):
44307         (WebCore::Document::reportMemoryUsage):
44308         * dom/Document.h:
44309         (WebCore):
44310         (Document):
44311         * page/Chrome.cpp:
44312         (WebCore):
44313         * page/ChromeClient.h:
44314         (ChromeClient):
44315         * page/FrameView.cpp:
44316         (WebCore::FrameView::layout):
44317         (WebCore):
44318         (WebCore::FrameView::paintContents):
44319         * page/FrameView.h:
44320         (FrameView):
44321         * rendering/RenderInline.cpp:
44322         (WebCore):
44323         (WebCore::RenderInline::addAnnotatedRegions):
44324         * rendering/RenderInline.h:
44325         (RenderInline):
44326         * rendering/RenderLayer.cpp:
44327         (WebCore::RenderLayer::scrollTo):
44328         (WebCore::RenderLayer::setHasHorizontalScrollbar):
44329         (WebCore::RenderLayer::setHasVerticalScrollbar):
44330         (WebCore::RenderLayer::updateScrollbarsAfterLayout):
44331         * rendering/RenderListBox.cpp:
44332         (WebCore::RenderListBox::setHasVerticalScrollbar):
44333         * rendering/RenderObject.cpp:
44334         (WebCore::RenderObject::styleWillChange):
44335         (WebCore):
44336         (WebCore::RenderObject::addAnnotatedRegions):
44337         * rendering/RenderObject.h:
44338         (WebCore::AnnotatedRegionValue::operator==):
44339         (AnnotatedRegionValue):
44340         (RenderObject):
44341         * rendering/style/RenderStyle.h:
44342         * rendering/style/RenderStyleConstants.h:
44343         * rendering/style/StyleRareNonInheritedData.cpp:
44344         (WebCore::StyleRareNonInheritedData::StyleRareNonInheritedData):
44345         (WebCore::StyleRareNonInheritedData::operator==):
44346         * rendering/style/StyleRareNonInheritedData.h:
44347         (StyleRareNonInheritedData):
44348
44349 2012-10-16  James Simonsen  <simonjam@chromium.org>
44350
44351         [Page Visibility API] View-less documents should report as hidden
44352         https://bugs.webkit.org/show_bug.cgi?id=99410
44353
44354         Reviewed by Tony Gentilcore.
44355
44356         Test: fast/events/page-visibility-null-view.html
44357
44358         * dom/Document.cpp:
44359         (WebCore::Document::visibilityState):
44360
44361 2012-10-16  Michael Saboff  <msaboff@apple.com>
44362
44363         Change WTF_USE_8BIT_TEXTRUN to ENABLE_8BIT_TEXTRUN
44364         https://bugs.webkit.org/show_bug.cgi?id=99484
44365
44366         Reviewed by Eric Seidel.
44367
44368         Changed macro name to align with it's purpose, therefore changed USE(8BIT_TEXTRUN) to ENABLE(8BIT_TEXTRUN).
44369
44370         No new tests.  Changed macro name, no functional change.
44371
44372         * platform/graphics/TextRun.h:
44373         (WebCore::TextRun::TextRun):
44374         (WebCore::TextRun::subRun):
44375         * rendering/RenderBlock.cpp:
44376         (WebCore::RenderBlock::constructTextRun):
44377         * rendering/RenderBlock.h:
44378         (RenderBlock):
44379
44380 2012-10-16  Noam Rosenthal  <noam.rosenthal@nokia.com>
44381
44382         [Qt] REGRESSION(r131485): It broke the build
44383         https://bugs.webkit.org/show_bug.cgi?id=99499
44384
44385         Unreviewed build (warning) fix.
44386
44387         * platform/graphics/texmap/TextureMapperShaderManager.cpp:
44388         (WebCore::TextureMapperShaderProgram::getLocation):
44389
44390 2012-10-16  David Grogan  <dgrogan@chromium.org>
44391
44392         Inspector: Don't fire assert when inspecting an empty db
44393         https://bugs.webkit.org/show_bug.cgi?id=99370
44394
44395         Reviewed by Vsevolod Vlasov.
44396
44397         * inspector/InspectorIndexedDBAgent.cpp:
44398         (WebCore):
44399
44400 2012-10-16  Tony Chang  <tony@chromium.org>
44401
44402         Unreviewed, try to fix the Apple Win build by forcing a rebuild of RenderingAllInOne.cpp.
44403
44404         * rendering/RenderingAllInOne.cpp:
44405
44406 2012-10-16  Andrew Scherkus  <scherkus@chromium.org>
44407
44408         Fix crash in WebCore::MediaControlPanelElement::makeTransparent()
44409         https://bugs.webkit.org/show_bug.cgi?id=97951
44410
44411         Reviewed by Simon Fraser.
44412
44413         No new tests as it's a speculative fix based on crash dump analysis.
44414      
44415         Despite MediaControlPanelElement checking for document()->page() nullity in other places, it forgot one check in makeTransparent().
44416
44417         * html/shadow/MediaControlElements.cpp:
44418         (WebCore::MediaControlPanelElement::makeTransparent):
44419
44420 2012-10-16  Emil A Eklund  <eae@chromium.org>
44421
44422         Remove special-case flooring of baselinePosition for replaced elements in InlineFlowBox::placeBoxesInBlockDirection
44423         https://bugs.webkit.org/show_bug.cgi?id=99376
44424
44425         Reviewed by Levi Weintraub.
44426
44427         In r122769 (bug 91410) we added a special-case handling for
44428         replaced elements in InlineFlowBox::placeBoxesInBlockDirection
44429         to work around positioning issues in a couple of svg tests.
44430         This was needed to compensate for a workaround in the table
44431         painting code that was fixed in r131358 (bug 99364). As such the
44432         special-case handling for replaced elements is no longer needed
44433         in InlineFlowBox::placeBoxesInBlockDirection.
44434
44435         Furthermore this caused problems with caret repainting leaving
44436         residual pixels which motivated this change.
44437
44438         No new tests, have not been able to write a repaint test to
44439         demonstrate the caret repaint issue.
44440
44441         * rendering/InlineFlowBox.cpp:
44442         (WebCore::InlineFlowBox::placeBoxesInBlockDirection):
44443
44444 2012-10-16  Simon Fraser  <simon.fraser@apple.com>
44445
44446         Some #include hygiene
44447         https://bugs.webkit.org/show_bug.cgi?id=99500
44448
44449         Reviewed by Tony Chang.
44450
44451         Clean up some #includes, mostly related to GraphicsLayer.h. In many
44452         cases this can be replaced by PlatformLayer.h.
44453         
44454         Remove an #include of PluginViewBase.h from Page.h, which was a source
44455         of #include fan-out.
44456
44457         * html/canvas/CanvasRenderingContext2D.h:
44458         * page/Page.h:
44459         * page/scrolling/ScrollingCoordinator.h:
44460         * page/scrolling/ScrollingStateNode.h:
44461         * page/scrolling/mac/ScrollingStateNodeMac.mm:
44462         * platform/graphics/GraphicsContext3D.h:
44463         * platform/graphics/MediaPlayer.h:
44464         * platform/graphics/avfoundation/MediaPlayerPrivateAVFoundation.cpp:
44465         * platform/graphics/gpu/DrawingBuffer.h:
44466         * platform/graphics/mac/MediaPlayerPrivateQTKit.mm:
44467         * plugins/PluginViewBase.h:
44468
44469 2012-10-16  Adam Barth  <abarth@webkit.org>
44470
44471         Document::adoptNode shouldn't special-case <iframe>
44472         https://bugs.webkit.org/show_bug.cgi?id=99247
44473
44474         Reviewed by Ryosuke Niwa.
44475
44476         The special case was added in http://trac.webkit.org/changeset/75293 to
44477         fix a bug with magic iframes. Originally, I planned to remove this
44478         special case, but further investigation reveals that other browsers
44479         throw exceptions for other frame owner elements as well. Now we treat
44480         all frame owner elements the same way.
44481
44482         Test: fast/frames/adopt-object-into-itself.html
44483
44484         * dom/Document.cpp:
44485         (WebCore::Document::adoptNode):
44486
44487 2012-10-16  Dominik Röttsches  <dominik.rottsches@intel.com>
44488
44489         Init timeout flag in ResourceErrorMac
44490         https://bugs.webkit.org/show_bug.cgi?id=99478
44491
44492         Reviewed by Alexey Proskuryakov.
44493
44494         On construction from platform error types, initialize the timeout flag 
44495         to true if the error results from a timeout.
44496
44497         No new tests, covered by tests that will be added in bug 74802.
44498
44499         * platform/network/mac/ResourceErrorMac.mm:
44500         (WebCore::ResourceError::platformLazyInit): Initializing timeout flag if the error was a timeout.
44501
44502 2012-10-16  Tony Chang  <tony@chromium.org>
44503
44504         input[type=range] as a flex item renders thumb at wrong position
44505         https://bugs.webkit.org/show_bug.cgi?id=98666
44506
44507         Reviewed by Ojan Vafai.
44508
44509         Replace RenderSlider implementation with new flexbox and clean up the shadow DOM.
44510         The previous code was trying to set the height to 100% and had a bunch of hacks in
44511         the renderer code to set an explicit height. Using the new flexbox allows us to
44512         remove these renderer hacks.
44513
44514         Test: css3/flexbox/flexitem-stretch-range.html
44515
44516         * css/html.css:
44517         (input[type="range"]::-webkit-slider-container, input[type="range"]::-webkit-media-slider-container): Use new flexbox.
44518         (input[type="range"]::-webkit-slider-runnable-track): Use new flexbox.
44519         (input[type="range"]::-webkit-slider-thumb, input[type="range"]::-webkit-media-slider-thumb): Remove relative positioning since we're
44520         no longer setting top/left in the layout code.
44521         * css/mediaControlsChromium.css: Remove redundant styles and bottom: 1px hack.
44522         * css/mediaControlsChromiumAndroid.css: Remove redundant styles and bottom: 1px hack.
44523         * html/RangeInputType.cpp:
44524         (WebCore::RangeInputType::listAttributeTargetChanged): We need to force a layout
44525         since the height of the control should change when adding/removing a datalist.
44526         * html/shadow/SliderThumbElement.cpp:
44527         (WebCore::RenderSliderContainer::RenderSliderContainer): Use new flexbox.
44528         (WebCore::RenderSliderContainer::computeLogicalHeight): Rather than setting style()->height() in layout, just compute the correct
44529         height when asked.  If we have a datalist, we increase the height (same code as before).  If we're vertical,
44530         we use the intrinsic size.
44531         (WebCore::RenderSliderContainer::layout): Remove extra layout code, but handle the position of the thumb.
44532         This used to be handled in the thumb's layout method, but I deleted that.
44533         * html/shadow/SliderThumbElement.h:
44534         * rendering/RenderSlider.cpp:
44535         (WebCore::RenderSlider::RenderSlider): Use new flexbox.
44536         (WebCore::RenderSlider::layout): Set the limiter size to the size of the thumb. This is necessary
44537         for fast/css/unknown-pseudo-element-matching.html which tries to set the height of the thumb to 1px
44538         and expects the input to also have a height of 1px.  It worked before because the height of the input
44539         didn't depend on the height of its children.
44540         * rendering/RenderSlider.h: Fix indentation.
44541         (RenderSlider): Use new flexible box.
44542
44543 2012-10-16  Dima Gorbik  <dgorbik@apple.com>
44544
44545         Remove Platform.h include from the header files.
44546         https://bugs.webkit.org/show_bug.cgi?id=98665
44547
44548         Reviewed by Eric Seidel.
44549
44550         We don't want other clients that include WebKit headers to know about Platform.h.
44551
44552         No new tests.
44553
44554         * platform/MemoryPressureHandler.h:
44555         * platform/graphics/filters/arm/FECompositeArithmeticNEON.h:
44556         * platform/graphics/filters/arm/FEGaussianBlurNEON.h:
44557         * platform/graphics/filters/arm/FELightingNEON.h:
44558
44559 2012-10-16  Xianzhu Wang  <wangxianzhu@chromium.org>
44560
44561         [Chromium] Android: Need a way to get appropriate font for some specific characters.
44562         https://bugs.webkit.org/show_bug.cgi?id=67587
44563
44564         Reviewed by Adam Barth.
44565
44566         Use the new Skia API SkGetFallbackFamilyNameForChar() to get the family name for individual characters.
44567
44568         No new tests. The following existing tests pass with the change:
44569         fast/writing-mode/vertical-subst-font-vert-no-dflt.html
44570         fast/dynamic/text-combine.html
44571         fast/writing-mode/japanese-rl-text.html
44572         fast/writing-mode/japanese-rl-selection.html
44573         fast/writing-mode/japanese-lr-text.html
44574         fast/repaint/japanese-rl-selection-repaint.html
44575         fast/writing-mode/border-vertical-lr.html
44576
44577         * platform/graphics/chromium/FontCacheAndroid.cpp:
44578         (WebCore::FontCache::getFontDataForCharacters):
44579
44580 2012-10-16  Tommy Widenflycht  <tommyw@google.com>
44581
44582         MediaStream API: Add the chromium API for RTCDataChannel
44583         https://bugs.webkit.org/show_bug.cgi?id=99435
44584
44585         Reviewed by Adam Barth.
44586
44587         Adding WebRTCDataChannel.
44588
44589         Test: fast/mediastream/RTCPeerConnection-datachannel.html
44590
44591         * WebCore.gypi:
44592         * platform/chromium/support/WebRTCDataChannel.cpp: Added.
44593         (WebKit):
44594         (ExtraDataContainer):
44595         (WebKit::ExtraDataContainer::ExtraDataContainer):
44596         (WebKit::ExtraDataContainer::extraData):
44597         (WebKit::WebRTCDataChannel::WebRTCDataChannel):
44598         (WebKit::WebRTCDataChannel::initialize):
44599         (WebKit::WebRTCDataChannel::assign):
44600         (WebKit::WebRTCDataChannel::reset):
44601         (WebKit::WebRTCDataChannel::operator PassRefPtr<WebCore::RTCDataChannelDescriptor>):
44602         (WebKit::WebRTCDataChannel::operator WebCore::RTCDataChannelDescriptor*):
44603         (WebKit::WebRTCDataChannel::extraData):
44604         (WebKit::WebRTCDataChannel::setExtraData):
44605         (WebKit::WebRTCDataChannel::label):
44606         (WebKit::WebRTCDataChannel::reliable):
44607         (WebKit::WebRTCDataChannel::setBufferedAmount):
44608         (WebKit::WebRTCDataChannel::readyStateChanged):
44609         (WebKit::WebRTCDataChannel::dataArrived):
44610         (WebKit::WebRTCDataChannel::error):
44611         * platform/mediastream/chromium/RTCPeerConnectionHandlerChromium.cpp:
44612         (WebCore::RTCPeerConnectionHandlerChromium::negotiationNeeded):
44613         (WebCore::RTCPeerConnectionHandlerChromium::didGenerateICECandidate):
44614         (WebCore):
44615         (WebCore::RTCPeerConnectionHandlerChromium::didChangeReadyState):
44616         (WebCore::RTCPeerConnectionHandlerChromium::didChangeICEState):
44617         (WebCore::RTCPeerConnectionHandlerChromium::didRemoveRemoteStream):
44618
44619 2012-10-16  Brady Eidson  <beidson@apple.com>
44620
44621         Update indentation in *ResourceLoader headers to match modern WebKit style
44622         https://bugs.webkit.org/show_bug.cgi?id=99487
44623
44624         Reviewed by Beth Dakin.
44625
44626         I'm going to be working on these classes and the indentation is driving me crazy.
44627
44628         * loader/MainResourceLoader.h:
44629         (WebCore):
44630         (MainResourceLoader):
44631         (WebCore::MainResourceLoader::isLoadingMultipartContent):
44632
44633         * loader/NetscapePlugInStreamLoader.h:
44634         (WebCore):
44635         (NetscapePlugInStreamLoaderClient):
44636         (WebCore::NetscapePlugInStreamLoaderClient::didFinishLoading):
44637         (WebCore::NetscapePlugInStreamLoaderClient::wantsAllStreams):
44638         (WebCore::NetscapePlugInStreamLoaderClient::~NetscapePlugInStreamLoaderClient):
44639         (NetscapePlugInStreamLoader):
44640
44641         * loader/ResourceLoader.h:
44642         (WebCore):
44643         (ResourceLoader):
44644         (WebCore::ResourceLoader::documentLoader):
44645         (WebCore::ResourceLoader::originalRequest):
44646         (WebCore::ResourceLoader::identifier):
44647         (WebCore::ResourceLoader::didReceiveCachedMetadata):
44648         (WebCore::ResourceLoader::willStopBufferingData):
44649         (WebCore::ResourceLoader::shouldUseCredentialStorage):
44650         (WebCore::ResourceLoader::didReceiveAuthenticationChallenge):
44651         (WebCore::ResourceLoader::didCancelAuthenticationChallenge):
44652         (WebCore::ResourceLoader::canAuthenticateAgainstProtectionSpace):
44653         (WebCore::ResourceLoader::receivedCancellation):
44654         (WebCore::ResourceLoader::url):
44655         (WebCore::ResourceLoader::handle):
44656         (WebCore::ResourceLoader::sendResourceLoadCallbacks):
44657         (WebCore::ResourceLoader::reachedTerminalState):
44658         (WebCore::ResourceLoader::request):
44659         (WebCore::ResourceLoader::cancelled):
44660         (WebCore::ResourceLoader::defersLoading):
44661
44662 2012-10-16  Beth Dakin  <bdakin@apple.com>
44663
44664         https://bugs.webkit.org/show_bug.cgi?id=99254
44665         Make ScrollingTree an actual tree of nodes, and have it reflect the 
44666         ScrollingStateTree
44667
44668         Reviewed by Simon Fraser.
44669
44670         This patch finally makes the ScrollingTree over on the 
44671         ScrollingThread aware of the changes that we have been making to the 
44672         ScrollingStateTree.
44673
44674         First, it makes ScrollingTreeNode a much more generic class, similar 
44675         to ScrollingStateNode. It is an abstract class and we will add other 
44676         types of nodes such as ScrollingTreeFixedNodes that will inherit from 
44677         this class. 
44678
44679         All of the scrolling functionality that was in ScrollingTreeNode has 
44680         been moved to ScrollingTreeScrollingNode. And likewise, 
44681         ScrollingTreeNodeMac has been re-named to 
44682         ScrollingTreeScrollingNodeMac. 
44683
44684         And finally, instead of just updating and creating the root node, 
44685         ScrollingTree now recurses through the whole ScrollingStateTree to 
44686         create and update a full tree of nodes.
44687
44688         New files and moves files.
44689         * WebCore.xcodeproj/project.pbxproj:
44690
44691         Add a getter for the children vector since we need to recurse it in 
44692         ScrollingTree.
44693         * page/scrolling/ScrollingStateNode.h:
44694         (WebCore::ScrollingStateNode::children):
44695         (ScrollingStateNode):
44696
44697         m_rootNode is now a ScrollingTreeScrollingNode.
44698         * page/scrolling/ScrollingTree.cpp:
44699         (WebCore::ScrollingTree::ScrollingTree):
44700
44701         Instead of just updating the root node, call two new functions that 
44702         will take care of updating the whole tree.
44703         (WebCore::ScrollingTree::commitNewTreeState):
44704
44705         This function ecurses through the ScrollingStateTree and updates the 
44706         corresponding ScrollingTreeNodes.
44707         (WebCore::ScrollingTree::updateNodesFromStateNode):
44708
44709         This function takes the ScrollingStateTree's list of removed nodes 
44710         and removes the corresponding nodes from the ScrollingTree. It will 
44711         destroy the nodes after removing it as long as it's not the root 
44712         node. I think it's the safest choice for now to never remove the root 
44713         node. 
44714         (WebCore::ScrollingTree::removeDestroyedNodes):
44715
44716         ScrollingTree now keeps a HashMap mapping ScrollingNodeIDs to 
44717         ScrollingTreeNodes.
44718         * page/scrolling/ScrollingTree.h:
44719
44720         All of the scrolling-related functionality has been moved from this 
44721         class to new class ScrollingTreeScrollingNode. And some basic tree 
44722         traversal functionality has been added.
44723         * page/scrolling/ScrollingTreeNode.cpp:
44724         (WebCore::ScrollingTreeNode::ScrollingTreeNode):
44725         (WebCore::ScrollingTreeNode::appendChild):
44726         (WebCore::ScrollingTreeNode::removeChild):
44727         * page/scrolling/ScrollingTreeNode.h:
44728         (WebCore):
44729         (ScrollingTreeNode):
44730         (WebCore::ScrollingTreeNode::scrollingNodeID):
44731         (WebCore::ScrollingTreeNode::setScrollingNodeID):
44732         (WebCore::ScrollingTreeNode::parent):
44733         (WebCore::ScrollingTreeNode::setParent):
44734         (WebCore::ScrollingTreeNode::scrollingTree):
44735
44736         This class contains all of the scrolling-related work that used to be 
44737         done in ScrollingTreeNode.
44738         * page/scrolling/ScrollingTreeScrollingNode.cpp: Added.
44739         (WebCore):
44740         (WebCore::ScrollingTreeScrollingNode::ScrollingTreeScrollingNode):
44741         (WebCore::ScrollingTreeScrollingNode::~ScrollingTreeScrollingNode):
44742         (WebCore::ScrollingTreeScrollingNode::update):
44743         * page/scrolling/ScrollingTreeScrollingNode.h: Added.
44744         (WebCore):
44745         (ScrollingTreeScrollingNode):
44746         (WebCore::ScrollingTreeScrollingNode::shouldUpdateScrollLayerPositionOnMainThread):
44747         (WebCore::ScrollingTreeScrollingNode::viewportRect):
44748         (WebCore::ScrollingTreeScrollingNode::contentsSize):
44749         (WebCore::ScrollingTreeScrollingNode::horizontalScrollElasticity):
44750         (WebCore::ScrollingTreeScrollingNode::verticalScrollElasticity):
44751         (WebCore::ScrollingTreeScrollingNode::hasEnabledHorizontalScrollbar):
44752         (WebCore::ScrollingTreeScrollingNode::hasEnabledVerticalScrollbar):
44753         (WebCore::ScrollingTreeScrollingNode::canHaveScrollbars):
44754         (WebCore::ScrollingTreeScrollingNode::scrollOrigin):
44755
44756         I noticed this whitespace error and had to fix it.
44757         * page/scrolling/mac/ScrollingCoordinatorMac.mm:
44758         (WebCore::ScrollingCoordinatorMac::detachFromStateTree):
44759
44760         Include ScrollingTreeScrollingNodeMac.h instead of 
44761         ScrollingTreeNodeMac.h
44762         * page/scrolling/mac/ScrollingTreeMac.mm:
44763
44764         This class was just re-named.
44765         * page/scrolling/mac/ScrollingTreeNodeMac.h: Removed.
44766         * page/scrolling/mac/ScrollingTreeNodeMac.mm: Removed.
44767         * page/scrolling/mac/ScrollingTreeScrollingNodeMac.h: Copied from page/scrolling/mac/ScrollingTreeNodeMac.h.
44768         (ScrollingTreeScrollingNodeMac):
44769         * page/scrolling/mac/ScrollingTreeScrollingNodeMac.mm: Copied from page/scrolling/mac/ScrollingTreeNodeMac.mm.
44770         (WebCore::ScrollingTreeScrollingNode::create):
44771         (WebCore::ScrollingTreeScrollingNodeMac::ScrollingTreeScrollingNodeMac):
44772         (WebCore::ScrollingTreeScrollingNodeMac::~ScrollingTreeScrollingNodeMac):
44773         (WebCore::ScrollingTreeScrollingNodeMac::update):
44774         (WebCore::ScrollingTreeScrollingNodeMac::handleWheelEvent):
44775         (WebCore::ScrollingTreeScrollingNodeMac::allowsHorizontalStretching):
44776         (WebCore::ScrollingTreeScrollingNodeMac::allowsVerticalStretching):
44777         (WebCore::ScrollingTreeScrollingNodeMac::stretchAmount):
44778         (WebCore::ScrollingTreeScrollingNodeMac::pinnedInDirection):
44779         (WebCore::ScrollingTreeScrollingNodeMac::canScrollHorizontally):
44780         (WebCore::ScrollingTreeScrollingNodeMac::canScrollVertically):
44781         (WebCore::ScrollingTreeScrollingNodeMac::shouldRubberBandInDirection):
44782         (WebCore::ScrollingTreeScrollingNodeMac::absoluteScrollPosition):
44783         (WebCore::ScrollingTreeScrollingNodeMac::immediateScrollBy):
44784         (WebCore::ScrollingTreeScrollingNodeMac::immediateScrollByWithoutContentEdgeConstraints):
44785         (WebCore::ScrollingTreeScrollingNodeMac::startSnapRubberbandTimer):
44786         (WebCore::ScrollingTreeScrollingNodeMac::stopSnapRubberbandTimer):
44787         (WebCore::ScrollingTreeScrollingNodeMac::scrollPosition):
44788         (WebCore::ScrollingTreeScrollingNodeMac::setScrollPosition):
44789         (WebCore::ScrollingTreeScrollingNodeMac::setScrollPositionWithoutContentEdgeConstraints):
44790         (WebCore::ScrollingTreeScrollingNodeMac::setScrollLayerPosition):
44791         (WebCore::ScrollingTreeScrollingNodeMac::minimumScrollPosition):
44792         (WebCore::ScrollingTreeScrollingNodeMac::maximumScrollPosition):
44793         (WebCore::ScrollingTreeScrollingNodeMac::scrollBy):
44794         (WebCore::ScrollingTreeScrollingNodeMac::scrollByWithoutContentEdgeConstraints):
44795         (WebCore::ScrollingTreeScrollingNodeMac::updateMainFramePinState):
44796         (WebCore::ScrollingTreeScrollingNodeMac::logExposedUnfilledArea):
44797
44798 2012-10-16  Simon Fraser  <simon.fraser@apple.com>
44799
44800         Add a new layer type for the page tiled cache layer
44801         https://bugs.webkit.org/show_bug.cgi?id=99491
44802
44803         Reviewed by Dean Jackson.
44804
44805         In preparation for using tile cache layers in place of CATiledLayer,
44806         add a new PlatformCALayer layer type LayerTypePageTileCacheLayer,
44807         since the page tile cache will have some different behavior from
44808         other tile cache layers.
44809         
44810         Generalize code that was looking at LayerTypeTileCacheLayer to use
44811         usesTileCacheLayer() if it applies to both types of tile caches.
44812
44813         * platform/graphics/ca/GraphicsLayerCA.cpp:
44814         (WebCore::GraphicsLayerCA::GraphicsLayerCA):
44815         (WebCore::GraphicsLayerCA::recursiveCommitChanges): Show the tile
44816         wash for tiled layers as well as layers with transforms (the tile
44817         wash is just for debugging).
44818         (WebCore::GraphicsLayerCA::platformCALayerDidCreateTiles):
44819         (WebCore::GraphicsLayerCA::swapFromOrToTiledLayer):
44820         * platform/graphics/ca/PlatformCALayer.h:
44821         (WebCore::PlatformCALayer::usesTileCacheLayer):
44822         (PlatformCALayer):
44823         * platform/graphics/ca/mac/PlatformCALayerMac.mm:
44824         (PlatformCALayer::PlatformCALayer):
44825         (PlatformCALayer::~PlatformCALayer):
44826         (PlatformCALayer::tiledBacking):
44827         * platform/graphics/mac/WebLayer.mm:
44828         (drawLayerContents): Avoid double-drawing the repaint counter in tile cache layers.
44829
44830 2012-10-16  Stephen Chenney  <schenney@chromium.org> 
44831         An feImage that tries to render itself should be stopped
44832         https://bugs.webkit.org/show_bug.cgi?id=94652
44833
44834         Reviewed by Eric Seidel.
44835
44836         An SVG feImage filter element will accept, as the src to render, an
44837         SVG document that makes use of the feImage itself. This causes the
44838         feImage to try to draw itself while already in the process of drawing
44839         itself. Various problems arise from this. The invariant we wish to
44840         maintain is that no element in the src tree of an feImage element
44841         refers to that feImage.
44842
44843         This patch adds a flag to all FilterData objects that tracks whether or
44844         not the filter is currently applying itself, and avoids applying the
44845         filter recursively.
44846
44847         While it may seem better to catch this problem when the src is set, or
44848         when the filter is built, that turns out to be challenging and
44849         inefficient. Say we choose to test when the src atttribute is set. To
44850         do so would require looking through all of the DOM nodes that will be
44851         rendered for the src, finding all resources used, and checking if any
44852         of them make use fo the feImage element that we are setting the source
44853         for. The infrastructure is not in place to do that, and it would
44854         involve walking a potentially very large portion of the DOM in order
44855         to detect a very rare situation. Note that it is not enough just to
44856         walk the DOM directly under the src; we also need to recursively follow any
44857         resource links to see if they use the feImage (e.g. patterns or
44858         masks or use or ...).
44859
44860         If we instead try to use the renderer node to find self referencing,
44861         we need to recursively walk a potentially very large render tree,
44862         tracing all resources in search of the feImage. This would need to be
44863         done every time the filter is built, which is again a significant
44864         overhead for a situation that is very unlikely to occur. And we do not
44865         have methods that make it easy to find feImage filter effect nodes; they are
44866         hidden behind filter resource nodes.
44867
44868         Hence the runtime check to catch the problem. The check must be in
44869         FilterData and RenderSVGResourceFilter code because we must prevent
44870         the destruction of the feImage when we encounter it recursively.
44871
44872         This patch also renames FilterData::builded to FilterData::isBuilt.
44873
44874         Test: svg/filters/feImage-self-referencing.html
44875
44876         * rendering/svg/RenderSVGResourceFilter.cpp:
44877         (WebCore::ApplyingFilterEffectGuard): Guard to ensure that, in the future, we always
44878         clear the isApplying flag even if the postApplyResource method returns early.
44879         (WebCore::RenderSVGResourceFilter::applyResource): Do not apply a resource that is already applying and
44880         rename builded to isBuilt.
44881         (WebCore::RenderSVGResourceFilter::postApplyResource): Mark a resource as applying and clear after
44882         it is done. Abort if a resource is already applying when the method begins. Rename builded to isBuilt.
44883         (WebCore::RenderSVGResourceFilter::primitiveAttributeChanged): Rename builded to isBuilt.
44884         * rendering/svg/RenderSVGResourceFilter.h:
44885         (WebCore::FilterData::FilterData):
44886         (FilterData): Add isApplying and rename builded to isBuilt.
44887
44888 2012-10-16  Nate Chapin  <japhet@chromium.org>
44889
44890         sendResourceLoadCallbacks() is poorly named
44891         https://bugs.webkit.org/show_bug.cgi?id=99482
44892
44893         Reviewed by Alexey Proskuryakov.
44894
44895         In both CachedResource and ResourceLoader, rename sendResourceLoadCallbacks()
44896         to shouldSendResourceLoadCallbacks() to better indicate that it is a simple getter.
44897
44898         No new tests, simple renaming.
44899
44900         * loader/FrameLoader.cpp:
44901         (WebCore::FrameLoader::loadedResourceFromMemoryCache):
44902         * loader/ResourceLoader.h:
44903         (WebCore::ResourceLoader::shouldSendResourceLoadCallbacks):
44904         * loader/cache/CachedResource.h:
44905         (WebCore::CachedResource::shouldSendResourceLoadCallbacks):
44906
44907 2012-10-16  Chris Rogers  <crogers@google.com>
44908
44909         Rename some AudioNodes
44910         https://bugs.webkit.org/show_bug.cgi?id=99358
44911
44912         Reviewed by Daniel Bates.
44913
44914         Here's a list of the node names, showing the changing ones:
44915             AudioBufferSourceNode
44916             MediaElementAudioSourceNode
44917             MediaStreamAudioSourceNode
44918             JavaScriptAudioNode ------------> ScriptProcessorNode
44919             RealtimeAnalyserNode ------------> AnalyserNode
44920             AudioGainNode ------------> GainNode
44921             DelayNode
44922             BiquadFilterNode
44923             AudioPannerNode ------------> PannerNode
44924             ConvolverNode
44925             AudioChannelSplitter ------------> ChannelSplitterNode
44926             AudioChannelMerger ------------> ChannelMergerNode
44927             DynamicsCompressorNode
44928             Oscillator ------------> OscillatorNode
44929
44930         * CMakeLists.txt:
44931         * DerivedSources.make:
44932         * DerivedSources.pri:
44933         * GNUmakefile.list.am:
44934         * Modules/webaudio/AnalyserNode.cpp: Renamed from Source/WebCore/Modules/webaudio/RealtimeAnalyserNode.cpp.
44935         * Modules/webaudio/AnalyserNode.idl: Renamed from Source/WebCore/Modules/webaudio/RealtimeAnalyserNode.idl.
44936         * Modules/webaudio/AudioBufferSourceNode.cpp:
44937         (WebCore::AudioBufferSourceNode::setPannerNode):
44938         * Modules/webaudio/AudioBufferSourceNode.h:
44939         (AudioBufferSourceNode):
44940         * Modules/webaudio/AudioContext.cpp:
44941         (WebCore::AudioContext::createJavaScriptNode):
44942         (WebCore::AudioContext::createPanner):
44943         (WebCore::AudioContext::createAnalyser):
44944         (WebCore::AudioContext::createGainNode):
44945         (WebCore::AudioContext::createChannelSplitter):
44946         (WebCore::AudioContext::createChannelMerger):
44947         (WebCore::AudioContext::createOscillator):
44948         * Modules/webaudio/AudioContext.h:
44949         (WebCore):
44950         (AudioContext):
44951         * Modules/webaudio/AudioContext.idl:
44952         * Modules/webaudio/ChannelMergerNode.cpp: Renamed from Source/WebCore/Modules/webaudio/AudioChannelMerger.cpp.
44953         * Modules/webaudio/ChannelMergerNode.h: Renamed from Source/WebCore/Modules/webaudio/AudioChannelMerger.h.
44954         (WebCore):
44955         (ChannelMergerNode):
44956         * Modules/webaudio/ChannelMergerNode.idl: Renamed from Source/WebCore/Modules/webaudio/AudioChannelMerger.idl.
44957         * Modules/webaudio/ChannelSplitterNode.cpp: Renamed from Source/WebCore/Modules/webaudio/AudioChannelSplitter.cpp.
44958         * Modules/webaudio/ChannelSplitterNode.h: Renamed from Source/WebCore/Modules/webaudio/AudioChannelSplitter.h.
44959         (WebCore):
44960         (ChannelSplitterNode):
44961         * Modules/webaudio/ChannelSplitterNode.idl: Renamed from Source/WebCore/Modules/webaudio/AudioChannelSplitter.idl.
44962         * Modules/webaudio/DOMWindowWebAudio.idl:
44963         * Modules/webaudio/GainNode.cpp: Renamed from Source/WebCore/Modules/webaudio/AudioGainNode.cpp.
44964         * Modules/webaudio/GainNode.h: Renamed from Source/WebCore/Modules/webaudio/AudioGainNode.h.
44965         * Modules/webaudio/GainNode.idl: Renamed from Source/WebCore/Modules/webaudio/AudioGainNode.idl.
44966         * Modules/webaudio/OscillatorNode.cpp: Renamed from Source/WebCore/Modules/webaudio/Oscillator.cpp.
44967         * Modules/webaudio/OscillatorNode.h: Renamed from Source/WebCore/Modules/webaudio/Oscillator.h.
44968         * Modules/webaudio/OscillatorNode.idl: Renamed from Source/WebCore/Modules/webaudio/Oscillator.idl.
44969         * Modules/webaudio/PannerNode.cpp: Renamed from Source/WebCore/Modules/webaudio/AudioPannerNode.cpp.
44970         * Modules/webaudio/PannerNode.h: Renamed from Source/WebCore/Modules/webaudio/AudioPannerNode.h.
44971         (WebCore):
44972         * Modules/webaudio/PannerNode.idl: Renamed from Source/WebCore/Modules/webaudio/AudioPannerNode.idl.
44973         * Modules/webaudio/ScriptProcessorNode.cpp: Renamed from Source/WebCore/Modules/webaudio/JavaScriptAudioNode.cpp.
44974         * Modules/webaudio/ScriptProcessorNode.h: Renamed from Source/WebCore/Modules/webaudio/JavaScriptAudioNode.h.
44975         (WebCore):
44976         * Modules/webaudio/ScriptProcessorNode.idl: Renamed from Source/WebCore/Modules/webaudio/JavaScriptAudioNode.idl.
44977         * Modules/webaudio/WaveTable.cpp:
44978         (WebCore::WaveTable::createSine):
44979         (WebCore::WaveTable::createSquare):
44980         (WebCore::WaveTable::createSawtooth):
44981         (WebCore::WaveTable::createTriangle):
44982         (WebCore::WaveTable::generateBasicWaveform):
44983         * Target.pri:
44984         * UseJSC.cmake:
44985         * WebCore.gypi:
44986         * WebCore.xcodeproj/project.pbxproj:
44987         * bindings/js/JSScriptProcessorNodeCustom.cpp: Renamed from Source/WebCore/bindings/js/JSJavaScriptAudioNodeCustom.cpp.
44988         (WebCore):
44989         (WebCore::JSScriptProcessorNode::visitChildren):
44990         * dom/EventTarget.h:
44991         (WebCore):
44992         * dom/EventTargetFactory.in:
44993
44994 2012-10-16  Noam Rosenthal  <noam.rosenthal@nokia.com>
44995
44996         [Texmap] Refactor TextureMapperShaderManager to be clearer
44997         https://bugs.webkit.org/show_bug.cgi?id=86048
44998
44999         Reviewed by Martin Robinson.
45000
45001         Previous implementation of TextureMapperShaderManager was very verbose, calling for too
45002         many casts and ambiguous ownership.
45003         This refactor does the following:
45004         1. TextureMapperShaderProgram is one class without subclasses.
45005         2. Uniform/Attribute accessors are generated by special macros (TEXMAP_DECLARE_...) that
45006            generate both the C++ access function, as well as the GLSL name of the variable. This
45007            allows adding/removing variables from a shader without adding broiler-plate code like
45008            before.
45009
45010         After this change TextureMapperShaderManager has only one responsibility - dealing with
45011         TextureMapperGL's built-in shaders and their lifecycle. Preparing filters etc. is done
45012         in TextureMapperGL.
45013
45014         This is a refactor without new functionality. It has been verified to not break any existing
45015         relevant test.
45016
45017         * platform/graphics/texmap/TextureMapperGL.cpp:
45018         (WebCore::TextureMapperGL::drawBorder):
45019         (WebCore::TextureMapperGL::drawQuad):
45020         (WebCore::TextureMapperGL::drawTextureRectangleARB):
45021         (WebCore::TextureMapperGL::drawTexture):
45022         (WebCore::TextureMapperGL::drawTextureWithAntialiasing):
45023         (WebCore::TextureMapperGL::drawTexturedQuadWithProgram):
45024         (WebCore::TextureMapperGL::beginClip):
45025             Use the MACRO-generated uniform accessors.
45026
45027         (WebCore):
45028         (WebCore::keyForFilterType):
45029         (WebCore::getPassesRequiredForFilter):
45030         (WebCore::gauss):
45031         (WebCore::gaussianKernel):
45032         (WebCore::prepareFilterProgram):
45033         (WebCore::TextureMapperGL::drawFiltered):
45034         (WebCore::BitmapTextureGL::applyFilters):
45035             Move the filter logic to TextureMapperGL
45036
45037         * platform/graphics/texmap/TextureMapperShaderManager.cpp:
45038         (WebCore::TextureMapperShaderProgram::TextureMapperShaderProgram):
45039         (WebCore::TextureMapperShaderProgram::getLocation):
45040         (ShaderSpec):
45041         (WebCore::ShaderSpec::ShaderSpec):
45042         (WebCore::getShaderSpec):
45043         (WebCore::TextureMapperShaderManager::TextureMapperShaderManager):
45044         (WebCore::TextureMapperShaderManager::~TextureMapperShaderManager):
45045         (WebCore::TextureMapperShaderManager::getShaderProgram):
45046         * platform/graphics/texmap/TextureMapperShaderManager.h:
45047         (WebCore):
45048         (WebCore::TextureMapperShaderProgram::programID):
45049         (WebCore::TextureMapperShaderProgram::context):
45050         (WebCore::TextureMapperShaderProgram::create):
45051         (TextureMapperShaderProgram):
45052         (TextureMapperShaderManager):
45053             See description.
45054
45055 2012-10-16  Nico Weber  <thakis@chromium.org>
45056
45057         [chromium/mac] Make spelling indicator HighDPI
45058         https://bugs.webkit.org/show_bug.cgi?id=99417
45059
45060         Reviewed by Stephen White.
45061
45062         This is the mac version of http://trac.webkit.org/changeset/130940
45063         Since the mac and non-mac code are very similar again, merge the two
45064         code paths again.
45065
45066         Covered by editing/spelling/(inline-spelling|grammar)-markers-hidpi.html
45067
45068         * platform/graphics/skia/GraphicsContextSkia.cpp:
45069         (WebCore::GraphicsContext::drawLineForDocumentMarker):
45070
45071 2012-10-16  Tony Chang  <tony@chromium.org>
45072
45073         in a column flexbox, input overflows the box when stretched
45074         https://bugs.webkit.org/show_bug.cgi?id=99273
45075
45076         Reviewed by Ojan Vafai.
45077
45078         Fix a bug where we didn't properly subtract padding and border when overriding the child size.
45079         We didn't see this because of a performance optimization in RenderBox where we stretch children.
45080         Also apply this performance optimization in new flexbox for form controls.
45081
45082         Test: css3/flexbox/stretch-input-in-column.html
45083
45084         * rendering/RenderBox.cpp:
45085         (WebCore::flexboxChildHasStretchAlignment):
45086         (WebCore::isStretchingVerticalFlexboxChild):
45087         (WebCore::RenderBox::sizesLogicalWidthToFitContent): Apply performance optimization to form controls in new flexbox.
45088         * rendering/RenderFlexibleBox.cpp:
45089         (WebCore::RenderFlexibleBox::applyStretchAlignmentToChild): Properly subtract border and padding.
45090
45091 2012-10-16  Simon Fraser  <simon.fraser@apple.com>
45092
45093         REGRESSION (r128787): Fixed position div causes other elements to not update correctly
45094         https://bugs.webkit.org/show_bug.cgi?id=98579
45095
45096         Reviewed by Beth Dakin.
45097
45098         RenderLayers cache repaint rects which are computed relative to the repaint container.
45099         Repaint containers depend on whether a RenderLayerBacking has its own backing store,
45100         so if that changes, we need to recompute repaint rects for all descendants.
45101         
45102         Test: compositing/repaint/requires-backing-repaint.html
45103
45104         * rendering/RenderLayerBacking.cpp:
45105         (WebCore::RenderLayerBacking::setRequiresOwnBackingStore):
45106
45107 2012-10-16  Zan Dobersek  <zandobersek@gmail.com>
45108
45109         [GStreamer] GstBuffer ref race in WebKitWebAudioSrcLoop
45110         https://bugs.webkit.org/show_bug.cgi?id=95833
45111
45112         Reviewed by Philippe Normand.
45113
45114         The render bus used in GStreamer's implementation of AudioDestination no longer
45115         allocates memory for each of its channels. Rather than that, when looping, the
45116         data is rendered into a channel-specific GstBuffer. Each buffer is then chained
45117         to the appropriate GstPad, as has been the case before.
45118
45119         No new tests - there are tests covering this change but they are not yet working
45120         on the GTK port or any other GStreamer implementation of Web Audio.
45121
45122         * platform/audio/gstreamer/AudioDestinationGStreamer.cpp:
45123         (WebCore::AudioDestinationGStreamer::AudioDestinationGStreamer):
45124         * platform/audio/gstreamer/WebKitWebAudioSourceGStreamer.cpp:
45125         (_WebKitWebAudioSourcePrivate): Remove an unused member variable.
45126         (webkit_web_audio_src_init): Remove an unnecessary line.
45127         (webKitWebAudioSrcConstructed): Ditto.
45128         (webKitWebAudioSrcLoop):
45129
45130 2012-10-16  Pablo Flouret  <pablof@motorola.com>
45131
45132         Pre-process CSSGrammar.y before running through bison.
45133         https://bugs.webkit.org/show_bug.cgi?id=94290
45134
45135         Reviewed by Tony Chang.
45136
45137         Running CSSGrammar.y through a preprocessor allows the use of feature
45138         defines in all places of the yacc file (i.e. not just in C blocks).
45139         Mostly useful to be able to keep every part of a feature under feature
45140         flags for self-documenting purposes.
45141
45142         No new tests, CSSGrammar.y should be generated correctly and everything
45143         should keep working as before.
45144
45145         * CMakeLists.txt:
45146         * DerivedSources.make:
45147         * DerivedSources.pri:
45148         * GNUmakefile.am:
45149             Modify build systems to use makegrammar.pl to generate the .y files
45150             and run those through bison.
45151
45152         * WebCore.gyp/WebCore.gyp:
45153             Add a new action to preprocess the CSSGrammar.y.in file before the
45154             bison rule is run.
45155
45156         * WebCore.vcproj/WebCore.vcproj:
45157         * WebCore.xcodeproj/project.pbxproj:
45158             Add the new .y.in / .y.includes files.
45159
45160         * css/CSSGrammar.y.in: Renamed from Source/WebCore/css/CSSGrammar.y.
45161             Also moved the top declarations section that has includes, defines,
45162             etc. to its own file. These shouldn't be touched by the first
45163             pass of the preprocessor. And changed the existing ENABLE(FEATURE)
45164             ifdefs to ENABLE_FEATURE since the ENABLE() macro is not available
45165             yet.
45166         * css/CSSGrammar.y.includes: Added.
45167             The aforementioned declarations header section. After the .y.in file
45168             is processed it will be concatenated with this one to make the
45169             CSSGrammar.y file.
45170
45171         * css/makegrammar.pl:
45172             Modify the script to handle .y.in files.
45173
45174 2012-10-16  Raphael Kubo da Costa  <raphael.kubo.da.costa@intel.com>
45175
45176         Implement testRunner.dumpSelectionRect() in WebKitTestRunner
45177         https://bugs.webkit.org/show_bug.cgi?id=69545
45178
45179         Reviewed by Simon Fraser.
45180
45181         * WebCore.exp.in:
45182
45183 2012-10-16  Allan Sandfeld Jensen  <allan.jensen@digia.com>
45184
45185         [Qt] Implement fastBoundingPath/boundingPath distinction.
45186         https://bugs.webkit.org/show_bug.cgi?id=99471
45187
45188         Reviewed by Noam Rosenthal.
45189
45190         Tested by existing test: svg/custom/getBBox-path.svg
45191
45192         * platform/graphics/Path.cpp:
45193         * platform/graphics/qt/PathQt.cpp:
45194         (WebCore::Path::fastBoundingRect):
45195         (WebCore::Path::boundingRect):
45196
45197 2012-10-16  Rob Buis  <rbuis@rim.com>
45198
45199         [BlackBerry] replace BlackBerry::Platform::log() with BBLOG()
45200         https://bugs.webkit.org/show_bug.cgi?id=99302
45201
45202         Reviewed by Yong Li.
45203
45204         Fix a warning introduced by r131335. Since in release BBLOG is empty, only enable this block in debug builds.
45205
45206         * platform/graphics/opengl/GraphicsContext3DOpenGLCommon.cpp:
45207         (WebCore::GraphicsContext3D::compileShader):
45208
45209 2012-10-16  Antoine Quint  <graouts@apple.com>
45210
45211         Inspector should allow reading the compositing debug settings
45212         https://bugs.webkit.org/show_bug.cgi?id=99458
45213
45214         Reviewed by Timothy Hatcher.
45215
45216         * inspector/Inspector.json:
45217         * inspector/InspectorPageAgent.cpp:
45218         (WebCore::InspectorPageAgent::getCompositingBordersVisible):
45219         * inspector/InspectorPageAgent.h:
45220
45221 2012-10-16  Dan Bernstein  <mitz@apple.com>
45222
45223         Code to reverse a GlyphBuffer range is repeated in several places
45224         https://bugs.webkit.org/show_bug.cgi?id=99424
45225
45226         Reviewed by Adele Peterson.
45227
45228         * platform/graphics/FontFastPath.cpp:
45229         (WebCore::Font::getGlyphsAndAdvancesForSimpleText): Replaced for loop with a call to
45230         GlyphBuffer::reverse.
45231         * platform/graphics/GlyphBuffer.h:
45232         (WebCore::GlyphBuffer::reverse): Added. Reverses the given range.
45233         (WebCore::GlyphBuffer::swap): Made private.
45234         * platform/graphics/WidthIterator.cpp:
45235         (WebCore::applyFontTransforms): Replaced for loops with calls to GlyphBuffer::reverse and
45236         corrected their bounds.
45237         * platform/graphics/mac/FontComplexTextMac.cpp:
45238         (WebCore::Font::getGlyphsAndAdvancesForComplexText): Replaced for loop with a call to
45239         GlyphBuffer::range.
45240
45241 2012-10-16  Nate Chapin  <japhet@chromium.org>
45242
45243         Re-order CachedRawResource::data() to set m_data earlier
45244         https://bugs.webkit.org/show_bug.cgi?id=99361
45245
45246         Reviewed by Adam Barth.
45247
45248         Currently, we calculate the diff between the data parameter and m_data, call
45249         dataReceived(), then set m_data to data. If something inside dataReceived()
45250         tries to access m_data via CachedResource::resourceBuffer(), it will see the
45251         old data instead of the new data, which seems inconsistent.
45252
45253         No new tests, as no one appears to try to access m_data within dataReceived() currently.
45254
45255         * loader/cache/CachedRawResource.cpp:
45256         (WebCore::CachedRawResource::data):
45257
45258 2012-10-16  Julien Chaffraix  <jchaffraix@webkit.org>
45259
45260         Fold setCellLogicalWidths logic into RenderTableSection layout
45261         https://bugs.webkit.org/show_bug.cgi?id=99382
45262
45263         Reviewed by Eric Seidel.
45264
45265         setCellLogicalWidths was implemented as a pre-phase to laying out
45266         the table's sections. This split was artificial as any change in
45267         the columns' logical width should trigger a sections' relayout, which
45268         could propagate and mark the cells / rows as needed.
45269
45270         Merging setCellLogicalWidths into RenderTableSection::layout removes
45271         an unneeded cells walking and some clunkiness from our implementation.
45272
45273         Refactoring covered by the existing tests.
45274
45275         * rendering/RenderTable.cpp:
45276         (WebCore::RenderTable::RenderTable): Initialize our new boolean.
45277         (WebCore::RenderTable::layout):
45278         If m_columnLogicalWidthChanged, we force a relayout on our sections so that the cells and rows
45279         are marked for layout if there is the logical width change.
45280
45281         * rendering/RenderTable.h:
45282         (WebCore::RenderTable):
45283         Added a new boolean to track if a column logical width changed (m_columnLogicalWidthChanged).
45284
45285         (WebCore::RenderTable::setColumnPosition):
45286         If a column position changed, register that our column logical widths changed. This is not
45287         totally true, so added a comment about when it will be wrong.
45288
45289         * rendering/RenderTableCell.h:
45290         * rendering/RenderTableCell.cpp:
45291         (WebCore::RenderTableCell::setCellLogicalWidth):
45292         Updated the function to mark the cell and the row for layout. Also changed the argument to
45293         be an 'int' as this was what was passed in.
45294
45295         * rendering/RenderTableSection.cpp:
45296         (WebCore::RenderTableSection::layout):
45297         * rendering/RenderTableSection.h:
45298         Removed setCellLogicalWidths and merged the logic into RenderTableSection::layout. We propagate
45299         the table layout's logical widths first so that rows are marked as needing layout as appropriate.
45300
45301 2012-10-16  Takashi Sakamoto  <tasak@google.com>
45302
45303         [Meta] [Shadow] contenteditable attribute for distributed nodes.
45304         https://bugs.webkit.org/show_bug.cgi?id=90017
45305
45306         Reviewed by Dimitri Glazkov.
45307
45308         If an element is distributed to an insertion point, the element's
45309         webkit-user-modify is inherited from its shadow host.
45310
45311         No new tests, because the existing test: user-modify-inheritance.html
45312         covers this change.
45313
45314         * css/StyleResolver.cpp:
45315         (WebCore::StyleResolver::styleForElement):
45316         After an element inherits a style from its parent, override user-modify
45317         by using the shadow host's style if the element is distributed.
45318
45319 2012-10-16  Vsevolod Vlasov  <vsevik@chromium.org>
45320
45321         Web Inspector: Get rid of (now empty) JavaScriptSource and StyleSource, rename all usages to UISourceCode.
45322         https://bugs.webkit.org/show_bug.cgi?id=99469
45323
45324         Reviewed by Pavel Feldman.
45325
45326         * WebCore.gypi:
45327         * WebCore.vcproj/WebCore.vcproj:
45328         * inspector/compile-front-end.py:
45329         * inspector/front-end/BreakpointManager.js:
45330         (WebInspector.BreakpointManager.prototype._uiSourceCodeAdded):
45331         (WebInspector.BreakpointManager.prototype._uiSourceCodeRemoved):
45332         * inspector/front-end/CompilerScriptMapping.js:
45333         * inspector/front-end/JavaScriptSource.js: Removed.
45334         * inspector/front-end/JavaScriptSourceFrame.js:
45335         (WebInspector.JavaScriptSourceFrame):
45336         (WebInspector.JavaScriptSourceFrame.prototype.canEditSource):
45337         (WebInspector.JavaScriptSourceFrame.prototype._onWorkingCopyChanged):
45338         (WebInspector.JavaScriptSourceFrame.prototype._onWorkingCopyCommitted):
45339         (WebInspector.JavaScriptSourceFrame.prototype._innerSetContent):
45340         (WebInspector.JavaScriptSourceFrame.prototype.populateLineGutterContextMenu):
45341         (WebInspector.JavaScriptSourceFrame.prototype.populateTextAreaContextMenu):
45342         (WebInspector.JavaScriptSourceFrame.prototype.onTextChanged):
45343         (WebInspector.JavaScriptSourceFrame.prototype._supportsEnabledBreakpointsWhileEditing):
45344         (WebInspector.JavaScriptSourceFrame.prototype._restoreBreakpointsAfterEditing):
45345         (WebInspector.JavaScriptSourceFrame.prototype._breakpointAdded):
45346         (WebInspector.JavaScriptSourceFrame.prototype._breakpointRemoved):
45347         (WebInspector.JavaScriptSourceFrame.prototype.onTextEditorContentLoaded):
45348         (WebInspector.JavaScriptSourceFrame.prototype._handleGutterClick):
45349         (WebInspector.JavaScriptSourceFrame.prototype._toggleBreakpoint):
45350         (WebInspector.JavaScriptSourceFrame.prototype._setBreakpoint):
45351         (WebInspector.JavaScriptSourceFrame.prototype._continueToLine):
45352         * inspector/front-end/NetworkUISourceCodeProvider.js:
45353         (WebInspector.NetworkUISourceCodeProvider.prototype._parsedScriptSource):
45354         (WebInspector.NetworkUISourceCodeProvider.prototype._resourceAdded):
45355         * inspector/front-end/ResourceScriptMapping.js:
45356         (WebInspector.ResourceScriptMapping.prototype._getOrCreateTemporaryUISourceCode):
45357         * inspector/front-end/ScriptSnippetModel.js:
45358         (WebInspector.ScriptSnippetModel):
45359         (WebInspector.ScriptSnippetModel.prototype._addScriptSnippet):
45360         (WebInspector.ScriptSnippetModel.prototype.evaluateScriptSnippet.get var):
45361         (WebInspector.ScriptSnippetModel.prototype.evaluateScriptSnippet.compileCallback):
45362         (WebInspector.ScriptSnippetModel.prototype.evaluateScriptSnippet):
45363         (WebInspector.ScriptSnippetModel.prototype._createUISourceCodeForScript):
45364         (WebInspector.ScriptSnippetModel.prototype._removeBreakpoints):
45365         (WebInspector.ScriptSnippetModel.prototype._projectWillReset):
45366         (WebInspector.SnippetScriptFile):
45367         (WebInspector.SnippetScriptFile.prototype._workingCopyCommitted):
45368         (WebInspector.SnippetScriptFile.prototype._workingCopyChanged):
45369         * inspector/front-end/ScriptsNavigator.js:
45370         (WebInspector.SnippetsNavigatorView.prototype._handleEvaluateSnippet):
45371         (WebInspector.SnippetsNavigatorView.prototype._handleRemoveSnippet):
45372         * inspector/front-end/ScriptsPanel.js:
45373         (WebInspector.ScriptsPanel.prototype._createSourceFrame):
45374         (WebInspector.ScriptsPanel.prototype._uiSourceCodeFormatted):
45375         (WebInspector.ScriptsPanel.prototype._showOutlineDialog):
45376         (WebInspector.ScriptsPanel.prototype.set _fileRenamed):
45377         (WebInspector.ScriptsPanel.prototype._snippetCreationRequested.callback):
45378         (WebInspector.ScriptsPanel.prototype._snippetCreationRequested):
45379         * inspector/front-end/SnippetJavaScriptSourceFrame.js:
45380         (WebInspector.SnippetJavaScriptSourceFrame):
45381         (WebInspector.SnippetJavaScriptSourceFrame.prototype._runButtonClicked):
45382         * inspector/front-end/StyleSheetOutlineDialog.js:
45383         (WebInspector.StyleSheetOutlineDialog):
45384         (WebInspector.StyleSheetOutlineDialog.show):
45385         (WebInspector.StyleSheetOutlineDialog.prototype.requestItems):
45386         * inspector/front-end/StyleSource.js: Removed.
45387         * inspector/front-end/WebKit.qrc:
45388         * inspector/front-end/inspector.html:
45389
45390 2012-10-15  Jer Noble  <jer.noble@apple.com>
45391
45392         WebAudio: limit output level to 0db
45393         https://bugs.webkit.org/show_bug.cgi?id=95792
45394         <rdar://problem/11966135>
45395
45396         Reviewed by Chris Rogers.
45397
45398         Clamp the output buffer data to the range of [-1,1], which limits
45399         output volume to 0db. This ensures that malicious or poorly-written
45400         pages will not be able to blow through the system volume limit by
45401         creating >0db buffers and effects.
45402
45403         No new tests; added ManualTests/webaudio/limit-level-0db.html.
45404
45405         Clamp the output vector to values of [-1,1]:
45406         * platform/audio/mac/AudioDestinationMac.cpp:
45407         (WebCore::AudioDestinationMac::render):
45408
45409         Add a VectorMath wrapper for vDSP_clip to provide accelerated vector threshold operations:
45410         * platform/audio/VectorMath.h:
45411         * platform/audio/VectorMath.cpp:
45412         (VectorMath):
45413         (WebCore::VectorMath::vclip):
45414
45415 2012-10-15  Vsevolod Vlasov  <vsevik@chromium.org>
45416
45417         Web Inspector: Extract domain specific editing handling logic from UISourceCode (step 2).
45418         https://bugs.webkit.org/show_bug.cgi?id=99301
45419
45420         Reviewed by Pavel Feldman.
45421
45422         StyleFile and ScriptFile now listen for the UISourceCode WorkingCopyChanged/Committed events and process
45423         them instead of being called explicitly.
45424
45425         * inspector/front-end/JavaScriptSourceFrame.js:
45426         (WebInspector.JavaScriptSourceFrame):
45427         (WebInspector.JavaScriptSourceFrame.prototype.onTextChanged):
45428         (WebInspector.JavaScriptSourceFrame.prototype._willMergeToVM):
45429         (WebInspector.JavaScriptSourceFrame.prototype._didMergeToVM):
45430         (WebInspector.JavaScriptSourceFrame.prototype._willDivergeFromVM):
45431         (WebInspector.JavaScriptSourceFrame.prototype._didDivergeFromVM):
45432         (WebInspector.JavaScriptSourceFrame.prototype._muteBreakpointsWhileEditing):
45433         (WebInspector.JavaScriptSourceFrame.prototype._restoreBreakpointsAfterEditing):
45434         * inspector/front-end/ResourceScriptMapping.js:
45435         (WebInspector.ResourceScriptMapping.prototype._hasMergedToVM):
45436         (WebInspector.ResourceScriptMapping.prototype._hasDivergedFromVM):
45437         (WebInspector.ResourceScriptMapping.prototype._bindUISourceCodeToScripts):
45438         (WebInspector.ResourceScriptFile):
45439         (WebInspector.ResourceScriptFile.prototype._workingCopyCommitted):
45440         (WebInspector.ResourceScriptFile.prototype._workingCopyChanged):
45441         * inspector/front-end/ScriptSnippetModel.js:
45442         (WebInspector.SnippetScriptFile):
45443         (WebInspector.SnippetScriptFile.prototype._workingCopyCommitted):
45444         (WebInspector.SnippetScriptFile.prototype._workingCopyChanged):
45445         * inspector/front-end/StylesSourceMapping.js:
45446         (WebInspector.StyleFile):
45447         (WebInspector.StyleFile.prototype._workingCopyCommitted):
45448         (WebInspector.StyleFile.prototype._workingCopyChanged):
45449         (WebInspector.StyleFile.prototype._commitIncrementalEdit):
45450         (WebInspector.StyleFile.prototype._clearIncrementalUpdateTimer):
45451         (WebInspector.StyleFile.prototype.addRevision):
45452         (WebInspector.StyleContentBinding.prototype._innerStyleSheetChanged):
45453         * inspector/front-end/UISourceCode.js:
45454         (WebInspector.UISourceCode.prototype.setWorkingCopy):
45455         (WebInspector.UISourceCode.prototype.commitWorkingCopy):
45456
45457 2012-10-16  Alexander Pavlov  <apavlov@chromium.org>
45458
45459         Web Inspector: [Elements] Double-click to live edit style tags changes text to 'undefined' in some situations
45460         https://bugs.webkit.org/show_bug.cgi?id=99336
45461
45462         Reviewed by Vsevolod Vlasov.
45463
45464         Before editing text nodes, set their textContent to the nodeValue() of the corresponding WebInspector.DOMNode in the UI.
45465         Drive-by: fix text node editing artifact in the DOM tree.
45466
45467         * inspector/front-end/ElementsTreeOutline.js:
45468         (WebInspector.ElementsTreeElement.prototype._startEditingTextNode):
45469         (WebInspector.ElementsTreeElement.prototype._tagNameEditingCommitted):
45470
45471 2012-10-16  Mike West  <mkwst@chromium.org>
45472
45473         Web Inspector: Whitelist safe styles for 'console.log('%c...', ...)'.
45474         https://bugs.webkit.org/show_bug.cgi?id=98945
45475
45476         Reviewed by Pavel Feldman.
45477
45478         Support for styling console messages via '%c' landed without any
45479         parsing of the style information provided. This means that it's fairly
45480         simple to accidentally or maliciously break the console with cleverly
45481         styled messages. To mitigate this risk, whitelisting a safe subset of
45482         CSS seems appropriate.
45483
45484         As a first pass at a reasonable whitelist, this patch allows
45485         'background[-*]', 'border[-*]', 'color[-*]', 'font[-*]',
45486         'margin[-*]', 'padding[-*]', 'text[-*]', '-webkit-background[-*]',
45487         '-webkit-border[-*]', '-webkit-font[-*]', '-webkit-margin[-*]',
45488         '-webkit-padding[-*]', and '-webkit-text[-*]'.
45489
45490         Test: inspector/console/console-format-style-whitelist.html
45491
45492         * inspector/front-end/ConsoleMessage.js:
45493         (WebInspector.ConsoleMessageImpl.prototype._formatWithSubstitutionString.styleFormatter):
45494             Create a buffer element onto which the user-provided styles are
45495             applied. Whitelisted styles are transfered from the buffer onto
45496             the actual console message.
45497         (WebInspector.ConsoleMessageImpl.prototype._formatWithSubstitutionString.isWhitelistedProperty):
45498              Returns true if the specific style is whitelisted. Expects styles
45499              in the hyphenated form (that is, '-webkit-padding-start' rather than
45500              CSSOM's 'webkitPaddingStart').
45501
45502 2012-10-16  Luke Macpherson   <macpherson@chromium.org>
45503
45504         Handle CSSPropertyOpacity in StyleBuilder.
45505         https://bugs.webkit.org/show_bug.cgi?id=99418
45506
45507         Reviewed by Alexis Menard.
45508
45509         One small step in moving from the huge switch in StyleResolver::applyProperty() to the StyleBuilder approach.
45510
45511         Covered by many existing tests, for example fast/text/complex-text-opacity.html.
45512
45513         * css/StyleBuilder.cpp:
45514         (WebCore::StyleBuilder::StyleBuilder):
45515         * css/StyleResolver.cpp:
45516         (WebCore::StyleResolver::applyProperty):
45517
45518 2012-10-16  Kent Tamura  <tkent@chromium.org>
45519
45520         Fix some appearance glitches of multiple fields input elements
45521         https://bugs.webkit.org/show_bug.cgi?id=99412
45522
45523         A follow-up change for r131421.
45524
45525         * css/themeWin.css:
45526         (input[type="text"]): Don't reset paddings for date/time types.
45527
45528 2012-10-16  Kenichi Ishibashi  <bashi@chromium.org>
45529
45530         hb_face_t instances should not depend on FontPlatformData
45531         https://bugs.webkit.org/show_bug.cgi?id=99430
45532
45533         Reviewed by Kent Tamura.
45534
45535         Use platform specific font data (e.g. SkTypeface) to get
45536         font tables for harfbuzz-ng.
45537
45538         No new tests. No changes in behavior.
45539
45540         * platform/graphics/harfbuzz/ng/HarfBuzzNGFaceCairo.cpp:
45541         (WebCore::harfbuzzCairoGetTable): Takes cairo_scaled_font_t* as userData.
45542         (WebCore::HarfBuzzNGFace::createFace):
45543         * platform/graphics/harfbuzz/ng/HarfBuzzNGFaceCoreText.cpp:
45544         (WebCore::harfbuzzCoreTextGetTable): Takes CGFontRef as userData.
45545         (WebCore::HarfBuzzNGFace::createFace):
45546         * platform/graphics/harfbuzz/ng/HarfBuzzNGFaceSkia.cpp:
45547         (WebCore::harfbuzzSkiaGetTable): Takes SkFontID as userData.
45548         (WebCore::HarfBuzzNGFace::createFace):
45549
45550 2012-10-16  Sheriff Bot  <webkit.review.bot@gmail.com>
45551
45552         Unreviewed, rolling out r131418.
45553         http://trac.webkit.org/changeset/131418
45554         https://bugs.webkit.org/show_bug.cgi?id=99431
45555
45556         since 131403 seems innocent (Requested by shinyak|_ on
45557         #webkit).
45558
45559         * dom/Document.cpp:
45560         (WebCore::isValidNameNonASCII):
45561         (WebCore):
45562         (WebCore::Document::isValidName):
45563
45564 2012-10-16  Ilya Tikhonovsky  <loislo@chromium.org>
45565
45566         Web Inspector: NMI Instrument InspectorOverlay. It costs us ~9Mb because it creates page size canvas.
45567         https://bugs.webkit.org/show_bug.cgi?id=99426
45568
45569         Reviewed by Yury Semikhatsky.
45570
45571         New object type InspectorOverlay was added. InspectorOverlay was instrumented.
45572         The instrumentation code automatically visits all the objects that can be reached via m_overlayPage.
45573
45574         * dom/WebCoreMemoryInstrumentation.cpp:
45575         (WebCore):
45576         * dom/WebCoreMemoryInstrumentation.h:
45577         (WebCoreMemoryTypes):
45578         * inspector/InspectorOverlay.cpp:
45579         (WebCore::InspectorOverlay::reportMemoryUsage):
45580         (WebCore):
45581         * inspector/InspectorOverlay.h:
45582         (InspectorOverlay):
45583
45584 2012-10-16  Kent Tamura  <tkent@chromium.org>
45585
45586         Remove unused functions in Locale* classes
45587         https://bugs.webkit.org/show_bug.cgi?id=99425
45588
45589         Reviewed by Yuta Kitamura.
45590
45591         Locale*::currentLocale has been unused since LocalizedDate* and
45592         LocalizedNumber* were removed.
45593
45594         No new tests. This shouldn't change any behavior.
45595
45596         * platform/text/LocaleICU.cpp: Remove createForCurrentLocale and currentLocale.
45597         * platform/text/LocaleICU.h: Ditto.
45598         * platform/text/LocaleWin.cpp: Remove currentLocale.
45599         * platform/text/LocaleWin.h: Ditto.
45600         * platform/text/mac/LocaleMac.h: Remove currentLocale.
45601         * platform/text/mac/LocaleMac.mm: Ditto.
45602
45603 2012-10-15  Kent Tamura  <tkent@chromium.org>
45604
45605         Fix some appearance glitches of multiple fields input elements
45606         https://bugs.webkit.org/show_bug.cgi?id=99412
45607
45608         Reviewed by Kentaro Hara.
45609
45610         1. If CSS-specified width is wider than the intrinsic width of an input,
45611         the spin button and the picker indicator triangle should be put at the
45612         right side of the content area.
45613
45614         2. Remove top, right, and bottom paddings to match input[type=number]
45615         appearance as possible.
45616
45617         3. Remove unnecessary position:relative for spin buttons.
45618
45619         4. Center content vertically if the height is taller than the intrinsic height.
45620
45621         Tests: Update all of rendering tests for input element with multiple fields UI.
45622
45623         * css/html.css:
45624         (input[type="date"]):
45625         - Specify display:-webkit-inline-flex and -webkit-align-items:stretch to center contents.
45626         - Remove top/right/bottom paddings.
45627         (input[type="datetime"]): Ditto.
45628         (input[type="datetime-local"]): Ditto.
45629         (input[type="month"]): Ditto.
45630         (input[type="time"]): Ditto.
45631         (input[type="week"]): Ditto.
45632         (input::-webkit-datetime-edit):
45633         - Switch to the starndard flexible box from the legacy one.
45634         - Add white-space:pre to avoid to collapse white spaces.
45635         (input::-webkit-datetime-edit-gap):
45636         Added. This element is added to push a spin button to the right side.
45637         (input::-webkit-date-and-time-container):
45638         Add -webkit-flex:1 for the input flexible box.
45639         Sort properties.
45640         (input[type="week"]::-webkit-inner-spin-button):
45641         - Use this in date, datetime, datetime-local, and week types.
45642         - Add display:inline-block because other elements in -webkit-datetime-edit is inilne.
45643         - Add position:static to cancel position:relative below.
45644
45645         * html/shadow/DateTimeEditElement.cpp:
45646         (WebCore::DateTimeEditElement::layout):
45647         Add an element with -webkit-datetime-edit-gap before a spin button.
45648
45649 2012-10-15  Yury Semikhatsky  <yurys@chromium.org>
45650
45651         Web Inspector: can't click delete button if watch expression is very long
45652         https://bugs.webkit.org/show_bug.cgi?id=99414
45653
45654         Reviewed by Vsevolod Vlasov.
45655
45656         Minus button in watch expression section doesn't overlap with the
45657         expression/value anymore.
45658
45659         * inspector/front-end/inspector.css:
45660         (.properties-tree.watch-expressions > li.hovered):
45661
45662 2012-10-15  Sheriff Bot  <webkit.review.bot@gmail.com>
45663
45664         Unreviewed, rolling out r131403.
45665         http://trac.webkit.org/changeset/131403
45666         https://bugs.webkit.org/show_bug.cgi?id=99420
45667
45668         Suspicious to cause Performance test failing (Requested by
45669         shinyak|gardenin on #webkit).
45670
45671         * dom/Document.cpp:
45672         (WebCore::Document::isValidName):
45673
45674 2012-10-15  Yury Semikhatsky  <yurys@chromium.org>
45675
45676         Web Inspector: restore watch expression expansion state
45677         https://bugs.webkit.org/show_bug.cgi?id=99304
45678
45679         Reviewed by Pavel Feldman.
45680
45681         Expand watch expression value and its properties if they were expanded
45682         before update.
45683
45684         Test: inspector/debugger/watch-expressions-preserve-expansion.html
45685
45686         * inspector/front-end/WatchExpressionsSidebarPane.js:
45687         (WebInspector.WatchExpressionTreeElement.prototype.onexpand):
45688         (WebInspector.WatchExpressionTreeElement.prototype.oncollapse):
45689         (WebInspector.WatchExpressionTreeElement.prototype.onattach):
45690         (WebInspector.WatchExpressionTreeElement.prototype._expression):
45691         (WebInspector.WatchedPropertyTreeElement):
45692         (WebInspector.WatchedPropertyTreeElement.prototype.onattach):
45693         (WebInspector.WatchedPropertyTreeElement.prototype.onexpand):
45694         (WebInspector.WatchedPropertyTreeElement.prototype.oncollapse):
45695         (WebInspector.WatchedPropertyTreeElement.prototype._propertyPath):
45696
45697 2012-10-15  Mike West  <mkwst@chromium.org>
45698
45699         Warn when CSP headers don't separate directives with ';'.
45700         https://bugs.webkit.org/show_bug.cgi?id=99274
45701
45702         Reviewed by Adam Barth.
45703
45704         A recent bug report exhibited confusion as to what role, exactly,
45705         semicolons play in Content Security Policy definitions. This patch
45706         adjusts the parser to warn web authors if a directive name is
45707         encountered while parsing a source list, which would almost certainly
45708         point to a missing semicolon. For example, something like:
45709
45710             script-src 'self' object-src 'self' style-src *
45711
45712         would throw two warnings, noting that 'object-src' and 'style-src' are
45713         probably meant as directives, and not as source expressions in the
45714         'script-src' source list.
45715
45716         Test: http/tests/security/contentSecurityPolicy/source-list-parsing-no-semicolon.html
45717
45718         * page/ContentSecurityPolicy.cpp:
45719         (WebCore::CSPSourceList::parse):
45720             Throw the new warning onto the console if the hostname of a source
45721             expression matches a CSP directive name.
45722         (WebCore::CSPDirectiveList::addDirective):
45723             Use the exciting new static variables so that the names of various
45724             directives are available outside of CSPDirectiveList::addDirective.
45725             These were previously defined as local static ASCIILiterals. Now
45726             they're static const char[] in an anonymous namespace.
45727         (WebCore::ContentSecurityPolicy::isDirectiveName):
45728             Static method that compares a string to all the known directive
45729             names, returning true if there's a (case-insensitive) match.
45730         (WebCore):
45731         (WebCore::ContentSecurityPolicy::reportDirectiveAsSourceExpression):
45732             A new warning message which should be printed when a directive name
45733             is encountered as a source expression. Matching the directive name
45734             is done via a new 'isDirectiveName' function which lives in an
45735             anonymous namespace along with the other CSP helper functions.
45736         * page/ContentSecurityPolicy.h:
45737             Added 'reportDirectiveAsSourceExpression' signature.
45738
45739 2012-10-15  Gyuyoung Kim  <gyuyoung.kim@samsung.com>
45740
45741         Unreviewed, rolling out r131349.
45742         http://trac.webkit.org/changeset/131349
45743         https://bugs.webkit.org/show_bug.cgi?id=97173
45744
45745         Revert r131349 because API test is broken by this commit.
45746
45747         * platform/efl/RunLoopEfl.cpp:
45748         (WebCore::RunLoop::RunLoop):
45749         (WebCore::RunLoop::~RunLoop):
45750
45751 2012-10-15  Nate Chapin  <japhet@chromium.org>
45752
45753         ResourceLoader::sendResourceLoadCallbacks() is backwards
45754         https://bugs.webkit.org/show_bug.cgi?id=99366
45755
45756         Reviewed by Daniel Bates.
45757
45758         No new tests, this function is uncalled but will be used
45759         in a later patch.
45760
45761         * loader/ResourceLoader.h:
45762         (WebCore::ResourceLoader::sendResourceLoadCallbacks):
45763
45764 2012-10-15  Dan Bernstein  <mitz@apple.com>
45765
45766         REGRESSION (r131365): WidthIterator::advance() is needlessly passed a GlyphBuffer in many cases
45767         https://bugs.webkit.org/show_bug.cgi?id=99413
45768
45769         Reviewed by Adele Peterson.
45770
45771         r131365 made Font::width() always pass a GlyphBuffer pointer to floatWidthForSimpleText and
45772         from there down to WidthIterator::advance(). However, when measuring the width of a run, a
45773         GlyphBuffer is only needed if font transforms (kerning and ligatures) need to be applied.
45774
45775         No new test, because there is no change in behavior.
45776
45777         * platform/graphics/Font.cpp:
45778         (WebCore::Font::width): Removed the local GlyphBuffer that was passed down to
45779         floatWidthForSimpleText().
45780         * platform/graphics/Font.h: Removed the GlyphBuffer* parameter to floatWidthForSimpleText.
45781         All but the above caller were passing 0.
45782         * platform/graphics/FontFastPath.cpp:
45783         (WebCore::Font::floatWidthForSimpleText): Removed the GlyphBuffer* parameter and added a
45784         local GlyphBuffer, which is passed by reference to WidthIterator::advance() only if
45785         typesetting features require it.
45786         (WebCore::Font::offsetForPositionForSimpleText): Updated for change to
45787         floatWidthForSimpleText.
45788         * platform/graphics/pango/FontPango.cpp:
45789         (WebCore::Font::floatWidthForComplexText): Ditto.
45790
45791 2012-10-15  Pablo Flouret  <pablof@motorola.com>
45792
45793         Add force parameter to DOMTokenList.toggle
45794         https://bugs.webkit.org/show_bug.cgi?id=99375
45795
45796         Reviewed by Darin Adler.
45797
45798         See http://dom.spec.whatwg.org/#dom-domtokenlist-toggle and
45799         https://www.w3.org/Bugs/Public/show_bug.cgi?id=18463
45800
45801         Essentially, the optional boolean force parameter, if present, makes
45802         toggle always add or remove a class.
45803
45804         No new tests, modified fast/dom/HTMLElement/script-tests/class-list.js
45805
45806         * html/DOMTokenList.cpp:
45807         (WebCore::DOMTokenList::toggle):
45808         (WebCore):
45809         * html/DOMTokenList.h:
45810         (DOMTokenList):
45811         * html/DOMTokenList.idl:
45812             New toggle() overload that takes a force parameter and calls
45813             addInternal() or removeInternal() based on it.
45814
45815 2012-10-15  Dan Bernstein  <mitz@apple.com>
45816
45817         Layout Test fast/text/justify-ideograph-leading-expansion.html is failing an assertion chromium mac
45818         https://bugs.webkit.org/show_bug.cgi?id=99406
45819
45820         Reviewed by Darin Adler.
45821
45822         * platform/graphics/WidthIterator.cpp:
45823         * platform/graphics/WidthIterator.h:
45824         (WebCore::WidthIterator::shouldApplyFontTransforms): Changed to return false if the run is
45825         shorter than 2 characters. 1-character runs are invariant under font transforms, and therefore
45826         Font::codePath() sends them through WidthIterator even on platforms where WidthIterator
45827         does not support kerning and ligatures.
45828
45829 2012-10-15  Michael Saboff  <msaboff@apple.com>
45830
45831         Add 8 bit patch to Document::isValidName() for the non ASCII case
45832         https://bugs.webkit.org/show_bug.cgi?id=99402
45833
45834         Reviewed by Darin Adler.
45835
45836         Added 8 bit path to complete the processing of an 8 bit names without up-converting.
45837
45838         * dom/Document.cpp:
45839         (WebCore::isValidNameNonASCII):
45840         (WebCore::Document::isValidName):
45841
45842 2012-10-15  Vlad Grecescu  <igrecesc@adobe.com>, Douglas Stockwell  <dstockwell@chromium.org>
45843
45844         Support for background-clip:content-box and padding-box with border-radius
45845         https://bugs.webkit.org/show_bug.cgi?id=23166
45846
45847         Reviewed by Simon Fraser.
45848
45849         Test: fast/css/background-clip-radius-values.html
45850
45851         * rendering/RenderBoxModelObject.cpp:
45852         (WebCore::RenderBoxModelObject::clipRoundedInnerRect):
45853         (WebCore):
45854         (WebCore::RenderBoxModelObject::paintFillLayerExtended):
45855         * rendering/RenderBoxModelObject.h:
45856
45857 2012-10-15  Byungwoo Lee  <bw80.lee@samsung.com>
45858
45859         Fix unused parameter build warning.
45860         https://bugs.webkit.org/show_bug.cgi?id=99400
45861
45862         Reviewed by Gyuyoung Kim.
45863
45864         Remove the name of unused parameters to fix the build warning (-Wunused-parameter).
45865
45866         * platform/network/soup/ResourceErrorSoup.cpp:
45867         (WebCore::ResourceError::tlsError):
45868
45869 2012-10-15  Kenichi Ishibashi  <bashi@chromium.org>
45870
45871         [WebSocket] WebSocketInflater should handle BFINAL = 1 blocks
45872         https://bugs.webkit.org/show_bug.cgi?id=99282
45873
45874         Reviewed by Yuta Kitamura.
45875
45876         Reset decompression state if WebSocketInflater decompress a block with
45877         BFINAL set to 1.
45878
45879         Test: http/tests/websocket/tests/hybi/deflate-frame-set-bfinal.html
45880
45881         * Modules/websockets/WebSocketDeflater.cpp:
45882         (WebCore::WebSocketInflater::addBytes):
45883         Reset decompression state if inflate() returns Z_STREAM_END, which means the BFINAL
45884         of the current block was set to 1.
45885         (WebCore::WebSocketInflater::finish): Add an assertion.
45886
45887 2012-10-15  Simon Fraser  <simon.fraser@apple.com>
45888
45889         Fix GraphicsLayer visible rect computation when scrolling in WebKit1
45890         https://bugs.webkit.org/show_bug.cgi?id=99385
45891
45892         Reviewed by Dean Jackson, Tim Horton.
45893
45894         RenderLayerCompositor always used frameView->frameRect() as the visible
45895         rect on the root used for GraphicsLayer visibleRect computation. This
45896         was wrong for subframes, which require a rect with an origin of (0,0)
45897         and size of the contentsSize().
45898         
45899         It was also wrong when the scrolling is not represented in the GraphicsLayer
45900         tree. When scrolling is done elsewhere, we need to use the ScrollView's
45901         visibleContentRect().
45902
45903         Tests: compositing/visible-rect/scrolled.html
45904                compositing/visible-rect/iframe-and-layers.html
45905                compositing/visible-rect/iframe-no-layers.html
45906
45907         * rendering/RenderLayerCompositor.cpp:
45908         (WebCore::RenderLayerCompositor::flushPendingLayerChanges):
45909
45910 2012-10-15  Julien Chaffraix  <jchaffraix@webkit.org>
45911
45912         Remove page visibility hidden histograms
45913         https://bugs.webkit.org/show_bug.cgi?id=99360
45914
45915         Reviewed by Ojan Vafai.
45916
45917         The 2 page visibility hidden histograms were added in http://webkit.org/b/85537 to
45918         investigate a potential optimization where we would destroy the render tree when
45919         a tab was hidden. The optimization was abandoned but the histograms were never
45920         removed. They are too narrow to be reused so this change removes them.
45921
45922         * page/Page.cpp:
45923         (WebCore::Page::setVisibilityState):
45924
45925 2012-10-15  Ryuan Choi  <ryuan.choi@samsung.com>
45926
45927         REGRESSION: Build break after r131373 when ACCELERATED_COMPOSITING disabled
45928         https://bugs.webkit.org/show_bug.cgi?id=99397
45929
45930         Unreviewed, build fix.
45931
45932         * page/scrolling/ScrollingCoordinator.cpp:
45933         (WebCore::ScrollingCoordinator::updateMainFrameScrollPosition):
45934
45935 2012-10-14  Kent Tamura  <tkent@chromium.org>
45936
45937         Input elements with multiple fields UI should set appropriate direction for browser locale automatically
45938         https://bugs.webkit.org/show_bug.cgi?id=99291
45939
45940         Reviewed by Hajime Morita.
45941
45942         Input elemnts with multiple fields UI ignores HTML dir attribute or CSS
45943         direction property, and their direction should be decided by the browser
45944         locale. If the browser locale is a RTL language, date/time input fields
45945         show formats/digits for the RTL language. The layout should be always
45946         RTL regardless of the direction in such case.
45947
45948         Test: fast/forms/date-multiple-fields/date-multiple-fields-appearance-l10n.html
45949
45950         * html/BaseMultipleFieldsDateAndTimeInputType.cpp:
45951         (WebCore::BaseMultipleFieldsDateAndTimeInputType::updateInnerTextValue):
45952         Set approriate dir attribute value to the child element of the UA shadow root.
45953
45954 2012-10-15  Andreas Kling  <kling@webkit.org>
45955
45956         StyleResolver: Garbage collect the matched properties cache on a timer.
45957         <http://webkit.org/b/98625>
45958
45959         Reviewed by Eric Seidel.
45960
45961         Sweeping the matched properties cache once every 100 additions ended up choking RoboHornet's
45962         svgresize.html benchmark. Move it to a single-shot timer that's refreshed every 100 additions
45963         and defers the actual sweep for 60 seconds.
45964
45965         * css/StyleResolver.cpp:
45966         (WebCore::StyleResolver::StyleResolver):
45967         (WebCore::StyleResolver::sweepMatchedPropertiesCache):
45968         (WebCore::StyleResolver::addToMatchedPropertiesCache):
45969         * css/StyleResolver.h:
45970         (StyleResolver):
45971
45972 2012-10-15  Arnaud Renevier  <a.renevier@sisa.samsung.com>
45973
45974         [GStreamer] GstCaps are leaked when building with gstreamer-1.0
45975         https://bugs.webkit.org/show_bug.cgi?id=99362
45976
45977         Reviewed by Martin Robinson.
45978
45979         Implement GRefPtr<GstCaps> adoptGRef(GstCaps*).
45980
45981         Change webkitGstGetPadCaps signature to return a GRefPtr<GstCaps>, and
45982         use GRefPtr<GstCaps> also in webkitVideoSinkRender to simply GstCaps
45983         refeference count.
45984
45985         Covered by existing tests.
45986
45987         * platform/graphics/gstreamer/GRefPtrGStreamer.cpp:
45988         (WTF::adoptGRef):
45989         (WTF):
45990         * platform/graphics/gstreamer/GRefPtrGStreamer.h:
45991         (WTF):
45992         * platform/graphics/gstreamer/GStreamerVersioning.cpp:
45993         (webkitGstGetPadCaps):
45994         * platform/graphics/gstreamer/GStreamerVersioning.h:
45995         * platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:
45996         (WebCore::MediaPlayerPrivateGStreamer::naturalSize):
45997         * platform/graphics/gstreamer/VideoSinkGStreamer.cpp:
45998         (webkitVideoSinkRender):
45999
46000 2012-10-15  Tony Chang  <tony@chromium.org>
46001
46002         Unreviewed, rolling out r131367.
46003         http://trac.webkit.org/changeset/131367
46004         https://bugs.webkit.org/show_bug.cgi?id=98666
46005
46006         crashes on Apple Mac
46007
46008         * css/html.css:
46009         (input[type="range"]::-webkit-slider-container, input[type="range"]::-webkit-media-slider-container):
46010         (input[type="range"]::-webkit-slider-runnable-track):
46011         (input[type="range"]::-webkit-slider-thumb, input[type="range"]::-webkit-media-slider-thumb):
46012         * css/mediaControlsChromium.css:
46013         (input[type="range"]::-webkit-media-slider-thumb):
46014         * css/mediaControlsChromiumAndroid.css:
46015         (input[type="range"]::-webkit-media-slider-thumb):
46016         * html/RangeInputType.cpp:
46017         (WebCore::RangeInputType::listAttributeTargetChanged):
46018         * html/shadow/SliderThumbElement.cpp:
46019         (WebCore::RenderSliderThumb::layout):
46020         (WebCore):
46021         (WebCore::RenderSliderContainer::RenderSliderContainer):
46022         (RenderSliderContainer):
46023         (WebCore::RenderSliderContainer::layout):
46024         * html/shadow/SliderThumbElement.h:
46025         (RenderSliderThumb):
46026         * rendering/RenderSlider.cpp:
46027         (WebCore):
46028         (WebCore::RenderSlider::RenderSlider):
46029         (WebCore::RenderSlider::layout):
46030         * rendering/RenderSlider.h:
46031         (WebCore):
46032         (RenderSlider):
46033         (WebCore::RenderSlider::renderName):
46034         (WebCore::RenderSlider::isSlider):
46035         (WebCore::RenderSlider::requiresForcedStyleRecalcPropagation):
46036         (WebCore::toRenderSlider):
46037
46038 2012-10-15  Dan Bernstein  <mitz@apple.com>
46039
46040         Try to fix the build again after r131375.
46041
46042         * platform/graphics/WidthIterator.h:
46043         (WebCore::WidthIterator::shouldApplyFontTransforms): Removed the length check from here.
46044
46045 2012-10-15  Dan Bernstein  <mitz@apple.com>
46046
46047         Try to fix assertion failures on ports that do not support kerning and ligatures on the fast
46048         code path after r131365.
46049
46050         * platform/graphics/WidthIterator.cpp:
46051         (WebCore::applyFontTransforms): Changed the early return condition to not bother with 1-glyph
46052         sequences.
46053         * platform/graphics/WidthIterator.h:
46054         (WebCore::WidthIterator::shouldApplyFontTransforms): Changed to return false if the run is
46055         shorter than 2 characters.
46056
46057 2012-10-15  Dan Bernstein  <mitz@apple.com>
46058
46059         Try to fix the Chromium Mac build after r131365.
46060
46061         * platform/graphics/GlyphBuffer.h:
46062         (WebCore::GlyphBufferAdvance::height): Added.
46063         * platform/graphics/skia/FontSkia.cpp:
46064         (WebCore::Font::drawGlyphs): Changed to use accessors for the GlyphBufferAdvance’s width and height.
46065
46066 2012-10-15  Simon Fraser  <simon.fraser@apple.com>
46067
46068         Ensure that GraphicsLayer positions are updated while doing threaded scrolling
46069         https://bugs.webkit.org/show_bug.cgi?id=99372
46070
46071         Reviewed by Anders Carlsson.
46072
46073         When doing threaded scrolling, the scrolling thread updates the positions of CALayers,
46074         but doesn't update GraphicsLayers. This means that code that relies on GraphicsLayer positions
46075         works incorrectly.
46076         
46077         Threaded scrolling is not testabled in layout tests.
46078
46079         * page/scrolling/ScrollingCoordinator.cpp:
46080         (WebCore::ScrollingCoordinator::updateMainFrameScrollPosition):
46081         * platform/graphics/GraphicsLayer.h:
46082         (GraphicsLayer):
46083         (WebCore::GraphicsLayer::syncPosition):
46084
46085 2012-10-15  Tommy Widenflycht  <tommyw@google.com>
46086
46087         MediaStream API: Implement RTCDataChannel
46088         https://bugs.webkit.org/show_bug.cgi?id=99080
46089
46090         Reviewed by Adam Barth.
46091
46092         This patch introduces RTCDataChannel which is a pipe for sending data between two RTCPeerConnections.
46093         Since the data channel belongs to a peer connection object I have reused part of its infrastructure.
46094
46095         Not currently testable. My next patch will add the chromium WebKit functionality, together with mocks and tests.
46096
46097         * CMakeLists.txt:
46098         * GNUmakefile.list.am:
46099         * Modules/mediastream/RTCDataChannel.cpp: Added.
46100         (WebCore):
46101         (WebCore::RTCDataChannel::create):
46102         (WebCore::RTCDataChannel::RTCDataChannel):
46103         (WebCore::RTCDataChannel::~RTCDataChannel):
46104         (WebCore::RTCDataChannel::label):
46105         (WebCore::RTCDataChannel::reliable):
46106         (WebCore::RTCDataChannel::readyState):
46107         (WebCore::RTCDataChannel::bufferedAmount):
46108         (WebCore::RTCDataChannel::binaryType):
46109         (WebCore::RTCDataChannel::setBinaryType):
46110         (WebCore::RTCDataChannel::send):
46111         (WebCore::RTCDataChannel::close):
46112         (WebCore::RTCDataChannel::readyStateChanged):
46113         (WebCore::RTCDataChannel::dataArrived):
46114         (WebCore::RTCDataChannel::error):
46115         (WebCore::RTCDataChannel::descriptor):
46116         (WebCore::RTCDataChannel::interfaceName):
46117         (WebCore::RTCDataChannel::scriptExecutionContext):
46118         (WebCore::RTCDataChannel::stop):
46119         (WebCore::RTCDataChannel::eventTargetData):
46120         (WebCore::RTCDataChannel::ensureEventTargetData):
46121         * Modules/mediastream/RTCDataChannel.h: Added.
46122         (WebCore):
46123         (RTCDataChannel):
46124         (WebCore::RTCDataChannel::refEventTarget):
46125         (WebCore::RTCDataChannel::derefEventTarget):
46126         * Modules/mediastream/RTCDataChannel.idl: Added.
46127         * Modules/mediastream/RTCDataChannelEvent.cpp: Added.
46128         (WebCore):
46129         (WebCore::RTCDataChannelEvent::create):
46130         (WebCore::RTCDataChannelEvent::RTCDataChannelEvent):
46131         (WebCore::RTCDataChannelEvent::~RTCDataChannelEvent):
46132         (WebCore::RTCDataChannelEvent::channel):
46133         (WebCore::RTCDataChannelEvent::interfaceName):
46134         * Modules/mediastream/RTCDataChannelEvent.h: Added.
46135         (WebCore):
46136         (RTCDataChannelEvent):
46137         * Modules/mediastream/RTCDataChannelEvent.idl: Added.
46138         * Modules/mediastream/RTCPeerConnection.cpp:
46139         (WebCore::RTCPeerConnection::createDataChannel):
46140         (WebCore):
46141         (WebCore::RTCPeerConnection::close):
46142         (WebCore::RTCPeerConnection::didAddRemoteDataChannel):
46143         (WebCore::RTCPeerConnection::stop):
46144         * Modules/mediastream/RTCPeerConnection.h:
46145         (WebCore):
46146         (RTCPeerConnection):
46147         * Modules/mediastream/RTCPeerConnection.idl:
46148         * WebCore.gypi:
46149         * dom/EventNames.h:
46150         (WebCore):
46151         * dom/EventNames.in:
46152         * dom/EventTargetFactory.in:
46153         * platform/mediastream/RTCDataChannelDescriptor.cpp: Added.
46154         (WebCore):
46155         (WebCore::RTCDataChannelDescriptor::create):
46156         (WebCore::RTCDataChannelDescriptor::RTCDataChannelDescriptor):
46157         (WebCore::RTCDataChannelDescriptor::~RTCDataChannelDescriptor):
46158         (WebCore::RTCDataChannelDescriptor::readyStateChanged):
46159         (WebCore::RTCDataChannelDescriptor::dataArrived):
46160         (WebCore::RTCDataChannelDescriptor::error):
46161         * platform/mediastream/RTCDataChannelDescriptor.h: Added.
46162         (WebCore):
46163         (RTCDataChannelDescriptorClient):
46164         (WebCore::RTCDataChannelDescriptorClient::~RTCDataChannelDescriptorClient):
46165         (RTCDataChannelDescriptor):
46166         (ExtraData):
46167         (WebCore::RTCDataChannelDescriptor::ExtraData::~ExtraData):
46168         (WebCore::RTCDataChannelDescriptor::client):
46169         (WebCore::RTCDataChannelDescriptor::setClient):
46170         (WebCore::RTCDataChannelDescriptor::label):
46171         (WebCore::RTCDataChannelDescriptor::reliable):
46172         (WebCore::RTCDataChannelDescriptor::readyState):
46173         (WebCore::RTCDataChannelDescriptor::bufferedAmount):
46174         (WebCore::RTCDataChannelDescriptor::setBufferedAmount):
46175         (WebCore::RTCDataChannelDescriptor::extraData):
46176         (WebCore::RTCDataChannelDescriptor::setExtraData):
46177         * platform/mediastream/RTCPeerConnectionHandler.cpp:
46178         (RTCPeerConnectionHandlerDummy):
46179         (WebCore::RTCPeerConnectionHandlerDummy::openDataChannel):
46180         (WebCore):
46181         (WebCore::RTCPeerConnectionHandlerDummy::sendStringData):
46182         (WebCore::RTCPeerConnectionHandlerDummy::sendRawData):
46183         (WebCore::RTCPeerConnectionHandlerDummy::closeDataChannel):
46184         * platform/mediastream/RTCPeerConnectionHandler.h:
46185         (WebCore):
46186         (RTCPeerConnectionHandler):
46187         * platform/mediastream/RTCPeerConnectionHandlerClient.h:
46188         (WebCore):
46189         (RTCPeerConnectionHandlerClient):
46190         * platform/mediastream/chromium/RTCPeerConnectionHandlerChromium.cpp:
46191         (WebCore::RTCPeerConnectionHandlerChromium::openDataChannel):
46192         (WebCore):
46193         (WebCore::RTCPeerConnectionHandlerChromium::sendStringData):
46194         (WebCore::RTCPeerConnectionHandlerChromium::sendRawData):
46195         (WebCore::RTCPeerConnectionHandlerChromium::closeDataChannel):
46196         * platform/mediastream/chromium/RTCPeerConnectionHandlerChromium.h:
46197         (RTCPeerConnectionHandlerChromium):
46198
46199 2012-10-15  Joshua Bell  <jsbell@chromium.org>
46200
46201         IndexedDB: Pass type of error causing abort to IDBTransaction::onAbort
46202         https://bugs.webkit.org/show_bug.cgi?id=99097
46203
46204         Reviewed by Tony Chang.
46205
46206         Include the error causing the abort in the callback from back end to
46207         front end so it can be exposed on the IDBTransaction.error property.
46208
46209         Test: lazy-index-population.html
46210
46211         * Modules/indexeddb/IDBDatabaseBackendImpl.cpp:
46212         (WebCore::IDBDatabaseBackendImpl::setVersionInternal):
46213         (WebCore::IDBDatabaseBackendImpl::setIntVersionInternal):
46214         * Modules/indexeddb/IDBDatabaseCallbacks.h:
46215         * Modules/indexeddb/IDBObjectStoreBackendImpl.cpp:
46216         (WebCore::IDBObjectStoreBackendImpl::setIndexKeys):
46217         (WebCore::IDBObjectStoreBackendImpl::putInternal):
46218         * Modules/indexeddb/IDBTransaction.cpp:
46219         (WebCore::IDBTransaction::onAbort):
46220         * Modules/indexeddb/IDBTransaction.h:
46221         (IDBTransaction):
46222         * Modules/indexeddb/IDBTransactionBackendImpl.cpp:
46223         (WebCore::IDBTransactionBackendImpl::abort):
46224         (WebCore):
46225         (WebCore::IDBTransactionBackendImpl::commit):
46226         * Modules/indexeddb/IDBTransactionBackendImpl.h:
46227         (IDBTransactionBackendImpl):
46228         * Modules/indexeddb/IDBTransactionCallbacks.h:
46229         (IDBTransactionCallbacks):
46230         * inspector/InspectorIndexedDBAgent.cpp:
46231         (WebCore):
46232
46233 2012-10-15  Mike Reed  <reed@google.com>
46234
46235         In Skia's ImageFrame, only set the isOpaque flag when the frame is complete
46236         https://bugs.webkit.org/show_bug.cgi?id=99326
46237
46238         Reviewed by Stephen White.
46239
46240         No new tests -- existing layouttests exercise this, esp. 
46241           png-partial-load-no-alpha.html
46242           webp-partial-load.html
46243         These two fail if skia is told that these are opaque, which it is w/o this CL.
46244
46245         At the moment, Skia has a hack to ignore the opaque-setting, so that these tests will pass as is.
46246         This change is to first, correct webkit to only set isOpaque when the frame is complete, so that
46247         in a later change, Skia can remove the hack, and re-enable its opaqueness optimization.
46248
46249         * platform/image-decoders/skia/ImageDecoderSkia.cpp:
46250         (WebCore::ImageFrame::ImageFrame):
46251         (WebCore::ImageFrame::operator=):
46252         (WebCore::ImageFrame::zeroFillPixelData):
46253         (WebCore::ImageFrame::hasAlpha):
46254         (WebCore::ImageFrame::setHasAlpha):
46255         (WebCore::ImageFrame::setStatus):
46256
46257 2012-10-12  Tony Chang  <tony@chromium.org>
46258
46259         input[type=range] as a flex item renders thumb at wrong position
46260         https://bugs.webkit.org/show_bug.cgi?id=98666
46261
46262         Reviewed by Ojan Vafai.
46263
46264         Replace RenderSlider implementation with new flexbox and clean up the shadow DOM.
46265         The previous code was trying to set the height to 100% and had a bunch of hacks in
46266         the renderer code to set an explicit height. Using the new flexbox allows us to
46267         remove these renderer hacks.
46268
46269         Test: css3/flexbox/flexitem-stretch-range.html
46270
46271         * css/html.css:
46272         (input[type="range"]::-webkit-slider-container, input[type="range"]::-webkit-media-slider-container): Use new flexbox.
46273         (input[type="range"]::-webkit-slider-runnable-track): Use new flexbox.
46274         (input[type="range"]::-webkit-slider-thumb, input[type="range"]::-webkit-media-slider-thumb): Remove relative positioning since we're
46275         no longer setting top/left in the layout code.
46276         * css/mediaControlsChromium.css: Remove redundant styles and bottom: 1px hack.
46277         * css/mediaControlsChromiumAndroid.css: Remove redundant styles and bottom: 1px hack.
46278         * html/RangeInputType.cpp:
46279         (WebCore::RangeInputType::listAttributeTargetChanged): We need to force a layout
46280         since the height of the control should change when adding/removing a datalist.
46281         * html/shadow/SliderThumbElement.cpp:
46282         (WebCore::RenderSliderContainer::RenderSliderContainer): Use new flexbox.
46283         (WebCore::RenderSliderContainer::computeLogicalHeight): Rather than setting style()->height() in layout, just compute the correct
46284         height when asked.  If we have a datalist, we increase the height (same code as before).  If we're vertical,
46285         we use the intrinsic size.
46286         (WebCore::RenderSliderContainer::layout): Remove extra layout code, but handle the position of the thumb.
46287         This used to be handled in the thumb's layout method, but I deleted that.
46288         * html/shadow/SliderThumbElement.h:
46289         * rendering/RenderSlider.cpp:
46290         (WebCore::RenderSlider::RenderSlider): Use new flexbox.
46291         (WebCore::RenderSlider::layout): Set the limiter size to the size of the thumb. This is necessary
46292         for fast/css/unknown-pseudo-element-matching.html which tries to set the height of the thumb to 1px
46293         and expects the input to also have a height of 1px.  It worked before because the height of the input
46294         didn't depend on the height of its children.
46295         * rendering/RenderSlider.h: Fix indentation.
46296         (RenderSlider): Use new flexible box.
46297
46298 2012-10-15  Julien Chaffraix  <jchaffraix@webkit.org>
46299
46300         Make RenderTable columns() and columnPositions() return a const reference
46301         https://bugs.webkit.org/show_bug.cgi?id=99339
46302
46303         Reviewed by Abhishek Arya.
46304
46305         The 2 getters were returning a non-const reference. This means that callers
46306         could have modified the Vector's where only FixedTableLayout and AutoTableLayout
46307         were expected to (for columnPositions(), no one should modify columns()).
46308
46309         Refactoring covered by existing tests.
46310
46311         * rendering/AutoTableLayout.cpp:
46312         (WebCore::AutoTableLayout::layout):
46313         * rendering/FixedTableLayout.cpp:
46314         (WebCore::FixedTableLayout::layout):
46315         Updated those functions to use the new setter.
46316
46317         * rendering/RenderTable.h:
46318         (WebCore::RenderTable::columns):
46319         (WebCore::RenderTable::columnPositions):
46320         Made the 2 functions return a const reference. They are also const now!
46321
46322         (WebCore::RenderTable::setColumnPosition):
46323         Added this setter.
46324
46325         * rendering/RenderTableSection.cpp:
46326         (WebCore::RenderTableSection::addCell):
46327         (WebCore::RenderTableSection::setCellLogicalWidths):
46328         (WebCore::RenderTableSection::dirtiedColumns):
46329         Updated to use a const reference.
46330
46331 2012-10-15  Dan Bernstein  <mitz@apple.com>
46332
46333         WebCore part of <rdar://problem/12470680> Font’s fast code path doesn’t support kerning and ligatures
46334         https://bugs.webkit.org/show_bug.cgi?id=99113
46335
46336         Reviewed by Tim Horton.
46337
46338         * WebCore.exp.in: Exported wkCTFontTransformGlyphs.
46339         * platform/graphics/Font.cpp:
46340         (WebCore::Font::width): Added a local GlyphBuffer to pass to floatWidthForSimpleText().
46341         (WebCore::Font::codePath): Rather than always use the complex code path when any typesetting
46342         features are enabled, changed to do so only if WidthIterator doesn’t support this Font’s
46343         typesetting features.
46344         * platform/graphics/FontFastPath.cpp:
46345         (WebCore::Font::getGlyphsAndAdvancesForSimpleText): Added a local GlyphBuffer to pass to
46346         WidthIterator::advance() when advancing to or from the range of interest. Added a FIXME
46347         about how this is not entirely correct when kerning or ligatures are enabled.
46348         (WebCore::Font::selectionRectForSimpleText): Added a local GlyphBuffer to pass to
46349         WidthIterator::advance() when advancing to or from the range of interest.
46350         (WebCore::Font::offsetForPositionForSimpleText): Updated for the change to
46351         WidthIterator::advanceOneCharacter().
46352         * platform/graphics/SimpleFontData.h:
46353         (WebCore::SimpleFontData::applyTransforms): Added. Calls wkCTFontTransformGlyphs() where
46354         available.
46355         * platform/graphics/WidthIterator.cpp:
46356         (WebCore::WidthIterator::WidthIterator): Added initializer for the new m_typesettingFeatures
46357         data member.
46358         (OriginalAdvancesForCharacterTreatedAsSpace): Added this data type, used to track spaces and
46359         characters treated as spaces.
46360         (WebCore::applyFontTransforms): Added. Applies shaping and positioning transforms, as
46361         required by the typesetting features, to the glyphs recently added to a GlyphBuffer, while
46362         maintaining the advances of characters that are treated as spaces and the characters
46363         preceding them, if necessary.
46364         (WebCore::WidthIterator::advanceInternal): Added calls to applyFontTransforms() at the end
46365         of each contiguous run of glyphs from the same font. Also added code to maintain a vector
46366         of spaces and characters treated as space.
46367         (WebCore::WidthIterator::advanceOneCharacter): Changed the parameter type from a pointer to
46368         a reference.
46369         * platform/graphics/WidthIterator.h:
46370         (WebCore::WidthIterator::supportsTypesettingFeatures): Added. Returns whether WidthIterator
46371         instances support the typesetting features of the given font. Returns true if the font is
46372         not a screen font and its typesetting features are kerning, ligatures or both.
46373         (WebCore::WidthIterator::shouldApplyFontTransforms): Added. Returns true if the typesetting
46374         features include kerning or ligatures.
46375         * platform/mac/WebCoreSystemInterface.h: Defined wkCTFontTransformOptions and declared
46376         wkCTFontTransformGlyphs.
46377         * platform/mac/WebCoreSystemInterface.mm: Defined wkCTFontTransformGlyphs.
46378         * rendering/svg/SVGTextMetricsBuilder.cpp:
46379         (WebCore::SVGTextMetricsBuilder::advanceSimpleText): Added a local GlyphBuffer to pass to
46380         WidthIterator::advance().
46381         * rendering/svg/SVGTextRunRenderingContext.cpp:
46382         (WebCore::SVGTextRunRenderingContext::floatWidthUsingSVGFont): Ditto.
46383
46384 2012-10-15  Mark Lam  <mark.lam@apple.com>
46385
46386         Fix build broken by r131348.
46387         https://bugs.webkit.org/show_bug.cgi?id=97533.
46388
46389         Not reviewed.
46390
46391         * rendering/RenderView.cpp:
46392         (WebCore::RenderView::layoutContent):
46393
46394 2012-10-15  Andreas Kling  <kling@webkit.org>
46395
46396         Remove WTF::fastDeleteAllValues().
46397         <http://webkit.org/b/99345>
46398
46399         Reviewed by Eric Seidel.
46400
46401         It was only used to fastDelete() a class that was already overriding operator delete
46402         by way of WTF_MAKE_FAST_ALLOCATED anyway.
46403
46404         * css/CSSParser.cpp:
46405         (WebCore::CSSParser::~CSSParser):
46406
46407 2012-10-15  Levi Weintraub  <leviw@chromium.org>
46408
46409         Regression r130057: incorrect block pref width for alternating InlineFlow and inline Replaced
46410         https://bugs.webkit.org/show_bug.cgi?id=99194
46411
46412         Reviewed by Eric Seidel.
46413
46414         Correctly breaking lines after inline replaced elements that follow inline flows. Previously, alternating
46415         these two types of elements would cause us to increase our preferred width forever.
46416
46417         Test: fast/block/block-with-inline-replaced-children-in-inline-flows.html
46418
46419         * rendering/RenderBlock.cpp:
46420         (WebCore::RenderBlock::computeInlinePreferredLogicalWidths):
46421
46422 2012-10-15  Emil A Eklund  <eae@chromium.org>
46423
46424         Revert rounding change in RenderTable::paintObject
46425         https://bugs.webkit.org/show_bug.cgi?id=99364
46426
46427         Reviewed by Levi Weintraub.
46428
46429         Bug 91410 changed RenderTable::paintObject to round the offset
46430         in order to avoid table-background bleed through. The root cause
46431         for that has since been fixed and the rounding workaround is no
46432         longer needed. This change reverts the code change from bug
46433         91410 while preserving the test added as a part of that change
46434         as it now passes without the workaround.
46435
46436         No new tests, covered by fast/sub-pixel/table-rows-no-gaps-expected.html
46437
46438         * rendering/RenderTable.cpp:
46439         (WebCore::RenderTable::paintObject):
46440         Remove unnecessary rounding.
46441
46442 2012-10-15  Michelangelo De Simone  <michelangelo@webkit.org>
46443
46444         [CSS Shaders] Add CustomFilterProgramType to CustomFilterProgramInfo
46445         https://bugs.webkit.org/show_bug.cgi?id=96448
46446
46447         Reviewed by Kenneth Rohde Christiansen.
46448
46449         CustomFilterProgramInfo has been refactored to decouple the CustomFilterProgramType from
46450         the CustomFilterProgramMixSetting: m_mixSettings.enabled was redundant in light of the fact
46451         that m_programType encoded the very same information. Dependencies have been updated to reflect
46452         this change.
46453
46454         Current tests already cover this code.
46455
46456         * css/CSSComputedStyleDeclaration.cpp: 
46457         (WebCore::CSSComputedStyleDeclaration::valueForFilter): The check for mixSettings.enabled has been replaced
46458         by an explicit check for PROGRAM_TYPE_BLENDS_ELEMENT_TEXTURE program type.
46459         * css/StyleResolver.cpp:
46460         (WebCore::StyleResolver::createCustomFilterOperation): Setting the program type explicitly while creating a
46461         new filter program.
46462         * platform/graphics/filters/CustomFilterProgram.cpp:
46463         (WebCore::CustomFilterProgram::CustomFilterProgram): CustomFilterProgram's constructor has been updated to
46464         reflect the need of setting the program type explicitly.
46465         (WebCore::CustomFilterProgram::programInfo): Updated to create new CustomFilterProgramInfo setting the program
46466         type explicitly.
46467         * platform/graphics/filters/CustomFilterProgram.h:
46468         * platform/graphics/filters/CustomFilterProgramInfo.cpp:
46469         (WebCore::CustomFilterProgramInfo::CustomFilterProgramInfo): Added m_programType and udpated the related getter.
46470         (WebCore::CustomFilterProgramInfo::hash): ditto
46471         (WebCore::CustomFilterProgramInfo::operator==): MixSettings' equality check is being performed only whether
46472         the CustomFilterProgramInfo's program type is PROGRAM_TYPE_BLENDS_ELEMENT_TEXTURE.
46473         * platform/graphics/filters/CustomFilterProgramInfo.h:
46474         (WebCore::CustomFilterProgramMixSettings::CustomFilterProgramMixSettings): Got rid of the redundant enabled flag.
46475         (WebCore::CustomFilterProgramMixSettings::operator==): ditto
46476         (CustomFilterProgramInfo):
46477         (WebCore::CustomFilterProgramInfo::programType):
46478         * platform/graphics/filters/CustomFilterValidatedProgram.cpp: The right shader validator is now being
46479         created according to the program type.
46480         (WebCore::CustomFilterValidatedProgram::CustomFilterValidatedProgram):
46481         (WebCore::CustomFilterValidatedProgram::rewriteMixVertexShader): The reference to MixSettings' enabled flag
46482         has been replaced with a check for the program type.
46483         (WebCore::CustomFilterValidatedProgram::rewriteMixFragmentShader): ditto
46484         * rendering/style/StyleCustomFilterProgram.h:
46485         (WebCore::StyleCustomFilterProgram::create): Updated to be aware of the program type.
46486         (WebCore::StyleCustomFilterProgram::StyleCustomFilterProgram): ditto
46487
46488 2012-10-15  Joshua Bell  <jsbell@chromium.org>
46489
46490         IndexedDB: Key paths should support non-ASCII identifiers
46491         https://bugs.webkit.org/show_bug.cgi?id=98814
46492
46493         Reviewed by Kentaro Hara.
46494
46495         Update the parser for key paths to use the unicode classes from
46496         the IdentifierName production in ECMA-262.
46497
46498         Test: storage/indexeddb/keypath-basics.html
46499
46500         * Modules/indexeddb/IDBKeyPath.cpp:
46501         (WebCore):
46502         (WebCore::IDBKeyPathLexer::lexIdentifier):
46503
46504 2012-10-15  Yael Aharon  <yael.aharon@intel.com>
46505
46506         [EFL][WK2][Texmap] Set gl context in GraphicsContext3DPrivate
46507         https://bugs.webkit.org/show_bug.cgi?id=99325
46508
46509         Reviewed by Kenneth Rohde Christiansen.
46510
46511         Based on a patch from Regina Chung.
46512         This piece of code was lost in the final patch of https://bugs.webkit.org/show_bug.cgi?id=96627.
46513         The gl context is used as key in a hash map and cannot be NULL.
46514
46515         No new tests. Accelerated compositing is not yet enabled in the EFL port.
46516
46517         * platform/graphics/efl/GraphicsContext3DEfl.cpp:
46518         (WebCore::GraphicsContext3D::GraphicsContext3D):
46519
46520 2012-10-15  Mike West  <mkwst@chromium.org>
46521
46522         Console messages containing long URLs should cut at some reasonable length.
46523         https://bugs.webkit.org/show_bug.cgi?id=97980
46524
46525         Reviewed by Pavel Feldman.
46526
46527         This patch lightly modifies the current styling of linkified URLs inside
46528         console messages in order to cut them down to some reasonable size for
46529         viewing. The middle of the URL is snipped out such that the whole
46530         thing fits into 150 characters. This only effects the displayed text;
46531         the link's href isn't changed; the link remains available via the
46532         context menu, accessible via the title attribute, and clicking it still
46533         takes the user directly to the resource in question.
46534
46535         Test: inspector/console/console-trim-long-urls.html
46536
46537         * inspector/front-end/ResourceUtils.js:
46538         (WebInspector.linkifyURLAsNode):
46539             Trim the middle of the URL to bring the whole string down to  down
46540             to 150 characters, and set the link's title to the full URL.
46541
46542 2012-10-15  Tony Chang  <tony@chromium.org>
46543
46544         Add computeLogicalHeight override methods to RenderView and RenderMultiColumnSet
46545         https://bugs.webkit.org/show_bug.cgi?id=99348
46546
46547         Reviewed by Ojan Vafai.
46548
46549         Add computeLogicalHeight to the last 2 RenderBoxes that override the method.
46550         I'm unable to remove RenderMultiColumnSet::updateLogicalHeight and make the method
46551         non-virtual since it sets ComputedColumnHeight.  I'd like to remove this
46552         eventually.
46553
46554         No new tests, this is just a code refactor.
46555
46556         * rendering/RenderMultiColumnSet.cpp:
46557         (WebCore::RenderMultiColumnSet::updateLogicalHeight): Set computedColumnHeight.
46558         (WebCore::RenderMultiColumnSet::computeLogicalHeight):
46559         (WebCore):
46560         * rendering/RenderMultiColumnSet.h:
46561         (RenderMultiColumnSet):
46562         * rendering/RenderView.cpp:
46563         (WebCore::RenderView::computeLogicalHeight):
46564         * rendering/RenderView.h:
46565
46566 2012-10-15  Eunmi Lee  <eunmi15.lee@samsung.com>
46567
46568         [EFL][WK2] Refactoring initialization and shutdown codes of EFL libraries.
46569         https://bugs.webkit.org/show_bug.cgi?id=97173
46570
46571         Reviewed by Gyuyoung Kim.
46572
46573         Remove codes to initialize and shutdown the EFL libraries from
46574         RunLoopEfl.cpp. Initialization and shutdown will be done in the
46575         ewk_main.cpp for ui process and WebProcessMainEfl.cpp for web
46576         process.
46577
46578         No new tests. This patch doesn't change behavior.
46579
46580         * platform/efl/RunLoopEfl.cpp:
46581         (WebCore::RunLoop::RunLoop):
46582         (WebCore::RunLoop::~RunLoop):
46583
46584 2012-10-15  Mihnea Ovidenie  <mihnea@adobe.com>
46585
46586         [CSSRegions]Add support for auto-height regions (without region-breaks)
46587         https://bugs.webkit.org/show_bug.cgi?id=97533
46588
46589         Reviewed by Julien Chaffraix.
46590
46591         Implement the 2pass layout algorithm for computing the height of regions with auto logical height, without taking region breaks into account.
46592         The algorithm is described in the CSSRegions spec: http://dev.w3.org/csswg/css3-regions/#regions-visual-formatting-steps
46593
46594         When the flow thread contains regions with auto logical height, a 2pass layout algorithm is needed to determine the height of auto logical height regions.
46595         In each step of the layout, the regions are laid out before the flow thread is laid out.
46596
46597         In the first pass of layout (normal layout phase), the content of the flow thread is laid out unconstrained in the regions. The region marked as having auto logical height
46598         displays all the corresponding content from the flow thread (taking min-height and max-height into account), and the height of the content displayed
46599         determines the overridden logical content height. Thus, after the first pass of layout, each auto logical height region will store the logical height
46600         value for the second pass in its overridden logical content height property.
46601
46602         In the second pass of layout (constrained flow threads layout phase), when the content of the flow thread is laid out constrained in the regions, the regions are laid out again and they are using
46603         the overridden logical content height from the first pass to update their logical height. Then, the flow thread content is laid out in the associated region chain,
46604         for which the auto logical height regions have proper logical height.
46605
46606         A future patch will properly take region breaks into account for the first pass of layout.
46607
46608         Tests: fast/regions/autoheight-abspos-region.html
46609                fast/regions/autoheight-floatright-region.html
46610                fast/regions/autoheight-horizontal-bt.html
46611                fast/regions/autoheight-inlineblock-normalflow-region.html
46612                fast/regions/autoheight-maxheight-region.html
46613                fast/regions/autoheight-minheight-region.html
46614                fast/regions/autoheight-normalflow-region.html
46615                fast/regions/autoheight-vertical-lr.html
46616                fast/regions/autoheight-vertical-rl.html
46617
46618         * rendering/FlowThreadController.cpp:
46619         (WebCore::FlowThreadController::resetRegionsOverrideLogicalContentHeight):
46620         For all the auto logical height regions, resets their associated overrideLogicalContentHeight.
46621         Those regions are marked as needing layout (along with their ancestors).
46622         (WebCore::FlowThreadController::markAutoLogicalHeightRegionsForLayout):
46623         Mark all the auto logical height regions and their associated flow thread as needing layout (along with their ancestors).
46624         * rendering/FlowThreadController.h:
46625         * rendering/RenderBox.cpp:
46626         Add helper functions to clear out individual logical content width/height.
46627         (WebCore::RenderBox::clearOverrideLogicalContentHeight):
46628         (WebCore::RenderBox::clearOverrideLogicalContentWidth):
46629         (WebCore::RenderBox::clearOverrideSize):
46630         * rendering/RenderBox.h:
46631         * rendering/RenderFlowThread.cpp:
46632         (WebCore::RenderFlowThread::layout):
46633         (WebCore::RenderFlowThread::computeLogicalHeight):
46634         If the flow thread has an auto logical height region for which we did not yet compute the overrideLogicalContentHeight value,
46635         bail out early since we cannot compute the flow thread logical height.
46636         (WebCore::RenderFlowThread::regionAtBlockOffset):
46637         If the offset is inside an auto logical height region for which we did not compute the overrideLogicalContentHeight, then we consider this region tall enough to accommodate all
46638         the content and we return this region. Otherwise, for an auto logical height region, we use either the overrideLogicalContentHeight (if we are in the first layout phase) or
46639         the logicalHeight if we are in the second layout phase (because the overriderLogicalContentHeight was already transferred into region logical height).
46640         (WebCore::RenderFlowThread::pageLogicalHeightForOffset):
46641         (WebCore::RenderFlowThread::pageRemainingLogicalHeightForOffset):
46642         (WebCore::RenderFlowThread::computeOverflowStateForRegions):
46643         (WebCore::RenderFlowThread::resetRegionsOverrideLogicalContentHeight):
46644         (WebCore::RenderFlowThread::markAutoLogicalHeightRegionsForLayout):
46645         (WebCore::RenderFlowThread::updateRegionsFlowThreadPortionRect):
46646         (WebCore::RenderFlowThread::addForcedRegionBreak):
46647         Simulate a region break at the specified offset. It will be extended to properly process the region breaks. At this moment, only one auto height region for a thread
46648         can have its height properly computed.
46649         * rendering/RenderFlowThread.h:
46650         * rendering/RenderNamedFlowThread.cpp:
46651         (WebCore::boxIntersectsRegion):
46652         * rendering/RenderRegion.cpp:
46653         (WebCore::RenderRegion::updateLogicalHeight):
46654         If the auto logical height region has an overrideLogicalContentHeight and we are in the second pass of layout,
46655         we use the overrideLogicalContentHeight to update the region logical height.
46656         (WebCore::RenderRegion::needsOverrideLogicalContentHeightComputation):
46657         * rendering/RenderRegion.h:
46658         * rendering/RenderView.cpp:
46659         (WebCore::RenderView::RenderView):
46660         (WebCore::RenderView::layoutContent):
46661         Added a new function to contain the RenderView block layout and flow threads layout.
46662         (WebCore::RenderView::checkLayoutState):
46663         Helper function keeping the original asserts from RenderView, used in more than one place.
46664         (WebCore::RenderView::layout):
46665         * rendering/RenderView.h:
46666         (WebCore::RenderView::normalLayoutPhase):
46667         (WebCore::RenderView::constrainedFlowThreadsLayoutPhase):
46668
46669 2012-10-15  Eugene Klyuchnikov  <eustas.bug@gmail.com>
46670
46671         Web Inspector: Fix memory leak in TreeOutline
46672         https://bugs.webkit.org/show_bug.cgi?id=99307
46673
46674         Reviewed by Alexander Pavlov.
46675
46676         Added cleanup of empty buckets in elements cache.
46677
46678         * inspector/front-end/treeoutline.js:
46679
46680 2012-10-15  Eugene Klyuchnikov  <eustas.bug@gmail.com>
46681
46682         Web Inspector: Hide useless controls in remote-debugging mode.
46683         https://bugs.webkit.org/show_bug.cgi?id=99300
46684
46685         Reviewed by Vsevolod Vlasov.
46686
46687         "Close inspector" and "change docking mode" buttons seem to be rather
46688         useless in remote debugging mode.
46689
46690         * inspector/front-end/inspector.css:
46691         (body.remote .toolbar-item.close-left, body.remote .toolbar-item.close-right):
46692         (body.remote .dock-status-bar-item):
46693
46694 2012-10-15  Christophe Dumez  <christophe.dumez@intel.com>
46695
46696         [EFL][WK2] Implement Favicons API
46697         https://bugs.webkit.org/show_bug.cgi?id=99087
46698
46699         Reviewed by Kenneth Rohde Christiansen.
46700
46701         Moved ewk_util from WebKit to WebCore and rename it
46702         to CairoUtilityEfl so that the code can be shared
46703         between WebKit1 and WebKit2. Some related utility
46704         code was also moved from RenderThemeEfl to
46705         CairoUtilityEfl.
46706
46707         No new tests, no behavior change.
46708
46709         * PlatformEfl.cmake:
46710         * platform/efl/RenderThemeEfl.cpp:
46711         * platform/graphics/efl/CairoUtilitiesEfl.cpp: Renamed from Source/WebKit/efl/ewk/ewk_util.cpp.
46712         (WebCore):
46713         (WebCore::evasObjectFromCairoImageSurface):
46714         (WebCore::createSurfaceForBackingStore):
46715         * platform/graphics/efl/CairoUtilitiesEfl.h: Renamed from Source/WebKit/efl/ewk/ewk_util_private.h.
46716         (WebCore):
46717
46718 2012-10-15  Beth Dakin  <bdakin@apple.com>
46719
46720         https://bugs.webkit.org/show_bug.cgi?id=99350
46721         REGRESSION (r131238): Repro crash in 
46722        WebCore::ScrollingStateTree::removeNode(WebCore::ScrollingStateNode*) 
46723         opening pdf page
46724         -and corresponding-
46725         <rdar://problem/12499839>
46726
46727         Reviewed by Simon Fraser.
46728
46729         We have to null-check node here. It won't be found if  
46730         clearStateTree() was recently called.
46731         * page/scrolling/mac/ScrollingCoordinatorMac.mm:
46732         (WebCore::ScrollingCoordinatorMac::detachFromStateTree):
46733
46734 2012-10-15  Jonathan Dong  <jonathan.dong@torchmobile.com.cn>
46735
46736         [BlackBerry] replace BlackBerry::Platform::log() with BBLOG()
46737         https://bugs.webkit.org/show_bug.cgi?id=99302
46738
46739         Reviewed by Rob Buis.
46740
46741         RIM PR: 210884
46742         The marco BBLOG() is defined as a no-op in release mode which will
46743         save a function call in the release build.
46744         Internally reviewed by Charles Wei.
46745
46746         No new tests since there's no functional change.
46747
46748         * platform/blackberry/PlatformKeyboardEventBlackBerry.cpp:
46749         (WebCore::PlatformKeyboardEvent::PlatformKeyboardEvent):
46750         * platform/graphics/blackberry/GraphicsContext3DBlackBerry.cpp:
46751         (WebCore::GraphicsContext3D::logFrameBufferStatus):
46752         * platform/graphics/blackberry/LayerCompositingThread.cpp:
46753         (WebCore::LayerCompositingThread::getTransformedHolePunchRect):
46754         * platform/graphics/blackberry/VideoLayerWebKitThread.cpp:
46755         (WebCore::VideoLayerWebKitThread::setHolePunchRect):
46756         (WebCore::VideoLayerWebKitThread::boundsChanged):
46757         * platform/graphics/opengl/GraphicsContext3DOpenGLCommon.cpp:
46758         (WebCore::GraphicsContext3D::compileShader):
46759
46760 2012-10-15  Christophe Dumez  <christophe.dumez@intel.com>
46761
46762         [EFL] Provide logging for OnlineState detection code
46763         https://bugs.webkit.org/show_bug.cgi?id=99299
46764
46765         Reviewed by Kenneth Rohde Christiansen.
46766
46767         Add logging to NetworkStateNotifierEfl.cpp to facilitate
46768         debugging of this functionality.
46769
46770         No new tests, no behavior change.
46771
46772         * platform/network/efl/NetworkStateNotifierEfl.cpp:
46773         (WebCore::NetworkStateNotifier::updateState):
46774
46775 2012-10-15  MORITA Hajime  <morrita@google.com>
46776
46777         [Regression r131167] run-webkit-tests fails
46778         https://bugs.webkit.org/show_bug.cgi?id=99279
46779
46780         Reviewed by Kentaro Hara.
46781
46782         CodeGeneratorV8.pm assumed that there are only two objects which have constructor getters and
46783         overlooked TestObj. This fix relaxes that assumption to accept it.
46784
46785         No new tests. Fixing an existing test.
46786
46787         * bindings/scripts/CodeGeneratorV8.pm:
46788         (GenerateConstructorGetter):
46789         * bindings/scripts/test/V8/V8TestObj.cpp:
46790         (WebCore::TestObjV8Internal::TestObjConstructorGetter):
46791
46792 2012-10-15  Joe Mason  <jmason@rim.com>
46793
46794         [BlackBerry] Fix WebSockets which was disabled by recent string changes
46795         https://bugs.webkit.org/show_bug.cgi?id=99248
46796
46797         Reviewed by George Staikos.
46798
46799         PR 223681: The signature of FilterStream::notifyStatusReceived changed to take a
46800         BlackBerry::Platform::String instead of a char *. But SocketStreamHandleBlackBerry was not
46801         updated to the new signature, so the status message is not getting passed on because it is
46802         not calling the correct override.
46803
46804         No new tests because this is fixing a regression.
46805
46806         * platform/network/blackberry/SocketStreamHandle.h:
46807         (SocketStreamHandle):
46808         * platform/network/blackberry/SocketStreamHandleBlackBerry.cpp:
46809         (WebCore::SocketStreamHandle::notifyStatusReceived):
46810
46811 2012-10-15  Rob Buis  <rbuis@rim.com>
46812
46813         Remove RenderTextControl::isSelectableElement
46814         https://bugs.webkit.org/show_bug.cgi?id=99334
46815
46816         Reviewed by Andreas Kling.
46817
46818         It seems this method is not used anymore.
46819
46820         * WebCore.order:
46821         * rendering/RenderTextControl.h:
46822
46823 2012-10-15  Mike West  <mkwst@chromium.org>
46824
46825         CSP source expressions should support paths at file-level granularity.
46826         https://bugs.webkit.org/show_bug.cgi?id=99250
46827
46828         Reviewed by Adam Barth.
46829
46830         After a bit of discussion on public-webappsec[1], path support for CSP
46831         source expressions has been tuned to support file-level granularity. In
46832         particular, this means that:
46833
46834         - 'example.com/js' matches a file named 'js'
46835         - 'example.com/js/' matches all files under a directory named 'js'
46836           (note the trailing slash)
46837         - 'example.com/js/file.js' matches only a file named 'file.js'
46838           inside a directory named 'js'
46839
46840         Though this is part of the CSP 1.1 spec, it continues to be exposed
46841         outside the CSP_NEXT flag for back-compatibility.
46842
46843         Test cases have been added to the existing
46844         http/tests/security/contentSecurityPolicy/source-list-parsing-paths-*
46845         in order ensure that the new functionality works correctly.
46846
46847         * page/ContentSecurityPolicy.cpp:
46848         (WebCore::CSPSource::pathMatches):
46849             If the path ends with '/', do a prefix check. If not, check for an
46850             exact match.
46851         (WebCore::CSPSourceList::parsePath):
46852             Don't automatically append a '/' to paths.
46853
46854 2012-10-15  George Staikos  <staikos@webkit.org>
46855
46856         [BlackBerry] Adapt to Platform API changes in string handling
46857         https://bugs.webkit.org/show_bug.cgi?id=99248
46858
46859         Reviewed by Yong Li.
46860
46861         Convert usage of WebString, char* and std::string to BlackBerry::Platform::String.
46862
46863         * html/track/TextTrack.cpp:
46864         (WebCore::TextTrack::TextTrack): Fix the build for BlackBerry.
46865         * page/blackberry/SettingsBlackBerry.cpp:
46866         (WebCore):
46867         (WebCore::Settings::initializeDefaultFontFamilies):
46868         * platform/blackberry/LocalizedStringsBlackBerry.cpp:
46869         * platform/blackberry/MIMETypeRegistryBlackBerry.cpp:
46870         (WebCore::MIMETypeRegistry::getMIMETypeForExtension):
46871         (WebCore::MIMETypeRegistry::getPreferredExtensionForMIMEType):
46872         * platform/blackberry/PasteboardBlackBerry.cpp:
46873         (WebCore::Pasteboard::writeSelection):
46874         (WebCore::Pasteboard::writeURL):
46875         (WebCore::Pasteboard::writePlainText):
46876         (WebCore::Pasteboard::plainText):
46877         (WebCore::Pasteboard::documentFragment):
46878         * platform/blackberry/ReadOnlyLatin1String.h: Removed.
46879         * platform/graphics/blackberry/MediaPlayerPrivateBlackBerry.cpp:
46880         (WebCore::MediaPlayerPrivate::getSupportedTypes):
46881         (WebCore::MediaPlayerPrivate::supportsType):
46882         (WebCore::MediaPlayerPrivate::setCertificatePath):
46883         (WebCore::MediaPlayerPrivate::load):
46884         (WebCore::generateProtectionSpaceFromMMRAuthChallenge):
46885         (WebCore::MediaPlayerPrivate::onAuthenticationNeeded):
46886         (WebCore::MediaPlayerPrivate::onAuthenticationAccepted):
46887         (WebCore::MediaPlayerPrivate::lookupMediaStream):
46888         * platform/graphics/blackberry/MediaPlayerPrivateBlackBerry.h:
46889         (MediaPlayerPrivate):
46890         (WebCore::MediaPlayerPrivate::engineDescription):
46891         * platform/network/blackberry/DNSBlackBerry.cpp:
46892         (WebCore::prefetchDNS):
46893         * platform/network/blackberry/NetworkJob.cpp:
46894         (WebCore::NetworkJob::initialize):
46895         (WebCore::NetworkJob::notifyStatusReceived):
46896         (WebCore::NetworkJob::notifyHeadersReceived):
46897         (WebCore::NetworkJob::handleNotifyClose):
46898         (WebCore::NetworkJob::sendRequestWithCredentials):
46899         * platform/network/blackberry/NetworkJob.h:
46900         (NetworkJob):
46901         * platform/network/blackberry/NetworkManager.cpp:
46902         (WebCore::NetworkManager::startJob):
46903         * platform/network/blackberry/ResourceRequestBlackBerry.cpp:
46904         (WebCore::ResourceRequest::initializePlatformRequest):
46905         * platform/network/blackberry/SocketStreamHandleBlackBerry.cpp:
46906         (WebCore::SocketStreamHandle::SocketStreamHandle):
46907         * platform/text/blackberry/StringBlackBerry.cpp:
46908         (WTF::String::String):
46909         (WTF::String::operator BlackBerry::Platform::String):
46910         * platform/text/blackberry/TextBreakIteratorInternalICUBlackBerry.cpp:
46911
46912 2012-10-15  Jay Civelli  <jcivelli@chromium.org>
46913
46914         Calling WebCore::SharedBuffer::append(data, 0) on a shared buffer when
46915         its current position is at a segment boundary (4096) ends up adding an
46916         unitialized segment (with uninitialized memory) to the SharedBuffer.
46917         https://bugs.webkit.org/show_bug.cgi?id=99000
46918
46919         Reviewed by Adam Barth.
46920
46921         * platform/SharedBuffer.cpp:
46922         (WebCore::SharedBuffer::append):
46923
46924 2012-10-15  Luke Macpherson   <macpherson@chromium.org>
46925
46926         Make CSS variable names case-insensitive.
46927         https://bugs.webkit.org/show_bug.cgi?id=98712
46928
46929         Reviewed by Tony Chang.
46930
46931         This patch modifies the parser to normalize all variable names to lower case,
46932         making variable definitions consistent with other property names, which are also case insensitive.
46933         Spec: http://dev.w3.org/csswg/css-variables/#defining-variables
46934
46935         Test: fast/css/variables/case-insensitive.html
46936
46937         * css/CSSParser.cpp:
46938         (WebCore::CSSParser::createPrimitiveNumericValue):
46939         (WebCore):
46940         (WebCore::CSSParser::createPrimitiveVariableNameValue):
46941         (WebCore::CSSParser::parseValidPrimitive):
46942         (WebCore::CSSParser::parseValue):
46943         (WebCore::CSSParser::storeVariableDeclaration):
46944         (WebCore::CSSParserString::lowerSubstring):
46945         Added function to compute a lower case substring as an AtomicString from a CSSParserString.
46946         * css/CSSParser.h:
46947         (CSSParser):
46948         * css/CSSParserValues.h:
46949         (CSSParserString):
46950         (WebCore::CSSParserString::lowerSubstring):
46951
46952 2012-10-15  Michael Saboff  <msaboff@apple.com>
46953
46954         Update RenderText to use String instead of UChar* for text
46955         https://bugs.webkit.org/show_bug.cgi?id=96979
46956
46957         Reviewed by Dan Bernstein.
46958
46959         RenderText now uses a String for text.  It keeps a cached LCHar* or UChar* pointer to the
46960         actual text data for performance.  Added a characterAt() indexed accessor to RenderText to avoid the
46961         somewhat confusing construct for a RenderText* rt, e.g. (*re)[n] or rt->characters()[n].  This is
46962         now written as rt->characterAt(n).
46963         Enabled patch in the HTML parser to create 8 bit text data.  Modified TextRun to create 
46964         text runs using 8 bit string data where possible.  Added several flavors of RenderBlock::constructTextRun
46965         to create TextRuns from RenderText objects including with an offset.  Added an LChar flavor of constructTextRun()
46966         as well.  Eliminated the TextRunFlags argument to all but the String flavor as all other flavors used the default
46967         parameter.  
46968         Encased the code that creates 8 bit TextRun's in #if USE(8BIT_TEXTRUN).  Enabled WTF_USE_8BIT_TEXTRUN
46969         for PLATFORM(MAC).  Other platform can update this setting in Platform.h when their platform specific code is
46970         updated to TextRun's with 8 bit data.
46971         Added many 8/16 bit aware paths.  Cleanup up some int / unsigned confusion in RenderBlockLineLayout.cpp.
46972
46973         No function change therefore no new tests.
46974
46975         * html/parser/HTMLTokenizer.cpp:
46976         (WebCore::vectorEqualsString):
46977         (WebCore::HTMLTokenizer::nextToken):
46978         * html/parser/HTMLTokenizer.h:
46979         (HTMLTokenizer):
46980         * html/track/WebVTTTokenizer.cpp:
46981         (WebCore::vectorEqualsString):
46982         (WebCore::WebVTTTokenizer::nextToken):
46983         * html/track/WebVTTTokenizer.h:
46984         (WebVTTTokenizer):
46985         * platform/graphics/Font.h:
46986         (WebCore::Font::glyphDataForCharacter):
46987         * platform/graphics/FontFastPath.cpp:
46988         (WebCore):
46989         * platform/graphics/TextRun.h:
46990         (WebCore::TextRun::TextRun):
46991         (WebCore::TextRun::subRun):
46992         (TextRun):
46993         * platform/graphics/mac/ComplexTextController.cpp:
46994         (WebCore::TextLayout::isNeeded):
46995         (WebCore::TextLayout::constructTextRun):
46996         * rendering/InlineFlowBox.cpp:
46997         (WebCore::InlineFlowBox::placeBoxesInInlineDirection):
46998         * rendering/InlineIterator.h:
46999         (WebCore::InlineIterator::atTextParagraphSeparator):
47000         (WebCore::InlineIterator::current):
47001         (WebCore::InlineIterator::previousInSameNode):
47002         * rendering/InlineTextBox.cpp:
47003         (WebCore::adjustCharactersAndLengthForHyphen):
47004         (WebCore::InlineTextBox::paint):
47005         (WebCore::InlineTextBox::paintSelection):
47006         (WebCore::InlineTextBox::constructTextRun):
47007         * rendering/InlineTextBox.h:
47008         (InlineTextBox):
47009         * rendering/RenderBlock.cpp:
47010         (WebCore::constructTextRunInternal):
47011         (WebCore::RenderBlock::constructTextRun):
47012         * rendering/RenderBlock.h:
47013         (RenderBlock):
47014         * rendering/RenderBlockLineLayout.cpp:
47015         (WebCore::endsWithASCIISpaces):
47016         (WebCore::reachedEndOfTextRenderer):
47017         (WebCore::RenderBlock::computeInlineDirectionPositionsForLine):
47018         (WebCore::shouldSkipWhitespaceAfterStartObject):
47019         (WebCore::textWidth):
47020         (WebCore::tryHyphenating):
47021         (WebCore::RenderBlock::LineBreaker::nextLineBreak):
47022         * rendering/RenderCombineText.cpp:
47023         (WebCore::RenderCombineText::getStringToRender):
47024         (WebCore::RenderCombineText::combineText):
47025         * rendering/RenderCombineText.h:
47026         (RenderCombineText):
47027         * rendering/RenderText.cpp:
47028         (SameSizeAsRenderText):
47029         (WebCore::RenderText::RenderText):
47030         (WebCore::RenderText::widthFromCache):
47031         (WebCore::RenderText::computePreferredLogicalWidths):
47032         (WebCore::RenderText::setTextInternal):
47033         (WebCore::RenderText::width):
47034         * rendering/RenderText.h:
47035         (WebCore::RenderText::is8Bit):
47036         (WebCore::RenderText::characters8):
47037         (WebCore::RenderText::characters16):
47038         (WebCore::RenderText::characterAt):
47039         (WebCore::RenderText::operator[]):
47040         (RenderText):
47041         * xml/parser/MarkupTokenBase.h:
47042         (WebCore::MarkupTokenBase::appendToCharacter):
47043         (MarkupTokenBase):
47044         (WebCore::MarkupTokenBase::isAll8BitData):
47045
47046 2012-10-15  Vsevolod Vlasov  <vsevik@chromium.org>
47047
47048         Web Inspector: Scripts for dynamically added script elements are not shown in sources panel.
47049         https://bugs.webkit.org/show_bug.cgi?id=99324
47050
47051         Reviewed by Pavel Feldman.
47052
47053         NetworkUISourceCodeProvider now adds uiSourceCodes for dynamic anonymous scripts
47054         and dynamic scripts loaded before inspector was opened.
47055
47056         Tests: http/tests/inspector-enabled/dynamic-scripts.html
47057                inspector/debugger/dynamic-scripts.html
47058
47059         * inspector/front-end/NetworkLog.js:
47060         (WebInspector.NetworkLog.prototype.requestForURL):
47061         * inspector/front-end/NetworkUISourceCodeProvider.js:
47062         (WebInspector.NetworkUISourceCodeProvider):
47063         (WebInspector.NetworkUISourceCodeProvider.prototype._parsedScriptSource):
47064         (WebInspector.NetworkUISourceCodeProvider.prototype._projectWillReset):
47065
47066 2012-10-15  Dominik Röttsches  <dominik.rottsches@intel.com>
47067
47068         REGRESSION(130613): Reintroduces crashes when using soup's timeout functionality
47069         https://bugs.webkit.org/show_bug.cgi?id=99311
47070
47071         Reviewed by Gustavo Noronha Silva.
47072
47073         Removing the cleanupSoupRequestOperation call, since the cancel() call will eventually trigger the
47074         cleanup already setting the right flag. Cleaning the handle already here will result in crashes when
47075         using the soup timeout functionality.
47076         The explicit cleanup call reintroduced in r130613, after it had been previously removed in r130348.
47077
47078         No new tests, tests that catch this will be part of bug 74802 for XHR timeout support.
47079
47080         * platform/network/soup/ResourceHandleSoup.cpp:
47081         (WebCore::requestTimeoutCallback):
47082
47083 2012-10-15  Ilya Tikhonovsky  <loislo@chromium.org>
47084
47085         Web Inspector: convert manual size calculation of different WebKit things into MemoryInstrumentation.
47086         https://bugs.webkit.org/show_bug.cgi?id=99309
47087
47088         Reviewed by Yury Semikhatsky.
47089
47090         JSHeap, DOMStorage and HeapProfiler data were counted manually.
47091         Now we count the sizes more generic way.
47092
47093         * dom/WebCoreMemoryInstrumentation.cpp:
47094         * dom/WebCoreMemoryInstrumentation.h:
47095         (WebCoreMemoryTypes): new string identifiers were added for Inspector's data.
47096         * inspector/InspectorBaseAgent.cpp:
47097         (WebCore::InspectorBaseAgentInterface::InspectorBaseAgentInterface): common data members were moved from template to base class.
47098         (WebCore::InspectorBaseAgentInterface::reportMemoryUsage): NMI instrumentation was added to the base template.
47099         * inspector/InspectorBaseAgent.h:
47100         (InspectorBaseAgentInterface): ditto
47101         (WebCore::InspectorBaseAgent::InspectorBaseAgent): ditto
47102         * inspector/InspectorController.cpp:
47103         (WebCore::InspectorController::reportMemoryUsage): NMI instrumentation was added to the class.
47104         * inspector/InspectorController.h:
47105         * inspector/InspectorDOMStorageAgent.cpp:
47106         (WebCore::InspectorDOMStorageAgent::reportMemoryUsage): NMI instrumentation was added to the class.
47107         * inspector/InspectorDOMStorageAgent.h:
47108         * inspector/InspectorDOMStorageResource.cpp:
47109         (WebCore::InspectorDOMStorageResource::reportMemoryUsage): NMI instrumentation was added to the class.
47110         * inspector/InspectorDOMStorageResource.h:
47111         * inspector/InspectorMemoryAgent.cpp:
47112         (WebCore::reportJSHeapInfo): these methods now use MemoryInstrumentation for reporting the size of underlying data.
47113         (WebCore::reportRenderTreeInfo):
47114         (WebCore::collectDomTreeInfo):
47115         (WebCore::InspectorMemoryAgent::getProcessMemoryDistribution):
47116         (WebCore::InspectorMemoryAgent::reportMemoryUsage): NMI instrumentation was added to the class.
47117         * inspector/InspectorMemoryAgent.h:
47118         * inspector/InspectorProfilerAgent.cpp:
47119         (WebCore::InspectorProfilerAgent::reportMemoryUsage):
47120         * inspector/InspectorProfilerAgent.h:
47121         (InspectorProfilerAgent): NMI instrumentation was added to the class.
47122         * inspector/MemoryInstrumentationImpl.cpp: allocatedObjects map was converted from InspectorMemoryAgent::getProcessMemoryDistribution local variable to member variable.
47123         (WebCore::MemoryInstrumentationClientImpl::checkCountedObject):
47124         (WebCore::MemoryInstrumentationClientImpl::reportMemoryUsage): NMI instrumentation was added to the class.
47125         (WebCore::MemoryInstrumentationImpl::reportMemoryUsage): NMI instrumentation was added to the class.
47126         * inspector/MemoryInstrumentationImpl.h:
47127         (WebCore::MemoryInstrumentationClientImpl::MemoryInstrumentationClientImpl):
47128         (WebCore::MemoryInstrumentationClientImpl::allocatedObjects):
47129         (WebCore::MemoryInstrumentationClientImpl::checkInstrumentedObjects):
47130         * inspector/front-end/NativeMemorySnapshotView.js:
47131         (WebInspector.MemoryBlockViewProperties._initialize):
47132         (WebInspector.NativeMemoryBarChart.prototype._updateView):
47133         * page/Page.cpp:
47134         (WebCore::Page::reportMemoryUsage): NMI instrumentation was added to the class.
47135         * page/Page.h:
47136
47137 2012-10-15  Kent Tamura  <tkent@chromium.org>
47138
47139         Improve code of LocaleMac.mm
47140         https://bugs.webkit.org/show_bug.cgi?id=98383
47141
47142         Reviewed by Darin Adler.
47143
47144         - Use isNull instead of isEmpty because isNull is more efficient.
47145         - create*Formatter should return RetainPtr to avoid to retain in each of callsites.
47146         - Explicit String conversion is not needed.
47147
47148         No new tests. This doesn't change any behavior.
47149
47150         * platform/text/mac/LocaleMac.h:
47151         (LocaleMac):
47152         - Change the return types of createShortDateFormatter,
47153         createTimeFormatter, and createShortTimeFormatter from NSDateFormatter*
47154         to RetainPtr<NSDateFormatter>.
47155         - Omit 'create' from their names.
47156         - Add m_gregorianCalendar.
47157         * platform/text/mac/LocaleMac.mm:
47158         (WebCore::createDateTimeFormatter):
47159         Change the return type from NSDateFormatter* to RetainPtr<NSDateFormatter>.
47160         Add an NSCalendar argument.
47161         (WebCore::LocaleMac::shortDateFormatter):
47162         Renamed from createShortTimeFormatter.
47163         Change the return type from NSDateFormatter* to RetainPtr<NSDateFormatter>.
47164         (WebCore::LocaleMac::parseDateTime): Follow the return type change and the renaming.
47165         (WebCore::LocaleMac::formatDateTime): Ditto. Also, remove explicit String construction.
47166         (WebCore::LocaleMac::dateFormatText): Ditto. Also, use isNull.
47167         (WebCore::LocaleMac::monthLabels): Follow the return type change and the renaming.
47168         (WebCore::LocaleMac::weekDayShortLabels): Ditto.
47169         (WebCore::LocaleMac::timeFormatter):
47170         Change the return type from NSDateFormatter* to RetainPtr<NSDateFormatter>.
47171         Renamed from createTimeFormatter.
47172         (WebCore::LocaleMac::shortTimeFormatter): Ditto.
47173         (WebCore::LocaleMac::dateFormat):
47174         Use isNull. Remove explicit String construction. Follow the return type
47175         change and the renaming.
47176         (WebCore::LocaleMac::timeFormat): ditto.
47177         (WebCore::LocaleMac::shortTimeFormat): ditto.
47178         (WebCore::LocaleMac::timeAMPMLabels):
47179         Remove explicit String construction. Follow the return type change.
47180         (WebCore::LocaleMac::initializeLocalizerData):
47181         Remove explicit String construction.
47182
47183 2012-10-12  Ilya Tikhonovsky  <loislo@chromium.org>
47184
47185         Web Inspector: NMI remove hand made object builders with automatic builder.
47186         https://bugs.webkit.org/show_bug.cgi?id=99186
47187
47188         Reviewed by Yury Semikhatsky.
47189
47190         Old builders were replaced with single automatic builder.
47191         It does the next things:
47192         a) deduplicates entries in the MemoryInstrumentationClient's map and converts objectType pointers to String;
47193         b) creates parent entries and assigns their aggregated sizes;
47194         c) creates the hierarchy of MemoryBlocks recursively.
47195
47196         * dom/WebCoreMemoryInstrumentation.cpp:
47197         (WebCore):
47198         * dom/WebCoreMemoryInstrumentation.h:
47199         (WebCoreMemoryTypes):
47200         * inspector/InspectorMemoryAgent.cpp:
47201         (WebCore):
47202         (WebCore::jsHeapInfo):
47203         (WebCore::renderTreeInfo):
47204         (WebCore::addPlatformComponentsInfo):
47205         (WebCore::InspectorMemoryAgent::getProcessMemoryDistribution):
47206         * inspector/MemoryInstrumentationImpl.cpp:
47207         (WebCore::MemoryInstrumentationClientImpl::sizesMap):
47208         (WebCore):
47209         * inspector/MemoryInstrumentationImpl.h:
47210         (WebCore):
47211         (MemoryInstrumentationClientImpl):
47212
47213 2012-10-14  Sam Weinig  <sam@webkit.org>
47214
47215         Simplify user content in WebKit2 by using WebCore::UserStyleSheet and WebCore::UserScript directly
47216         https://bugs.webkit.org/show_bug.cgi?id=99276
47217
47218         Reviewed by Anders Carlsson.
47219
47220         Add default constructors for UserScript and UserStyleSheet so they can be used in CoreIPC encoding/decoding.
47221
47222         * page/UserScript.h:
47223         (WebCore::UserScript::UserScript):
47224         (UserScript):
47225         * page/UserStyleSheet.h:
47226         (WebCore::UserStyleSheet::UserStyleSheet):
47227         (UserStyleSheet):
47228
47229 2012-10-14  Jon Lee  <jonlee@apple.com>
47230
47231         Allow notification origin permission request when no js callback is provided
47232         https://bugs.webkit.org/show_bug.cgi?id=63615
47233         <rdar://problem/11059590>
47234
47235         Reviewed by Sam Weinig.
47236
47237         Instead of throwing a type error when no callback is provided, we pass a null callback.
47238
47239         Test: http/tests/notifications/legacy/request-no-callback.html
47240
47241         * bindings/js/JSDesktopNotificationsCustom.cpp:
47242         (WebCore::JSNotificationCenter::requestPermission):
47243
47244 2012-10-12  Anders Carlsson  <andersca@apple.com>
47245
47246         Move QDataStream functions into HistoryItemQt.cpp
47247         https://bugs.webkit.org/show_bug.cgi?id=99203
47248
47249         Reviewed by Andreas Kling.
47250
47251         It seems like the QDataStream stream operators are only used from HistoryItemQt.cpp
47252         inside WebCore, so move them there. If in the future they are required elsewhere, they should
47253         be moved into a separate header instead of polluting headers unnecessarily.
47254
47255         * history/qt/HistoryItemQt.cpp:
47256         (operator<<):
47257         (operator>>):
47258         * platform/FractionalLayoutUnit.h:
47259         * platform/graphics/IntPoint.h:
47260
47261 2012-10-14  Sam Weinig  <sam@webkit.org>
47262
47263         Make UserScript and UserStyleSheet value objects that are copyable
47264         https://bugs.webkit.org/show_bug.cgi?id=99275
47265
47266         Reviewed by Tim Horton.
47267
47268         Simplify UserScript and UserStyleSheet and make them more easily usable
47269         without sticking them in an OwnPtr.
47270
47271         * WebCore.exp.in:
47272         Update exports.
47273
47274         * page/PageGroup.cpp:
47275         (WebCore::PageGroup::addUserScriptToWorld):
47276         (WebCore::PageGroup::addUserStyleSheetToWorld):
47277         * page/PageGroup.h:
47278         (PageGroup):
47279         * page/UserContentURLPattern.cpp:
47280         (WebCore::UserContentURLPattern::matchesPatterns):
47281         * page/UserContentURLPattern.h:
47282         (UserContentURLPattern):
47283         Update to not assume whitelist and blacklist are in Vector<String>*.
47284
47285         * page/UserScript.h:
47286         (UserScript):
47287         (WebCore::UserScript::UserScript):
47288         (WebCore::UserScript::whitelist):
47289         (WebCore::UserScript::blacklist):
47290         * page/UserStyleSheet.h:
47291         (UserStyleSheet):
47292         (WebCore::UserStyleSheet::UserStyleSheet):
47293         (WebCore::UserStyleSheet::whitelist):
47294         (WebCore::UserStyleSheet::blacklist):
47295         Switch OwnPtr<Vector<String> > to Vector<String> and remove Noncopyable restriction.
47296
47297 2012-10-14  Tim Horton  <timothy_horton@apple.com>
47298
47299         [wk2] Implement PDFPlugin
47300         https://bugs.webkit.org/show_bug.cgi?id=99206
47301
47302         Unreviewed build fix, export __ZN7WebCore8IntPointC1ERK7CGPoint.
47303
47304         * WebCore.exp.in:
47305
47306 2012-10-14  Tim Horton  <timothy_horton@apple.com>
47307
47308         [wk2] Implement PDFPlugin
47309         https://bugs.webkit.org/show_bug.cgi?id=99206
47310
47311         Reviewed by Dan Bernstein.
47312
47313         Add a plug-in that uses PDFKit to display PDFs, instead of using PDFKit in the
47314         UIProcess for full-page PDFs. This new plugin will also be used for inline PDFs
47315         in place of SimplePDFPlugin (née BuiltInPDFView).
47316
47317         * WebCore.exp.in:
47318         Export a few more methods to WebKit(2).
47319
47320         * WebCore.xcodeproj/project.pbxproj:
47321         Expose Pasteboard.h as a private header so PDFPlugin can use it.
47322
47323         * platform/ScrollableArea.h:
47324         Make invalidateScrollbar/invalidateScrollCorner virtual.
47325
47326 2012-10-14  Antoine Quint  <graouts@apple.com>
47327
47328         InspectorPageAgent should expose a method to control the compositing debug settings.
47329         https://bugs.webkit.org/show_bug.cgi?id=99253
47330
47331         Reviewed by Timothy Hatcher.
47332
47333         * inspector/Inspector.json:
47334         * inspector/InspectorPageAgent.cpp:
47335         (WebCore::InspectorPageAgent::setCompositingBordersVisible):
47336         * inspector/InspectorPageAgent.h:
47337
47338 2012-10-13  Chris Rogers  <crogers@google.com>
47339
47340         WebAudioBus needs support for resizing bus to a smaller size
47341         https://bugs.webkit.org/show_bug.cgi?id=99215
47342
47343         Reviewed by Dimitri Glazkov.
47344
47345         Upgrade AudioBus and WebAudioBus to support resizing to a smaller size, once it has been created.
47346         This is useful, for example, when decoding VBR formats and the actual length can't be exactly determined
47347         until the entire file is decoded.
47348
47349         * platform/audio/AudioBus.cpp:
47350         (WebCore::AudioBus::resizeSmaller):
47351         (WebCore):
47352         * platform/audio/AudioBus.h:
47353         (AudioBus):
47354         * platform/audio/AudioChannel.cpp:
47355         (WebCore::AudioChannel::resizeSmaller):
47356         (WebCore):
47357         * platform/audio/AudioChannel.h:
47358         (AudioChannel):
47359         * platform/chromium/support/WebAudioBus.cpp:
47360         (WebKit::WebAudioBus::resizeSmaller):
47361         (WebKit):
47362
47363 2012-10-13  Gregg Tavares  <gman@google.com>
47364
47365         Add warning for unrenderable textures
47366         https://bugs.webkit.org/show_bug.cgi?id=99235
47367
47368         Reviewed by Kenneth Russell.
47369
47370         Unrenderable textures are often hard to debug. Adds a message to that
47371         appears in the JavaScript console to help developers find the issue.
47372
47373         No new tests as no new functionality.
47374
47375         * html/canvas/WebGLRenderingContext.cpp:
47376         (WebCore):
47377         (WebCore::WebGLRenderingContext::drawArrays):
47378         (WebCore::WebGLRenderingContext::drawElements):
47379         (WebCore::WebGLRenderingContext::handleNPOTTextures):
47380         * html/canvas/WebGLRenderingContext.h:
47381         (WebGLRenderingContext):
47382
47383 2012-10-13  Geoffrey Garen  <ggaren@apple.com>
47384
47385         Not reviewed.
47386
47387         Updated bindings test results.
47388
47389         * bindings/scripts/test/JS/JSTestEventTarget.cpp:
47390         (WebCore::JSTestEventTarget::getOwnPropertySlotByIndex):
47391
47392 2012-10-12  Geoffrey Garen  <ggaren@apple.com>
47393
47394         I pity da foo' who's converting numbers to strings
47395         https://bugs.webkit.org/show_bug.cgi?id=99197
47396
47397         Reviewed by Gavin Barraclough.
47398
47399         40% speedup on PerformanceTests/Dromaeo/dom-traverse.html. Probably speeds
47400         some other things up too.
47401
47402         Credit to Eric Seidel for spotting this.
47403
47404         * bindings/scripts/CodeGeneratorJS.pm:
47405         (GenerateImplementation): getOwnPropertySlotByIndex doesn't need to prefer
47406         string lookup in the static table because our static tables don't contain
47407         properties that are numbers.
47408
47409         I believe this is low-hanging fruit left behind by Phil's
47410         getOwnPropertySlotByIndex optimization, but it's also possible that this was a
47411         regression at some point. I didn't check.
47412
47413 2012-10-13  Adam Barth  <abarth@webkit.org>
47414
47415         Remove dead code in Node.idl
47416         https://bugs.webkit.org/show_bug.cgi?id=99237
47417
47418         Reviewed by Maciej Stachowiak.
47419
47420         We don't implement this feature. This code is dead and should be
47421         removed.
47422
47423         * dom/Node.idl:
47424
47425 2012-10-12  Simon Fraser  <simon.fraser@apple.com>
47426
47427         Fix GraphicsLayerCA visible rect computation in the face of perspective and preserve-3d
47428         https://bugs.webkit.org/show_bug.cgi?id=99212
47429
47430         Reviewed by Tim Horton.
47431
47432         GraphicsLayerCA::computeVisibleRect() was incorrect for layer trees with perspective
47433         and preserve-3d, so fix that, and add some tests.
47434         
47435         Perspective is implemented via childrenTransform(); if our parent has one,
47436         we have to left-multiply this into the transformation matrix.
47437         
47438         We have to test both this layer and its parent when deciding whether to accumulate
47439         or flatten.
47440         
47441         Use state.mappedQuad() rather than state.lastPlanarQuad(), because the last planar
47442         quad might be for some distant ancestor, and there may be intermediate preserve-3d
47443         layers.
47444
47445         Tests: compositing/visible-rect/3d-transform-style.html
47446                compositing/visible-rect/3d-transformed.html
47447                compositing/visible-rect/nested-transform.html
47448
47449         * platform/graphics/ca/GraphicsLayerCA.cpp:
47450         (WebCore::GraphicsLayerCA::computeVisibleRect):
47451
47452 2012-10-11  Simon Fraser  <simon.fraser@apple.com>
47453
47454         Move TransformState code into its own member function, and remove a test that was prematurely added
47455         https://bugs.webkit.org/show_bug.cgi?id=99117
47456
47457         Reviewed by Tim Horton.
47458
47459         The code that manipulates the TransformState and computes the visible rect is going to get
47460         more complex, so move it into a new member function.
47461
47462         * platform/graphics/ca/GraphicsLayerCA.cpp:
47463         (WebCore::GraphicsLayerCA::computeVisibleRect):
47464         (WebCore::GraphicsLayerCA::recursiveCommitChanges):
47465         * platform/graphics/ca/GraphicsLayerCA.h:
47466         (GraphicsLayerCA):
47467
47468 2012-10-12  Simon Fraser  <simon.fraser@apple.com>
47469
47470         Add some initial visible rect tests and tweak the visible wash layer
47471         https://bugs.webkit.org/show_bug.cgi?id=99095
47472
47473         Reviewed by Tim Horton.
47474
47475         Make the m_visibleTileWashLayer more useful by showing it for all
47476         layers with transforms, not just tiled layers. This is a debugging
47477         layer normally disabled, but enabled by #defining VISIBLE_TILE_WASH.
47478
47479         Tests: compositing/visible-rect/2d-transformed.html
47480                compositing/visible-rect/3d-transformed.html
47481                compositing/visible-rect/clipped-by-viewport copy.html
47482                compositing/visible-rect/clipped-by-viewport.html
47483                compositing/visible-rect/clipped-visible-rect.html
47484
47485         * platform/graphics/ca/GraphicsLayerCA.cpp:
47486         (WebCore::GraphicsLayerCA::recursiveCommitChanges):
47487         (WebCore::GraphicsLayerCA::swapFromOrToTiledLayer):
47488         * platform/graphics/ca/GraphicsLayerCA.h:
47489
47490 2012-10-12  Pablo Flouret  <pablof@motorola.com>
47491
47492         Teach GeneratorGObject about [ImplementedAs] extended attribute in functions
47493         https://bugs.webkit.org/show_bug.cgi?id=99214
47494
47495         Reviewed by Kentaro Hara.
47496
47497         No new tests, updated the binding tests results.
47498
47499         * bindings/scripts/CodeGeneratorGObject.pm:
47500         (GenerateFunction):
47501         * bindings/scripts/test/GObject/WebKitDOMTestObj.cpp:
47502         (webkit_dom_test_obj_orange):
47503
47504 2012-10-12  Beth Dakin  <bdakin@apple.com>
47505
47506         https://bugs.webkit.org/show_bug.cgi?id=99211
47507         When ScrollingStateNodes are destroyed, they should be removed 
47508         ScrollingCoordinator's HashMap
47509
47510         Reviewed by Sam Weinig.
47511
47512         This patch adds a new member variable to ScrollingStateTree. It's a 
47513         Vector of ScrollingNodeIDs. It will contain the IDs of nodes that 
47514         have been removed from the tree since the last time the tree was 
47515         committed.
47516         * page/scrolling/ScrollingStateTree.cpp:
47517         (WebCore::ScrollingStateTree::ScrollingStateTree):
47518
47519         When we do commit, copy the Vector over into the cloned tree, and 
47520         then clear our own Vector.
47521         (WebCore::ScrollingStateTree::commit):
47522
47523         Call didRemoveNode().
47524         (WebCore::ScrollingStateTree::removeNode):
47525
47526         Append the removed node's id to the vector.
47527         (WebCore::ScrollingStateTree::didRemoveNode):
47528         (WebCore):
47529         * page/scrolling/ScrollingStateTree.h:
47530         (ScrollingStateTree):
47531
47532         Call didRemoveNode().
47533         * page/scrolling/ScrollingStateNode.cpp:
47534         (WebCore::ScrollingStateNode::removeChild):
47535
47536         Fix the FIXME!
47537         * page/scrolling/mac/ScrollingCoordinatorMac.mm:
47538         (WebCore::ScrollingCoordinatorMac::detachFromStateTree):
47539
47540 2012-10-12  Brady Eidson  <beidson@apple.com>
47541
47542         Setup basic NetworkProcess messaging and initialization.
47543         https://bugs.webkit.org/show_bug.cgi?id=99198
47544
47545         Reviewed by Sam Weinig.
47546
47547         * English.lproj/Localizable.strings: Update for the Network Process UI name.
47548
47549 2012-10-12  Levi Weintraub  <leviw@chromium.org>
47550
47551         Remove unnecessary mode identifiers added in r131111
47552         https://bugs.webkit.org/show_bug.cgi?id=99208
47553
47554         Reviewed by Emil A Eklund.
47555
47556         Removing unnecessary mode identifiers from coordinate conversion methods. These
47557         were added in http://trac.webkit.org/changeset/131111
47558
47559         No new tests. No change in behavior.
47560
47561         * rendering/RenderBox.h:
47562         (RenderBox):
47563         * rendering/RenderBoxModelObject.h:
47564         (RenderBoxModelObject):
47565         * rendering/RenderInline.h:
47566         (RenderInline):
47567         * rendering/RenderObject.h:
47568         (RenderObject):
47569         * rendering/RenderView.h:
47570         (RenderView):
47571         * rendering/svg/RenderSVGForeignObject.h:
47572         (RenderSVGForeignObject):
47573         * rendering/svg/RenderSVGInline.h:
47574         (RenderSVGInline):
47575         * rendering/svg/RenderSVGModelObject.h:
47576         (RenderSVGModelObject):
47577         * rendering/svg/RenderSVGRoot.h:
47578         (RenderSVGRoot):
47579         * rendering/svg/RenderSVGText.h:
47580         (RenderSVGText):
47581
47582 2012-10-12  Sheriff Bot  <webkit.review.bot@gmail.com>
47583
47584         Unreviewed, rolling out r131224.
47585         http://trac.webkit.org/changeset/131224
47586         https://bugs.webkit.org/show_bug.cgi?id=99210
47587
47588         It broke the build (Requested by andersca on #webkit).
47589
47590         * history/qt/HistoryItemQt.cpp:
47591         * platform/FractionalLayoutUnit.h:
47592         (WebCore):
47593         (WebCore::operator<<):
47594         (WebCore::operator>>):
47595         * platform/graphics/IntPoint.h:
47596         (WebCore):
47597         (WebCore::operator<<):
47598         (WebCore::operator>>):
47599
47600 2012-10-12  Anders Carlsson  <andersca@apple.com>
47601
47602         Move QDataStream functions into HistoryItemQt.cpp
47603         https://bugs.webkit.org/show_bug.cgi?id=99203
47604
47605         Reviewed by Andreas Kling.
47606
47607         It seems like the QDataStream stream operators are only used from HistoryItemQt.cpp
47608         inside WebCore, so move them there. If in the future they are required elsewhere, they should
47609         be moved into a separate header instead of polluting headers unnecessarily.
47610
47611         * history/qt/HistoryItemQt.cpp:
47612         (operator<<):
47613         (operator>>):
47614         * platform/FractionalLayoutUnit.h:
47615         * platform/graphics/IntPoint.h:
47616
47617 2012-10-12  Beth Dakin  <bdakin@apple.com>
47618
47619         https://bugs.webkit.org/show_bug.cgi?id=99204
47620         ScrollingStateNodes should keep track of their IDs
47621
47622         Reviewed by Simon Fraser.
47623
47624         There is a HashMap in ScrollingCoordinatorMac that maps 
47625         ScrollingNodeIDs to ScrollingStateNodes. The nodes themselves should 
47626         keep track of this id. Then the id can be used to make sure 
47627         ScrollingStateNodes remove themselves from the HashMap when they are 
47628         destroyed, and it will also be useful for associating 
47629         ScrollingStateNodes with ScrollingTreeNodes over on the scrolling 
47630         thread.
47631   
47632         This patch only has the ScrollingStateNodes cache the id. I will 
47633         actually make use of the id in follow-up patches.
47634
47635         * page/scrolling/ScrollingStateNode.cpp:
47636         (WebCore::ScrollingStateNode::ScrollingStateNode):
47637         * page/scrolling/ScrollingStateNode.h:
47638         (ScrollingStateNode):
47639         (WebCore::ScrollingStateNode::scrollingNodeID):
47640         * page/scrolling/ScrollingStateScrollingNode.cpp:
47641         (WebCore::ScrollingStateScrollingNode::create):
47642         (WebCore::ScrollingStateScrollingNode::ScrollingStateScrollingNode):
47643         * page/scrolling/ScrollingStateScrollingNode.h:
47644         (ScrollingStateScrollingNode):
47645         * page/scrolling/mac/ScrollingCoordinatorMac.mm:
47646         (WebCore::ScrollingCoordinatorMac::attachToStateTree):
47647
47648 2012-10-01  Jer Noble  <jer.noble@apple.com>
47649
47650         Add LSKD support to MediaPlayerPrivateAVFoundation.
47651         https://bugs.webkit.org/show_bug.cgi?id=98090
47652
47653         Reviewed by Anders Carlsson.
47654
47655         Add support for LSKD key system to MediaPlayerPrivateAVFoundation.
47656
47657         * platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.h:
47658         (MediaPlayerPrivateAVFoundationObjC): Add m_loaderDelegate, m_keyURIToRequestMap, and m_sessionToRequestMap.
47659         * platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
47660         (globalLoaderDelegateQueue): Static accessor for the dispatch queue to use for the loader delegate.
47661         (WebCore::MediaPlayerPrivateAVFoundationObjC::MediaPlayerPrivateAVFoundationObjC):
47662         (WebCore::MediaPlayerPrivateAVFoundationObjC::createAVAssetForURL): Add the loader delegate to the AVURLAsset.
47663         (WebCore::keySystemIsSupported): Convenience function; checks that the key system matches "com.apple.lskd"
47664         (WebCore::MediaPlayerPrivateAVFoundationObjC::extendedSupportsType): Check the key system matches.
47665         (WebCore::MediaPlayerPrivateAVFoundationObjC::shouldWaitForLoadingOfResource): Fire a needkey event with an initData containing
47666             the key URI.
47667         (WebCore::extractKeyURIKeyIdAndCertificateFromInitData): Extract the keyURI, keyID, and the app certificate from the initData.
47668         (WebCore::MediaPlayerPrivateAVFoundationObjC::generateKeyRequest): Generate a streaming key request from AVFoundation and 
47669             fire a keymessage event.
47670         (WebCore::MediaPlayerPrivateAVFoundationObjC::addKey): Pass to AVFoundation through the AVAssetResourceLoader.
47671         (WebCore::MediaPlayerPrivateAVFoundationObjC::cancelKeyRequest): Release the loader delegate.
47672         (-[WebCoreAVFLoaderDelegate initWithCallback:]): Simple constructor.
47673         (-[WebCoreAVFLoaderDelegate resourceLoader:shouldWaitForLoadingOfRequestedResource:]): Pass to the MediaPlayerPrivateAVFoundationObjC.
47674
47675 2012-10-12  James Simonsen  <simonjam@chromium.org>
47676
47677         [RequestAnimationFrame] Remove vendor prefix
47678         https://bugs.webkit.org/show_bug.cgi?id=99116
47679
47680         Reviewed by Adam Barth.
47681
47682         Test: Existing rAF tests without prefix.
47683
47684         * dom/Document.cpp:
47685         (WebCore::Document::requestAnimationFrame):
47686         (WebCore::Document::cancelAnimationFrame):
47687         * dom/Document.h:
47688         (Document):
47689         * page/DOMWindow.cpp:
47690         (WebCore::DOMWindow::requestAnimationFrame):
47691         (WebCore::DOMWindow::cancelAnimationFrame):
47692         * page/DOMWindow.h:
47693         (DOMWindow):
47694         * page/DOMWindow.idl:
47695
47696 2012-10-12  Andreas Kling  <kling@webkit.org>
47697
47698         REGRESSION: Rapid memory growth calling DOM APIs with large strings.
47699         <http://webkit.org/b/98498>
47700         <rdar://problem/12443926>
47701
47702         Reviewed by Geöff Gären and Änders Cärlssön.
47703
47704         Prevent the selector query cache from growing indefinitely by setting a relaxed limit of 256 entries.
47705         If the cache fills up, remove a random entry before inserting a new one.
47706
47707         While this is unlikely to be a problem on real websites, we definitely shouldn't be adding boundless
47708         caches to WebKit.
47709
47710         * dom/SelectorQuery.cpp:
47711         (WebCore::SelectorQueryCache::add):
47712
47713 2012-10-12  Roger Fong  <roger_fong@apple.com>
47714
47715         Update method signature for platformCALayerShowRepaintCounter in MediaPlayerPlayerPrivateAVFoundationCF's LayerClient class.
47716         https://bugs.webkit.org/show_bug.cgi?id=99190
47717
47718         Reviewed by Simon Fraser.
47719
47720         LayerClient's base class (PlatformCALayerClient) method signature for abstract method platformCALayerShowRepaintCounter
47721         was updated in http://trac.webkit.org/changeset/130676 so it needs to be changed in LayerClient as well.
47722
47723         * platform/graphics/avfoundation/cf/MediaPlayerPrivateAVFoundationCF.cpp:
47724         (WebCore::LayerClient::platformCALayerShowRepaintCounter):
47725
47726 2012-10-12  Scott Graham  <scottmg@chromium.org>
47727
47728         Local disable of stack corruption warning when compiling on VS2012
47729         https://bugs.webkit.org/show_bug.cgi?id=99106
47730
47731         Reviewed by Ryosuke Niwa.
47732
47733         Warning is:
47734
47735         ...\FEConvolveMatrix.cpp(274) : warning C4789: buffer 'totals' of size 12 bytes will be overrun; 4 bytes will be written starting at offset 12.
47736
47737         And similar at lines 281, 355, and 365. This appears to be incorrect
47738         as the writes at offset 12 occur only when preserveAlphaValues is
47739         false, and when it's false, totals will be 16 bytes long.
47740
47741         No new tests.
47742
47743         * platform/graphics/filters/FEConvolveMatrix.cpp:
47744         (WebCore):
47745
47746 2012-10-11  Emil A Eklund  <eae@chromium.org>
47747
47748         [Sub pixel layout] Change RenderBox to not round logicalTop/Left for RenderReplaced
47749         https://bugs.webkit.org/show_bug.cgi?id=99108
47750
47751         Reviewed by Levi Weintraub.
47752
47753         Change RenderBox::computePositionedLogicalHeightReplaced and
47754         computePositionedLogicalWidthReplaced to not round position.
47755
47756         Covered by existing tests.
47757
47758         * rendering/InlineFlowBox.cpp:
47759         (WebCore::InlineFlowBox::placeBoxesInBlockDirection):
47760         Floor baselinePosition for replaced elements to match logic in
47761         RootInlineBox::ascentAndDescentForBox where the ascent is
47762         computed from the floored baselinePosition.
47763         
47764         * rendering/RenderBox.cpp:
47765         (WebCore::RenderBox::computePositionedLogicalWidthReplaced):
47766         (WebCore::RenderBox::computePositionedLogicalHeightReplaced):
47767         Remove .round() call for m_position, preserving precision.
47768
47769 2012-10-01  Jer Noble  <jer.noble@apple.com>
47770
47771         Enable ENCRYPTED_MEDIA support on Mac.
47772         https://bugs.webkit.org/show_bug.cgi?id=98044
47773
47774         Reviewed by Anders Carlsson.
47775
47776         Enable the ENCRYPTED_MEDIA conditional on the Mac port.
47777
47778         No new tests; Existing media/encrypted-media tests require org.w3.clearkey support, which is not implemented.
47779
47780         * Configurations/FeatureDefines.xcconfig: Enable the ENCRYPTED_MEDIA flag.
47781         * DerivedSources.make: Add the MediaKeyError and MediaKeyEvent classes.
47782         * WebCore.xcodeproj/project.pbxproj: Ditto.
47783         * bindings/js/JSDictionary.cpp:
47784         (WebCore::JSDictionary::convertValue): Add convertValue functions for Uint8Array and MediaKeyError.
47785         * bindings/js/JSDictionary.h:
47786         * html/HTMLMediaElement.cpp:
47787         (WebCore::HTMLMediaElement::mediaPlayerKeyNeeded): Throw an error if no "needkey"
47788             handler is registered.
47789         * html/HTMLMediaElement.h:
47790         * html/HTMLMediaElement.idl: Change keySystem to DefaultIsUndefined.
47791         * platform/graphics/MediaPlayer.cpp:
47792         (WebCore::MediaPlayer::keyNeeded): Return a bool indicating whether the process was aborted
47793             due to a lack of "needkey" listener.
47794         * platform/graphics/MediaPlayer.h:
47795         (WebCore::MediaPlayerClient::mediaPlayerKeyAdded): Remove unused parameter names.
47796         (WebCore::MediaPlayerClient::mediaPlayerKeyError): Ditto.
47797         (WebCore::MediaPlayerClient::mediaPlayerKeyMessage): Ditto.
47798         (WebCore::MediaPlayerClient::mediaPlayerKeyNeeded): Ditto.
47799         * platform/graphics/MediaPlayerPrivate.h:
47800         (WebCore::MediaPlayerPrivateInterface::addKey): Ditto.
47801         (WebCore::MediaPlayerPrivateInterface::generateKeyRequest): Ditto.
47802         (WebCore::MediaPlayerPrivateInterface::cancelKeyRequest): Ditto.
47803         * platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.h:
47804         * platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
47805         (WebCore::MediaPlayerPrivateAVFoundationObjC::registerMediaEngine): Call extendedSupportsType.
47806         (WebCore::MediaPlayerPrivateAVFoundationObjC::extendedSupportsType): Stub. Pass through to supportsType.
47807         * platform/graphics/mac/MediaPlayerPrivateQTKit.h:
47808         * platform/graphics/mac/MediaPlayerPrivateQTKit.mm:
47809         (WebCore::MediaPlayerPrivateQTKit::registerMediaEngine): Call extendedSupportsType.
47810         (WebCore::MediaPlayerPrivateQTKit::extendedSupportsType): Stub. Pass through to supportsType.
47811
47812 2012-10-12  Jaehun Lim  <ljaehun.lim@samsung.com>
47813
47814         Check parameter's safety first
47815         https://bugs.webkit.org/show_bug.cgi?id=99136
47816
47817         Reviewed by Chris Rogers.
47818
47819         Pointer parameter was used before NULL checking.
47820         This patch moves safety checking statements to the head of the function.
47821
47822         No new tests. No behavior change.
47823
47824         * platform/audio/AudioChannel.cpp:
47825         (WebCore::AudioChannel::copyFromRange):
47826         (WebCore::AudioChannel::sumFrom):
47827         * platform/audio/EqualPowerPanner.cpp:
47828         (WebCore::EqualPowerPanner::pan):
47829
47830 2012-10-12  Andreas Kling  <kling@webkit.org>
47831
47832         RenderBR should share its constant newline string between instances.
47833         <http://webkit.org/b/99121>
47834
47835         Reviewed by Anders Carlsson.
47836
47837         * rendering/RenderBR.cpp:
47838         (WebCore::newlineString):
47839         (WebCore::RenderBR::RenderBR):
47840
47841 2012-10-12  Alexander Pavlov  <apavlov@chromium.org>
47842
47843         Web Inspector: [Styles] !important priority not honored inside the same declaration
47844         https://bugs.webkit.org/show_bug.cgi?id=99170
47845
47846         Reviewed by Yury Semikhatsky.
47847
47848         Property priorities were not considered inside the same CSS rule. !important properties should stay active
47849         even if followed by non-!important properties with the same name.
47850
47851         * inspector/InspectorStyleSheet.cpp:
47852         (WebCore::InspectorStyle::styleWithProperties):
47853         * inspector/front-end/StylesSidebarPane.js:
47854         (WebInspector.StylePropertiesSection.prototype.onpopulate):
47855         (WebInspector.ComputedStylePropertiesSection.prototype.rebuildComputedTrace):
47856
47857 2012-10-12  Pavel Feldman  <pfeldman@chromium.org>
47858
47859         Web Inspector: use hard-coded zoom factors instead of 1.2 powers.
47860         https://bugs.webkit.org/show_bug.cgi?id=99173
47861
47862         Reviewed by Vsevolod Vlasov.
47863
47864         Overwise we step too fast.
47865
47866         * inspector/front-end/inspector.js:
47867         (WebInspector._zoomIn):
47868         (WebInspector._zoomOut):
47869         (WebInspector):
47870
47871 2012-10-12  Yury Semikhatsky  <yurys@chromium.org>
47872
47873         Web Inspector: move delete watch expression farther from the expand triangle
47874         https://bugs.webkit.org/show_bug.cgi?id=99166
47875
47876         Reviewed by Pavel Feldman.
47877
47878         Aligned 'delete watch expression' button on the right side (was on the left) so
47879         that it is hard to click it when expanding watched value.
47880
47881         * inspector/front-end/inspector.css:
47882         (.properties-tree.watch-expressions):
47883         (.section .properties .delete-button):
47884
47885 2012-10-12  Pavel Feldman  <pfeldman@chromium.org>
47886
47887         Web Inspector: trim filename in the call stack sidebar
47888         https://bugs.webkit.org/show_bug.cgi?id=99169
47889
47890         Reviewed by Yury Semikhatsky.
47891
47892         Otherwise long file names are rendered poorly.
47893
47894         * inspector/front-end/CallStackSidebarPane.js:
47895         (WebInspector.CallStackSidebarPane.Placard.prototype._update):
47896         * inspector/front-end/inspector.css:
47897         (.placard .subtitle):
47898
47899 2012-10-12  Vsevolod Vlasov  <vsevik@chromium.org>
47900
47901         Web Inspector: Resume button in element inspector -> scripts has tooltip 'pause script execution'
47902         https://bugs.webkit.org/show_bug.cgi?id=99165
47903
47904         Reviewed by Pavel Feldman.
47905
47906         Pause/resume button title is now updated when debugger is paused/resumed.
47907
47908         * English.lproj/localizedStrings.js:
47909         * inspector/front-end/ScriptsPanel.js:
47910         (WebInspector.ScriptsPanel.prototype._updateDebuggerButtons):
47911         (WebInspector.ScriptsPanel.prototype._createDebugToolbar):
47912         (WebInspector.ScriptsPanel.prototype._updateButtonTitle):
47913         (WebInspector.ScriptsPanel.prototype._createButtonAndRegisterShortcuts):
47914
47915 2012-10-12  Kentaro Hara  <haraken@chromium.org>
47916
47917         Unreviewed. Fix run-binding-tests failures introduced in r131167.
47918
47919         * bindings/scripts/CodeGeneratorV8.pm:
47920         (GenerateConstructorGetter):
47921         * bindings/scripts/test/V8/V8TestObj.cpp:
47922         (WebCore):
47923         (WebCore::TestObjV8Internal::TestObjConstructorGetter):
47924         (WebCore::V8TestObj::installPerContextProperties):
47925         (WebCore::V8TestObj::installPerContextPrototypeProperties):
47926         (WebCore::V8TestObj::wrapSlow):
47927         * bindings/scripts/test/V8/V8TestObj.h:
47928         (V8TestObj):
47929
47930 2012-10-12  Pavel Feldman  <pfeldman@chromium.org>
47931
47932         Web Inspector: relies on current Function.prototype.bind in the frame
47933         https://bugs.webkit.org/show_bug.cgi?id=99164
47934
47935         Reviewed by Yury Semikhatsky.
47936
47937         InjectedScriptSource should not depend on the bind override.
47938
47939         Test: inspector/console/console-bind-fake.html
47940
47941         * inspector/InjectedScriptSource.js:
47942         (.):
47943
47944 2012-10-12  Alexander Pavlov  <apavlov@chromium.org>
47945
47946         Web Inspector: [Styles] Colors should be "As authored" by default
47947         https://bugs.webkit.org/show_bug.cgi?id=99017
47948
47949         Reviewed by Vsevolod Vlasov.
47950
47951         Use "original" as the default value of WebInspector.settings.colorFormat.
47952
47953         * inspector/front-end/Settings.js:
47954
47955 2012-10-12  Takashi Sakamoto  <tasak@google.com>
47956
47957         [WebKit IDL] move extended attributes to left of interface, exception...
47958         https://bugs.webkit.org/show_bug.cgi?id=99012
47959
47960         Reviewed by Kentaro Hara.
47961
47962         According to WebIDL spec, moved all extended attributes to the left
47963         of interface / attribute / readonly attribute / exception.
47964
47965         No new tests. I ran run-bindings-tests and all tests passed.
47966
47967         * Modules/battery/BatteryManager.idl:
47968         * Modules/battery/NavigatorBattery.idl:
47969         * Modules/filesystem/DOMFileSystem.idl:
47970         * Modules/filesystem/DOMFileSystemSync.idl:
47971         * Modules/filesystem/DOMWindowFileSystem.idl:
47972         * Modules/filesystem/DataTransferItemFileSystem.idl:
47973         * Modules/filesystem/DirectoryEntry.idl:
47974         * Modules/filesystem/DirectoryEntrySync.idl:
47975         * Modules/filesystem/DirectoryReader.idl:
47976         * Modules/filesystem/DirectoryReaderSync.idl:
47977         * Modules/filesystem/EntriesCallback.idl:
47978         * Modules/filesystem/Entry.idl:
47979         * Modules/filesystem/EntryArray.idl:
47980         * Modules/filesystem/EntryArraySync.idl:
47981         * Modules/filesystem/EntryCallback.idl:
47982         * Modules/filesystem/EntrySync.idl:
47983         * Modules/filesystem/ErrorCallback.idl:
47984         * Modules/filesystem/FileCallback.idl:
47985         * Modules/filesystem/FileEntry.idl:
47986         * Modules/filesystem/FileEntrySync.idl:
47987         * Modules/filesystem/FileSystemCallback.idl:
47988         * Modules/filesystem/FileWriter.idl:
47989         * Modules/filesystem/FileWriterCallback.idl:
47990         * Modules/filesystem/FileWriterSync.idl:
47991         * Modules/filesystem/HTMLInputElementFileSystem.idl:
47992         * Modules/filesystem/Metadata.idl:
47993         * Modules/filesystem/MetadataCallback.idl:
47994         * Modules/filesystem/WorkerContextFileSystem.idl:
47995         * Modules/gamepad/Gamepad.idl:
47996         * Modules/gamepad/GamepadList.idl:
47997         * Modules/gamepad/NavigatorGamepad.idl:
47998         * Modules/geolocation/Geolocation.idl:
47999         * Modules/geolocation/Geoposition.idl:
48000         * Modules/geolocation/NavigatorGeolocation.idl:
48001         * Modules/geolocation/PositionCallback.idl:
48002         * Modules/geolocation/PositionError.idl:
48003         * Modules/geolocation/PositionErrorCallback.idl:
48004         * Modules/indexeddb/DOMWindowIndexedDatabase.idl:
48005         * Modules/indexeddb/IDBAny.idl:
48006         * Modules/indexeddb/IDBCursor.idl:
48007         * Modules/indexeddb/IDBCursorWithValue.idl:
48008         * Modules/indexeddb/IDBDatabase.idl:
48009         * Modules/indexeddb/IDBDatabaseException.idl:
48010         * Modules/indexeddb/IDBFactory.idl:
48011         * Modules/indexeddb/IDBIndex.idl:
48012         * Modules/indexeddb/IDBKey.idl:
48013         * Modules/indexeddb/IDBKeyRange.idl:
48014         * Modules/indexeddb/IDBObjectStore.idl:
48015         * Modules/indexeddb/IDBOpenDBRequest.idl:
48016         * Modules/indexeddb/IDBRequest.idl:
48017         * Modules/indexeddb/IDBTransaction.idl:
48018         * Modules/indexeddb/IDBUpgradeNeededEvent.idl:
48019         * Modules/indexeddb/IDBVersionChangeEvent.idl:
48020         * Modules/indexeddb/IDBVersionChangeRequest.idl:
48021         * Modules/indexeddb/WorkerContextIndexedDatabase.idl:
48022         * Modules/intents/DOMWindowIntents.idl:
48023         * Modules/intents/DeliveredIntent.idl:
48024         * Modules/intents/NavigatorIntents.idl:
48025         * Modules/mediasource/MediaSource.idl:
48026         * Modules/mediasource/SourceBuffer.idl:
48027         * Modules/mediasource/SourceBufferList.idl:
48028         * Modules/mediastream/DOMWindowMediaStream.idl:
48029         * Modules/mediastream/IceCallback.idl:
48030         * Modules/mediastream/IceCandidate.idl:
48031         * Modules/mediastream/LocalMediaStream.idl:
48032         * Modules/mediastream/MediaStream.idl:
48033         * Modules/mediastream/MediaStreamEvent.idl:
48034         * Modules/mediastream/MediaStreamList.idl:
48035         * Modules/mediastream/MediaStreamTrack.idl:
48036         * Modules/mediastream/MediaStreamTrackEvent.idl:
48037         * Modules/mediastream/MediaStreamTrackList.idl:
48038         * Modules/mediastream/NavigatorMediaStream.idl:
48039         * Modules/mediastream/NavigatorUserMediaError.idl:
48040         * Modules/mediastream/NavigatorUserMediaErrorCallback.idl:
48041         * Modules/mediastream/NavigatorUserMediaSuccessCallback.idl:
48042         * Modules/mediastream/PeerConnection00.idl:
48043         * Modules/mediastream/RTCErrorCallback.idl:
48044         * Modules/mediastream/RTCIceCandidate.idl:
48045         * Modules/mediastream/RTCIceCandidateEvent.idl:
48046         * Modules/mediastream/RTCPeerConnection.idl:
48047         * Modules/mediastream/RTCSessionDescription.idl:
48048         * Modules/mediastream/RTCSessionDescriptionCallback.idl:
48049         * Modules/mediastream/RTCStatsCallback.idl:
48050         * Modules/mediastream/RTCStatsElement.idl:
48051         * Modules/mediastream/RTCStatsReport.idl:
48052         * Modules/mediastream/RTCStatsResponse.idl:
48053         * Modules/mediastream/SessionDescription.idl:
48054         * Modules/navigatorcontentutils/NavigatorContentUtils.idl:
48055         * Modules/networkinfo/NavigatorNetworkInfoConnection.idl:
48056         * Modules/networkinfo/NetworkInfoConnection.idl:
48057         * Modules/notifications/DOMWindowNotifications.idl:
48058         * Modules/notifications/Notification.idl:
48059         * Modules/notifications/NotificationCenter.idl:
48060         * Modules/notifications/NotificationPermissionCallback.idl:
48061         * Modules/notifications/WorkerContextNotifications.idl:
48062         * Modules/proximity/DeviceProximityEvent.idl:
48063         * Modules/quota/DOMWindowQuota.idl:
48064         * Modules/quota/StorageInfo.idl:
48065         * Modules/quota/StorageInfoErrorCallback.idl:
48066         * Modules/quota/StorageInfoQuotaCallback.idl:
48067         * Modules/quota/StorageInfoUsageCallback.idl:
48068         * Modules/speech/DOMWindowSpeech.idl:
48069         * Modules/speech/SpeechGrammar.idl:
48070         * Modules/speech/SpeechGrammarList.idl:
48071         * Modules/speech/SpeechRecognition.idl:
48072         * Modules/speech/SpeechRecognitionAlternative.idl:
48073         * Modules/speech/SpeechRecognitionError.idl:
48074         * Modules/speech/SpeechRecognitionEvent.idl:
48075         * Modules/speech/SpeechRecognitionResult.idl:
48076         * Modules/speech/SpeechRecognitionResultList.idl:
48077         * Modules/vibration/NavigatorVibration.idl:
48078         * Modules/webaudio/AudioBuffer.idl:
48079         * Modules/webaudio/AudioBufferCallback.idl:
48080         * Modules/webaudio/AudioBufferSourceNode.idl:
48081         * Modules/webaudio/AudioChannelMerger.idl:
48082         * Modules/webaudio/AudioChannelSplitter.idl:
48083         * Modules/webaudio/AudioContext.idl:
48084         * Modules/webaudio/AudioDestinationNode.idl:
48085         * Modules/webaudio/AudioGain.idl:
48086         * Modules/webaudio/AudioGainNode.idl:
48087         * Modules/webaudio/AudioListener.idl:
48088         * Modules/webaudio/AudioNode.idl:
48089         * Modules/webaudio/AudioPannerNode.idl:
48090         * Modules/webaudio/AudioParam.idl:
48091         * Modules/webaudio/AudioProcessingEvent.idl:
48092         * Modules/webaudio/AudioSourceNode.idl:
48093         * Modules/webaudio/BiquadFilterNode.idl:
48094         * Modules/webaudio/ConvolverNode.idl:
48095         * Modules/webaudio/DOMWindowWebAudio.idl:
48096         * Modules/webaudio/DelayNode.idl:
48097         * Modules/webaudio/DynamicsCompressorNode.idl:
48098         * Modules/webaudio/JavaScriptAudioNode.idl:
48099         * Modules/webaudio/MediaElementAudioSourceNode.idl:
48100         * Modules/webaudio/MediaStreamAudioSourceNode.idl:
48101         * Modules/webaudio/OfflineAudioCompletionEvent.idl:
48102         * Modules/webaudio/Oscillator.idl:
48103         * Modules/webaudio/RealtimeAnalyserNode.idl:
48104         * Modules/webaudio/WaveShaperNode.idl:
48105         * Modules/webaudio/WaveTable.idl:
48106         * Modules/webdatabase/DOMWindowWebDatabase.idl:
48107         * Modules/webdatabase/Database.idl:
48108         * Modules/webdatabase/DatabaseCallback.idl:
48109         * Modules/webdatabase/DatabaseSync.idl:
48110         * Modules/webdatabase/SQLError.idl:
48111         * Modules/webdatabase/SQLException.idl:
48112         * Modules/webdatabase/SQLResultSet.idl:
48113         * Modules/webdatabase/SQLResultSetRowList.idl:
48114         * Modules/webdatabase/SQLStatementCallback.idl:
48115         * Modules/webdatabase/SQLStatementErrorCallback.idl:
48116         * Modules/webdatabase/SQLTransaction.idl:
48117         * Modules/webdatabase/SQLTransactionCallback.idl:
48118         * Modules/webdatabase/SQLTransactionErrorCallback.idl:
48119         * Modules/webdatabase/SQLTransactionSync.idl:
48120         * Modules/webdatabase/SQLTransactionSyncCallback.idl:
48121         * Modules/webdatabase/WorkerContextWebDatabase.idl:
48122         * Modules/websockets/CloseEvent.idl:
48123         * Modules/websockets/DOMWindowWebSocket.idl:
48124         * Modules/websockets/WebSocket.idl:
48125         * Modules/websockets/WorkerContextWebSocket.idl:
48126         * bindings/scripts/test/TestCallback.idl:
48127         * bindings/scripts/test/TestCustomNamedGetter.idl:
48128         * bindings/scripts/test/TestDomainSecurity.idl:
48129         * bindings/scripts/test/TestEventConstructor.idl:
48130         * bindings/scripts/test/TestEventTarget.idl:
48131         * bindings/scripts/test/TestInterface.idl:
48132         * bindings/scripts/test/TestNamedConstructor.idl:
48133         * bindings/scripts/test/TestNode.idl:
48134         * bindings/scripts/test/TestObj.idl:
48135         * bindings/scripts/test/TestSerializedScriptValueInterface.idl:
48136         * bindings/scripts/test/TestSupplemental.idl:
48137         * bindings/scripts/test/TestTypedArray.idl:
48138         * css/CSSCharsetRule.idl:
48139         * css/CSSImportRule.idl:
48140         * css/CSSPageRule.idl:
48141         * css/CSSRule.idl:
48142         * css/CSSRuleList.idl:
48143         * css/CSSStyleDeclaration.idl:
48144         * css/CSSStyleRule.idl:
48145         * css/CSSStyleSheet.idl:
48146         * css/CSSUnknownRule.idl:
48147         * css/CSSValue.idl:
48148         * css/CSSValueList.idl:
48149         * css/MediaList.idl:
48150         * css/MediaQueryListListener.idl:
48151         * css/StyleMedia.idl:
48152         * css/StyleSheet.idl:
48153         * css/StyleSheetList.idl:
48154         * css/WebKitCSSFilterValue.idl:
48155         * css/WebKitCSSKeyframesRule.idl:
48156         * css/WebKitCSSMatrix.idl:
48157         * css/WebKitCSSRegionRule.idl:
48158         * css/WebKitCSSTransformValue.idl:
48159         * dom/Attr.idl:
48160         * dom/BeforeLoadEvent.idl:
48161         * dom/CharacterData.idl:
48162         * dom/ClientRectList.idl:
48163         * dom/Clipboard.idl:
48164         * dom/CustomEvent.idl:
48165         * dom/DOMCoreException.idl:
48166         * dom/DOMImplementation.idl:
48167         * dom/DOMNamedFlowCollection.idl:
48168         * dom/DOMStringList.idl:
48169         * dom/DOMStringMap.idl:
48170         * dom/DataTransferItem.idl:
48171         * dom/DataTransferItemList.idl:
48172         * dom/DeviceMotionEvent.idl:
48173         * dom/DeviceOrientationEvent.idl:
48174         * dom/Document.idl:
48175         * dom/DocumentType.idl:
48176         * dom/Element.idl:
48177         * dom/Entity.idl:
48178         * dom/ErrorEvent.idl:
48179         * dom/Event.idl:
48180         * dom/EventException.idl:
48181         * dom/EventListener.idl:
48182         * dom/EventTarget.idl:
48183         * dom/HashChangeEvent.idl:
48184         * dom/MessageChannel.idl:
48185         * dom/MessageEvent.idl:
48186         * dom/MessagePort.idl:
48187         * dom/MouseEvent.idl:
48188         * dom/MutationCallback.idl:
48189         * dom/MutationObserver.idl:
48190         * dom/MutationRecord.idl:
48191         * dom/NamedNodeMap.idl:
48192         * dom/Node.idl:
48193         * dom/NodeFilter.idl:
48194         * dom/NodeIterator.idl:
48195         * dom/NodeList.idl:
48196         * dom/Notation.idl:
48197         * dom/OverflowEvent.idl:
48198         * dom/PageTransitionEvent.idl:
48199         * dom/PopStateEvent.idl:
48200         * dom/ProcessingInstruction.idl:
48201         * dom/ProgressEvent.idl:
48202         * dom/PropertyNodeList.idl:
48203         * dom/RangeException.idl:
48204         * dom/RequestAnimationFrameCallback.idl:
48205         * dom/ShadowRoot.idl:
48206         * dom/StringCallback.idl:
48207         * dom/Touch.idl:
48208         * dom/TouchEvent.idl:
48209         * dom/TouchList.idl:
48210         * dom/TreeWalker.idl:
48211         * dom/WebKitAnimationEvent.idl:
48212         * dom/WebKitNamedFlow.idl:
48213         * dom/WebKitTransitionEvent.idl:
48214         * editing/DOMTransaction.idl:
48215         * editing/UndoManager.idl:
48216         * fileapi/Blob.idl:
48217         * fileapi/File.idl:
48218         * fileapi/FileError.idl:
48219         * fileapi/FileException.idl:
48220         * fileapi/FileList.idl:
48221         * fileapi/FileReader.idl:
48222         * fileapi/FileReaderSync.idl:
48223         * html/DOMFormData.idl:
48224         * html/DOMSettableTokenList.idl:
48225         * html/DOMTokenList.idl:
48226         * html/DOMURL.idl:
48227         * html/HTMLAllCollection.idl:
48228         * html/HTMLAnchorElement.idl:
48229         * html/HTMLAppletElement.idl:
48230         * html/HTMLAreaElement.idl:
48231         * html/HTMLAudioElement.idl:
48232         * html/HTMLBRElement.idl:
48233         * html/HTMLBaseElement.idl:
48234         * html/HTMLBaseFontElement.idl:
48235         * html/HTMLBodyElement.idl:
48236         * html/HTMLButtonElement.idl:
48237         * html/HTMLCanvasElement.idl:
48238         * html/HTMLCollection.idl:
48239         * html/HTMLDListElement.idl:
48240         * html/HTMLDataListElement.idl:
48241         * html/HTMLDetailsElement.idl:
48242         * html/HTMLDialogElement.idl:
48243         * html/HTMLDirectoryElement.idl:
48244         * html/HTMLDivElement.idl:
48245         * html/HTMLDocument.idl:
48246         * html/HTMLElement.idl:
48247         * html/HTMLEmbedElement.idl:
48248         * html/HTMLFieldSetElement.idl:
48249         * html/HTMLFontElement.idl:
48250         * html/HTMLFormElement.idl:
48251         * html/HTMLFrameElement.idl:
48252         * html/HTMLFrameSetElement.idl:
48253         * html/HTMLHRElement.idl:
48254         * html/HTMLHeadElement.idl:
48255         * html/HTMLHeadingElement.idl:
48256         * html/HTMLHtmlElement.idl:
48257         * html/HTMLIFrameElement.idl:
48258         * html/HTMLImageElement.idl:
48259         * html/HTMLInputElement.idl:
48260         * html/HTMLIntentElement.idl:
48261         * html/HTMLKeygenElement.idl:
48262         * html/HTMLLIElement.idl:
48263         * html/HTMLLabelElement.idl:
48264         * html/HTMLLegendElement.idl:
48265         * html/HTMLLinkElement.idl:
48266         * html/HTMLMapElement.idl:
48267         * html/HTMLMarqueeElement.idl:
48268         * html/HTMLMediaElement.idl:
48269         * html/HTMLMenuElement.idl:
48270         * html/HTMLMetaElement.idl:
48271         * html/HTMLMeterElement.idl:
48272         * html/HTMLModElement.idl:
48273         * html/HTMLOListElement.idl:
48274         * html/HTMLObjectElement.idl:
48275         * html/HTMLOptGroupElement.idl:
48276         * html/HTMLOptionElement.idl:
48277         * html/HTMLOptionsCollection.idl:
48278         * html/HTMLOutputElement.idl:
48279         * html/HTMLParagraphElement.idl:
48280         * html/HTMLParamElement.idl:
48281         * html/HTMLPreElement.idl:
48282         * html/HTMLProgressElement.idl:
48283         * html/HTMLPropertiesCollection.idl:
48284         * html/HTMLQuoteElement.idl:
48285         * html/HTMLScriptElement.idl:
48286         * html/HTMLSelectElement.idl:
48287         * html/HTMLSourceElement.idl:
48288         * html/HTMLStyleElement.idl:
48289         * html/HTMLTableCaptionElement.idl:
48290         * html/HTMLTableCellElement.idl:
48291         * html/HTMLTableColElement.idl:
48292         * html/HTMLTableElement.idl:
48293         * html/HTMLTableRowElement.idl:
48294         * html/HTMLTableSectionElement.idl:
48295         * html/HTMLTextAreaElement.idl:
48296         * html/HTMLTitleElement.idl:
48297         * html/HTMLTrackElement.idl:
48298         * html/HTMLUListElement.idl:
48299         * html/HTMLVideoElement.idl:
48300         * html/ImageData.idl:
48301         * html/MediaController.idl:
48302         * html/MediaError.idl:
48303         * html/MediaKeyError.idl:
48304         * html/MediaKeyEvent.idl:
48305         * html/MicroDataItemValue.idl:
48306         * html/RadioNodeList.idl:
48307         * html/TimeRanges.idl:
48308         * html/ValidityState.idl:
48309         * html/VoidCallback.idl:
48310         * html/canvas/ArrayBuffer.idl:
48311         * html/canvas/ArrayBufferView.idl:
48312         * html/canvas/CanvasRenderingContext.idl:
48313         * html/canvas/CanvasRenderingContext2D.idl:
48314         * html/canvas/DataView.idl:
48315         * html/canvas/EXTTextureFilterAnisotropic.idl:
48316         * html/canvas/Float32Array.idl:
48317         * html/canvas/Float64Array.idl:
48318         * html/canvas/Int16Array.idl:
48319         * html/canvas/Int32Array.idl:
48320         * html/canvas/Int8Array.idl:
48321         * html/canvas/OESStandardDerivatives.idl:
48322         * html/canvas/OESTextureFloat.idl:
48323         * html/canvas/OESVertexArrayObject.idl:
48324         * html/canvas/Uint16Array.idl:
48325         * html/canvas/Uint32Array.idl:
48326         * html/canvas/Uint8Array.idl:
48327         * html/canvas/Uint8ClampedArray.idl:
48328         * html/canvas/WebGLActiveInfo.idl:
48329         * html/canvas/WebGLBuffer.idl:
48330         * html/canvas/WebGLCompressedTextureS3TC.idl:
48331         * html/canvas/WebGLContextAttributes.idl:
48332         * html/canvas/WebGLContextEvent.idl:
48333         * html/canvas/WebGLDebugRendererInfo.idl:
48334         * html/canvas/WebGLDebugShaders.idl:
48335         * html/canvas/WebGLDepthTexture.idl:
48336         * html/canvas/WebGLFramebuffer.idl:
48337         * html/canvas/WebGLLoseContext.idl:
48338         * html/canvas/WebGLProgram.idl:
48339         * html/canvas/WebGLRenderbuffer.idl:
48340         * html/canvas/WebGLRenderingContext.idl:
48341         * html/canvas/WebGLShader.idl:
48342         * html/canvas/WebGLShaderPrecisionFormat.idl:
48343         * html/canvas/WebGLTexture.idl:
48344         * html/canvas/WebGLUniformLocation.idl:
48345         * html/canvas/WebGLVertexArrayObjectOES.idl:
48346         * html/shadow/HTMLContentElement.idl:
48347         * html/shadow/HTMLShadowElement.idl:
48348         * html/track/TextTrack.idl:
48349         * html/track/TextTrackCue.idl:
48350         * html/track/TextTrackCueList.idl:
48351         * html/track/TextTrackList.idl:
48352         * html/track/TrackEvent.idl:
48353         * inspector/InjectedScriptHost.idl:
48354         * inspector/InspectorFrontendHost.idl:
48355         * inspector/JavaScriptCallFrame.idl:
48356         * inspector/ScriptProfile.idl:
48357         * inspector/ScriptProfileNode.idl:
48358         * loader/appcache/DOMApplicationCache.idl:
48359         * page/AbstractView.idl:
48360         * page/BarInfo.idl:
48361         * page/Console.idl:
48362         * page/Coordinates.idl:
48363         * page/Crypto.idl:
48364         * page/DOMSecurityPolicy.idl:
48365         * page/DOMSelection.idl:
48366         * page/DOMWindow.idl:
48367         * page/DOMWindowPagePopup.idl:
48368         * page/EventSource.idl:
48369         * page/History.idl:
48370         * page/Location.idl:
48371         * page/MemoryInfo.idl:
48372         * page/Navigator.idl:
48373         * page/PagePopupController.idl:
48374         * page/Performance.idl:
48375         * page/PerformanceEntry.idl:
48376         * page/PerformanceEntryList.idl:
48377         * page/PerformanceNavigation.idl:
48378         * page/PerformanceResourceTiming.idl:
48379         * page/PerformanceTiming.idl:
48380         * page/Screen.idl:
48381         * page/SpeechInputEvent.idl:
48382         * page/SpeechInputResult.idl:
48383         * page/SpeechInputResultList.idl:
48384         * page/WebKitAnimation.idl:
48385         * page/WebKitAnimationList.idl:
48386         * page/WebKitPoint.idl:
48387         * page/WorkerNavigator.idl:
48388         * plugins/DOMMimeType.idl:
48389         * plugins/DOMMimeTypeArray.idl:
48390         * plugins/DOMPlugin.idl:
48391         * plugins/DOMPluginArray.idl:
48392         * storage/Storage.idl:
48393         * storage/StorageEvent.idl:
48394         * svg/ElementTimeControl.idl:
48395         * svg/SVGAElement.idl:
48396         * svg/SVGAltGlyphDefElement.idl:
48397         * svg/SVGAltGlyphElement.idl:
48398         * svg/SVGAltGlyphItemElement.idl:
48399         * svg/SVGAngle.idl:
48400         * svg/SVGAnimateColorElement.idl:
48401         * svg/SVGAnimateElement.idl:
48402         * svg/SVGAnimateMotionElement.idl:
48403         * svg/SVGAnimateTransformElement.idl:
48404         * svg/SVGAnimatedAngle.idl:
48405         * svg/SVGAnimatedBoolean.idl:
48406         * svg/SVGAnimatedEnumeration.idl:
48407         * svg/SVGAnimatedInteger.idl:
48408         * svg/SVGAnimatedLength.idl:
48409         * svg/SVGAnimatedLengthList.idl:
48410         * svg/SVGAnimatedNumber.idl:
48411         * svg/SVGAnimatedNumberList.idl:
48412         * svg/SVGAnimatedPreserveAspectRatio.idl:
48413         * svg/SVGAnimatedRect.idl:
48414         * svg/SVGAnimatedString.idl:
48415         * svg/SVGAnimatedTransformList.idl:
48416         * svg/SVGAnimationElement.idl:
48417         * svg/SVGCircleElement.idl:
48418         * svg/SVGClipPathElement.idl:
48419         * svg/SVGColor.idl:
48420         * svg/SVGComponentTransferFunctionElement.idl:
48421         * svg/SVGCursorElement.idl:
48422         * svg/SVGDefsElement.idl:
48423         * svg/SVGDescElement.idl:
48424         * svg/SVGDocument.idl:
48425         * svg/SVGElement.idl:
48426         * svg/SVGElementInstance.idl:
48427         * svg/SVGElementInstanceList.idl:
48428         * svg/SVGEllipseElement.idl:
48429         * svg/SVGException.idl:
48430         * svg/SVGExternalResourcesRequired.idl:
48431         * svg/SVGFEBlendElement.idl:
48432         * svg/SVGFEColorMatrixElement.idl:
48433         * svg/SVGFEComponentTransferElement.idl:
48434         * svg/SVGFECompositeElement.idl:
48435         * svg/SVGFEConvolveMatrixElement.idl:
48436         * svg/SVGFEDiffuseLightingElement.idl:
48437         * svg/SVGFEDisplacementMapElement.idl:
48438         * svg/SVGFEDistantLightElement.idl:
48439         * svg/SVGFEDropShadowElement.idl:
48440         * svg/SVGFEFloodElement.idl:
48441         * svg/SVGFEFuncAElement.idl:
48442         * svg/SVGFEFuncBElement.idl:
48443         * svg/SVGFEFuncGElement.idl:
48444         * svg/SVGFEFuncRElement.idl:
48445         * svg/SVGFEGaussianBlurElement.idl:
48446         * svg/SVGFEImageElement.idl:
48447         * svg/SVGFEMergeElement.idl:
48448         * svg/SVGFEMergeNodeElement.idl:
48449         * svg/SVGFEMorphologyElement.idl:
48450         * svg/SVGFEOffsetElement.idl:
48451         * svg/SVGFEPointLightElement.idl:
48452         * svg/SVGFESpecularLightingElement.idl:
48453         * svg/SVGFESpotLightElement.idl:
48454         * svg/SVGFETileElement.idl:
48455         * svg/SVGFETurbulenceElement.idl:
48456         * svg/SVGFilterElement.idl:
48457         * svg/SVGFilterPrimitiveStandardAttributes.idl:
48458         * svg/SVGFitToViewBox.idl:
48459         * svg/SVGFontElement.idl:
48460         * svg/SVGFontFaceElement.idl:
48461         * svg/SVGFontFaceFormatElement.idl:
48462         * svg/SVGFontFaceNameElement.idl:
48463         * svg/SVGFontFaceSrcElement.idl:
48464         * svg/SVGFontFaceUriElement.idl:
48465         * svg/SVGForeignObjectElement.idl:
48466         * svg/SVGGElement.idl:
48467         * svg/SVGGlyphElement.idl:
48468         * svg/SVGGlyphRefElement.idl:
48469         * svg/SVGGradientElement.idl:
48470         * svg/SVGHKernElement.idl:
48471         * svg/SVGImageElement.idl:
48472         * svg/SVGLangSpace.idl:
48473         * svg/SVGLength.idl:
48474         * svg/SVGLengthList.idl:
48475         * svg/SVGLineElement.idl:
48476         * svg/SVGLinearGradientElement.idl:
48477         * svg/SVGLocatable.idl:
48478         * svg/SVGMPathElement.idl:
48479         * svg/SVGMarkerElement.idl:
48480         * svg/SVGMaskElement.idl:
48481         * svg/SVGMatrix.idl:
48482         * svg/SVGMetadataElement.idl:
48483         * svg/SVGMissingGlyphElement.idl:
48484         * svg/SVGNumber.idl:
48485         * svg/SVGNumberList.idl:
48486         * svg/SVGPaint.idl:
48487         * svg/SVGPathElement.idl:
48488         * svg/SVGPathSeg.idl:
48489         * svg/SVGPathSegArcAbs.idl:
48490         * svg/SVGPathSegArcRel.idl:
48491         * svg/SVGPathSegClosePath.idl:
48492         * svg/SVGPathSegCurvetoCubicAbs.idl:
48493         * svg/SVGPathSegCurvetoCubicRel.idl:
48494         * svg/SVGPathSegCurvetoCubicSmoothAbs.idl:
48495         * svg/SVGPathSegCurvetoCubicSmoothRel.idl:
48496         * svg/SVGPathSegCurvetoQuadraticAbs.idl:
48497         * svg/SVGPathSegCurvetoQuadraticRel.idl:
48498         * svg/SVGPathSegCurvetoQuadraticSmoothAbs.idl:
48499         * svg/SVGPathSegCurvetoQuadraticSmoothRel.idl:
48500         * svg/SVGPathSegLinetoAbs.idl:
48501         * svg/SVGPathSegLinetoHorizontalAbs.idl:
48502         * svg/SVGPathSegLinetoHorizontalRel.idl:
48503         * svg/SVGPathSegLinetoRel.idl:
48504         * svg/SVGPathSegLinetoVerticalAbs.idl:
48505         * svg/SVGPathSegLinetoVerticalRel.idl:
48506         * svg/SVGPathSegList.idl:
48507         * svg/SVGPathSegMovetoAbs.idl:
48508         * svg/SVGPathSegMovetoRel.idl:
48509         * svg/SVGPatternElement.idl:
48510         * svg/SVGPoint.idl:
48511         * svg/SVGPointList.idl:
48512         * svg/SVGPolygonElement.idl:
48513         * svg/SVGPolylineElement.idl:
48514         * svg/SVGPreserveAspectRatio.idl:
48515         * svg/SVGRadialGradientElement.idl:
48516         * svg/SVGRect.idl:
48517         * svg/SVGRectElement.idl:
48518         * svg/SVGRenderingIntent.idl:
48519         * svg/SVGSVGElement.idl:
48520         * svg/SVGScriptElement.idl:
48521         * svg/SVGSetElement.idl:
48522         * svg/SVGStopElement.idl:
48523         * svg/SVGStringList.idl:
48524         * svg/SVGStylable.idl:
48525         * svg/SVGStyleElement.idl:
48526         * svg/SVGSwitchElement.idl:
48527         * svg/SVGSymbolElement.idl:
48528         * svg/SVGTRefElement.idl:
48529         * svg/SVGTSpanElement.idl:
48530         * svg/SVGTests.idl:
48531         * svg/SVGTextContentElement.idl:
48532         * svg/SVGTextElement.idl:
48533         * svg/SVGTextPathElement.idl:
48534         * svg/SVGTextPositioningElement.idl:
48535         * svg/SVGTitleElement.idl:
48536         * svg/SVGTransform.idl:
48537         * svg/SVGTransformList.idl:
48538         * svg/SVGTransformable.idl:
48539         * svg/SVGURIReference.idl:
48540         * svg/SVGUnitTypes.idl:
48541         * svg/SVGUseElement.idl:
48542         * svg/SVGVKernElement.idl:
48543         * svg/SVGViewElement.idl:
48544         * svg/SVGViewSpec.idl:
48545         * svg/SVGZoomAndPan.idl:
48546         * svg/SVGZoomEvent.idl:
48547         * testing/InternalSettings.idl:
48548         * testing/Internals.idl:
48549         * testing/MallocStatistics.idl:
48550         * workers/AbstractWorker.idl:
48551         * workers/DedicatedWorkerContext.idl:
48552         * workers/SharedWorker.idl:
48553         * workers/SharedWorkerContext.idl:
48554         * workers/Worker.idl:
48555         * workers/WorkerContext.idl:
48556         * workers/WorkerLocation.idl:
48557         * xml/DOMParser.idl:
48558         * xml/XMLHttpRequest.idl:
48559         * xml/XMLHttpRequestException.idl:
48560         * xml/XMLHttpRequestProgressEvent.idl:
48561         * xml/XMLHttpRequestUpload.idl:
48562         * xml/XMLSerializer.idl:
48563         * xml/XPathEvaluator.idl:
48564         * xml/XPathException.idl:
48565         * xml/XPathNSResolver.idl:
48566         * xml/XPathResult.idl:
48567         * xml/XSLTProcessor.idl:
48568         Moved extended attributes.
48569
48570 2012-10-12  Pavel Feldman  <pfeldman@chromium.org>
48571
48572         Web Inspector: never expand global scope automatically
48573         https://bugs.webkit.org/show_bug.cgi?id=99159
48574
48575         Reviewed by Vsevolod Vlasov.
48576
48577         Otherwise, stepping is slow.
48578
48579         * inspector/front-end/ScopeChainSidebarPane.js:
48580         (WebInspector.ScopeChainSidebarPane.prototype.update):
48581
48582 2012-10-10  Vsevolod Vlasov  <vsevik@chromium.org>
48583
48584         Web Inspector: Refactor UISourceCode, make it possible to distinguish working copy changes/commits from formatting.
48585         https://bugs.webkit.org/show_bug.cgi?id=98911
48586
48587         Reviewed by Pavel Feldman.
48588
48589         ContentChanged was dispatched both when working copy was committed and UISourceCode was formatted before.
48590         WorkingCopyChanged event was dispatched when working copy was set.
48591         Now there are three explicit events: WorkingCopyChanged, WorkingCopyCommitted, FormattedChanged.
48592         No events are dispatched now during revisions restoring.
48593         Reverting to revisions is now implemented based on the working copy editing.
48594
48595         * inspector/front-end/JavaScriptSourceFrame.js:
48596         (WebInspector.JavaScriptSourceFrame):
48597         (WebInspector.JavaScriptSourceFrame.prototype._onFormattedChanged):
48598         (WebInspector.JavaScriptSourceFrame.prototype._onWorkingCopyChanged):
48599         (WebInspector.JavaScriptSourceFrame.prototype._onWorkingCopyCommitted):
48600         (WebInspector.JavaScriptSourceFrame.prototype._innerSetContent):
48601         (WebInspector.JavaScriptSourceFrame.prototype.onTextChanged):
48602         * inspector/front-end/NavigatorView.js:
48603         (WebInspector.NavigatorView.prototype._uiSourceCodeWorkingCopyCommitted):
48604         (WebInspector.NavigatorView.prototype._uiSourceCodeFormattedChanged):
48605         (WebInspector.NavigatorView.prototype._addUISourceCodeListeners):
48606         (WebInspector.NavigatorView.prototype._removeUISourceCodeListeners):
48607         * inspector/front-end/TabbedEditorContainer.js:
48608         (WebInspector.TabbedEditorContainer.prototype._addUISourceCodeListeners):
48609         (WebInspector.TabbedEditorContainer.prototype._removeUISourceCodeListeners):
48610         (WebInspector.TabbedEditorContainer.prototype._uiSourceCodeWorkingCopyCommitted):
48611         (WebInspector.TabbedEditorContainer.prototype._uiSourceCodeFormattedChanged):
48612         * inspector/front-end/UISourceCode.js:
48613         (WebInspector.UISourceCode):
48614         (WebInspector.UISourceCode.prototype._commitContent):
48615         (WebInspector.UISourceCode.prototype.addRevision):
48616         (WebInspector.UISourceCode.prototype._restoreRevisionHistory):
48617         (WebInspector.UISourceCode.prototype.revertToOriginal):
48618         (WebInspector.UISourceCode.prototype.revertAndClearHistory):
48619         (WebInspector.UISourceCode.prototype.setWorkingCopy):
48620         (WebInspector.UISourceCode.prototype.commitWorkingCopy):
48621         (WebInspector.UISourceCode.prototype.setFormatted.didGetContent.formattedChanged):
48622         (WebInspector.UISourceCode.prototype.setFormatted.didGetContent):
48623         (WebInspector.UISourceCode.prototype.setFormatted):
48624         (WebInspector.Revision.prototype.revertToThis):
48625         * inspector/front-end/UISourceCodeFrame.js:
48626         (WebInspector.UISourceCodeFrame):
48627         (WebInspector.UISourceCodeFrame.prototype.onTextChanged):
48628         (WebInspector.UISourceCodeFrame.prototype._onFormattedChanged):
48629         (WebInspector.UISourceCodeFrame.prototype._onWorkingCopyChanged):
48630         (WebInspector.UISourceCodeFrame.prototype._onWorkingCopyCommitted):
48631         (WebInspector.UISourceCodeFrame.prototype._innerSetContent):
48632
48633 2012-10-12  Balazs Kelemen  <kbalazs@webkit.org>
48634
48635         [WK2] Serialization of Resource[Request,Response,Error] should be shared across ports
48636         https://bugs.webkit.org/show_bug.cgi?id=90142
48637
48638         Reviewed by Simon Hausmann.
48639
48640         Added a setter for the certificate of ResourceError.
48641
48642         No change in behavior so no new tests.
48643
48644         * platform/network/cf/ResourceError.h:
48645         (ResourceError):
48646         * platform/network/cf/ResourceErrorCF.cpp:
48647         (WebCore):
48648         (WebCore::ResourceError::setCertificate):
48649
48650 2012-10-12  MORITA Hajime  <morrita@google.com>
48651
48652         [V8] PerContextEnabled methods should be installed when the constructor is created
48653         https://bugs.webkit.org/show_bug.cgi?id=99129
48654
48655         Reviewed by Kentaro Hara.
48656
48657         Before this change, generated installPerContextProperties() method
48658         injected both per-context attributes and functions, and functions
48659         were injected into the prototye object.  This means that the
48660         functions are injected into the prototype repeatedly for each
48661         intance creation.  This injection can be happened only once per
48662         prototype object, which is clearer and is faster.
48663
48664         This change introduces installPerContextPrototypeProperties()
48665         generated method, which is designed to be called for each time when the prototype
48666         object is created.
48667
48668         To do that, WrapperTypeInfo is extended to hold an additional
48669         function pointer to an installPerContextPrototypeProperties()
48670         implementation so that we call it from V8PerContextData::constructorForTypeSlowCase(),
48671         where the prototype instance is created.
48672
48673         Other changes:
48674         - Added some modification to pass around the parameter to constructorForTypeSlowCase().
48675         - installPerContextProperties() are now always generated for simplicity. Empty implementations are inlined thus
48676           no speed penalty.
48677
48678         No new tests. Covered by existing tests.
48679
48680         * Modules/notifications/NotificationCenter.cpp:
48681         (WebCore::NotificationCenter::document):
48682         * Modules/notifications/NotificationCenter.h:
48683         (NotificationCenter):
48684         * bindings/scripts/CodeGeneratorV8.pm:
48685         (GenerateHeader):
48686         (GenerateConstructorGetter):
48687         (GenerateNamedConstructorCallback):
48688         (GenerateImplementation): Extracted per-context function additions to new installPerContextPrototypeProperties() function.
48689         (GenerateToV8Converters):
48690         * bindings/scripts/test/V8/V8Float64Array.cpp:
48691         (WebCore):
48692         (WebCore::V8Float64Array::wrapSlow):
48693         * bindings/scripts/test/V8/V8Float64Array.h:
48694         (WebCore::V8Float64Array::installPerContextProperties):
48695         (WebCore::V8Float64Array::installPerContextPrototypeProperties):
48696         * bindings/scripts/test/V8/V8TestActiveDOMObject.cpp:
48697         (WebCore):
48698         (WebCore::V8TestActiveDOMObject::wrapSlow):
48699         * bindings/scripts/test/V8/V8TestActiveDOMObject.h:
48700         (WebCore::V8TestActiveDOMObject::installPerContextProperties):
48701         (WebCore::V8TestActiveDOMObject::installPerContextPrototypeProperties):
48702         * bindings/scripts/test/V8/V8TestCustomNamedGetter.cpp:
48703         (WebCore):
48704         (WebCore::V8TestCustomNamedGetter::wrapSlow):
48705         * bindings/scripts/test/V8/V8TestCustomNamedGetter.h:
48706         (WebCore::V8TestCustomNamedGetter::installPerContextProperties):
48707         (WebCore::V8TestCustomNamedGetter::installPerContextPrototypeProperties):
48708         * bindings/scripts/test/V8/V8TestEventConstructor.cpp:
48709         (WebCore):
48710         (WebCore::V8TestEventConstructor::wrapSlow):
48711         * bindings/scripts/test/V8/V8TestEventConstructor.h:
48712         (WebCore::V8TestEventConstructor::installPerContextProperties):
48713         (WebCore::V8TestEventConstructor::installPerContextPrototypeProperties):
48714         * bindings/scripts/test/V8/V8TestEventTarget.cpp:
48715         (WebCore):
48716         (WebCore::V8TestEventTarget::wrapSlow):
48717         * bindings/scripts/test/V8/V8TestEventTarget.h:
48718         (WebCore::V8TestEventTarget::installPerContextProperties):
48719         (WebCore::V8TestEventTarget::installPerContextPrototypeProperties):
48720         * bindings/scripts/test/V8/V8TestException.cpp:
48721         (WebCore):
48722         (WebCore::V8TestException::wrapSlow):
48723         * bindings/scripts/test/V8/V8TestException.h:
48724         (WebCore::V8TestException::installPerContextProperties):
48725         (WebCore::V8TestException::installPerContextPrototypeProperties):
48726         * bindings/scripts/test/V8/V8TestInterface.cpp:
48727         (WebCore):
48728         (WebCore::V8TestInterface::wrapSlow):
48729         * bindings/scripts/test/V8/V8TestInterface.h:
48730         (WebCore::V8TestInterface::installPerContextProperties):
48731         (WebCore::V8TestInterface::installPerContextPrototypeProperties):
48732         * bindings/scripts/test/V8/V8TestMediaQueryListListener.cpp:
48733         (WebCore):
48734         (WebCore::V8TestMediaQueryListListener::wrapSlow):
48735         * bindings/scripts/test/V8/V8TestMediaQueryListListener.h:
48736         (WebCore::V8TestMediaQueryListListener::installPerContextProperties):
48737         (WebCore::V8TestMediaQueryListListener::installPerContextPrototypeProperties):
48738         * bindings/scripts/test/V8/V8TestNamedConstructor.cpp:
48739         (WebCore):
48740         (WebCore::V8TestNamedConstructor::wrapSlow):
48741         * bindings/scripts/test/V8/V8TestNamedConstructor.h:
48742         (WebCore::V8TestNamedConstructor::installPerContextProperties):
48743         (WebCore::V8TestNamedConstructor::installPerContextPrototypeProperties):
48744         * bindings/scripts/test/V8/V8TestNode.cpp:
48745         (WebCore):
48746         (WebCore::V8TestNode::wrapSlow):
48747         * bindings/scripts/test/V8/V8TestNode.h:
48748         (WebCore::V8TestNode::installPerContextProperties):
48749         (WebCore::V8TestNode::installPerContextPrototypeProperties):
48750         * bindings/scripts/test/V8/V8TestSerializedScriptValueInterface.cpp:
48751         (WebCore):
48752         (WebCore::V8TestSerializedScriptValueInterface::wrapSlow):
48753         * bindings/scripts/test/V8/V8TestSerializedScriptValueInterface.h:
48754         (WebCore::V8TestSerializedScriptValueInterface::installPerContextProperties):
48755         (WebCore::V8TestSerializedScriptValueInterface::installPerContextPrototypeProperties):
48756         * bindings/v8/NPV8Object.cpp:
48757         (WebCore::npObjectTypeInfo):
48758         * bindings/v8/V8DOMWindowShell.cpp:
48759         (WebCore::V8DOMWindowShell::installDOMWindow):
48760         * bindings/v8/V8DOMWrapper.cpp:
48761         (WebCore::V8DOMWrapper::instantiateV8Object):
48762         * bindings/v8/V8PerContextData.cpp:
48763         (WebCore::V8PerContextData::createWrapperFromCacheSlowCase):
48764         (WebCore::V8PerContextData::constructorForTypeSlowCase): Now invokes installPerContextPrototypeProperties()
48765         * bindings/v8/V8PerContextData.h:
48766         (WebCore::V8PerContextData::createWrapperFromCache):
48767         (WebCore::V8PerContextData::constructorForType):
48768         (V8PerContextData):
48769         * bindings/v8/WorkerContextExecutionProxy.cpp:
48770         (WebCore::WorkerContextExecutionProxy::initializeIfNeeded):
48771         * bindings/v8/WrapperTypeInfo.h:
48772         (WebCore):
48773         (WebCore::WrapperTypeInfo::installPerContextPrototypeProperties): Added.
48774         (WrapperTypeInfo):
48775         * bindings/v8/custom/V8HTMLImageElementConstructor.cpp:
48776         (WebCore):
48777
48778 2012-10-12  Pavel Feldman  <pfeldman@chromium.org>
48779
48780         Web Inspector: Add "goto tab 1,2,3" hotkeys
48781         https://bugs.webkit.org/show_bug.cgi?id=99157
48782
48783         Reviewed by Alexander Pavlov.
48784
48785         Ctrl/Cmd + digit shortcuts should select corresponding tabs
48786
48787         * inspector/front-end/InspectorView.js:
48788         (WebInspector.InspectorView.prototype._keyDown):
48789         (WebInspector.InspectorView.prototype._keyDownInternal):
48790
48791 2012-10-12  Vsevolod Vlasov  <vsevik@chromium.org>
48792
48793         Web Inspector: Extract domain specific editing handling logic from UISourceCode descendants (step 1).
48794         https://bugs.webkit.org/show_bug.cgi?id=98912
48795
48796         Reviewed by Pavel Feldman.
48797
48798         This is the first step that introduces StyleFile and ScriptFile and extracts domain specific editing handling logic.
48799         StyleFile and ScriptFile should listen for the UISourceCode events and process them, this will be done in the next patch.
48800
48801         * inspector/front-end/BreakpointManager.js:
48802         (WebInspector.BreakpointManager.Breakpoint.prototype._updateBreakpoint):
48803         * inspector/front-end/JavaScriptSource.js:
48804         * inspector/front-end/JavaScriptSourceFrame.js:
48805         (WebInspector.JavaScriptSourceFrame):
48806         (WebInspector.JavaScriptSourceFrame.prototype.onTextChanged):
48807         * inspector/front-end/ResourceScriptMapping.js:
48808         (WebInspector.ResourceScriptMapping.prototype.rawLocationToUILocation):
48809         (WebInspector.ResourceScriptMapping.prototype._hasDivergedFromVMChanged):
48810         (WebInspector.ResourceScriptMapping.prototype._bindUISourceCodeToScripts):
48811         (WebInspector.ScriptFile):
48812         (WebInspector.ScriptFile.prototype.hasDivergedFromVM):
48813         (WebInspector.ScriptFile.prototype.isDivergingFromVM):
48814         (WebInspector.ScriptFile.prototype.addEventListener):
48815         (WebInspector.ScriptFile.prototype.removeEventListener):
48816         (WebInspector.ResourceScriptFile):
48817         (WebInspector.ResourceScriptFile.prototype.workingCopyCommitted):
48818         (WebInspector.ResourceScriptFile.prototype.workingCopyChanged):
48819         (WebInspector.ResourceScriptFile.prototype.fireHasDivergedFromVMChanged):
48820         (WebInspector.ResourceScriptFile.prototype.hasDivergedFromVM):
48821         (WebInspector.ResourceScriptFile.prototype.isDivergingFromVM):
48822         * inspector/front-end/ScriptSnippetModel.js:
48823         (WebInspector.ScriptSnippetModel.prototype._addScriptSnippet):
48824         (WebInspector.SnippetScriptFile):
48825         (WebInspector.SnippetScriptFile.prototype.hasDivergedFromVM):
48826         (WebInspector.SnippetScriptFile.prototype.setHasDivergedFromVM):
48827         (WebInspector.SnippetScriptFile.prototype.isDivergingFromVM):
48828         (WebInspector.SnippetScriptFile.prototype.setIsDivergingFromVM):
48829         (WebInspector.SnippetScriptFile.prototype.workingCopyCommitted):
48830         (WebInspector.SnippetScriptFile.prototype.workingCopyChanged):
48831         * inspector/front-end/ScriptsPanel.js:
48832         (WebInspector.ScriptsPanel.prototype._revealExecutionLine):
48833         * inspector/front-end/StyleSource.js:
48834         * inspector/front-end/StylesSourceMapping.js:
48835         (WebInspector.StylesSourceMapping.prototype._uiSourceCodeAddedToWorkspace):
48836         (WebInspector.StylesSourceMapping.prototype._addUISourceCode):
48837         (WebInspector.StyleFile):
48838         (WebInspector.StyleFile.prototype.workingCopyCommitted):
48839         (WebInspector.StyleFile.prototype.workingCopyChanged):
48840         (WebInspector.StyleFile.prototype._callOrSetTimeout):
48841         (WebInspector.StyleFile.prototype._commitIncrementalEdit):
48842         (WebInspector.StyleFile.prototype._clearIncrementalUpdateTimer):
48843         * inspector/front-end/UISourceCode.js:
48844         (WebInspector.UISourceCode.prototype.scriptFile):
48845         (WebInspector.UISourceCode.prototype.setScriptFile):
48846         (WebInspector.UISourceCode.prototype.styleFile):
48847         (WebInspector.UISourceCode.prototype.setStyleFile):
48848         (WebInspector.UISourceCode.prototype.setWorkingCopy):
48849         (WebInspector.UISourceCode.prototype.commitWorkingCopy):
48850
48851 2012-10-12  Zeno Albisser  <zeno@webkit.org>
48852
48853         [Qt][WK2] GraphicsSurfaceGLX should keep track of previous GL context.
48854         https://bugs.webkit.org/show_bug.cgi?id=99076
48855
48856         In GraphicsSurfaceGLX/GraphicsSurfacePrivate we create a new
48857         QOpenGLContext for resolving GL methods.
48858         This context is implicitly made current on creation.
48859         Therefore we need to keep track of the previously bound context
48860         and make that one current again after calling create.
48861
48862         Reviewed by Kenneth Rohde Christiansen.
48863
48864         * platform/graphics/surfaces/qt/GraphicsSurfaceGLX.cpp:
48865         (WebCore::GraphicsSurfacePrivate::GraphicsSurfacePrivate):
48866
48867 2012-10-12  Balazs Kelemen  <kbalazs@webkit.org>
48868
48869         Unreviewed, rolling out r130389.
48870         http://trac.webkit.org/changeset/130389
48871         https://bugs.webkit.org/show_bug.cgi?id=98048
48872
48873         It broke chromium
48874
48875         * WebCore.exp.in:
48876         * page/Settings.cpp:
48877         (WebCore::Settings::setAcceleratedCompositingEnabled):
48878         * page/Settings.h:
48879         (WebCore::Settings::setForceCompositingMode):
48880         (WebCore::Settings::forceCompositingMode):
48881
48882 2012-10-12  Vsevolod Vlasov  <vsevik@chromium.org>
48883
48884         Web Inspector: Show request body source in request headers view.
48885         https://bugs.webkit.org/show_bug.cgi?id=99145
48886
48887         Reviewed by Pavel Feldman.
48888
48889         Added view source toggle to query parameters and form data elements.
48890
48891         * inspector/front-end/NetworkPanel.js: fixed queryString getter usage.
48892         (WebInspector.NetworkDataGridNode.prototype._fileName):
48893         (WebInspector.NetworkDataGridNode.NameComparator):
48894         * inspector/front-end/NetworkRequest.js: Extracted queryString getter.
48895         (WebInspector.NetworkRequest.prototype.queryString):
48896         (WebInspector.NetworkRequest.prototype.get queryParameters):
48897         * inspector/front-end/RequestHeadersView.js:
48898         (WebInspector.RequestHeadersView.prototype._refreshQueryString):
48899         (WebInspector.RequestHeadersView.prototype._refreshFormData):
48900         (WebInspector.RequestHeadersView.prototype._populateTreeElementWithSourceText):
48901         extracted common method to populate elememnt with raw source text.
48902         (WebInspector.RequestHeadersView.prototype._refreshParams.toggleViewSource):
48903         (WebInspector.RequestHeadersView.prototype._refreshParams):
48904         (WebInspector.RequestHeadersView.prototype._toggleURLDecoding):
48905         (WebInspector.RequestHeadersView.prototype._refreshHeadersText):
48906         * inspector/front-end/networkPanel.css:A removed redundant raw-form-data style rule.
48907
48908 2012-10-12  Shinya Kawanaka  <shinyak@chromium.org>
48909
48910         Optimzie SelectorCheckingContext memory layout
48911         https://bugs.webkit.org/show_bug.cgi?id=99139
48912
48913         Reviewed by Hajime Morita.
48914
48915         Since VisitedMatchType and PseudoId are both enum, we can make SelectorChecker more compact
48916         if these two fields are continuously placed.
48917
48918         No new tests, no change in behavior.
48919
48920         * css/SelectorChecker.h:
48921         (WebCore::SelectorChecker::SelectorCheckingContext::SelectorCheckingContext):
48922         (SelectorCheckingContext):
48923
48924 2012-10-12  Kenichi Ishibashi  <bashi@chromium.org>
48925
48926         [WebSocket] Add "Cache-Control: no-cache" to handshake request
48927         https://bugs.webkit.org/show_bug.cgi?id=98000
48928
48929         Reviewed by Yuta Kitamura.
48930
48931         Add no-cache headers to opening handshake.
48932         This is for compatibility improvement.
48933         Some proxies rewrite "Connection: upgrade" to "Connection: close"
48934         when a request doesn't contain no-cache headers.
48935
48936         Test: http/tests/websocket/tests/hybi/nocache.html
48937
48938         * Modules/websockets/WebSocketHandshake.cpp:
48939         (WebCore::WebSocketHandshake::clientHandshakeMessage):
48940         (WebCore::WebSocketHandshake::clientHandshakeRequest):
48941
48942 2012-10-11  Andy Estes  <aestes@apple.com>
48943
48944         Add some basic methods and properties to the injected bundle Objective-C DOM API
48945         https://bugs.webkit.org/show_bug.cgi?id=99137
48946
48947         Reviewed by Sam Weinig.
48948
48949         Export needed symbols.
48950
48951         * WebCore.exp.in:
48952
48953 2012-10-11  Rik Cabanier  <cabanier@adobe.com>
48954
48955         Bad copy constructor in StyleRareNonInheritedData
48956         https://bugs.webkit.org/show_bug.cgi?id=98950
48957
48958         Reviewed by Eric Seidel.
48959
48960         Typo in copy constructor caused blendmode to always be the default.
48961
48962         * rendering/style/StyleRareNonInheritedData.cpp:
48963         (WebCore::StyleRareNonInheritedData::StyleRareNonInheritedData):
48964
48965 2012-10-11  Takashi Sakamoto  <tasak@google.com>
48966
48967         [WebKit IDL] remove all module from idl files.
48968         https://bugs.webkit.org/show_bug.cgi?id=99007
48969
48970         Reviewed by Kentaro Hara.
48971
48972         Since current WebIDL spec doesn't support "module", remove
48973         module from all idl files.
48974
48975         No new tests. I ran run-bindings-tests and no error was reported.
48976
48977         * Modules/battery/BatteryManager.idl:
48978         * Modules/battery/NavigatorBattery.idl:
48979         * Modules/filesystem/DOMFileSystem.idl:
48980         * Modules/filesystem/DOMFileSystemSync.idl:
48981         * Modules/filesystem/DOMWindowFileSystem.idl:
48982         * Modules/filesystem/DataTransferItemFileSystem.idl:
48983         * Modules/filesystem/DirectoryEntry.idl:
48984         * Modules/filesystem/DirectoryEntrySync.idl:
48985         * Modules/filesystem/DirectoryReader.idl:
48986         * Modules/filesystem/DirectoryReaderSync.idl:
48987         * Modules/filesystem/EntriesCallback.idl:
48988         * Modules/filesystem/Entry.idl:
48989         * Modules/filesystem/EntryArray.idl:
48990         * Modules/filesystem/EntryArraySync.idl:
48991         * Modules/filesystem/EntryCallback.idl:
48992         * Modules/filesystem/EntrySync.idl:
48993         * Modules/filesystem/ErrorCallback.idl:
48994         * Modules/filesystem/FileCallback.idl:
48995         * Modules/filesystem/FileEntry.idl:
48996         * Modules/filesystem/FileEntrySync.idl:
48997         * Modules/filesystem/FileSystemCallback.idl:
48998         * Modules/filesystem/FileWriter.idl:
48999         * Modules/filesystem/FileWriterCallback.idl:
49000         * Modules/filesystem/FileWriterSync.idl:
49001         * Modules/filesystem/HTMLInputElementFileSystem.idl:
49002         * Modules/filesystem/Metadata.idl:
49003         * Modules/filesystem/MetadataCallback.idl:
49004         * Modules/filesystem/WorkerContextFileSystem.idl:
49005         * Modules/gamepad/Gamepad.idl:
49006         * Modules/gamepad/GamepadList.idl:
49007         * Modules/gamepad/NavigatorGamepad.idl:
49008         * Modules/geolocation/Geolocation.idl:
49009         * Modules/geolocation/Geoposition.idl:
49010         * Modules/geolocation/NavigatorGeolocation.idl:
49011         * Modules/geolocation/PositionCallback.idl:
49012         * Modules/geolocation/PositionError.idl:
49013         * Modules/geolocation/PositionErrorCallback.idl:
49014         * Modules/indexeddb/DOMWindowIndexedDatabase.idl:
49015         * Modules/indexeddb/IDBAny.idl:
49016         * Modules/indexeddb/IDBCursor.idl:
49017         * Modules/indexeddb/IDBCursorWithValue.idl:
49018         * Modules/indexeddb/IDBDatabase.idl:
49019         * Modules/indexeddb/IDBDatabaseException.idl:
49020         * Modules/indexeddb/IDBFactory.idl:
49021         * Modules/indexeddb/IDBIndex.idl:
49022         * Modules/indexeddb/IDBKey.idl:
49023         * Modules/indexeddb/IDBKeyRange.idl:
49024         * Modules/indexeddb/IDBObjectStore.idl:
49025         * Modules/indexeddb/IDBOpenDBRequest.idl:
49026         * Modules/indexeddb/IDBRequest.idl:
49027         * Modules/indexeddb/IDBTransaction.idl:
49028         * Modules/indexeddb/IDBUpgradeNeededEvent.idl:
49029         * Modules/indexeddb/IDBVersionChangeEvent.idl:
49030         * Modules/indexeddb/IDBVersionChangeRequest.idl:
49031         * Modules/indexeddb/WorkerContextIndexedDatabase.idl:
49032         * Modules/intents/DOMWindowIntents.idl:
49033         * Modules/intents/DeliveredIntent.idl:
49034         * Modules/intents/Intent.idl:
49035         * Modules/intents/IntentResultCallback.idl:
49036         * Modules/intents/NavigatorIntents.idl:
49037         * Modules/mediasource/MediaSource.idl:
49038         * Modules/mediasource/SourceBuffer.idl:
49039         * Modules/mediasource/SourceBufferList.idl:
49040         * Modules/mediastream/DOMWindowMediaStream.idl:
49041         * Modules/mediastream/IceCallback.idl:
49042         * Modules/mediastream/IceCandidate.idl:
49043         * Modules/mediastream/LocalMediaStream.idl:
49044         * Modules/mediastream/MediaStream.idl:
49045         * Modules/mediastream/MediaStreamEvent.idl:
49046         * Modules/mediastream/MediaStreamList.idl:
49047         * Modules/mediastream/MediaStreamTrack.idl:
49048         * Modules/mediastream/MediaStreamTrackEvent.idl:
49049         * Modules/mediastream/MediaStreamTrackList.idl:
49050         * Modules/mediastream/NavigatorMediaStream.idl:
49051         * Modules/mediastream/NavigatorUserMediaError.idl:
49052         * Modules/mediastream/NavigatorUserMediaErrorCallback.idl:
49053         * Modules/mediastream/NavigatorUserMediaSuccessCallback.idl:
49054         * Modules/mediastream/PeerConnection00.idl:
49055         * Modules/mediastream/RTCErrorCallback.idl:
49056         * Modules/mediastream/RTCIceCandidate.idl:
49057         * Modules/mediastream/RTCIceCandidateEvent.idl:
49058         * Modules/mediastream/RTCPeerConnection.idl:
49059         * Modules/mediastream/RTCSessionDescription.idl:
49060         * Modules/mediastream/RTCSessionDescriptionCallback.idl:
49061         * Modules/mediastream/RTCStatsCallback.idl:
49062         * Modules/mediastream/RTCStatsElement.idl:
49063         * Modules/mediastream/RTCStatsReport.idl:
49064         * Modules/mediastream/RTCStatsResponse.idl:
49065         * Modules/mediastream/SessionDescription.idl:
49066         * Modules/navigatorcontentutils/NavigatorContentUtils.idl:
49067         * Modules/networkinfo/NavigatorNetworkInfoConnection.idl:
49068         * Modules/networkinfo/NetworkInfoConnection.idl:
49069         * Modules/notifications/DOMWindowNotifications.idl:
49070         * Modules/notifications/Notification.idl:
49071         * Modules/notifications/NotificationCenter.idl:
49072         * Modules/notifications/NotificationPermissionCallback.idl:
49073         * Modules/notifications/WorkerContextNotifications.idl:
49074         * Modules/proximity/DeviceProximityEvent.idl:
49075         * Modules/quota/DOMWindowQuota.idl:
49076         * Modules/quota/StorageInfo.idl:
49077         * Modules/quota/StorageInfoErrorCallback.idl:
49078         * Modules/quota/StorageInfoQuotaCallback.idl:
49079         * Modules/quota/StorageInfoUsageCallback.idl:
49080         * Modules/speech/DOMWindowSpeech.idl:
49081         * Modules/speech/SpeechGrammar.idl:
49082         * Modules/speech/SpeechGrammarList.idl:
49083         * Modules/speech/SpeechRecognition.idl:
49084         * Modules/speech/SpeechRecognitionAlternative.idl:
49085         * Modules/speech/SpeechRecognitionError.idl:
49086         * Modules/speech/SpeechRecognitionEvent.idl:
49087         * Modules/speech/SpeechRecognitionResult.idl:
49088         * Modules/speech/SpeechRecognitionResultList.idl:
49089         * Modules/vibration/NavigatorVibration.idl:
49090         * Modules/webaudio/AudioBuffer.idl:
49091         * Modules/webaudio/AudioBufferCallback.idl:
49092         * Modules/webaudio/AudioBufferSourceNode.idl:
49093         * Modules/webaudio/AudioChannelMerger.idl:
49094         * Modules/webaudio/AudioChannelSplitter.idl:
49095         * Modules/webaudio/AudioContext.idl:
49096         * Modules/webaudio/AudioDestinationNode.idl:
49097         * Modules/webaudio/AudioGain.idl:
49098         * Modules/webaudio/AudioGainNode.idl:
49099         * Modules/webaudio/AudioListener.idl:
49100         * Modules/webaudio/AudioNode.idl:
49101         * Modules/webaudio/AudioPannerNode.idl:
49102         * Modules/webaudio/AudioParam.idl:
49103         * Modules/webaudio/AudioProcessingEvent.idl:
49104         * Modules/webaudio/AudioSourceNode.idl:
49105         * Modules/webaudio/BiquadFilterNode.idl:
49106         * Modules/webaudio/ConvolverNode.idl:
49107         * Modules/webaudio/DOMWindowWebAudio.idl:
49108         * Modules/webaudio/DelayNode.idl:
49109         * Modules/webaudio/DynamicsCompressorNode.idl:
49110         * Modules/webaudio/JavaScriptAudioNode.idl:
49111         * Modules/webaudio/MediaElementAudioSourceNode.idl:
49112         * Modules/webaudio/MediaStreamAudioSourceNode.idl:
49113         * Modules/webaudio/OfflineAudioCompletionEvent.idl:
49114         * Modules/webaudio/Oscillator.idl:
49115         * Modules/webaudio/RealtimeAnalyserNode.idl:
49116         * Modules/webaudio/WaveShaperNode.idl:
49117         * Modules/webaudio/WaveTable.idl:
49118         * Modules/webdatabase/DOMWindowWebDatabase.idl:
49119         * Modules/webdatabase/Database.idl:
49120         * Modules/webdatabase/DatabaseCallback.idl:
49121         * Modules/webdatabase/DatabaseSync.idl:
49122         * Modules/webdatabase/SQLError.idl:
49123         * Modules/webdatabase/SQLException.idl:
49124         * Modules/webdatabase/SQLResultSet.idl:
49125         * Modules/webdatabase/SQLResultSetRowList.idl:
49126         * Modules/webdatabase/SQLStatementCallback.idl:
49127         * Modules/webdatabase/SQLStatementErrorCallback.idl:
49128         * Modules/webdatabase/SQLTransaction.idl:
49129         * Modules/webdatabase/SQLTransactionCallback.idl:
49130         * Modules/webdatabase/SQLTransactionErrorCallback.idl:
49131         * Modules/webdatabase/SQLTransactionSync.idl:
49132         * Modules/webdatabase/SQLTransactionSyncCallback.idl:
49133         * Modules/webdatabase/WorkerContextWebDatabase.idl:
49134         * Modules/websockets/CloseEvent.idl:
49135         * Modules/websockets/DOMWindowWebSocket.idl:
49136         * Modules/websockets/WebSocket.idl:
49137         * Modules/websockets/WorkerContextWebSocket.idl:
49138         * bindings/scripts/test/TestCallback.idl:
49139         * bindings/scripts/test/TestCustomNamedGetter.idl:
49140         * bindings/scripts/test/TestDomainSecurity.idl:
49141         * bindings/scripts/test/TestEventConstructor.idl:
49142         * bindings/scripts/test/TestEventTarget.idl:
49143         * bindings/scripts/test/TestException.idl:
49144         * bindings/scripts/test/TestInterface.idl:
49145         * bindings/scripts/test/TestMediaQueryListListener.idl:
49146         * bindings/scripts/test/TestNamedConstructor.idl:
49147         * bindings/scripts/test/TestNode.idl:
49148         * bindings/scripts/test/TestObj.idl:
49149         * bindings/scripts/test/TestSerializedScriptValueInterface.idl:
49150         * bindings/scripts/test/TestSupplemental.idl:
49151         * bindings/scripts/test/TestTypedArray.idl:
49152         * css/CSSCharsetRule.idl:
49153         * css/CSSFontFaceRule.idl:
49154         * css/CSSImportRule.idl:
49155         * css/CSSMediaRule.idl:
49156         * css/CSSPageRule.idl:
49157         * css/CSSPrimitiveValue.idl:
49158         * css/CSSRule.idl:
49159         * css/CSSRuleList.idl:
49160         * css/CSSStyleDeclaration.idl:
49161         * css/CSSStyleRule.idl:
49162         * css/CSSStyleSheet.idl:
49163         * css/CSSUnknownRule.idl:
49164         * css/CSSValue.idl:
49165         * css/CSSValueList.idl:
49166         * css/Counter.idl:
49167         * css/MediaList.idl:
49168         * css/MediaQueryList.idl:
49169         * css/MediaQueryListListener.idl:
49170         * css/RGBColor.idl:
49171         * css/Rect.idl:
49172         * css/StyleMedia.idl:
49173         * css/StyleSheet.idl:
49174         * css/StyleSheetList.idl:
49175         * css/WebKitCSSFilterValue.idl:
49176         * css/WebKitCSSKeyframeRule.idl:
49177         * css/WebKitCSSKeyframesRule.idl:
49178         * css/WebKitCSSMatrix.idl:
49179         * css/WebKitCSSRegionRule.idl:
49180         * css/WebKitCSSTransformValue.idl:
49181         * dom/Attr.idl:
49182         * dom/BeforeLoadEvent.idl:
49183         * dom/CDATASection.idl:
49184         * dom/CharacterData.idl:
49185         * dom/ClientRect.idl:
49186         * dom/ClientRectList.idl:
49187         * dom/Clipboard.idl:
49188         * dom/Comment.idl:
49189         * dom/CompositionEvent.idl:
49190         * dom/CustomEvent.idl:
49191         * dom/DOMCoreException.idl:
49192         * dom/DOMError.idl:
49193         * dom/DOMImplementation.idl:
49194         * dom/DOMNamedFlowCollection.idl:
49195         * dom/DOMStringList.idl:
49196         * dom/DOMStringMap.idl:
49197         * dom/DataTransferItem.idl:
49198         * dom/DataTransferItemList.idl:
49199         * dom/DeviceMotionEvent.idl:
49200         * dom/DeviceOrientationEvent.idl:
49201         * dom/Document.idl:
49202         * dom/DocumentFragment.idl:
49203         * dom/DocumentType.idl:
49204         * dom/Element.idl:
49205         * dom/Entity.idl:
49206         * dom/EntityReference.idl:
49207         * dom/ErrorEvent.idl:
49208         * dom/Event.idl:
49209         * dom/EventException.idl:
49210         * dom/EventListener.idl:
49211         * dom/EventTarget.idl:
49212         * dom/HashChangeEvent.idl:
49213         * dom/KeyboardEvent.idl:
49214         * dom/MessageChannel.idl:
49215         * dom/MessageEvent.idl:
49216         * dom/MessagePort.idl:
49217         * dom/MouseEvent.idl:
49218         * dom/MutationCallback.idl:
49219         * dom/MutationEvent.idl:
49220         * dom/MutationObserver.idl:
49221         * dom/MutationRecord.idl:
49222         * dom/NamedNodeMap.idl:
49223         * dom/Node.idl:
49224         * dom/NodeFilter.idl:
49225         * dom/NodeIterator.idl:
49226         * dom/NodeList.idl:
49227         * dom/Notation.idl:
49228         * dom/OverflowEvent.idl:
49229         * dom/PageTransitionEvent.idl:
49230         * dom/PopStateEvent.idl:
49231         * dom/ProcessingInstruction.idl:
49232         * dom/ProgressEvent.idl:
49233         * dom/PropertyNodeList.idl:
49234         * dom/Range.idl:
49235         * dom/RangeException.idl:
49236         * dom/RequestAnimationFrameCallback.idl:
49237         * dom/ShadowRoot.idl:
49238         * dom/StringCallback.idl:
49239         * dom/Text.idl:
49240         * dom/TextEvent.idl:
49241         * dom/Touch.idl:
49242         * dom/TouchEvent.idl:
49243         * dom/TouchList.idl:
49244         * dom/TreeWalker.idl:
49245         * dom/UIEvent.idl:
49246         * dom/WebKitAnimationEvent.idl:
49247         * dom/WebKitNamedFlow.idl:
49248         * dom/WebKitTransitionEvent.idl:
49249         * dom/WheelEvent.idl:
49250         * editing/DOMTransaction.idl:
49251         * editing/UndoManager.idl:
49252         * fileapi/Blob.idl:
49253         * fileapi/File.idl:
49254         * fileapi/FileError.idl:
49255         * fileapi/FileException.idl:
49256         * fileapi/FileList.idl:
49257         * fileapi/FileReader.idl:
49258         * fileapi/FileReaderSync.idl:
49259         * html/DOMFormData.idl:
49260         * html/DOMSettableTokenList.idl:
49261         * html/DOMTokenList.idl:
49262         * html/DOMURL.idl:
49263         * html/HTMLAllCollection.idl:
49264         * html/HTMLAnchorElement.idl:
49265         * html/HTMLAppletElement.idl:
49266         * html/HTMLAreaElement.idl:
49267         * html/HTMLAudioElement.idl:
49268         * html/HTMLBRElement.idl:
49269         * html/HTMLBaseElement.idl:
49270         * html/HTMLBaseFontElement.idl:
49271         * html/HTMLBodyElement.idl:
49272         * html/HTMLButtonElement.idl:
49273         * html/HTMLCanvasElement.idl:
49274         * html/HTMLCollection.idl:
49275         * html/HTMLDListElement.idl:
49276         * html/HTMLDataListElement.idl:
49277         * html/HTMLDetailsElement.idl:
49278         * html/HTMLDialogElement.idl:
49279         * html/HTMLDirectoryElement.idl:
49280         * html/HTMLDivElement.idl:
49281         * html/HTMLDocument.idl:
49282         * html/HTMLElement.idl:
49283         * html/HTMLEmbedElement.idl:
49284         * html/HTMLFieldSetElement.idl:
49285         * html/HTMLFontElement.idl:
49286         * html/HTMLFormElement.idl:
49287         * html/HTMLFrameElement.idl:
49288         * html/HTMLFrameSetElement.idl:
49289         * html/HTMLHRElement.idl:
49290         * html/HTMLHeadElement.idl:
49291         * html/HTMLHeadingElement.idl:
49292         * html/HTMLHtmlElement.idl:
49293         * html/HTMLIFrameElement.idl:
49294         * html/HTMLImageElement.idl:
49295         * html/HTMLInputElement.idl:
49296         * html/HTMLIntentElement.idl:
49297         * html/HTMLKeygenElement.idl:
49298         * html/HTMLLIElement.idl:
49299         * html/HTMLLabelElement.idl:
49300         * html/HTMLLegendElement.idl:
49301         * html/HTMLLinkElement.idl:
49302         * html/HTMLMapElement.idl:
49303         * html/HTMLMarqueeElement.idl:
49304         * html/HTMLMediaElement.idl:
49305         * html/HTMLMenuElement.idl:
49306         * html/HTMLMetaElement.idl:
49307         * html/HTMLMeterElement.idl:
49308         * html/HTMLModElement.idl:
49309         * html/HTMLOListElement.idl:
49310         * html/HTMLObjectElement.idl:
49311         * html/HTMLOptGroupElement.idl:
49312         * html/HTMLOptionElement.idl:
49313         * html/HTMLOptionsCollection.idl:
49314         * html/HTMLOutputElement.idl:
49315         * html/HTMLParagraphElement.idl:
49316         * html/HTMLParamElement.idl:
49317         * html/HTMLPreElement.idl:
49318         * html/HTMLProgressElement.idl:
49319         * html/HTMLPropertiesCollection.idl:
49320         * html/HTMLQuoteElement.idl:
49321         * html/HTMLScriptElement.idl:
49322         * html/HTMLSelectElement.idl:
49323         * html/HTMLSourceElement.idl:
49324         * html/HTMLSpanElement.idl:
49325         * html/HTMLStyleElement.idl:
49326         * html/HTMLTableCaptionElement.idl:
49327         * html/HTMLTableCellElement.idl:
49328         * html/HTMLTableColElement.idl:
49329         * html/HTMLTableElement.idl:
49330         * html/HTMLTableRowElement.idl:
49331         * html/HTMLTableSectionElement.idl:
49332         * html/HTMLTextAreaElement.idl:
49333         * html/HTMLTitleElement.idl:
49334         * html/HTMLTrackElement.idl:
49335         * html/HTMLUListElement.idl:
49336         * html/HTMLUnknownElement.idl:
49337         * html/HTMLVideoElement.idl:
49338         * html/ImageData.idl:
49339         * html/MediaController.idl:
49340         * html/MediaError.idl:
49341         * html/MediaKeyError.idl:
49342         * html/MediaKeyEvent.idl:
49343         * html/MicroDataItemValue.idl:
49344         * html/RadioNodeList.idl:
49345         * html/TextMetrics.idl:
49346         * html/TimeRanges.idl:
49347         * html/ValidityState.idl:
49348         * html/VoidCallback.idl:
49349         * html/canvas/ArrayBuffer.idl:
49350         * html/canvas/ArrayBufferView.idl:
49351         * html/canvas/CanvasGradient.idl:
49352         * html/canvas/CanvasPattern.idl:
49353         * html/canvas/CanvasRenderingContext.idl:
49354         * html/canvas/CanvasRenderingContext2D.idl:
49355         * html/canvas/DataView.idl:
49356         * html/canvas/EXTTextureFilterAnisotropic.idl:
49357         * html/canvas/Float32Array.idl:
49358         * html/canvas/Float64Array.idl:
49359         * html/canvas/Int16Array.idl:
49360         * html/canvas/Int32Array.idl:
49361         * html/canvas/Int8Array.idl:
49362         * html/canvas/OESStandardDerivatives.idl:
49363         * html/canvas/OESTextureFloat.idl:
49364         * html/canvas/OESVertexArrayObject.idl:
49365         * html/canvas/Uint16Array.idl:
49366         * html/canvas/Uint32Array.idl:
49367         * html/canvas/Uint8Array.idl:
49368         * html/canvas/Uint8ClampedArray.idl:
49369         * html/canvas/WebGLActiveInfo.idl:
49370         * html/canvas/WebGLBuffer.idl:
49371         * html/canvas/WebGLCompressedTextureS3TC.idl:
49372         * html/canvas/WebGLContextAttributes.idl:
49373         * html/canvas/WebGLContextEvent.idl:
49374         * html/canvas/WebGLDebugRendererInfo.idl:
49375         * html/canvas/WebGLDebugShaders.idl:
49376         * html/canvas/WebGLDepthTexture.idl:
49377         * html/canvas/WebGLFramebuffer.idl:
49378         * html/canvas/WebGLLoseContext.idl:
49379         * html/canvas/WebGLProgram.idl:
49380         * html/canvas/WebGLRenderbuffer.idl:
49381         * html/canvas/WebGLRenderingContext.idl:
49382         * html/canvas/WebGLShader.idl:
49383         * html/canvas/WebGLShaderPrecisionFormat.idl:
49384         * html/canvas/WebGLTexture.idl:
49385         * html/canvas/WebGLUniformLocation.idl:
49386         * html/canvas/WebGLVertexArrayObjectOES.idl:
49387         * html/shadow/HTMLContentElement.idl:
49388         * html/shadow/HTMLShadowElement.idl:
49389         * html/track/TextTrack.idl:
49390         * html/track/TextTrackCue.idl:
49391         * html/track/TextTrackCueList.idl:
49392         * html/track/TextTrackList.idl:
49393         * html/track/TrackEvent.idl:
49394         * inspector/InjectedScriptHost.idl:
49395         * inspector/InspectorFrontendHost.idl:
49396         * inspector/JavaScriptCallFrame.idl:
49397         * inspector/ScriptProfile.idl:
49398         * inspector/ScriptProfileNode.idl:
49399         * loader/appcache/DOMApplicationCache.idl:
49400         * page/AbstractView.idl:
49401         * page/BarInfo.idl:
49402         * page/Console.idl:
49403         * page/Coordinates.idl:
49404         * page/Crypto.idl:
49405         * page/DOMSecurityPolicy.idl:
49406         * page/DOMSelection.idl:
49407         * page/DOMWindow.idl:
49408         * page/DOMWindowPagePopup.idl:
49409         * page/EventSource.idl:
49410         * page/History.idl:
49411         * page/Location.idl:
49412         * page/MemoryInfo.idl:
49413         * page/Navigator.idl:
49414         * page/PagePopupController.idl:
49415         * page/Performance.idl:
49416         * page/PerformanceEntry.idl:
49417         * page/PerformanceEntryList.idl:
49418         * page/PerformanceNavigation.idl:
49419         * page/PerformanceResourceTiming.idl:
49420         * page/PerformanceTiming.idl:
49421         * page/Screen.idl:
49422         * page/SpeechInputEvent.idl:
49423         * page/SpeechInputResult.idl:
49424         * page/SpeechInputResultList.idl:
49425         * page/WebKitAnimation.idl:
49426         * page/WebKitAnimationList.idl:
49427         * page/WebKitPoint.idl:
49428         * page/WorkerNavigator.idl:
49429         * plugins/DOMMimeType.idl:
49430         * plugins/DOMMimeTypeArray.idl:
49431         * plugins/DOMPlugin.idl:
49432         * plugins/DOMPluginArray.idl:
49433         * storage/Storage.idl:
49434         * storage/StorageEvent.idl:
49435         * svg/ElementTimeControl.idl:
49436         * svg/SVGAElement.idl:
49437         * svg/SVGAltGlyphDefElement.idl:
49438         * svg/SVGAltGlyphElement.idl:
49439         * svg/SVGAltGlyphItemElement.idl:
49440         * svg/SVGAngle.idl:
49441         * svg/SVGAnimateColorElement.idl:
49442         * svg/SVGAnimateElement.idl:
49443         * svg/SVGAnimateMotionElement.idl:
49444         * svg/SVGAnimateTransformElement.idl:
49445         * svg/SVGAnimatedAngle.idl:
49446         * svg/SVGAnimatedBoolean.idl:
49447         * svg/SVGAnimatedEnumeration.idl:
49448         * svg/SVGAnimatedInteger.idl:
49449         * svg/SVGAnimatedLength.idl:
49450         * svg/SVGAnimatedLengthList.idl:
49451         * svg/SVGAnimatedNumber.idl:
49452         * svg/SVGAnimatedNumberList.idl:
49453         * svg/SVGAnimatedPreserveAspectRatio.idl:
49454         * svg/SVGAnimatedRect.idl:
49455         * svg/SVGAnimatedString.idl:
49456         * svg/SVGAnimatedTransformList.idl:
49457         * svg/SVGAnimationElement.idl:
49458         * svg/SVGCircleElement.idl:
49459         * svg/SVGClipPathElement.idl:
49460         * svg/SVGColor.idl:
49461         * svg/SVGComponentTransferFunctionElement.idl:
49462         * svg/SVGCursorElement.idl:
49463         * svg/SVGDefsElement.idl:
49464         * svg/SVGDescElement.idl:
49465         * svg/SVGDocument.idl:
49466         * svg/SVGElement.idl:
49467         * svg/SVGElementInstance.idl:
49468         * svg/SVGElementInstanceList.idl:
49469         * svg/SVGEllipseElement.idl:
49470         * svg/SVGException.idl:
49471         * svg/SVGExternalResourcesRequired.idl:
49472         * svg/SVGFEBlendElement.idl:
49473         * svg/SVGFEColorMatrixElement.idl:
49474         * svg/SVGFEComponentTransferElement.idl:
49475         * svg/SVGFECompositeElement.idl:
49476         * svg/SVGFEConvolveMatrixElement.idl:
49477         * svg/SVGFEDiffuseLightingElement.idl:
49478         * svg/SVGFEDisplacementMapElement.idl:
49479         * svg/SVGFEDistantLightElement.idl:
49480         * svg/SVGFEDropShadowElement.idl:
49481         * svg/SVGFEFloodElement.idl:
49482         * svg/SVGFEFuncAElement.idl:
49483         * svg/SVGFEFuncBElement.idl:
49484         * svg/SVGFEFuncGElement.idl:
49485         * svg/SVGFEFuncRElement.idl:
49486         * svg/SVGFEGaussianBlurElement.idl:
49487         * svg/SVGFEImageElement.idl:
49488         * svg/SVGFEMergeElement.idl:
49489         * svg/SVGFEMergeNodeElement.idl:
49490         * svg/SVGFEMorphologyElement.idl:
49491         * svg/SVGFEOffsetElement.idl:
49492         * svg/SVGFEPointLightElement.idl:
49493         * svg/SVGFESpecularLightingElement.idl:
49494         * svg/SVGFESpotLightElement.idl:
49495         * svg/SVGFETileElement.idl:
49496         * svg/SVGFETurbulenceElement.idl:
49497         * svg/SVGFilterElement.idl:
49498         * svg/SVGFilterPrimitiveStandardAttributes.idl:
49499         * svg/SVGFitToViewBox.idl:
49500         * svg/SVGFontElement.idl:
49501         * svg/SVGFontFaceElement.idl:
49502         * svg/SVGFontFaceFormatElement.idl:
49503         * svg/SVGFontFaceNameElement.idl:
49504         * svg/SVGFontFaceSrcElement.idl:
49505         * svg/SVGFontFaceUriElement.idl:
49506         * svg/SVGForeignObjectElement.idl:
49507         * svg/SVGGElement.idl:
49508         * svg/SVGGlyphElement.idl:
49509         * svg/SVGGlyphRefElement.idl:
49510         * svg/SVGGradientElement.idl:
49511         * svg/SVGHKernElement.idl:
49512         * svg/SVGImageElement.idl:
49513         * svg/SVGLangSpace.idl:
49514         * svg/SVGLength.idl:
49515         * svg/SVGLengthList.idl:
49516         * svg/SVGLineElement.idl:
49517         * svg/SVGLinearGradientElement.idl:
49518         * svg/SVGLocatable.idl:
49519         * svg/SVGMPathElement.idl:
49520         * svg/SVGMarkerElement.idl:
49521         * svg/SVGMaskElement.idl:
49522         * svg/SVGMatrix.idl:
49523         * svg/SVGMetadataElement.idl:
49524         * svg/SVGMissingGlyphElement.idl:
49525         * svg/SVGNumber.idl:
49526         * svg/SVGNumberList.idl:
49527         * svg/SVGPaint.idl:
49528         * svg/SVGPathElement.idl:
49529         * svg/SVGPathSeg.idl:
49530         * svg/SVGPathSegArcAbs.idl:
49531         * svg/SVGPathSegArcRel.idl:
49532         * svg/SVGPathSegClosePath.idl:
49533         * svg/SVGPathSegCurvetoCubicAbs.idl:
49534         * svg/SVGPathSegCurvetoCubicRel.idl:
49535         * svg/SVGPathSegCurvetoCubicSmoothAbs.idl:
49536         * svg/SVGPathSegCurvetoCubicSmoothRel.idl:
49537         * svg/SVGPathSegCurvetoQuadraticAbs.idl:
49538         * svg/SVGPathSegCurvetoQuadraticRel.idl:
49539         * svg/SVGPathSegCurvetoQuadraticSmoothAbs.idl:
49540         * svg/SVGPathSegCurvetoQuadraticSmoothRel.idl:
49541         * svg/SVGPathSegLinetoAbs.idl:
49542         * svg/SVGPathSegLinetoHorizontalAbs.idl:
49543         * svg/SVGPathSegLinetoHorizontalRel.idl:
49544         * svg/SVGPathSegLinetoRel.idl:
49545         * svg/SVGPathSegLinetoVerticalAbs.idl:
49546         * svg/SVGPathSegLinetoVerticalRel.idl:
49547         * svg/SVGPathSegList.idl:
49548         * svg/SVGPathSegMovetoAbs.idl:
49549         * svg/SVGPathSegMovetoRel.idl:
49550         * svg/SVGPatternElement.idl:
49551         * svg/SVGPoint.idl:
49552         * svg/SVGPointList.idl:
49553         * svg/SVGPolygonElement.idl:
49554         * svg/SVGPolylineElement.idl:
49555         * svg/SVGPreserveAspectRatio.idl:
49556         * svg/SVGRadialGradientElement.idl:
49557         * svg/SVGRect.idl:
49558         * svg/SVGRectElement.idl:
49559         * svg/SVGRenderingIntent.idl:
49560         * svg/SVGSVGElement.idl:
49561         * svg/SVGScriptElement.idl:
49562         * svg/SVGSetElement.idl:
49563         * svg/SVGStopElement.idl:
49564         * svg/SVGStringList.idl:
49565         * svg/SVGStylable.idl:
49566         * svg/SVGStyleElement.idl:
49567         * svg/SVGSwitchElement.idl:
49568         * svg/SVGSymbolElement.idl:
49569         * svg/SVGTRefElement.idl:
49570         * svg/SVGTSpanElement.idl:
49571         * svg/SVGTests.idl:
49572         * svg/SVGTextContentElement.idl:
49573         * svg/SVGTextElement.idl:
49574         * svg/SVGTextPathElement.idl:
49575         * svg/SVGTextPositioningElement.idl:
49576         * svg/SVGTitleElement.idl:
49577         * svg/SVGTransform.idl:
49578         * svg/SVGTransformList.idl:
49579         * svg/SVGTransformable.idl:
49580         * svg/SVGURIReference.idl:
49581         * svg/SVGUnitTypes.idl:
49582         * svg/SVGUseElement.idl:
49583         * svg/SVGVKernElement.idl:
49584         * svg/SVGViewElement.idl:
49585         * svg/SVGViewSpec.idl:
49586         * svg/SVGZoomAndPan.idl:
49587         * svg/SVGZoomEvent.idl:
49588         * testing/InternalSettings.idl:
49589         * testing/Internals.idl:
49590         * testing/MallocStatistics.idl:
49591         * workers/AbstractWorker.idl:
49592         * workers/DedicatedWorkerContext.idl:
49593         * workers/SharedWorker.idl:
49594         * workers/SharedWorkerContext.idl:
49595         * workers/Worker.idl:
49596         * workers/WorkerContext.idl:
49597         * workers/WorkerLocation.idl:
49598         * xml/DOMParser.idl:
49599         * xml/XMLHttpRequest.idl:
49600         * xml/XMLHttpRequestException.idl:
49601         * xml/XMLHttpRequestProgressEvent.idl:
49602         * xml/XMLHttpRequestUpload.idl:
49603         * xml/XMLSerializer.idl:
49604         * xml/XPathEvaluator.idl:
49605         * xml/XPathException.idl:
49606         * xml/XPathExpression.idl:
49607         * xml/XPathNSResolver.idl:
49608         * xml/XPathResult.idl:
49609         * xml/XSLTProcessor.idl:
49610         Removed "module".
49611
49612 2012-10-11  Beth Dakin  <bdakin@apple.com>
49613
49614         https://bugs.webkit.org/show_bug.cgi?id=98700
49615         ScrollingCoordinator is a hot mess of if-defs
49616
49617         Reviewed by Anders Carlsson.
49618
49619         This patch moves all of the threaded scrolling code in 
49620         ScrollingCoordinator into a new class called ScrollingCoordinatorMac 
49621         which inherits from ScrollingCoordinator. 
49622
49623         It also adds ScrollingCoordinatorChromium to do Chromium-specific work. 
49624         ScrollingCoordinator itself does work that is cross-platform. 
49625         
49626         Finally, this patch also eliminates ScrollingCoordinatorNone. 
49627         ScrollingCoordinator is now sufficient for platforms that relied on 
49628         ScrollingCoordinatorNone to build.
49629
49630         * CMakeLists.txt:
49631         * GNUmakefile.list.am:
49632         * Target.pri:
49633         * WebCore.exp.in:
49634         * WebCore.xcodeproj/project.pbxproj:
49635         * page/scrolling/ScrollingCoordinator.cpp:
49636         (WebCore::ScrollingCoordinator::create):
49637         (WebCore):
49638         (WebCore::ScrollingCoordinator::ScrollingCoordinator):
49639         (WebCore::ScrollingCoordinator::~ScrollingCoordinator):
49640         (WebCore::ScrollingCoordinator::pageDestroyed):
49641         (WebCore::ScrollingCoordinator::computeNonFastScrollableRegion):
49642         (WebCore::ScrollingCoordinator::computeCurrentWheelEventHandlerCount):
49643         (WebCore::ScrollingCoordinator::scrollLayerForFrameView):
49644         (WebCore::ScrollingCoordinator::frameViewRootLayerDidChange):
49645         * page/scrolling/ScrollingCoordinator.h:
49646         (WebCore):
49647         (ScrollingCoordinator):
49648         (WebCore::ScrollingCoordinator::scrollingTree):
49649         (WebCore::ScrollingCoordinator::commitTreeStateIfNeeded):
49650         (WebCore::ScrollingCoordinator::frameViewLayoutUpdated):
49651         (WebCore::ScrollingCoordinator::supportsFixedPositionLayers):
49652         (WebCore::ScrollingCoordinator::requestScrollPositionUpdate):
49653         (WebCore::ScrollingCoordinator::handleWheelEvent):
49654         (WebCore::ScrollingCoordinator::updateMainFrameScrollPositionAndScrollLayerPosition):
49655         (WebCore::ScrollingCoordinator::attachToStateTree):
49656         (WebCore::ScrollingCoordinator::detachFromStateTree):
49657         (WebCore::ScrollingCoordinator::clearStateTree):
49658         (WebCore::ScrollingCoordinator::frameViewHorizontalScrollbarLayerDidChange):
49659         (WebCore::ScrollingCoordinator::frameViewVerticalScrollbarLayerDidChange):
49660         (WebCore::ScrollingCoordinator::scrollableAreaScrollLayerDidChange):
49661         (WebCore::ScrollingCoordinator::setLayerIsContainerForFixedPositionLayers):
49662         (WebCore::ScrollingCoordinator::setLayerIsFixedToContainerLayer):
49663         (WebCore::ScrollingCoordinator::recomputeWheelEventHandlerCountForFrameView):
49664         (WebCore::ScrollingCoordinator::setShouldUpdateScrollLayerPositionOnMainThread):
49665         * page/scrolling/ScrollingCoordinatorNone.cpp: Removed.
49666         * page/scrolling/chromium/ScrollingCoordinatorChromium.cpp:
49667         (WebCore::ScrollingCoordinatorChromium::ScrollingCoordinatorChromium):
49668         (WebCore::ScrollingCoordinatorChromium::~ScrollingCoordinatorChromium):
49669         (WebCore::ScrollingCoordinatorChromium::frameViewLayoutUpdated):
49670         (WebCore):
49671         (WebCore::ScrollingCoordinatorChromium::frameViewRootLayerDidChange):
49672         (WebCore::ScrollingCoordinatorChromium::frameViewHorizontalScrollbarLayerDidChange):
49673         (WebCore::ScrollingCoordinatorChromium::frameViewVerticalScrollbarLayerDidChange):
49674         (WebCore::ScrollingCoordinatorChromium::setScrollLayer):
49675         (WebCore::ScrollingCoordinatorChromium::setNonFastScrollableRegion):
49676         (WebCore::ScrollingCoordinatorChromium::setWheelEventHandlerCount):
49677         (WebCore::ScrollingCoordinatorChromium::setShouldUpdateScrollLayerPositionOnMainThread):
49678         (WebCore::ScrollingCoordinatorChromium::setLayerIsContainerForFixedPositionLayers):
49679         (WebCore::ScrollingCoordinatorChromium::setLayerIsFixedToContainerLayer):
49680         (WebCore::ScrollingCoordinatorChromium::scrollableAreaScrollLayerDidChange):
49681         (WebCore::ScrollingCoordinatorChromium::recomputeWheelEventHandlerCountForFrameView):
49682         * page/scrolling/chromium/ScrollingCoordinatorChromium.h: Added.
49683         (WebCore):
49684         (ScrollingCoordinatorChromium):
49685         (WebCore::ScrollingCoordinatorChromium::supportsFixedPositionLayers):
49686         * page/scrolling/mac/ScrollingCoordinatorMac.h: Added.
49687         (WebCore):
49688         (ScrollingCoordinatorMac):
49689         (ScrollParameters):
49690         * page/scrolling/mac/ScrollingCoordinatorMac.mm:
49691         (WebCore::ScrollingCoordinatorMac::ScrollingCoordinatorMac):
49692         (WebCore::ScrollingCoordinatorMac::~ScrollingCoordinatorMac):
49693         (WebCore::ScrollingCoordinatorMac::pageDestroyed):
49694         (WebCore):
49695         (WebCore::ScrollingCoordinatorMac::scrollingTree):
49696         (WebCore::ScrollingCoordinatorMac::commitTreeStateIfNeeded):
49697         (WebCore::ScrollingCoordinatorMac::frameViewLayoutUpdated):
49698         (WebCore::ScrollingCoordinatorMac::recomputeWheelEventHandlerCountForFrameView):
49699         (WebCore::ScrollingCoordinatorMac::frameViewRootLayerDidChange):
49700         (WebCore::ScrollingCoordinatorMac::frameViewHorizontalScrollbarLayerDidChange):
49701         (WebCore::ScrollingCoordinatorMac::frameViewVerticalScrollbarLayerDidChange):
49702         (WebCore::ScrollingCoordinatorMac::requestScrollPositionUpdate):
49703         (WebCore::ScrollingCoordinatorMac::handleWheelEvent):
49704         (WebCore::ScrollingCoordinatorMac::updateMainFrameScrollPositionAndScrollLayerPosition):
49705         (WebCore::ScrollingCoordinatorMac::attachToStateTree):
49706         (WebCore::ScrollingCoordinatorMac::detachFromStateTree):
49707         (WebCore::ScrollingCoordinatorMac::clearStateTree):
49708         (WebCore::ScrollingCoordinatorMac::stateNodeForID):
49709         (WebCore::ScrollingCoordinatorMac::ensureRootStateNodeForFrameView):
49710         (WebCore::ScrollingCoordinatorMac::setScrollLayerForNode):
49711         (WebCore::ScrollingCoordinatorMac::setNonFastScrollableRegionForNode):
49712         (WebCore::ScrollingCoordinatorMac::setScrollParametersForNode):
49713         (WebCore::ScrollingCoordinatorMac::setWheelEventHandlerCountForNode):
49714         (WebCore::ScrollingCoordinatorMac::setShouldUpdateScrollLayerPositionOnMainThread):
49715         (WebCore::ScrollingCoordinatorMac::updateMainFrameScrollLayerPosition):
49716         (WebCore::ScrollingCoordinatorMac::scheduleTreeStateCommit):
49717         (WebCore::ScrollingCoordinatorMac::scrollingStateTreeCommitterTimerFired):
49718         (WebCore::ScrollingCoordinatorMac::commitTreeState):
49719
49720 2012-10-11  Takashi Sakamoto  <tasak@google.com>
49721
49722         [Shadow DOM] Insertion points need resetStyleInheritance
49723         https://bugs.webkit.org/show_bug.cgi?id=93922
49724
49725         Reviewed by Dimitri Glazkov.
49726
49727         Implemented resetStyleInheritance of insertion points.
49728         Its spec link is http://dvcs.w3.org/hg/webcomponents/raw-file/tip/spec/shadow/index.html#api-html-content-element-reset-style-inheritance
49729
49730         Test: fast/dom/shadow/insertion-point-resetStyleInheritance.html
49731
49732         * css/StyleResolver.cpp:
49733         (WebCore::isResetStyleInheritance):
49734         Added a new function to check whether there exists any insertion
49735         point which has reset-style-inhertiance flag set to be true.
49736         (WebCore::StyleResolver::initForStyleResolve):
49737         Modified to use the above function to check reset-style-inheritance.
49738         * html/shadow/HTMLContentElement.idl:
49739         * html/shadow/HTMLShadowElement.idl:
49740         Added a new attribute for reset-style-inheritance.
49741         * html/shadow/InsertionPoint.cpp:
49742         (WebCore::InsertionPoint::InsertionPoint):
49743         Initialized a new member variable for reset-style-inheritance.
49744         (WebCore::InsertionPoint::resetStyleInheritance):
49745         (WebCore::InsertionPoint::setResetStyleInheritance):
49746         Implemented setter/getter for reset-style-inheritance.
49747         * html/shadow/InsertionPoint.h:
49748         (InsertionPoint):
49749         Added a new member variable for reset-style-inheritance.
49750
49751 2012-10-11  Anders Carlsson  <andersca@apple.com>
49752
49753         Attempt to fix build broken by r131125.
49754
49755         * page/PageSerializer.cpp:
49756         (WebCore::PageSerializer::addImageToResources):
49757         KURL::utf8String() is apparently a USE(GOOGLEURL) feature. Call url.string().utf8() instead.
49758
49759 2012-10-11  Kenichi Ishibashi  <bashi@chromium.org>
49760
49761         [Chromium] Use harfbuzz-ng by default on Linux
49762         https://bugs.webkit.org/show_bug.cgi?id=97281
49763
49764         Reviewed by Tony Chang.
49765
49766         Switch old harfbuzz to harfbuzz-ng on chromium linux port.
49767
49768         No new tests. Existing tests should cover this switch.
49769         Test expectations will be updated.
49770
49771         * WebCore.gyp/WebCore.gyp:
49772
49773 2012-10-11  Nat Duca  <nduca@chromium.org>
49774
49775         Expose high-resolution on requestAnimationFrame callback
49776         https://bugs.webkit.org/show_bug.cgi?id=66683
49777
49778         This changes requestAnimationFrame's animationStartTime argument
49779         to be a high resolution DOM timestamp, per disucssion here:
49780         http://lists.w3.org/Archives/Public/public-web-perf/2012Apr/0004.html
49781
49782         Reviewed by James Robinson.
49783
49784         Covered by existing requestAnimationFrame tests.
49785
49786         * dom/Document.cpp:
49787         (WebCore::Document::serviceScriptedAnimations):
49788         * dom/Document.h:
49789         (Document):
49790         * dom/ScriptedAnimationController.cpp:
49791         (WebCore::ScriptedAnimationController::ScriptedAnimationController):
49792         (WebCore::ScriptedAnimationController::serviceScriptedAnimations):
49793         (WebCore):
49794         (WebCore::ScriptedAnimationController::windowScreenDidChange):
49795         (WebCore::ScriptedAnimationController::scheduleAnimation):
49796         (WebCore::ScriptedAnimationController::animationTimerFired):
49797         (WebCore::ScriptedAnimationController::displayRefreshFired):
49798         * dom/ScriptedAnimationController.h:
49799         (ScriptedAnimationController):
49800         * page/FrameView.cpp:
49801         (WebCore::FrameView::serviceScriptedAnimations):
49802         * page/FrameView.h:
49803         (FrameView):
49804         * platform/graphics/DisplayRefreshMonitor.cpp:
49805         (WebCore::DisplayRefreshMonitor::DisplayRefreshMonitor):
49806         (WebCore::DisplayRefreshMonitor::notifyClients):
49807         * platform/graphics/DisplayRefreshMonitor.h:
49808         (DisplayRefreshMonitor):
49809         * platform/graphics/blackberry/DisplayRefreshMonitorBlackBerry.cpp:
49810         (WebCore::DisplayRefreshMonitor::displayLinkFired):
49811         * platform/graphics/mac/DisplayRefreshMonitorMac.cpp:
49812         (WebCore):
49813         (WebCore::DisplayRefreshMonitor::requestRefreshCallback):
49814         (WebCore::DisplayRefreshMonitor::displayLinkFired):
49815
49816 2012-10-11  Sheriff Bot  <webkit.review.bot@gmail.com>
49817
49818         Unreviewed, rolling out r131100.
49819         http://trac.webkit.org/changeset/131100
49820         https://bugs.webkit.org/show_bug.cgi?id=99127
49821
49822         Caused an ASSERT (Requested by abarth|gardening on #webkit).
49823
49824         * platform/graphics/filters/CustomFilterValidatedProgram.cpp:
49825         (WebCore::CustomFilterValidatedProgram::compositeFunctionString):
49826
49827 2012-10-11  Kenichi Ishibashi  <bashi@chromium.org>
49828
49829         [Chromium] Improve vertical text rendering of HarfBuzzShaper (Re-land)
49830         https://bugs.webkit.org/show_bug.cgi?id=98979
49831
49832         Reviewed by Tony Chang.
49833
49834         - Specify 'vert' and 'vrt2' features when we render vertical text.
49835         - Set appropriate script so that harfbuzz-ng can use the features.
49836
49837         No new tests. fast/text/international/text-spliced-font.html should cover this change.
49838         This change will affect after switching to harfbuzz-ng.
49839
49840         * platform/graphics/harfbuzz/ng/HarfBuzzNGFace.cpp:
49841         (WebCore::HarfBuzzNGFace::HarfBuzzNGFace):
49842         (WebCore::findScriptForVerticalGlyphSubstitution): Added.
49843         (WebCore):
49844         (WebCore::HarfBuzzNGFace::setScriptForVerticalGlyphSubstitution): Added.
49845         * platform/graphics/harfbuzz/ng/HarfBuzzNGFace.h:
49846         (HarfBuzzNGFace): Added m_scriptForVerticalText.
49847         * platform/graphics/harfbuzz/ng/HarfBuzzShaper.cpp:
49848         (WebCore::HarfBuzzShaper::setFontFeatures):
49849         Set 'vert' and 'vrt2' features when orientation() == Vertical.
49850         (WebCore::HarfBuzzShaper::shapeHarfBuzzRuns):
49851         Call setScriptForVerticalGlyphSubstitution() when orientation() == Vertical.
49852
49853 2012-10-11  Jay Civelli  <jcivelli@chromium.org>
49854
49855         Fix for a crasher when generating MHTML for a page containing SVG images.
49856         https://bugs.webkit.org/show_bug.cgi?id=99105
49857
49858         Reviewed by Adam Barth.
49859
49860         * page/PageSerializer.cpp:
49861         (WebCore::PageSerializer::serializeCSSStyleSheet):
49862         (WebCore::PageSerializer::addImageToResources):
49863
49864 2012-10-11  Sheriff Bot  <webkit.review.bot@gmail.com>
49865
49866         Unreviewed, rolling out r131107.
49867         http://trac.webkit.org/changeset/131107
49868         https://bugs.webkit.org/show_bug.cgi?id=99126
49869
49870         Causes an ASSERT (Requested by abarth|gardening on #webkit).
49871
49872         * accessibility/AccessibilityNodeObject.cpp:
49873         (WebCore::AccessibilityNodeObject::labelForElement):
49874         * dom/DocumentOrderedMap.cpp:
49875         * dom/DocumentOrderedMap.h:
49876         (DocumentOrderedMap):
49877         * dom/Element.cpp:
49878         (WebCore::Element::insertedInto):
49879         (WebCore::Element::removedFrom):
49880         (WebCore):
49881         (WebCore::Element::willModifyAttribute):
49882         * dom/Element.h:
49883         (Element):
49884         * dom/TreeScope.cpp:
49885         (WebCore::TreeScope::TreeScope):
49886         * dom/TreeScope.h:
49887         (WebCore):
49888         (TreeScope):
49889
49890 2012-10-11  Tim Horton  <timothy_horton@apple.com>
49891
49892         LocalCurrentGraphicsContext will never restore the current context to null
49893         https://bugs.webkit.org/show_bug.cgi?id=99122
49894
49895         Reviewed by Simon Fraser.
49896
49897         LocalCurrentGraphicsContext is meant to cause temporary changes to
49898         NSGraphicsContext's currentContext. However, if it is entered when
49899         currentContext is null, it will not restore to null, as a null
49900         m_savedNSGraphicsContext was being used to indicate that the current and
49901         passed-in graphics contexts were equal (and thus no save/restore was required).
49902
49903         Add a separate flag for whether or not we need to restore the context.
49904
49905         Also flip the order of calls to restore graphics context state so that
49906         exiting LocalCurrentGraphicsContext does things in exactly the opposite
49907         of entry.
49908
49909         * platform/mac/LocalCurrentGraphicsContext.h:
49910         (LocalCurrentGraphicsContext):
49911         * platform/mac/LocalCurrentGraphicsContext.mm:
49912         (WebCore::LocalCurrentGraphicsContext::LocalCurrentGraphicsContext):
49913         (WebCore::LocalCurrentGraphicsContext::~LocalCurrentGraphicsContext):
49914
49915 2012-10-11  Sheriff Bot  <webkit.review.bot@gmail.com>
49916
49917         Unreviewed, rolling out r131109.
49918         http://trac.webkit.org/changeset/131109
49919         https://bugs.webkit.org/show_bug.cgi?id=99124
49920
49921         Does not compile on chromium-mac (Requested by
49922         abarth|gardening on #webkit).
49923
49924         * platform/graphics/harfbuzz/ng/HarfBuzzNGFace.cpp:
49925         (WebCore::HarfBuzzNGFace::HarfBuzzNGFace):
49926         * platform/graphics/harfbuzz/ng/HarfBuzzNGFace.h:
49927         (HarfBuzzNGFace):
49928         * platform/graphics/harfbuzz/ng/HarfBuzzShaper.cpp:
49929         (WebCore::HarfBuzzShaper::setFontFeatures):
49930         (WebCore::HarfBuzzShaper::shapeHarfBuzzRuns):
49931
49932 2012-10-11  Beth Dakin  <bdakin@apple.com>
49933
49934         https://bugs.webkit.org/show_bug.cgi?id=99111
49935         ScrollingStateNode should keep its Vector of children in an OwnPtr
49936
49937         Reviewed by Ada Chan.
49938
49939         Vector<OwnPtr<ScrollingStateNode> >* m_children; is now:
49940          OwnPtr<Vector<OwnPtr<ScrollingStateNode> > > m_children;
49941         * page/scrolling/ScrollingStateNode.cpp:
49942         (WebCore::ScrollingStateNode::ScrollingStateNode):
49943         (WebCore::ScrollingStateNode::~ScrollingStateNode):
49944         (WebCore::ScrollingStateNode::appendChild):
49945         * page/scrolling/ScrollingStateNode.h:
49946         (ScrollingStateNode):
49947
49948 2012-10-11  Levi Weintraub  <leviw@chromium.org>
49949
49950         [Sub pixel layout] Fast-path iframe scrolling can picks up an extra pixel
49951         https://bugs.webkit.org/show_bug.cgi?id=98571
49952
49953         Reviewed by Emil A Eklund.
49954
49955         Refactoring all coordinate-switching functionality to use a single "mode" flag
49956         as opposed to having a bunch of boolean values. This enables the same set of
49957         options across the board, and a consistent interface. This was previously
49958         done for mapLocalToContainer.
49959
49960         The imptetus for this for this stems from the one logical change in this patch
49961         which only effects sub-pixel layout. FrameView::convertToRenderer and
49962         convertFromRenderer return IntPoint coordinates, and need to also snap transform
49963         offsets to determine proper rects for scrolling.
49964
49965         Unlabeled functions below are simply being updated to these new interfaces.
49966
49967         Test: fast/sub-pixel/sub-pixel-iframe-copy-on-scroll.html
49968
49969         * WebCore.exp.in:
49970         * dom/ContainerNode.cpp:
49971         (WebCore::ContainerNode::getUpperLeftCorner):
49972         (WebCore::ContainerNode::getLowerRightCorner):
49973         * dom/Element.cpp:
49974         (WebCore::Element::boundsInRootViewSpace):
49975         * dom/MouseRelatedEvent.cpp:
49976         (WebCore::MouseRelatedEvent::computeRelativePosition):
49977         * dom/Node.cpp:
49978         (WebCore::Node::convertToPage):
49979         (WebCore::Node::convertFromPage):
49980         * html/HTMLSelectElement.cpp:
49981         (WebCore::HTMLSelectElement::listBoxDefaultEventHandler):
49982         * html/shadow/SliderThumbElement.cpp:
49983         (WebCore::SliderThumbElement::setPositionFromPoint):
49984         * html/shadow/SpinButtonElement.cpp:
49985         (WebCore::SpinButtonElement::defaultEventHandler):
49986         * page/FrameView.cpp:
49987         (WebCore::FrameView::convertToRenderer): Now pixel-snaps offsets before passing
49988         them to TransformState, which transforms the coordinates.
49989         (WebCore::FrameView::convertFromRenderer): Ditto.
49990         * rendering/LayoutState.cpp:
49991         (WebCore::LayoutState::LayoutState):
49992         * rendering/RenderBlock.cpp:
49993         (WebCore::RenderBlock::absoluteQuads):
49994         * rendering/RenderBox.cpp:
49995         (WebCore::RenderBox::absoluteQuads):
49996         (WebCore::RenderBox::mapLocalToContainer):
49997         (WebCore::RenderBox::mapAbsoluteToLocalPoint):
49998         * rendering/RenderBox.h:
49999         (RenderBox):
50000         * rendering/RenderBoxModelObject.cpp:
50001         (WebCore::RenderBoxModelObject::mapAbsoluteToLocalPoint):
50002         * rendering/RenderBoxModelObject.h:
50003         (RenderBoxModelObject):
50004         * rendering/RenderEmbeddedObject.cpp:
50005         (WebCore::RenderEmbeddedObject::isInUnavailablePluginIndicator):
50006         * rendering/RenderFrameSet.cpp:
50007         (WebCore::RenderFrameSet::userResize):
50008         * rendering/RenderGeometryMap.cpp:
50009         (WebCore::RenderGeometryMap::absolutePoint):
50010         * rendering/RenderInline.cpp:
50011         (WebCore::RenderInline::mapLocalToContainer):
50012         * rendering/RenderInline.h:
50013         (RenderInline):
50014         * rendering/RenderLayer.cpp:
50015         (WebCore::RenderLayer::absoluteToContents):
50016         (WebCore::RenderLayer::calculateClipRects):
50017         * rendering/RenderMediaControls.cpp:
50018         (WebCore::RenderMediaControls::volumeSliderOffsetFromMuteButton):
50019         * rendering/RenderMenuList.cpp:
50020         (WebCore::RenderMenuList::showPopup):
50021         * rendering/RenderObject.cpp:
50022         (WebCore::RenderObject::localToAbsolute):
50023         (WebCore::RenderObject::absoluteToLocal):
50024         (WebCore::RenderObject::mapLocalToContainer):
50025         (WebCore::RenderObject::mapAbsoluteToLocalPoint):
50026         (WebCore::RenderObject::localToContainerQuad):
50027         (WebCore::RenderObject::localToContainerPoint):
50028         * rendering/RenderObject.h:
50029         (RenderObject): MapLocalToContainerFlags is now MapCoordinatesFlags since it's
50030         now used for other conversion methods.
50031         (WebCore::RenderObject::localToAbsoluteQuad):
50032         * rendering/RenderTheme.cpp:
50033         (WebCore::RenderTheme::volumeSliderOffsetFromMuteButton):
50034         * rendering/RenderView.cpp:
50035         (WebCore::RenderView::mapLocalToContainer):
50036         (WebCore::RenderView::mapAbsoluteToLocalPoint):
50037         * rendering/RenderView.h:
50038         (RenderView):
50039         * rendering/svg/RenderSVGForeignObject.cpp:
50040         (WebCore::RenderSVGForeignObject::mapLocalToContainer):
50041         * rendering/svg/RenderSVGForeignObject.h:
50042         (RenderSVGForeignObject):
50043         * rendering/svg/RenderSVGInline.cpp:
50044         (WebCore::RenderSVGInline::mapLocalToContainer):
50045         * rendering/svg/RenderSVGInline.h:
50046         (RenderSVGInline):
50047         * rendering/svg/RenderSVGModelObject.cpp:
50048         (WebCore::RenderSVGModelObject::mapLocalToContainer):
50049         * rendering/svg/RenderSVGModelObject.h:
50050         (RenderSVGModelObject):
50051         * rendering/svg/RenderSVGRoot.cpp:
50052         (WebCore::RenderSVGRoot::mapLocalToContainer):
50053         * rendering/svg/RenderSVGRoot.h:
50054         (RenderSVGRoot):
50055         * rendering/svg/RenderSVGText.cpp:
50056         (WebCore::RenderSVGText::mapLocalToContainer):
50057         * rendering/svg/RenderSVGText.h:
50058         (RenderSVGText):
50059         * rendering/svg/SVGRenderSupport.cpp:
50060         (WebCore::SVGRenderSupport::mapLocalToContainer):
50061         * svg/SVGSVGElement.cpp:
50062         (WebCore::SVGSVGElement::localCoordinateSpaceTransform):
50063
50064 2012-10-11  Adam Barth  <abarth@webkit.org>
50065
50066         Incorrect/Illegal static cast in FrameView.cpp
50067         https://bugs.webkit.org/show_bug.cgi?id=98943
50068
50069         Reviewed by Eric Seidel.
50070
50071         HTMLFrameElementBase is the common base class for <frame> and <iframe>.
50072
50073         * page/FrameView.cpp:
50074         (WebCore::FrameView::init):
50075
50076 2012-10-11  Kenichi Ishibashi  <bashi@chromium.org>
50077
50078         [Chromium] Improve vertical text rendering of HarfBuzzShaper
50079         https://bugs.webkit.org/show_bug.cgi?id=98979
50080
50081         Reviewed by Tony Chang.
50082
50083         - Specify 'vert' and 'vrt2' features when we render vertical text.
50084         - Set appropriate script so that harfbuzz-ng can use the features.
50085
50086         No new tests. fast/text/international/text-spliced-font.html should cover this change.
50087         This change will affect after switching to harfbuzz-ng.
50088
50089         * platform/graphics/harfbuzz/ng/HarfBuzzNGFace.cpp:
50090         (WebCore::HarfBuzzNGFace::HarfBuzzNGFace):
50091         (WebCore::findScriptForVerticalGlyphSubstitution): Added.
50092         (WebCore):
50093         (WebCore::HarfBuzzNGFace::setScriptForVerticalGlyphSubstitution): Added.
50094         * platform/graphics/harfbuzz/ng/HarfBuzzNGFace.h:
50095         (HarfBuzzNGFace): Added m_scriptForVerticalText.
50096         * platform/graphics/harfbuzz/ng/HarfBuzzShaper.cpp:
50097         (WebCore::HarfBuzzShaper::setFontFeatures):
50098         Set 'vert' and 'vrt2' features when orientation() == Vertical.
50099         (WebCore::HarfBuzzShaper::shapeHarfBuzzRuns):
50100         Call setScriptForVerticalGlyphSubstitution() when orientation() == Vertical.
50101
50102 2012-10-11  Dominic Mazzoni  <dmazzoni@google.com>
50103
50104         AX: labelForElement is slow when there are a lot of DOM elements
50105         https://bugs.webkit.org/show_bug.cgi?id=97825
50106
50107         Reviewed by Ryosuke Niwa.
50108
50109         Adds a DocumentOrderedMap to TreeScope that allows accessibility to
50110         quickly map from an id to the label for that id. This speeds up
50111         AccessibilityNode::labelForElement, which was a bottleneck in Chromium
50112         when accessibility was on.
50113
50114         Tests: accessibility/title-ui-element-correctness.html
50115                perf/accessibility-title-ui-element.html
50116
50117         * accessibility/AccessibilityNodeObject.cpp:
50118         (WebCore::AccessibilityNodeObject::labelForElement):
50119         * dom/DocumentOrderedMap.cpp:
50120         (WebCore::keyMatchesLabelForAttribute):
50121         (WebCore):
50122         (WebCore::DocumentOrderedMap::getElementByLabelForAttribute):
50123         * dom/DocumentOrderedMap.h:
50124         (DocumentOrderedMap):
50125         * dom/Element.cpp:
50126         (WebCore::Element::insertedInto):
50127         (WebCore::Element::removedFrom):
50128         (WebCore::Element::updateLabel):
50129         (WebCore):
50130         (WebCore::Element::willModifyAttribute):
50131         * dom/Element.h:
50132         (Element):
50133         * dom/TreeScope.cpp:
50134         (WebCore::TreeScope::TreeScope):
50135         (WebCore::TreeScope::addLabel):
50136         (WebCore):
50137         (WebCore::TreeScope::removeLabel):
50138         (WebCore::TreeScope::labelElementForId):
50139         * dom/TreeScope.h:
50140         (WebCore):
50141         (TreeScope):
50142         (WebCore::TreeScope::shouldCacheLabelsByForAttribute):
50143
50144 2012-10-11  James Simonsen  <simonjam@chromium.org>
50145
50146         unprefix window.performance.webkitNow()
50147         https://bugs.webkit.org/show_bug.cgi?id=88278
50148
50149         Reviewed by Tony Gentilcore.
50150
50151         Test: fast/dom/Window/window-properties-performance.html
50152               fast/performance/performance-now-timestamps.html
50153
50154         * page/Performance.cpp:
50155         (WebCore::Performance::now):
50156         * page/Performance.h:
50157         (Performance):
50158         * page/Performance.idl:
50159
50160 2012-10-11  Roger Fong  <roger_fong@apple.com>
50161
50162         [WebGL] [Mac] only the mapped symbol for the first element of a uniform/attribute array is stored.
50163         https://bugs.webkit.org/show_bug.cgi?id=98966
50164
50165         Reviewed by Dean Jackson.
50166
50167         We currently do not add name/mappedName symbol pairs for each element of a uniform/attribute array.
50168         This is because we only add a number of symbols equal to how many symbols the shader compiler tells us there are.
50169         The shader compiler treats an array as a single uniform. We need to be adding in symbols to the map for each element of the array ourselves.
50170         The mappedName of each array element is the same between elements except for the "[index]" at the end so this is easy to do.
50171
50172         Tested using Khronos WebGL conformance suite:
50173         conformance/glsl/misc/glsl-long-variable-names.html
50174
50175         * platform/graphics/ANGLEWebKitBridge.cpp:
50176         (WebCore::getSymbolInfo):
50177
50178 2012-10-11  Andreas Kling  <kling@webkit.org>
50179
50180         ElementAttributeData shouldn't be managing Element's callbacks.
50181         <http://webkit.org/b/98987>
50182
50183         Reviewed by Anders Carlsson.
50184
50185         Dispatch the following attribute-related Element callbacks from within Element
50186         instead of ElementAttributeData. Also made them private.
50187
50188             - willModifyAttribute
50189             - didModifyAttribute
50190             - didAddAttribute
50191             - didRemoveAttribute
50192
50193         No behavior change, just making ElementAttributeData a bit dumber (a good thing.)
50194
50195         * dom/Element.cpp:
50196         (WebCore::Element::detachAttribute):
50197         (WebCore::Element::removeAttribute):
50198         (WebCore::Element::setAttributeInternal):
50199         (WebCore::Element::removeAttributeInternal):
50200         (WebCore::Element::addAttributeInternal):
50201         * dom/Element.h:
50202         * dom/ElementAttributeData.cpp:
50203         (WebCore::ElementAttributeData::addAttribute):
50204         (WebCore::ElementAttributeData::removeAttribute):
50205         * dom/ElementAttributeData.h:
50206
50207 2012-10-11  Huang Dongsung  <luxtella@company100.net>
50208
50209         [CSS Shaders] Make custom filters use a premultiplied buffer.
50210         https://bugs.webkit.org/show_bug.cgi?id=98396
50211
50212         Reviewed by Dean Jackson.
50213
50214         Currently, a GLSL css_Composite function returns a premultiplied color, so
50215         FECustomFilter must make a premultiplied buffer in the case when an author is
50216         using the CSS mix function.
50217
50218         In addition, there are two performance benefits when FECustomFilter uses a premultiplied buffer.
50219         1. FilterEffect::asImageBuffer is faster.
50220         2. In the future when Accelerated Compositing implementations use
50221         FECustomFilter, they do not need to convert an unmultiplied buffer to a
50222         premultiplied buffer.
50223
50224         Test: css3/filters/custom/custom-filter-composite-fractional-source-alpha.html
50225
50226         * platform/graphics/filters/FECustomFilter.cpp:
50227         (WebCore::FECustomFilter::applyShader):
50228
50229 2012-10-11  Rob Buis  <rbuis@rim.com>
50230
50231         [CMAKE] Do not add include dirs twice
50232         https://bugs.webkit.org/show_bug.cgi?id=99099
50233
50234         Reviewed by Yong Li.
50235
50236         Do not add WebCore_INCLUDE_DIRECTORIES to WebCoreTestSupport_INCLUDE_DIRECTORIES, the includes_directory
50237         call does this for us.
50238
50239         * CMakeLists.txt:
50240
50241 2012-10-11  Huang Dongsung  <luxtella@company100.net>
50242
50243         [CSS Shaders] Implement all composite operators except destination and lighter.
50244         https://bugs.webkit.org/show_bug.cgi?id=97859
50245
50246         Reviewed by Dean Jackson.
50247
50248         Add expressions for all composite operators except destination and
50249         lighter. The expressions are lifted directly from the CSS Compositing
50250         and Blending spec [1]. WebKit adds these compositing expressions to the
50251         author's shader.
50252
50253         [1]: https://dvcs.w3.org/hg/FXTF/rawfile/tip/compositing/index.html#advancedcompositing
50254
50255         Test: css3/filters/custom/custom-filter-composite-operators.html
50256
50257         * platform/graphics/filters/CustomFilterValidatedProgram.cpp:
50258         (WebCore::CustomFilterValidatedProgram::compositeFunctionString):
50259
50260 2012-10-11  Joshua Bell  <jsbell@chromium.org>
50261
50262         IndexedDB: IDL types defined in spec should be visible to scripts
50263         https://bugs.webkit.org/show_bug.cgi?id=99093
50264
50265         Reviewed by Adam Barth.
50266
50267         Interfaces defined in the spec WebIDL, such as IDBCursorWithValue, should be exposed
50268         to scripts as properties of the global object. A few types were missing - add them.
50269
50270         Test: storage/indexeddb/interfaces.html
50271
50272         * Modules/indexeddb/DOMWindowIndexedDatabase.idl:
50273         * Modules/indexeddb/WorkerContextIndexedDatabase.idl:
50274
50275 2012-10-11  Geoffrey Garen  <ggaren@apple.com>
50276
50277         Removed ASSERT_CLASS_FITS_IN_CELL
50278         https://bugs.webkit.org/show_bug.cgi?id=97634
50279
50280         Reviewed by Mark Hahnenberg.
50281
50282         * bindings/js/JSDOMWindowShell.cpp:
50283         (WebCore):
50284         * bindings/js/JSImageConstructor.cpp:
50285         (WebCore):
50286         * bindings/js/JSNodeFilterCondition.cpp:
50287         (WebCore):
50288         * bindings/js/JSWorkerContextBase.cpp:
50289         (WebCore):
50290         * bindings/scripts/CodeGeneratorJS.pm:
50291         (GenerateImplementation):
50292         * bindings/scripts/test/JS/JSFloat64Array.cpp:
50293         (WebCore):
50294         * bindings/scripts/test/JS/JSTestActiveDOMObject.cpp:
50295         (WebCore):
50296         * bindings/scripts/test/JS/JSTestCustomNamedGetter.cpp:
50297         (WebCore):
50298         * bindings/scripts/test/JS/JSTestEventConstructor.cpp:
50299         (WebCore):
50300         * bindings/scripts/test/JS/JSTestEventTarget.cpp:
50301         (WebCore):
50302         * bindings/scripts/test/JS/JSTestException.cpp:
50303         (WebCore):
50304         * bindings/scripts/test/JS/JSTestInterface.cpp:
50305         (WebCore):
50306         * bindings/scripts/test/JS/JSTestMediaQueryListListener.cpp:
50307         (WebCore):
50308         * bindings/scripts/test/JS/JSTestNamedConstructor.cpp:
50309         (WebCore):
50310         * bindings/scripts/test/JS/JSTestNode.cpp:
50311         (WebCore):
50312         * bindings/scripts/test/JS/JSTestObj.cpp:
50313         (WebCore):
50314         * bindings/scripts/test/JS/JSTestSerializedScriptValueInterface.cpp:
50315         (WebCore):
50316         * bridge/runtime_method.cpp:
50317         (JSC):
50318
50319 2012-10-10  Brady Eidson  <beidson@apple.com>
50320
50321         Switch ResourceLoader::resourceData() from SharedBuffer to ResourceBuffer
50322         https://bugs.webkit.org/show_bug.cgi?id=98976
50323
50324         Reviewed by Anders Carlsson.
50325
50326         No new tests (No change in behavior).
50327
50328         * WebCore.exp.in:
50329         * html/ImageDocument.cpp:
50330         (WebCore::ImageDocumentParser::appendBytes):
50331         (WebCore::ImageDocumentParser::finish):
50332         * inspector/InspectorPageAgent.cpp:
50333         (WebCore::InspectorPageAgent::mainResourceContent):
50334         (WebCore::InspectorPageAgent::sharedBufferContent):
50335         (WebCore):
50336         (WebCore::InspectorPageAgent::dataContent):
50337         * inspector/InspectorPageAgent.h:
50338         * inspector/InspectorResourceAgent.cpp:
50339         (WebCore::InspectorResourceAgent::didFinishLoading):
50340         (WebCore::InspectorResourceAgent::didFailLoading):
50341         * loader/DocumentLoader.cpp:
50342         (WebCore::DocumentLoader::mainResourceData):
50343         (WebCore::DocumentLoader::setupForReplaceByMIMEType):
50344         (WebCore::DocumentLoader::maybeCreateArchive):
50345         (WebCore::DocumentLoader::mainResource):
50346         (WebCore::DocumentLoader::maybeFinishLoadingMultipartContent):
50347         * loader/DocumentLoader.h:
50348         (WebCore):
50349         (DocumentLoader):
50350         * loader/ResourceBuffer.cpp:
50351         (WebCore::ResourceBuffer::append):
50352         (WebCore):
50353         (WebCore::ResourceBuffer::clear):
50354         * loader/ResourceBuffer.h:
50355         (ResourceBuffer):
50356         * loader/ResourceLoader.cpp:
50357         (WebCore::ResourceLoader::resourceData):
50358         (WebCore::ResourceLoader::addData):
50359         (WebCore::ResourceLoader::willStopBufferingData):
50360         * loader/ResourceLoader.h:
50361         (WebCore):
50362         (ResourceLoader):
50363         * loader/SubresourceLoader.cpp:
50364         (WebCore::SubresourceLoader::didReceiveResponse):
50365         (WebCore::SubresourceLoader::sendDataToResource):
50366         (WebCore::SubresourceLoader::didFinishLoading):
50367         * loader/appcache/ApplicationCacheGroup.cpp:
50368         (WebCore::ApplicationCacheGroup::finishedLoadingMainResource):
50369
50370 2012-10-11  Konrad Piascik  <kpiascik@rim.com>
50371
50372         Web Inspector: node search does not work with elements on touch start listener
50373         https://bugs.webkit.org/show_bug.cgi?id=95252
50374
50375         Reviewed by Pavel Feldman.
50376
50377         Added new InspectorInstrumentation::handleTouchEvent() method which
50378         will prevent a touch handler from firing and inspect and element if we
50379         are already searching for a node to highlight.
50380         Now when a user has chosen to inspect element (magnifying glass icon)
50381         and touches on a page the event will be directed to inspector and
50382         handled appropriately.
50383
50384         Not testable.
50385
50386         * inspector/InspectorDOMAgent.cpp:
50387         (WebCore::InspectorDOMAgent::handleTouchEvent):
50388         (WebCore):
50389         * inspector/InspectorDOMAgent.h:
50390         (InspectorDOMAgent):
50391         * inspector/InspectorInstrumentation.cpp:
50392         (WebCore):
50393         (WebCore::InspectorInstrumentation::handleTouchEventImpl):
50394         * inspector/InspectorInstrumentation.h:
50395         (InspectorInstrumentation):
50396         (WebCore::InspectorInstrumentation::handleTouchEvent):
50397         (WebCore):
50398         * page/EventHandler.cpp:
50399         (WebCore::EventHandler::handleTouchEvent):
50400
50401 2012-10-11  Otto Derek Cheung  <otcheung@rim.com>
50402
50403         [BlackBerry] Credentials for HTTPS urls are saved in the HTTP protection space
50404         https://bugs.webkit.org/show_bug.cgi?id=99082
50405
50406         Reviewed by Rob Buis.
50407
50408         Adding support for secure ProtectionSpaces in Credentials
50409         to prevent credentials from being overwritten/used when the user
50410         accesses both versions of the same url.
50411
50412         PR 199457
50413
50414         The issue was the secure/non-secure version of the same protocol
50415         were using the same ProtectionSpace enum in the network stack. When
50416         the credentials are saved, it will overwrite each other since the
50417         protection object is identical.
50418
50419         The fix is to use the WebKit provided secure enums when the protcol is secure.
50420
50421         To test this, access a restricted site that is running on http. Save the
50422         password and access the same restricted site (same domain
50423         and path) but on https. The browser should prompt for credentials.
50424
50425         * platform/network/blackberry/NetworkJob.cpp:
50426         (WebCore::NetworkJob::notifyAuthReceived):
50427         (WebCore::NetworkJob::handleFTPHeader):
50428         (WebCore::NetworkJob::sendRequestWithCredentials):
50429         (WebCore::NetworkJob::storeCredentials):
50430         * platform/network/blackberry/NetworkManager.cpp:
50431         (WebCore::NetworkManager::startJob):
50432
50433 2012-10-11  Arnaud Renevier  <a.renevier@sisa.samsung.com>
50434
50435         [texmap] logic error in BitmapTextureGL::updateContents
50436         https://bugs.webkit.org/show_bug.cgi?id=98969
50437
50438         Reviewed by Noam Rosenthal.
50439
50440         Incorrect test (bytesPerLine == targetRect.width() / 4) never
50441         evaluates to true. Change it to correct test 
50442         (bytesPerLine == targetRect.width() * 4)
50443
50444         No new tests because no functional change.
50445
50446         * platform/graphics/texmap/TextureMapperGL.cpp:
50447         (WebCore::BitmapTextureGL::updateContents):
50448
50449 2012-10-11  Dan Bernstein  <mitz@apple.com>
50450
50451         <rdar://problem/12477191> Combined text reverts to full-width font after a style change
50452         https://bugs.webkit.org/show_bug.cgi?id=99009
50453
50454         Reviewed by John Sullivan.
50455
50456         Test: fast/text/text-combine-width-after-style-change.html
50457
50458         * rendering/RenderCombineText.cpp:
50459         (WebCore::RenderCombineText::styleDidChange): Changed to reset m_isCombined to false, to
50460         ensure that combineText() is called on the next layout.
50461
50462 2012-10-11  Arnaud Renevier  <a.renevier@sisa.samsung.com>
50463
50464         accelerated compositing does not work with ati driver
50465         https://bugs.webkit.org/show_bug.cgi?id=97472
50466
50467         Reviewed by Martin Robinson.
50468
50469         Create m_parentWindow at positive position. Otherwise, parts of it are
50470         not displayed on ati drivers.
50471
50472         Covered by existing tests.
50473
50474         * platform/gtk/RedirectedXCompositeWindow.cpp:
50475         (WebCore::RedirectedXCompositeWindow::RedirectedXCompositeWindow):
50476
50477 2012-10-11  Jaehun Lim  <ljaehun.lim@samsung.com>
50478
50479         Fix JPEG decoding faiure when IMAGE_DECODER_DOWN_SAMPLING is enabled
50480         https://bugs.webkit.org/show_bug.cgi?id=98878
50481
50482         Reviewed by Kenneth Russell.
50483
50484         When using libjpeg-turbo and enabling IMAGE_DECODER_DOWN_SAMPLING,
50485         JPEG decoding failed because of no support for JCS_EXT_RGBA, JCS_EXT_BGRA.
50486         Set RGBA values when color space is JCS_EXT_RGBA or JCS_EXT_BGRA.
50487
50488         No new tests.
50489
50490         * platform/image-decoders/jpeg/JPEGImageDecoder.cpp:
50491         (WebCore::JPEGImageDecoder::outputScanlines):
50492
50493 2012-10-11  Vsevolod Vlasov  <vsevik@chromium.org>
50494
50495         Web Inspector: Preview HTML in ajax responses in network panel
50496         https://bugs.webkit.org/show_bug.cgi?id=99066
50497
50498         Reviewed by Yury Semikhatsky.
50499
50500         HTML preview is now shown for XHR responses with text/html mime types.
50501         Also RequestHTMLView is refactored to use sandbox iframe correctly.
50502         Also extracted a method to generate dataURL from resource/request content.
50503
50504         * inspector/front-end/NetworkRequest.js:
50505         (WebInspector.NetworkRequest):
50506         (WebInspector.NetworkRequest.prototype.populateImageSource):
50507         (WebInspector.NetworkRequest.prototype.asDataURL):
50508         * inspector/front-end/RequestHTMLView.js:
50509         (WebInspector.RequestHTMLView):
50510         (WebInspector.RequestHTMLView.prototype._createIFrame):
50511         * inspector/front-end/RequestPreviewView.js:
50512         (WebInspector.RequestPreviewView.prototype._createPreviewView):
50513         * inspector/front-end/Resource.js:
50514         (WebInspector.Resource.prototype.populateImageSource):
50515         * inspector/front-end/ResourceUtils.js:
50516         (WebInspector.contentAsDataURL):
50517
50518 2012-10-11  Christophe Dumez  <christophe.dumez@intel.com>
50519
50520         Regression(r131058): Broke EFL build
50521         https://bugs.webkit.org/show_bug.cgi?id=99079
50522
50523         Unreviewed build fix.
50524
50525         Use iterator::value instead of iterator::second to fix
50526         build break after r131058.
50527
50528         * platform/graphics/freetype/SimpleFontDataFreeType.cpp:
50529         (WebCore::SimpleFontData::canRenderCombiningCharacterSequence):
50530
50531 2012-10-11  Mihai Balan  <mibalan@adobe.com>
50532
50533         Always enable the experiments tab for WebKit nightly
50534
50535         Web Inspector: Enabling experiments tab in WebKit nightly.
50536         https://bugs.webkit.org/show_bug.cgi?id=98923
50537
50538         Reviewed by Pavel Feldman.
50539
50540         Enabling Web Inspector experiments tab in WebKit nightly. This is done by adding a new
50541         Preference key, Preferences.experimentsEnabled. Default values are true for WebKit and false
50542         for Chromium. They can also be overridden as before (in Chromium)
50543
50544         * inspector/front-end/Settings.js:
50545         (WebInspector.ExperimentsSettings.prototype.get experimentsEnabled):
50546
50547 2012-10-11  Hayato Ito  <hayato@chromium.org>
50548
50549         Support re-projection for Shadow DOM.
50550         https://bugs.webkit.org/show_bug.cgi?id=97151
50551
50552         Reviewed by Dimitri Glazkov.
50553
50554         Update node distribution algorithm so that nodes can be re-projected to insertion points
50555         in nested shadow subtree.
50556
50557         See the latest Shadow DOM spec for what 're-projected' means:
50558         - http://dvcs.w3.org/hg/webcomponents/raw-file/tip/spec/shadow/index.html
50559         Also see the related W3C bug:
50560         - http://www.w3.org/Bugs/Public/show_bug.cgi?id=18513
50561
50562         Since this change breaks existing behavior, we have to update several code at once, which includes:
50563         - ContentDistributer: ContentDistributor now re-projects distributed nodes.
50564         - ComposedShadowTreeWalker: ComposedShadowTreeWalker is now aware of re-projection. That can
50565           resolve re-projection transparently.
50566         - AncestorChainWalker (formerly named ComposedShadowTreeParentWallker):
50567           AncestorChainWalker is now aware of re-projection. I've also added a crossingInsertionPoint()
50568           member function so that clients of the walker can know whether the walker is just crossing
50569           insertion points for a re-projected node.
50570         - EventDispatcher: EventDispatcher now uses the updated AncestorChainWalker and its
50571           crossingInsertionPoint() so that EventDispatcher can compute relative target for each ancestor correctly.
50572
50573         I've also updated existing layout tests and added some layout tests for re-projection.
50574         Re-projection for multiple shadow root is not supported yet. I'll address that in another bug.
50575
50576         Tests: fast/dom/shadow/composed-shadow-tree-walker.html
50577                fast/dom/shadow/shadow-dom-event-dispatching.html
50578                fast/dom/shadow/shadowdom-reprojection-1.html
50579                fast/dom/shadow/shadowdom-reprojection-2.html
50580
50581         * dom/ComposedShadowTreeWalker.cpp:
50582         (WebCore::resolveReprojection):
50583         (WebCore):
50584         (WebCore::ComposedShadowTreeWalker::traverseSiblingOrBackToInsertionPoint):
50585         (WebCore::ComposedShadowTreeWalker::traverseParent):
50586         (WebCore::AncestorChainWalker::AncestorChainWalker):
50587         (WebCore::AncestorChainWalker::parent):
50588         * dom/ComposedShadowTreeWalker.h:
50589         (AncestorChainWalker):
50590         (WebCore::AncestorChainWalker::crossingInsertionPoint):
50591         * dom/EventDispatcher.cpp:
50592         (WebCore::EventRelatedTargetAdjuster::adjust):
50593         (WebCore::EventDispatcher::ensureEventAncestors):
50594         * dom/TreeScope.cpp:
50595         (WebCore::TreeScope::focusedNode):
50596         * html/HTMLLIElement.cpp:
50597         (WebCore::HTMLLIElement::attach):
50598         * html/shadow/ContentDistributor.cpp:
50599         (WebCore::ContentDistributor::distribute):
50600         * page/EventHandler.cpp:
50601         (WebCore::EventHandler::updateMouseEventTargetNode):
50602
50603 2012-10-11  Shinya Kawanaka  <shinyak@chromium.org>
50604
50605         Make ContentSelectorQuery work when siblings are passed explicitly.
50606         https://bugs.webkit.org/show_bug.cgi?id=96990
50607
50608         Reviewed by Dimitri Glazkov.
50609
50610         When we implement content reprojection in ShadowDOM, we have to pass a node pool to SelectorChecker.
50611         We introdue ShadowDOMSiblingTraversalStrategy, which traverses a node pool instead of real node siblings.
50612
50613         Since ContentSelector is a very hot place, we don't want to regress performance. In the previous patch,
50614         we've make ContentSelector::checkOneSelector template to take SiblingTraversalStrategy as an argument.
50615
50616         We also move DOMSiblingTraversalStrategy to SiblingTraversalStrategies.h.
50617
50618         * GNUmakefile.list.am:
50619         * Target.pri:
50620         * WebCore.gypi:
50621         * WebCore.vcproj/WebCore.vcproj:
50622         * WebCore.xcodeproj/project.pbxproj:
50623         * css/SelectorChecker.cpp:
50624         (WebCore):
50625         * css/SelectorChecker.h:
50626         * css/SiblingTraversalStrategies.h: Added.
50627         (WebCore):
50628         (DOMSiblingTraversalStrategy): Moved from SelectorChecker.
50629         (WebCore::DOMSiblingTraversalStrategy::isFirstChild):
50630         (WebCore::DOMSiblingTraversalStrategy::isLastChild):
50631         (WebCore::DOMSiblingTraversalStrategy::isFirstOfType):
50632         (WebCore::DOMSiblingTraversalStrategy::isLastOfType):
50633         (WebCore::DOMSiblingTraversalStrategy::countElementsBefore):
50634         (WebCore::DOMSiblingTraversalStrategy::countElementsOfTypeBefore):
50635         (WebCore::DOMSiblingTraversalStrategy::countElementsAfter):
50636         (WebCore::DOMSiblingTraversalStrategy::countElementsOfTypeAfter):
50637         (WebCore::ShadowDOMSiblingTraversalStrategy::ShadowDOMSiblingTraversalStrategy):
50638         (ShadowDOMSiblingTraversalStrategy): SiblingTraversalStrategy which uses a node pool instead of a real element
50639         siblings. This strategy takes a vector of node which we traverse.
50640         (WebCore::ShadowDOMSiblingTraversalStrategy::isFirstChild):
50641         (WebCore::ShadowDOMSiblingTraversalStrategy::isLastChild):
50642         (WebCore::ShadowDOMSiblingTraversalStrategy::isFirstOfType):
50643         (WebCore::ShadowDOMSiblingTraversalStrategy::isLastOfType):
50644         (WebCore::ShadowDOMSiblingTraversalStrategy::countElementsBefore):
50645         (WebCore::ShadowDOMSiblingTraversalStrategy::countElementsAfter):
50646         (WebCore::ShadowDOMSiblingTraversalStrategy::countElementsOfTypeBefore):
50647         (WebCore::ShadowDOMSiblingTraversalStrategy::countElementsOfTypeAfter):
50648         * css/StyleResolver.cpp:
50649         * html/shadow/ContentDistributor.cpp:
50650         (WebCore::ContentDistributor::distributeSelectionsTo):
50651         * html/shadow/ContentSelectorQuery.cpp: Uses ShadowDOMSiblingTraversalStrategy instead of DOMSiblingTraversalStrategy.
50652         (WebCore::ContentSelectorChecker::ContentSelectorChecker):
50653         (WebCore):
50654         (WebCore::ContentSelectorChecker::checkContentSelector):
50655         (WebCore::ContentSelectorDataList::initialize):
50656         (WebCore::ContentSelectorDataList::matches):
50657         (WebCore::ContentSelectorQuery::ContentSelectorQuery):
50658         (WebCore::ContentSelectorQuery::matches):
50659         * html/shadow/ContentSelectorQuery.h:
50660         (ContentSelectorChecker):
50661         (WebCore):
50662         (ContentSelectorDataList):
50663         (ContentSelectorQuery):
50664
50665 2012-10-11  Balazs Kelemen  <kbalazs@webkit.org>
50666
50667         [Qt] GraphicsContextPlatformPrivate is leaking it's ShadowBlur
50668         https://bugs.webkit.org/show_bug.cgi?id=99073
50669
50670         Reviewed by Noam Rosenthal.
50671
50672         Stop leaking GraphicsContextPlatformPrivate::shadow.
50673
50674         No change in behavior so no new tests.
50675
50676         * platform/graphics/qt/GraphicsContextQt.cpp:
50677         (WebCore::GraphicsContextPlatformPrivate::~GraphicsContextPlatformPrivate):
50678         Always destroy shadow. It is obviously owned by the context so it has
50679         nothing to do with the erly return.
50680
50681 2012-10-11  Joshua Bell  <jsbell@chromium.org>
50682
50683         WebIDL: overloaded methods prevent number -> string conversion
50684         https://bugs.webkit.org/show_bug.cgi?id=85326
50685
50686         Reviewed by Kentaro Hara.
50687
50688         Make the default behavior for overloaded methods matching DOMString arguments match the
50689         default behavior for non-overloaded methods, which more closely matches the WebIDL spec.
50690         Enable legacy behavior of only matching undefined/null/string/object(and not number,
50691         boolean, etc) via the StrictTypeChecking attribute.
50692
50693         Tests: storage/indexeddb/cursor-overloads.html
50694                storage/indexeddb/legacy-constants.html
50695                ... and run-bindings-tests
50696
50697         * Modules/indexeddb/IDBCursor.cpp:
50698         (WebCore::IDBCursor::stringToDirection): Handle "0"..."4" as stringified legacy constants.
50699         * Modules/indexeddb/IDBCursor.h:
50700         * Modules/indexeddb/IDBDatabase.cpp: Remove redundant overloads.
50701         (WebCore::IDBDatabase::transaction): Remove redundant overloads.
50702         * Modules/indexeddb/IDBDatabase.h:
50703         (IDBDatabase):
50704         * Modules/indexeddb/IDBDatabase.idl: Remove redundant overloads.
50705         * Modules/indexeddb/IDBIndex.cpp: Remove redundant overloads.
50706         (WebCore::IDBIndex::openCursor):
50707         (WebCore::IDBIndex::openKeyCursor):
50708         * Modules/indexeddb/IDBIndex.h: Remove redundant overloads.
50709         (IDBIndex):
50710         * Modules/indexeddb/IDBIndex.idl: Remove redundant overloads.
50711         * Modules/indexeddb/IDBObjectStore.cpp: Remove redundant overloads.
50712         (WebCore::IDBObjectStore::openCursor):
50713         * Modules/indexeddb/IDBObjectStore.h: Remove redundant overloads.
50714         (IDBObjectStore):
50715         * Modules/indexeddb/IDBObjectStore.idl: Remove redundant overloads.
50716         * Modules/indexeddb/IDBTransaction.cpp:
50717         (WebCore::IDBTransaction::stringToMode): Handle "0"..."4" as stringified legacy constants.
50718         * Modules/indexeddb/IDBTransaction.h:
50719         * bindings/scripts/CodeGeneratorJS.pm: Check for StrictTypeChecking attribute.
50720         (GenerateParametersCheckExpression):
50721         * bindings/scripts/CodeGeneratorV8.pm: Ditto.
50722         (GenerateParametersCheckExpression):
50723         * bindings/scripts/test/JS/JSTestObj.cpp: Rebaselined.
50724         (WebCore::jsTestObjPrototypeFunctionOverloadedMethod11):
50725         (WebCore):
50726         (WebCore::jsTestObjPrototypeFunctionOverloadedMethod):
50727         * bindings/scripts/test/TestObj.idl: Added [StrictTypeChecking] to DOMString overloads,
50728         plus a new DOMString overload w/o it.
50729         * bindings/scripts/test/V8/V8TestObj.cpp: Rebaselined.
50730         (WebCore::TestObjV8Internal::overloadedMethod11Callback):
50731         (TestObjV8Internal):
50732         (WebCore::TestObjV8Internal::overloadedMethodCallback):
50733         * html/canvas/CanvasRenderingContext2D.idl: Tag legacy overloads with [StrictTypeChecking].
50734         * xml/XMLHttpRequest.idl: Ditto.
50735
50736 2012-10-11  Justin Novosad  <junov@chromium.org>
50737
50738         [Chromium][Mac] r130994 seems to break chromium gpu test
50739         https://bugs.webkit.org/show_bug.cgi?id=98995
50740
50741         Reviewed by Stephen White.
50742
50743         Removing unnecessary assertion that was based on an invalid assumption
50744         that 2d canvas draw operations were always called from within WebThread
50745         tasks.
50746
50747         Test: Canvas2DAllowed chromium gpu_test
50748
50749         * platform/graphics/chromium/Canvas2DLayerManager.cpp:
50750         (WebCore::Canvas2DLayerManager::willProcessTask):
50751
50752 2012-10-11  Kenichi Ishibashi <bashi@chromium.org>
50753
50754         REGRESSION(130231): Causes 3 complex font test failures on EFL / Harfbuzz+Freetype
50755         https://bugs.webkit.org/show_bug.cgi?id=98247
50756
50757         Reviewed by Kenneth Rohde Christiansen.
50758
50759         Implement canRenderCombiningCharacterSequence() for the Freetype case.
50760
50761         No new tests, covered by existing tests. Actually the lack of the implementation made
50762         fast/text/atsui-multiple-renderers.html,  fast/text/atsui-spacing-features.html and
50763         fast/text/wide-zero-width-space.html fail on EFL.
50764
50765         * platform/graphics/freetype/SimpleFontDataFreeType.cpp: Implement canRenderCombiningCharacterSequence().
50766         (WebCore::SimpleFontData::canRenderCombiningCharacterSequence):
50767
50768 2012-10-11  Keishi Hattori  <keishi@webkit.org>
50769
50770         F4 key should open the picker popup on Windows and Linux
50771         https://bugs.webkit.org/show_bug.cgi?id=98754
50772
50773         Reviewed by Kent Tamura.
50774
50775         On Windows, F4 key is used to open the combo box popup. We will introduce the same keybinding for picker popups.
50776
50777         Added test to calendar-picker-key-operations.html, date-suggestion-picker-key-operations.html, time-suggestion-picker-key-operations.html.
50778
50779         * html/BaseMultipleFieldsDateAndTimeInputType.cpp:
50780         (WebCore::BaseMultipleFieldsDateAndTimeInputType::handleKeydownEvent): Open picker on F4 key if it is enabled.
50781         * rendering/RenderTheme.cpp:
50782         (WebCore::RenderTheme::shouldOpenPickerWithF4Key): Returns true if we want to enable the F4 key binding on this platform. Return false for default.
50783         (WebCore):
50784         * rendering/RenderTheme.h:
50785         (RenderTheme):
50786         * rendering/RenderThemeChromiumLinux.cpp:
50787         (WebCore::RenderThemeChromiumLinux::shouldOpenPickerWithF4Key): Returns true.
50788         (WebCore):
50789         * rendering/RenderThemeChromiumLinux.h:
50790         * rendering/RenderThemeChromiumWin.cpp:
50791         (WebCore):
50792         (WebCore::RenderThemeChromiumWin::shouldOpenPickerWithF4Key): Returns true.
50793         * rendering/RenderThemeChromiumWin.h:
50794         (RenderThemeChromiumWin):
50795
50796 2012-10-11  John J. Barton  <johnjbarton@chromium.org>
50797
50798         Web Inspector: Zebra stripe the console
50799         https://bugs.webkit.org/show_bug.cgi?id=98701
50800
50801         Reviewed by Pavel Feldman.
50802
50803         Add .console-message:hover rule to lightly highlight the message line.
50804
50805         * inspector/front-end/inspector.css:
50806         (.console-message:hover):
50807
50808 2012-10-11  Vsevolod Vlasov  <vsevik@chromium.org>
50809
50810         Web Inspector: Filter out embedder injected content scripts
50811         https://bugs.webkit.org/show_bug.cgi?id=99039
50812
50813         Reviewed by Yury Semikhatsky.
50814
50815         * inspector/front-end/NetworkUISourceCodeProvider.js:
50816         (WebInspector.NetworkUISourceCodeProvider.prototype._parsedScriptSource):
50817
50818 2012-10-11  Pavel Feldman  <pfeldman@chromium.org>
50819
50820         Not reviewed: revert 131004, 131012, 131016, 131042, 131043 for breaking inspector console
50821         https://bugs.webkit.org/show_bug.cgi?id=99042
50822
50823         One can't type in the inspector console after 131004.
50824
50825         * CMakeLists.txt:
50826         * GNUmakefile.list.am:
50827         * Target.pri:
50828         * WebCore.gypi:
50829         * WebCore.vcproj/WebCore.vcproj:
50830         * WebCore.xcodeproj/project.pbxproj:
50831         * dom/DOMAllInOne.cpp:
50832         * dom/Element.cpp:
50833         (WebCore::Element::attach):
50834         (WebCore::Element::detach):
50835         (WebCore::Element::recalcStyle):
50836         * dom/Element.h:
50837         (WebCore):
50838         (Element):
50839         * dom/ElementRareData.h:
50840         (ElementRareData):
50841         * dom/Node.cpp:
50842         (WebCore::checkAcceptChild):
50843         * dom/Node.h:
50844         (Node):
50845         * dom/NodeRenderingContext.cpp:
50846         (WebCore::NodeRenderingContext::nextRenderer):
50847         * dom/PseudoElement.cpp: Removed.
50848         * dom/PseudoElement.h: Removed.
50849         * rendering/HitTestResult.cpp:
50850         (WebCore::HitTestResult::setInnerNode):
50851         (WebCore::HitTestResult::setInnerNonSharedNode):
50852         * rendering/RenderBlock.cpp:
50853         (WebCore::RenderBlock::styleDidChange):
50854         (WebCore::RenderBlock::updateBeforeAfterContent):
50855         (WebCore):
50856         (WebCore::RenderBlock::splitBlocks):
50857         (WebCore::RenderBlock::addChildIgnoringAnonymousColumnBlocks):
50858         (WebCore::RenderBlock::createReplacementRunIn):
50859         (WebCore::RenderBlock::renderName):
50860         * rendering/RenderBlock.h:
50861         (RenderBlock):
50862         * rendering/RenderButton.cpp:
50863         (WebCore::RenderButton::updateBeforeAfterContent):
50864         (WebCore):
50865         * rendering/RenderButton.h:
50866         (RenderButton):
50867         * rendering/RenderCounter.cpp:
50868         (WebCore::RenderCounter::originalText):
50869         * rendering/RenderDeprecatedFlexibleBox.cpp:
50870         (WebCore::RenderDeprecatedFlexibleBox::renderName):
50871         * rendering/RenderGrid.cpp:
50872         (WebCore::RenderGrid::renderName):
50873         * rendering/RenderInline.cpp:
50874         (WebCore::RenderInline::styleDidChange):
50875         (WebCore::RenderInline::addChildIgnoringContinuation):
50876         (WebCore::RenderInline::splitInlines):
50877         (WebCore::RenderInline::renderName):
50878         * rendering/RenderListItem.cpp:
50879         (WebCore::RenderListItem::updateMarkerLocation):
50880         * rendering/RenderMultiColumnBlock.cpp:
50881         (WebCore::RenderMultiColumnBlock::renderName):
50882         * rendering/RenderObject.cpp:
50883         (WebCore::RenderObject::createObject):
50884         * rendering/RenderObject.h:
50885         (WebCore::RenderObject::generatingNode):
50886         * rendering/RenderObjectChildList.cpp:
50887         (WebCore):
50888         (WebCore::findBeforeAfterParent):
50889         (WebCore::RenderObjectChildList::updateBeforeAfterStyle):
50890         (WebCore::createRendererForBeforeAfterContent):
50891         (WebCore::ensureBeforeAfterContainer):
50892         (WebCore::RenderObjectChildList::updateBeforeAfterContent):
50893         * rendering/RenderObjectChildList.h:
50894         (RenderObjectChildList):
50895         * rendering/RenderRubyText.cpp:
50896         (WebCore::RenderRubyText::updateBeforeAfterContent):
50897         (WebCore):
50898         * rendering/RenderRubyText.h:
50899         (RenderRubyText):
50900         * rendering/RenderTableCell.h:
50901         (WebCore::RenderTableCell::renderName):
50902         * rendering/RenderTableRow.cpp:
50903         (WebCore::RenderTableRow::updateBeforeAndAfterContent):
50904         (WebCore):
50905         (WebCore::RenderTableRow::styleDidChange):
50906         * rendering/RenderTableRow.h:
50907         (RenderTableRow):
50908         (WebCore::RenderTableRow::renderName):
50909         * rendering/RenderTableSection.cpp:
50910         (WebCore::RenderTableSection::addChild):
50911         * rendering/RenderTableSection.h:
50912         (WebCore::RenderTableSection::renderName):
50913         * rendering/RenderTreeAsText.cpp:
50914         (WebCore::RenderTreeAsText::writeRenderObject):
50915
50916 2012-10-11  Arpita Bahuguna  <arpitabahuguna@gmail.com>
50917
50918         REGRESSION (r96393): In some cases, generated content is never shown
50919         https://bugs.webkit.org/show_bug.cgi?id=88196
50920
50921         Reviewed by Antti Koivisto.
50922
50923         Elements with style specified from an attribute selector in conjunction
50924         with a pseudo-element should not take on the shared style of their
50925         previous matching sibling (if any).
50926
50927         The problem here is that an attribute selector appended by a pseudo-element
50928         does not return any matched rules for the call (matchesRuleSet(m_uncommonAttributeRuleSet.get()))
50929         in StyleResolver::locateSharedStyle().
50930
50931         This is because of the way pseudo-elements are handled in
50932         SelectorChecker::checkSelector(). For a pseudo-element selector we check
50933         for the condition (!context.elementStyle && m_mode == ResolvingStyle) and
50934         since for this particular flow the SelectorChecker mode is set to ResolvingStyle
50935         and since the current element's style is still not available we fail this
50936         initial check and return SelectorFailsLocally from checkSelector(). This is
50937         incorrect behavior since the element does have an attribute selector specified
50938         for it.
50939
50940         Have thus introduced another enum value: SharingRules for SelectorChecker's Mode.
50941         SelectorChecker's mode should be set to SharingRules before making the
50942         call to collectMatchingRules() and then reset (back to ResolvingStyle) thereafter.
50943
50944         Existing Mode value: CollectingRules although appropriate cannot be used in this
50945         scenario because we also don't want to set any value to dynamicPseudo for this flow.
50946
50947         Test: fast/selectors/style-sharing-attribute-selector-with-pseudo-element.html
50948
50949         * css/SelectorChecker.cpp:
50950         (WebCore::SelectorChecker::checkSelector):
50951         Added additional check for SelectorChecker's mode: SharingRules when
50952         trying to match for the pseudo-element selector.
50953
50954         * css/SelectorChecker.h:
50955         Added SharingRules to Mode enum.
50956
50957         * css/StyleResolver.cpp:
50958         (WebCore::StyleResolver::styleSharingCandidateMatchesRuleSet):
50959         (WebCore::StyleResolver::locateSharedStyle):
50960         * css/StyleResolver.h:
50961         (StyleResolver):
50962         Renamed matchesRuleSet() to a more descriptive styleSharingCandidateMatchesRuleSet().
50963         Also, setting the SelectorChecker's mode to SharingRules before calling
50964         on collectMatchingRules() from styleSharingCandidateMatchesRuleSet().
50965
50966 2012-10-11  Shinya Kawanaka  <shinyak@chromium.org>
50967
50968         Some shadow roots are not showing up in Inspector.
50969         https://bugs.webkit.org/show_bug.cgi?id=88251
50970
50971         Reviewed by Pavel Feldman.
50972
50973         When an element has only text node, its shadow root is not showing up in Inspector, since
50974         child text is shown in oneline. We had to prevent from inlining child text when a shadow root is
50975         added.
50976
50977         Test: inspector/elements/shadow-root.html
50978
50979         * inspector/front-end/DOMAgent.js:
50980         (WebInspector.DOMNode):
50981         (WebInspector.DOMNode.prototype.hasShadowRoots):
50982         * inspector/front-end/ElementsTreeOutline.js:
50983
50984 2012-10-11  Allan Sandfeld Jensen  <allan.jensen@digia.com>
50985
50986         [Qt] More responsive scroll animations
50987         https://bugs.webkit.org/show_bug.cgi?id=99016
50988
50989         Reviewed by Jocelyn Turcotte.
50990
50991         Changes the scrolling animations so they accelerate faster than they deccelerate,
50992         making the animation respond faster to user input.
50993
50994         * platform/ScrollAnimatorNone.cpp:
50995         (WebCore::ScrollAnimatorNone::parametersForScrollGranularity):
50996         * platform/ScrollAnimatorNone.h:
50997         (ScrollAnimatorNone):
50998
50999 2012-10-11  Alexander Shalamov  <alexander.shalamov@intel.com>
51000
51001         [CSS3 Media Queries] Aspect ratio value re-parsed when media query expression is evaluated
51002         https://bugs.webkit.org/show_bug.cgi?id=99003
51003
51004         Reviewed by Kenneth Rohde Christiansen.
51005
51006         Use CSSAspectRatioValue instead of CSSValueList to store aspect ratio value
51007         in order to avoid re-parsing of aspect ratio data during media expression evaluation.
51008
51009         test: fast/media/w3c/test_media_queries.html
51010
51011         * css/MediaQueryEvaluator.cpp:
51012         (WebCore::compareAspectRatioValue):
51013         (WebCore):
51014         (WebCore::aspect_ratioMediaFeatureEval):
51015         (WebCore::device_aspect_ratioMediaFeatureEval):
51016         * css/MediaQueryExp.cpp:
51017         (WebCore::MediaQueryExp::MediaQueryExp):
51018
51019 2012-10-11  Zeno Albisser  <zeno@webkit.org>
51020
51021         [Qt] Implement GraphicsSurfaceToken to replace uint64_t as token type.
51022         https://bugs.webkit.org/show_bug.cgi?id=98501
51023
51024         Replace the token type for GraphicsSurface with a new class GraphicsSurfaceToken.
51025         This is necessary in order to implement GraphicsSurface for Windows.
51026         Depending on the platform a GraphicsSurfaceToken might contain a
51027         WindowID (Linux/GLX), two IOSurfaceIDs (Mac) or in the future two HANDLEs (Windows).
51028         The simple uint64_t is not sufficient anymore, since a single HANDLE in windows
51029         can be 64bit already.
51030
51031         Reviewed by Noam Rosenthal.
51032
51033         * Target.pri:
51034         * platform/graphics/qt/GraphicsContext3DQt.cpp:
51035         (GraphicsContext3DPrivate):
51036         (WebCore::GraphicsContext3DPrivate::graphicsSurfaceToken):
51037         * platform/graphics/surfaces/GraphicsSurface.cpp:
51038         (WebCore::GraphicsSurface::create):
51039         (WebCore::GraphicsSurface::exportToken):
51040         * platform/graphics/surfaces/GraphicsSurface.h:
51041         (GraphicsSurface):
51042         * platform/graphics/surfaces/GraphicsSurfaceToken.h: Added.
51043         (WebCore):
51044         (GraphicsSurfaceToken):
51045         (WebCore::GraphicsSurfaceToken::GraphicsSurfaceToken):
51046         (WebCore::GraphicsSurfaceToken::operator!=):
51047         (WebCore::GraphicsSurfaceToken::isValid):
51048         * platform/graphics/surfaces/mac/GraphicsSurfaceMac.cpp:
51049         (WebCore::GraphicsSurfacePrivate::GraphicsSurfacePrivate):
51050         (WebCore::GraphicsSurfacePrivate::token):
51051         (GraphicsSurfacePrivate):
51052         (WebCore::GraphicsSurface::platformExport):
51053         (WebCore::GraphicsSurface::platformImport):
51054         * platform/graphics/surfaces/qt/GraphicsSurfaceGLX.cpp:
51055         (WebCore::GraphicsSurface::platformExport):
51056         (WebCore::GraphicsSurface::platformImport):
51057         * platform/graphics/texmap/TextureMapperBackingStore.cpp:
51058         (WebCore::TextureMapperSurfaceBackingStore::setGraphicsSurface):
51059         (WebCore::TextureMapperSurfaceBackingStore::setSurface):
51060         * platform/graphics/texmap/TextureMapperBackingStore.h:
51061         (TextureMapperSurfaceBackingStore):
51062         (WebCore::TextureMapperSurfaceBackingStore::TextureMapperSurfaceBackingStore):
51063         * platform/graphics/texmap/TextureMapperPlatformLayer.h:
51064         (WebCore::TextureMapperPlatformLayer::graphicsSurfaceToken):
51065
51066 2012-10-11  Alexander Pavlov  <apavlov@chromium.org>
51067
51068         Web Inspector: [Elements] Breadcrumbs are not updated upon involved elements' className changes
51069         https://bugs.webkit.org/show_bug.cgi?id=98887
51070
51071         Reviewed by Vsevolod Vlasov.
51072
51073         Breadcrumbs should be updated upon the "class" and "id" attribute changes of elements participating in the breadcrumb path.
51074
51075         Test: inspector/elements/breadcrumb-updates.html
51076
51077         * inspector/front-end/ElementsPanel.js:
51078         (WebInspector.ElementsPanel):
51079         (WebInspector.ElementsPanel.prototype._updateBreadcrumbIfNeeded):
51080
51081 2012-10-11  Kunihiko Sakamoto  <ksakamoto@chromium.org>
51082
51083         Final newline (LF or CRLF) in paste buffer is converted to space
51084         https://bugs.webkit.org/show_bug.cgi?id=80838
51085
51086         Reviewed by Ryosuke Niwa.
51087
51088         Currently newline characters are replaced with spaces when pasted
51089         to text input. This behavior was introduced in r37539, with the
51090         intention to follow the FireFox's behavior (see
51091         https://bugs.webkit.org/show_bug.cgi?id=20461). However, FireFox
51092         truncates newlines at the end of pasted text, instead of replacing
51093         them with spaces. So this patch changes TextFieldInputType to cut
51094         trailing newlines of inserted text.
51095
51096         Test: fast/forms/paste-multiline-text-input.html
51097
51098         * html/TextFieldInputType.cpp:
51099         (WebCore::TextFieldInputType::handleBeforeTextInsertedEvent):
51100         Truncates trailing newlines.
51101
51102 2012-10-11  Kent Tamura  <tkent@chromium.org>
51103
51104         Introduce Localizer::isRTL, and use it in DateTimeChooserImpl
51105         https://bugs.webkit.org/show_bug.cgi?id=98992
51106
51107         * platform/text/LocaleICU.cpp:
51108         (WebCore::LocaleICU::isRTL): Need to initialize 'status'.
51109
51110 2012-10-11  Eugene Klyuchnikov  <eustas.bug@gmail.com>
51111
51112         Web Inspector: The 'X' of the close button of Settings view is not centered
51113         https://bugs.webkit.org/show_bug.cgi?id=99008
51114
51115         Reviewed by Alexander Pavlov.
51116
51117         Fixed text positioning in CSS.
51118
51119         * inspector/front-end/helpScreen.css:
51120         (.help-close-button):
51121
51122 2012-10-11  Kent Tamura  <tkent@chromium.org>
51123
51124         Introduce Localizer::isRTL, and use it in DateTimeChooserImpl
51125         https://bugs.webkit.org/show_bug.cgi?id=98992
51126
51127         Reviewed by Kentaro Hara.
51128
51129         - Move the RTL detection code in
51130           WebKit/chromium/src/DateTimeChooserImpl.cpp to LocaleWin::isRTL()
51131         - Introduce Localizer::isRTL as a pure virtual function
51132         - Implement LocaleMac::isRTL with native API
51133         - Implement LocaleICU::isRTL with ICU API
51134         - Add dummy implementation: LocaleNone::isRTL
51135
51136         Add some tests to WebKit/chromium/tests/.
51137
51138         * platform/text/Localizer.h:
51139         (Localizer): Declare pure virtual isRTL.
51140
51141         * platform/text/LocaleICU.h:
51142         (LocaleICU): Declare isRTL.
51143         * platform/text/LocaleICU.cpp:
51144         (WebCore::LocaleICU::isRTL): Implemented with uloc_getCharacterOrientation.
51145
51146         * platform/text/LocaleNone.cpp:
51147         (LocaleNone): Declare isRTL.
51148         (WebCore::LocaleNone::isRTL): Added.
51149
51150         * platform/text/LocaleWin.h:
51151         (LocaleWin): Declare isRTL.
51152         * platform/text/LocaleWin.cpp:
51153         (WebCore::LocaleWin::isRTL): Implemented.
51154
51155         * platform/text/mac/LocaleMac.h:
51156         (LocaleMac): Declare isRTL.
51157         * platform/text/mac/LocaleMac.mm:
51158         (WebCore::LocaleMac::isRTL): Implemented.
51159
51160 2012-10-11  Vsevolod Vlasov  <vsevik@chromium.org>
51161
51162         Web Inspector: TypeError in ConsoleMessage.js
51163         https://bugs.webkit.org/show_bug.cgi?id=98999
51164
51165         Reviewed by Alexander Pavlov.
51166
51167         This patch is based on patch by John J. Barton.
51168         Added a check that stack length is equal.
51169
51170         * inspector/front-end/ConsoleMessage.js:
51171         (WebInspector.ConsoleMessageImpl.prototype.isEqual):
51172
51173 2012-10-10  Jer Noble  <jer.noble@apple.com>
51174
51175         Disallow full screen mode keyboard access by default.
51176         https://bugs.webkit.org/show_bug.cgi?id=98971
51177         <rdar://problem/12474226>
51178
51179         Reviewed by Sam Weinig.
51180
51181         Fall back to requesting non-keyboard access if the client refuses to allow keyboard access.
51182
51183         * dom/Document.cpp:
51184         (WebCore::Document::requestFullScreenForElement):
51185
51186 2012-10-10  Ilya Tikhonovsky  <loislo@chromium.org>
51187
51188         Web Inspector: NMI instrument HTMLCanvas element.
51189         https://bugs.webkit.org/show_bug.cgi?id=98917
51190
51191         Reviewed by Yury Semikhatsky.
51192
51193         It also includes non intrusive instrumentation for skia classes.
51194
51195         Test: inspector/profiler/memory-instrumentation-canvas.html
51196
51197         * WebCore.gypi:
51198         * html/HTMLCanvasElement.cpp:
51199         (WebCore::HTMLCanvasElement::reportMemoryUsage):
51200         (WebCore):
51201         * html/HTMLCanvasElement.h:
51202         (HTMLCanvasElement):
51203         * platform/graphics/ImageBuffer.cpp:
51204         (WebCore::ImageBuffer::reportMemoryUsage):
51205         (WebCore):
51206         * platform/graphics/ImageBuffer.h:
51207         (ImageBuffer):
51208         * platform/graphics/chromium/ImageBufferDataSkia.h:
51209         (ImageBufferData):
51210         * platform/graphics/skia/ImageBufferSkia.cpp:
51211         (WebCore::ImageBufferData::reportMemoryUsage):
51212         (WebCore):
51213         * platform/graphics/skia/MemoryInstrumentationSkia.cpp: Copied from Source/WebCore/platform/graphics/chromium/ImageBufferDataSkia.h.
51214         (reportMemoryUsage):
51215         * platform/graphics/skia/MemoryInstrumentationSkia.h: Copied from Source/WebCore/platform/graphics/chromium/ImageBufferDataSkia.h.
51216         * platform/graphics/skia/NativeImageSkia.cpp:
51217
51218 2012-10-10  Mike West  <mkwst@google.com>
51219
51220         Document calls createElement with the wrong parameters.
51221         https://bugs.webkit.org/show_bug.cgi?id=98907
51222
51223         Reviewed by Kent Tamura.
51224
51225         Document::importNode calls Document::createElement with a QualifiedName
51226         and ExceptionCode. The Document::createElement that takes a
51227         QualifiedName doesn't generate an exception; the second argument is a
51228         bool, which the ExceptionCode autocasts into.
51229
51230         Changing the argument to an explicit bool shouldn't have any visible
51231         effect; no new tests are required.
51232
51233         * dom/Document.cpp:
51234         (WebCore::Document::importNode):
51235
51236 2012-10-10  Lianghui Chen  <liachen@rim.com>
51237
51238         [BlackBerry] Fix assertion in NetworkJob::notifyChallengeResult.
51239         https://bugs.webkit.org/show_bug.cgi?id=97397
51240         Internal PR: 186597.
51241
51242         Internally reviewed by Yong Li, Joe Mason.
51243         Reviewed by George Staikos.
51244
51245         Add a singleton AuthenticationChallengeManager to manage authentication
51246         challenge dialog. It does following things:
51247         Record page creation/deletion, so it knows what page is present or not.
51248         Record page visibility change so it knows when to display a dialog or not.
51249         Accept authentication challenge, and decide whether to postpone the
51250             challenge dialog based on whether there is active authentication challenge
51251             dialog already and whether its page is visible or not.
51252         When a challenge result comes back, notify the result to all clients
51253             authenticating for the same protection space, and then start the next
51254             authentication challenge from the same page, if there is one.
51255         When a page becomes visible, start the first authentication challenge
51256             dialog that has been blocked before.
51257         When an authentication challenge is requested, the NetworkJob will be
51258             deferred so its initial response will be saved while waiting for
51259             user decision on the challenge.
51260
51261         No new tests for platform specific internal change.
51262
51263         * PlatformBlackBerry.cmake:
51264         * platform/blackberry/AuthenticationChallengeManager.cpp: Added.
51265         (WebCore):
51266         (ChallengeInfo):
51267         (WebCore::ChallengeInfo::ChallengeInfo):
51268         (AuthenticationChallengeManagerPrivate):
51269         (WebCore::AuthenticationChallengeManagerPrivate::AuthenticationChallengeManagerPrivate):
51270         (WebCore::AuthenticationChallengeManagerPrivate::resumeAuthenticationChallenge):
51271         (WebCore::AuthenticationChallengeManagerPrivate::startAuthenticationChallenge):
51272         (WebCore::AuthenticationChallengeManagerPrivate::pageExists):
51273         (WebCore::AuthenticationChallengeManager::AuthenticationChallengeManager):
51274         (WebCore::AuthenticationChallengeManager::pageCreated):
51275         (WebCore::AuthenticationChallengeManager::pageDeleted):
51276         (WebCore::AuthenticationChallengeManager::pageVisibilityChanged):
51277         (WebCore::AuthenticationChallengeManager::authenticationChallenge):
51278         (WebCore::AuthenticationChallengeManager::cancelAuthenticationChallenge):
51279         (WebCore::AuthenticationChallengeManager::notifyChallengeResult):
51280         (WebCore::AuthenticationChallengeManager::instance):
51281         (WebCore::AuthenticationChallengeManager::init):
51282         * platform/blackberry/AuthenticationChallengeManager.h:
51283         (WebCore):
51284         (AuthenticationChallengeManager):
51285         * platform/blackberry/PageClientBlackBerry.h:
51286         * platform/graphics/blackberry/MediaPlayerPrivateBlackBerry.cpp:
51287         (WebCore::MediaPlayerPrivate::MediaPlayerPrivate):
51288         (WebCore::MediaPlayerPrivate::~MediaPlayerPrivate):
51289         (WebCore::MediaPlayerPrivate::onAuthenticationNeeded):
51290         (WebCore::MediaPlayerPrivate::notifyChallengeResult):
51291         * platform/graphics/blackberry/MediaPlayerPrivateBlackBerry.h:
51292         (MediaPlayerPrivate):
51293         * platform/network/blackberry/NetworkJob.cpp:
51294         (WebCore::NetworkJob::NetworkJob):
51295         (WebCore::NetworkJob::~NetworkJob):
51296         (WebCore):
51297         (WebCore::NetworkJob::handleNotifyStatusReceived):
51298         (WebCore::NetworkJob::handleNotifyClose):
51299         (WebCore::NetworkJob::shouldReleaseClientResource):
51300         (WebCore::NetworkJob::sendRequestWithCredentials):
51301         (WebCore::NetworkJob::notifyChallengeResult):
51302         * platform/network/blackberry/NetworkJob.h:
51303         (NetworkJob):
51304
51305 2012-10-10  Simon Fraser  <simon.fraser@apple.com>
51306
51307         compositing/tiling/crash-reparent-tiled-layer.html is flakey
51308         https://bugs.webkit.org/show_bug.cgi?id=82546
51309
51310         Reviewed by Beth Dakin.
51311
51312         When calling layerTreeAsText() inside the document load event,
51313         GraphicsLayerCA may have not flushed layers yet, so layer tree
51314         properties that are affected by flushing (tiled layer, visible
51315         rects) appeared flakey in tests.
51316         
51317         Fix by forcing a flush before dumping the layer tree.        
51318         
51319         * rendering/RenderLayerCompositor.cpp:
51320         (WebCore::RenderLayerCompositor::layerTreeAsText):
51321
51322 2012-10-10  Beth Dakin  <bdakin@apple.com>
51323
51324         https://bugs.webkit.org/show_bug.cgi?id=98984
51325         REGRESSION: Crash happens after we add non-top-level frame to the 
51326         ScrollingStateTree
51327
51328         Reviewed by Simon Fraser.
51329
51330         isRootLayer() can return true for layers that do not correspond to 
51331         the main frame. But we only want the ones that DO correspond to the 
51332         main frame!
51333         * rendering/RenderLayerCompositor.cpp:
51334         (WebCore::RenderLayerCompositor::updateBacking):
51335
51336 2012-10-10  Dan Bernstein  <mitz@apple.com>
51337
51338         <rdar://problem/12472460> text-combine doesn’t use third- and quarter-width variants when used with @font-face
51339         https://bugs.webkit.org/show_bug.cgi?id=98961
51340
51341         Reviewed by Tim Horton.
51342
51343         Test: fast/text/text-combine-with-font-face.html
51344
51345         * css/CSSSegmentedFontFace.cpp:
51346         (WebCore::CSSSegmentedFontFace::getFontData): Added the width variant to the
51347         key used for entries in the font data table, so that we can return different
51348         font data for different width variants.
51349         * platform/graphics/FontWidthVariant.h: Defined FontWidthVariantWidth for
51350         use in the computation of the above key.
51351         * rendering/RenderCombineText.cpp:
51352         (WebCore::RenderCombineText::combineText): Added a local variable to store
51353         the font selector before changing the font description. Previously, by the time
51354         we tried to get the font selector from the font, it had already been cleared,
51355         so we called Font::update() with a 0 font selector, meaning @font-face fonts
51356         could not be selected.
51357
51358 2012-10-10  Elliott Sprehn  <esprehn@chromium.org>
51359
51360         Move :before and :after into the DOM        
51361         https://bugs.webkit.org/show_bug.cgi?id=95117
51362
51363         Reviewed by Eric Seidel.
51364
51365         Reimplement generated content :before and :after as DOM Elements. Now ElementRareData has
51366         two RefPtrs to PseudoElements for the generated content and Node has methods for traversing
51367         the tree including generated content.
51368
51369         This allows the generated content to be treated as real nodes instead of anonymous and take
51370         part in the usual recalcStyle and attach flow which fixes many bugs and vastly simplifies the
51371         lifecycle of generated content.
51372
51373         No new tests needed for now.
51374
51375         * CMakeLists.txt:
51376         * GNUmakefile.list.am:
51377         * Target.pri:
51378         * WebCore.gypi:
51379         * WebCore.vcproj/WebCore.vcproj:
51380         * WebCore.xcodeproj/project.pbxproj:
51381         * dom/DOMAllInOne.cpp:
51382         * dom/Element.cpp:
51383         (WebCore::Element::attach): Add generated content if needed.
51384         (WebCore::Element::detach): Remove all child generated content.
51385         (WebCore::Element::recalcStyle): Add or remove generated content based on the new style.
51386         (WebCore::Element::updatePseudoElement): Updates pseudo content based on a pseudoId.
51387         (WebCore):
51388         (WebCore::Element::createPseudoElementIfNeeded):
51389         (WebCore::Element::beforePseudoElement):
51390         (WebCore::Element::afterPseudoElement):
51391         * dom/Element.h:
51392         (WebCore):
51393         (Element):
51394         * dom/ElementRareData.h:
51395         (ElementRareData):
51396         (WebCore::ElementRareData::setPseudoElement):
51397         (WebCore):
51398         (WebCore::ElementRareData::pseudoElement):
51399         * dom/Node.cpp:
51400         (WebCore::Node::pseudoAwarePreviousSibling):
51401         (WebCore):
51402         (WebCore::Node::pseudoAwareNextSibling):
51403         (WebCore::checkAcceptChild): Forbid moving PseudoElements for sanity. The code never does this.
51404         * dom/Node.h:
51405         (Node):
51406         (WebCore::Node::isPseudoElement):
51407         (WebCore::Node::pseudoId): Fast path that only calls virtualPseudoId if the node has custom callbacks so isPseudoElement is fast.
51408         (WebCore::Node::virtualPseudoId):
51409         (WebCore::Node::isBeforePseudoElement):
51410         (WebCore::Node::isAfterPseudoElement):
51411         * dom/NodeRenderingContext.cpp:
51412         (WebCore::NodeRenderingContext::nextRenderer): Changed to find the next sibling of pseudos for insertion.
51413         * dom/PseudoElement.cpp: Added.
51414         (WebCore):
51415         (WebCore::pseudoElementName):
51416         (WebCore::PseudoElement::PseudoElement):
51417         (WebCore::PseudoElement::pseudoRendererIsNeeded):
51418         (WebCore::PseudoElement::customStyleForRenderer):
51419         (WebCore::PseudoElement::attach):
51420         (WebCore::PseudoElement::rendererIsNeeded):
51421         (WebCore::PseudoElement::updateChildStyle): Propagates the style downward into the anonymous renderers for the content.
51422         (WebCore::PseudoElement::didRecalcStyle):
51423         (WebCore::PseudoElement::createRendererForContent): Refactored from RenderObjectChildList.
51424         * dom/PseudoElement.h: Added.
51425         (WebCore):
51426         (PseudoElement):
51427         (WebCore::PseudoElement::create):
51428         (WebCore::toPseudoElement):
51429         * rendering/HitTestResult.cpp:
51430         (WebCore::HitTestResult::setInnerNode): Hit testing a PseudoElement should really hit the parent.
51431         (WebCore::HitTestResult::setInnerNonSharedNode): Same as above.
51432         * rendering/RenderBlock.cpp:
51433         (WebCore::RenderBlock::styleDidChange): Remove old generated content code, same for below.
51434         (WebCore::RenderBlock::splitBlocks):
51435         (WebCore::RenderBlock::addChildIgnoringAnonymousColumnBlocks):
51436         (WebCore::RenderBlock::createReplacementRunIn):
51437         (WebCore::RenderBlock::renderName):
51438         * rendering/RenderBlock.h:
51439         (RenderBlock):
51440         * rendering/RenderButton.cpp:
51441         * rendering/RenderButton.h:
51442         (RenderButton):
51443         * rendering/RenderCounter.cpp:
51444         (WebCore::RenderCounter::originalText):
51445         * rendering/RenderDeprecatedFlexibleBox.cpp:
51446         (WebCore::RenderDeprecatedFlexibleBox::renderName):
51447         * rendering/RenderGrid.cpp:
51448         (WebCore::RenderGrid::renderName):
51449         * rendering/RenderInline.cpp:
51450         (WebCore::RenderInline::styleDidChange):
51451         (WebCore::RenderInline::addChildIgnoringContinuation):
51452         (WebCore::RenderInline::splitInlines):
51453         (WebCore::RenderInline::renderName):
51454         * rendering/RenderListItem.cpp:
51455         (WebCore::RenderListItem::updateMarkerLocation):
51456         * rendering/RenderMultiColumnBlock.cpp:
51457         (WebCore::RenderMultiColumnBlock::renderName):
51458         * rendering/RenderObject.cpp:
51459         (WebCore::RenderObject::createObject):
51460         * rendering/RenderObject.h:
51461         (WebCore::RenderObject::isPseudoElement):
51462         (RenderObject):
51463         (WebCore::RenderObject::generatingNode):
51464         * rendering/RenderObjectChildList.cpp:
51465         * rendering/RenderObjectChildList.h:
51466         (RenderObjectChildList):
51467         * rendering/RenderRubyText.cpp:
51468         * rendering/RenderRubyText.h:
51469         (RenderRubyText):
51470         * rendering/RenderTableCell.h:
51471         (WebCore::RenderTableCell::renderName):
51472         * rendering/RenderTableRow.cpp:
51473         (WebCore::RenderTableRow::styleDidChange):
51474         * rendering/RenderTableRow.h:
51475         (WebCore::RenderTableRow::renderName):
51476         * rendering/RenderTableSection.cpp:
51477         (WebCore::RenderTableSection::addChild):
51478         * rendering/RenderTableSection.h:
51479         (WebCore::RenderTableSection::renderName):
51480         * rendering/RenderTreeAsText.cpp:
51481         (WebCore::RenderTreeAsText::writeRenderObject):
51482
51483 2012-10-10  Sam Weinig  <sam@webkit.org>
51484
51485         Add more Objective-C WebKit2 DOM API skeletons.
51486         https://bugs.webkit.org/show_bug.cgi?id=98981
51487
51488         Reviewed by Anders Carlsson.
51489
51490         * WebCore.exp.in:
51491         Add necessary export.
51492
51493 2012-10-10  Dimitri Glazkov  <dglazkov@chromium.org>
51494
51495         Minimize the recent template explosion in SelectorChecker.
51496         https://bugs.webkit.org/show_bug.cgi?id=98829
51497
51498         Reviewed by Antti Koivisto.
51499
51500         We've recently added the capability to switch sibling traversal strategy to SelectorChecker, at some readability/clarity expense.
51501         This patch tries to minimize the surface of this expense to SelectorChecker::checkOneSelector. 
51502
51503         No new tests, no change in behavior.
51504
51505         * css/SelectorChecker.cpp:
51506         (WebCore::SelectorChecker::checkSelector): Turned back into a function.
51507         (WebCore::SelectorChecker::checkOneSelector): Changed to specialize on traversal strategy, rather than the context, which was less clear.
51508         (WebCore::SelectorChecker::DOMTraversalStrategy::isFirstChild): Turned into a function.
51509         (WebCore::SelectorChecker::DOMTraversalStrategy::isLastChild): Ditto.
51510         (WebCore::SelectorChecker::DOMTraversalStrategy::isFirstOfType): Ditto.
51511         (WebCore::SelectorChecker::DOMTraversalStrategy::isLastOfType): Ditto.
51512         (WebCore::SelectorChecker::DOMTraversalStrategy::countElementsBefore): Ditto.
51513         (WebCore::SelectorChecker::DOMTraversalStrategy::countElementsOfTypeBefore): Ditto.
51514         (WebCore::SelectorChecker::DOMTraversalStrategy::countElementsAfter): Ditto.
51515         (WebCore::SelectorChecker::DOMTraversalStrategy::countElementsOfTypeAfter): Ditto.
51516         * css/SelectorChecker.h:
51517         (DOMTraversalStrategy): Changed into a class, rather than a template.
51518         (SelectorChecker): Turned back into a function.
51519
51520 2012-10-10  James Simonsen  <simonjam@chromium.org>
51521
51522         High res times should start at 0
51523         https://bugs.webkit.org/show_bug.cgi?id=84912
51524
51525         Reviewed by Tony Gentilcore.
51526
51527         Test: Existing Navigation Timing tests.
51528
51529         * inspector/InspectorInstrumentation.cpp: Use legacy document time, pending 98223.
51530         (WebCore):
51531         (WebCore::InspectorInstrumentation::didFinishLoadingImpl):
51532         * inspector/InspectorResourceAgent.cpp:
51533         (WebCore::buildObjectForTiming):
51534         * loader/DocumentLoadTiming.cpp:
51535         (WebCore::DocumentLoadTiming::convertMonotonicTimeToLegacyDocumentTime):
51536         (WebCore):
51537         (WebCore::DocumentLoadTiming::convertMonotonicTimeToZeroBasedDocumentTime):
51538         (WebCore::DocumentLoadTiming::markNavigationStart):
51539         * loader/DocumentLoadTiming.h:
51540         (DocumentLoadTiming):
51541         (WebCore::DocumentLoadTiming::navigationStart): These just report raw monotonic times now.
51542         (WebCore::DocumentLoadTiming::unloadEventStart):
51543         (WebCore::DocumentLoadTiming::unloadEventEnd):
51544         (WebCore::DocumentLoadTiming::redirectStart):
51545         (WebCore::DocumentLoadTiming::redirectEnd):
51546         (WebCore::DocumentLoadTiming::fetchStart):
51547         (WebCore::DocumentLoadTiming::responseEnd):
51548         (WebCore::DocumentLoadTiming::loadEventStart):
51549         (WebCore::DocumentLoadTiming::loadEventEnd):
51550         * page/PerformanceTiming.cpp:
51551         (WebCore::PerformanceTiming::navigationStart): Convert these back to legacy document times.
51552         (WebCore::PerformanceTiming::unloadEventStart):
51553         (WebCore::PerformanceTiming::unloadEventEnd):
51554         (WebCore::PerformanceTiming::redirectStart):
51555         (WebCore::PerformanceTiming::redirectEnd):
51556         (WebCore::PerformanceTiming::fetchStart):
51557         (WebCore::PerformanceTiming::responseEnd):
51558         (WebCore::PerformanceTiming::loadEventStart):
51559         (WebCore::PerformanceTiming::loadEventEnd):
51560         (WebCore::PerformanceTiming::resourceLoadTimeRelativeToAbsolute):
51561         (WebCore::PerformanceTiming::monotonicTimeToIntegerMilliseconds):
51562         * platform/network/ResourceLoadTiming.cpp:
51563         (WebCore::ResourceLoadTiming::convertResourceLoadTimeToMonotonicTime):
51564         * platform/network/ResourceLoadTiming.h:
51565         (ResourceLoadTiming):
51566
51567 2012-10-10  Levi Weintraub  <leviw@chromium.org>
51568
51569         Tests failure on Chromium Mac after r130821
51570         https://bugs.webkit.org/show_bug.cgi?id=98865
51571
51572         Reviewed by Adam Barth.
51573
51574         Updating the check for USE(HARFBUZZ_NG) to check for Mac Chromium, as the HARFBUZZ_NG flag isn't
51575         actually set, despite us using Harfbuzz. This unbreaks Chromium Mac as we diagnose the root
51576         cause of this issue.
51577
51578         * rendering/RenderBlockLineLayout.cpp:
51579         (WebCore::setLogicalWidthForTextRun):
51580
51581 2012-10-10  Stephen Chenney  <schenney@chromium.org>
51582
51583         SVGTextRunRenderingContext changes font data in the glyph page, but it shouldn't
51584         https://bugs.webkit.org/show_bug.cgi?id=98755
51585
51586         Reviewed by Eric Seidel.
51587
51588         The code in SVGTextRunRenderingContext::glyphDataForCharacter, when it
51589         encounters an <altglyph> tag, immediately replaces the font data for a
51590         glyph with font data for the primary font, presumably to meet the SVG
51591         spec requirement: "If the references to alternate glyphs do not result
51592         in successful identification of alternate glyphs to use, then the
51593         character(s) that are inside of the ‘altGlyph’ element are rendered as
51594         if the ‘altGlyph’ element were a ‘tspan’ element instead."
51595
51596         If the alt glyph is not then found we are in the case from the spec
51597         and indeed we should use the primary font. However, we end up replacing the GlyphPage
51598         entry for the character with primary font data, which we should not do
51599         because the glyph page might be used in some place that does not have
51600         the alt glyph tag.
51601
51602         Furthermore, this causes object lifetime problems for font data, because
51603         in cases where the font data that is replaced is for the system fallback
51604         font the GlyphPage will live forever with no knowldege that it contains
51605         font data pointers into font data other that the system fallback. The
51606         replaced font data may be deleted while the pointer lives on in the
51607         system fallback page.
51608
51609         The fix is simply not to replace the font data in the page.
51610
51611         Test: svg/text/alt-glpyh-on-fallback-font-crash.html
51612
51613         * rendering/svg/SVGTextRunRenderingContext.cpp:
51614         (WebCore::SVGTextRunRenderingContext::glyphDataForCharacter): Keep track of the original font data and put it back
51615         in the glyph page when the method has finished.
51616
51617 2012-10-10  Tab Atkins  <jackalmage@gmail.com>
51618
51619         column-count: 0 should not prevent margin-collapse through
51620         https://bugs.webkit.org/show_bug.cgi?id=65159
51621
51622         Reviewed by Tony Chang.
51623
51624         This patch makes "column-count:0" be properly recognized as invalid syntax,
51625         as it violates the property grammar in the spec.
51626
51627         Tests: fast/multicol/zeroColumnCount.html
51628
51629         * css/CSSParser.cpp:
51630         (WebCore::CSSParser::validUnit):
51631         (WebCore::CSSParser::parseValue):
51632         * css/CSSParser.h:
51633
51634 2012-10-10  Benjamin Poulain  <bpoulain@apple.com>
51635
51636         [WK2] Safari crashes on error when using CFNetwork
51637         https://bugs.webkit.org/show_bug.cgi?id=98965
51638
51639         Reviewed by Sam Weinig.
51640
51641         The code of ResourceErrorMac when using CFNetwork was assuming
51642         there is always either a CFError or an NSError associated with
51643         any ResourceError.
51644
51645         This is not true on WebKit2 where error can be generic errors
51646         in the WebProcess (for example a cannotShowURLError).
51647         The code was crashing when trying to invoke function on the
51648         non-existing CFError.
51649
51650         This patch fixes the issue by handling that third case separately.
51651         If the ResourceError is a generic error, a new NSError is created,
51652         similarily to what is done in the non-CFNetwork case.
51653
51654         * platform/network/mac/ResourceErrorMac.mm:
51655         (WebCore::ResourceError::nsError):
51656
51657 2012-10-10  Alexander Shalamov  <alexander.shalamov@intel.com>
51658
51659         Invalid values for media query features are not handled
51660         https://bugs.webkit.org/show_bug.cgi?id=97006
51661
51662         Reviewed by Kenneth Rohde Christiansen.
51663
51664         This patch improves pass rate of CSS3 Media Queries test suite
51665         by making media expressions compliant with W3C specification. Few
51666         performance issues are fixed by removal of string comparison during
51667         media expression evaluation.
51668
51669         Tests: fast/media/w3c/test_media_queries.html
51670
51671         * css/CSSGrammar.y: Handle media query expression with specified media restrictor as invalid.
51672         * css/MediaQuery.cpp:
51673         (WebCore::MediaQuery::serialize): Serialize invalid query according to specification.
51674         * css/MediaQueryEvaluator.cpp:
51675         (WebCore::orientationMediaFeatureEval): Compare CSSValueID instead of strings.
51676         (WebCore::view_modeMediaFeatureEval): Compare CSSValueID instead of strings.
51677         (WebCore::pointerMediaFeatureEval): Compare CSSValueID instead of strings.
51678         * css/MediaQueryExp.cpp:
51679         (WebCore::MediaQueryExp::MediaQueryExp): Check that media features initialized with correct values.
51680
51681 2012-10-10  Justin Novosad  <junov@chromium.org>
51682
51683         [Chromium] Smoother animation for non-RAF 2D canvas animations
51684         https://bugs.webkit.org/show_bug.cgi?id=97918
51685
51686         Reviewed by Stephen White.
51687
51688         Reduces animation jank by preventing the accumulation of multiple
51689         frames of backlog in the deferred canvas rendering queue. When the
51690         animation is more than one full frame ahead of the compositor, an
51691         immediate flush is triggered.  This takes into account overdraw
51692         elimination by the skip-on-clear optimization that is built-in to
51693         SkDeferredCanvas, to allow non-RAF animations that clear the canvas at
51694         each frame to run without any rate limiting. This change also
51695         incidentally improves frame rate in many cases by providing more
51696         granular batching of GPU API calls, resulting in better pipelining
51697         through the command buffer.
51698
51699         Test: webkit_unit_test Canvas2DLayerManagerTest.testDeferredFrame
51700
51701         * platform/graphics/chromium/Canvas2DLayerBridge.cpp:
51702         (WebCore::Canvas2DLayerBridge::Canvas2DLayerBridge):
51703         (WebCore::Canvas2DLayerBridge::limitPendingFrames):
51704         Called at the end of a task (usually a scheduled script action) that
51705         invoked 2d canvas rendering context methods. The end of the task
51706         marks the completion of a displayable frame. This method will trigger
51707         a flush if it detects that the layer has pending draw commands that
51708         are more that one frame old.
51709         (WebCore):
51710         (WebCore::Canvas2DLayerBridge::flushedDrawCommands):
51711         (WebCore::Canvas2DLayerBridge::didFlushPendingCommands):
51712         (WebCore::Canvas2DLayerBridge::skippedPendingDrawCommands):
51713         (WebCore::Canvas2DLayerBridge::flush):
51714         (WebCore::Canvas2DLayerBridge::contextAcquired):
51715         * platform/graphics/chromium/Canvas2DLayerBridge.h:
51716         (Canvas2DLayerBridge):
51717         * platform/graphics/chromium/Canvas2DLayerManager.cpp:
51718         (WebCore::Canvas2DLayerManager::~Canvas2DLayerManager):
51719         (WebCore::Canvas2DLayerManager::willProcessTask):
51720         (WebCore):
51721         (WebCore::Canvas2DLayerManager::didProcessTask):
51722         (WebCore::Canvas2DLayerManager::layerDidDraw):
51723         * platform/graphics/chromium/Canvas2DLayerManager.h:
51724         (Canvas2DLayerManager):
51725
51726 2012-10-10  Beth Dakin  <bdakin@apple.com>
51727
51728         https://bugs.webkit.org/show_bug.cgi?id=98968
51729         REGRESSION: Unable to scroll with trackpad on some websites after 
51730         r130783
51731
51732         Reviewed by Simon Fraser.
51733
51734         This bug seems to reproduce mostly on web pages that require login. 
51735         The re-routing causes extra churn of the RenderLayerBacking, and we 
51736         end up destroying and re-creating the backing and therefore the 
51737         ScrollingStateNodes, and when the timing is just wrong we get into a 
51738         state where the ScrollingTree has a set of incorrect information. 
51739         This patch fixes the bug by making sure the ScrollingStateNodes keep 
51740         the ScrollingTree in synch with their re-set data.
51741
51742         Tell the ScrollingStateTree that the root layer has changed.
51743         * page/scrolling/ScrollingCoordinator.cpp:
51744         (WebCore::ScrollingCoordinator::frameViewRootLayerDidChange):
51745
51746         New virtual function will set every property as having changed.
51747         * page/scrolling/ScrollingStateNode.h:
51748         (WebCore::ScrollingStateNode::setHasChangedProperties):
51749         * page/scrolling/ScrollingStateScrollingNode.cpp:
51750         (WebCore::ScrollingStateScrollingNode::setHasChangedProperties):
51751         (WebCore):
51752         * page/scrolling/ScrollingStateScrollingNode.h:
51753
51754         When the root layer changes, make sure we update the ScrollingTree 
51755         appropriately by indicating that every property could have changed.
51756         * page/scrolling/ScrollingStateTree.cpp:
51757         (WebCore::ScrollingStateTree::rootLayerDidChange):
51758         (WebCore):
51759         * page/scrolling/ScrollingStateTree.h:
51760         (ScrollingStateTree):
51761
51762 2012-10-10  MORITA Hajime  <morrita@google.com>
51763
51764         [Chromium] Crash on SpellChecker::didCheck()
51765         https://bugs.webkit.org/show_bug.cgi?id=98476
51766
51767         Reviewed by Kent Tamura.
51768
51769         SpellChecker::didCheck() assumed m_processingRequest is non-NULL. However, SpellChecker::invokeRequest()
51770         calls SpellCheckRequest::didCancel(), which results didCheck() with NULL m_processingRequest.
51771         This chagne eliminates the problematic didCheck().
51772
51773         No new tests. The case depends on specific timing and is hard to hit by automated testing.
51774
51775         * editing/SpellChecker.cpp:
51776         (WebCore::SpellChecker::didCheck):
51777
51778 2012-10-10  MORITA Hajime  <morrita@google.com>
51779
51780         https://bugs.webkit.org/show_bug.cgi?id=95664
51781         [Shadow DOM] should be able to be available without <style scoped>
51782
51783         Reviewed by Dimitri Glazkov.
51784
51785         This change relaxes ENABLE(STYLE_SCOPED) compilation guard
51786         and styleScopedEnabled() runtime guard. The flags now masks
51787         user visible bits of the code, rather than all of it.
51788         This change also eliminates some redundant guards for simplicity.
51789
51790         Test: fast/dom/shadow/style-scoped-not-enabled.html
51791
51792         * css/StyleResolver.cpp:
51793         (WebCore::StyleResolver::matchScopedAuthorRules):
51794         (WebCore::StyleResolver::locateCousinList):
51795         (WebCore::StyleResolver::canShareStyleWithElement):
51796         (WebCore::StyleResolver::locateSharedStyle):
51797         * css/StyleScopeResolver.cpp:
51798         (WebCore::StyleScopeResolver::scopeFor):
51799         * css/StyleScopeResolver.h:
51800         (WebCore):
51801         * html/HTMLStyleElement.cpp:
51802         (WebCore::HTMLStyleElement::HTMLStyleElement):
51803         (WebCore::HTMLStyleElement::parseAttribute):
51804         (WebCore::HTMLStyleElement::scopedAttributeChanged):
51805         (WebCore::HTMLStyleElement::isRegisteredAsScoped):
51806         (WebCore::HTMLStyleElement::registerWithScopingNode):
51807         (WebCore::HTMLStyleElement::unregisterWithScopingNode):
51808         (WebCore::HTMLStyleElement::insertedInto):
51809         (WebCore::HTMLStyleElement::removedFrom):
51810         (WebCore::HTMLStyleElement::scoped):
51811         (WebCore::HTMLStyleElement::scopingElement):
51812         * html/HTMLStyleElement.h:
51813         (HTMLStyleElement):
51814         * testing/InternalSettings.cpp: Exporsing a flag for testing.
51815         (WebCore::InternalSettings::Backup::Backup):
51816         (WebCore::InternalSettings::Backup::restoreTo):
51817         (WebCore::InternalSettings::setStyleScopedEnabled):
51818         (WebCore):
51819         * testing/InternalSettings.h: Exporsing a flag for testing.
51820         (Backup):
51821         (InternalSettings):
51822         * testing/InternalSettings.idl: Exporsing a flag for testing.
51823
51824 2012-10-10  Roger Fong  <roger_fong@apple.com>
51825
51826         [WebGL] [On Mac] queried attributes and uniforms need to return the original variable name, not the mapped name.
51827         https://bugs.webkit.org/show_bug.cgi?id=98470
51828
51829         Reviewed by Timothy Horton.
51830
51831         When a variable name is too long we translate to a shorter version and keep a mapping between the long and short names.
51832         However, when querying for a variable client side using getActiveAttrib or getActiveUniform, we accidentally return the 
51833         translated names. This fix makes these methods return the original variable names.
51834
51835         Tested using Khronos WebGL conformance suite:
51836         conformance/glsl/misc/glsl-long-variable-names.html
51837
51838         * platform/graphics/GraphicsContext3D.h:
51839         (GraphicsContext3D):
51840         * platform/graphics/opengl/GraphicsContext3DOpenGLCommon.cpp: getActiveAttrib and getActiveUniform
51841         now use GraphicsContext3D::originalSymbolName to find the original variable name.
51842         (WebCore::GraphicsContext3D::getActiveAttrib):
51843         (WebCore::GraphicsContext3D::getActiveUniform):
51844         (WebCore):
51845         (WebCore::GraphicsContext3D::originalSymbolName): This method returns the original variable name given 
51846         the mapped name.
51847
51848 2012-10-10 Brady Eidson  <beidson@apple.com>
51849
51850         Switch over CachedResource::data() from taking a SharedBuffer to taking a ResourceBuffer.
51851         https://bugs.webkit.org/show_bug.cgi?id=98952
51852
51853         Reviewed by Anders Carlsson.
51854
51855         No new tests (No behavior change).
51856
51857         * html/ImageDocument.cpp:
51858         (WebCore::ImageDocumentParser::appendBytes):
51859         (WebCore::ImageDocumentParser::finish):
51860         * loader/SubresourceLoader.cpp:
51861         (WebCore::SubresourceLoader::sendDataToResource):
51862         (WebCore::SubresourceLoader::didFinishLoading):
51863         * loader/cache/CachedCSSStyleSheet.cpp:
51864         (WebCore::CachedCSSStyleSheet::data):
51865         * loader/cache/CachedCSSStyleSheet.h:
51866         (WebCore):
51867         (CachedCSSStyleSheet):
51868         * loader/cache/CachedFont.cpp:
51869         (WebCore::CachedFont::data):
51870         * loader/cache/CachedFont.h:
51871         (WebCore):
51872         (CachedFont):
51873         * loader/cache/CachedImage.cpp:
51874         (WebCore::CachedImage::data):
51875         * loader/cache/CachedImage.h:
51876         (CachedImage):
51877         * loader/cache/CachedRawResource.cpp:
51878         (WebCore::CachedRawResource::data):
51879         * loader/cache/CachedRawResource.h:
51880         (CachedRawResource):
51881         * loader/cache/CachedResource.cpp:
51882         (WebCore::CachedResource::data):
51883         * loader/cache/CachedResource.h:
51884         (CachedResource):
51885         * loader/cache/CachedSVGDocument.cpp:
51886         (WebCore::CachedSVGDocument::data):
51887         * loader/cache/CachedSVGDocument.h:
51888         (CachedSVGDocument):
51889         * loader/cache/CachedScript.cpp:
51890         (WebCore::CachedScript::data):
51891         * loader/cache/CachedScript.h:
51892         (CachedScript):
51893         * loader/cache/CachedShader.cpp:
51894         (WebCore::CachedShader::data):
51895         * loader/cache/CachedShader.h:
51896         (CachedShader):
51897         * loader/cache/CachedTextTrack.cpp:
51898         (WebCore::CachedTextTrack::data):
51899         * loader/cache/CachedTextTrack.h:
51900         (CachedTextTrack):
51901         * loader/cache/CachedXSLStyleSheet.cpp:
51902         (WebCore::CachedXSLStyleSheet::data):
51903         * loader/cache/CachedXSLStyleSheet.h:
51904         (CachedXSLStyleSheet):
51905
51906 2012-10-10  Jon Lee  <jonlee@apple.com>
51907
51908         [WK2] Activate plugins when user clicks on snapshot
51909         https://bugs.webkit.org/show_bug.cgi?id=98328
51910         <rdar://problem/12426681>
51911
51912         Reviewed by Brady Eidson.
51913
51914         Extend the default event handler to deal with plugins with snapshots.
51915         When the user clicks on the placeholder, the plugin is recreated and displayed.
51916
51917         * loader/FrameLoaderClient.h: Add new client function recreatePlugin(), which is
51918         expected to re-create the plugin with the same parameters as when it was run to
51919         obtain the plugin's snapshot placeholder.
51920
51921         * loader/EmptyClients.cpp: Stub implementation of recreatePlugin().
51922         * loader/EmptyClients.h:
51923         * WebCore.exp.in: Expose HTMLPlugInElement::pluginWidget().
51924
51925         * html/HTMLPlugInElement.cpp:
51926         (WebCore::HTMLPlugInElement::defaultEventHandler): Update to look for
51927         RenderSnapshottedPlugIn. If the plugin is not playing, have the renderer handle the
51928         event.
51929
51930         * rendering/RenderSnapshottedPlugIn.cpp:
51931         (WebCore::RenderSnapshottedPlugin::getCursor): Set to hand cursor when the plugin is not
51932         playing.
51933         (WebCore::RenderSnapshottedPlugIn::handleEvent): If the user clicked on the plugin using the
51934         left button, update the state of the element to playing. Recreate the plugin if the widget exists
51935         to begin with. The cached snapshot image will be saved for possible reuse on back/forward navigation.
51936         * rendering/RenderSnapshottedPlugIn.h:
51937         (RenderSnapshottedPlugIn):
51938
51939 2012-10-10  Kenichi Ishibashi  <bashi@chromium.org>
51940
51941         FontVerticalDataCache should allow zero as a key value
51942         https://bugs.webkit.org/show_bug.cgi?id=98877
51943
51944         Reviewed by Tony Chang.
51945
51946         Use WTF::UnsignedWithZeroKeyHashTraits for type definition of
51947         FontVerticalDataCache.
51948
51949         No new tests because there is no certain way to make
51950         FontPlatformDataHarfBuzz::uniqueID() be zero.
51951
51952         * platform/graphics/FontCache.cpp:
51953         (WebCore):
51954         * platform/graphics/harfbuzz/FontPlatformDataHarfBuzz.cpp:
51955         (WebCore::FontPlatformData::verticalData): Removed zero check of uniqueID().
51956         (WebCore::FontPlatformData::openTypeTable): Ditto.
51957
51958 2012-10-10  Regina Chung  <heejin.r.chung@samsung.com>
51959
51960         [EFL] Use the shareable GraphicsContext3DOpenGL* implementation.
51961         https://bugs.webkit.org/show_bug.cgi?id=96627
51962
51963         Reviewed by Kenneth Rohde Christiansen.
51964
51965         Changed EFL implementation of GraphicsContext3D(GC3D) to use GraphicsContext3DOpenGL*.
51966         It was initially implemented in a different way, due to characteristics of Evas,
51967         but it would be better to use the common implementation and find another way
51968         to deal with Evas, especially because all the duplicated code.
51969
51970         No new tests. No functional changes.
51971
51972         * PlatformEfl.cmake: Removed cairo implementation of GC3D and added efl files to WebCore_SOURCES.
51973         * platform/graphics/efl/GraphicsContext3DEfl.cpp: Modified code so GC3DOpenGL* can be used.
51974         (WebCore::GraphicsContext3D::create):
51975         (WebCore::GraphicsContext3D::GraphicsContext3D):
51976         (WebCore::GraphicsContext3D::platformLayer):
51977         (WebCore::GraphicsContext3D::makeContextCurrent):
51978         (WebCore::GraphicsContext3D::setContextLostCallback):
51979         (WebCore::GraphicsContext3D::setErrorMessageCallback):
51980         (WebCore::GraphicsContext3D::paintToCanvas):
51981         (WebCore):
51982         (WebCore::GraphicsContext3D::createGraphicsSurfaces):
51983         (WebCore::GraphicsContext3D::releaseShaderCompiler):
51984         (WebCore::GraphicsContext3D::getImageData):
51985         * platform/graphics/efl/GraphicsContext3DPrivate.cpp: Removed functions implemented in GC3DOpenGL*
51986         (WebCore::GraphicsContext3DPrivate::GraphicsContext3DPrivate):
51987         (WebCore):
51988         (WebCore::GraphicsContext3DPrivate::~GraphicsContext3DPrivate):
51989         (WebCore::GraphicsContext3DPrivate::createSurface):
51990         (WebCore::GraphicsContext3DPrivate::platformGraphicsContext3D):
51991         (WebCore::GraphicsContext3DPrivate::makeContextCurrent):
51992         (WebCore::GraphicsContext3DPrivate::isGLES2Compliant):
51993         (WebCore::GraphicsContext3DPrivate::paintToTextureMapper):
51994         * platform/graphics/efl/GraphicsContext3DPrivate.h: Removed functions implemented in GC3DOpenGL*
51995         (GraphicsContext3DPrivate):
51996
51997 2012-10-10  Tony Chang  <tony@chromium.org>
51998
51999         Unreviewed, rolling out r130937, r130949, r130955, and
52000         r130957.
52001         http://trac.webkit.org/changeset/130937
52002         http://trac.webkit.org/changeset/130949
52003         http://trac.webkit.org/changeset/130955
52004         http://trac.webkit.org/changeset/130957
52005         https://bugs.webkit.org/show_bug.cgi?id=94290
52006
52007         Breaks Qt build
52008
52009         * CMakeLists.txt:
52010         * DerivedSources.make:
52011         * DerivedSources.pri:
52012         * GNUmakefile.am:
52013         * WebCore.gyp/WebCore.gyp:
52014         * WebCore.gyp/scripts/action_preprocessgrammar.py: Removed.
52015         * WebCore.vcproj/WebCore.vcproj:
52016         * WebCore.xcodeproj/project.pbxproj:
52017         * css/CSSGrammar.y: Renamed from Source/WebCore/css/CSSGrammar.y.in.
52018         * css/CSSGrammar.y.includes: Removed.
52019         * css/makegrammar.pl:
52020
52021 2012-10-10  Rob Buis  <rbuis@rim.com>
52022
52023         [BlackBerry] Adapt to new image for search-cancel
52024         https://bugs.webkit.org/show_bug.cgi?id=98954
52025
52026         Reviewed by Antonio Gomes.
52027
52028         The new image for search-cancel is bigger than the old one, so invert the scaling.
52029
52030         * platform/blackberry/RenderThemeBlackBerry.cpp:
52031         (WebCore::RenderThemeBlackBerry::adjustSearchFieldCancelButtonStyle):
52032
52033 2012-10-10  Tony Chang  <tony@chromium.org>
52034
52035         Unreviewed, another speculative fix for Qt Win.
52036
52037         * DerivedSources.pri: Pass --preprocessor to the perl script.
52038         * css/makegrammar.pl: Use --preprocessor instead of /usr/bin/gcc.
52039
52040 2012-10-10  Tony Chang  <tony@chromium.org>
52041
52042         Unreviewed, another speculative fix for Qt Win.
52043
52044         * DerivedSources.pri: Make the path slash marks be forward slashes to the .in file.
52045
52046 2012-10-10  David Barton  <dbarton@mathscribe.com>
52047
52048         Turn on ENABLE_MATHML for Chromium
52049         https://bugs.webkit.org/show_bug.cgi?id=96960
52050
52051         Reviewed by Adam Barth.
52052
52053         Add the rendering/mathml directory to search.
52054
52055         * WebCore.gyp/WebCore.gyp:
52056
52057 2012-10-10  Tony Chang  <tony@chromium.org>
52058
52059         Unreviewed, speculative build fix for Qt Win.
52060
52061         * css/makegrammar.pl: Rather than making a temp file, use a pipe to
52062         pass data from gcc to the final output file.
52063
52064 2012-10-10  Brady Eidson  <beidson@apple.com>
52065
52066         Switch CachedResource over from SharedBuffer to a new ResourceBuffer
52067         https://bugs.webkit.org/show_bug.cgi?id=98541
52068
52069         Reviewed by Anders Carlsson.
52070
52071         As part of preparation for a WebKit2 NetworkProcess, we need to change the data handle shared
52072         between CachedResources and ResourceLoaders to be one that can be backed by something other
52073         than a SharedBuffer.
52074
52075         ResourceBuffer is this new object. Right now it is directly backed by a SharedBuffer and there
52076         should be no change in behavior.
52077
52078         No new tests (No behavior change).
52079
52080         * WebCore.exp.in:
52081         * WebCore.xcodeproj/project.pbxproj:
52082         * WebCore.vcproj/WebCore.vcproj:
52083         * CMakeLists.txt:
52084         * GNUmakefile.list.am:
52085         * Target.pri:
52086         * WebCore.gypi:
52087
52088         Implementation of the new ResourceBuffer, backed directly by a SharedBuffer:
52089         * loader/ResourceBuffer.cpp: Added.
52090         (WebCore):
52091         (WebCore::ResourceBuffer::ResourceBuffer):
52092         (WebCore::ResourceBuffer::~ResourceBuffer):
52093         (WebCore::ResourceBuffer::data):
52094         (WebCore::ResourceBuffer::size):
52095         (WebCore::ResourceBuffer::isEmpty):
52096         (WebCore::ResourceBuffer::getSomeData):
52097         (WebCore::ResourceBuffer::sharedBuffer):
52098         (WebCore::ResourceBuffer::copy):
52099         (WebCore::ResourceBuffer::hasPurgeableBuffer):
52100         (WebCore::ResourceBuffer::releasePurgeableBuffer):
52101         (WebCore::ResourceBuffer::createCFData):
52102
52103         * loader/ResourceBuffer.h: Added.
52104         (WebCore):
52105         (ResourceBuffer):
52106         (WebCore::ResourceBuffer::create):
52107         (WebCore::ResourceBuffer::adoptSharedBuffer):
52108         * loader/mac/ResourceBuffer.mm: Added.
52109
52110         (WebCore):
52111         (WebCore::ResourceBuffer::createNSData):
52112
52113         Switch CachedResource over to using it:
52114         * loader/cache/CachedResource.cpp:
52115         (WebCore::CachedResource::makePurgeable):
52116
52117         * loader/cache/CachedResource.h:
52118         (WebCore):
52119         (WebCore::CachedResource::resourceBuffer):
52120         (CachedResource):
52121
52122         Switch all the other CachedResource subclasses over to using it:
52123         * loader/cache/CachedCSSStyleSheet.cpp:
52124         (WebCore::CachedCSSStyleSheet::data):
52125
52126         * loader/cache/CachedFont.cpp:
52127         (WebCore::CachedFont::data):
52128         (WebCore::CachedFont::ensureCustomFontData):
52129
52130         * loader/cache/CachedImage.cpp:
52131         (WebCore::CachedImage::didAddClient):
52132         (WebCore::CachedImage::data):
52133
52134         * loader/cache/CachedRawResource.cpp:
52135         (WebCore::CachedRawResource::data):
52136
52137         * loader/cache/CachedScript.cpp:
52138         (WebCore::CachedScript::data):
52139
52140         * loader/cache/CachedShader.cpp:
52141         (WebCore::CachedShader::data):
52142
52143         * loader/cache/CachedTextTrack.cpp:
52144         (WebCore::CachedTextTrack::data):
52145         
52146         * loader/cache/CachedXSLStyleSheet.cpp:
52147         (WebCore::CachedXSLStyleSheet::data):
52148
52149         Switch other affect parties over to using it:
52150         * inspector/InspectorPageAgent.cpp:
52151         (WebCore::decodeBuffer):
52152         (WebCore::InspectorPageAgent::cachedResourceContent):
52153         (WebCore::InspectorPageAgent::sharedBufferContent):
52154
52155         * loader/DocumentLoader.cpp:
52156         (WebCore::DocumentLoader::subresource):
52157
52158         * loader/TextTrackLoader.cpp:
52159         (WebCore::TextTrackLoader::processNewCueData):
52160         (WebCore::TextTrackLoader::didReceiveData):
52161
52162         * loader/archive/cf/LegacyWebArchive.cpp:
52163         (WebCore::LegacyWebArchive::create):
52164
52165         * loader/icon/IconLoader.cpp:
52166         (WebCore::IconLoader::notifyFinished):
52167
52168         * platform/mac/PasteboardMac.mm:
52169         (WebCore::fileWrapperForImage):
52170
52171 2012-10-10  Julien Chaffraix  <jchaffraix@webkit.org>
52172
52173         Unreviewed build fix after r130940.
52174
52175         * platform/graphics/skia/GraphicsContextSkia.cpp:
52176         (WebCore::GraphicsContext::drawLineForDocumentMarker):
52177         Avoid redefining the same variable twice.
52178
52179 2012-10-10  Alexis Menard  <alexis@webkit.org>
52180
52181         [Mac] Deprecate getPropertyShorthand from objective c bindings for future removal
52182         https://bugs.webkit.org/show_bug.cgi?id=98916
52183
52184         Reviewed by Timothy Hatcher.
52185
52186         Mark getPropertyShorthand as deprecated so we can remove it later. It will allow us
52187         to remove getPropertyShorthand from the web exposed API (this function is not part of
52188         any specification, it was there for historical reason).
52189
52190         No new tests : just mark a function as deprecated.
52191
52192         * bindings/objc/PublicDOMInterfaces.h:
52193
52194 2012-10-10  Mike West  <mkwst@chromium.org>
52195
52196         Web Inspector: add support for %c (style) in console API
52197         https://bugs.webkit.org/show_bug.cgi?id=69401
52198
52199         Reviewed by Pavel Feldman.
52200
52201         This patch mimics Firebug's '%c' option when calling 'console.log'
52202         messages. 'console.log("%cBlue!", "color: blue;");' will write blue
52203         text to the console, and so on.
52204
52205         To match Firebug's behavior, multiple '%c' entries will overwrite each
52206         other: only one style will be applied. Sorry, folks.
52207
52208         Test: inspector/console/console-format-style.html
52209
52210         * inspector/front-end/ConsoleMessage.js:
52211         (WebInspector.ConsoleMessageImpl.prototype._formatWithSubstitutionString.styleFormatter):
52212         (WebInspector.ConsoleMessageImpl.prototype._formatWithSubstitutionString.append):
52213         (WebInspector.ConsoleMessageImpl.prototype._formatWithSubstitutionString):
52214
52215 2012-10-10  Varun Jain  <varunjain@chromium.org>
52216
52217         [chromium] Spelling and grammar markers are pixelated in hidpi.
52218         https://bugs.webkit.org/show_bug.cgi?id=98339
52219
52220         Reviewed by Stephen White.
52221
52222         We create separate bitmaps for markers in normal and hidpi mode as per
52223         specification from UX and choose the right bitmap based on the current
52224         device scale factor.
52225
52226         Tests: editing/spelling/grammar-markers-hidpi.html
52227                editing/spelling/inline-spelling-markers-hidpi.html
52228
52229         * platform/graphics/skia/GraphicsContextSkia.cpp:
52230         (WebCore::draw2xMarker):
52231         (WebCore):
52232         (WebCore::draw1xMarker):
52233         (WebCore::GraphicsContext::drawLineForDocumentMarker):
52234         * platform/graphics/skia/PlatformContextSkia.cpp:
52235         (WebCore::PlatformContextSkia::PlatformContextSkia):
52236         * platform/graphics/skia/PlatformContextSkia.h:
52237         (WebCore::PlatformContextSkia::deviceScaleFactor):
52238         (WebCore::PlatformContextSkia::setDeviceScaleFactor):
52239         (PlatformContextSkia):
52240
52241 2012-10-10  Pablo Flouret  <pablof@motorola.com>
52242
52243         Pre-process CSSGrammar.y before running through bison.
52244         https://bugs.webkit.org/show_bug.cgi?id=94290
52245
52246         Reviewed by Tony Chang.
52247
52248         Running CSSGrammar.y through a preprocessor allows the use of feature
52249         defines in all places of the yacc file (i.e. not just in C blocks).
52250         Mostly useful to be able to keep every part of a feature under feature
52251         flags for self-documenting purposes.
52252
52253         No new tests, CSSGrammar.y should be generated correctly and everything
52254         should keep working as before.
52255
52256         * CMakeLists.txt:
52257         * DerivedSources.make:
52258         * DerivedSources.pri:
52259         * GNUmakefile.am:
52260             Modify build systems to use makegrammar.pl to generate the .y files
52261             and run those through bison.
52262
52263         * WebCore.gyp/WebCore.gyp:
52264         * WebCore.gyp/scripts/action_preprocessgrammar.py: Added.
52265             Add a new action to preprocess the CSSGrammar.y.in file before the
52266             bison rule is run.
52267
52268         * WebCore.vcproj/WebCore.vcproj:
52269         * WebCore.xcodeproj/project.pbxproj:
52270             Add the new .y.in / .y.includes files.
52271
52272         * css/CSSGrammar.y.in: Renamed from Source/WebCore/css/CSSGrammar.y.
52273             Also moved the top declarations section that has includes, defines,
52274             etc. to its own file. These shouldn't be touched by the first
52275             pass of the preprocessor. And changed the existing ENABLE(FEATURE)
52276             ifdefs to ENABLE_FEATURE since the ENABLE() macro is not available
52277             yet.
52278         * css/CSSGrammar.y.includes: Added.
52279             The aforementioned declarations header section. After the .y.in file
52280             is processed it will be concatenated with this one to make the
52281             CSSGrammar.y file.
52282
52283         * css/makegrammar.pl:
52284             Modify the script to handle .y.in files.
52285
52286 2012-10-10  Luciano Wolf  <luciano.wolf@openbossa.org>
52287
52288         EventHandler::handleGestureLongPress breaks compilation if CONTEXT_MENUS isn't set
52289         https://bugs.webkit.org/show_bug.cgi?id=98890
52290
52291         Reviewed by Caio Marcelo de Oliveira Filho.
52292
52293         * page/EventHandler.cpp:
52294         (WebCore::EventHandler::handleGestureLongPress):
52295
52296 2012-10-10  David Grogan  <dgrogan@chromium.org>
52297
52298         Inspector: display IndexedDB integer versions
52299         https://bugs.webkit.org/show_bug.cgi?id=95816
52300
52301         Reviewed by Vsevolod Vlasov.
52302
52303         Added basic test to database-structure.html
52304
52305         * inspector/Inspector.json:
52306         * inspector/InspectorIndexedDBAgent.cpp:
52307         (WebCore):
52308         * inspector/front-end/IndexedDBModel.js:
52309         (WebInspector.IndexedDBModel.prototype._loadDatabase.callback):
52310         (WebInspector.IndexedDBModel.prototype._loadDatabase):
52311         (WebInspector.IndexedDBModel.Database):
52312         * inspector/front-end/IndexedDBViews.js:
52313         (WebInspector.IDBDatabaseView):
52314         (WebInspector.IDBDatabaseView.prototype._refreshDatabase):
52315
52316 2012-10-10  Simon Fraser  <simon.fraser@apple.com>
52317
52318         Store a visible rect in GraphicsLayers, and optionally dump it in layerTreeAsText
52319         https://bugs.webkit.org/show_bug.cgi?id=98839
52320
52321         Reviewed by Sam Weinig.
52322
52323         To replace CATiledLayer with TileCaches, we need to be able to compute the visible part of a GraphicsLayer,
52324         in order to limit the extent of TileCache tiles. Reuse the existing code in GraphicsLayerCA for this,
52325         but store the computed rect in m_visibleRect.
52326         
52327         Add a flag to layerTreeAsText() so that tests can optionally include this visible rect in
52328         layer tree dumps. This output will be platform-specific, so we don't want to do it unconditionally.
52329
52330         * WebCore.exp.in: Signature of Frame::layerTreeAsText() changed.
52331         * page/Frame.cpp:
52332         (WebCore::Frame::layerTreeAsText): Change to take some enum flags rather than just a bool.
52333         * page/Frame.h:
52334         * platform/graphics/GraphicsLayer.cpp:
52335         (WebCore::GraphicsLayer::writeIndent): Make into a static class method so subclasses can use it.
52336         (WebCore::GraphicsLayer::dumpProperties): Call a virtual dumpAdditionalProperties() for subclasses.
52337         (showGraphicsLayerTree):
52338         * platform/graphics/GraphicsLayer.h:
52339         (GraphicsLayer): New LayerTreeAsTextIncludeVisibleRects flag.
52340         (WebCore::GraphicsLayer::dumpAdditionalProperties): New virtual method.
52341         * platform/graphics/ca/GraphicsLayerCA.cpp:
52342         (WebCore::GraphicsLayerCA::recursiveCommitChanges): clipRectForChildren and clipRectForSelf
52343         were previously unused and buggy. Fix to correctly compute clipRectForSelf, to assign
52344         to m_visibleRect.
52345         (WebCore::GraphicsLayerCA::dumpAdditionalProperties): Dump m_visibleRect.
52346         * platform/graphics/ca/GraphicsLayerCA.h:
52347         (GraphicsLayerCA):
52348         * rendering/RenderLayerCompositor.cpp:
52349         (WebCore::RenderLayerCompositor::layerTreeAsText): Convert the flags from Frame flags
52350         to GraphicsLayerFlags and pass them along.
52351         * rendering/RenderLayerCompositor.h:
52352         (RenderLayerCompositor):
52353         * testing/Internals.cpp:
52354         (WebCore::Internals::layerTreeAsText): Overloaded method to handle the optional IDL arguments.
52355         * testing/Internals.h: Add enum.
52356         * testing/Internals.idl: Add optional flags, and a const short to describe the flags.
52357
52358 2012-10-10  Shinya Kawanaka  <shinyak@chromium.org>
52359
52360         Needs internal API to return distributed nodes for InsertionPoint
52361         https://bugs.webkit.org/show_bug.cgi?id=98868
52362
52363         Reviewed by Hajime Morita.
52364
52365         When testing insertion points, we would like to have an internal API which returns a node list
52366         distributed to an insertion point.
52367
52368         We've added the API in Internals.
52369
52370         Test: fast/dom/shadow/distributed-nodes.html
52371
52372         * WebCore.exp.in:
52373         * html/shadow/InsertionPoint.cpp:
52374         (WebCore::InsertionPoint::distributedNodes): Returns the distributed nodes. When InsertionPoint is not
52375         attached, the result will be null, since the distribution is not calculated correctly.
52376         (WebCore):
52377         * html/shadow/InsertionPoint.h:
52378         (InsertionPoint):
52379         * testing/Internals.cpp:
52380         (WebCore::Internals::distributedNodes):
52381         (WebCore):
52382         * testing/Internals.h:
52383         (Internals):
52384         * testing/Internals.idl:
52385
52386 2012-10-10  Wei James  <james.wei@intel.com>
52387
52388         [Chromium]Android x86 content shell debug build warning for uninitialized value used as error with gcc 4.6
52389         https://bugs.webkit.org/show_bug.cgi?id=98629
52390
52391         Reviewed by Adam Barth.
52392
52393         Warning was taken as error for uninitialized value being used when
52394         building content shell for Android x86 with gcc 4.6.
52395
52396         * WebCore.gyp/WebCore.gyp:
52397
52398 2012-10-10  Andrei Bucur  <abucur@adobe.com>
52399
52400         [CSS Regions] Create a separate list for the invalid regions
52401         https://bugs.webkit.org/show_bug.cgi?id=98752
52402
52403         Reviewed by Andreas Kling.
52404
52405         This patch moves the invalid regions in a low traffic data structure, outside the main region list. This should add a small performance boost (there's no test for it) and simplifies the code in the following ways:
52406         - iterations through the region list don't need to worry about invalid regions
52407         - accessing the first/last region is straightforward
52408         - list manipulations are easier to implement (e.g. binary search for a region)
52409
52410         Tests: Adapted fast/regions/flows-dependency-same-flow.html to use the new dump format for the region chain.
52411
52412         * dom/WebKitNamedFlow.cpp:
52413         (WebCore::WebKitNamedFlow::getRegionsByContent): Now returns only the valid regions.
52414         (WebCore::WebKitNamedFlow::getRegions): Now returns only the valid regions.
52415         * rendering/RenderFlowThread.cpp:
52416         (WebCore::RenderFlowThread::RenderFlowThread):
52417         (WebCore::RenderFlowThread::layout):
52418         (WebCore::RenderFlowThread::updateLogicalWidth):
52419         (WebCore::RenderFlowThread::computeLogicalHeight):
52420         (WebCore::RenderFlowThread::repaintRectangleInRegions):
52421         (WebCore::RenderFlowThread::regionAtBlockOffset):
52422         (WebCore::RenderFlowThread::removeRenderBoxRegionInfo):
52423         (WebCore::RenderFlowThread::logicalWidthChangedInRegions):
52424         (WebCore::RenderFlowThread::firstRegion):
52425         (WebCore::RenderFlowThread::lastRegion):
52426         (WebCore::RenderFlowThread::computeOverflowStateForRegions):
52427         (WebCore::RenderFlowThread::regionInRange):
52428         (WebCore::RenderFlowThread::checkRegionsWithStyling):
52429         (WebCore::RenderFlowThread::objectInFlowRegion):
52430         (WebCore::RenderFlowThread::autoLogicalHeightRegionsCount):
52431         * rendering/RenderFlowThread.h:
52432         * rendering/RenderNamedFlowThread.cpp:
52433         (WebCore):
52434         (WebCore::addRegionToList):
52435         (WebCore::RenderNamedFlowThread::addRegionToThread):
52436         (WebCore::RenderNamedFlowThread::removeRegionFromThread):
52437         (WebCore::RenderNamedFlowThread::checkInvalidRegions):
52438         * rendering/RenderNamedFlowThread.h:
52439         (WebCore::RenderNamedFlowThread::invalidRenderRegionList):
52440         (RenderNamedFlowThread):
52441         (WebCore::RenderNamedFlowThread::canBeDestroyed):
52442         * rendering/RenderTreeAsText.cpp:
52443         (WebCore::writeRenderRegionList):
52444         (WebCore):
52445         (WebCore::writeRenderNamedFlowThreads): The valid regions are listed first followed by the invalid regions.
52446
52447 2012-10-10  Vsevolod Vlasov  <vsevik@chromium.org>
52448
52449         Web Inspector: [Regression] Stale revisions are not cleared when inspector is opened for the already loaded page.
52450         https://bugs.webkit.org/show_bug.cgi?id=98915
52451
52452         Reviewed by Alexander Pavlov.
52453
52454         WorkspaceController now clears stale revisions on navigation as well.
52455
52456         * inspector/front-end/Workspace.js:
52457         (WebInspector.WorkspaceController):
52458         (WebInspector.WorkspaceController.prototype._mainFrameNavigated):
52459
52460 2012-10-10  Vsevolod Vlasov  <vsevik@chromium.org>
52461
52462         Web Inspector: Exception when committing java script editing with revision history view open.
52463         https://bugs.webkit.org/show_bug.cgi?id=98908
52464
52465         Reviewed by Alexander Pavlov.
52466
52467         Added null check.
52468
52469         * inspector/front-end/RevisionHistoryView.js:
52470
52471 2012-10-10  Pavel Feldman  <pfeldman@chromium.org>
52472
52473         Web Inspector: protect node in the InspectorDOMNode::inspect
52474         https://bugs.webkit.org/show_bug.cgi?id=98914
52475
52476         Reviewed by Yury Semikhatsky.
52477
52478         * inspector/InspectorDOMAgent.cpp:
52479         (WebCore::InspectorDOMAgent::inspect):
52480
52481 2012-10-10  Mike West  <mkwst@google.com>
52482
52483         EditorCommand calls setProperty with the wrong parameters.
52484         https://bugs.webkit.org/show_bug.cgi?id=98896
52485
52486         Reviewed by Jochen Eisinger.
52487
52488         EditorCommand::executeToggleStyleInList calls
52489         StylePropertySet::setProperty with an ExceptionCode as the final
52490         argument. This only succeeds because it's automagically cast to a bool,
52491         which is what the method actually expects.
52492
52493         Implicitly passing in 'false' by dropping the parameter shouldn't change
52494         any visible functionality; no new tests are required.
52495
52496         * editing/EditorCommand.cpp:
52497         (WebCore::executeToggleStyleInList):
52498
52499 2012-10-10  Mike West  <mkwst@google.com>
52500
52501         HTMLTextFormControlElement calls setInlineStyleProperty with the wrong parameters.
52502         https://bugs.webkit.org/show_bug.cgi?id=98892
52503
52504         Reviewed by Jochen Eisinger.
52505
52506         HTMLTextFormControlElement::updatePlaceholderVisibility calls
52507         HTMLElement::setInlineStyleProperty with an ExceptionCode as the last
52508         parameter. This only succeeds because it's automagically cast to a bool,
52509         which is what the method actually expects.
52510
52511         Implicitly passing in 'false' by dropping the parameter shouldn't change
52512         any functionality; so no new tests are required.
52513
52514         * html/HTMLTextFormControlElement.cpp:
52515         (WebCore::HTMLTextFormControlElement::updatePlaceholderVisibility):
52516
52517 2012-10-10  Christophe Dumez  <christophe.dumez@intel.com>
52518
52519         SQLResultSet.rowsAffected not cleared
52520         https://bugs.webkit.org/show_bug.cgi?id=46070
52521
52522         Reviewed by Kenneth Rohde Christiansen.
52523
52524         SQLResultSet.rowsAffected is supposed to return the number
52525         of rows that were changed by the statement. For "SELECT"
52526         statements, it should return 0.
52527
52528         However, our implementation currently relies on sqlite3_changes()
52529         to compute this value. sqlite3_changes() returns the number of
52530         direct row changes in the most recent INSERT, UPDATE, or DELETE
52531         statement within the same trigger context. Unfortunately, the
52532         most recent INSERT, UPDATE, or DELETE statement may not be the
52533         last statement. As a consequence, if you INSERT 1 row, then
52534         do a SELECT, SQLResultSet.rowsAffected will be 1 for both the
52535         INSERT and the SELECT statements.
52536
52537         The proposed solution is to use sqlite3_total_changes() instead
52538         of sqlite3_changes(). sqlite3_total_changes() returns the number
52539         of row changes caused by INSERT, UPDATE or DELETE statements since
52540         the database connection was opened. We now store the value
52541         returned by sqlite3_total_changes() before each statement in
52542         order to return the count difference in
52543         SQLiteDatabase::lastChanges().
52544
52545         Test: storage/websql/execute-sql-rowsAffected.html
52546
52547         * platform/sql/SQLiteDatabase.cpp:
52548         (WebCore::SQLiteDatabase::SQLiteDatabase):
52549         (WebCore::SQLiteDatabase::updateLastChangesCount):
52550         (WebCore):
52551         (WebCore::SQLiteDatabase::lastChanges):
52552         * platform/sql/SQLiteDatabase.h:
52553         (SQLiteDatabase):
52554         * platform/sql/SQLiteStatement.cpp:
52555         (WebCore::SQLiteStatement::step):
52556
52557 2012-10-10  Keishi Hattori  <keishi@webkit.org>
52558
52559         REGRESSION (r129738): Calendar picker is too wide when the input is rtl
52560         https://bugs.webkit.org/show_bug.cgi?id=98881
52561
52562         Reviewed by Kent Tamura.
52563
52564         Calendar picker should use param.isCalendarRTL instead of param.isRTL but some were left.
52565
52566         No new tests. Covered by ManualTests/forms/calendar-picker.html.
52567
52568         * Resources/pagepopups/calendarPicker.js:
52569         (CalendarPicker.prototype.fixWindowSize): Calendar picker should use param.isCalendarRTL instead of param.isRTL.
52570         (DaysTable.prototype._handleKey): Ditto.
52571
52572 2012-10-10  Alexander Pavlov  <apavlov@chromium.org>
52573
52574         Web Inspector: Semantically incorrect CSS rules result in broken source code data
52575         https://bugs.webkit.org/show_bug.cgi?id=98520
52576
52577         Reviewed by Vsevolod Vlasov.
52578
52579         Pop and throw away rule data from the stack when data have been collected for a semantically invalid CSS rule
52580         (which is not going to be created).
52581
52582         * css/CSSParser.cpp:
52583         (WebCore::CSSParser::createImportRule):
52584         (WebCore::CSSParser::createFontFaceRule):
52585         (WebCore::CSSParser::createPageRule):
52586         (WebCore::CSSParser::createRegionRule):
52587
52588 2012-10-10  Zeno Albisser  <zeno@webkit.org>
52589
52590         [Qt][Mac] GL_ARB_texture_rectangle must be activated when using ANGLE.
52591         https://bugs.webkit.org/show_bug.cgi?id=98387
52592
52593         Check for the availability of GL_ARB_texture_rectangle extension.
52594         In case it is available, we activate the extension for ANGLE.
52595         This is necessary for WebGL on mac, because the GraphicsSurface
52596         on this platform is based on an IOSurface, which requires this extension.
52597
52598         Reviewed by Noam Rosenthal.
52599
52600         * platform/graphics/qt/GraphicsContext3DQt.cpp:
52601         (WebCore::GraphicsContext3DPrivate::initializeANGLE):
52602
52603 2012-10-10  Andreas Kling  <kling@webkit.org>
52604
52605         ElementAttributeData: tighten member packing on 64-bit.
52606         <http://webkit.org/b/98861>
52607
52608         Reviewed by Anders Carlsson.
52609
52610         Pack m_isMutable and m_arraySize into the slack from the RefCounted base on 64-bit.
52611         218kB progression on Membuster3.
52612
52613         * dom/ElementAttributeData.h:
52614         (ElementAttributeData):
52615
52616 2012-10-10  Alexandre Elias  <aelias@chromium.org>
52617
52618         Text Autosizing: Counteract funky window sizing on Android.
52619         https://bugs.webkit.org/show_bug.cgi?id=98809
52620
52621         Reviewed by Adam Barth.
52622
52623         In Chrome for Android, the window sizes provided to WebCore are
52624         currently in physical screen pixels instead of
52625         device-scale-adjusted units. For example window width on a
52626         Galaxy Nexus is 720 instead of 360.  Text autosizing expects
52627         device-independent pixels.  When Chrome for Android cuts over to
52628         the new coordinate space, it will be tied to the setting
52629         applyPageScaleFactorInCompositor.
52630
52631         No new tests.
52632
52633         * rendering/TextAutosizer.cpp:
52634         (WebCore::TextAutosizer::processSubtree):
52635
52636 2012-10-09  Philip Rogers  <pdr@google.com>
52637
52638         Recursively detach SVGElementInstances
52639         https://bugs.webkit.org/show_bug.cgi?id=98851
52640
52641         Reviewed by Ryosuke Niwa and Abhishek Arya
52642
52643         Before this patch, SVGElementInstance child nodes were not being detached. This
52644         patch makes detach() recursively detach SVGElementInstances.
52645
52646         * svg/SVGElementInstance.cpp:
52647         (WebCore::SVGElementInstance::detach):
52648
52649 2012-10-09  Kenichi Ishibashi  <bashi@chromium.org>
52650
52651         [Chromium] Fix harfbuzz-ng related code after r130231
52652         https://bugs.webkit.org/show_bug.cgi?id=98858
52653
52654         Reviewed by Kent Tamura.
52655
52656         Replace first/second with key/value.
52657
52658         No new tests. No changes in behavior.
52659
52660         * platform/graphics/harfbuzz/ng/HarfBuzzNGFaceSkia.cpp:
52661         (WebCore::harfbuzzGetGlyph):
52662         * platform/graphics/skia/SimpleFontDataSkia.cpp:
52663         (WebCore::SimpleFontData::canRenderCombiningCharacterSequence):
52664
52665 2012-10-09  Enrica Casucci  <enrica@apple.com>
52666
52667         Only measure text once instead of twice when performing line layout.
52668         https://bugs.webkit.org/show_bug.cgi?id=98317
52669         <rdar://problem/12080821>
52670
52671         Reviewed by Dan Bernstein.
52672
52673         Since we are measuring each word to find out where the line break should occur,
52674         we should cache that information to avoid measuring the run again when
52675         creating the line box. The bulk of the change is in nextLineBreak, where
52676         the measurements are collected and placed in a vector so that they can
52677         be consumed in setLogicalWidthForTextRun where we used to measure the
52678         text one more time.
52679         Each entry in the vector is a WordMeasurement object that contains information
52680         about the start and end offset in the run, the renderer, the measured width
52681         and, possibly, a list of fallback fonts.
52682         When we need to compute the width of the run to create the line box, we add
52683         all the measurements for the given renderer in the run to get the total width.
52684         This optiomization is currently disabled for platforms using HarfBuzz.
52685
52686         * platform/graphics/Font.cpp:
52687         (WebCore::Font::width): Added fallback fonts parameter.
52688         * platform/graphics/Font.h:
52689         (Font): Added fallback fonts parameter to the width static member function.
52690         This method is called when we compute the width using TextLayout.
52691         * platform/graphics/mac/ComplexTextController.cpp:
52692         (WebCore::TextLayout::width): Added fallback fonts parameter.
52693         (WebCore::Font::width):
52694         (WebCore::ComplexTextController::advance):
52695         * platform/graphics/mac/ComplexTextController.h:
52696         (ComplexTextController): Added fallback fonts parameter to advance method.
52697         * rendering/RenderBlock.h: Added WordMeasures parameter to few methods.
52698         * rendering/RenderBlockLineLayout.cpp:
52699         (WordMeasurement): Added new class to hold measurement information.
52700         (WebCore::setLogicalWidthForTextRun): This is where we compute the run width using the
52701         cached information.
52702         (WebCore::RenderBlock::computeInlineDirectionPositionsForLine): Added wordMeasures parameter.
52703         (WebCore::RenderBlock::createLineBoxesFromBidiRuns): Added wordMeasures parameter.
52704         (WebCore::RenderBlock::layoutRunsAndFloatsInRange): Added declaration of the WordMeasures
52705         vector and its use.
52706         (WebCore::textWidth): Added fallbackFonts parameter, since now we only measure once.
52707         (WebCore::RenderBlock::LineBreaker::nextLineBreak): This method has been modified to collect
52708         the measurements of the individual words and add them to the vector.
52709
52710 2012-10-09  Andreas Kling  <kling@webkit.org>
52711
52712         GlyphPageTreeNode should use HashMap<OwnPtr>.
52713         <http://webkit.org/b/98845>
52714
52715         Reviewed by Dan Bernstein.
52716
52717         - Replace manual memory management by OwnPtrs.
52718         - Added a GlyphPageTreeNodeMap typedef to make call sites look a bit nicer.
52719         = Changed some hashmap get()/remove() pairs to use the more efficient take() instead.
52720         - Made the constructor private, it has no external clients.
52721
52722         * platform/graphics/GlyphPageTreeNode.cpp:
52723         (WebCore::GlyphPageTreeNode::getRoot):
52724         (WebCore::GlyphPageTreeNode::pageCount):
52725         (WebCore::GlyphPageTreeNode::getChild):
52726         (WebCore::GlyphPageTreeNode::pruneCustomFontData):
52727         (WebCore::GlyphPageTreeNode::pruneFontData):
52728         (WebCore::GlyphPageTreeNode::showSubtree):
52729         * platform/graphics/GlyphPageTreeNode.h:
52730         (GlyphPageTreeNode):
52731         (WebCore::GlyphPageTreeNode::GlyphPageTreeNode):
52732
52733 2012-10-09  Kent Tamura  <tkent@chromium.org>
52734
52735         Sub-fields in input[type=time] should not be focusable if the input is disabled or read-only
52736         https://bugs.webkit.org/show_bug.cgi?id=98850
52737
52738         Reviewed by Kentaro Hara.
52739
52740         Covered by additional test cases of
52741         time-multiple-fields/time-multiple-fields-keyboard-events.html and
52742         time-multiple-fields/time-multiple-fields-mouse-events.html.
52743
52744         * html/shadow/DateTimeFieldElement.h:
52745         (FieldOwner): Add isFieldOwnerDisabledOrReadOnly.
52746         * html/shadow/DateTimeFieldElement.cpp:
52747         (WebCore::DateTimeFieldElement::isFocusable):
52748         Check isFieldOwnerDisabledOrReadOnly, and calls HTMLElement::isFocusable()
52749         just in case.
52750         * html/shadow/DateTimeEditElement.cpp:
52751         (WebCore::DateTimeEditElement::isFieldOwnerDisabledOrReadOnly): Added.
52752         * html/shadow/DateTimeEditElement.h:
52753         (DateTimeEditElement): Declare isFieldOwnerDisabledOrReadOnly.
52754
52755 2012-10-09  Robert Kroeger  <rjkroege@chromium.org>
52756
52757         [chromium] revert fling deacceleration parameter change
52758         https://bugs.webkit.org/show_bug.cgi?id=98820
52759
52760         Reviewed by Adrienne Walker.
52761
52762         After an extended discussion, it has been decided that a previous
52763         adjustment to fling deacceleration parameters should be reverted.
52764
52765         Tested by existing unit tests.
52766
52767         * platform/TouchFlingPlatformGestureCurve.cpp:
52768         (WebCore::TouchFlingPlatformGestureCurve::createForTouchPad):
52769         (WebCore::TouchFlingPlatformGestureCurve::createForTouchScreen):
52770
52771 2012-10-09  Kent Tamura  <tkent@chromium.org>
52772
52773         Should reject invalid dates constructed with multiple fields UI
52774         https://bugs.webkit.org/show_bug.cgi?id=98727
52775
52776         Reviewed by Hajime Morita.
52777
52778         In input[type=date] with multiple fields UI, we allow users to set
52779         day-of-month value to 1-31 regardless of the month value. So users can
52780         construct an invalid date such as "2012-02-31". We should sanitize such
52781         values.
52782
52783         This change affects platforms with ENABLE_INPUT_TYPE_DATE &&
52784         ENABLE_INPUT_MULTIPLE_FIELDS_UI.
52785
52786         Test: fast/forms/date-multiple-fields/date-multiple-fields-keyboard-events.html
52787
52788         * html/BaseDateAndTimeInputType.h:
52789         (BaseDateAndTimeInputType): Make sanitizeValue protected to be called from
52790         BaseMultipleFieldsDateAndTimeInputType.
52791         * html/BaseMultipleFieldsDateAndTimeInputType.cpp:
52792         (WebCore::BaseMultipleFieldsDateAndTimeInputType::editControlValueChanged):
52793         Apply sanitizeValue to a value constructed in UI.
52794         (WebCore::BaseMultipleFieldsDateAndTimeInputType::restoreFormControlState):
52795         Ditto.
52796
52797 2012-10-09  Joe Mason  <jmason@rim.com>
52798
52799         Check for null m_frame in NetworkJob
52800         https://bugs.webkit.org/show_bug.cgi?id=98830
52801
52802         Reviewed by George Staikos.
52803
52804         PR 220025
52805
52806         * platform/network/blackberry/NetworkJob.cpp:
52807         (WebCore::NetworkJob::sendRequestWithCredentials):
52808         (WebCore::NetworkJob::storeCredentials):
52809
52810 2012-10-09  Jian Li  <jianli@chromium.org>
52811
52812         Update the CSS property used to support draggable regions.
52813         https://bugs.webkit.org/show_bug.cgi?id=97156
52814
52815         Reviewed by Adam Barth.
52816
52817         The CSS property to support draggable regions has been changed from
52818         "-webkit-widget-region" to "-webkit-app-region" in the following syntax:
52819            -webkit-app-region: drag|no-drag
52820
52821         The CSS parsing code for draggable regions is now different from the CSS
52822         parsing code for dashboard regions since we have quite different syntax.
52823
52824         We still try to share as much rendering update code as possible for
52825         these two features. To make the shared code easier to understand for
52826         both features, the name "DashboardRegions" in the shared code is changed
52827         to "AnnotatedRegions" to work for both dashboard regions and draggable
52828         regions.
52829
52830         Note that we still using WIDGET_REGION as feature name in order not to
52831         add more changes to this patch. It will be renamed to a more appropriate
52832         name in next patch. WIDGET_REGION is now only turned on for the chromium
52833         port.
52834
52835         Test: fast/css/draggable-region-parser.html
52836
52837         * Configurations/FeatureDefines.xcconfig: Disable WIDGET_REGION feature.
52838         * WebCore.exp.in: Update the exported symbol due to renaming.
52839         * css/CSSComputedStyleDeclaration.cpp: Update the CSS parsing.
52840         (WebCore):
52841         (WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue):
52842         * css/CSSParser.cpp: Update the CSS parsing.
52843         (WebCore::CSSParser::parseValue):
52844         (WebCore):
52845         (WebCore::CSSParser::parseDashboardRegions):
52846         * css/CSSParserValues.cpp: Update the CSS parsing.
52847         (WebCore::CSSParserValue::createCSSValue):
52848         * css/CSSPrimitiveValue.cpp: Update the CSS parsing.
52849         (WebCore::isValidCSSUnitTypeForDoubleConversion):
52850         (WebCore):
52851         (WebCore::CSSPrimitiveValue::cleanup):
52852         (WebCore::CSSPrimitiveValue::customCssText):
52853         (WebCore::CSSPrimitiveValue::cloneForCSSOM):
52854         (WebCore::CSSPrimitiveValue::reportDescendantMemoryUsage):
52855         * css/CSSPrimitiveValue.h: Update the CSS parsing.
52856         (CSSPrimitiveValue):
52857         * css/CSSProperty.cpp:
52858         (WebCore::CSSProperty::isInheritedProperty):
52859         * css/CSSPropertyNames.in: Rename the CSS property for draggable region.
52860         * css/CSSValueKeywords.in: Add the keywords supported for the draggable region.
52861         * css/DashboardRegion.h: Remove WIDGET_REGION guard.
52862         (DashboardRegion):
52863         * css/StyleResolver.cpp: Update the CSS parsing.
52864         (WebCore::StyleResolver::collectMatchingRulesForList):
52865         * dom/Document.cpp: Rename dashboardRegions to annotatedRegions.
52866         (WebCore::Document::Document):
52867         (WebCore::Document::annotatedRegions):
52868         (WebCore::Document::setAnnotatedRegions):
52869         (WebCore::Document::reportMemoryUsage):
52870         * dom/Document.h: Rename dashboardRegions to annotatedRegions.
52871         (WebCore):
52872         (WebCore::Document::setAnnotatedRegionsDirty):
52873         (WebCore::Document::annotatedRegionsDirty):
52874         (WebCore::Document::hasAnnotatedRegions):
52875         (WebCore::Document::setHasAnnotatedRegions):
52876         (Document):
52877         * page/Chrome.cpp: Rename dashboardRegions to annotatedRegions.
52878         (WebCore::ChromeClient::annotatedRegionsChanged):
52879         * page/ChromeClient.h: Rename dashboardRegions to annotatedRegions.
52880         (ChromeClient):
52881         * page/FrameView.cpp: Rename dashboardRegions to annotatedRegions.
52882         (WebCore::FrameView::layout):
52883         (WebCore::FrameView::updateAnnotatedRegions):
52884         (WebCore::FrameView::paintContents):
52885         * page/FrameView.h: Rename dashboardRegions to annotatedRegions.
52886         (FrameView):
52887         * rendering/RenderInline.cpp:
52888         (WebCore::RenderInline::addAnnotatedRegions):
52889         * rendering/RenderInline.h: Rename dashboardRegions to annotatedRegions.
52890         (RenderInline):
52891         * rendering/RenderLayer.cpp: Rename dashboardRegions to annotatedRegions.
52892         (WebCore::RenderLayer::scrollTo):
52893         (WebCore::RenderLayer::setHasHorizontalScrollbar):
52894         (WebCore::RenderLayer::setHasVerticalScrollbar):
52895         (WebCore::RenderLayer::updateScrollbarsAfterLayout):
52896         * rendering/RenderListBox.cpp: Rename dashboardRegions to annotatedRegions.
52897         (WebCore::RenderListBox::setHasVerticalScrollbar):
52898         * rendering/RenderObject.cpp: Rename dashboardRegions to annotatedRegions.
52899         (WebCore::RenderObject::styleWillChange):
52900         (WebCore::RenderObject::addAnnotatedRegions):
52901         (WebCore::RenderObject::collectAnnotatedRegions):
52902         * rendering/RenderObject.h: Rename dashboardRegions to annotatedRegions.
52903         (WebCore::AnnotatedRegionValue::operator==):
52904         (WebCore::AnnotatedRegionValue::operator!=):
52905         (AnnotatedRegionValue):
52906         (RenderObject):
52907         * rendering/style/RenderStyle.cpp: Update the CSS parsing.
52908         (WebCore::RenderStyle::diff):
52909         (WebCore):
52910         * rendering/style/RenderStyle.h: Update the CSS parsing.
52911         * rendering/style/RenderStyleConstants.h: Update the CSS parsing.
52912         * rendering/style/StyleDashboardRegion.h: Update the CSS parsing.
52913         * rendering/style/StyleRareNonInheritedData.cpp: Update the CSS parsing.
52914         (WebCore::StyleRareNonInheritedData::StyleRareNonInheritedData):
52915         (WebCore::StyleRareNonInheritedData::operator==):
52916         * rendering/style/StyleRareNonInheritedData.h: Update the CSS parsing.
52917         (WebCore):
52918         (StyleRareNonInheritedData):
52919
52920 2012-10-09  Sheriff Bot  <webkit.review.bot@gmail.com>
52921
52922         Unreviewed, rolling out r130811 and r130821.
52923         http://trac.webkit.org/changeset/130811
52924         http://trac.webkit.org/changeset/130821
52925         https://bugs.webkit.org/show_bug.cgi?id=98831
52926
52927         Broke date-suggestion-picker-appearance-with-scroll-bar.html
52928         (Requested by abarth|gardening on #webkit).
52929
52930         * WebCore.exp.in:
52931         * dom/ContainerNode.cpp:
52932         (WebCore::ContainerNode::getUpperLeftCorner):
52933         (WebCore::ContainerNode::getLowerRightCorner):
52934         * dom/MouseRelatedEvent.cpp:
52935         (WebCore::MouseRelatedEvent::computeRelativePosition):
52936         * dom/Node.cpp:
52937         (WebCore::Node::convertToPage):
52938         (WebCore::Node::convertFromPage):
52939         * editing/FrameSelection.cpp:
52940         (WebCore::CaretBase::absoluteBoundsForLocalRect):
52941         * editing/RenderedPosition.cpp:
52942         (WebCore::RenderedPosition::absoluteRect):
52943         * editing/VisiblePosition.cpp:
52944         (WebCore::VisiblePosition::absoluteCaretBounds):
52945         * html/HTMLSelectElement.cpp:
52946         (WebCore::HTMLSelectElement::listBoxDefaultEventHandler):
52947         * html/shadow/SliderThumbElement.cpp:
52948         (WebCore::SliderThumbElement::setPositionFromPoint):
52949         * html/shadow/SpinButtonElement.cpp:
52950         (WebCore::SpinButtonElement::defaultEventHandler):
52951         * page/FrameView.cpp:
52952         (WebCore::FrameView::convertFromRenderer):
52953         (WebCore::FrameView::convertToRenderer):
52954         * rendering/InlineTextBox.cpp:
52955         (WebCore::InlineTextBox::paintDocumentMarker):
52956         (WebCore::InlineTextBox::paintTextMatchMarker):
52957         (WebCore::InlineTextBox::computeRectForReplacementMarker):
52958         * rendering/LayoutState.cpp:
52959         (WebCore::LayoutState::LayoutState):
52960         * rendering/RenderBlock.cpp:
52961         (WebCore::RenderBlock::absoluteQuads):
52962         * rendering/RenderBox.cpp:
52963         (WebCore::RenderBox::absoluteQuads):
52964         (WebCore::RenderBox::absoluteContentBox):
52965         (WebCore::RenderBox::mapLocalToContainer):
52966         (WebCore::RenderBox::mapAbsoluteToLocalPoint):
52967         * rendering/RenderBox.h:
52968         (RenderBox):
52969         * rendering/RenderBoxModelObject.cpp:
52970         (WebCore::RenderBoxModelObject::computeStickyPositionConstraints):
52971         (WebCore::RenderBoxModelObject::mapAbsoluteToLocalPoint):
52972         * rendering/RenderBoxModelObject.h:
52973         (RenderBoxModelObject):
52974         * rendering/RenderEmbeddedObject.cpp:
52975         (WebCore::RenderEmbeddedObject::isInUnavailablePluginIndicator):
52976         * rendering/RenderFrameSet.cpp:
52977         (WebCore::RenderFrameSet::userResize):
52978         * rendering/RenderGeometryMap.cpp:
52979         (WebCore::RenderGeometryMap::absolutePoint):
52980         * rendering/RenderInline.cpp:
52981         (WebCore::RenderInline::mapLocalToContainer):
52982         * rendering/RenderInline.h:
52983         (RenderInline):
52984         * rendering/RenderLayer.cpp:
52985         (WebCore::RenderLayer::absoluteToContents):
52986         (WebCore::RenderLayer::convertToLayerCoords):
52987         (WebCore::RenderLayer::scrollTo):
52988         (WebCore::RenderLayer::calculateClipRects):
52989         (WebCore::RenderLayer::childrenClipRect):
52990         (WebCore::RenderLayer::selfClipRect):
52991         * rendering/RenderLayerBacking.cpp:
52992         (WebCore::RenderLayerBacking::contentsVisible):
52993         * rendering/RenderMediaControls.cpp:
52994         (WebCore::RenderMediaControls::volumeSliderOffsetFromMuteButton):
52995         * rendering/RenderMenuList.cpp:
52996         (WebCore::RenderMenuList::showPopup):
52997         * rendering/RenderObject.cpp:
52998         (WebCore::RenderObject::absoluteFocusRingQuads):
52999         (WebCore::RenderObject::localToAbsolute):
53000         (WebCore::RenderObject::absoluteToLocal):
53001         (WebCore::RenderObject::mapLocalToContainer):
53002         (WebCore::RenderObject::mapAbsoluteToLocalPoint):
53003         (WebCore::RenderObject::localToContainerQuad):
53004         (WebCore::RenderObject::localToContainerPoint):
53005         * rendering/RenderObject.h:
53006         (RenderObject):
53007         (WebCore::RenderObject::localToAbsoluteQuad):
53008         * rendering/RenderText.cpp:
53009         (WebCore::RenderText::absoluteRectsForRange):
53010         (WebCore::RenderText::absoluteQuads):
53011         (WebCore::RenderText::absoluteQuadsForRange):
53012         * rendering/RenderTheme.cpp:
53013         (WebCore::RenderTheme::volumeSliderOffsetFromMuteButton):
53014         * rendering/RenderView.cpp:
53015         (WebCore::RenderView::mapLocalToContainer):
53016         (WebCore::RenderView::mapAbsoluteToLocalPoint):
53017         (WebCore::RenderView::selectionBounds):
53018         * rendering/RenderView.h:
53019         (RenderView):
53020         * rendering/RenderWidget.cpp:
53021         (WebCore::RenderWidget::updateWidgetGeometry):
53022         * rendering/svg/RenderSVGForeignObject.cpp:
53023         (WebCore::RenderSVGForeignObject::mapLocalToContainer):
53024         * rendering/svg/RenderSVGForeignObject.h:
53025         (RenderSVGForeignObject):
53026         * rendering/svg/RenderSVGInline.cpp:
53027         (WebCore::RenderSVGInline::mapLocalToContainer):
53028         * rendering/svg/RenderSVGInline.h:
53029         (RenderSVGInline):
53030         * rendering/svg/RenderSVGModelObject.cpp:
53031         (WebCore::RenderSVGModelObject::mapLocalToContainer):
53032         (WebCore::RenderSVGModelObject::absoluteQuads):
53033         * rendering/svg/RenderSVGModelObject.h:
53034         (RenderSVGModelObject):
53035         * rendering/svg/RenderSVGRoot.cpp:
53036         (WebCore::RenderSVGRoot::mapLocalToContainer):
53037         * rendering/svg/RenderSVGRoot.h:
53038         (RenderSVGRoot):
53039         * rendering/svg/RenderSVGText.cpp:
53040         (WebCore::RenderSVGText::mapLocalToContainer):
53041         (WebCore::RenderSVGText::absoluteQuads):
53042         * rendering/svg/RenderSVGText.h:
53043         (RenderSVGText):
53044         * rendering/svg/SVGRenderSupport.cpp:
53045         (WebCore::SVGRenderSupport::mapLocalToContainer):
53046         * svg/SVGSVGElement.cpp:
53047         (WebCore::SVGSVGElement::localCoordinateSpaceTransform):
53048
53049 2012-10-09  Sheriff Bot  <webkit.review.bot@gmail.com>
53050
53051         Unreviewed, rolling out r130812.
53052         http://trac.webkit.org/changeset/130812
53053         https://bugs.webkit.org/show_bug.cgi?id=98826
53054
53055         Caused fast/text/shaping/shaping-selection-rect to fail
53056         (Requested by abarth|gardening on #webkit).
53057
53058         * platform/graphics/Font.cpp:
53059         (WebCore::Font::width):
53060         * platform/graphics/Font.h:
53061         (Font):
53062         * platform/graphics/mac/ComplexTextController.cpp:
53063         (WebCore::TextLayout::width):
53064         (WebCore::Font::width):
53065         (WebCore::ComplexTextController::advance):
53066         * platform/graphics/mac/ComplexTextController.h:
53067         (ComplexTextController):
53068         * rendering/RenderBlock.h:
53069         (WebCore):
53070         (LineBreaker):
53071         (RenderBlock):
53072         * rendering/RenderBlockLineLayout.cpp:
53073         (WebCore::setLogicalWidthForTextRun):
53074         (WebCore::RenderBlock::computeInlineDirectionPositionsForLine):
53075         (WebCore::RenderBlock::createLineBoxesFromBidiRuns):
53076         (WebCore::RenderBlock::layoutRunsAndFloatsInRange):
53077         (WebCore::textWidth):
53078         (WebCore::RenderBlock::LineBreaker::nextLineBreak):
53079
53080 2012-10-09  Ryosuke Niwa  <rniwa@webkit.org>
53081
53082         DOM/textarea-edit.html spends 35% of time in numGraphemeClusters
53083         https://bugs.webkit.org/show_bug.cgi?id=98711
53084
53085         Reviewed by Kent Tamura.
53086
53087         Since the number of characters is always greater than the number of grapheme clusters,
53088         we can avoid calling computeLengthForSubmission when the number of characters is less
53089         than maxlength. We still have to count the number of LFs since they all need to be
53090         converted into CRLFs. This improves WebKit's score on DOM/textarea-edit.html by 45%.
53091
53092         * html/HTMLTextAreaElement.cpp:
53093         (WebCore::computeLengthForSubmission):
53094         (WebCore::numberOfLineBreaks):
53095         (WebCore::upperBoundForLengthForSubmission): Added.
53096         (WebCore::HTMLTextAreaElement::handleBeforeTextInsertedEvent):
53097         (WebCore::HTMLTextAreaElement::tooLong):
53098
53099 2012-10-09  Nate Chapin  <japhet@chromium.org>
53100
53101         Make CachedResourceLoader RefCounted and have both Document
53102         and DocumentLoader hold RefPtrs. This is in preparation for
53103         caching main resources.
53104         https://bugs.webkit.org/show_bug.cgi?id=86787
53105
53106         Reviewed by Adam Barth.
53107
53108         No new tests, no functionality changes at this time.
53109
53110         * WebCore.exp.in:
53111         * WebCore.xcodeproj/project.pbxproj:
53112         * dom/Document.cpp:
53113         (WebCore::Document::Document): Only create our own CachedResourceLoader
53114             if we were given a null frame.
53115         (WebCore::Document::~Document):
53116         (WebCore::Document::cachedResourceLoader):
53117         (WebCore):
53118         * dom/Document.h:
53119         (Document):
53120         * loader/DocumentLoader.cpp: Throughout, use our m_cachedResourceLoader instead
53121             of the Document's pointer.
53122         (WebCore::DocumentLoader::DocumentLoader): Create a CachedResourceLoader.
53123         (WebCore::DocumentLoader::~DocumentLoader):
53124         (WebCore::DocumentLoader::isLoadingInAPISense):
53125         (WebCore::DocumentLoader::subresource):
53126         (WebCore::DocumentLoader::getSubresources):
53127         * loader/DocumentLoader.h:
53128         (WebCore::DocumentLoader::cachedResourceLoader):
53129         (DocumentLoader):
53130         * loader/SubresourceLoader.cpp: Remove m_document, since it only existed to keep alive and access the CachedResourceLoader.
53131             It can now be accessed from m_documentLoader.
53132         (WebCore::SubresourceLoader::SubresourceLoader):
53133         (WebCore::SubresourceLoader::~SubresourceLoader):
53134         (WebCore::SubresourceLoader::willSendRequest):
53135         (WebCore::SubresourceLoader::releaseResources):
53136         * loader/SubresourceLoader.h:
53137         (SubresourceLoader):
53138         * loader/cache/CachedResourceLoader.cpp: Handle the possibility of a null Document in several places.
53139         (WebCore::CachedResourceLoader::CachedResourceLoader):
53140         (WebCore::CachedResourceLoader::~CachedResourceLoader):
53141         (WebCore::CachedResourceLoader::frame):
53142         (WebCore::CachedResourceLoader::canRequest):
53143         (WebCore::CachedResourceLoader::determineRevalidationPolicy):
53144         (WebCore::CachedResourceLoader::printAccessDeniedMessage):
53145         (WebCore::CachedResourceLoader::loadDone):
53146         * loader/cache/CachedResourceLoader.h:
53147         (WebCore):
53148         (WebCore::CachedResourceLoader::create): Add create(), make constructor private.
53149         (CachedResourceLoader):
53150         (WebCore::CachedResourceLoader::document):
53151         (WebCore::CachedResourceLoader::setDocument):
53152         (WebCore::CachedResourceLoader::clearDocumentLoader):
53153
53154 2012-10-09  Alexander Shalamov  <alexander.shalamov@intel.com>
53155
53156         CSS Style is not recalculated when media attribute of style element is changed
53157         https://bugs.webkit.org/show_bug.cgi?id=96752
53158
53159         Reviewed by Kenneth Rohde Christiansen.
53160
53161         When "media" attribute of style element is changed, style should be recalculated.
53162         This patch modifies HTMLStyleElement::parseAttribute, so that when the media attribute
53163         is updated, new MediaQuerySet is created and applied to the style element then, document
53164         style is recalculated. Since media query set is updated for CSSStyleSheet, CSSOM wrapper
53165         for media query should be updated as well in order to sync with new media query set value.
53166
53167         Test: fast/media/mq-js-update-media.html
53168
53169         * css/CSSStyleSheet.cpp:
53170         (WebCore::CSSStyleSheet::setMediaQueries):
53171         * html/HTMLStyleElement.cpp:
53172         (WebCore::HTMLStyleElement::parseAttribute):
53173
53174 2012-10-09  Ben Murdoch  <benm@google.com>
53175
53176         [chromium][Android] Add WebSecurityOrigin::grantLoadLocalResources()
53177         https://bugs.webkit.org/show_bug.cgi?id=97689
53178
53179         Reviewed by Adam Barth.
53180
53181         In addition to the WebKit/chromium side of the change, remove the
53182         ASSERT in SecurityOrigin::grantLoadLocalResources(). Android WebView
53183         is a legitimate user of this API in cases where neither of the
53184         ASSERT'd conditions hold.
53185
53186         * page/SecurityOrigin.cpp:
53187         (WebCore::SecurityOrigin::grantLoadLocalResources): Remove ASSERT.
53188
53189 2012-10-09  Jon Lee  <jonlee@apple.com>
53190
53191         Build fix for Qt Windows.
53192
53193         * html/HTMLPlugInElement.h: Include Image.h.
53194
53195 2012-10-09  Enrica Casucci  <enrica@apple.com>
53196
53197         Only measure text once instead of twice when performing line layout.
53198         https://bugs.webkit.org/show_bug.cgi?id=98317
53199         <rdar://problem/12080821>
53200
53201         Reviewed by Dan Bernstein.
53202
53203         Since we are measuring each word to find out where the line break should occur,
53204         we should cache that information to avoid measuring the run again when
53205         creating the line box. The bulk of the change is in nextLineBreak, where
53206         the measurements are collected and placed in a vector so that they can
53207         be consumed in setLogicalWidthForTextRun where we used to measure the
53208         text one more time.
53209         Each entry in the vector is a WordMeasurement object that contains information
53210         about the start and end offset in the run, the renderer, the measured width
53211         and, possibly, a list of fallback fonts.
53212         When we need to compute the width of the run to create the line box, we add
53213         all the measurements for the given renderer in the run to get the total width.
53214
53215         * platform/graphics/Font.cpp:
53216         (WebCore::Font::width): Added fallback fonts parameter.
53217         * platform/graphics/Font.h:
53218         (Font): Added fallback fonts parameter to the width static member function.
53219         This method is called when we compute the width using TextLayout.
53220         * platform/graphics/mac/ComplexTextController.cpp:
53221         (WebCore::TextLayout::width): Added fallback fonts parameter.
53222         (WebCore::Font::width):
53223         (WebCore::ComplexTextController::advance):
53224         * platform/graphics/mac/ComplexTextController.h:
53225         (ComplexTextController): Added fallback fonts parameter to advance method.
53226         * rendering/RenderBlock.h: Added WordMeasures parameter to few methods.
53227         * rendering/RenderBlockLineLayout.cpp:
53228         (WordMeasurement): Added new class to hold measurement information.
53229         (WebCore::setLogicalWidthForTextRun): This is where we compute the run width using the
53230         cached information.
53231         (WebCore::RenderBlock::computeInlineDirectionPositionsForLine): Added wordMeasures parameter.
53232         (WebCore::RenderBlock::createLineBoxesFromBidiRuns): Added wordMeasures parameter.
53233         (WebCore::RenderBlock::layoutRunsAndFloatsInRange): Added declaration of the WordMeasures
53234         vector and its use.
53235         (WebCore::textWidth): Added fallbackFonts parameter, since now we only measure once.
53236         (WebCore::RenderBlock::LineBreaker::nextLineBreak): This method has been modified to collect
53237         the measurements of the individual words and add them to the vector.
53238
53239 2012-10-09  Levi Weintraub  <leviw@chromium.org>
53240
53241         [Sub pixel layout] Fast-path iframe scrolling can picks up an extra pixel
53242         https://bugs.webkit.org/show_bug.cgi?id=98571
53243
53244         Reviewed by Emil A Eklund.
53245
53246         Refactoring all coordinate-switching functionality to use a single "mode" flag
53247         as opposed to having a bunch of boolean values. This enables the same set of
53248         options across the board, and a consistent interface. This was previously
53249         done for mapLocalToContainer.
53250
53251         The imptetus for this for this stems from the one logical change in this patch
53252         which only effects sub-pixel layout. FrameView::convertToRenderer and
53253         convertFromRenderer return IntPoint coordinates, and need to also snap transform
53254         offsets to determine proper rects for scrolling.
53255
53256         Unlabeled functions below are simply being updated to these new interfaces.
53257
53258         Test: fast/sub-pixel/sub-pixel-iframe-copy-on-scroll.html
53259
53260         * WebCore.exp.in:
53261         * dom/ContainerNode.cpp:
53262         (WebCore::ContainerNode::getUpperLeftCorner):
53263         (WebCore::ContainerNode::getLowerRightCorner):
53264         * dom/Element.cpp:
53265         (WebCore::Element::boundsInRootViewSpace):
53266         * dom/MouseRelatedEvent.cpp:
53267         (WebCore::MouseRelatedEvent::computeRelativePosition):
53268         * dom/Node.cpp:
53269         (WebCore::Node::convertToPage):
53270         (WebCore::Node::convertFromPage):
53271         * html/HTMLSelectElement.cpp:
53272         (WebCore::HTMLSelectElement::listBoxDefaultEventHandler):
53273         * html/shadow/SliderThumbElement.cpp:
53274         (WebCore::SliderThumbElement::setPositionFromPoint):
53275         * html/shadow/SpinButtonElement.cpp:
53276         (WebCore::SpinButtonElement::defaultEventHandler):
53277         * page/FrameView.cpp:
53278         (WebCore::FrameView::convertToRenderer): Now pixel-snaps offsets before passing
53279         them to TransformState, which transforms the coordinates.
53280         (WebCore::FrameView::convertFromRenderer): Ditto.
53281         * rendering/LayoutState.cpp:
53282         (WebCore::LayoutState::LayoutState):
53283         * rendering/RenderBlock.cpp:
53284         (WebCore::RenderBlock::absoluteQuads):
53285         * rendering/RenderBox.cpp:
53286         (WebCore::RenderBox::absoluteQuads):
53287         (WebCore::RenderBox::mapLocalToContainer):
53288         (WebCore::RenderBox::mapAbsoluteToLocalPoint):
53289         * rendering/RenderBox.h:
53290         (RenderBox):
53291         * rendering/RenderBoxModelObject.cpp:
53292         (WebCore::RenderBoxModelObject::mapAbsoluteToLocalPoint):
53293         * rendering/RenderBoxModelObject.h:
53294         (RenderBoxModelObject):
53295         * rendering/RenderEmbeddedObject.cpp:
53296         (WebCore::RenderEmbeddedObject::isInUnavailablePluginIndicator):
53297         * rendering/RenderFrameSet.cpp:
53298         (WebCore::RenderFrameSet::userResize):
53299         * rendering/RenderGeometryMap.cpp:
53300         (WebCore::RenderGeometryMap::absolutePoint):
53301         * rendering/RenderInline.cpp:
53302         (WebCore::RenderInline::mapLocalToContainer):
53303         * rendering/RenderInline.h:
53304         (RenderInline):
53305         * rendering/RenderLayer.cpp:
53306         (WebCore::RenderLayer::absoluteToContents):
53307         (WebCore::RenderLayer::calculateClipRects):
53308         * rendering/RenderMediaControls.cpp:
53309         (WebCore::RenderMediaControls::volumeSliderOffsetFromMuteButton):
53310         * rendering/RenderMenuList.cpp:
53311         (WebCore::RenderMenuList::showPopup):
53312         * rendering/RenderObject.cpp:
53313         (WebCore::RenderObject::localToAbsolute):
53314         (WebCore::RenderObject::absoluteToLocal):
53315         (WebCore::RenderObject::mapLocalToContainer):
53316         (WebCore::RenderObject::mapAbsoluteToLocalPoint):
53317         (WebCore::RenderObject::localToContainerQuad):
53318         (WebCore::RenderObject::localToContainerPoint):
53319         * rendering/RenderObject.h:
53320         (RenderObject): MapLocalToContainerFlags is now MapCoordinatesFlags since it's
53321         now used for other conversion methods.
53322         (WebCore::RenderObject::localToAbsoluteQuad):
53323         * rendering/RenderTheme.cpp:
53324         (WebCore::RenderTheme::volumeSliderOffsetFromMuteButton):
53325         * rendering/RenderView.cpp:
53326         (WebCore::RenderView::mapLocalToContainer):
53327         (WebCore::RenderView::mapAbsoluteToLocalPoint):
53328         * rendering/RenderView.h:
53329         (RenderView):
53330         * rendering/svg/RenderSVGForeignObject.cpp:
53331         (WebCore::RenderSVGForeignObject::mapLocalToContainer):
53332         * rendering/svg/RenderSVGForeignObject.h:
53333         (RenderSVGForeignObject):
53334         * rendering/svg/RenderSVGInline.cpp:
53335         (WebCore::RenderSVGInline::mapLocalToContainer):
53336         * rendering/svg/RenderSVGInline.h:
53337         (RenderSVGInline):
53338         * rendering/svg/RenderSVGModelObject.cpp:
53339         (WebCore::RenderSVGModelObject::mapLocalToContainer):
53340         * rendering/svg/RenderSVGModelObject.h:
53341         (RenderSVGModelObject):
53342         * rendering/svg/RenderSVGRoot.cpp:
53343         (WebCore::RenderSVGRoot::mapLocalToContainer):
53344         * rendering/svg/RenderSVGRoot.h:
53345         (RenderSVGRoot):
53346         * rendering/svg/RenderSVGText.cpp:
53347         (WebCore::RenderSVGText::mapLocalToContainer):
53348         * rendering/svg/RenderSVGText.h:
53349         (RenderSVGText):
53350         * rendering/svg/SVGRenderSupport.cpp:
53351         (WebCore::SVGRenderSupport::mapLocalToContainer):
53352         * svg/SVGSVGElement.cpp:
53353         (WebCore::SVGSVGElement::localCoordinateSpaceTransform):
53354
53355 2012-10-09  Jon Lee  <jonlee@apple.com>
53356
53357         [WK2] Have plugins render offscreen to capture snapshot
53358         https://bugs.webkit.org/show_bug.cgi?id=98326
53359         <rdar://problem/12426658>
53360
53361         Reviewed by Simon Fraser.
53362
53363         Change updateSnapshot() to use a PassRefPtr<Image> instead of Image*. WebKit2 ultimately
53364         hands the image off to RenderSnapshottedPlugin. A CachedImage instance then manages the
53365         lifetime of the Image.
53366
53367         * html/HTMLPlugInElement.h:
53368         (WebCore::HTMLPlugInElement::updateSnapshot):
53369         * html/HTMLPlugInImageElement.cpp:
53370         (WebCore::HTMLPlugInImageElement::updateSnapshot):
53371         * html/HTMLPlugInImageElement.h:
53372         (HTMLPlugInImageElement):
53373         * rendering/RenderSnapshottedPlugIn.cpp:
53374         (WebCore::RenderSnapshottedPlugIn::updateSnapshot): Updated to use the PassRefPtr<Image>
53375         pointer.
53376         * rendering/RenderSnapshottedPlugIn.h:
53377         (RenderSnapshottedPlugIn):
53378
53379 2012-10-09  Adam Barth  <abarth@webkit.org>
53380
53381         Unreviewed. Move this file to where the build systems think it should
53382         be. See https://bugs.webkit.org/show_bug.cgi?id=94755
53383
53384         * platform/graphics/CustomFilterConstants.h: Removed.
53385         * platform/graphics/filters/CustomFilterConstants.h: Copied from Source/WebCore/platform/graphics/CustomFilterConstants.h.
53386
53387 2012-10-09  Tony Chang  <tony@chromium.org>
53388
53389         Use computeLogical* methods instead of updateLogical* methods in RenderImage
53390         https://bugs.webkit.org/show_bug.cgi?id=98802
53391
53392         Reviewed by Eric Seidel.
53393
53394         We were storing the old values of width/height, calling updateLogical{Width,Height}, then restoring
53395         the old values.  Instead, use the computeLogical{Width,Height} methods so we don't have to overwrite
53396         the current values.
53397
53398         No new tests, this is just a refactoring.
53399
53400         * rendering/RenderImage.cpp:
53401         (WebCore::RenderImage::imageDimensionsChanged):
53402
53403 2012-10-09  Enrica Casucci  <enrica@apple.com>
53404
53405         [chromium] fast/text/international/text-spliced-font.html and fast/writing-mode/Kusa-Makura-
53406         background-canvas.html failing on the Mac after r130443
53407         https://bugs.webkit.org/show_bug.cgi?id=98545
53408
53409         Reviewed by Tony Chang.
53410
53411         Adding back the ! removed by mistake before submitting r130779. 
53412
53413         * platform/graphics/FontFastPath.cpp:
53414         (WebCore::Font::glyphDataAndPageForCharacter):
53415
53416 2012-10-09  Artem Simonov  <asimonov@rim.com>
53417
53418         [BlackBerry] EGL Context deleted prematurely in GraphicsContext3D destructor
53419         https://bugs.webkit.org/show_bug.cgi?id=98796
53420
53421         Reviewed by George Staikos.
53422
53423         Reordered destruction of GraphicsContext3D so that the compositing layer is
53424         destroyed first.
53425
53426         * platform/graphics/blackberry/GraphicsContext3DBlackBerry.cpp:
53427         (WebCore::GraphicsContext3D::~GraphicsContext3D):
53428
53429 2012-10-09  Ben Wagner  <bungeman@chromium.org>
53430
53431         Disable hinting when webkit-font-smoothing:antialiased is used on Mac.
53432         https://bugs.webkit.org/show_bug.cgi?id=98061
53433
53434         Reviewed by Stephen White.
53435
53436         Normal anti-aliased text matches subpixel anti-aliased text.
53437         However, text marked with webkit-font-smoothing:antialiased should be drawn without hinting to match Safari.
53438         See crbug.com/152304 . 
53439
53440         Test is fast/css/font-smoothing.html, but DRT runs with font smoothing disabled, so no change visible. 
53441
53442         * platform/graphics/skia/FontSkia.cpp:
53443         (WebCore::setupPaint):
53444         Set kNo_Hinting when webkit-font-smoothing is antialiased.
53445
53446 2012-10-09  Max Vujovic  <mvujovic@adobe.com>
53447
53448         [CSS Shaders] Create constants for vertex attribute sizes and offsets
53449         https://bugs.webkit.org/show_bug.cgi?id=94755
53450
53451         Reviewed by Dean Jackson.
53452
53453         Factor out the vertex attribute size and offset constants into a new file,
53454         CustomFilterConstants.h. Replace literals in CustomFilterMeshGenerator with the constants.
53455
53456         I could have added the constants to CustomFilterMeshGenerator.h, but this would make
53457         FECustomFilter depend on CustomFilterMeshGenerator.
53458
53459         I also could have added the constants to CustomFilterMesh.h, but this would make
53460         CustomFilterMeshGenerator depend on CustomFilterMesh.
53461
53462         No new tests. No change in behavior.
53463
53464         * GNUmakefile.list.am:
53465         * Target.pri:
53466         * WebCore.gypi:
53467         * WebCore.vcproj/WebCore.vcproj:
53468         * WebCore.xcodeproj/project.pbxproj:
53469         * platform/graphics/CustomFilterConstants.h: Added.
53470         (WebCore):
53471         * platform/graphics/filters/CustomFilterMeshGenerator.h:
53472         (WebCore::CustomFilterMeshGenerator::floatsPerVertex):
53473             Use the new constants instead of literal values.
53474         * platform/graphics/filters/FECustomFilter.cpp:
53475         (WebCore::FECustomFilter::bindProgramAndBuffers):
53476             Pull the constant definitions out of here.
53477
53478 2012-10-09  Michael Saboff  <msaboff@apple.com>
53479
53480         MarkupAccumulator should optimally handle 8 bit Strings
53481         https://bugs.webkit.org/show_bug.cgi?id=98224
53482
53483         Reviewed by Ryosuke Niwa.
53484
53485         Updated appendCharactersReplacingEntities to take a string, offset and length and process 8 or 16 bit
53486         data as appropriate.  Also made it a member function of MarkupAccumulator.
53487
53488         No new tests, behavior covered by existing tests.
53489
53490         * editing/MarkupAccumulator.cpp:
53491         (WebCore::MarkupAccumulator::appendCharactersReplacingEntities):
53492         (WebCore::MarkupAccumulator::appendAttributeValue):
53493         (WebCore::MarkupAccumulator::appendNodeValue):
53494         * editing/MarkupAccumulator.h:
53495         (MarkupAccumulator):
53496         * editing/markup.cpp:
53497         (WebCore::StyledMarkupAccumulator::appendText):
53498         (WebCore::urlToMarkup):
53499
53500 2012-10-09  Joshua Bell  <jsbell@chromium.org>
53501
53502         IndexedDB: Overflowing key generator should throw ConstraintError
53503         https://bugs.webkit.org/show_bug.cgi?id=98807
53504
53505         Reviewed by Tony Chang.
53506
53507         After the WebKit implementation landed throwing DataError, public-webapps
53508         consensus was that the exception thrown should be ConstraintError. Trivial
53509         change, and we pass one more W3C test submission.
53510
53511         Test: storage/indexeddb/key-generator.html
53512
53513         * Modules/indexeddb/IDBObjectStoreBackendImpl.cpp:
53514         (WebCore::IDBObjectStoreBackendImpl::putInternal):
53515
53516 2012-10-08  Martin Robinson  <mrobinson@igalia.com>
53517
53518         Fix the order of the statements in my previous build fix.
53519
53520         Reviewed by Gustavo Noronha Silva.
53521
53522         My previous build build fix for ResourceHandleSoup ordered the assignment
53523         of the local ResourceHandleInternal incorrectly. Instead of being before
53524         both assertions, it should be interspersed among them.
53525
53526         * platform/network/soup/ResourceHandleSoup.cpp:
53527         (WebCore::createSoupMessageForHandleAndRequest):
53528
53529 2012-10-09  Beth Dakin  <bdakin@apple.com>
53530
53531         https://bugs.webkit.org/show_bug.cgi?id=98457
53532         ScrollingStateNodes should be referenced via IDs on 
53533         RenderLayerBacking
53534
53535         Reviewed by Simon Fraser.
53536
53537         This patch associates all ScrollingStateNodes with a 
53538         RenderLayerBacking via a HashMap from RenderLayerBackings to 
53539         ScrollingStateNodes on ScrollingCoordinator. Prior to this patch, the 
53540         root ScrollingStateNode was created immediately upon creation of the 
53541         ScrollingCoordinator, and it was constantly re-used for every main 
53542         FrameView. This doesn't work in the new model since that doesn't 
53543         allow that ScrollingStateNode to have a definite association with a 
53544         RenderLayerBacking. So this patch does also introduce some lifetime 
53545         differences with the ScrollingStateNodes.
53546
53547         If a page is going into the page cache, we should clear the state 
53548         tree. When the page is in the cache, we won't have access to the 
53549         RenderLayerBacking, and we don't want to be doing anything with the 
53550         ScrollingStateNodes anyway.
53551         * dom/Document.cpp:
53552         (WebCore::Document::setInPageCache):
53553
53554         When a page is restored from the page cache, call 
53555         frameViewRootLayerDidChange() to re-create the state tree.
53556         * loader/HistoryController.cpp:
53557         (WebCore::HistoryController::restoreScrollPositionAndViewState):
53558
53559         This new FrameView function will return the scrollLayerID for a given FrameView.
53560         * page/FrameView.cpp:
53561         (WebCore::FrameView::scrollLayerID):
53562         (WebCore):
53563         * page/FrameView.h:
53564         (FrameView):
53565
53566         There is a lot of unfortunate fiddling with the terrible 
53567         if-defs in ScrollingCoordinator. I added a FIXME to the header
53568         noting how we can avoid this in the future.
53569         * page/scrolling/ScrollingCoordinator.cpp:
53570
53571         All of this code used to refer to the rootStateNode directly. 
53572         Instead, now it looks up the proper ScrollingStateNode for the given 
53573         FrameView in the HashMap.
53574         (WebCore::ScrollingCoordinator::frameViewLayoutUpdated):
53575         (WebCore::ScrollingCoordinator::frameViewWheelEventHandlerCountChanged):
53576         (WebCore::ScrollingCoordinator::frameViewRootLayerDidChange):
53577         (WebCore::ScrollingCoordinator::requestScrollPositionUpdate):
53578         (WebCore::ScrollingCoordinator::updateMainFrameScrollLayerPosition):
53579         (WebCore::ScrollingCoordinator::recomputeWheelEventHandlerCountForFrameView):
53580         (WebCore::ScrollingCoordinator::setScrollLayerForNode):
53581         (WebCore::ScrollingCoordinator::setNonFastScrollableRegionForNode):
53582         (WebCore::ScrollingCoordinator::setScrollParametersForNode):
53583         (WebCore::ScrollingCoordinator::setWheelEventHandlerCountForNode):
53584
53585         Returns the existing ScrollingStateNode for a given FrameView by 
53586         looking it up in the HashMap.
53587         (WebCore::ScrollingCoordinator::stateNodeForFrameView):
53588
53589         This is called when a RenderLayerBacking is destroyed. At that time, 
53590         its associated ScrollingStateNode is destroyed.
53591         (WebCore::ScrollingCoordinator::detachFromStateTree):
53592
53593         clearStateTree() clears the HashMap and destroys all of the nodes in 
53594         the current state tree.
53595         (WebCore::ScrollingCoordinator::clearStateTree):
53596
53597         Creates a new root state node for the given FrameView.
53598         (WebCore::ScrollingCoordinator::ensureRootStateNodeForFrameView):
53599
53600         Some new functions for the new node stuff.
53601         * page/scrolling/ScrollingCoordinator.h:
53602         * page/scrolling/ScrollingCoordinatorNone.cpp:
53603         (WebCore::ScrollingCoordinator::setShouldUpdateScrollLayerPositionOnMainThread):
53604         (WebCore::ScrollingCoordinator::supportsFixedPositionLayers):
53605         (WebCore::ScrollingCoordinator::setLayerIsContainerForFixedPositionLayers):
53606         (WebCore::ScrollingCoordinator::setLayerIsFixedToContainerLayer):
53607         (WebCore::ScrollingCoordinator::scrollableAreaScrollLayerDidChange):
53608         (WebCore::ScrollingCoordinator::detachFromStateTree):
53609         (WebCore::ScrollingCoordinator::clearStateTree):
53610         (WebCore::ScrollingCoordinator::ensureRootStateNodeForFrameView):
53611         (WebCore::setScrollParameters):
53612         (WebCore::setWheelEventHandlerCount):
53613
53614         New remove functions are used when the sate tree is cleared and when 
53615         a RenderLayerBacking is destroyed.
53616         * page/scrolling/ScrollingStateNode.cpp:
53617         (WebCore::ScrollingStateNode::removeChild):
53618         (WebCore):
53619         * page/scrolling/ScrollingStateNode.h:
53620         (WebCore::ScrollingStateNode::isScrollingStateScrollingNode):
53621         (ScrollingStateNode):
53622         (WebCore::ScrollingStateNode::parent):
53623
53624         New convenience function for casting to ScrollingStateScrollingNodes.
53625         * page/scrolling/ScrollingStateScrollingNode.h:
53626         (WebCore::toScrollingStateScrollingNode):
53627         (WebCore):
53628
53629         No longer automatically create a root node upon creation of the 
53630         ScrollingStateTree. We now want to wait to create the root node until 
53631         we have a RenderLayerBacking to associate it with.
53632         * page/scrolling/ScrollingStateTree.cpp:
53633         (WebCore::ScrollingStateTree::ScrollingStateTree):
53634         (WebCore::ScrollingStateTree::removeNode):
53635         (WebCore):
53636         * page/scrolling/ScrollingStateTree.h:
53637         (WebCore::ScrollingStateTree::setRootStateNode):
53638         (ScrollingStateTree):
53639
53640         RenderLayerBacking has a new data member called m_scrollLayerID. If 
53641         this RenderLayerBacking is represented in the scrolling tree, then 
53642         the ID with be unique and non-zero. 
53643         * rendering/RenderLayerBacking.cpp:
53644         (WebCore::RenderLayerBacking::RenderLayerBacking):
53645         (WebCore::RenderLayerBacking::~RenderLayerBacking):
53646         (WebCore::generateScrollLayerID):
53647         (WebCore):
53648         (WebCore::RenderLayerBacking::attachToScrollingCoordinator):
53649         (WebCore::RenderLayerBacking::detachFromScrollingCoordinator):
53650         * rendering/RenderLayerBacking.h:
53651         (RenderLayerBacking):
53652         (WebCore::RenderLayerBacking::scrollLayerID):
53653
53654         Move the call to ScrollingCooridinator::frameViewRootLayerDidChange() 
53655         from RenderLayerCompositor::attachRootLayer() to 
53656         RenderLayerCompositor:: updateBacking(). The problem with the old call 
53657         site is that there is no backing at that time, so we are trying to set 
53658         state on the root scrolling state node before we have enough 
53659         information to create that node and add it to the HashMap.
53660         * rendering/RenderLayerCompositor.cpp:
53661         (WebCore::RenderLayerCompositor::updateBacking):
53662         (WebCore::RenderLayerCompositor::attachRootLayer):
53663
53664 2012-10-09  Florin Malita  <fmalita@chromium.org>
53665
53666         SVGResources should use HashSet<AtomicString> instead of HashSet<AtomicStringImpl*>
53667         https://bugs.webkit.org/show_bug.cgi?id=98683
53668
53669         Reviewed by Darin Adler.
53670
53671         Eric's notes:
53672
53673         SVGResources should use HashSet<AtomicString> instead of HashSet<AtomicStringImpl*>
53674         They do basically the same thing, and the former is much more common (and less code). It's
53675         also safe, on the off-chance that we're using AtomicStrings which might otherwise go away.
53676
53677         No new tests, refactoring. 
53678
53679         * rendering/svg/SVGResources.cpp:
53680         (WebCore::clipperFilterMaskerTags):
53681         (WebCore::markerTags):
53682         (WebCore::fillAndStrokeTags):
53683         (WebCore::chainableResourceTags):
53684         (WebCore::SVGResources::buildCachedResources):
53685
53686 2012-10-09  Enrica Casucci  <enrica@apple.com>
53687
53688         [chromium] fast/text/international/text-spliced-font.html and fast/writing-mode/Kusa-Makura-background-canvas.html
53689         failing on the Mac after r130443
53690         https://bugs.webkit.org/show_bug.cgi?id=98545
53691
53692         Reviewed by Tony Chang.
53693
53694         Fixes a regression introduced with r130443.
53695         No new tests added since we already have tests covering this.
53696         Updated TestExpectations for chromium and mac.
53697
53698         * platform/graphics/FontFastPath.cpp:
53699         (WebCore::Font::glyphDataAndPageForCharacter): Text orientation should not be
53700         taken into account if the character is an ideograph or a symbol.
53701
53702 2012-10-09  Philip Rogers  <pdr@google.com>
53703
53704         Prevent animation when CSS attributeType is invalid.
53705         https://bugs.webkit.org/show_bug.cgi?id=94569
53706
53707         Reviewed by Dirk Schulze.
53708
53709         This patch changes hasValidAttributeType() to return false when
53710         we have attributeType=CSS with a non-CSS attribute name.
53711
53712         Previously we would animate non-CSS attributes when attributeType was
53713         CSS which resulted in crashes. To track this case, this patch catches
53714         changes to targetElement, attributeName, and attributeType and checks
53715         if an invalid combination is present. If invalid, hasInvalidCSSAttributeType()
53716         will return true causing hasValidAttributeType() to return false and prevent
53717         the animation from running.
53718
53719         Tests: svg/animations/animate-css-xml-attributeType.html
53720                svg/animations/invalid-css-attribute-crash-expected.svg
53721                svg/animations/invalid-css-attribute-crash.svg
53722
53723         * svg/SVGAnimateElement.cpp:
53724         (WebCore::SVGAnimateElement::hasValidAttributeType):
53725         (WebCore::SVGAnimateElement::targetElementWillChange):
53726         * svg/SVGAnimationElement.cpp:
53727         (WebCore::SVGAnimationElement::SVGAnimationElement):
53728         (WebCore::SVGAnimationElement::isSupportedAttribute):
53729
53730             This now supports the attributeType attribute which is stored in m_attributeType.
53731
53732         (WebCore::SVGAnimationElement::parseAttribute):
53733         (WebCore::SVGAnimationElement::setAttributeType):
53734
53735             Changes to attributeType, attributeName, and targetElement need to be tracked
53736             to determine when an invalid combination happens.
53737
53738         (WebCore::SVGAnimationElement::targetElementWillChange):
53739         (WebCore):
53740         (WebCore::SVGAnimationElement::setAttributeName):
53741         (WebCore::SVGAnimationElement::checkInvalidCSSAttributeType):
53742         * svg/SVGAnimationElement.h:
53743         (WebCore::SVGAnimationElement::attributeType):
53744         (SVGAnimationElement):
53745         (WebCore::SVGAnimationElement::hasInvalidCSSAttributeType):
53746         * svg/animation/SVGSMILElement.cpp:
53747         (WebCore::SVGSMILElement::targetElement):
53748         * svg/animation/SVGSMILElement.h:
53749         (SVGSMILElement):
53750
53751 2012-10-09  Pravin D  <pravind.2k4@gmail.com>
53752
53753         max-width property is does not overriding the width properties for css tables(display:table)
53754         https://bugs.webkit.org/show_bug.cgi?id=98455
53755
53756         Reviewed by Tony Chang.
53757
53758         The max-width property determines the maximum computed width an element can have. In case of css tables(display:table),
53759         the computed was not being limited by the max-width property. The current patch fixes this issue.
53760
53761         Test: fast/table/css-table-max-width.html
53762
53763         * rendering/RenderTable.cpp:
53764         (WebCore::RenderTable::updateLogicalWidth):
53765          Logic to compute the logical width of an element such that it does not exceed the max-width value.
53766          Also when both min-width and max-width are present, the following contraint is used to compute the logical width:
53767            1) min-width < Computed LogicalWidth < max-width, when min-width < max-width.
53768            2) Computed LogicalWidth = min-width, when min-width > max-width.
53769
53770 2012-10-09  Harald Alvestrand  <hta@google.com>
53771
53772         Change PeerConnection getStats function to single value local / remote
53773         elements in RTCStatsReport.
53774
53775         https://bugs.webkit.org/show_bug.cgi?id=98753
53776
53777         Reviewed by Adam Barth.
53778
53779         IDL of RTCStatsReport has been changed to make local/remote
53780         single valued RTCStatsElement attributes.
53781         The RTCStatsReport argument to index the list of RTCStatsElement
53782         in the local and remote functions has been removed.
53783
53784         Tested by modifications to RTCPeerConnection-stats.html
53785
53786         * Modules/mediastream/RTCStatsReport.cpp:
53787         (WebCore::RTCStatsReport::addElement):
53788         (WebCore::RTCStatsReport::addStatistic):
53789         * Modules/mediastream/RTCStatsReport.h:
53790         (WebCore::RTCStatsReport::local):
53791         (WebCore::RTCStatsReport::remote):
53792         (RTCStatsReport):
53793         * Modules/mediastream/RTCStatsReport.idl:
53794         * Modules/mediastream/RTCStatsResponse.cpp:
53795         (WebCore::RTCStatsResponse::addElement):
53796         (WebCore::RTCStatsResponse::addStatistic):
53797         * Modules/mediastream/RTCStatsResponse.h:
53798         (RTCStatsResponse):
53799         * platform/chromium/support/WebRTCStatsResponse.cpp:
53800         (WebKit::WebRTCStatsResponse::addElement):
53801         (WebKit::WebRTCStatsResponse::addStatistic):
53802         * platform/mediastream/RTCStatsResponseBase.h:
53803         (RTCStatsResponseBase):
53804
53805 2012-10-09  Antonio Gomes  <agomes@rim.com>
53806
53807         Get rid of FIXED_POSITION_CREATES_STACKING_CONTEXT in favor of Settings::fixedPositionCreatesStackingContext()
53808         https://bugs.webkit.org/show_bug.cgi?id=98756
53809
53810         Reviewed by Rob Buis.
53811
53812         No behavior change so no new tests.
53813
53814         * css/StyleResolver.cpp:
53815         (WebCore::StyleResolver::collectMatchingRulesForList):
53816
53817 2012-10-09  Simon Hausmann  <simon.hausmann@digia.com>
53818
53819         [Qt] Fix build with QtMultimedia
53820
53821         Reviewed by Tor Arne Vestbø.
53822
53823         This is an initial rudimentary port to of the QtMultimedia back-end,
53824         adapted to slight API changes and (more importantly) to the
53825         implementation of QAbstractVideoSurface instead of using
53826         QGraphicsVideoItem (which is in QtMultimediaWidgets).
53827
53828         * WebCore.pri:
53829         * platform/graphics/qt/MediaPlayerPrivateQt.cpp:
53830         (WebCore::MediaPlayerPrivateQt::supportsType):
53831         (WebCore::MediaPlayerPrivateQt::MediaPlayerPrivateQt):
53832         (WebCore::MediaPlayerPrivateQt::~MediaPlayerPrivateQt):
53833         (WebCore::MediaPlayerPrivateQt::didLoadingProgress):
53834         (WebCore::MediaPlayerPrivateQt::totalBytes):
53835         (WebCore::MediaPlayerPrivateQt::setVisible):
53836         (WebCore::MediaPlayerPrivateQt::surfaceFormatChanged):
53837         (WebCore::MediaPlayerPrivateQt::setSize):
53838         (WebCore::MediaPlayerPrivateQt::removeVideoItem):
53839         (WebCore::MediaPlayerPrivateQt::restoreVideoItem):
53840         (WebCore):
53841         (WebCore::MediaPlayerPrivateQt::start):
53842         (WebCore::MediaPlayerPrivateQt::supportedPixelFormats):
53843         (WebCore::MediaPlayerPrivateQt::present):
53844         (WebCore::MediaPlayerPrivateQt::paint):
53845         (WebCore::MediaPlayerPrivateQt::paintCurrentFrameInContext):
53846         (WebCore::MediaPlayerPrivateQt::paintToTextureMapper):
53847         * platform/graphics/qt/MediaPlayerPrivateQt.h:
53848         (MediaPlayerPrivateQt):
53849
53850 2012-10-09  Garrett Casto  <gcasto@chromium.org>
53851
53852         Allow users to specify a different hover image for TextFieldDecorationElement
53853         https://bugs.webkit.org/show_bug.cgi?id=93662
53854
53855         Reviewed by Kent Tamura.
53856
53857         * html/shadow/TextFieldDecorationElement.cpp:
53858         (WebCore::TextFieldDecorationElement::TextFieldDecorationElement):
53859         (WebCore::TextFieldDecorationElement::updateImage):
53860         (WebCore::TextFieldDecorationElement::defaultEventHandler): Handles mouseover and mouseout events.
53861         (WebCore::TextFieldDecorationElement::willRespondToMouseMoveEvents): Now returns true if the element is not disabled.
53862         (WebCore):
53863         * html/shadow/TextFieldDecorationElement.h:
53864         (TextFieldDecorator):
53865         (TextFieldDecorationElement):
53866
53867 2012-10-09  Allan Sandfeld Jensen  <allan.jensen@digia.com>
53868
53869         [Qt] Uploading images to Google+ using QtWebKit does not work.
53870         https://bugs.webkit.org/show_bug.cgi?id=72329
53871
53872         Reviewed by Jocelyn Turcotte.
53873
53874         Implement handling of Blob FormData, including its extensions to the File FormData.
53875
53876         * platform/network/qt/QNetworkReplyHandler.cpp:
53877         (WebCore::FormDataIODevice::FormDataIODevice):
53878         (WebCore::appendBlobResolved):
53879         (WebCore::FormDataIODevice::prepareFormElements):
53880         (WebCore::FormDataIODevice::computeSize):
53881         (WebCore::FormDataIODevice::moveToNextElement):
53882         (WebCore::FormDataIODevice::prepareCurrentElement):
53883         (WebCore::FormDataIODevice::openFileForCurrentElement):
53884         (WebCore::FormDataIODevice::readData):
53885         (WebCore::QNetworkReplyHandler::sendNetworkRequest):
53886         * platform/network/qt/QNetworkReplyHandler.h:
53887         (FormDataIODevice):
53888
53889 2012-10-09  Arpita Bahuguna  <arpitabahuguna@gmail.com>
53890
53891         Text decorations specified on the containing block are not properly applied when ::first-line is present.
53892         https://bugs.webkit.org/show_bug.cgi?id=93829
53893
53894         Reviewed by Abhishek Arya.
53895
53896         If a container's style and its pseudo :first-line style have unique
53897         text-decorations specified for them, only the :first-line text-decoarations
53898         were being applied.
53899
53900         The uploaded patch intends to first compute the text decoration colors
53901         for the containing box, followed by that of the first-line (if specified).
53902
53903         This thus avoids the condition wherein our containing box's text-decorations
53904         were not getting applied at all since initially we were only computing
53905         for the first-line style.
53906
53907         Test: fast/css/text-decorations-on-first-line-and-containing-block.html
53908
53909         * rendering/InlineTextBox.cpp:
53910         (WebCore::InlineTextBox::paintDecoration):
53911         getTextDecorationColors() is first called for computing the containing box's
53912         text-decoration values and then for first-line style's text-decorations,
53913         if specified.
53914
53915 2012-10-09  Sheriff Bot  <webkit.review.bot@gmail.com>
53916
53917         Unreviewed, rolling out r130746.
53918         http://trac.webkit.org/changeset/130746
53919         https://bugs.webkit.org/show_bug.cgi?id=98749
53920
53921         It made 45 tests crash on Qt (Requested by Ossy on #webkit).
53922
53923         * platform/network/qt/QNetworkReplyHandler.cpp:
53924         (WebCore::FormDataIODevice::FormDataIODevice):
53925         (WebCore::FormDataIODevice::computeSize):
53926         (WebCore::FormDataIODevice::moveToNextElement):
53927         (WebCore::FormDataIODevice::openFileForCurrentElement):
53928         (WebCore::FormDataIODevice::readData):
53929         (WebCore::QNetworkReplyHandler::getIODevice):
53930         (WebCore::QNetworkReplyHandler::sendNetworkRequest):
53931         * platform/network/qt/QNetworkReplyHandler.h:
53932         (QNetworkReplyHandler):
53933         (FormDataIODevice):
53934
53935 2012-10-09  Allan Sandfeld Jensen  <allan.jensen@digia.com>
53936
53937         [Qt] Uploading images to Google+ using QtWebKit does not work.
53938         https://bugs.webkit.org/show_bug.cgi?id=72329
53939
53940         Reviewed by Jocelyn Turcotte.
53941
53942         Implement handling of Blob FormData, including its extensions to the File FormData.
53943
53944         * platform/network/qt/QNetworkReplyHandler.cpp:
53945         (WebCore::FormDataIODevice::FormDataIODevice):
53946         (WebCore::FormDataIODevice::computeSize):
53947         (WebCore::FormDataIODevice::moveToNextElement):
53948         (WebCore::FormDataIODevice::prepareCurrentElement):
53949         (WebCore::FormDataIODevice::openFileForCurrentElement):
53950         (WebCore::FormDataIODevice::readData):
53951         (WebCore::QNetworkReplyHandler::getIODevice):
53952         (WebCore::QNetworkReplyHandler::handleBlobDataIfAny):
53953         (WebCore::QNetworkReplyHandler::sendNetworkRequest):
53954         * platform/network/qt/QNetworkReplyHandler.h:
53955         (QNetworkReplyHandler):
53956         (FormDataIODevice):
53957
53958 2012-10-09  Keishi Hattori  <keishi@webkit.org>
53959
53960         Page popup should be smarter about its layout
53961         https://bugs.webkit.org/show_bug.cgi?id=98499
53962
53963         Reviewed by Kent Tamura.
53964
53965         This change fixes these two issues:
53966         1. Page popup should reposition itself so it won't get clipped by screen(Win/Linux) or rootview(Mac) bounds.
53967         2. Page popup should resize itself when it doesn't fit.
53968
53969         Test: platform/chromium/fast/forms/page-popup/page-popup-adjust-rect.html
53970
53971         * Resources/pagepopups/calendarPicker.js:
53972         (initialize): We need to set global.params at the beginning because we need it for resizeWindow().
53973         * Resources/pagepopups/colorSuggestionPicker.js: Added global.params.
53974         (handleMessage):
53975         (initialize):
53976         (handleArgumentsTimeout):
53977         * Resources/pagepopups/pickerCommon.js:
53978         (Rect): Represents an axis aligned rectangle.
53979         (Rect.prototype.get maxX): Gets position of right edge.
53980         (Rect.prototype.get maxY): Gets position of bottom edge.
53981         (Rect.prototype.toString):
53982         (Rect.intersection): Returns the intersection of two rectangles.
53983         (resizeWindow): Resize window to a certain size. Don't allow shrinking.
53984         (adjustWindowRect): Calculates the best position and size for the popup.
53985         (_adjustWindowRectVertically):
53986         (_adjustWindowRectHorizontally):
53987         (setWindowRect): Sets the position and size of the popup to the given rect.
53988         * Resources/pagepopups/suggestionPicker.css:
53989         (.suggestion-list): Don't show horizontal scroll bar.
53990         * Resources/pagepopups/suggestionPicker.js:
53991         (SuggestionPicker.prototype._fixWindowSize): 
53992         * page/PagePopupClient.cpp:
53993         (WebCore::PagePopupClient::addProperty): For adding an int to JSON.
53994         (WebCore::PagePopupClient::addProperty): For adding an IntRect to JSON.
53995         (WebCore):
53996         * page/PagePopupClient.h:
53997         (PagePopupClient):
53998
53999 2012-10-09  Hajime Morrita  <morrita@google.com>
54000
54001         [Refactoring] Scoped Style related code should have its own class.
54002         https://bugs.webkit.org/show_bug.cgi?id=98244
54003
54004         Reviewed by Dimitri Glazkov.
54005
54006         This change extracts StyleScopeResolver from StyleResolver to clarify
54007         the responsibility of the style scope handling. Now we can easily see
54008         where the style scoping needs to be involed.
54009
54010         Coming Shadow DOM related change like @host rules will fit within this class.
54011
54012         No new tests, refactoring.
54013
54014         * CMakeLists.txt:
54015         * GNUmakefile.list.am:
54016         * Target.pri:
54017         * WebCore.gypi:
54018         * WebCore.xcodeproj/project.pbxproj:
54019         * css/CSSAllInOne.cpp:
54020         * css/StyleResolver.cpp:
54021         (WebCore::StyleResolver::StyleResolver):
54022         (WebCore::StyleResolver::collectFeatures):
54023         (WebCore::StyleResolver::appendAuthorStylesheets):
54024         (WebCore::StyleResolver::pushParentElement):
54025         (WebCore::StyleResolver::popParentElement):
54026         (WebCore::StyleResolver::pushParentShadowRoot):
54027         (WebCore::StyleResolver::popParentShadowRoot):
54028         (WebCore::StyleResolver::matchScopedAuthorRules):
54029         (WebCore::StyleResolver::collectMatchingRulesForList):
54030         (WebCore::StyleResolver::reportMemoryUsage):
54031         * css/StyleResolver.h:
54032         (StyleResolver):
54033         * css/StyleScopeResolver.cpp: Added.
54034         (WebCore):
54035         (WebCore::StyleScopeResolver::StyleScopeResolver):
54036         (WebCore::StyleScopeResolver::~StyleScopeResolver):
54037         (WebCore::StyleScopeResolver::scopeFor):
54038         (WebCore::StyleScopeResolver::ruleSetFor):
54039         (WebCore::StyleScopeResolver::ensureRuleSetFor):
54040         (WebCore::StyleScopeResolver::setupStack):
54041         (WebCore::StyleScopeResolver::push):
54042         (WebCore::StyleScopeResolver::pop):
54043         (WebCore::StyleScopeResolver::collectFeaturesTo):
54044         (WebCore::StyleScopeResolver::reportMemoryUsage):
54045         * css/StyleScopeResolver.h: Added.
54046         (WebCore):
54047         (StyleScopeResolver):
54048         (WebCore::StyleScopeResolver::StackFrame::StackFrame):
54049         (StackFrame):
54050         (WebCore::StyleScopeResolver::hasScopedStyles):
54051         (WebCore::StyleScopeResolver::stackSize):
54052         (WebCore::StyleScopeResolver::stackFrameAt):
54053         (WebCore::StyleScopeResolver::matchesStyleBounds):
54054         (WebCore::StyleScopeResolver::stackIsConsistent):
54055         (WebCore::StyleScopeResolver::ensureStackConsistency):
54056         (WebCore::StyleScopeResolver::scopeFor):
54057         (WebCore::StyleScopeResolver::ensureRuleSetFor):
54058
54059 2012-10-08  Simon Hausmann  <simon.hausmann@digia.com>
54060
54061         [Qt] Make RenderThemeQStyle/ScrollbarThemeQStyle compile without QStyle/QtWidgets
54062         https://bugs.webkit.org/show_bug.cgi?id=98268
54063
54064         Reviewed by Tor Arne Vestbø.
54065
54066         Extracted QStyle/QWidget related code into a QWebStyle class that implements the QStyleFacade interface.
54067
54068         QStyleFacade is a pure interface that lives in WebCore/platform/qt
54069         (next to RenderThemeQStyle and ScrollbarThemeQStyle) and provides a
54070         minimal interface of what we need to draw with QStyle as well as basic
54071         hit testing and metric retrieval. It also provides a
54072         QStyleFacadeOption class that aggregates common meta-data for
54073         rendering primitives, such as direction, rectangle, state (sunken,
54074         enabled, etc.) or palette. It also provides some more slider/scrollbar
54075         specific fields in a slider sub-structure.
54076
54077         RenderThemeQStyle/ScrollbarThemeQStyle used to instantiate specific QStyleOption sub-classes and populate
54078         them with state information from render objects, before calling straight to QStyle. Most of the common code
54079         was encapsulated in StylePainterQStyle.
54080
54081         The new RenderThemeQStyle/ScrolllbarThemeQStyle uses common code in
54082         StylePainterQStyle to populate state into QStyleFacadeOption before
54083         calling into QStyleFacade.
54084
54085         The style facade is then implemented by QStyleFacadeImp, which extracts
54086         meta-data from QStyleFacadeOption arguments, populates style
54087         primitive specific QStyleOption objects and then calls on QStyle.
54088
54089         RenderThemeQStyle/ScrollbarThemeQStyle can only use interface methods
54090         from QStyleFacade. QStyleFacadeImp on the other hand will live in the
54091         separate QtWebKitWidgets library in the future and therefore cannot use
54092         any WebCore types.
54093
54094         * Target.pri:
54095         * platform/qt/QStyleFacade.cpp: Added.
54096         (WebCore):
54097         (WebCore::QStyleFacade::styleForPage):
54098         * platform/qt/QStyleFacade.h: Added.
54099         (WebCore):
54100         (QStyleFacade):
54101         (WebCore::QStyleFacade::~QStyleFacade):
54102         (WebCore::QStyleFacadeOption::QStyleFacadeOption):
54103         (QStyleFacadeOption):
54104         * platform/qt/RenderThemeQStyle.cpp: Renamed from Source/WebKit/qt/WebCoreSupport/RenderThemeQStyle.cpp.
54105         (WebCore):
54106         (WebCore::RenderThemeQStyle::getStylePainter):
54107         (WebCore::StylePainterQStyle::StylePainterQStyle):
54108         (WebCore::StylePainterQStyle::init):
54109         (WebCore::RenderThemeQStyle::create):
54110         (WebCore::RenderThemeQStyle::setStyleFactoryFunction):
54111         (WebCore::RenderThemeQStyle::styleFactory):
54112         (WebCore::RenderThemeQStyle::RenderThemeQStyle):
54113         (WebCore::RenderThemeQStyle::~RenderThemeQStyle):
54114         (WebCore::RenderThemeQStyle::setPaletteFromPageClientIfExists):
54115         (WebCore::RenderThemeQStyle::inflateButtonRect):
54116         (WebCore::RenderThemeQStyle::computeSizeBasedOnStyle):
54117         (WebCore::RenderThemeQStyle::adjustButtonStyle):
54118         (WebCore::RenderThemeQStyle::setButtonPadding):
54119         (WebCore::RenderThemeQStyle::paintButton):
54120         (WebCore::RenderThemeQStyle::paintTextField):
54121         (WebCore::RenderThemeQStyle::adjustTextAreaStyle):
54122         (WebCore::RenderThemeQStyle::paintTextArea):
54123         (WebCore::RenderThemeQStyle::setPopupPadding):
54124         (WebCore::RenderThemeQStyle::colorPalette):
54125         (WebCore::RenderThemeQStyle::paintMenuList):
54126         (WebCore::RenderThemeQStyle::adjustMenuListButtonStyle):
54127         (WebCore::RenderThemeQStyle::paintMenuListButton):
54128         (WebCore::RenderThemeQStyle::animationDurationForProgressBar):
54129         (WebCore::RenderThemeQStyle::paintProgressBar):
54130         (WebCore::RenderThemeQStyle::paintSliderTrack):
54131         (WebCore::RenderThemeQStyle::adjustSliderTrackStyle):
54132         (WebCore::RenderThemeQStyle::paintSliderThumb):
54133         (WebCore::RenderThemeQStyle::adjustSliderThumbStyle):
54134         (WebCore::RenderThemeQStyle::paintSearchField):
54135         (WebCore::RenderThemeQStyle::adjustSearchFieldDecorationStyle):
54136         (WebCore::RenderThemeQStyle::paintSearchFieldDecoration):
54137         (WebCore::RenderThemeQStyle::adjustSearchFieldResultsDecorationStyle):
54138         (WebCore::RenderThemeQStyle::paintSearchFieldResultsDecoration):
54139         (WebCore::RenderThemeQStyle::paintInnerSpinButton):
54140         (WebCore::RenderThemeQStyle::initializeCommonQStyleOptions):
54141         (WebCore::RenderThemeQStyle::adjustSliderThumbSize):
54142         * platform/qt/RenderThemeQStyle.h: Renamed from Source/WebKit/qt/WebCoreSupport/RenderThemeQStyle.h.
54143         (WebCore):
54144         (RenderThemeQStyle):
54145         (WebCore::RenderThemeQStyle::qStyle):
54146         (StylePainterQStyle):
54147         (WebCore::StylePainterQStyle::isValid):
54148         (WebCore::StylePainterQStyle::paintButton):
54149         (WebCore::StylePainterQStyle::paintTextField):
54150         (WebCore::StylePainterQStyle::paintComboBox):
54151         (WebCore::StylePainterQStyle::paintComboBoxArrow):
54152         (WebCore::StylePainterQStyle::paintSliderTrack):
54153         (WebCore::StylePainterQStyle::paintSliderThumb):
54154         (WebCore::StylePainterQStyle::paintInnerSpinButton):
54155         (WebCore::StylePainterQStyle::paintProgressBar):
54156         (WebCore::StylePainterQStyle::paintScrollCorner):
54157         (WebCore::StylePainterQStyle::paintScrollBar):
54158         * platform/qt/ScrollbarThemeQStyle.cpp: Renamed from Source/WebKit/qt/WebCoreSupport/ScrollbarThemeQStyle.cpp.
54159         (WebCore):
54160         (WebCore::ScrollbarThemeQStyle::ScrollbarThemeQStyle):
54161         (WebCore::ScrollbarThemeQStyle::~ScrollbarThemeQStyle):
54162         (WebCore::scPart):
54163         (WebCore::scrollbarPart):
54164         (WebCore::initSliderStyleOption):
54165         (WebCore::ScrollbarThemeQStyle::paint):
54166         (WebCore::ScrollbarThemeQStyle::hitTest):
54167         (WebCore::ScrollbarThemeQStyle::shouldCenterOnThumb):
54168         (WebCore::ScrollbarThemeQStyle::invalidatePart):
54169         (WebCore::ScrollbarThemeQStyle::scrollbarThickness):
54170         (WebCore::ScrollbarThemeQStyle::thumbPosition):
54171         (WebCore::ScrollbarThemeQStyle::thumbLength):
54172         (WebCore::ScrollbarThemeQStyle::trackPosition):
54173         (WebCore::ScrollbarThemeQStyle::trackLength):
54174         (WebCore::ScrollbarThemeQStyle::paintScrollCorner):
54175         * platform/qt/ScrollbarThemeQStyle.h: Renamed from Source/WebKit/qt/WebCoreSupport/ScrollbarThemeQStyle.h.
54176         (WebCore):
54177         (ScrollbarThemeQStyle):
54178         (WebCore::ScrollbarThemeQStyle::qStyle):
54179
54180 2012-10-08  Kiran Muppala  <cmuppala@apple.com>
54181
54182         Throttle DOM timers on hidden pages.
54183         https://bugs.webkit.org/show_bug.cgi?id=98474
54184
54185         Reviewed by Maciej Stachowiak.
54186
54187         When the visibility of a page changes to "hidden", all it's DOM timers are
54188         updated to align their fire times on one second intervals.  This limits the
54189         number of CPU wakes due to a hidden pages to one per second.
54190
54191         Test: fast/dom/timer-throttling-hidden-page.html
54192
54193         * Configurations/FeatureDefines.xcconfig:
54194         * WebCore.exp.in:
54195         * dom/Document.cpp:
54196         (WebCore):
54197         (WebCore::Document::timerAlignmentInterval):
54198         Read Page::timerAlignmentInterval and pass it along to DOMTimer.
54199
54200         * dom/Document.h:
54201         (Document):
54202         * dom/ScriptExecutionContext.cpp:
54203         (WebCore):
54204         (WebCore::ScriptExecutionContext::didChangeTimerAlignmentInterval):
54205         Scan through self DOM Timers and tell them to recompute their fire
54206         time based on the updated alignment interval.
54207         (WebCore::ScriptExecutionContext::timerAlignmentInterval):
54208
54209         * dom/ScriptExecutionContext.h:
54210         (ScriptExecutionContext):
54211         * page/DOMTimer.cpp:
54212         (WebCore):
54213         (WebCore::DOMTimer::alignedFireTime):
54214         If the document's alignment interval is non zero, round up the fire
54215         time to the next multiple of alignment interval.
54216
54217         * page/DOMTimer.h:
54218         (DOMTimer):
54219         (WebCore::DOMTimer::defaultTimerAlignmentInterval):
54220         (WebCore::DOMTimer::setDefaultTimerAlignmentInterval):
54221         * page/Page.cpp:
54222         (WebCore::Page::Page):
54223         (WebCore):
54224         (WebCore::Page::setTimerAlignmentInterval):
54225         (WebCore::Page::timerAlignmentInterval):
54226         (WebCore::Page::setVisibilityState):
54227         Getter and Setter for alignment interval.  Expose setVisibilityState
54228         if either PAGE_VISIBILITY_API is enabled or if HIDDEN_PAGE_DOM_TIMER_REDUCTION
54229         is enabled.
54230
54231         * page/Page.h:
54232         (Page):
54233         * page/Settings.cpp:
54234         (WebCore):
54235         (WebCore::Settings::setDefaultDOMTimerAlignmentInterval):
54236         (WebCore::Settings::defaultDOMTimerAlignmentInterval):
54237         (WebCore::Settings::setDOMTimerAlignmentInterval):
54238         (WebCore::Settings::domTimerAlignmentInterval):
54239         * page/Settings.h:
54240         (Settings):
54241         * page/SuspendableTimer.cpp:
54242         (WebCore::SuspendableTimer::suspend):
54243         Save the time remaining to the original unaligned fire time, so that
54244         on resuming, the fire time will be correctly aligned using the latest
54245         alignment interval.
54246
54247         * platform/ThreadTimers.cpp:
54248         (WebCore::ThreadTimers::sharedTimerFiredInternal):
54249         Clear m_unalignedNextFireTime along with m_nextFireTime to keep
54250         them always in sync.
54251
54252         * platform/Timer.cpp:
54253         (WebCore::TimerBase::TimerBase):
54254         (WebCore::TimerBase::setNextFireTime):
54255         Save the requested fire time in m_unalignedNextFireTime and
54256         set m_nextFireTime to the aligned value.  The unalinged value
54257         is used to recompute fire time if alignment interval changes.
54258         (WebCore):
54259         (WebCore::TimerBase::didChangeAlignmentInterval):
54260         Recompute next fire time from m_unalignedNextFireTime.
54261         (WebCore::TimerBase::nextUnalignedFireInterval):
54262         Interval from current time to the original unaligned fire time.
54263
54264         * platform/Timer.h:
54265         (TimerBase):
54266         (WebCore::TimerBase::alignedFireTime):
54267
54268 2012-10-08  Andreas Kling  <kling@webkit.org>
54269
54270         1.18MB below RenderTableSection::setCachedCollapsedBorderValue() on Membuster3.
54271         <http://webkit.org/b/98670>
54272         <rdar://problem/12454276>
54273
54274         Reviewed by Anders Carlsson.
54275
54276         Refactor CollapsedBorderValue to only store the bits and pieces from the BorderValue
54277         that it actually needs. Packed the whole thing into 64 bits.
54278
54279         Reduces memory consumption by 547kB on Membuster3.
54280
54281         * rendering/RenderTableCell.cpp:
54282
54283             Add compile-time size assertion for CollapsedBorderValue.
54284
54285         * rendering/style/CollapsedBorderValue.h:
54286         (WebCore::CollapsedBorderValue::CollapsedBorderValue):
54287         (WebCore::CollapsedBorderValue::width):
54288         (WebCore::CollapsedBorderValue::style):
54289         (WebCore::CollapsedBorderValue::color):
54290         (WebCore::CollapsedBorderValue::isTransparent):
54291         (WebCore::CollapsedBorderValue::precedence):
54292         (WebCore::CollapsedBorderValue::isSameIgnoringColor):
54293         (CollapsedBorderValue):
54294
54295             Apply shrinkwrap to CollapsedBorderValue. Removed specialized copy constructor since
54296             the class only has primitive members now.
54297
54298 2012-10-08  Yoshifumi Inoue  <yosin@chromium.org>
54299
54300         HTMLSelectElement::typeAheadFind depends on implementation dependent behavior
54301         https://bugs.webkit.org/show_bug.cgi?id=98710
54302
54303         Reviewed by Kent Tamura.
54304
54305         This patch gets rid of C/C++ implementation dependent behavior from
54306         HTMLSelectElement::typeAheadFind() which does modulo operation with
54307         a negative operand.
54308
54309         HTMLSelectElement::typeAheadFind() contains expression with modulo
54310         operator and dividend can be -1 when the "select" element without
54311         "option" element but "optgroup" element.
54312
54313         Test: fast/forms/select/select-typeahead-crash.html
54314
54315         * html/HTMLSelectElement.cpp:
54316         (WebCore::HTMLSelectElement::typeAheadFind): Changed to do modulo
54317         operation with both operands are non-negative.
54318
54319 2012-10-08  Kent Tamura  <tkent@chromium.org>
54320
54321         Take account of overflowing values for width calculation of a year sub-field
54322         https://bugs.webkit.org/show_bug.cgi?id=98506
54323
54324         Reviewed by Eric Seidel.
54325
54326         When we decide the width of a year field of an input[type=date]
54327         with the multiple fields UI, we need to take account of the
54328         current value width because we allow to set overflowing values to
54329         the input[type=date].
54330
54331         This change affects only platforms with INPUT_TYPE_DATE &&
54332         INPUT_MULTIPLE_FIELDS_UI.
54333
54334         Test: fast/forms/date-multiple-fields/date-multiple-fields-change-layout-by-value.html
54335
54336         * html/shadow/DateTimeNumericFieldElement.cpp:
54337         (WebCore::DateTimeNumericFieldElement::customStyleForRenderer):
54338         Take account of the current value width.
54339
54340 2012-10-08  Tony Chang  <tony@chromium.org>
54341
54342         image not displayed in flexbox
54343         https://bugs.webkit.org/show_bug.cgi?id=98611
54344
54345         Reviewed by Ojan Vafai.
54346
54347         Flexbox will override the width of a child and when stretching, will override the height of the child.
54348         When this happens, when an image loads, it checks to see if it's width/height has
54349         changed, and if so, does a relayout.  The overridden width/height was preventing this
54350         relayout from happening.
54351
54352         To fix, we clear all the override sizes when we're done laying out the flex children.
54353
54354         Test: css3/flexbox/relayout-image-load.html
54355
54356         * rendering/RenderFlexibleBox.cpp:
54357         (WebCore::RenderFlexibleBox::layoutBlock): Clear child override sizes.
54358         (WebCore::RenderFlexibleBox::clearChildOverrideSizes):
54359         (WebCore::RenderFlexibleBox::computeMainAxisPreferredSizes): No longer need to clear the override size
54360         here since it should have already been cleared.
54361         * rendering/RenderFlexibleBox.h:
54362
54363 2012-10-08  Andreas Kling  <kling@webkit.org>
54364
54365         REGRESSION(r130643): editing/pasteboard/data-transfer-item is failing on chromium.
54366         <http://webkit.org/b/98686>
54367
54368         Reviewed by Tony Chang.
54369
54370         Change ChromiumDataObject::createFromPasteboard() to use a ListHashSet instead of a HashSet so that
54371         item order is preserved.
54372
54373         * platform/chromium/ChromiumDataObject.cpp:
54374         (WebCore::ChromiumDataObject::createFromPasteboard):
54375
54376 2012-10-08  Eric Seidel  <eric@webkit.org>
54377
54378         Inline logicalHeightForRowSizing to shave another 2-3% off robohornet's resizecol.html
54379         https://bugs.webkit.org/show_bug.cgi?id=98703
54380
54381         Reviewed by Emil A Eklund.
54382
54383         This is very small potatoes.  There are much bigger wins for table layout yet, but
54384         this was an easy win.
54385
54386         This function should probably be converted to use int's only, as table cells are pixel-sized
54387         according to our subpixel-experts.
54388
54389         Also, I suspect there should be ways to early return with less-math in the common cases, but
54390         I've saved such for a later patch.
54391
54392         Note that I changed from using paddingBefore/paddingAfter (which include the instrinsic padding)
54393         to calling computedCSSPaddingBefore/computedCSSPaddingAfter directly as well.
54394
54395         This single function is about 11% of total time for robohornet's resizecol.
54396
54397         * rendering/RenderTableCell.cpp:
54398         * rendering/RenderTableCell.h:
54399         (WebCore::RenderTableCell::logicalHeightForRowSizing):
54400
54401 2012-10-08  Alec Flett  <alecflett@chromium.org>
54402
54403         IndexedDB: remove autogenerated objectStore/index id code
54404         https://bugs.webkit.org/show_bug.cgi?id=98085
54405
54406         Reviewed by Tony Chang.
54407
54408         Remove support for backend-generated objectstore and index
54409         ids. The frontend objects now manage that state during
54410         versionchange transactions. The IDBDatabaseBackendInterface and
54411         IDBObjectStoreBackendInterface methods will go away when
54412         https://bugs.webkit.org/show_bug.cgi?id=98682 lands.
54413
54414         No new tests as this is part of a refactoring, existing indexeddb
54415         tests cover correctness.
54416
54417         * Modules/indexeddb/IDBBackingStore.h:
54418         (IDBBackingStore):
54419         * Modules/indexeddb/IDBDatabase.cpp:
54420         (WebCore::IDBDatabase::createObjectStore):
54421         * Modules/indexeddb/IDBDatabaseBackendImpl.cpp:
54422         (WebCore::IDBDatabaseBackendImpl::createObjectStore):
54423         (WebCore::IDBDatabaseBackendImpl::createObjectStoreInternal):
54424         (WebCore::IDBDatabaseBackendImpl::loadObjectStores):
54425         * Modules/indexeddb/IDBDatabaseBackendInterface.h:
54426         (IDBDatabaseBackendInterface):
54427         * Modules/indexeddb/IDBLevelDBBackingStore.cpp:
54428         (WebCore::IDBLevelDBBackingStore::createObjectStore):
54429         (WebCore::setMaxIndexId):
54430         (WebCore::IDBLevelDBBackingStore::createIndex):
54431         * Modules/indexeddb/IDBLevelDBBackingStore.h:
54432         (IDBLevelDBBackingStore):
54433         * Modules/indexeddb/IDBObjectStore.cpp:
54434         (WebCore::IDBObjectStore::createIndex):
54435         * Modules/indexeddb/IDBObjectStoreBackendImpl.cpp:
54436         (WebCore::IDBObjectStoreBackendImpl::IDBObjectStoreBackendImpl):
54437         (WebCore::IDBObjectStoreBackendImpl::createIndex):
54438         (WebCore::IDBObjectStoreBackendImpl::createIndexInternal):
54439         * Modules/indexeddb/IDBObjectStoreBackendInterface.h:
54440
54441 2012-10-08  Jaehun Lim  <ljaehun.lim@samsung.com>
54442
54443         [CAIRO] Adjust the source rect size when IMAGE_DECODER_DOWN_SAMPLING is enabled
54444         https://bugs.webkit.org/show_bug.cgi?id=98630
54445
54446         Reviewed by Martin Robinson.
54447
54448         IMAGE_DECODER_DOWN_SAMPLING scales down the size of the big image.
54449         CAIRO needs to adjust the source size to the scaled value.
54450
54451         No new tests.
54452
54453         * platform/graphics/cairo/BitmapImageCairo.cpp:
54454         (WebCore::BitmapImage::draw):
54455
54456 2012-10-08  Adam Barth  <abarth@webkit.org>
54457
54458         Remove unused features of BlobBuilder
54459         https://bugs.webkit.org/show_bug.cgi?id=98331
54460
54461         Reviewed by Eric Seidel.
54462
54463         Now that we don't expose BlobBuilder as a web platform API, we can
54464         strip down the class to handle only those cases that are needed by the
54465         Blob constructor.
54466
54467         I've also renamed the class from WebKitBlobBuilder to BlobBuilder and
54468         made it stack allocated rather than RefCounted. A future patch will
54469         actually move the files around. (I didn't want to mix moving code
54470         around with modifying the code.)
54471
54472         * bindings/js/JSBlobCustom.cpp:
54473         (WebCore::JSBlobConstructor::constructJSBlob):
54474         * bindings/v8/custom/V8BlobCustom.cpp:
54475         (WebCore::V8Blob::constructorCallback):
54476         * fileapi/WebKitBlobBuilder.cpp:
54477         (WebCore):
54478         (WebCore::BlobBuilder::BlobBuilder):
54479         (WebCore::BlobBuilder::getBuffer):
54480         (WebCore::BlobBuilder::append):
54481         (WebCore::BlobBuilder::appendBytesData):
54482         (WebCore::BlobBuilder::getBlob):
54483         * fileapi/WebKitBlobBuilder.h:
54484         (WebCore):
54485         (BlobBuilder):
54486         * page/FeatureObserver.h:
54487
54488 2012-10-08  Martin Robinson  <mrobinson@igalia.com>
54489
54490         Try to fix the debug build after r130699
54491
54492         Move the assignment of the ResourceHandleInternal local to before
54493         the include statement where it is used.
54494
54495         * platform/network/soup/ResourceHandleSoup.cpp:
54496         (WebCore::createSoupMessageForHandleAndRequest):
54497
54498 2012-10-08  Nate Chapin  <japhet@chromium.org>
54499
54500         Post-r130226 Cleanup: Comment a complicated if statement and make it a helper.
54501         https://bugs.webkit.org/show_bug.cgi?id=98463
54502
54503         Reviewed by Eric Seidel.
54504
54505         No new tests, refactor only.
54506
54507         * rendering/RenderLayer.cpp:
54508         (WebCore::frameElementAndViewPermitScroll):
54509         (WebCore::RenderLayer::scrollRectToVisible):
54510
54511 2012-10-06  Martin Robinson  <mrobinson@igalia.com>
54512
54513         [Soup] Simplify the way that requests are started
54514         https://bugs.webkit.org/show_bug.cgi?id=98532
54515
54516         Reviewed by Gustavo Noronha Silva.
54517
54518         Simplify the creation of the libsoup request and message when kicking off
54519         requests, by elminating a bit of duplicate code.
54520
54521         No new tests. This should not change any behavior.
54522
54523         * platform/network/ResourceHandle.h:
54524         (ResourceHandle):
54525         * platform/network/soup/ResourceHandleSoup.cpp:
54526         (WebCore):
54527         (WebCore::ResourceHandleInternal::soupSession): Ensure the session
54528         is initialized when passing it to the caller.
54529         (WebCore::createSoupMessageForHandleAndRequest): Added this helper which
54530         takes care of creating the SoupMessage for HTTP/HTTPS requests.
54531         (WebCore::createSoupRequestAndMessageForHandle): Collapsed the HTTP and
54532         non-HTTP request creation into this helper.
54533         (WebCore::ResourceHandle::start): Call the new helper now and then sendPendingRequest.
54534         (WebCore::ResourceHandle::sendPendingRequest): Instead of having special
54535         helpers to create and send the request, duplicating the logic for sending it
54536         across the file, add this method which can be used in both cases.
54537         (WebCore::waitingToSendRequest): Reworked the hasBeenSent method to answer
54538         the question of whether or not the request is ready to be sent, but is unsent.
54539         (WebCore::ResourceHandle::platformSetDefersLoading): Use the new helper.
54540         * platform/network/soup/ResourceRequest.h:
54541         (ResourceRequest): Added a new method for getting the URL string for soup.
54542         * platform/network/soup/ResourceRequestSoup.cpp:
54543         (WebCore::ResourceRequest::urlStringForSoup): Added.
54544
54545 2012-10-08  Eric Seidel  <eric@webkit.org>
54546
54547         Make no-column table-layout cases a little faster with inlining
54548         https://bugs.webkit.org/show_bug.cgi?id=98566
54549
54550         Reviewed by Julien Chaffraix.
54551
54552         This change is almost not worth it at only a couple percent boost on
54553         http://www.robohornet.org/tests/resizecol.html
54554         However, I think the logicalWidthFromTableColumn split it kinda nice
54555         so I've decided to post it anyway.
54556
54557         * rendering/RenderTable.cpp:
54558         (WebCore::RenderTable::slowColElement):
54559         * rendering/RenderTable.h:
54560         (WebCore::RenderTable::colElement):
54561         (RenderTable):
54562         * rendering/RenderTableCell.cpp:
54563         (WebCore::RenderTableCell::logicalWidthFromTableColumn):
54564         * rendering/RenderTableCell.h:
54565         (WebCore::RenderTableCell::styleOrColLogicalWidth):
54566         (RenderTableCell):
54567
54568 2012-10-08  Arpita Bahuguna  <arpitabahuguna@gmail.com>
54569
54570         Rename RenderObject::firstLineStyleSlowCase() to a more appropriate cachedFirstLineStyle()
54571         https://bugs.webkit.org/show_bug.cgi?id=98631
54572
54573         Reviewed by Eric Seidel.
54574
54575         Renaming firstLineStyleSlowCase() to cachedFirstLineStyle().
54576
54577         The current name is confusing since the function actually gets the
54578         the cached first-line styles.
54579         It also makes the name more descriptive of its functionality
54580         and in accordance with RenderObject::uncachedFirstLineStyle().
54581
54582         No new tests required for this change since no change in behavior is expected.
54583
54584         * rendering/RenderObject.cpp:
54585         (WebCore::RenderObject::cachedFirstLineStyle):
54586         * rendering/RenderObject.h:
54587         (WebCore::RenderObject::firstLineStyle):
54588         (RenderObject):
54589         Renamed RenderObject::firstLineStyleSlowCase() to cachedFirstLineStyle()
54590         and made the associated changes.
54591
54592 2012-10-08  Sami Kyostila  <skyostil@chromium.org>
54593
54594         Some non-scrollable elements are added to non-fast-scrollable region
54595         https://bugs.webkit.org/show_bug.cgi?id=97927
54596
54597         Reviewed by James Robinson.
54598
54599         Only RenderLayers that can actually be scrolled should be added to the
54600         ScrollingCoordinator's non-fast scrollable region. Otherwise we may
54601         needlessly fall back to main thread scrolling.
54602
54603         Test: ScrollingCoordinatorChromiumTest.clippedBodyTest
54604
54605         * rendering/RenderLayer.cpp:
54606         (WebCore::RenderLayer::updateScrollbarsAfterLayout):
54607         (WebCore::RenderLayer::updateScrollbarsAfterStyleChange):
54608
54609 2012-10-08  Simon Fraser  <simon.fraser@apple.com>
54610
54611         Move layerTreeAsText to window.internals
54612         https://bugs.webkit.org/show_bug.cgi?id=98690
54613
54614         Reviewed by James Robinson.
54615
54616         Add window.internals.layerTreeAsText(document), and change the tests to use it.
54617         I'll remove testRunner.layerTreeAsText() in a later patch.
54618
54619         * testing/Internals.cpp:
54620         (WebCore::Internals::layerTreeAsText):
54621         * testing/Internals.h:
54622         (Internals):
54623         * testing/Internals.idl:
54624
54625 2012-10-08  Jon Lee  <jonlee@apple.com>
54626
54627         Add render object that paints plugin snapshots
54628         https://bugs.webkit.org/show_bug.cgi?id=98322
54629         <rdar://problem/12426546>
54630
54631         Reviewed by Simon Fraser.
54632
54633         First, teach plugins to maintain a set of states when plugin snapshotting is enabled.
54634
54635         Second, a new RenderSnapshottedPlugIn class is a RenderEmbeddedObject that knows how to paint
54636         snapshots when the plugin is not visibly playing. It maintains a RenderImageResource to
54637         the generated poster image.
54638
54639         * html/HTMLPlugInElement.cpp:
54640         (WebCore::HTMLPlugInElement::HTMLPlugInElement): By default all plugins play on load.
54641         * html/HTMLPlugInElement.h: Move the inheritance of ImageLoaderClientBase down to
54642         HTMLPlugInImageElement, since that is the class that actually deals with image-based plugins.
54643         (WebCore::HTMLPlugInElement::displayState): Add bit for display state.
54644         (WebCore::HTMLPlugInElement::setDisplayState):
54645         (WebCore::HTMLPlugInElement::updateSnapshot):
54646
54647         * html/HTMLPlugInImageElement.cpp:
54648         (WebCore::HTMLPlugInImageElement::HTMLPlugInImageElement): If plugin snapshotting is
54649         enabled, plugin state is set to wait for a poster image.
54650         (WebCore::HTMLPlugInImageElement::createRenderer): Create RenderSnapshottedPlugIn if
54651         plugin snapshotting is enabled.
54652         (WebCore::HTMLPlugInImageElement::updateSnapshot): Once a snapshot is available, update the
54653         renderer and set its state to wait for user input to start the plugin.
54654         * html/HTMLPlugInImageElement.h:
54655         (HTMLPlugInImageElement):
54656
54657         * rendering/RenderObject.h:
54658         (WebCore::RenderObject::isSnapshottedPlugIn): Add new function to identify
54659         RenderSnapshottedPlugIn instances. Since RenderSnapshottedPlugIn inherits from
54660         RenderEmbeddedObject, isEmbeddedObject() still returns true.
54661         * rendering/RenderEmbeddedObject.h:
54662         (RenderEmbeddedObject): Elevate a few virtual methods to protected for
54663         RenderSnapshottedPlugIn to override.
54664
54665         * rendering/RenderSnapshottedPlugIn.cpp: Added.
54666         (WebCore::RenderSnapshottedPlugIn::RenderSnapshottedPlugIn): Initialize snapshot
54667         resource.
54668         (WebCore::RenderSnapshottedPlugIn::~RenderSnapshottedPlugIn): Shut down snapshot
54669         image resource to remove the renderer as a client, and remove image from memory cache.
54670         (WebCore::RenderSnapshottedPlugIn::plugInImageElement): Convenience function to get the
54671         HTML element.
54672         (WebCore::RenderSnapshottedPlugIn::updateSnapshot): Cache the snapshot, and repaint.
54673         (WebCore::RenderSnapshottedPlugIn::paint): If the plugin is not playing, paint like a
54674         RenderImage does.
54675         (WebCore::RenderSnapshottedPlugIn::paintReplaced): Paint the snapshot and overlay if the
54676         plugin is not playing.
54677         (WebCore::RenderSnapshottedPlugIn::paintReplacedSnapshot): Inspired by
54678         RenderImage::paintReplaced() and RenderImage::paintIntoRect().
54679         * rendering/RenderSnapshottedPlugIn.h: Added.
54680         (WebCore::RenderSnapshottedPlugIn::isSnapshottedPlugin): Returns true.
54681
54682         * rendering/RenderTheme.h: Add a function that paints the overlay on top of the snapshot.
54683         * rendering/RenderThemeMac.h:
54684         * rendering/RenderThemeMac.mm:
54685         (WebCore::RenderThemeMac::paintPlugInSnapshotOverlay):
54686
54687         * WebCore.xcodeproj/project.pbxproj: Add new RenderSnapshottedPlugIn class.
54688         * CMakeLists.txt: Ditto.
54689         * GNUmakefile.list.am: Ditto.
54690         * Target.pri: Ditto.
54691         * WebCore.gypi: Ditto.
54692         * WebCore.vcproj/WebCore.vcproj: Ditto.
54693         * rendering/RenderingAllInOne.cpp: Ditto.
54694
54695 2012-10-08  Hans Muller  <hmuller@adobe.com>
54696
54697         [CSS Exclusions] Add support for polygonal shapes
54698         https://bugs.webkit.org/show_bug.cgi?id=96811
54699
54700         Reviewed by Dirk Schulze.
54701
54702         Initial version of the layout support for polygonal exclusion shapes: the ExclusionPolygon class.
54703         Supports the public ExclusionShape operations using the algorithm described here:
54704         http://hansmuller-webkit.blogspot.com/2012/06/horizontal-box-polygon-intersection-for.html.
54705         Although both the "included" and "excluded" operations are supported, only the former is
54706         used, since only shape-inside is supported at the moment.
54707
54708         The ExclusionPolygon class stores the polygon's edges in an interval tree.
54709
54710         Polygon edges are represented by the ExclusionPolygonEdge struct, which records the indices of
54711         the pair of vertices joined by the edge.  Edge vertex index1 is usually less than index2, except
54712         the last edge where index2 is 0.  We plan to improve the algorithm that creates the edges
54713         by spanning vertices contained in sequences of more than two colinear vertices. For example,
54714         a triangular polygon might be specified with 5 vertices like this: 3,0 5,0, 5,5, 4,4 2,2, 0,0.
54715         By spanning the extra colinear points: 0,0 5,0, 5,5, which implies index1-index2 edges: 5-1 1-2 2-5.
54716
54717         Although the implementation supports complex polygons, the layout code is limited to
54718         essentially rectangular shapes until a patch for https://bugs.webkit.org/show_bug.cgi?id=96813
54719         lands.
54720
54721         Tests: fast/exclusions/shape-inside/shape-inside-polygon-rectangle.html
54722                fast/exclusions/shape-inside/shape-inside-simple-polygon-001.html
54723                fast/exclusions/shape-inside/shape-inside-simple-polygon-002.html
54724                fast/exclusions/shape-inside/shape-inside-simple-polygon-003.html
54725                fast/exclusions/shape-inside/shape-inside-simple-polygon-004.html
54726
54727         * CMakeLists.txt:
54728         * GNUmakefile.list.am:
54729         * Target.pri:
54730         * WebCore.gypi:
54731         * WebCore.vcproj/WebCore.vcproj:
54732         * WebCore.xcodeproj/project.pbxproj:
54733         * rendering/ExclusionPolygon.cpp: Added.
54734         (WebCore):
54735         (EdgeIntersection): Internal description of the intersection of a polygon edge and a horizontal line.
54736         (WebCore::ExclusionPolygon::ExclusionPolygon): See the introductory text above for a description of this type.
54737         (WebCore::computeXIntersection): Find and classify the X intercept of a polygon edge with horizontal line, if any.
54738         (WebCore::ExclusionPolygon::rightVertexY): This method is used to decide if a horizontal line "crosses" a vertex.
54739         (WebCore::appendIntervalX): Append an x coordinate to a vector of ExclusionIntervals.
54740         (WebCore::ExclusionPolygon::computeXIntersections): Return a vector of the intersections of a horizontal line with the polygon's edges.
54741         (WebCore::ExclusionPolygon::computeEdgeIntersections): Return a vector of the X projections of the edges that overlap a horizonal rectangle.
54742         (WebCore::ExclusionPolygon::getExcludedIntervals): Return a SegmentList of the X intervals within a horizontal rectangle that overlap the polygon.
54743         (WebCore::ExclusionPolygon::getIncludedIntervals): Return the X intervals within a horizontal rectangle that fit inside the polygon.
54744         * rendering/ExclusionPolygon.h: Added.
54745         (WebCore):
54746         (ExclusionPolygon):
54747         (WebCore::ExclusionPolygon::getXAt): X coordinate of a polygon vertex
54748         (WebCore::ExclusionPolygon::getYAt): Y coordinate of a polygon vertex
54749         (WebCore::ExclusionPolygon::numberOfVertices):
54750         (WebCore::ExclusionPolygon::fillRule): A WindRule value that defines "inside" for self-intersecting polygons.
54751         (ExclusionPolygonEdge):
54752         (WebCore::ExclusionPolygonEdge::ExclusionPolygonEdge):
54753         (WebCore::ExclusionPolygonEdge::vertex1):
54754         (WebCore::ExclusionPolygonEdge::vertex2):
54755         (WebCore::ExclusionPolygonEdge::minX):
54756         (WebCore::ExclusionPolygonEdge::minY):
54757         (WebCore::ExclusionPolygonEdge::maxX):
54758         (WebCore::ExclusionPolygonEdge::maxY):
54759         * rendering/ExclusionShape.cpp:
54760         (WebCore::createExclusionPolygon): Return a new ExclusionPolygon.
54761         (WebCore):
54762         (WebCore::ExclusionShape::createExclusionShape): Added support for BasicShape::BASIC_SHAPE_POLYGON.
54763         * rendering/ExclusionShapeInsideInfo.cpp:
54764         (WebCore::ExclusionShapeInsideInfo::isExclusionShapeInsideInfoEnabledForRenderBlock): Enable BASIC_SHAPE_POLYGON shapes for RenderBlocks.
54765
54766 2012-10-08  Tony Chang  <tony@chromium.org>
54767
54768         Replace 2 uses of updateLogicalHeight with computeLogicalHeight
54769         https://bugs.webkit.org/show_bug.cgi?id=98677
54770
54771         Reviewed by Ojan Vafai.
54772
54773         This is part of bug 96804.  Convert RenderTextControl and RenderSVGForeignObject to
54774         override the const computeLogicalHeight method rather than the updateLogicalHeight
54775         setter method.
54776
54777         No new tests, there should be no behavior change as this is just a refactor.
54778
54779         * rendering/RenderTextControl.cpp:
54780         (WebCore::RenderTextControl::computeLogicalHeight): Pass logicalHeight through rather than setting height.
54781         This is a slight correctness fix, although we don't support vertical inputs yet.
54782         * rendering/RenderTextControl.h:
54783         (RenderTextControl):
54784         * rendering/svg/RenderSVGForeignObject.cpp:
54785         (WebCore::RenderSVGForeignObject::computeLogicalHeight):
54786         * rendering/svg/RenderSVGForeignObject.h:
54787         (RenderSVGForeignObject):
54788
54789 2012-10-08  Min Qin  <qinmin@chromium.org>
54790
54791         Upstream some tweaks for overlay play button on Android
54792         https://bugs.webkit.org/show_bug.cgi?id=98671
54793
54794         Reviewed by Adam Barth.
54795
54796         This change stops displaying the overlay play button if video height is too small
54797         No test for this. Will rebase layout test expectations for android later.
54798
54799         * css/mediaControlsChromiumAndroid.css:
54800         (video::-webkit-media-controls-overlay-enclosure):
54801
54802 2012-10-08  Simon Fraser  <simon.fraser@apple.com>
54803
54804         Some GraphicsLayer cleanup to separate the concepts of using a tile cache, and being the main tile cache layer
54805         https://bugs.webkit.org/show_bug.cgi?id=98574
54806
54807         Reviewed by Dean Jackson.
54808
54809         GraphicsLayerCA assumed that using a TileCache equated to being the main page tile
54810         cache layer, which has some special considerations. Make these two concepts separate
54811         to get closer to being able to use TileCaches in place of CATiledLayer.
54812
54813         * platform/graphics/GraphicsLayer.h:
54814         (GraphicsLayer): Remove m_usingTileCache member, which was not appropriate
54815         for this class to have.
54816         * platform/graphics/GraphicsLayer.cpp:
54817         (WebCore::GraphicsLayer::GraphicsLayer): Remove init of m_usingTileCache.
54818         (WebCore::GraphicsLayer::debugBorderInfo): Can no longer use m_usingTileCache to
54819         get the blue color, so moved code into a virtual debugBorderInfo() method.
54820         (WebCore::GraphicsLayer::updateDebugIndicators): Call the virtual debugBorderInfo().
54821         * platform/graphics/GraphicsLayerClient.h: Remove the usingTileCache() callback;
54822         we now just cache this information in the GraphicsLayerCA on creation.
54823         * platform/graphics/ca/GraphicsLayerCA.cpp:
54824         (WebCore::GraphicsLayerCA::GraphicsLayerCA): Init m_isPageTileCacheLayer to false,
54825         then set to m_isPageTileCacheLayer if the client says we should create a tile cache.
54826         (WebCore::GraphicsLayerCA::platformCALayerShowRepaintCounter): Overidden to avoid duplicate repaint
54827         counters in the top-left tile.
54828         (WebCore::GraphicsLayerCA::updateLayerBackgroundColor): If this layer is the page tile cache layer,
54829         we allow setting of its background color.
54830         (WebCore::GraphicsLayerCA::debugBorderInfo): Overidden to use a blue color for tiles.
54831         (WebCore::GraphicsLayerCA::requiresTiledLayer): Don't make CATiledLayers for the page tile cache.
54832         * platform/graphics/ca/GraphicsLayerCA.h:
54833         (GraphicsLayerCA):
54834         * platform/graphics/ca/PlatformCALayerClient.h:
54835         (PlatformCALayerClient): Need to pass the platform layer into platformCALayerShowRepaintCounter()
54836         so we can distinguish between calls for tiles, and calls for the tile cache layer itself.
54837         * platform/graphics/ca/mac/TileCache.mm:
54838         (WebCore::TileCache::shouldShowRepaintCounters): Pass 0 to platformCALayerShowRepaintCounter() to
54839         indicate that we're asking about a tile.
54840         * platform/graphics/mac/WebLayer.mm:
54841         (drawLayerContents): Now we can just rely on platformCALayerShowRepaintCounter() to tell us whether
54842         to draw the repaint counter.
54843         (-[WebLayer setNeedsDisplayInRect:]):
54844         * platform/graphics/mac/WebTiledLayer.mm:
54845         (-[WebTiledLayer setNeedsDisplayInRect:]):
54846         * rendering/RenderLayerBacking.h:
54847         (WebCore::RenderLayerBacking::usingTileCache):
54848         (RenderLayerBacking):
54849         * rendering/RenderLayerCompositor.cpp:
54850         (WebCore::RenderLayerCompositor::documentBackgroundColorDidChange): We can ask the RenderLayerBacking
54851         whether it's for the tile cache, rather than going to the GraphicsLayer.
54852         * platform/graphics/win/MediaPlayerPrivateQuickTimeVisualContext.cpp:
54853         (WebCore::MediaPlayerPrivateQuickTimeVisualContext::LayerClient::platformCALayerShowRepaintCounter):
54854
54855 2012-10-08  Huang Dongsung  <luxtella@company100.net>
54856
54857         [Qt] Make ImageBufferQt use premultiplied converting functions in Color.h instead of its own mechanism.
54858         https://bugs.webkit.org/show_bug.cgi?id=98582
54859
54860         Reviewed by Eric Seidel.
54861
54862         Only Qt port failed canvas/philip/tests/2d.imageData.put.unchanged.html because
54863         ImageBufferQt converts from or to a premultiplied color using its own code. When
54864         we convert twice from an unmultiplied color to a premultiplied color and then to
54865         an unmultiplied color using this code, the calculated result are pretty
54866         different against the input color. It is why Gtk passes this test although Qt
54867         fails. Gtk port uses them in Color.h.
54868
54869         In addition, Qt should use the functions in Color.h to reduce duplicated codes.
54870
54871         Tests: canvas/philip/tests/2d.imageData.put.unchanged.html: Fixed a test case
54872
54873         * platform/graphics/qt/ImageBufferQt.cpp:
54874         (WebCore::getImageData):
54875         (WebCore::convertBGRAToRGBA):
54876         (WebCore::ImageBuffer::putByteArray):
54877
54878 2012-10-08  Tab Atkins  <jackalmage@gmail.com>
54879
54880         Remove "orphaned units" quirk
54881         https://bugs.webkit.org/show_bug.cgi?id=98553
54882
54883         Reviewed by Eric Seidel.
54884
54885         This patch removes our "orphaned units" quirk.
54886         We have an "orphaned units" quirk to match IE, which allows things like "width: 20 px;".
54887         But FF and Opera don't have it and aren't aware of bugs for it,
54888         and it's not in Simon Pieters' Quirks Mode spec <http://dvcs.w3.org/hg/quirks-mode/raw-file/tip/Overview.html>
54889
54890         No new tests, because I'm killing a quirk.
54891
54892         * css/CSSParser.cpp:
54893         (WebCore::CSSParser::parseValue):
54894         * css/CSSParser.h:
54895         (CSSParser):
54896
54897 2012-10-08  Robert Hogan  <robert@webkit.org>
54898
54899         Border, margin and padding of an inline's inline ancestors counted twice
54900         https://bugs.webkit.org/show_bug.cgi?id=63074
54901
54902         Reviewed by David Hyatt.
54903
54904         In a line such as '<span><span><img>Text' the border, padding and margin belonging
54905         to the two spans was counted twice by RenderBlockLineLayout::nextLineBreak(): once
54906         when adding the width of the <img> object to the line, and a second time when adding
54907         the 'Text'. The result was that nextLineBreak() now had a length for the line that 
54908         exceeded the line's maximum length and inserted a bogus line break.
54909
54910         This all happened because the helper function that is used to add in the border etc.
54911         from inline ancestors was crawling up the tree each time. It doesn't need to do that, it
54912         should stop crawling up the tree when the current object is not the first or last sibling below a parent.
54913
54914         Test: fast/inline/bpm-inline-ancestors.html
54915
54916         * rendering/RenderBlockLineLayout.cpp:
54917         (WebCore::shouldAddBorderPaddingMargin): Broke this check out into a helper function so that it 
54918         can help inlineLogicalWidth() return early and also treat empty RenderTexts the same as no previous/next
54919         sibling on the line. This ensures that collapsed leading space does not interfere with the decision to
54920         crawl up the ancestors accumulating border, padding, and margin.
54921         (WebCore):
54922         (WebCore::inlineLogicalWidth): Return early once the current child is no longer on the edge of its line - 
54923         this ensures the border, padding and margin of ancestors is not counted twice. 
54924
54925 2012-10-08  Mike West  <mkwst@chromium.org>
54926
54927         Null-check for DOMWindow before feeding it to FeatureObserver.
54928         https://bugs.webkit.org/show_bug.cgi?id=98624
54929
54930         Reviewed by Adam Barth.
54931
54932         We shouldn't call out to FeatureObserver in
54933         ContentSecurityPolicy::didReceiveHeader if the policy's document doesn't
54934         have a DOMWindow.
54935
54936         Test: http/tests/security/contentSecurityPolicy/xmlhttprequest-protected-resource-does-not-crash.html
54937
54938         * page/ContentSecurityPolicy.cpp:
54939         (WebCore::ContentSecurityPolicy::didReceiveHeader):
54940             Null check 'document->domWindow' before passing it on.
54941         * page/FeatureObserver.cpp:
54942         (WebCore::FeatureObserver::observe):
54943             ASSERT 'domWindow'.
54944
54945 2012-10-08  Nate Chapin  <japhet@chromium.org>
54946
54947         Loader cleanup : Simplify FrameLoader/DocumentLoader setupForReplace()
54948         https://bugs.webkit.org/show_bug.cgi?id=49072
54949
54950         Reviewed by Eric Seidel.
54951
54952         This patch contains one small known behavior change: multipart/x-mixed-replace main resources with text/html parts
54953         will no longer load the text/html progressively. In practice, loading the html progressively causes the document
54954         to get cleared as soon as the next part's data starts arriving, which leads to a blank page most of the time. This case
54955         seems to be pathological, as IE, FF, Opera and WebKit all do something different currently. This patch will cause
54956         us to behave like Firefox, which is the most sane of the current behaviors.
54957
54958         Test: http/tests/multipart/multipart-html.php
54959
54960         * loader/DocumentLoader.cpp:
54961         (WebCore::DocumentLoader::commitData): Use isMultipartReplacingLoad() helper.
54962         (WebCore::DocumentLoader::receivedData):
54963         (WebCore::DocumentLoader::setupForReplace): Renamed from setupForReplaceByMIMEType(). Call maybeFinishLoadingMultipartContent()
54964             instead of doing identical work inline. After we call frameLoader()->setReplacing(), we will never load progressively, so remove
54965             the if (doesProgressiveLoad(newMIMEType)) {} block.
54966         (WebCore::DocumentLoader::isMultipartReplacingLoad):
54967         (WebCore::DocumentLoader::maybeFinishLoadingMultipartContent): Inline the old DocumentLoader::setupForeReplace(), check
54968             frameLoader()->isReplacing() instead of the delete doesProgressiveLoad().
54969         * loader/DocumentLoader.h:
54970         * loader/FrameLoader.cpp:
54971         (WebCore::FrameLoader::setupForReplace): Move all calls to revertToProvisionalState here.
54972         * loader/MainResourceLoader.cpp:
54973         (WebCore::MainResourceLoader::didReceiveResponse): Call setupForReplace(), renamed from setupForReplaceByMIMEType().
54974
54975 2012-10-08  Zoltan Horvath  <zoltan@webkit.org>
54976
54977         [Qt] r122720 causes performance regression with DirectFB on ARMv7
54978         https://bugs.webkit.org/show_bug.cgi?id=97548
54979
54980         Reviewed by Jocelyn Turcotte.
54981
54982         Revert the rest of r122720. This change modifies the NativeImagePtr from QImage* to QPixmap*.
54983
54984         Covered by existing tests.
54985
54986         * bridge/qt/qt_pixmapruntime.cpp:
54987         (JSC::Bindings::assignToHTMLImageElement):
54988         (JSC::Bindings::QtPixmapRuntime::toQt):
54989         * platform/DragImage.h:
54990         (WebCore):
54991         * platform/graphics/GraphicsContext.h:
54992         (GraphicsContext):
54993         * platform/graphics/Image.h:
54994         (Image):
54995         * platform/graphics/NativeImagePtr.h:
54996         (WebCore):
54997         * platform/graphics/gstreamer/ImageGStreamer.h:
54998         * platform/graphics/gstreamer/ImageGStreamerQt.cpp:
54999         (ImageGStreamer::ImageGStreamer):
55000         * platform/graphics/qt/GraphicsContext3DQt.cpp:
55001         (WebCore::GraphicsContext3D::getImageData):
55002         * platform/graphics/qt/GraphicsContextQt.cpp:
55003         (WebCore::GraphicsContext::pushTransparencyLayerInternal):
55004         (WebCore::GraphicsContext::beginPlatformTransparencyLayer):
55005         (WebCore::GraphicsContext::endPlatformTransparencyLayer):
55006         * platform/graphics/qt/ImageBufferDataQt.h:
55007         (ImageBufferData):
55008         * platform/graphics/qt/ImageBufferQt.cpp:
55009         (WebCore::ImageBufferData::ImageBufferData):
55010         (WebCore):
55011         (WebCore::ImageBufferData::toQImage):
55012         (WebCore::ImageBuffer::copyImage):
55013         (WebCore::ImageBuffer::clip):
55014         (WebCore::ImageBuffer::platformTransformColorSpace):
55015         (WebCore::getImageData):
55016         (WebCore::ImageBuffer::putByteArray):
55017         (WebCore::encodeImage):
55018         (WebCore::ImageBuffer::toDataURL):
55019         * platform/graphics/qt/ImageDecoderQt.cpp:
55020         (WebCore::ImageFrame::asNewNativeImage):
55021         * platform/graphics/qt/ImageQt.cpp:
55022         (graphics):
55023         (loadResourcePixmap):
55024         (WebCore::Image::loadPlatformResource):
55025         (WebCore::Image::setPlatformResource):
55026         (WebCore::Image::drawPattern):
55027         (WebCore::BitmapImage::BitmapImage):
55028         (WebCore::BitmapImage::draw):
55029         (WebCore::BitmapImage::checkForSolidColor):
55030         (WebCore::BitmapImage::create):
55031         * platform/graphics/qt/PatternQt.cpp:
55032         (WebCore::Pattern::createPlatformPattern):
55033         * platform/graphics/qt/StillImageQt.cpp:
55034         (WebCore::StillImage::StillImage):
55035         (WebCore::StillImage::~StillImage):
55036         (WebCore::StillImage::currentFrameHasAlpha):
55037         (WebCore::StillImage::size):
55038         (WebCore::StillImage::nativeImageForCurrentFrame):
55039         (WebCore::StillImage::draw):
55040         * platform/graphics/qt/StillImageQt.h:
55041         (WebCore::StillImage::create):
55042         (WebCore::StillImage::createForRendering):
55043         (StillImage):
55044         * platform/graphics/qt/TransparencyLayer.h:
55045         (WebCore::TransparencyLayer::TransparencyLayer):
55046         (TransparencyLayer):
55047         * platform/graphics/surfaces/qt/GraphicsSurfaceQt.cpp:
55048         (WebCore::GraphicsSurface::createReadOnlyImage):
55049         * platform/graphics/texmap/TextureMapperGL.cpp:
55050         (WebCore::BitmapTextureGL::updateContents):
55051         * platform/qt/ClipboardQt.cpp:
55052         (WebCore::ClipboardQt::createDragImage):
55053         (WebCore::ClipboardQt::declareAndWriteDragImage):
55054         * platform/qt/CursorQt.cpp:
55055         (WebCore::createCustomCursor):
55056         * platform/qt/DragImageQt.cpp:
55057         (WebCore::createDragImageFromImage):
55058         * platform/qt/PasteboardQt.cpp:
55059         (WebCore::Pasteboard::writeImage):
55060
55061 2012-10-08  Carlos Garcia Campos  <cgarcia@igalia.com>
55062
55063         Unreviewed. Fix make distcheck.
55064
55065         * GNUmakefile.list.am: Add missing header file to compilation.
55066
55067 2012-10-08  Sheriff Bot  <webkit.review.bot@gmail.com>
55068
55069         Unreviewed, rolling out r130619.
55070         http://trac.webkit.org/changeset/130619
55071         https://bugs.webkit.org/show_bug.cgi?id=98634
55072
55073         Causes many crashes on the EFL bots. (Requested by rakuco on
55074         #webkit).
55075
55076         * platform/RunLoop.h:
55077         (RunLoop):
55078         * platform/efl/RunLoopEfl.cpp:
55079         (WebCore::RunLoop::RunLoop):
55080         (WebCore::RunLoop::wakeUpEvent):
55081         (WebCore::RunLoop::wakeUp):
55082
55083 2012-10-08  Byungwoo Lee  <bw80.lee@samsung.com>
55084
55085         [EFL] Use ecore_main_loop_thread_safe_call_async() to wakeup main loop.
55086         https://bugs.webkit.org/show_bug.cgi?id=98505
55087
55088         Reviewed by Kenneth Rohde Christiansen.
55089
55090         Instead of ecore_pipe_write(),
55091         use ecore_main_loop_thread_safe_call_async() to wakeup ecore main loop.
55092
55093         According to the EFL API document, this function is designed to dispatch
55094         a function on ecore main loop by avoiding dead lock or race condition. 
55095         With this function, webkit doesn't need to maintain ecore pipe also.
55096
55097         No new tests. The function to wakeup main loop is changed.
55098
55099         * platform/RunLoop.h:
55100         (RunLoop):
55101         * platform/efl/RunLoopEfl.cpp:
55102         (WebCore::RunLoop::RunLoop):
55103         (WebCore::RunLoop::wakeUpEvent):
55104         (WebCore::RunLoop::wakeUp):
55105
55106 2012-10-07  Arpita Bahuguna  <arpitabahuguna@gmail.com>
55107
55108         :first-line pseudo selector ignoring words created from :before
55109         https://bugs.webkit.org/show_bug.cgi?id=80794
55110
55111         Reviewed by Daniel Bates.
55112
55113         The :first-line pseudo-element style is not applied for content
55114         which is generated from the :before/:after pseudo-elements.
55115
55116         Test: fast/css/first-line-style-for-before-after-content.html
55117
55118         * rendering/RenderObject.cpp:
55119         (WebCore::firstLineStyleForCachedUncachedType):
55120         Added a new static helper function incorporating the common
55121         functionality of both uncachedFirstLineStyle() and firstLineStyleSlowCase()
55122         functions. It also modifies the functionality to handle the
55123         scenario when :first-line style needs to be applied on content
55124         generated from :before/:after.
55125
55126         While getting the :first-line style we should also consider the case
55127         when the content is generated from a :before/:after pseudo-element in
55128         which case the RenderInline's parent should be considered for
55129         obtaining the first-line style.
55130
55131         (WebCore):
55132         (WebCore::RenderObject::uncachedFirstLineStyle):
55133         (WebCore::RenderObject::firstLineStyleSlowCase):
55134         Moved the duplicate code between the two functions to the common
55135         helper function firstLineStyleForCachedUncachedType().
55136
55137 2012-10-07  Peter Wang  <peter.wang@torchmobile.com.cn>
55138
55139         Web Inspector: The front-end should provide the position in original source file when set a breakpoint
55140         https://bugs.webkit.org/show_bug.cgi?id=93473
55141
55142         Reviewed by Yury Semikhatsky.
55143
55144         Since frontend truncates the indent, the first statement in a line must match the breakpoint (line, 0).
55145         With this patch JSC debugger can support both normal and "Pretty Print" mode.
55146
55147         No new test case. This patch can be verified with cases in "LayoutTests/inspector/debugger/".
55148
55149         * bindings/js/ScriptDebugServer.cpp:
55150         (WebCore::ScriptDebugServer::ScriptDebugServer):
55151         (WebCore::ScriptDebugServer::hasBreakpoint):
55152         (WebCore::ScriptDebugServer::createCallFrameAndPauseIfNeeded):
55153         (WebCore::ScriptDebugServer::pauseIfNeeded):
55154         * bindings/js/ScriptDebugServer.h:
55155         (ScriptDebugServer):
55156
55157 2012-10-07  Martin Robinson  <mrobinson@igalia.com>
55158
55159         [Soup] Clean up ResourceError creation
55160         https://bugs.webkit.org/show_bug.cgi?id=98521
55161
55162         Reviewed by Carlos Garcia Campos.
55163
55164         Simplify the creation of ResourcErrors in ResourceHandleSoup. This is
55165         part of a process to make the libsoup networking backend more hackable.
55166
55167         No new tests. This shouldn't change functionality.
55168
55169         * GNUmakefile.list.am: Added new file.
55170         * PlatformEfl.cmake: Added new file.
55171         * platform/network/soup/ResourceError.h:
55172         (ResourceError): Added new factories.
55173         * platform/network/soup/ResourceErrorSoup.cpp: Added.
55174         (WebCore::failingURI): Added this helper.
55175         (WebCore::ResourceError::httpError): New factory.
55176         (WebCore::ResourceError::genericIOError): Ditto.
55177         (WebCore::ResourceError::tlsError): Ditto.
55178         (WebCore::ResourceError::timeoutError): Ditto.
55179         * platform/network/soup/ResourceHandleSoup.cpp:
55180         (WebCore::handleUnignoredTLSErrors): Created this helper which merges
55181         some of the logic from sendRequestCallback.
55182         (WebCore::sendRequestCallback): Use the new helper.
55183         (WebCore::requestTimeoutCallback): Use the new factory.
55184
55185 2012-10-07  Caio Marcelo de Oliveira Filho  <caio.oliveira@openbossa.org>
55186
55187         Rename first/second to key/value in HashMap iterators
55188         https://bugs.webkit.org/show_bug.cgi?id=82784
55189
55190         Reviewed by Eric Seidel.
55191
55192         * Modules/geolocation/Geolocation.cpp:
55193         (WebCore::Geolocation::Watchers::find):
55194         (WebCore::Geolocation::Watchers::remove):
55195         * Modules/indexeddb/IDBDatabase.cpp:
55196         (WebCore::IDBDatabase::objectStoreNames):
55197         * Modules/indexeddb/IDBDatabaseBackendImpl.cpp:
55198         (WebCore::IDBDatabaseBackendImpl::metadata):
55199         * Modules/indexeddb/IDBFactoryBackendImpl.cpp:
55200         (WebCore::IDBFactoryBackendImpl::deleteDatabase):
55201         (WebCore::IDBFactoryBackendImpl::openBackingStore):
55202         (WebCore::IDBFactoryBackendImpl::open):
55203         * Modules/indexeddb/IDBObjectStore.cpp:
55204         (WebCore::IDBObjectStore::indexNames):
55205         (WebCore::IDBObjectStore::put):
55206         (WebCore::IDBObjectStore::index):
55207         (WebCore::IDBObjectStore::deleteIndex):
55208         * Modules/indexeddb/IDBObjectStoreBackendImpl.cpp:
55209         (WebCore::IDBObjectStoreBackendImpl::metadata):
55210         (WebCore::makeIndexWriters):
55211         (WebCore::IDBObjectStoreBackendImpl::deleteInternal):
55212         * Modules/indexeddb/IDBTransaction.cpp:
55213         (WebCore::IDBTransaction::objectStore):
55214         (WebCore::IDBTransaction::objectStoreDeleted):
55215         (WebCore::IDBTransaction::onAbort):
55216         (WebCore::IDBTransaction::dispatchEvent):
55217         * Modules/mediastream/MediaConstraintsImpl.cpp:
55218         (WebCore::MediaConstraintsImpl::getMandatoryConstraints):
55219         (WebCore::MediaConstraintsImpl::getMandatoryConstraintValue):
55220         * Modules/webdatabase/AbstractDatabase.cpp:
55221         (WebCore::AbstractDatabase::performOpenAndVerify):
55222         * Modules/webdatabase/DatabaseTracker.cpp:
55223         (WebCore::DatabaseTracker::interruptAllDatabasesForContext):
55224         * Modules/webdatabase/OriginUsageRecord.cpp:
55225         (WebCore::OriginUsageRecord::diskUsage):
55226         * Modules/webdatabase/SQLTransactionCoordinator.cpp:
55227         (WebCore::SQLTransactionCoordinator::acquireLock):
55228         (WebCore::SQLTransactionCoordinator::releaseLock):
55229         (WebCore::SQLTransactionCoordinator::shutdown):
55230         * Modules/webdatabase/chromium/DatabaseTrackerChromium.cpp:
55231         (WebCore::DatabaseTracker::interruptAllDatabasesForContext):
55232         * Modules/webdatabase/chromium/QuotaTracker.cpp:
55233         (WebCore::QuotaTracker::getDatabaseSizeAndSpaceAvailableToOrigin):
55234         (WebCore::QuotaTracker::updateDatabaseSize):
55235         * Modules/websockets/WebSocketDeflateFramer.cpp:
55236         (WebCore::WebSocketExtensionDeflateFrame::processResponse):
55237         * Modules/websockets/WebSocketExtensionDispatcher.cpp:
55238         (WebCore::WebSocketExtensionDispatcher::appendAcceptedExtension):
55239         * accessibility/AXObjectCache.cpp:
55240         (WebCore::AXObjectCache::~AXObjectCache):
55241         * bindings/gobject/DOMObjectCache.cpp:
55242         (WebKit::DOMObjectCache::clearByFrame):
55243         * bindings/js/DOMObjectHashTableMap.h:
55244         (WebCore::DOMObjectHashTableMap::~DOMObjectHashTableMap):
55245         (WebCore::DOMObjectHashTableMap::get):
55246         * bindings/js/JSDOMBinding.cpp:
55247         (WebCore::cacheDOMStructure):
55248         * bindings/js/JSDOMGlobalObject.cpp:
55249         (WebCore::JSDOMGlobalObject::visitChildren):
55250         * bindings/js/JSDOMGlobalObject.h:
55251         (WebCore::getDOMConstructor):
55252         * bindings/js/PageScriptDebugServer.cpp:
55253         (WebCore::PageScriptDebugServer::addListener):
55254         (WebCore::PageScriptDebugServer::removeListener):
55255         * bindings/js/ScriptCachedFrameData.cpp:
55256         (WebCore::ScriptCachedFrameData::ScriptCachedFrameData):
55257         (WebCore::ScriptCachedFrameData::restore):
55258         * bindings/js/ScriptController.cpp:
55259         (WebCore::ScriptController::~ScriptController):
55260         (WebCore::ScriptController::clearWindowShell):
55261         (WebCore::ScriptController::attachDebugger):
55262         (WebCore::ScriptController::updateDocument):
55263         (WebCore::ScriptController::createRootObject):
55264         (WebCore::ScriptController::collectIsolatedContexts):
55265         (WebCore::ScriptController::cleanupScriptObjectsForPlugin):
55266         (WebCore::ScriptController::clearScriptObjects):
55267         * bindings/js/ScriptController.h:
55268         (WebCore::ScriptController::windowShell):
55269         (WebCore::ScriptController::existingWindowShell):
55270         * bindings/js/ScriptDebugServer.cpp:
55271         (WebCore::ScriptDebugServer::setBreakpoint):
55272         (WebCore::ScriptDebugServer::removeBreakpoint):
55273         (WebCore::ScriptDebugServer::hasBreakpoint):
55274         * bindings/js/SerializedScriptValue.cpp:
55275         (WebCore::CloneSerializer::checkForDuplicate):
55276         (WebCore::CloneSerializer::dumpIfTerminal):
55277         (WebCore::CloneSerializer::write):
55278         * bindings/scripts/CodeGeneratorV8.pm:
55279         (GenerateImplementation):
55280         * bindings/scripts/test/V8/V8Float64Array.cpp:
55281         (WebCore::V8Float64Array::GetRawTemplate):
55282         (WebCore::V8Float64Array::GetTemplate):
55283         * bindings/scripts/test/V8/V8TestActiveDOMObject.cpp:
55284         (WebCore::V8TestActiveDOMObject::GetRawTemplate):
55285         (WebCore::V8TestActiveDOMObject::GetTemplate):
55286         * bindings/scripts/test/V8/V8TestCustomNamedGetter.cpp:
55287         (WebCore::V8TestCustomNamedGetter::GetRawTemplate):
55288         (WebCore::V8TestCustomNamedGetter::GetTemplate):
55289         * bindings/scripts/test/V8/V8TestEventConstructor.cpp:
55290         (WebCore::V8TestEventConstructor::GetRawTemplate):
55291         (WebCore::V8TestEventConstructor::GetTemplate):
55292         * bindings/scripts/test/V8/V8TestEventTarget.cpp:
55293         (WebCore::V8TestEventTarget::GetRawTemplate):
55294         (WebCore::V8TestEventTarget::GetTemplate):
55295         * bindings/scripts/test/V8/V8TestException.cpp:
55296         (WebCore::V8TestException::GetRawTemplate):
55297         (WebCore::V8TestException::GetTemplate):
55298         * bindings/scripts/test/V8/V8TestInterface.cpp:
55299         (WebCore::V8TestInterface::GetRawTemplate):
55300         (WebCore::V8TestInterface::GetTemplate):
55301         * bindings/scripts/test/V8/V8TestMediaQueryListListener.cpp:
55302         (WebCore::V8TestMediaQueryListListener::GetRawTemplate):
55303         (WebCore::V8TestMediaQueryListListener::GetTemplate):
55304         * bindings/scripts/test/V8/V8TestNamedConstructor.cpp:
55305         (WebCore::V8TestNamedConstructor::GetRawTemplate):
55306         (WebCore::V8TestNamedConstructor::GetTemplate):
55307         * bindings/scripts/test/V8/V8TestNode.cpp:
55308         (WebCore::V8TestNode::GetRawTemplate):
55309         (WebCore::V8TestNode::GetTemplate):
55310         * bindings/scripts/test/V8/V8TestObj.cpp:
55311         (WebCore::V8TestObj::GetRawTemplate):
55312         (WebCore::V8TestObj::GetTemplate):
55313         * bindings/scripts/test/V8/V8TestSerializedScriptValueInterface.cpp:
55314         (WebCore::V8TestSerializedScriptValueInterface::GetRawTemplate):
55315         (WebCore::V8TestSerializedScriptValueInterface::GetTemplate):
55316         * bindings/v8/DOMWrapperWorld.cpp:
55317         (WebCore::DOMWrapperWorld::deallocate):
55318         (WebCore::DOMWrapperWorld::ensureIsolatedWorld):
55319         * bindings/v8/NPV8Object.cpp:
55320         (WebCore::freeV8NPObject):
55321         (WebCore::npCreateV8ScriptObject):
55322         * bindings/v8/ScriptController.cpp:
55323         (WebCore::ScriptController::clearScriptObjects):
55324         (WebCore::ScriptController::resetIsolatedWorlds):
55325         (WebCore::ScriptController::ensureIsolatedWorldContext):
55326         (WebCore::ScriptController::existingWindowShellInternal):
55327         (WebCore::ScriptController::evaluateInIsolatedWorld):
55328         (WebCore::ScriptController::setIsolatedWorldSecurityOrigin):
55329         (WebCore::ScriptController::cleanupScriptObjectsForPlugin):
55330         (WebCore::ScriptController::collectIsolatedContexts):
55331         * bindings/v8/SerializedScriptValue.cpp:
55332         * bindings/v8/V8DOMMap.h:
55333         (WebCore::WeakReferenceMap::removeIfPresent):
55334         (WebCore::WeakReferenceMap::visit):
55335         * bindings/v8/V8PerContextData.cpp:
55336         (WebCore::V8PerContextData::dispose):
55337         * bindings/v8/npruntime.cpp:
55338         * bridge/IdentifierRep.cpp:
55339         (WebCore::IdentifierRep::get):
55340         * bridge/NP_jsobject.cpp:
55341         (ObjectMap::add):
55342         (ObjectMap::remove):
55343         * bridge/runtime_root.cpp:
55344         (JSC::Bindings::RootObject::invalidate):
55345         * css/CSSCanvasValue.cpp:
55346         (WebCore::CSSCanvasValue::canvasChanged):
55347         (WebCore::CSSCanvasValue::canvasResized):
55348         * css/CSSComputedStyleDeclaration.cpp:
55349         (WebCore::counterToCSSValue):
55350         * css/CSSCrossfadeValue.cpp:
55351         (WebCore::CSSCrossfadeValue::crossfadeChanged):
55352         * css/CSSFontFaceSource.cpp:
55353         (WebCore::CSSFontFaceSource::getFontData):
55354         * css/CSSFontSelector.cpp:
55355         (WebCore::CSSFontSelector::addFontFaceRule):
55356         (WebCore::CSSFontSelector::getFontData):
55357         * css/CSSImageGeneratorValue.cpp:
55358         (WebCore::CSSImageGeneratorValue::addClient):
55359         (WebCore::CSSImageGeneratorValue::removeClient):
55360         (WebCore::CSSImageGeneratorValue::getImage):
55361         * css/CSSSegmentedFontFace.cpp:
55362         (WebCore::CSSSegmentedFontFace::getFontData):
55363         * css/CSSSelector.cpp:
55364         (WebCore::CSSSelector::parsePseudoType):
55365         * css/CSSValuePool.cpp:
55366         (WebCore::CSSValuePool::createColorValue):
55367         (WebCore::CSSValuePool::createFontFamilyValue):
55368         (WebCore::CSSValuePool::createFontFaceValue):
55369         * css/PropertySetCSSStyleDeclaration.cpp:
55370         (WebCore::PropertySetCSSStyleDeclaration::cloneAndCacheForCSSOM):
55371         * css/RuleSet.cpp:
55372         (WebCore::reportAtomRuleMap):
55373         (WebCore::RuleSet::addToRuleSet):
55374         (WebCore::shrinkMapVectorsToFit):
55375         * css/StyleBuilder.cpp:
55376         (WebCore::ApplyPropertyCounter::applyInheritValue):
55377         (WebCore::ApplyPropertyCounter::applyValue):
55378         * css/StyleResolver.cpp:
55379         (WebCore::StyleResolver::collectFeatures):
55380         (WebCore::StyleResolver::ruleSetForScope):
55381         (WebCore::StyleResolver::appendAuthorStylesheets):
55382         (WebCore::StyleResolver::sweepMatchedPropertiesCache):
55383         (WebCore::StyleResolver::collectMatchingRulesForList):
55384         * css/StyleSheetContents.cpp:
55385         (WebCore::StyleSheetContents::parserAddNamespace):
55386         (WebCore::StyleSheetContents::determineNamespace):
55387         * dom/CheckedRadioButtons.cpp:
55388         (WebCore::CheckedRadioButtons::addButton):
55389         (WebCore::CheckedRadioButtons::removeButton):
55390         * dom/ChildListMutationScope.cpp:
55391         (WebCore::ChildListMutationAccumulator::getOrCreate):
55392         * dom/Document.cpp:
55393         (WebCore::Document::windowNamedItems):
55394         (WebCore::Document::documentNamedItems):
55395         (WebCore::Document::getCSSCanvasElement):
55396         (WebCore::Document::cachedImmutableAttributeData):
55397         (WebCore::Document::getCachedLocalizer):
55398         * dom/DocumentMarkerController.cpp:
55399         (WebCore::DocumentMarkerController::markerContainingPoint):
55400         (WebCore::DocumentMarkerController::renderedRectsForMarkers):
55401         (WebCore::DocumentMarkerController::removeMarkers):
55402         (WebCore::DocumentMarkerController::repaintMarkers):
55403         (WebCore::DocumentMarkerController::invalidateRenderedRectsForMarkersInRect):
55404         (WebCore::DocumentMarkerController::showMarkers):
55405         * dom/DocumentOrderedMap.cpp:
55406         (WebCore::DocumentOrderedMap::remove):
55407         * dom/DocumentStyleSheetCollection.cpp:
55408         (WebCore::DocumentStyleSheetCollection::pageGroupUserSheets):
55409         * dom/ElementAttributeData.cpp:
55410         (WebCore::ensureAttrListForElement):
55411         * dom/EventDispatcher.cpp:
55412         (WebCore::EventRelatedTargetAdjuster::findRelatedTarget):
55413         * dom/IdTargetObserverRegistry.cpp:
55414         (WebCore::IdTargetObserverRegistry::addObserver):
55415         (WebCore::IdTargetObserverRegistry::removeObserver):
55416         * dom/MutationObserverInterestGroup.cpp:
55417         (WebCore::MutationObserverInterestGroup::isOldValueRequested):
55418         (WebCore::MutationObserverInterestGroup::enqueueMutationRecord):
55419         * dom/Node.cpp:
55420         (WebCore::Node::dumpStatistics):
55421         (WebCore::Node::clearRareData):
55422         (WebCore::NodeListsNodeData::invalidateCaches):
55423         (WebCore::collectMatchingObserversForMutation):
55424         * dom/NodeRareData.h:
55425         (WebCore::NodeListsNodeData::addCacheWithAtomicName):
55426         (WebCore::NodeListsNodeData::addCacheWithName):
55427         (WebCore::NodeListsNodeData::addCacheWithQualifiedName):
55428         (WebCore::NodeListsNodeData::adoptTreeScope):
55429         * dom/ProcessingInstruction.cpp:
55430         (WebCore::ProcessingInstruction::checkStyleSheet):
55431         * dom/ScriptExecutionContext.cpp:
55432         (WebCore::ScriptExecutionContext::canSuspendActiveDOMObjects):
55433         (WebCore::ScriptExecutionContext::suspendActiveDOMObjects):
55434         (WebCore::ScriptExecutionContext::resumeActiveDOMObjects):
55435         (WebCore::ScriptExecutionContext::stopActiveDOMObjects):
55436         (WebCore::ScriptExecutionContext::adjustMinimumTimerInterval):
55437         * dom/SelectorQuery.cpp:
55438         (WebCore::SelectorQueryCache::add):
55439         * dom/SpaceSplitString.cpp:
55440         (WebCore::SpaceSplitStringData::create):
55441         * dom/StyledElement.cpp:
55442         (WebCore::StyledElement::updateAttributeStyle):
55443         * editing/mac/AlternativeTextUIController.mm:
55444         (WebCore::AlternativeTextUIController::AlernativeTextContextController::alternativesForContext):
55445         * html/FormController.cpp:
55446         (WebCore::SavedFormState::serializeTo):
55447         (WebCore::SavedFormState::appendControlState):
55448         (WebCore::SavedFormState::takeControlState):
55449         (WebCore::SavedFormState::getReferencedFilePaths):
55450         (WebCore::FormKeyGenerator::formKey):
55451         (WebCore::FormController::createSavedFormStateMap):
55452         (WebCore::FormController::formElementsState):
55453         (WebCore::FormController::takeStateForFormElement):
55454         (WebCore::FormController::getReferencedFilePaths):
55455         * html/HTMLCollection.cpp:
55456         (WebCore::HTMLCollectionCacheBase::append):
55457         * html/canvas/WebGLFramebuffer.cpp:
55458         (WebCore::WebGLFramebuffer::getAttachment):
55459         (WebCore::WebGLFramebuffer::removeAttachmentFromBoundFramebuffer):
55460         (WebCore::WebGLFramebuffer::checkStatus):
55461         (WebCore::WebGLFramebuffer::deleteObjectImpl):
55462         (WebCore::WebGLFramebuffer::initializeAttachments):
55463         * inspector/CodeGeneratorInspector.py:
55464         * inspector/DOMPatchSupport.cpp:
55465         (WebCore::DOMPatchSupport::diff):
55466         (WebCore::DOMPatchSupport::innerPatchChildren):
55467         (WebCore::DOMPatchSupport::removeChildAndMoveToNew):
55468         * inspector/InjectedScriptManager.cpp:
55469         (WebCore::InjectedScriptManager::injectedScriptForId):
55470         (WebCore::InjectedScriptManager::injectedScriptIdFor):
55471         (WebCore::InjectedScriptManager::discardInjectedScriptsFor):
55472         (WebCore::InjectedScriptManager::releaseObjectGroup):
55473         (WebCore::InjectedScriptManager::injectedScriptFor):
55474         * inspector/InspectorCSSAgent.cpp:
55475         (WebCore::SelectorProfile::commitSelector):
55476         (WebCore::SelectorProfile::commitSelectorTime):
55477         (WebCore::SelectorProfile::toInspectorObject):
55478         (WebCore::UpdateRegionLayoutTask::onTimer):
55479         (WebCore::InspectorCSSAgent::forcePseudoState):
55480         (WebCore::InspectorCSSAgent::asInspectorStyleSheet):
55481         (WebCore::InspectorCSSAgent::assertStyleSheetForId):
55482         (WebCore::InspectorCSSAgent::didRemoveDOMNode):
55483         (WebCore::InspectorCSSAgent::didModifyDOMAttr):
55484         (WebCore::InspectorCSSAgent::resetPseudoStates):
55485         * inspector/InspectorConsoleAgent.cpp:
55486         (WebCore::InspectorConsoleAgent::stopTiming):
55487         (WebCore::InspectorConsoleAgent::count):
55488         * inspector/InspectorDOMAgent.cpp:
55489         (WebCore::InspectorDOMAgent::nodeForId):
55490         (WebCore::InspectorDOMAgent::performSearch):
55491         (WebCore::InspectorDOMAgent::getSearchResults):
55492         * inspector/InspectorDOMDebuggerAgent.cpp:
55493         (WebCore::InspectorDOMDebuggerAgent::willSendXMLHttpRequest):
55494         * inspector/InspectorDOMStorageAgent.cpp:
55495         (WebCore::InspectorDOMStorageAgent::clearFrontend):
55496         (WebCore::InspectorDOMStorageAgent::enable):
55497         (WebCore::InspectorDOMStorageAgent::storageId):
55498         (WebCore::InspectorDOMStorageAgent::getDOMStorageResourceForId):
55499         (WebCore::InspectorDOMStorageAgent::didUseDOMStorage):
55500         (WebCore::InspectorDOMStorageAgent::memoryBytesUsedByStorageCache):
55501         * inspector/InspectorDatabaseAgent.cpp:
55502         (WebCore::InspectorDatabaseAgent::enable):
55503         (WebCore::InspectorDatabaseAgent::databaseId):
55504         (WebCore::InspectorDatabaseAgent::findByFileName):
55505         (WebCore::InspectorDatabaseAgent::databaseForId):
55506         * inspector/InspectorDebuggerAgent.cpp:
55507         (WebCore::InspectorDebuggerAgent::setBreakpointByUrl):
55508         (WebCore::InspectorDebuggerAgent::removeBreakpoint):
55509         (WebCore::InspectorDebuggerAgent::resolveBreakpoint):
55510         (WebCore::InspectorDebuggerAgent::searchInContent):
55511         (WebCore::InspectorDebuggerAgent::getScriptSource):
55512         (WebCore::InspectorDebuggerAgent::didParseSource):
55513         * inspector/InspectorIndexedDBAgent.cpp:
55514         (WebCore):
55515         * inspector/InspectorMemoryAgent.cpp:
55516         (WebCore):
55517         * inspector/InspectorPageAgent.cpp:
55518         (WebCore::cachedResourcesForFrame):
55519         (WebCore::InspectorPageAgent::didClearWindowObjectInWorld):
55520         (WebCore::InspectorPageAgent::frameDetached):
55521         * inspector/InspectorProfilerAgent.cpp:
55522         (WebCore::InspectorProfilerAgent::getProfileHeaders):
55523         (WebCore):
55524         (WebCore::InspectorProfilerAgent::getProfile):
55525         * inspector/InspectorResourceAgent.cpp:
55526         (WebCore::buildObjectForHeaders):
55527         (WebCore::InspectorResourceAgent::willSendRequest):
55528         (WebCore::InspectorResourceAgent::documentThreadableLoaderStartedLoadingForClient):
55529         (WebCore::InspectorResourceAgent::willLoadXHR):
55530         (WebCore::InspectorResourceAgent::replayXHR):
55531         * inspector/InspectorState.cpp:
55532         (WebCore::InspectorState::getBoolean):
55533         (WebCore::InspectorState::getString):
55534         (WebCore::InspectorState::getLong):
55535         (WebCore::InspectorState::getDouble):
55536         (WebCore::InspectorState::getObject):
55537         * inspector/InspectorStyleSheet.cpp:
55538         (WebCore::InspectorStyle::styleWithProperties):
55539         (WebCore::InspectorStyleSheet::inspectorStyleForId):
55540         * inspector/InspectorValues.cpp:
55541         (WebCore::InspectorObjectBase::get):
55542         (WebCore::InspectorObjectBase::writeJSON):
55543         * inspector/InspectorWorkerAgent.cpp:
55544         (WebCore::InspectorWorkerAgent::workerContextTerminated):
55545         (WebCore::InspectorWorkerAgent::createWorkerFrontendChannelsForExistingWorkers):
55546         (WebCore::InspectorWorkerAgent::destroyWorkerFrontendChannels):
55547         * inspector/MemoryInstrumentationImpl.cpp:
55548         (WebCore::MemoryInstrumentationClientImpl::countObjectSize):
55549         * inspector/MemoryInstrumentationImpl.h:
55550         (WebCore::MemoryInstrumentationClientImpl::totalSize):
55551         (WebCore::MemoryInstrumentationClientImpl::reportedSizeForAllTypes):
55552         * inspector/NetworkResourcesData.cpp:
55553         (WebCore::NetworkResourcesData::setXHRReplayData):
55554         (WebCore::NetworkResourcesData::removeCachedResource):
55555         (WebCore::NetworkResourcesData::clear):
55556         * loader/CrossOriginAccessControl.cpp:
55557         (WebCore::isSimpleCrossOriginAccessRequest):
55558         (WebCore::createAccessControlPreflightRequest):
55559         * loader/CrossOriginPreflightResultCache.cpp:
55560         (WebCore::CrossOriginPreflightResultCacheItem::allowsCrossOriginHeaders):
55561         (WebCore::CrossOriginPreflightResultCache::canSkipPreflight):
55562         * loader/DocumentLoader.cpp:
55563         (WebCore::DocumentLoader::getSubresources):
55564         (WebCore::DocumentLoader::substituteResourceDeliveryTimerFired):
55565         * loader/MainResourceLoader.cpp:
55566         (WebCore::MainResourceLoader::didReceiveResponse):
55567         * loader/ResourceLoadScheduler.cpp:
55568         (WebCore::ResourceLoadScheduler::servePendingRequests):
55569         * loader/appcache/ApplicationCache.cpp:
55570         (WebCore::ApplicationCache::removeResource):
55571         (WebCore::ApplicationCache::clearStorageID):
55572         (WebCore::ApplicationCache::dump):
55573         * loader/appcache/ApplicationCacheGroup.cpp:
55574         (WebCore::ApplicationCacheGroup::didFinishLoadingManifest):
55575         (WebCore::ApplicationCacheGroup::startLoadingEntry):
55576         (WebCore::ApplicationCacheGroup::addEntry):
55577         * loader/appcache/ApplicationCacheHost.cpp:
55578         (WebCore::ApplicationCacheHost::fillResourceList):
55579         * loader/appcache/ApplicationCacheResource.cpp:
55580         (WebCore::ApplicationCacheResource::estimatedSizeInStorage):
55581         * loader/appcache/ApplicationCacheStorage.cpp:
55582         (WebCore::ApplicationCacheStorage::findOrCreateCacheGroup):
55583         (WebCore::ApplicationCacheStorage::cacheGroupForURL):
55584         (WebCore::ApplicationCacheStorage::fallbackCacheGroupForURL):
55585         (WebCore::ApplicationCacheStorage::store):
55586         (WebCore::ApplicationCacheStorage::empty):
55587         (WebCore::ApplicationCacheStorage::storeCopyOfCache):
55588         * loader/archive/ArchiveFactory.cpp:
55589         (WebCore::ArchiveFactory::registerKnownArchiveMIMETypes):
55590         * loader/cache/CachedRawResource.cpp:
55591         (WebCore::CachedRawResource::canReuse):
55592         * loader/cache/CachedResource.cpp:
55593         (WebCore::CachedResource::switchClientsToRevalidatedResource):
55594         (WebCore::CachedResource::updateResponseAfterRevalidation):
55595         * loader/cache/CachedResourceClientWalker.h:
55596         (WebCore::CachedResourceClientWalker::CachedResourceClientWalker):
55597         * loader/cache/CachedResourceLoader.cpp:
55598         (WebCore::CachedResourceLoader::~CachedResourceLoader):
55599         (WebCore::CachedResourceLoader::requestResource):
55600         (WebCore::CachedResourceLoader::reloadImagesIfNotDeferred):
55601         (WebCore::CachedResourceLoader::removeCachedResource):
55602         (WebCore::CachedResourceLoader::garbageCollectDocumentResources):
55603         * loader/cache/MemoryCache.cpp:
55604         (WebCore::MemoryCache::removeResourcesWithOrigin):
55605         (WebCore::MemoryCache::getOriginsWithCache):
55606         (WebCore::MemoryCache::getStatistics):
55607         (WebCore::MemoryCache::setDisabled):
55608         * loader/icon/IconDatabase.cpp:
55609         (WebCore::IconDatabase::removeAllIcons):
55610         (WebCore::IconDatabase::iconRecordCountWithData):
55611         (WebCore::IconDatabase::performPendingRetainAndReleaseOperations):
55612         * page/DOMWindow.cpp:
55613         (WebCore::DOMWindow::dispatchAllPendingBeforeUnloadEvents):
55614         (WebCore::DOMWindow::dispatchAllPendingUnloadEvents):
55615         * page/EventHandler.cpp:
55616         (WebCore::EventHandler::handleTouchEvent):
55617         * page/Frame.cpp:
55618         (WebCore::Frame::injectUserScripts):
55619         * page/PageGroup.cpp:
55620         (WebCore::PageGroup::pageGroup):
55621         (WebCore::PageGroup::closeLocalStorage):
55622         (WebCore::PageGroup::clearLocalStorageForAllOrigins):
55623         (WebCore::PageGroup::clearLocalStorageForOrigin):
55624         (WebCore::PageGroup::syncLocalStorage):
55625         (WebCore::PageGroup::addUserScriptToWorld):
55626         (WebCore::PageGroup::addUserStyleSheetToWorld):
55627         (WebCore::PageGroup::removeUserScriptFromWorld):
55628         (WebCore::PageGroup::removeUserStyleSheetFromWorld):
55629         * page/PageSerializer.cpp:
55630         (WebCore::PageSerializer::urlForBlankFrame):
55631         * page/SecurityPolicy.cpp:
55632         (WebCore::SecurityPolicy::addOriginAccessWhitelistEntry):
55633         (WebCore::SecurityPolicy::removeOriginAccessWhitelistEntry):
55634         * page/Settings.cpp:
55635         (WebCore::setGenericFontFamilyMap):
55636         (WebCore::getGenericFontFamilyForScript):
55637         * page/SpeechInput.cpp:
55638         (WebCore::SpeechInput::registerListener):
55639         * page/TouchDisambiguation.cpp:
55640         (WebCore::findGoodTouchTargets):
55641         * page/WindowFeatures.cpp:
55642         (WebCore::WindowFeatures::boolFeature):
55643         (WebCore::WindowFeatures::floatFeature):
55644         * page/animation/AnimationController.cpp:
55645         (WebCore::AnimationControllerPrivate::updateAnimations):
55646         (WebCore::AnimationControllerPrivate::suspendAnimationsForDocument):
55647         (WebCore::AnimationControllerPrivate::resumeAnimationsForDocument):
55648         (WebCore::AnimationControllerPrivate::numberOfActiveAnimations):
55649         * page/animation/CompositeAnimation.cpp:
55650         (WebCore::CompositeAnimation::clearRenderer):
55651         (WebCore::CompositeAnimation::updateTransitions):
55652         (WebCore::CompositeAnimation::updateKeyframeAnimations):
55653         (WebCore::CompositeAnimation::animate):
55654         (WebCore::CompositeAnimation::getAnimatedStyle):
55655         (WebCore::CompositeAnimation::setAnimating):
55656         (WebCore::CompositeAnimation::timeToNextService):
55657         (WebCore::CompositeAnimation::getAnimationForProperty):
55658         (WebCore::CompositeAnimation::suspendAnimations):
55659         (WebCore::CompositeAnimation::resumeAnimations):
55660         (WebCore::CompositeAnimation::overrideImplicitAnimations):
55661         (WebCore::CompositeAnimation::resumeOverriddenImplicitAnimations):
55662         (WebCore::CompositeAnimation::isAnimatingProperty):
55663         (WebCore::CompositeAnimation::numberOfActiveAnimations):
55664         * platform/Language.cpp:
55665         (WebCore::languageDidChange):
55666         * platform/MIMETypeRegistry.cpp:
55667         (WebCore::MIMETypeRegistry::getNormalizedMIMEType):
55668         * platform/audio/HRTFElevation.cpp:
55669         (WebCore::getConcatenatedImpulseResponsesForSubject):
55670         * platform/blackberry/CookieManager.cpp:
55671         (WebCore::CookieManager::generateHtmlFragmentForCookies):
55672         (WebCore::CookieManager::removeAllCookies):
55673         * platform/blackberry/CookieMap.cpp:
55674         (WebCore::CookieMap::removeOldestCookie):
55675         (WebCore::CookieMap::getAllChildCookies):
55676         * platform/cf/BinaryPropertyList.cpp:
55677         (WebCore::BinaryPropertyListPlan::writeIntegerArray):
55678         * platform/chromium/support/WebHTTPLoadInfo.cpp:
55679         (WebKit::addHeader):
55680         * platform/chromium/support/WebURLRequest.cpp:
55681         (WebKit::WebURLRequest::visitHTTPHeaderFields):
55682         * platform/chromium/support/WebURLResponse.cpp:
55683         (WebKit::WebURLResponse::addHTTPHeaderField):
55684         (WebKit::WebURLResponse::visitHTTPHeaderFields):
55685         * platform/graphics/DisplayRefreshMonitor.cpp:
55686         (WebCore::DisplayRefreshMonitorManager::ensureMonitorForClient):
55687         (WebCore::DisplayRefreshMonitorManager::unregisterClient):
55688         * platform/graphics/FontCache.cpp:
55689         (WebCore::FontCache::getCachedFontPlatformData):
55690         (WebCore::FontCache::getVerticalData):
55691         (WebCore::FontCache::getCachedFontData):
55692         (WebCore::FontCache::releaseFontData):
55693         (WebCore::FontCache::purgeInactiveFontData):
55694         * platform/graphics/GlyphPageTreeNode.cpp:
55695         (WebCore::GlyphPageTreeNode::treeGlyphPageCount):
55696         (WebCore::GlyphPageTreeNode::pageCount):
55697         (WebCore::GlyphPageTreeNode::pruneTreeCustomFontData):
55698         (WebCore::GlyphPageTreeNode::pruneTreeFontData):
55699         (WebCore::GlyphPageTreeNode::pruneCustomFontData):
55700         (WebCore::GlyphPageTreeNode::pruneFontData):
55701         (WebCore::GlyphPageTreeNode::showSubtree):
55702         (showGlyphPageTrees):
55703         * platform/graphics/TiledBackingStore.cpp:
55704         (WebCore::TiledBackingStore::updateTileBuffers):
55705         (WebCore::TiledBackingStore::resizeEdgeTiles):
55706         (WebCore::TiledBackingStore::setKeepRect):
55707         * platform/graphics/avfoundation/cf/MediaPlayerPrivateAVFoundationCF.cpp:
55708         (WebCore::AVFWrapper::avfWrapperForCallbackContext):
55709         * platform/graphics/blackberry/LayerTiler.cpp:
55710         (WebCore::LayerTiler::layerVisibilityChanged):
55711         (WebCore::LayerTiler::uploadTexturesIfNeeded):
55712         (WebCore::LayerTiler::addTileJob):
55713         (WebCore::LayerTiler::deleteTextures):
55714         (WebCore::LayerTiler::pruneTextures):
55715         (WebCore::LayerTiler::bindContentsTexture):
55716         * platform/graphics/blackberry/TextureCacheCompositingThread.cpp:
55717         (WebCore::TextureCacheCompositingThread::textureForTiledContents):
55718         (WebCore::TextureCacheCompositingThread::textureForColor):
55719         * platform/graphics/ca/GraphicsLayerCA.cpp:
55720         (WebCore::GraphicsLayerCA::moveOrCopyAnimations):
55721         (WebCore::GraphicsLayerCA::pauseAnimation):
55722         (WebCore::GraphicsLayerCA::layerDidDisplay):
55723         (WebCore::GraphicsLayerCA::updateGeometry):
55724         (WebCore::GraphicsLayerCA::updateTransform):
55725         (WebCore::GraphicsLayerCA::updateChildrenTransform):
55726         (WebCore::GraphicsLayerCA::updateMasksToBounds):
55727         (WebCore::GraphicsLayerCA::updateContentsVisibility):
55728         (WebCore::GraphicsLayerCA::updateContentsOpaque):
55729         (WebCore::GraphicsLayerCA::updateBackfaceVisibility):
55730         (WebCore::GraphicsLayerCA::updateFilters):
55731         (WebCore::GraphicsLayerCA::ensureStructuralLayer):
55732         (WebCore::GraphicsLayerCA::updateLayerDrawsContent):
55733         (WebCore::GraphicsLayerCA::updateContentsImage):
55734         (WebCore::GraphicsLayerCA::updateContentsRect):
55735         (WebCore::GraphicsLayerCA::updateMaskLayer):
55736         (WebCore::GraphicsLayerCA::updateLayerAnimations):
55737         (WebCore::GraphicsLayerCA::setAnimationOnLayer):
55738         (WebCore::GraphicsLayerCA::removeCAAnimationFromLayer):
55739         (WebCore::GraphicsLayerCA::pauseCAAnimationOnLayer):
55740         (WebCore::GraphicsLayerCA::suspendAnimations):
55741         (WebCore::GraphicsLayerCA::resumeAnimations):
55742         (WebCore::GraphicsLayerCA::findOrMakeClone):
55743         (WebCore::GraphicsLayerCA::setOpacityInternal):
55744         (WebCore::GraphicsLayerCA::updateOpacityOnLayer):
55745         * platform/graphics/ca/mac/TileCache.mm:
55746         (WebCore::TileCache::~TileCache):
55747         (WebCore::TileCache::setNeedsDisplay):
55748         (WebCore::TileCache::setScale):
55749         (WebCore::TileCache::setAcceleratesDrawing):
55750         (WebCore::TileCache::setTileDebugBorderWidth):
55751         (WebCore::TileCache::setTileDebugBorderColor):
55752         (WebCore::TileCache::revalidateTiles):
55753         * platform/graphics/ca/win/PlatformCALayerWin.cpp:
55754         (PlatformCALayer::animationStarted):
55755         (resubmitAllAnimations):
55756         (PlatformCALayer::animationForKey):
55757         * platform/graphics/chromium/FontCacheChromiumWin.cpp:
55758         (WebCore::LookupAltName):
55759         (WebCore::fontContainsCharacter):
55760         * platform/graphics/chromium/FontUtilsChromiumWin.cpp:
55761         (WebCore::getDerivedFontData):
55762         * platform/graphics/filters/CustomFilterGlobalContext.cpp:
55763         (WebCore::CustomFilterGlobalContext::~CustomFilterGlobalContext):
55764         (WebCore::CustomFilterGlobalContext::getValidatedProgram):
55765         (WebCore::CustomFilterGlobalContext::removeValidatedProgram):
55766         * platform/graphics/filters/CustomFilterProgram.cpp:
55767         (WebCore::CustomFilterProgram::notifyClients):
55768         * platform/graphics/harfbuzz/HarfBuzzSkia.cpp:
55769         (WebCore::getCachedHarfbuzzFace):
55770         (WebCore::releaseCachedHarfbuzzFace):
55771         * platform/graphics/harfbuzz/ng/HarfBuzzNGFace.cpp:
55772         (WebCore::HarfBuzzNGFace::HarfBuzzNGFace):
55773         (WebCore::HarfBuzzNGFace::~HarfBuzzNGFace):
55774         * platform/graphics/mac/SimpleFontDataCoreText.cpp:
55775         (WebCore::SimpleFontData::getCFStringAttributes):
55776         * platform/graphics/mac/SimpleFontDataMac.mm:
55777         (WebCore::SimpleFontData::canRenderCombiningCharacterSequence):
55778         * platform/graphics/opengl/Extensions3DOpenGLCommon.cpp:
55779         (WebCore::Extensions3DOpenGLCommon::getTranslatedShaderSourceANGLE):
55780         * platform/graphics/opengl/GraphicsContext3DOpenGLCommon.cpp:
55781         (WebCore::GraphicsContext3D::compileShader):
55782         (WebCore::GraphicsContext3D::mappedSymbolName):
55783         (WebCore::GraphicsContext3D::getShaderiv):
55784         (WebCore::GraphicsContext3D::getShaderInfoLog):
55785         (WebCore::GraphicsContext3D::getShaderSource):
55786         * platform/graphics/openvg/EGLDisplayOpenVG.cpp:
55787         (WebCore::EGLDisplayOpenVG::~EGLDisplayOpenVG):
55788         (WebCore::EGLDisplayOpenVG::destroySurface):
55789         (WebCore::EGLDisplayOpenVG::contextForSurface):
55790         * platform/graphics/texmap/TextureMapperGL.cpp:
55791         (WebCore::TextureMapperGLData::SharedGLData::currentSharedGLData):
55792         (WebCore::TextureMapperGLData::SharedGLData::~SharedGLData):
55793         * platform/graphics/texmap/TextureMapperShaderManager.cpp:
55794         (WebCore::TextureMapperShaderManager::getShaderProgram):
55795         (WebCore::TextureMapperShaderManager::getShaderForFilter):
55796         * platform/graphics/wince/FontPlatformData.cpp:
55797         (WebCore::FixedSizeFontData::create):
55798         * platform/gtk/DataObjectGtk.cpp:
55799         (WebCore::DataObjectGtk::forClipboard):
55800         * platform/gtk/GtkDragAndDropHelper.cpp:
55801         (WebCore::GtkDragAndDropHelper::handleGetDragData):
55802         (WebCore::GtkDragAndDropHelper::handleDragLeave):
55803         (WebCore::GtkDragAndDropHelper::handleDragMotion):
55804         (WebCore::GtkDragAndDropHelper::handleDragDataReceived):
55805         (WebCore::GtkDragAndDropHelper::handleDragDrop):
55806         * platform/gtk/RedirectedXCompositeWindow.cpp:
55807         (WebCore::filterXDamageEvent):
55808         * platform/gtk/RenderThemeGtk3.cpp:
55809         (WebCore::gtkStyleChangedCallback):
55810         (WebCore::getStyleContext):
55811         * platform/mac/ScrollbarThemeMac.mm:
55812         (+[WebScrollbarPrefsObserver appearancePrefsChanged:]):
55813         * platform/network/CredentialStorage.cpp:
55814         (WebCore::CredentialStorage::set):
55815         (WebCore::CredentialStorage::get):
55816         * platform/network/HTTPHeaderMap.cpp:
55817         (WebCore::HTTPHeaderMap::copyData):
55818         (WebCore::HTTPHeaderMap::get):
55819         * platform/network/MIMEHeader.cpp:
55820         (WebCore::MIMEHeader::parseHeader):
55821         * platform/network/ResourceHandle.cpp:
55822         (WebCore::ResourceHandle::create):
55823         * platform/network/ResourceRequestBase.cpp:
55824         (WebCore::ResourceRequestBase::addHTTPHeaderField):
55825         (WebCore::ResourceRequestBase::addHTTPHeaderFields):
55826         * platform/network/blackberry/ResourceRequestBlackBerry.cpp:
55827         (WebCore::ResourceRequest::targetTypeFromMimeType):
55828         (WebCore::ResourceRequest::initializePlatformRequest):
55829         * platform/network/cf/ResourceHandleCFNet.cpp:
55830         (WebCore::makeFinalRequest):
55831         * platform/network/cf/ResourceRequestCFNet.cpp:
55832         (WebCore::setHeaderFields):
55833         * platform/network/curl/ResourceHandleManager.cpp:
55834         (WebCore::ResourceHandleManager::initializeHandle):
55835         * platform/network/mac/ResourceRequestMac.mm:
55836         (WebCore::ResourceRequest::doUpdatePlatformRequest):
55837         * platform/network/qt/ResourceRequestQt.cpp:
55838         (WebCore::ResourceRequest::toNetworkRequest):
55839         * platform/network/soup/ResourceHandleSoup.cpp:
55840         (WebCore::sendRequestCallback):
55841         (WebCore::ResourceHandle::setClientCertificate):
55842         * platform/network/soup/ResourceRequestSoup.cpp:
55843         (WebCore::ResourceRequest::updateSoupMessage):
55844         (WebCore::ResourceRequest::toSoupMessage):
55845         * platform/network/soup/ResourceResponseSoup.cpp:
55846         (WebCore::ResourceResponse::toSoupMessage):
55847         * platform/network/win/ResourceHandleWin.cpp:
55848         (WebCore::ResourceHandle::start):
55849         * platform/qt/RunLoopQt.cpp:
55850         (WebCore::RunLoop::TimerBase::timerFired):
55851         * platform/text/LocaleToScriptMappingDefault.cpp:
55852         (WebCore::scriptNameToCode):
55853         (WebCore::localeToScriptCodeForFontSelection):
55854         * platform/text/TextEncodingRegistry.cpp:
55855         (WebCore::pruneBlacklistedCodecs):
55856         (WebCore::dumpTextEncodingNameMap):
55857         * platform/text/transcoder/FontTranscoder.cpp:
55858         (WebCore::FontTranscoder::converterType):
55859         * platform/text/win/TextCodecWin.cpp:
55860         (WebCore::LanguageManager::LanguageManager):
55861         (WebCore::getCodePage):
55862         (WebCore::TextCodecWin::registerExtendedEncodingNames):
55863         (WebCore::TextCodecWin::registerExtendedCodecs):
55864         (WebCore::TextCodecWin::enumerateSupportedEncodings):
55865         * platform/win/ClipboardUtilitiesWin.cpp:
55866         (WebCore::getDataMapItem):
55867         (WebCore::getClipboardData):
55868         (WebCore::setClipboardData):
55869         * platform/win/ClipboardWin.cpp:
55870         (WebCore::ClipboardWin::types):
55871         * platform/win/FileSystemWin.cpp:
55872         (WebCore::cachedStorageDirectory):
55873         * platform/win/RunLoopWin.cpp:
55874         (WebCore::RunLoop::TimerBase::timerFired):
55875         * platform/win/WCDataObject.cpp:
55876         (WebCore::WCDataObject::createInstance):
55877         * platform/wince/MIMETypeRegistryWinCE.cpp:
55878         (WebCore::MIMETypeRegistry::getPreferredExtensionForMIMEType):
55879         * platform/wx/ContextMenuWx.cpp:
55880         (WebCore::ContextMenu::appendItem):
55881         * plugins/PluginDatabase.cpp:
55882         (WebCore::PluginDatabase::refresh):
55883         (WebCore::PluginDatabase::MIMETypeForExtension):
55884         (WebCore::PluginDatabase::remove):
55885         * plugins/PluginMainThreadScheduler.cpp:
55886         (WebCore::PluginMainThreadScheduler::scheduleCall):
55887         (WebCore::PluginMainThreadScheduler::dispatchCalls):
55888         * plugins/PluginStream.cpp:
55889         (WebCore::PluginStream::startStream):
55890         * plugins/blackberry/PluginDataBlackBerry.cpp:
55891         (WebCore::PluginData::initPlugins):
55892         * plugins/wx/PluginDataWx.cpp:
55893         (WebCore::PluginData::initPlugins):
55894         * rendering/ExclusionShapeInsideInfo.cpp:
55895         (WebCore::ExclusionShapeInsideInfo::ensureExclusionShapeInsideInfoForRenderBlock):
55896         * rendering/FlowThreadController.cpp:
55897         (WebCore::FlowThreadController::unregisterNamedFlowContentNode):
55898         * rendering/InlineFlowBox.cpp:
55899         (WebCore::InlineFlowBox::requiresIdeographicBaseline):
55900         (WebCore::InlineFlowBox::addTextBoxVisualOverflow):
55901         * rendering/RenderBlock.cpp:
55902         (WebCore::RenderBlock::clearFloats):
55903         * rendering/RenderBlockLineLayout.cpp:
55904         (WebCore::setLogicalWidthForTextRun):
55905         * rendering/RenderBoxModelObject.cpp:
55906         (WebCore::ImageQualityController::highQualityRepaintTimerFired):
55907         (WebCore::ImageQualityController::shouldPaintAtLowQuality):
55908         * rendering/RenderCounter.cpp:
55909         (WebCore::RenderCounter::destroyCounterNodes):
55910         (WebCore::RenderCounter::destroyCounterNode):
55911         (WebCore::updateCounters):
55912         (WebCore::RenderCounter::rendererStyleChanged):
55913         * rendering/RenderFlowThread.cpp:
55914         (WebCore::RenderFlowThread::setRegionRangeForBox):
55915         (WebCore::RenderFlowThread::getRegionRangeForBox):
55916         * rendering/RenderLayer.cpp:
55917         (WebCore::RenderLayer::paint):
55918         (WebCore::performOverlapTests):
55919         * rendering/RenderLayerFilterInfo.cpp:
55920         (WebCore::RenderLayerFilterInfo::filterInfoForRenderLayer):
55921         (WebCore::RenderLayerFilterInfo::createFilterInfoForRenderLayerIfNeeded):
55922         * rendering/RenderNamedFlowThread.cpp:
55923         (WebCore::RenderNamedFlowThread::dependsOn):
55924         (WebCore::RenderNamedFlowThread::pushDependencies):
55925         * rendering/RenderRegion.cpp:
55926         (WebCore::RenderRegion::setRenderBoxRegionInfo):
55927         (WebCore::RenderRegion::setRegionObjectsRegionStyle):
55928         (WebCore::RenderRegion::restoreRegionObjectsOriginalStyle):
55929         (WebCore::RenderRegion::computeChildrenStyleInRegion):
55930         * rendering/RenderTableSection.cpp:
55931         (WebCore::RenderTableSection::cachedCollapsedBorder):
55932         * rendering/RenderThemeMac.mm:
55933         (WebCore::RenderThemeMac::systemColor):
55934         * rendering/RenderView.cpp:
55935         (WebCore::RenderView::selectionBounds):
55936         (WebCore::RenderView::setSelection):
55937         * rendering/RenderWidget.cpp:
55938         (WebCore::WidgetHierarchyUpdatesSuspensionScope::moveWidgets):
55939         * rendering/RootInlineBox.cpp:
55940         (WebCore::RootInlineBox::ascentAndDescentForBox):
55941         * rendering/VerticalPositionCache.h:
55942         (WebCore::VerticalPositionCache::get):
55943         * rendering/svg/RenderSVGInlineText.cpp:
55944         (WebCore::RenderSVGInlineText::characterStartsNewTextChunk):
55945         * rendering/svg/RenderSVGResourceFilter.cpp:
55946         (WebCore::RenderSVGResourceFilter::primitiveAttributeChanged):
55947         * rendering/svg/RenderSVGResourceGradient.cpp:
55948         (WebCore::RenderSVGResourceGradient::applyResource):
55949         * rendering/svg/RenderSVGResourcePattern.cpp:
55950         (WebCore::RenderSVGResourcePattern::applyResource):
55951         * rendering/svg/SVGResourcesCache.cpp:
55952         (WebCore::SVGResourcesCache::resourceDestroyed):
55953         * rendering/svg/SVGRootInlineBox.cpp:
55954         (WebCore::swapItemsInLayoutAttributes):
55955         * rendering/svg/SVGTextLayoutAttributes.cpp:
55956         (WebCore::SVGTextLayoutAttributes::dump):
55957         * rendering/svg/SVGTextLayoutAttributesBuilder.cpp:
55958         (WebCore::SVGTextLayoutAttributesBuilder::buildCharacterDataMap):
55959         (WebCore::SVGTextLayoutAttributesBuilder::fillCharacterDataMap):
55960         * rendering/svg/SVGTextLayoutEngine.cpp:
55961         (WebCore::SVGTextLayoutEngine::layoutTextOnLineOrPath):
55962         * rendering/svg/SVGTextMetricsBuilder.cpp:
55963         (WebCore::SVGTextMetricsBuilder::measureTextRenderer):
55964         * storage/StorageAreaSync.cpp:
55965         (WebCore::StorageAreaSync::syncTimerFired):
55966         (WebCore::StorageAreaSync::performImport):
55967         (WebCore::StorageAreaSync::sync):
55968         * storage/StorageMap.cpp:
55969         (WebCore::StorageMap::key):
55970         (WebCore::StorageMap::setItem):
55971         * storage/StorageNamespaceImpl.cpp:
55972         (WebCore::StorageNamespaceImpl::localStorageNamespace):
55973         (WebCore::StorageNamespaceImpl::copy):
55974         (WebCore::StorageNamespaceImpl::close):
55975         (WebCore::StorageNamespaceImpl::clearAllOriginsForDeletion):
55976         (WebCore::StorageNamespaceImpl::sync):
55977         * svg/SVGDocumentExtensions.cpp:
55978         (WebCore::SVGDocumentExtensions::removeAnimationElementFromTarget):
55979         (WebCore::SVGDocumentExtensions::removeAllAnimationElementsFromTarget):
55980         (WebCore::SVGDocumentExtensions::addPendingResource):
55981         (WebCore::SVGDocumentExtensions::isElementPendingResources):
55982         (WebCore::SVGDocumentExtensions::removeElementFromPendingResources):
55983         (WebCore::SVGDocumentExtensions::setOfElementsReferencingTarget):
55984         (WebCore::SVGDocumentExtensions::removeAllTargetReferencesForElement):
55985         (WebCore::SVGDocumentExtensions::removeAllElementReferencesForTarget):
55986         * svg/SVGElement.cpp:
55987         (WebCore::SVGElement::~SVGElement):
55988         * svg/animation/SMILTimeContainer.cpp:
55989         (WebCore::SMILTimeContainer::setElapsed):
55990         (WebCore::SMILTimeContainer::updateAnimations):
55991         * svg/graphics/SVGImageCache.cpp:
55992         (WebCore::SVGImageCache::~SVGImageCache):
55993         (WebCore::SVGImageCache::removeClientFromCache):
55994         (WebCore::SVGImageCache::requestedSizeAndScales):
55995         (WebCore::SVGImageCache::imageContentChanged):
55996         (WebCore::SVGImageCache::redraw):
55997         (WebCore::SVGImageCache::lookupOrCreateBitmapImageForRenderer):
55998         * svg/graphics/filters/SVGFilterBuilder.h:
55999         (WebCore::SVGFilterBuilder::effectReferences):
56000         (WebCore::SVGFilterBuilder::addBuiltinEffects):
56001         * svg/properties/SVGAnimatedProperty.h:
56002         (WebCore::SVGAnimatedProperty::~SVGAnimatedProperty):
56003         * svg/properties/SVGAttributeToPropertyMap.cpp:
56004         (WebCore::SVGAttributeToPropertyMap::addProperties):
56005         (WebCore::SVGAttributeToPropertyMap::synchronizeProperties):
56006         * workers/WorkerContext.cpp:
56007         (WebCore::WorkerContext::hasPendingActivity):
56008         * workers/WorkerEventQueue.cpp:
56009         (WebCore::WorkerEventQueue::close):
56010         * xml/XMLHttpRequest.cpp:
56011         (WebCore::XMLHttpRequest::setRequestHeaderInternal):
56012         (WebCore::XMLHttpRequest::getAllResponseHeaders):
56013         * xml/XPathFunctions.cpp:
56014         (WebCore::XPath::createFunction):
56015         * xml/XPathParser.cpp:
56016         (isAxisName):
56017         * xml/XSLTProcessorLibxslt.cpp:
56018         (WebCore::xsltParamArrayFromParameterMap):
56019         * xml/XSLTProcessorQt.cpp:
56020         (WebCore::XSLTProcessor::transformToString):
56021
56022 2012-10-07  Geoffrey Garen  <ggaren@apple.com>
56023
56024         REGRESSION (r130584): Crashes in JSC::MarkedAllocator::allocateSlowCase, failing fast/dom/gc-dom-tree-lifetime.html
56025         https://bugs.webkit.org/show_bug.cgi?id=98612
56026
56027         Reviewed by Darin Adler.
56028
56029         Since DOM modification can happen outside of JS, calls into JS due to
56030         DOM modification need to take the JS lock.
56031
56032         * bindings/js/JSNodeCustom.cpp:
56033         (WebCore::willCreatePossiblyOrphanedTreeByRemovalSlowCase): Take the JS
56034         lock before doing a JS allocation, since this may be a JS entrypoint.
56035
56036         * bindings/js/JSNodeCustom.h:
56037         (WebCore::willCreatePossiblyOrphanedTreeByRemoval): Split out a slow case
56038         to help the inliner.
56039
56040 2012-10-07  Nick Carter  <nick@chromium.org>
56041
56042         [chromium] Crash in WebCore::GraphicsLayerChromium::setContentsToImage
56043         https://bugs.webkit.org/show_bug.cgi?id=98456
56044
56045         Reviewed by James Robinson.
56046
56047         Handle null return of nativeImageForCurrentFrame.
56048
56049         Test: compositing/images/truncated-direct-png-image.html
56050
56051         * platform/graphics/chromium/GraphicsLayerChromium.cpp:
56052         (WebCore::GraphicsLayerChromium::setContentsToImage):
56053
56054 2012-10-07  Benjamin Poulain  <benjamin@webkit.org>
56055
56056         WTFURL: implement URL port removal for HTMLAnchorElement
56057         https://bugs.webkit.org/show_bug.cgi?id=98604
56058
56059         Reviewed by Adam Barth.
56060
56061         * platform/KURLWTFURL.cpp:
56062         (WebCore::KURL::hasPort):
56063         (WebCore::KURL::removePort):
56064         (WebCore::KURL::isHierarchical):
56065         Implement those methods to pass the port removal test of HTMLAnchorElement.
56066
56067 2012-10-05  Dirk Schulze  <krit@webkit.org>
56068
56069         SVG radialGradient should support 'fr' for focal radius (just like Canvas)
56070         https://bugs.webkit.org/show_bug.cgi?id=97986
56071
56072         Reviewed by Daniel Bates.
56073
56074         Update SVGRadialGradient to the changed behavior in SVG2: http://www.w3.org/TR/SVG2/pservers.html#RadialGradients
56075         SVG2 adds the focal radius for radial gradients. Color stops will start from the edge of
56076         the focal radius.
56077         The new specification does not limit the focal point to be inside the radial gradients radius.
56078         This makes SVGRadialGradient consistent with the radial gradient on Canvas.
56079
56080         Test: svg/custom/radialGradient-focal-radius.svg
56081
56082         * rendering/svg/RenderSVGResourceRadialGradient.cpp:
56083             Remove checks for position of focal point. The focal point
56084             can be placed every where outside the radius of the gradient now.
56085         (WebCore::RenderSVGResourceRadialGradient::focalRadius):
56086             Add new method to get the focal radius from SVGRadialGradientElement.
56087         (WebCore::RenderSVGResourceRadialGradient::buildGradient):
56088         * rendering/svg/RenderSVGResourceRadialGradient.h:
56089         (RenderSVGResourceRadialGradient):
56090         * rendering/svg/SVGRenderTreeAsText.cpp:
56091         (WebCore::writeSVGResourceContainer):
56092             Modify DRT output to include the focal radius.
56093         * svg/RadialGradientAttributes.h:
56094         (WebCore::RadialGradientAttributes::RadialGradientAttributes):
56095         (WebCore::RadialGradientAttributes::fr):
56096         (WebCore::RadialGradientAttributes::setFr):
56097         (WebCore::RadialGradientAttributes::hasFr):
56098         (RadialGradientAttributes):
56099             New setters and getters for focal radius.
56100         * svg/SVGRadialGradientElement.cpp:
56101         (WebCore):
56102         (WebCore::SVGRadialGradientElement::SVGRadialGradientElement):
56103         (WebCore::SVGRadialGradientElement::isSupportedAttribute):
56104         (WebCore::SVGRadialGradientElement::parseAttribute):
56105         (WebCore::SVGRadialGradientElement::collectGradientAttributes):
56106         (WebCore::SVGRadialGradientElement::selfHasRelativeLengths):
56107             Ditto.
56108         * svg/SVGRadialGradientElement.h:
56109         (SVGRadialGradientElement):
56110         * svg/SVGRadialGradientElement.idl:
56111         * svg/svgattrs.in:
56112             Add 'fr' as new attribute to the SVG attribute list.
56113
56114 2012-10-07  Glenn Adams  <glenn@skynav.com>
56115
56116         Use start instead of -webkit-auto in default and quirks mode stylesheets.
56117         https://bugs.webkit.org/show_bug.cgi?id=98609
56118
56119         Reviewed by Antti Koivisto.
56120
56121         Change text-align use of legacy '-webkit-auto' to 'start' in the few places where it is used
56122         in default/quirks stylesheets.
56123         
56124         No new tests. No change of rendering/styling behavior. No performance impact.
56125
56126         * css/html.css:
56127         (input, textarea, keygen, select, button, isindex):
56128         (ruby > rt):
56129         * css/quirks.css:
56130         (table):
56131
56132 2012-10-06  Raul Hudea  <rhudea@adobe.com>
56133
56134         -webkit-clip-path should parse IRIs
56135         https://bugs.webkit.org/show_bug.cgi?id=96381
56136
56137         Reviewed by Andreas Kling.
56138
56139         Implemented the clipping via referencing a SVG clipPath. Currently it works only if the clipPath is defined
56140         before using it on an HTML element. The forward reference issue is tracked via https://bugs.webkit.org/show_bug.cgi?id=90405.
56141
56142         Tests: css3/masking/clip-path-reference-userSpaceOnUse.html
56143                css3/masking/clip-path-reference.html
56144                fast/masking/parsing-clip-path-iri.html
56145
56146         * css/CSSComputedStyleDeclaration.cpp:
56147         (WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue): Add handling for SVG clipPath references.
56148         * css/CSSParser.cpp:
56149         (WebCore::CSSParser::parseValue): Add handling for SVG clipPath references.
56150         * css/StyleBuilder.cpp:
56151         (WebCore::ApplyPropertyClipPath::applyValue): Add handling for SVG references.
56152         * rendering/ClipPathOperation.h:
56153         (ReferenceClipPathOperation): Added a new class corresponding to SVG referenced clipPath.
56154         (WebCore::ReferenceClipPathOperation::create):
56155         (WebCore::ReferenceClipPathOperation::url):
56156         (WebCore::ReferenceClipPathOperation::fragment):
56157         (WebCore::ReferenceClipPathOperation::operator==):
56158         (WebCore::ReferenceClipPathOperation::ReferenceClipPathOperation):
56159         (WebCore):
56160         * rendering/RenderLayer.cpp:
56161         (WebCore::RenderLayer::paintLayerContents): Add handling for ReferenceClipPathOperation.
56162         * rendering/svg/RenderSVGResourceClipper.h:
56163         (RenderSVGResourceClipper): Made applyClippingToContext public as it needs to be called directly for HTML elements.
56164
56165 2012-10-06  Pratik Solanki  <psolanki@apple.com>
56166
56167         Reduce calls to CGImageSourceCopyPropertiesAtIndex from frameSizeAtIndex
56168         https://bugs.webkit.org/show_bug.cgi?id=98607
56169
56170         Reviewed by Dan Bernstein.
56171
56172         Refactor code so that we avoid a second call to CGImageSourceCopyPropertiesAtIndex under
56173         ImageSource::frameSizeAtIndex().
56174
56175         No new tests because no functional change.
56176
56177         * platform/graphics/cg/ImageSourceCG.cpp:
56178         (WebCore::orientationFromProperties):
56179         (WebCore):
56180         (WebCore::ImageSource::frameSizeAtIndex):
56181         (WebCore::ImageSource::orientationAtIndex):
56182
56183 2012-10-06  Mark Rowe  <mrowe@apple.com>
56184
56185         Build fix.
56186
56187         Stop calling -[NSSliderCell setTitle:]. It's never done anything on OS X.
56188
56189         * rendering/RenderThemeMac.mm:
56190         (WebCore::RenderThemeMac::sliderThumbHorizontal):
56191         (WebCore::RenderThemeMac::sliderThumbVertical):
56192
56193 2012-10-06  Andreas Kling  <kling@webkit.org>
56194
56195         Clipboard::types() should return an ordered collection.
56196         <http://webkit.org/b/98547>
56197
56198         Reviewed by Darin Adler.
56199
56200         Let Clipboard::types() return a ListHashSet<String> instead of a HashSet<String> to make sure
56201         it retains the order in which type strings are added.
56202
56203         No test, this fixes an issue that was uncovered when lowering the default table size of WTF
56204         hash tables, causing the HashSet<String> to rehash and reorder itself.
56205
56206         * bindings/js/JSClipboardCustom.cpp:
56207         (WebCore::JSClipboard::types):
56208         * bindings/v8/custom/V8ClipboardCustom.cpp:
56209         (WebCore::V8Clipboard::typesAccessorGetter):
56210         * dom/Clipboard.h:
56211         (Clipboard):
56212         * platform/blackberry/ClipboardBlackBerry.cpp:
56213         (WebCore::ClipboardBlackBerry::types):
56214         * platform/blackberry/ClipboardBlackBerry.h:
56215         (ClipboardBlackBerry):
56216         * platform/chromium/ChromiumDataObject.cpp:
56217         (WebCore::ChromiumDataObject::types):
56218         * platform/chromium/ChromiumDataObject.h:
56219         (ChromiumDataObject):
56220         * platform/chromium/ClipboardChromium.cpp:
56221         (WebCore::ClipboardChromium::types):
56222         * platform/chromium/ClipboardChromium.h:
56223         (ClipboardChromium):
56224         * platform/efl/ClipboardEfl.cpp:
56225         (WebCore::ClipboardEfl::types):
56226         * platform/efl/ClipboardEfl.h:
56227         (ClipboardEfl):
56228         * platform/gtk/ClipboardGtk.cpp:
56229         (WebCore::ClipboardGtk::types):
56230         * platform/gtk/ClipboardGtk.h:
56231         (ClipboardGtk):
56232         * platform/mac/ClipboardMac.h:
56233         (ClipboardMac):
56234         * platform/mac/ClipboardMac.mm:
56235         (WebCore::addHTMLClipboardTypesForCocoaType):
56236         (WebCore::ClipboardMac::types):
56237         * platform/qt/ClipboardQt.cpp:
56238         (WebCore::ClipboardQt::types):
56239         * platform/qt/ClipboardQt.h:
56240         (ClipboardQt):
56241         * platform/win/ClipboardWin.cpp:
56242         (WebCore::addMimeTypesForFormat):
56243         (WebCore::ClipboardWin::types):
56244         * platform/win/ClipboardWin.h:
56245         (ClipboardWin):
56246         * platform/wx/ClipboardWx.cpp:
56247         (WebCore::ClipboardWx::types):
56248         * platform/wx/ClipboardWx.h:
56249         (ClipboardWx):
56250
56251 2012-10-06  Geoffrey Garen  <ggaren@apple.com>
56252
56253         If Node X is reachable from JavaScript, all Nodes in the same tree should be kept alive
56254         https://bugs.webkit.org/show_bug.cgi?id=88834
56255
56256         Reviewed by Gavin Barraclough.
56257
56258         Follow-up patch to address some comments by Darin Adler.
56259
56260         * bindings/js/JSNodeCustom.h:
56261         (WebCore::willCreatePossiblyOrphanedTreeByRemoval): Save some space by
56262         collapsing comment lines. Use Node::hasChildNodes() for brevity.
56263
56264 2012-10-06  Benjamin Poulain  <benjamin@webkit.org>
56265
56266         Fix weird use of KURL's protocolIs
56267         https://bugs.webkit.org/show_bug.cgi?id=98584
56268
56269         Reviewed by Adam Barth.
56270
56271         Converting a KURL to string is a bad idea.
56272
56273         Invalid URLs can return a string that pass the tests, while an
56274         invalid URL will fail protocolIs().
56275
56276         * loader/cache/CachedResource.cpp:
56277         (WebCore::CachedResource::removeClient):
56278         * platform/graphics/MediaPlayer.cpp:
56279         (WebCore::MediaPlayer::load):
56280         * platform/network/DataURL.cpp:
56281         (WebCore::handleDataURL):
56282
56283 2012-10-06  Dan Bernstein  <mitz@apple.com>
56284
56285         WebCore part of <rdar://problem/12446507> [mac] WebKit clients cannot change the behavior of text-rendering: auto
56286         https://bugs.webkit.org/show_bug.cgi?id=98601
56287
56288         Reviewed by Darin Adler.
56289
56290         * WebCore.exp.in: Exported Font::setDefaultTypesettingFeatures().
56291         * platform/graphics/Font.cpp:
56292         (WebCore::Font::s_defaultTypesettingFeatures): Defined this static.
56293         (WebCore::Font::setDefaultTypesettingFeatures): Added this setter.
56294         (WebCore::Font::defaultTypesettingFeatures): Added this getter.
56295         * platform/graphics/Font.h:
56296         (WebCore::Font::typesettingFeatures): Changed to use the value of the new static member
56297         s_defaultTypesettingFeatures, rather than 0, if text-redering is set to auto.
56298
56299 2012-10-04  Geoffrey Garen  <ggaren@apple.com>
56300
56301         If Node X is reachable from JavaScript, all Nodes in the same tree should be kept alive
56302         https://bugs.webkit.org/show_bug.cgi?id=88834
56303
56304         Reviewed by Gavin Barraclough.
56305
56306         * bindings/js/JSNodeCustom.cpp:
56307         (WebCore::isObservable): Clarified this comment, since it seems to have
56308         misled some folks. 
56309
56310         * bindings/js/JSNodeCustom.h:
56311         (WebCore::willCreatePossiblyOrphanedTreeByRemoval): New helper function
56312         to ensure that a disconnected tree is visible to JavaScript.
56313
56314         * bindings/js/ScriptState.cpp:
56315         (WebCore::mainWorldScriptState): Need to check for null because a document's
56316         frame can be null.
56317
56318         * dom/ContainerNode.cpp:
56319         (WebCore::dispatchChildRemovalEvents): When we remove a subtree from the
56320         document, we sever the reference that JavaScript previously held by
56321         referencing its root. So, we give JavaScript an opportunity to establish
56322         a reference to the new root.
56323
56324 2012-10-06  Byungwoo Lee  <bw80.lee@samsung.com>
56325
56326         Fix build warning : -Wunused-parameter.
56327         https://bugs.webkit.org/show_bug.cgi?id=98583
56328
56329         Reviewed by Kentaro Hara.
56330
56331         Use ASSERT_UNUSED() macro to remove build warning.
56332
56333         * plugins/PluginStream.cpp:
56334         (WebCore::PluginStream::delayDeliveryTimerFired):
56335         (WebCore::PluginStream::didReceiveResponse):
56336         (WebCore::PluginStream::didReceiveData):
56337         (WebCore::PluginStream::didFail):
56338         (WebCore::PluginStream::didFinishLoading):
56339         * plugins/PluginView.cpp:
56340         (WebCore::PluginView::requestTimerFired):
56341         (WebCore::PluginView::invalidateTimerFired):
56342
56343 2012-10-05  Adam Barth  <abarth@webkit.org>
56344
56345         [V8] toV8(Node*, ...) does more work than needed (6% faster on dom-traverse)
56346         https://bugs.webkit.org/show_bug.cgi?id=98567
56347
56348         Reviewed by Kentaro Hara.
56349
56350         This patch introduces toV8Fast for Node*. This function works a
56351         differently from the existing toV8 function in two ways:
56352
56353         1) It uses the inline wrapper cache in Node to determine if we're
56354            executing in the main world. This is faster both in the case when
56355            isolated worlds exist because we don't need to retrieve any state
56356            for the current context.
56357
56358         2) It doesn't attempt to inline the hash table lookup used to find the
56359            wrapper in the isolated world. There isn't a big need to inline this
56360            code since performance in the isolated world case is dominated by
56361            the hash table lookup.
56362
56363         Because of these two changes, toV8Fast is small enough to inline into
56364         each attribute getter profitably. Over time, I would like to convert
56365         all the performance critical uses of toV8(Node*) to toV8Fast. At that
56366         point, we can delete toV8 and rename toV8Slow to toV8.
56367
56368         * bindings/scripts/CodeGeneratorV8.pm:
56369         (GenerateHeader):
56370         (GenerateNormalAttrGetter):
56371
56372 2012-10-05  Huang Dongsung  <luxtella@company100.net>
56373
56374         [mac] REGRESSION (r122215): Animated GIF outside the viewport doesn't play when scrolled into view.
56375         https://bugs.webkit.org/show_bug.cgi?id=94874
56376
56377         Reviewed by Simon Fraser.
56378
56379         Rollback previous patch because this patch caused two problems.
56380         1. GIF animation is occasionally paused when tiled scrolling is enabled.
56381         2. This change regressed Apple's Membuster benchmark by ~20% (80MB.)
56382
56383         * loader/cache/CachedImage.cpp:
56384         (WebCore::CachedImage::shouldPauseAnimation):
56385         * loader/cache/CachedImage.h:
56386         (CachedImage):
56387         * loader/cache/CachedResource.h:
56388         * loader/cache/MemoryCache.cpp:
56389         (WebCore::MemoryCache::pruneLiveResourcesToSize):
56390         * rendering/RenderObject.cpp:
56391         (WebCore::RenderObject::willRenderImage):
56392
56393 2012-10-05  Xianzhu Wang  <wangxianzhu@chromium.org>
56394
56395         OpenTypeVerticalData issue with DroidSansFallback.ttf on chromium-android and chromium-linux
56396         https://bugs.webkit.org/show_bug.cgi?id=97824
56397
56398         Reviewed by Tony Chang.
56399
56400         The issue occurred when a font that contains vert GSUB table but doesn't have
56401         a DFLT script and the first script doesn't have vert feature. Added logic to
56402         handle the case.
56403
56404         Test: fast/writing-mode/vertical-subst-font-vert-no-dflt.html
56405
56406         * platform/graphics/opentype/OpenTypeVerticalData.cpp:
56407         (FeatureList):
56408         (WebCore::OpenType::FeatureList::findFeature): Added to find the matching feature in FeatureList.
56409         (WebCore::OpenType::GSUBTable::feature): Added logic to handle the case of no DFLT script and no vert feature under the first script.
56410
56411 2012-10-05  Tony Chang  <tony@chromium.org>
56412
56413         Form controls should always be horizontal
56414         https://bugs.webkit.org/show_bug.cgi?id=98563
56415
56416         Reviewed by Ojan Vafai.
56417
56418         Fix a regression where we didn't force form controls to be horizontal.
56419
56420         Tests: fast/dom/HTMLMeterElement/meter-writing-mode.html
56421                fast/dom/HTMLProgressElement/progress-writing-mode.html
56422                fast/table/colspanMinWidth-vertical.html
56423
56424         * css/html.css:
56425         (input, textarea, keygen, select, button, isindex, meter, progress):
56426
56427 2012-10-05  Sheriff Bot  <webkit.review.bot@gmail.com>
56428
56429         Unreviewed, rolling out r130556 and r130564.
56430         http://trac.webkit.org/changeset/130556
56431         http://trac.webkit.org/changeset/130564
56432         https://bugs.webkit.org/show_bug.cgi?id=98572
56433
56434         The patch wasn't reviewed by a reviewer and it is breaking
56435         Chromium Windows (Requested by jchaffraix on #webkit).
56436
56437         * WebCore.exp.in:
56438         * WebCore.xcodeproj/project.pbxproj:
56439         * css/mediaControls.css:
56440         (video::-webkit-media-text-track-container):
56441         (video::-webkit-media-text-track-past-nodes):
56442         (video::-webkit-media-text-track-future-nodes):
56443         (video::-webkit-media-text-track-display):
56444         * html/HTMLMediaElement.cpp:
56445         (WebCore::HTMLMediaElement::HTMLMediaElement):
56446         (WebCore::HTMLMediaElement::attach):
56447         (WebCore::HTMLMediaElement::userIsInterestedInThisLanguage):
56448         (WebCore::HTMLMediaElement::userIsInterestedInThisTrackKind):
56449         (WebCore::HTMLMediaElement::setClosedCaptionsVisible):
56450         (WebCore::HTMLMediaElement::updateClosedCaptionsControls):
56451         * html/HTMLMediaElement.h:
56452         (HTMLMediaElement):
56453         * html/shadow/MediaControlElements.cpp:
56454         (WebCore):
56455         (WebCore::MediaControlTextTrackContainerElement::updateSizes):
56456         * html/shadow/MediaControlElements.h:
56457         (MediaControlTextTrackContainerElement):
56458         * html/shadow/MediaControlRootElement.cpp:
56459         (WebCore::MediaControlRootElement::updateTextTrackDisplay):
56460         * html/shadow/MediaControlRootElement.h:
56461         (MediaControlRootElement):
56462         * html/shadow/MediaControls.h:
56463         (MediaControls):
56464         * html/track/TextTrack.cpp:
56465         (WebCore::TextTrack::TextTrack):
56466         (WebCore::TextTrack::isValidKindKeyword):
56467         (WebCore::TextTrack::setKind):
56468         (WebCore::TextTrack::setMode):
56469         (WebCore::TextTrack::mode):
56470         * html/track/TextTrack.h:
56471         (WebCore::TextTrack::create):
56472         (WebCore::TextTrack::kind):
56473         (TextTrack):
56474         (WebCore::TextTrack::label):
56475         (WebCore::TextTrack::setLabel):
56476         (WebCore::TextTrack::language):
56477         (WebCore::TextTrack::setLanguage):
56478         * html/track/TextTrackCue.cpp:
56479         (WebCore::TextTrackCueBox::TextTrackCueBox):
56480         (WebCore::TextTrackCueBox::shadowPseudoId):
56481         (WebCore):
56482         (WebCore::TextTrackCue::updateDisplayTree):
56483         * html/track/TextTrackCue.h:
56484         (TextTrackCueBox):
56485         (TextTrackCue):
56486         * platform/mac/WebCoreSystemInterface.h:
56487         * platform/mac/WebCoreSystemInterface.mm:
56488         * rendering/CaptionPreferencesChangedListener.h: Removed.
56489         * rendering/RenderTheme.h:
56490         (WebCore):
56491         (RenderTheme):
56492         * rendering/RenderThemeMac.h:
56493         (RenderThemeMac):
56494         * rendering/RenderThemeMac.mm:
56495         (WebCore):
56496         (WebCore::RenderThemeMac::RenderThemeMac):
56497         (WebCore::RenderThemeMac::~RenderThemeMac):
56498
56499 2012-10-05  Tim Horton  <timothy_horton@apple.com>
56500
56501         [cg] GraphicsContextCG should ask CG whether the shadow offset workaround is required
56502         https://bugs.webkit.org/show_bug.cgi?id=98565
56503         <rdar://problem/12436468>
56504
56505         Reviewed by Simon Fraser.
56506
56507         On Mountain Lion and above, CG can tell us whether we need to work around incorrect
56508         shadow offsets. Prior to Mountain Lion, we should assume we need to apply the workaround.
56509
56510         No new tests, as this requires an obscure configuration to test.
56511
56512         * WebCore.exp.in:
56513         * platform/graphics/cg/GraphicsContextCG.cpp:
56514         (WebCore::applyShadowOffsetWorkaroundIfNeeded):
56515         (WebCore::GraphicsContext::setPlatformShadow):
56516         * platform/mac/WebCoreSystemInterface.h: Add wkCGContextDrawsWithCorrectShadowOffsets.
56517         * platform/mac/WebCoreSystemInterface.mm: Add wkCGContextDrawsWithCorrectShadowOffsets.
56518
56519 2012-10-05  Anders Carlsson  <andersca@apple.com>
56520
56521         Try to fix the build.
56522
56523         * rendering/RenderThemeMac.mm:
56524         (WebCore::RenderThemeMac::captionsWindowColor):
56525
56526 2012-10-05  Eric Seidel  <eric@webkit.org>
56527
56528         Remove needless virtual calls and inline RenderStyle::logical* to make table layout faster
56529         https://bugs.webkit.org/show_bug.cgi?id=98550
56530
56531         Reviewed by Andreas Kling.
56532
56533         This shaved another 5% (100ms) off of the runtime of resizecol.html microbenchmark:
56534         http://www.robohornet.org/tests/resizecol.html
56535
56536         * rendering/AutoTableLayout.cpp:
56537         (WebCore::AutoTableLayout::recalcColumn):
56538         * rendering/style/RenderStyle.cpp:
56539         * rendering/style/RenderStyle.h:
56540
56541 2012-10-04  Eric Carlson  <eric.carlson@apple.com>
56542
56543         Allow ports to override text track rendering style
56544         https://bugs.webkit.org/show_bug.cgi?id=97800
56545         <rdar://problem/12044964>
56546
56547         Reviewed by Silvia Pfeiffer.
56548
56549         * WebCore.exp.in: Export new WebkitSystemInterface functions.
56550         * WebCore.xcodeproj/project.pbxproj: Add CaptionPreferencesChangedListener.h.
56551
56552         * css/mediaControls.css: Rearrange the caption CSS so it is possible to style the cue window,
56553             background, and text independently.
56554
56555         * html/HTMLMediaElement.cpp:
56556         (WebCore::HTMLMediaElement::HTMLMediaElement): Initialize m_disableCaptions with theme->userPrefersCaptions().
56557         (WebCore::HTMLMediaElement::attach): Register for caption preferences change callbacks.
56558         (WebCore::HTMLMediaElement::detach): Unregister for caption preferences change callbacks.
56559         (WebCore::HTMLMediaElement::userPrefersCaptions): Return theme->userPrefersCaptions().
56560         (WebCore::HTMLMediaElement::userIsInterestedInThisTrackKind): Consider userPrefersCaptions().
56561         (WebCore::HTMLMediaElement::setClosedCaptionsVisible): Move the code that marks all tracks as
56562             un-configured to markCaptionAndSubtitleTracksAsUnconfigured so it can be reused.
56563         (WebCore::HTMLMediaElement::captionPreferencesChanged): New, force a reevaluation of all text tracks.
56564         (WebCore::HTMLMediaElement::markCaptionAndSubtitleTracksAsUnconfigured): New, code moved from 
56565             setClosedCaptionsVisible
56566         * html/HTMLMediaElement.h: Inherit from CaptionPreferencesChangedListener.
56567
56568         * html/shadow/MediaControlElements.cpp:
56569         (WebCore::MediaControlTextTrackContainerElement::userCaptionPreferencesChanged): New, if theme
56570             has a captions style sheet override, inject it into the current page group, otherwise
56571             remove injected sheet.
56572         (WebCore::MediaControlTextTrackContainerElement::updateSizes): Get rid of unnecessary member
56573             variable. Get caption font scale from theme instead of hard coding.
56574         * html/shadow/MediaControlElements.h:
56575
56576         * html/shadow/MediaControlRootElement.cpp:
56577         (WebCore::MediaControlRootElement::userCaptionPreferencesChanged): New.
56578         (WebCore::MediaControlRootElement::updateTextTrackDisplay):
56579         * html/shadow/MediaControlRootElement.h: Add userCaptionPreferencesChanged, minor cleanup.
56580
56581         * html/shadow/MediaControls.h:
56582         (WebCore::MediaControls::userCaptionPreferencesChanged): New.
56583
56584         * html/track/TextTrackCue.cpp:
56585         (WebCore::TextTrackCueBox::TextTrackCueBox): Set the shadow pseudo id.
56586         (WebCore::TextTrackCueBox::textTrackCueBoxShadowPseudoId): New, class method to return the 
56587             shadow pseudo id so it can be used elsewhere.
56588         (WebCore::TextTrackCueBox::shadowPseudoId): Call textTrackCueBoxShadowPseudoId.
56589         (WebCore::TextTrackCue::pastNodesShadowPseudoId): New, class method to return the 
56590             shadow pseudo id so it can be used elsewhere.
56591         (WebCore::TextTrackCue::futureNodesShadowPseudoId): Ditto.
56592         (WebCore::TextTrackCue::updateDisplayTree):
56593         * html/track/TextTrackCue.h:
56594
56595         * platform/mac/WebCoreSystemInterface.h: Updated.
56596         * platform/mac/WebCoreSystemInterface.mm: Ditto.
56597
56598         * rendering/CaptionPreferencesChangedListener.h: Added.
56599
56600         * rendering/RenderTheme.h:
56601         (WebCore::RenderTheme::userPrefersCaptions): New, default do-nothing implementation.
56602         (WebCore::RenderTheme::userHasCaptionPreferences): Ditto.
56603         (WebCore::RenderTheme::captionFontSizeScale): Ditto.
56604         (WebCore::RenderTheme::captionsStyleSheetOverride): Ditto.
56605         (WebCore::RenderTheme::registerForCaptionPreferencesChangedCallbacks): Ditto.
56606         (WebCore::RenderTheme::unregisterForCaptionPreferencesChangedCallbacks): Ditto.
56607
56608         * rendering/RenderThemeMac.h:
56609         * rendering/RenderThemeMac.mm:
56610         (WebCore::userCaptionPreferencesChangedNotificationCallback): New, receives preference changed notifications.
56611         (WebCore::RenderThemeMac::RenderThemeMac): Initialize m_listeningForCaptionPreferenceNotifications.
56612         (WebCore::RenderThemeMac::~RenderThemeMac): Unregister for notifications if necessary.
56613         (WebCore::RenderThemeMac::userHasCaptionPreferences): New, passthrough to WKSI function.
56614         (WebCore::RenderThemeMac::userPrefersCaptions): Ditto.
56615         (WebCore::RenderThemeMac::captionsWindowColor): Return Color with user's caption window color preference.
56616         (WebCore::RenderThemeMac::captionsBackgroundColor): Return Color with user's caption 
56617             background color preference.
56618         (WebCore::RenderThemeMac::captionsTextColor): Return Color with user's caption text color preference.
56619         (WebCore::RenderThemeMac::captionsEdgeColorForTextColor): Return Color for text edge effect.
56620         (WebCore::RenderThemeMac::cssPropertyWithTextEdgeColor): Return String with CSS to set a text-shadow
56621             or webkit-text-stroke property.
56622         (WebCore::RenderThemeMac::cssColorProperty): Return a String with css to set a property 
56623             with a color value.
56624         (WebCore::RenderThemeMac::captionsTextEdgeStyle): Return a String with css to style caption 
56625             text with the user's preferred text edge stye.
56626         (WebCore::RenderThemeMac::captionsDefaultFont): Return a String with css to style caption
56627             text with the user's preferred font.
56628         (WebCore::RenderThemeMac::captionsStyleSheetOverride): Return a String with css to style captions
56629             with the user's preferred style.
56630         (WebCore::RenderThemeMac::captionFontSizeScale): Return the user's preferred caption font scale.
56631         (WebCore::RenderThemeMac::captionPreferencesChanged): Notify listeners of caption preference change.
56632         (WebCore::RenderThemeMac::registerForCaptionPreferencesChangedCallbacks): Add a caption preferences 
56633             changes listener.
56634         (WebCore::RenderThemeMac::unregisterForCaptionPreferencesChangedCallbacks): Remove a caption preferences
56635             changes listener.
56636
56637 2012-10-05  Takashi Sakamoto  <tasak@google.com>
56638
56639         Inline continuations create :after generated content on style recalcs
56640         https://bugs.webkit.org/show_bug.cgi?id=93170
56641
56642         Reviewed by Abhishek Arya.
56643
56644         The bug is caused by RenderInline::styleDidChange's setContinuation(0).
56645         RenderObjectChildList uses continuation to know whether the given
56646         renderer should have AFTER render object or not.
56647         However, setContinuation(0) makes RenderObjectChildList to
56648         misunderstand that all continuations are last continuation.
56649         To avoid the misunderstanding, added a new flag to class
56650         RenderObejctChildList to enable/disable updating :after content (and
56651         also :before content).
56652
56653         Tests: fast/css-generated-content/after-with-inline-continuation.html
56654                fast/css-generated-content/dynamic-apply-after-for-inline.html
56655
56656         * rendering/RenderInline.cpp:
56657         (WebCore::RenderInline::styleDidChange):
56658         Disable upating :after content for continuations which are not
56659         the last one during setStyle just after setContinuation(0).
56660         The setStyle invokes RenderInline::styleDidChange and also invokes
56661         updateBeforeAfterContent via the styleDidChange. This means,
56662         the last continuation's updateBeforeAfterContent is also invoked
56663         after setContinuation(0). We have to update :after for the last
56664         continuation.
56665         * rendering/RenderObjectChildList.cpp:
56666         (WebCore):
56667         (WebCore::RenderObjectChildList::updateBeforeAfterContent):
56668         If s_updateBeforeAfterContent is false, quickly exit
56669         updateBeforeAfterContent.
56670         * rendering/RenderObjectChildList.h:
56671         (RenderObjectChildList):
56672         Added a new flag s_enableUpdateBeforeAfterContent to enable/disable
56673         updating :before or :after content.
56674
56675 2012-10-05  Simon Fraser  <simon.fraser@apple.com>
56676
56677         Don't assume that TileCache layers are opaque
56678         https://bugs.webkit.org/show_bug.cgi?id=98555
56679
56680         Reviewed by Dean Jackson.
56681
56682         TileCache previously set all its tile CALayers as opaque.
56683         However, we will need non-opaque tile caches when we use this
56684         tile cache for tiled layers, so add a member function to
56685         control tile opacity.
56686         
56687         RenderLayerBacking already calls m_graphicsLayer->setContentsOpaque()
56688         using the FrameView's notion of opaqueness, so this change will
56689         cause the main tile cache to be non-opaque if external forces have
56690         set the FrameView to be non-opaque.
56691         
56692         Also tweak the layer border widths on tiled layers.
56693
56694         * platform/graphics/ca/mac/TileCache.h:
56695         (TileCache):
56696         (WebCore::TileCache::tilesAreOpaque):
56697         * platform/graphics/ca/mac/TileCache.mm:
56698         (WebCore::TileCache::TileCache):
56699         (WebCore::TileCache::setTilesOpaque):
56700         (WebCore::TileCache::createTileLayer):
56701         * platform/graphics/ca/mac/WebTileCacheLayer.mm:
56702         (-[WebTileCacheLayer setOpaque:]):
56703         (-[WebTileCacheLayer isOpaque]):
56704         (-[WebTileCacheLayer setBorderWidth:]):
56705
56706 2012-10-05  Tony Chang  <tony@chromium.org>
56707
56708         Fix margin box ascent computation in flexbox
56709         https://bugs.webkit.org/show_bug.cgi?id=98540
56710
56711         Reviewed by Ojan Vafai.
56712
56713         The margin box ascent doesn't depend on the margin below the box.
56714
56715         Tests: css3/flexbox/flex-align.html: Fixed a test case and removed a FIXME.
56716                css3/flexbox/flex-align-vertical-writing-mode.html: Similar test case.
56717
56718         * rendering/RenderFlexibleBox.cpp:
56719         (WebCore::RenderFlexibleBox::marginBoxAscentForChild):
56720
56721 2012-10-05  Ojan Vafai  <ojan@chromium.org>
56722
56723         Deprecated flexboxes subtract scrollbar width/height twice
56724         https://bugs.webkit.org/show_bug.cgi?id=98552
56725
56726         Reviewed by Tony Chang.
56727
56728         This is a regression from http://trac.webkit.org/changeset/119507.
56729         The problem is that contentHeight subtracts the scrollbar and
56730         RenderDeprecatedFlexbox subtracts the scrollbar.
56731
56732         -Make it so that we only access override sizes if one has been set.
56733         I think this makes the calling code more clear.
56734         -If we don't have one set, grab the height/width - borderAndPadding.
56735         -Add a FIXME to change this all back to being borderbox sizes.
56736         There's something trick with making table padding/border work right for that
56737         though (noted in the original patch).
56738
56739         Test: fast/flexbox/flexing-overflow-scroll-item.html
56740
56741         * rendering/RenderBox.cpp:
56742         (WebCore::RenderBox::overrideLogicalContentWidth):
56743         (WebCore::RenderBox::overrideLogicalContentHeight):
56744         (WebCore::RenderBox::availableLogicalHeightUsing):
56745         * rendering/RenderBox.h:
56746         (RenderBox):
56747         * rendering/RenderDeprecatedFlexibleBox.cpp:
56748         (WebCore::contentWidthForChild):
56749         (WebCore):
56750         (WebCore::contentHeightForChild):
56751         (WebCore::RenderDeprecatedFlexibleBox::layoutHorizontalBox):
56752         (WebCore::RenderDeprecatedFlexibleBox::layoutVerticalBox):
56753         (WebCore::RenderDeprecatedFlexibleBox::allowedChildFlex):
56754
56755 2012-10-05  Eric Seidel  <eric@webkit.org>
56756
56757         Make tables which don't use col/row span much faster to layout
56758         https://bugs.webkit.org/show_bug.cgi?id=98221
56759
56760         Reviewed by Julien Chaffraix.
56761
56762         My sense is that most tables on webpages do not use colspan/rowspan
56763         so I stole another bit from RenderTableCell::m_column to avoid
56764         having to re-parse the colSpan/rowSpan attributes for every cell
56765         when doing table layout.
56766         This made these symbols disappear from biggrid.html/redraw.html (dglazkov's spreadsheets benchmarks)
56767         as well as moved our robohornet/resizecol.html number from an average of 3221ms to 2608ms (~20%!).
56768
56769         I removed m_hasHTMLTableCellElement (from http://trac.webkit.org/changeset/97691)
56770         since it was attempting to do the same sort of optimization.
56771
56772         * rendering/RenderTableCell.cpp:
56773         (WebCore::RenderTableCell::RenderTableCell):
56774         (WebCore::RenderTableCell::parseColSpanFromDOM):
56775         (WebCore::RenderTableCell::parseRowSpanFromDOM):
56776         (WebCore::RenderTableCell::layout):
56777         * rendering/RenderTableCell.h:
56778         (WebCore::RenderTableCell::colSpan):
56779         (WebCore::RenderTableCell::rowSpan):
56780         (RenderTableCell):
56781
56782 2012-10-05  Oli Lan  <olilan@chromium.org>
56783
56784         Allow EventHandler to handle longpress gestures, including longpress selection on Android.
56785         https://bugs.webkit.org/show_bug.cgi?id=98173
56786         
56787         Reviewed by Ryosuke Niwa.
56788
56789         Adds handling for GestureLongPress to EventHandler::handleGestureEvent, with a new
56790         handleGestureLongPress method. On Android, this method selects the closest word
56791         if the gesture event was over non-link text.
56792
56793         This is tested via a new chromium test WebViewTest.LongPressSelection.  
56794
56795         * page/EventHandler.cpp:
56796         (WebCore::EventHandler::selectClosestWordFromHitTestResult):
56797         (WebCore::EventHandler::selectClosestWordFromMouseEvent):
56798         (WebCore):
56799         (WebCore::EventHandler::handleGestureEvent):
56800         (WebCore::EventHandler::handleGestureLongPress):
56801         * page/EventHandler.h:
56802         (EventHandler):
56803
56804 2012-10-05  Tab Atkins  <jackalmage@gmail.com>
56805
56806         <marquee> element forces itself to be at least 1em high, regardless of 'height' declaration
56807         https://bugs.webkit.org/show_bug.cgi?id=18098
56808
56809         Reviewed by Eric Seidel.
56810
56811         This restriction originally existed to match IE, but IE changed some time ago to be normal instead.
56812         We're the last browser, afaict, to still enforce this de-facto restriction.
56813         This patch makes <marquee> instead act like a normal element.
56814
56815         Tests: fast/css/MarqueeLayoutTest.html (rewritten from the older, bad version)
56816
56817         * rendering/RenderMarquee.cpp:
56818         (WebCore::RenderMarquee::updateMarqueeStyle):
56819
56820 2012-10-05  Joe Mason  <jmason@rim.com>
56821
56822         [BlackBerry] Fix regression in proxy auth
56823         https://bugs.webkit.org/show_bug.cgi?id=98533
56824
56825         Reviewed by Yong Li.
56826
56827         The proxy auth dialog gets the proxy address from
56828         BlackBerry::Platform::Settings::proxyAddress, which returns
56829         "host:port", but we try to parse it with a KURL, which expects
56830         "scheme://host:port".  Since this is an http proxy, add http:// to the
56831         url to get it to parse.
56832
56833         PR 220567.
56834
56835         * platform/network/blackberry/NetworkJob.cpp:
56836         (WebCore::NetworkJob::sendRequestWithCredentials):
56837
56838 2012-10-05  Jer Noble  <jer.noble@apple.com>
56839
56840         No autorelease pool in place, causing buildup of autoreleased objects.
56841         https://bugs.webkit.org/show_bug.cgi?id=98522
56842         <rdar://problem/11647950>
56843
56844         Reviewed by Alexey Proskuryakov.
56845
56846         Wrap each timer callback in an AutodrainPool, ensuring an autorelease
56847         pool is present during calls from C/C++ into ObjC.
56848
56849         * platform/cf/RunLoopTimerCF.cpp:
56850         (WebCore::timerFired):
56851
56852 2012-10-05  Ryosuke Niwa  <rniwa@webkit.org>
56853
56854         Deleting across multiple paragraphs can change the style of surrounding text
56855         https://bugs.webkit.org/show_bug.cgi?id=97266
56856
56857         Reviewed by Levi Weintraub.
56858
56859         Preserve editing styles from CSS rules in wrappingStyleForSerialization as well as inline styles
56860         even when we're not annotating. We don't want to preserve all styles because it's against
56861         the user expectation to keep borders, etc... when merging paragraphs. We also don't want to copy
56862         styles from a mail blockquote because that's not a style the user has applied. See the comment
56863         in EditingStyle::wrappingStyleForSerialization.
56864
56865         Test: editing/deleting/merge-paragraph-with-style-from-rule.html
56866
56867         * editing/EditingStyle.cpp:
56868         (WebCore::EditingStyle::mergeInlineAndImplicitStyleOfElement):
56869         (WebCore::EditingStyle::wrappingStyleForSerialization):
56870
56871 2012-10-05  Dan Bernstein  <mitz@apple.com>
56872
56873         Reversing a GlyphBuffer needlessly queries its size multiple times
56874         https://bugs.webkit.org/show_bug.cgi?id=98530
56875
56876         Reviewed by Simon Fraser.
56877
56878         No new tests because there is no change in behavior.
56879
56880         * WebCore.xcodeproj/project.pbxproj:
56881         * platform/graphics/FontFastPath.cpp:
56882         (WebCore::Font::getGlyphsAndAdvancesForSimpleText): Replaced the condition
56883         (i < glyphBuffer.size() / 2) with the equivalent test (i < end).
56884         * platform/graphics/mac/FontComplexTextMac.cpp:
56885         (WebCore::Font::getGlyphsAndAdvancesForComplexText): Ditto.
56886
56887 2012-10-05  José Dapena Paz  <jdapena@igalia.com>
56888
56889         [GTK] Add support for creating EGL contexts
56890         https://bugs.webkit.org/show_bug.cgi?id=77921
56891
56892         Reviewed by Martin Robinson.
56893
56894         This patch adds support for EGL, using OpenGL and OpenGL ES 2. Both
56895         options are set up on compile time, with the configure options
56896         --enable-egl and --enable-gles2.
56897
56898         The implementation only adds support for EGL on top of X11, to
56899         isolate the changes to the minimum. More changes should come
56900         later to enable EGL for other targets (as Wayland).
56901
56902         No new tests required, as existing WebGL and AC tests should cover
56903         the cases.
56904
56905         * GNUmakefile.am:
56906         * GNUmakefile.list.am:
56907         * platform/graphics/GraphicsContext3D.h:
56908         (GraphicsContext3D):
56909         * platform/graphics/OpenGLESShims.h:
56910         * platform/graphics/cairo/GLContext.cpp:
56911         (WebCore):
56912         (WebCore::GLContext::sharedX11Display):
56913         (WebCore::GLContext::cleanupSharedX11Display):
56914         (WebCore::activeContextList):
56915         (WebCore::GLContext::addActiveContext):
56916         (WebCore::GLContext::removeActiveContext):
56917         (WebCore::GLContext::cleanupActiveContextsAtExit):
56918         (WebCore::GLContext::createContextForWindow):
56919         (WebCore::GLContext::createOffscreenContext):
56920         * platform/graphics/cairo/GLContext.h:
56921         (GLContext):
56922         * platform/graphics/cairo/GraphicsContext3DCairo.cpp:
56923         (WebCore::GraphicsContext3D::create):
56924         (WebCore::GraphicsContext3D::GraphicsContext3D):
56925         (WebCore::GraphicsContext3D::~GraphicsContext3D):
56926         (WebCore::GraphicsContext3D::isGLES2Compliant):
56927         * platform/graphics/cairo/GraphicsContext3DPrivate.cpp:
56928         (WebCore::GraphicsContext3DPrivate::paintToTextureMapper):
56929         * platform/graphics/clutter/GraphicsContext3DClutter.cpp:
56930         * platform/graphics/efl/GraphicsContext3DEfl.cpp:
56931         * platform/graphics/egl/GLContextEGL.cpp: Added.
56932         (WebCore):
56933         (WebCore::sharedEGLDisplay):
56934         (WebCore::getEGLConfig):
56935         (WebCore::GLContextEGL::createWindowContext):
56936         (WebCore::GLContextEGL::createPbufferContext):
56937         (WebCore::GLContextEGL::createPixmapContext):
56938         (WebCore::GLContextEGL::createContext):
56939         (WebCore::GLContextEGL::GLContextEGL):
56940         (WebCore::GLContextEGL::~GLContextEGL):
56941         (WebCore::GLContextEGL::canRenderToDefaultFramebuffer):
56942         (WebCore::GLContextEGL::defaultFrameBufferSize):
56943         (WebCore::GLContextEGL::makeContextCurrent):
56944         (WebCore::GLContextEGL::swapBuffers):
56945         (WebCore::GLContextEGL::waitNative):
56946         (WebCore::GLContextEGL::platformContext):
56947         * platform/graphics/egl/GLContextEGL.h: Added.
56948         (WebCore):
56949         (GLContextEGL):
56950         * platform/graphics/glx/GLContextGLX.cpp:
56951         (WebCore::GLContextGLX::createWindowContext):
56952         (WebCore::GLContextGLX::createPbufferContext):
56953         (WebCore::GLContextGLX::createPixmapContext):
56954         (WebCore::GLContextGLX::createContext):
56955         (WebCore::GLContextGLX::~GLContextGLX):
56956         (WebCore::GLContextGLX::defaultFrameBufferSize):
56957         (WebCore::GLContextGLX::makeContextCurrent):
56958         (WebCore::GLContextGLX::swapBuffers):
56959         (WebCore):
56960         (WebCore::GLContextGLX::waitNative):
56961         * platform/graphics/glx/GLContextGLX.h:
56962         (GLContextGLX):
56963         * platform/graphics/mac/GraphicsContext3DMac.mm:
56964         * platform/graphics/opengl/GraphicsContext3DOpenGL.cpp:
56965         (WebCore::GraphicsContext3D::releaseShaderCompiler):
56966         (WebCore):
56967         * platform/graphics/opengl/GraphicsContext3DOpenGLES.cpp:
56968         (WebCore::GraphicsContext3D::readPixels):
56969         (WebCore::GraphicsContext3D::reshapeFBOs):
56970         (WebCore::GraphicsContext3D::renderbufferStorage):
56971         * platform/graphics/qt/GraphicsContext3DQt.cpp:
56972         * platform/graphics/texmap/TextureMapper.h:
56973         * platform/gtk/RedirectedXCompositeWindow.cpp:
56974         (WebCore::RedirectedXCompositeWindow::RedirectedXCompositeWindow):
56975         (WebCore::RedirectedXCompositeWindow::~RedirectedXCompositeWindow):
56976         (WebCore::RedirectedXCompositeWindow::resize):
56977         * platform/gtk/RedirectedXCompositeWindow.h:
56978
56979 2012-10-04  Jon Lee  <jonlee@apple.com>
56980
56981         Add a setting to enable plugin snapshotting
56982         https://bugs.webkit.org/show_bug.cgi?id=98319
56983         <rdar://problem/12426480>
56984
56985         Reviewed by Brady Eidson.
56986
56987         Add a new bit for this preference.
56988
56989         * page/Settings.cpp:
56990         (WebCore::Settings::Settings): Preference is false by default.
56991         * page/Settings.h: Added m_plugInSnapshottingEnabled bit.
56992         (WebCore::Settings::setPlugInSnapshottingEnabled): Set the bit.
56993         (WebCore::Settings::plugInSnapshottingEnabled): Return the bit.
56994
56995 2012-10-05  Vsevolod Vlasov  <vsevik@chromium.org>
56996
56997         Unreviewed inspector front-end closure compilaiton fixes.
56998
56999         * inspector/InjectedScriptCanvasModuleSource.js:
57000         * inspector/InjectedScriptExterns.js:
57001         (InjectedScriptHost.prototype.getInternalProperties):
57002         * inspector/front-end/DockController.js:
57003         * inspector/front-end/externs.js:
57004         (InspectorFrontendHostAPI.prototype.requestSetDockSide):
57005
57006 2012-10-05  Tab Atkins  <jackalmage@gmail.com>
57007
57008         Replace uses of prefixed properties with unprefixed versions in the UA stylesheets
57009         https://bugs.webkit.org/show_bug.cgi?id=98453
57010
57011         Reviewed by Ojan Vafai.
57012
57013         Switched 'border-radius' and 'box-shadow' to their unprefixed version in the UA stylesheets.
57014
57015         No new tests, because the unprefixed properties have the same behavior as the prefixed.
57016
57017         * css/fullscreenQuickTime.css:
57018         (video:-webkit-full-screen::-webkit-media-controls-panel):
57019         * css/html.css:
57020         (keygen, select):
57021         (select[size][multiple]):
57022         (select[size="1"]):
57023         (::-webkit-validation-bubble-message):
57024         * css/themeBlackBerry.css:
57025         (input, textarea):
57026         * css/themeChromiumAndroid.css:
57027         (select[size][multiple]):
57028         * css/themeQtNoListboxes.css:
57029         (select[size][multiple]):
57030         * css/themeWin.css:
57031         (select[size="1"]):
57032         * css/view-source.css:
57033         (.webkit-html-message-bubble):
57034
57035 2012-10-05  Kevin Ellis  <kevers@chromium.org>
57036
57037         [chromium] Only inflate the height of rows in a popup menu when a touch device is detected.
57038         https://bugs.webkit.org/show_bug.cgi?id=98515
57039
57040         Reviewed by Adam Barth.
57041
57042         Enforces a minimum row height for popup menus when a touch device is
57043         detected.  In a previous patch (r127597), the sizing of popup was 
57044         consolidated for touch and non-touch.  Based on user feedback, reverting
57045         to the old behavior for non-touch and only adding padding for touch
57046         devices seems like a much safer strategy.  This patch is not a direct
57047         revert of r127567 since the padding previously used for touch is a bit
57048         excessive.
57049
57050         Covered by existing tests.
57051
57052         * platform/chromium/PopupListBox.cpp:
57053         (WebCore::PopupListBox::getRowHeight):
57054         * platform/chromium/PopupMenuChromium.cpp:
57055         (WebCore):
57056         * platform/chromium/PopupMenuChromium.h:
57057         (WebCore::PopupMenuChromium::optionRowHeightForTouch):
57058         (WebCore::PopupMenuChromium::setOptionRowHeightForTouch):
57059         (PopupMenuChromium):
57060
57061 2012-10-05  Alexander Pavlov  <apavlov@chromium.org>
57062
57063         Web Inspector: [Styles] Unable to edit properties in broken stylesheets
57064         https://bugs.webkit.org/show_bug.cgi?id=98246
57065
57066         Reviewed by Vsevolod Vlasov.
57067
57068         Pop source data for invalid rules off the stack whenever we have consecutive CSSParser::markRuleHeaderStart() invocations.
57069
57070         Test: inspector/styles/parse-stylesheet-errors.html
57071
57072         * css/CSSParser.cpp:
57073         (WebCore::CSSParser::popRuleData):
57074         (WebCore::CSSParser::markRuleHeaderStart):
57075         (WebCore::CSSParser::markRuleBodyStart):
57076         * css/CSSParser.h:
57077         (CSSParser):
57078
57079 2012-10-05  Gabor Rapcsanyi  <rgabor@webkit.org>
57080
57081         Add ARM-NEON support to VectorMath in WebAudio
57082         https://bugs.webkit.org/show_bug.cgi?id=98131
57083
57084         Reviewed by Zoltan Herczeg.
57085
57086         Speed up vector operations in WebAudio with NEON intrinsics.
57087
57088         * platform/audio/VectorMath.cpp:
57089         (WebCore::VectorMath::vsma):
57090         (WebCore::VectorMath::vsmul):
57091         (WebCore::VectorMath::vadd):
57092         (WebCore::VectorMath::vmul):
57093         (WebCore::VectorMath::zvmul):
57094         (WebCore::VectorMath::vsvesq):
57095         (WebCore::VectorMath::vmaxmgv):
57096
57097 2012-10-05  Simon Hausmann  <simon.hausmann@digia.com>
57098
57099         Unreviewed, rolling out r130495.
57100         http://trac.webkit.org/changeset/130495
57101         https://bugs.webkit.org/show_bug.cgi?id=98268
57102
57103         Made WK2 tests crash.
57104
57105         * Target.pri:
57106         * platform/qt/QStyleFacade.cpp: Removed.
57107         * platform/qt/QStyleFacade.h: Removed.
57108
57109 2012-10-05  Simon Hausmann  <simon.hausmann@digia.com>
57110
57111         [Qt] Make RenderThemeQStyle/ScrollbarThemeQStyle compile without QStyle/QtWidgets
57112         https://bugs.webkit.org/show_bug.cgi?id=98268
57113
57114         Reviewed by Tor Arne Vestbø.
57115
57116         Extracted QStyle/QWidget related code into a QWebStyle class that implements the QStyleFacade interface.
57117
57118         QStyleFacade is a pure interface that lives in WebCore/platform/qt
57119         (next to RenderThemeQStyle and ScrollbarThemeQStyle) and provides a
57120         minimal interface of what we need to draw with QStyle as well as basic
57121         hit testing and metric retrieval. It also provides a
57122         QStyleFacadeOption class that aggregates common meta-data for
57123         rendering primitives, such as direction, rectangle, state (sunken,
57124         enabled, etc.) or palette. It also provides some more slider/scrollbar
57125         specific fields in a slider sub-structure.
57126
57127         RenderThemeQStyle/ScrollbarThemeQStyle used to instantiate specific QStyleOption sub-classes and populate
57128         them with state information from render objects, before calling straight to QStyle. Most of the common code
57129         was encapsulated in StylePainterQStyle.
57130
57131         The new RenderThemeQStyle/ScrolllbarThemeQStyle uses common code in
57132         StylePainterQStyle to populate state into QStyleFacadeOption before
57133         calling into QStyleFacade.
57134
57135         The style facade is then implemented by QStyleFacadeImp, which extracts
57136         meta-data from QStyleFacadeOption arguments, populates style
57137         primitive specific QStyleOption objects and then calls on QStyle.
57138
57139         RenderThemeQStyle/ScrollbarThemeQStyle can only use interface methods
57140         from QStyleFacade. QStyleFacadeImp on the other hand will live in the
57141         separate QtWebKitWidgets library in the future and therefore cannot use
57142         any WebCore types.
57143
57144         * Target.pri:
57145         * platform/qt/QStyleFacade.cpp: Added.
57146         (WebCore):
57147         (WebCore::QStyleFacade::styleForPage):
57148         * platform/qt/QStyleFacade.h: Added.
57149         (WebCore):
57150         (QStyleFacade):
57151         (WebCore::QStyleFacade::~QStyleFacade):
57152         (WebCore::QStyleFacadeOption::QStyleFacadeOption):
57153         (QStyleFacadeOption):
57154         * platform/qt/RenderThemeQStyle.cpp: Renamed from Source/WebKit/qt/WebCoreSupport/RenderThemeQStyle.cpp.
57155         (WebCore):
57156         (WebCore::RenderThemeQStyle::getStylePainter):
57157         (WebCore::StylePainterQStyle::StylePainterQStyle):
57158         (WebCore::StylePainterQStyle::init):
57159         (WebCore::RenderThemeQStyle::create):
57160         (WebCore::RenderThemeQStyle::setStyleFactoryFunction):
57161         (WebCore::RenderThemeQStyle::styleFactory):
57162         (WebCore::RenderThemeQStyle::RenderThemeQStyle):
57163         (WebCore::RenderThemeQStyle::~RenderThemeQStyle):
57164         (WebCore::RenderThemeQStyle::setPaletteFromPageClientIfExists):
57165         (WebCore::RenderThemeQStyle::inflateButtonRect):
57166         (WebCore::RenderThemeQStyle::computeSizeBasedOnStyle):
57167         (WebCore::RenderThemeQStyle::adjustButtonStyle):
57168         (WebCore::RenderThemeQStyle::setButtonPadding):
57169         (WebCore::RenderThemeQStyle::paintButton):
57170         (WebCore::RenderThemeQStyle::paintTextField):
57171         (WebCore::RenderThemeQStyle::adjustTextAreaStyle):
57172         (WebCore::RenderThemeQStyle::paintTextArea):
57173         (WebCore::RenderThemeQStyle::setPopupPadding):
57174         (WebCore::RenderThemeQStyle::colorPalette):
57175         (WebCore::RenderThemeQStyle::paintMenuList):
57176         (WebCore::RenderThemeQStyle::adjustMenuListButtonStyle):
57177         (WebCore::RenderThemeQStyle::paintMenuListButton):
57178         (WebCore::RenderThemeQStyle::animationDurationForProgressBar):
57179         (WebCore::RenderThemeQStyle::paintProgressBar):
57180         (WebCore::RenderThemeQStyle::paintSliderTrack):
57181         (WebCore::RenderThemeQStyle::adjustSliderTrackStyle):
57182         (WebCore::RenderThemeQStyle::paintSliderThumb):
57183         (WebCore::RenderThemeQStyle::adjustSliderThumbStyle):
57184         (WebCore::RenderThemeQStyle::paintSearchField):
57185         (WebCore::RenderThemeQStyle::adjustSearchFieldDecorationStyle):
57186         (WebCore::RenderThemeQStyle::paintSearchFieldDecoration):
57187         (WebCore::RenderThemeQStyle::adjustSearchFieldResultsDecorationStyle):
57188         (WebCore::RenderThemeQStyle::paintSearchFieldResultsDecoration):
57189         (WebCore::RenderThemeQStyle::paintInnerSpinButton):
57190         (WebCore::RenderThemeQStyle::initializeCommonQStyleOptions):
57191         (WebCore::RenderThemeQStyle::adjustSliderThumbSize):
57192         * platform/qt/RenderThemeQStyle.h: Renamed from Source/WebKit/qt/WebCoreSupport/RenderThemeQStyle.h.
57193         (WebCore):
57194         (RenderThemeQStyle):
57195         (WebCore::RenderThemeQStyle::qStyle):
57196         (StylePainterQStyle):
57197         (WebCore::StylePainterQStyle::isValid):
57198         (WebCore::StylePainterQStyle::paintButton):
57199         (WebCore::StylePainterQStyle::paintTextField):
57200         (WebCore::StylePainterQStyle::paintComboBox):
57201         (WebCore::StylePainterQStyle::paintComboBoxArrow):
57202         (WebCore::StylePainterQStyle::paintSliderTrack):
57203         (WebCore::StylePainterQStyle::paintSliderThumb):
57204         (WebCore::StylePainterQStyle::paintInnerSpinButton):
57205         (WebCore::StylePainterQStyle::paintProgressBar):
57206         (WebCore::StylePainterQStyle::paintScrollCorner):
57207         (WebCore::StylePainterQStyle::paintScrollBar):
57208         * platform/qt/ScrollbarThemeQStyle.cpp: Renamed from Source/WebKit/qt/WebCoreSupport/ScrollbarThemeQStyle.cpp.
57209         (WebCore):
57210         (WebCore::ScrollbarThemeQStyle::ScrollbarThemeQStyle):
57211         (WebCore::ScrollbarThemeQStyle::~ScrollbarThemeQStyle):
57212         (WebCore::scPart):
57213         (WebCore::scrollbarPart):
57214         (WebCore::initSliderStyleOption):
57215         (WebCore::ScrollbarThemeQStyle::paint):
57216         (WebCore::ScrollbarThemeQStyle::hitTest):
57217         (WebCore::ScrollbarThemeQStyle::shouldCenterOnThumb):
57218         (WebCore::ScrollbarThemeQStyle::invalidatePart):
57219         (WebCore::ScrollbarThemeQStyle::scrollbarThickness):
57220         (WebCore::ScrollbarThemeQStyle::thumbPosition):
57221         (WebCore::ScrollbarThemeQStyle::thumbLength):
57222         (WebCore::ScrollbarThemeQStyle::trackPosition):
57223         (WebCore::ScrollbarThemeQStyle::trackLength):
57224         (WebCore::ScrollbarThemeQStyle::paintScrollCorner):
57225         * platform/qt/ScrollbarThemeQStyle.h: Renamed from Source/WebKit/qt/WebCoreSupport/ScrollbarThemeQStyle.h.
57226         (WebCore):
57227         (ScrollbarThemeQStyle):
57228         (WebCore::ScrollbarThemeQStyle::qStyle):
57229
57230 2012-10-05  Andrei Bucur  <abucur@adobe.com>
57231
57232         Incomplete repaint of boxes with inset box-shadow and padding when resized
57233         https://bugs.webkit.org/show_bug.cgi?id=59863
57234
57235         Reviewed by Simon Fraser.
57236
57237         The patch extends the repaint rectangle to include the inset shadow extent for renderers that resize and need to be repainted. The rectangle computations are also better fragmented and easier to read.
57238
57239         New Test: fast/repaint/box-shadow-inset-repaint.html
57240
57241         * rendering/RenderObject.cpp:
57242         (WebCore::RenderObject::repaintAfterLayoutIfNeeded):
57243         * rendering/style/RenderStyle.cpp:
57244         (WebCore::RenderStyle::getShadowInsetExtent):
57245         (WebCore):
57246         * rendering/style/RenderStyle.h:
57247
57248 2012-10-04  Kent Tamura  <tkent@chromium.org>
57249
57250         Fix sub-field width to the maximum width of a placeholder and the maximum value
57251         https://bugs.webkit.org/show_bug.cgi?id=98481
57252
57253         Reviewed by Hajime Morita.
57254
57255         We can't assume a placeholder text is shorter than the width of
57256         digits. The placeholder string for the year field of
57257         input[type=week] is "----", but input[type=date] will have a
57258         localized string for it.
57259
57260         We should set the 'width' CSS property to the maximum of the
57261         placeholder width and the maximum value width in order to prevent
57262         the field width from growing/narrowing.
57263
57264         Before this patch, we secured four digits space for a year field,
57265         and allowed the field to grow its width when a larger year is
57266         set. After this patch, we don't allow it to grow because the
57267         'width' property is set to the maximum width.
57268
57269         Update week-multiple-fields-appearance-basic.html, and the
57270         following tests are affected.
57271         - fast/forms/week-multiple-fields/week-multiple-fields-appearance-pseudo-classes.html
57272         - fast/forms/week-multiple-fields/week-multiple-fields-appearance-pseudo-elements.html
57273         - fast/forms/week-multiple-fields/week-multiple-fields-appearance-style.html
57274
57275         * html/shadow/DateTimeNumericFieldElement.cpp:
57276         (WebCore::DateTimeNumericFieldElement::DateTimeNumericFieldElement):
57277         Enable customStyleForRenderer.
57278         (WebCore::DateTimeNumericFieldElement::customStyleForRenderer):
57279         Added. The code is similar to DateTimeSymbolicFieldElement::customStyleForRenderer().
57280         (WebCore::DateTimeNumericFieldElement::formatValue):
57281         Made a function with the code in value(). This is used in
57282         customStyleForRenderer() and value().
57283         (WebCore::DateTimeNumericFieldElement::value): Use formatValue().
57284         * html/shadow/DateTimeNumericFieldElement.h:
57285         (DateTimeNumericFieldElement): Declare new functions.
57286
57287 2012-10-05  Kent Tamura  <tkent@chromium.org>
57288
57289         Improve spelling and performance of Localizer.cpp
57290         https://bugs.webkit.org/show_bug.cgi?id=98485
57291
57292         Reviewed by Kentaro Hara.
57293
57294         Some improvements pointed in webkit.org/b/98229#c5.
57295
57296         No new tests because of no behavior change.
57297
57298         * platform/text/Localizer.h:
57299         (Localizer):
57300          - Rename dateTimeFormatWithSecond to dateTimeFormatWithSeconds
57301          - Rename dateTimeFormatWithoutSecond to dateTimeFormatWithoutSeconds
57302          - Add data members: m_dateTimeFormatWithSeconds and m_dateTimeFormatWithoutSeconds.
57303         * platform/text/Localizer.cpp:
57304         (WebCore::Localizer::timeFormat): Check isNull instead of isEmpty
57305         (WebCore::Localizer::shortTimeFormat): Ditto.
57306         (WebCore::Localizer::dateTimeFormatWithSeconds):
57307         - Renamed.
57308         - Cache the concatenation result to a data member.
57309         (WebCore::Localizer::dateTimeFormatWithoutSeconds): Ditto.
57310
57311         * html/DateTimeInputType.cpp:
57312         (WebCore::DateTimeInputType::setupLayoutParameters): Follow the renaming.
57313         * html/DateTimeLocalInputType.cpp:
57314         (WebCore::DateTimeLocalInputType::setupLayoutParameters): Ditto.
57315
57316 2012-10-04  Kenichi Ishibashi  <bashi@chromium.org>
57317
57318         [WebSocket] ExtensionParser should have its own file
57319         https://bugs.webkit.org/show_bug.cgi?id=98475
57320
57321         Reviewed by Yuta Kitamura.
57322
57323         Factor out ExtensionParser from WebSocketExtensionDispatcher and rename it as WebSocketExtensionParser.
57324         WebSocketExtensionParser has its own file.
57325
57326         No changes in behavior. Added a test case for parsing Sec-WebSocket-Extensions field as a chromium unit test.
57327
57328         * CMakeLists.txt: Added WebSocketExtensionParser.
57329         * GNUmakefile.list.am: Ditto.
57330         * Modules/websockets/WebSocketExtensionDispatcher.cpp:
57331         (WebCore::WebSocketExtensionDispatcher::processHeaderValue):
57332         Use WebSocketExtensionParser::parseExtension() to parser extension header value.
57333         * Modules/websockets/WebSocketExtensionParser.cpp: Added.
57334         (WebCore):
57335         (WebCore::WebSocketExtensionParser::finished): Moved from ExtensionParser.
57336         (WebCore::WebSocketExtensionParser::parsedSuccessfully): Ditto.
57337         (WebCore::isSeparator): Ditto.
57338         (WebCore::WebSocketExtensionParser::skipSpaces): Ditto.
57339         (WebCore::WebSocketExtensionParser::consumeToken): Ditto.
57340         (WebCore::WebSocketExtensionParser::consumeQuotedString): Ditto.
57341         (WebCore::WebSocketExtensionParser::consumeQuotedStringOrToken): Ditto.
57342         (WebCore::WebSocketExtensionParser::consumeCharacter): Ditto.
57343         (WebCore::WebSocketExtensionParser::parseExtension): Moved from WebSocketExtensionDispatcher.
57344         * Modules/websockets/WebSocketExtensionParser.h: Added.
57345         (WebCore):
57346         (WebSocketExtensionParser):
57347         (WebCore::WebSocketExtensionParser::WebSocketExtensionParser):
57348         (WebCore::WebSocketExtensionParser::currentToken):
57349         * Target.pri: Added WebSocketExtensionParser.
57350         * WebCore.gypi: Ditto.
57351         * WebCore.vcproj/WebCore.vcproj: Ditto.
57352         * WebCore.xcodeproj/project.pbxproj: Ditto.
57353
57354 2012-10-04  Kunihiko Sakamoto  <ksakamoto@chromium.org>
57355
57356         <input> size attribute should throw INDEX_SIZE_ERR when set to 0
57357         https://bugs.webkit.org/show_bug.cgi?id=61675
57358
57359         Reviewed by Kent Tamura.
57360
57361         According to the spec, the size IDL attribute of input elements is limited
57362         to only non-negative numbers greater than zero. It should throw INDEX_SIZE_ERR
57363         exception when set to 0. New behavior matches both Firefox and IE.
57364         Spec: http://www.w3.org/TR/html5/common-input-element-attributes.html#the-size-attribute
57365
57366         Test: fast/dom/HTMLInputElement/input-size-attribute.html
57367
57368         * html/HTMLInputElement.cpp:
57369         (WebCore::HTMLInputElement::setSize):
57370         * html/HTMLInputElement.h:
57371         (HTMLInputElement):
57372         * html/HTMLInputElement.idl:
57373
57374 2012-10-04  Kent Tamura  <tkent@chromium.org>
57375
57376         Fix font for date/time input types.
57377         https://bugs.webkit.org/show_bug.cgi?id=98478
57378
57379         Reviewed by Kentaro Hara.
57380
57381         input[type=date] should use monospace font if
57382         ENABLE_INPUT_MULTIPLE_FIELDS_UI && ENABLE_INPUT_TYPE_DATE.
57383
57384         For other date/time types, they should use monospace font only
57385         if their types are enabled. input[type="foo"] matches input
57386         element with type="foo" even if the foo type is not supported.
57387
57388         The input[type=date] change is covered by
57389         fast/forms/date/calendar-picker-appearance.html,
57390         platform/chromium/fast/forms/date/date-suggestion-picker-appearance*.html
57391
57392         * css/html.css:
57393         (input[type="date"]):
57394         (input[type="datetime"]):
57395         (input[type="datetime-local"]):
57396         (input[type="month"]):
57397         (input[type="time"]):
57398
57399 2012-10-04  Hajime Morrita  <morrita@google.com>
57400
57401         [Refactoring] Some classes in StyleResolver.cpp/h could have its own file.
57402         https://bugs.webkit.org/show_bug.cgi?id=98469
57403
57404         Reviewed by Dimitri Glazkov.
57405
57406         This change extracts RuleData, RuleSet, RuleFeature and Featurs class
57407         to its own file: RuleSet.h/cpp and RuleFeature.h/cpp
57408
57409         RuleFeature class is moved fro StyleResolver inner class to plain WebCore class.
57410         Feaures class is renamed to RuleFeatureSet to avoid possible name conflict.
57411
57412         No new tests. Just splitting file and doing simple rename.
57413
57414         * CMakeLists.txt:
57415         * GNUmakefile.list.am:
57416         * Target.pri:
57417         * WebCore.gypi:
57418         * WebCore.xcodeproj/project.pbxproj:
57419         * css/CSSAllInOne.cpp:
57420         * css/RuleFeature.cpp: Added.
57421         (WebCore):
57422         (WebCore::RuleFeatureSet::add):
57423         (WebCore::RuleFeatureSet::clear):
57424         (WebCore::RuleFeatureSet::reportMemoryUsage):
57425         * css/RuleFeature.h: Added.
57426         (WebCore):
57427         (RuleFeature):
57428         (WebCore::RuleFeature::RuleFeature):
57429         (RuleFeatureSet):
57430         (WebCore::RuleFeatureSet::RuleFeatureSet):
57431         * css/RuleSet.cpp: Added.
57432         (WebCore):
57433         (WebCore::isSelectorMatchingHTMLBasedOnRuleHash):
57434         (WebCore::selectorListContainsUncommonAttributeSelector):
57435         (WebCore::isCommonAttributeSelectorAttribute):
57436         (WebCore::containsUncommonAttributeSelector):
57437         (WebCore::RuleData::RuleData):
57438         (WebCore::RuleData::reportMemoryUsage):
57439         (WebCore::reportAtomRuleMap):
57440         (WebCore::RuleSet::reportMemoryUsage):
57441         (WebCore::RuleSet::RuleSetSelectorPair::reportMemoryUsage):
57442         (WebCore::collectFeaturesFromSelector):
57443         (WebCore::collectFeaturesFromRuleData):
57444         (WebCore::RuleSet::addToRuleSet):
57445         (WebCore::RuleSet::addRule):
57446         (WebCore::RuleSet::addPageRule):
57447         (WebCore::RuleSet::addRegionRule):
57448         (WebCore::RuleSet::addRulesFromSheet):
57449         (WebCore::RuleSet::addStyleRule):
57450         (WebCore::shrinkMapVectorsToFit):
57451         (WebCore::RuleSet::shrinkToFit):
57452         * css/RuleSet.h: Added.
57453         (WebCore):
57454         (RuleData):
57455         (WebCore::RuleData::position):
57456         (WebCore::RuleData::rule):
57457         (WebCore::RuleData::selector):
57458         (WebCore::RuleData::selectorIndex):
57459         (WebCore::RuleData::hasFastCheckableSelector):
57460         (WebCore::RuleData::hasMultipartSelector):
57461         (WebCore::RuleData::hasRightmostSelectorMatchingHTMLBasedOnRuleHash):
57462         (WebCore::RuleData::containsUncommonAttributeSelector):
57463         (WebCore::RuleData::specificity):
57464         (WebCore::RuleData::linkMatchType):
57465         (WebCore::RuleData::hasDocumentSecurityOrigin):
57466         (WebCore::RuleData::isInRegionRule):
57467         (WebCore::RuleData::descendantSelectorIdentifierHashes):
57468         (SameSizeAsRuleData):
57469         (RuleSet):
57470         (WebCore::RuleSet::create):
57471         (WebCore::RuleSet::disableAutoShrinkToFit):
57472         (WebCore::RuleSet::features):
57473         (WebCore::RuleSet::idRules):
57474         (WebCore::RuleSet::classRules):
57475         (WebCore::RuleSet::tagRules):
57476         (WebCore::RuleSet::shadowPseudoElementRules):
57477         (WebCore::RuleSet::linkPseudoClassRules):
57478         (WebCore::RuleSet::focusPseudoClassRules):
57479         (WebCore::RuleSet::universalRules):
57480         (WebCore::RuleSet::pageRules):
57481         (WebCore::RuleSet::RuleSetSelectorPair::RuleSetSelectorPair):
57482         (RuleSetSelectorPair):
57483         (WebCore::RuleSet::RuleSet):
57484         * css/StyleResolver.cpp:
57485         (WebCore):
57486         (WebCore::makeRuleSet):
57487         (WebCore::StyleResolver::collectMatchingRulesForList):
57488         * css/StyleResolver.h:
57489         (StyleResolver):
57490
57491 2012-10-04  Adam Barth  <abarth@webkit.org>
57492
57493         FeatureObserver should distinguish between legacy HTML and text notifications
57494         https://bugs.webkit.org/show_bug.cgi?id=98441
57495
57496         Reviewed by Tony Chang.
57497
57498         We might be able to drop support for legacy HTML notifications before
57499         we can drop support for legacy text notifications. We should measure
57500         and find out.
57501
57502         * Modules/notifications/NotificationCenter.idl:
57503         * page/FeatureObserver.h:
57504
57505 2012-10-04  Pravin D  <pravind.2k4@gmail.com>
57506
57507         Removing the unused member variable m_wasMalformed from HTMLFormElement class and its related code frgment.
57508         https://bugs.webkit.org/show_bug.cgi?id=98444
57509
57510         Reviewed by Eric Seidel.
57511
57512         The member variable m_wasMalformed of HTMLFormElement class was used to determine if the <form> tag was malformed or not.
57513         This information was used elsewhere to decide if bottom margins have to be included for such a <form>.
57514         However currently this member variable is not being set by any code following code refactoring in HTML parser class.
57515
57516         Code cleanup patch. No new tests required.
57517
57518         * html/HTMLFormElement.cpp:
57519         (WebCore::HTMLFormElement::HTMLFormElement):
57520           Removed m_wasMalformed initialization.
57521
57522         * html/HTMLFormElement.h:
57523         (HTMLFormElement):
57524          Removed m_wasMalformed variable.
57525          Removed m_wasMalformed variable's setter and getter functions.
57526
57527         * rendering/RenderBlock.cpp:
57528         (WebCore::RenderBlock::layoutBlock):
57529          Removed code fragment using/dependent on m_wasMalformed.
57530
57531 2012-10-04  Rik Cabanier  <cabanier@adobe.com>
57532
57533         Turn Compositing on by default in WebKit build
57534         https://bugs.webkit.org/show_bug.cgi?id=98315
57535
57536         Reviewed by Simon Fraser.
57537
57538         enable -webkit-blend-mode on trunk.
57539
57540         No new tests. Existing blending test were updated.
57541
57542         * Configurations/FeatureDefines.xcconfig:
57543         * css/CSSPropertyNames.in:
57544         * css/CSSValueKeywords.in:
57545
57546 2012-10-04  Hayato Ito  <hayato@chromium.org>
57547
57548         [Refactoring] Introduce a traversal strategy in SelectorChecker
57549         https://bugs.webkit.org/show_bug.cgi?id=97298
57550
57551         Reviewed by Antti Koivisto.
57552
57553         We extract DOM traversal code from SelectorChecker so that we can use another traversal strategy.
57554         Another traversal strategy will be introduced in Bug 96990.
57555
57556         Since this code path is very hot, we were very careful not to regress performance.
57557         We will use template specialization to change the traversal implementation.
57558
57559         We confirmed that this patch does not regress SelectorCheckerPerformance. I have checked the performance of
57560         the added test in my Linux Box using run-perf-tests.
57561
57562         The performance of the added test before using this patch was:
57563
57564           RESULT CSS: PseudoClassSelectors= 3399.68308031 runs/s
57565           median= 3404.48685564 runs/s, stdev= 37.3480114449 runs/s, min= 3272.64871114 runs/s, max= 3438.72385184 runs/s
57566
57567         When we used this patch, the performance was:
57568
57569           RESULT CSS: PseudoClassSelectors= 3367.74473886 runs/s
57570           median= 3367.12072755 runs/s, stdev= 14.1464547639 runs/s, min= 3348.55881171 runs/s, max= 3395.98212857 runs/s
57571
57572         Test: PerformanceTests/CSS/PseudoClass-Selectors.html
57573
57574         * css/SelectorChecker.cpp:
57575         (WebCore):
57576         (WebCore::SelectorChecker::checkSelector): Make this a template method to accept another Context type.
57577         Another Context type will be introduced in coming patch.
57578         (WebCore::SelectorChecker::checkOneSelector):
57579         (WebCore::SelectorChecker::DOMTraversalStrategy::isFirstChild):
57580         (WebCore::SelectorChecker::DOMTraversalStrategy::isLastChild):
57581         (WebCore::SelectorChecker::DOMTraversalStrategy::isFirstOfType):
57582         (WebCore::SelectorChecker::DOMTraversalStrategy::isLastOfType):
57583         (WebCore::SelectorChecker::DOMTraversalStrategy::countElementsBefore):
57584         (WebCore::SelectorChecker::DOMTraversalStrategy::countElementsOfTypeBefore):
57585         (WebCore::SelectorChecker::DOMTraversalStrategy::countElementsAfter):
57586         (WebCore::SelectorChecker::DOMTraversalStrategy::countElementsOfTypeAfter):
57587         * css/SelectorChecker.h:
57588         (WebCore::SelectorChecker::SelectorCheckingContext::SelectorCheckingContext):
57589         (SelectorCheckingContext):
57590         (SelectorChecker):
57591         (DOMTraversalStrategy): Extracted the DOM traversal code from SelectorChecker. Another traversal code
57592         will be introduced the coming patch.
57593
57594 2012-10-04  Eric Seidel  <eric@webkit.org>
57595
57596         SVGAttributeHashTranslator does not need to copy QualifiedName in the common case
57597         https://bugs.webkit.org/show_bug.cgi?id=98473
57598
57599         Reviewed by Adam Barth.
57600
57601         I tested this using instruments on a test case which modified SVG attributes in a loop.
57602         I believe pdr has some perf-tests in this area, but they weren't needed here.  A simple sample showed this as a huge win,
57603         since we're no longer creating a QualifiedName (and thus adding it to the hash) on each QualifiedName-based lookup in SVG.
57604
57605         * svg/SVGElement.h:
57606         (WebCore::SVGAttributeHashTranslator::hash):
57607         (WebCore::SVGAttributeHashTranslator::equal):
57608
57609 2012-10-04  Julien Chaffraix  <jchaffraix@webkit.org>
57610
57611         Split the intrinsic padding update code out of RenderTableSection::layoutRows
57612         https://bugs.webkit.org/show_bug.cgi?id=98454
57613
57614         Reviewed by Eric Seidel.
57615
57616         RenderTableSection::layoutRows is very long and it's difficult to see what's
57617         going on. This change moves the intrinsic padding update code into RenderTableCell
57618         for clarity. While at it, cleaned up a bit the code (renaming variables, functions).
57619
57620         Change covered by existing table tests.
57621
57622         * rendering/RenderTableCell.cpp:
57623         (WebCore::RenderTableCell::computeIntrinsicPadding):
57624         Added this new function that does the update. Removed the 'default' case, replaced by
57625         the explicit label BASELINE_MIDDLE.
57626
57627         * rendering/RenderTableCell.h:
57628         (WebCore::RenderTableCell::setIntrinsicPaddingBefore):
57629         (WebCore::RenderTableCell::setIntrinsicPaddingAfter):
57630         (WebCore::RenderTableCell::setIntrinsicPadding):
57631         Moved those setters to the private section as we want other classes
57632         to use computeIntrinsicPadding.
57633
57634         * rendering/RenderTableSection.cpp:
57635         (WebCore::RenderTableSection::layoutRows):
57636         Replaced the code with a call to RenderTableCell::computeIntrinsicPadding.
57637         Also moved 2 variables in the loop per our coding style.
57638
57639         * rendering/RenderTableSection.h:
57640         (WebCore::RenderTableSection::rowBaseline):
57641         Renamed to match our coding style.
57642
57643 2012-10-04  Nate Chapin  <japhet@chromium.org>
57644
57645         Crash in EventHandler::mouseMoved().
57646         https://bugs.webkit.org/show_bug.cgi?id=98460
57647
57648         Reviewed by Abhishek Arya.
57649
57650         No new tests, this fixes fast/events/mouse-moved-remove-frame-crash.html.
57651
57652         * page/EventHandler.cpp:
57653         (WebCore::EventHandler::mouseMoved):
57654
57655 2012-10-04  Adam Barth  <abarth@webkit.org>
57656
57657         [V8] NotificationCenter leaks because it uses buggy custom bindings
57658         https://bugs.webkit.org/show_bug.cgi?id=98445
57659
57660         Reviewed by Tony Chang.
57661
57662         There's no reason to use custom bindings here. All they do is cause leaks..
57663
57664         * Modules/notifications/NotificationCenter.idl:
57665         * bindings/v8/custom/V8NotificationCenterCustom.cpp:
57666
57667 2012-10-04  Tab Atkins  <jackalmage@gmail.com>
57668
57669         Selector specificity categories "overflow" into higher categories
57670         https://bugs.webkit.org/show_bug.cgi?id=98295
57671
57672         Reviewed by Eric Seidel.
57673
57674         This patch adds per-component overflow guards for CSS selector specificity.
57675         Previously, we didn't guard against overflow. 
57676         Since we stored each component as a byte mapped into a single unsigned int for the whole specificity,
57677         256 of a particular simple selector was equivalent to 1 of the next-higher-group selector.
57678         This violated the Selectors specification,
57679         which requires the components to be compared lexicographically.
57680
57681         Tests: /fast/selectors/specificity-overflow.html
57682
57683         * css/CSSSelector.cpp:
57684         (WebCore::CSSSelector::specificity):
57685
57686 2012-10-04  Enrica Casucci  <enrica@apple.com>
57687
57688         Font::glyphDataAndPageForCharacter doesn't account for text orientation when using systemFallback on a cold cache.
57689         https://bugs.webkit.org/show_bug.cgi?id=98452.
57690
57691         Reviewed by Dan Bernstein.
57692
57693         The text orientation was considered only when there is a cache hit.
57694         This change moves the logic to handle text orientation to a separate
57695         inline function that is called also when the glyph is added to the cache.
57696
57697         Test: fast/text/vertical-rl-rtl-linebreak.html
57698
57699         * platform/graphics/FontFastPath.cpp:
57700         (WebCore::applyTextOrientationForCharacter): Added.
57701         (WebCore::Font::glyphDataAndPageForCharacter): Modified to use the new function in
57702         both cases of cold and warm cache.
57703
57704 2012-10-04  Adam Klein  <adamk@chromium.org>
57705
57706         MutationRecord attributeName should be null for non attribute changes
57707         https://bugs.webkit.org/show_bug.cgi?id=98438
57708
57709         Reviewed by Ojan Vafai.
57710
57711         Test: fast/mutation/mutation-record-nullity.html
57712
57713         * dom/MutationRecord.idl:
57714
57715 2012-10-04  Simon Fraser  <simon.fraser@apple.com>
57716
57717         Final part of "sync" to "flush" renaming
57718         https://bugs.webkit.org/show_bug.cgi?id=98430
57719
57720         Reviewed by Tim Horton.
57721
57722         Change method names on GraphicsLayer and GraphicsLayerClient that
57723         refer to "sync" to use the term "flush" instead, to be consistent
57724         with the rest of the code.
57725
57726         * platform/graphics/GraphicsLayer.h:
57727         (WebCore::GraphicsLayer::flushCompositingState):
57728         (WebCore::GraphicsLayer::flushCompositingStateForThisLayerOnly):
57729         * platform/graphics/GraphicsLayerClient.h:
57730         (GraphicsLayerClient):
57731         * platform/graphics/blackberry/GraphicsLayerBlackBerry.h:
57732         (WebCore::GraphicsLayerBlackBerry::notifyFlushRequired):
57733         * platform/graphics/blackberry/LayerWebKitThread.cpp:
57734         (WebCore::LayerWebKitThread::setNeedsCommit):
57735         * platform/graphics/ca/GraphicsLayerCA.cpp:
57736         (WebCore::GraphicsLayerCA::flushCompositingState):
57737         (WebCore::GraphicsLayerCA::flushCompositingStateForThisLayerOnly):
57738         (WebCore::GraphicsLayerCA::platformCALayerDidCreateTiles):
57739         (WebCore::GraphicsLayerCA::positionForCloneRootLayer):
57740         (WebCore::GraphicsLayerCA::noteLayerPropertyChanged):
57741         * platform/graphics/ca/GraphicsLayerCA.h:
57742         (GraphicsLayerCA):
57743         * platform/graphics/texmap/GraphicsLayerTextureMapper.cpp:
57744         (WebCore::GraphicsLayerTextureMapper::notifyChange):
57745         (WebCore::GraphicsLayerTextureMapper::flushCompositingStateForThisLayerOnly):
57746         (WebCore::GraphicsLayerTextureMapper::flushCompositingState):
57747         * platform/graphics/texmap/GraphicsLayerTextureMapper.h:
57748         (GraphicsLayerTextureMapper):
57749         * platform/graphics/texmap/TextureMapperLayer.cpp:
57750         (WebCore::TextureMapperLayer::flushCompositingState):
57751         (WebCore::TextureMapperLayer::flushCompositingStateSelf):
57752         * platform/graphics/texmap/TextureMapperLayer.h:
57753         (TextureMapperLayer):
57754         * rendering/RenderLayerBacking.cpp:
57755         (WebCore::RenderLayerBacking::notifyFlushRequired):
57756         * rendering/RenderLayerBacking.h:
57757         (RenderLayerBacking):
57758         * rendering/RenderLayerCompositor.cpp:
57759         (WebCore::RenderLayerCompositor::flushPendingLayerChanges):
57760         * rendering/RenderLayerCompositor.h:
57761         (WebCore::RenderLayerCompositor::notifyFlushRequired):
57762
57763 2012-10-04  Tab Atkins  <tabatkins@google.com>
57764
57765         1ex should equal .5em when the font has no x-height metric
57766         https://bugs.webkit.org/show_bug.cgi?id=80360
57767
57768         Reviewed by Eric Seidel.
57769
57770         Updated FontMetrics and CSSPrimitiveValue to have/use an explicit "hasXHeight" flag to determine how to size an 'ex' unit.
57771
57772         Updated a few of the platform font files to set the flag properly.
57773
57774         Patch cleanup by David Barr <davidbarr@chromium.org>.
57775
57776         Test: fast/css/ex-unit-with-no-x-height.html
57777
57778         * css/CSSPrimitiveValue.cpp:
57779         (WebCore::CSSPrimitiveValue::computeLengthDouble):
57780         * platform/graphics/FontMetrics.h:
57781         (WebCore::FontMetrics::FontMetrics):
57782         (WebCore::FontMetrics::setXHeight):
57783         (FontMetrics):
57784         (WebCore::FontMetrics::hasXHeight):
57785         (WebCore::FontMetrics::setHasXHeight):
57786         (WebCore::FontMetrics::reset):
57787         * platform/graphics/skia/SimpleFontDataSkia.cpp:
57788         (WebCore::SimpleFontData::platformInit):
57789
57790 2012-10-04  Ryosuke Niwa  <rniwa@webkit.org>
57791
57792         Build fix after r130411. Add the right offset.
57793         Also use RefPtr instead of a raw pointer for next and previous pointers.
57794
57795         * editing/ReplaceSelectionCommand.cpp:
57796         (WebCore::ReplaceSelectionCommand::mergeTextNodesAroundPosition):
57797
57798 2012-10-04  Alec Flett  <alecflett@chromium.org>
57799
57800         IndexedDB: promote objectstore/index backend ids to the frontend
57801         https://bugs.webkit.org/show_bug.cgi?id=97834
57802
57803         Reviewed by Tony Chang.
57804
57805         Expose int64-based database/objectStore/index ids to the renderer,
57806         step 1 of 2. Support both styles of createObjectStore and
57807         createIndex: those that take an explicit id, and those that take
57808         -1, meaning to autogenerate an id on the backend. In part 2, after
57809         the chromium side lands, support for the autogenerated ids will be
57810         removed. (See https://bugs.webkit.org/show_bug.cgi?id=98085)
57811
57812         This is a part of larger refactoring work to ultimately make the interface
57813         between the frontend and the backend simpler.
57814
57815         No new tests, extensive ASSERTs and existing tests cover correctness.
57816
57817         * Modules/indexeddb/IDBBackingStore.h:
57818         (IDBBackingStore):
57819         * Modules/indexeddb/IDBDatabase.cpp:
57820         (WebCore::IDBDatabase::createObjectStore):
57821         * Modules/indexeddb/IDBDatabaseBackendImpl.cpp:
57822         (WebCore::IDBDatabaseBackendImpl::IDBDatabaseBackendImpl):
57823         (WebCore::IDBDatabaseBackendImpl::openInternal):
57824         (WebCore::IDBDatabaseBackendImpl::metadata):
57825         (WebCore::IDBDatabaseBackendImpl::createObjectStore):
57826         (WebCore):
57827         (WebCore::IDBDatabaseBackendImpl::createObjectStoreInternal):
57828         (WebCore::IDBDatabaseBackendImpl::loadObjectStores):
57829         * Modules/indexeddb/IDBDatabaseBackendImpl.h:
57830         (IDBDatabaseBackendImpl):
57831         * Modules/indexeddb/IDBDatabaseBackendInterface.h:
57832         (IDBDatabaseBackendInterface):
57833         * Modules/indexeddb/IDBIndexBackendImpl.cpp:
57834         (WebCore::IDBIndexBackendImpl::metadata):
57835         * Modules/indexeddb/IDBIndexBackendImpl.h:
57836         (WebCore::IDBIndexBackendImpl::create):
57837         (IDBIndexBackendImpl):
57838         * Modules/indexeddb/IDBLevelDBBackingStore.cpp:
57839         (WebCore):
57840         (WebCore::getMaxObjectStoreId):
57841         (WebCore::IDBLevelDBBackingStore::getIDBDatabaseMetaData):
57842         (WebCore::IDBLevelDBBackingStore::deleteDatabase):
57843         (WebCore::IDBLevelDBBackingStore::getObjectStores):
57844         (WebCore::setMaxObjectStoreId):
57845         (WebCore::IDBLevelDBBackingStore::createObjectStore):
57846         (WebCore::getMaxIndexId):
57847         (WebCore::setMaxIndexId):
57848         (WebCore::IDBLevelDBBackingStore::createIndex):
57849         * Modules/indexeddb/IDBLevelDBBackingStore.h:
57850         (IDBLevelDBBackingStore):
57851         * Modules/indexeddb/IDBMetadata.h:
57852         (WebCore::IDBDatabaseMetadata::IDBDatabaseMetadata):
57853         (IDBDatabaseMetadata):
57854         (WebCore::IDBObjectStoreMetadata::IDBObjectStoreMetadata):
57855         (IDBObjectStoreMetadata):
57856         (WebCore::IDBIndexMetadata::IDBIndexMetadata):
57857         (IDBIndexMetadata):
57858         * Modules/indexeddb/IDBObjectStore.cpp:
57859         (WebCore::IDBObjectStore::createIndex):
57860         * Modules/indexeddb/IDBObjectStoreBackendImpl.cpp:
57861         (WebCore::IDBObjectStoreBackendImpl::IDBObjectStoreBackendImpl):
57862         (WebCore::IDBObjectStoreBackendImpl::metadata):
57863         (WebCore::IDBObjectStoreBackendImpl::createIndex):
57864         (WebCore):
57865         (WebCore::IDBObjectStoreBackendImpl::createIndexInternal):
57866         * Modules/indexeddb/IDBObjectStoreBackendImpl.h:
57867         (WebCore::IDBObjectStoreBackendImpl::create):
57868         (IDBObjectStoreBackendImpl):
57869         * Modules/indexeddb/IDBObjectStoreBackendInterface.h:
57870 2012-10-04  Pravin D  <pravind.2k4@gmail.com>
57871
57872         Layout broken after cloning and re-inserting a table with a misplaced <form>
57873         https://bugs.webkit.org/show_bug.cgi?id=86746
57874
57875         Reviewed by Julien Chaffraix.
57876
57877         There is a concept of demotion for a <form> contained in a table. A <form> is demoted if its immediate parent
57878         is either a <table>, table sections (tbody, etc) or a table row (tr). A renderer for such a <form> is created only
57879         if its display is one of the table display types (TABLE, INLINE_TABLE, TABLE_FOOTER_GROUP, etc).
57880         However when a <table> containing a demoted <form> is cloned, the <form> does not retain its demotion state and 
57881         results in the table getting improperly rendered.
57882
57883         Test: fast/table/form-with-non-table-display-inside-table-elements.html
57884
57885         * html/HTMLFormElement.cpp:
57886         (WebCore::HTMLFormElement::copyNonAttributePropertiesFromElement):
57887           Extended the virtual function for HTMLFormElement class specific implementation.
57888           The function is used to copy any necessary state information(member variables) associated with
57889           the <form> element being cloned to the current node.
57890           For HTMLFormElement node the member variable can be classified into five groups based on the 
57891           information they hold:
57892             1) Variables containing information regarding <form> subtree and elements associated with it.
57893                These get updated as and when an element is added to the <form> subtree.
57894             2) Variables containing <form> submit state information.
57895             3) Flag to hold information if reset() has been called.
57896             4) Flag(m_wasDemoted) that indicates whether the form is demoted or not, based on which it needs to
57897                be handled differently during creation of its renderer.
57898                This information is currently being updated only during the HTML tree construction phase.
57899             5) Flag(m_wasMalformed) to hold information if the <form> is malformed or not.
57900
57901           Variables of group (1) will be updated as and when elements are added to the <form> subtree. Whereas,
57902           (2) and (3) hold instance specific information, thus copying them is not required. Also (5) is currently not
57903           being used(not set by any code).
57904
57905           On the other hand, (4) is required to be copied during cloning as this information cannot be accessed
57906           during the cloning process.
57907
57908         (WebCore):
57909         * html/HTMLFormElement.h:
57910           Added copyNonAttributePropertiesFromElement() declaration.
57911
57912 2012-10-04  Dean Jackson  <dino@apple.com>
57913
57914         Attribute and Uniform variable names need translation in shader
57915         https://bugs.webkit.org/show_bug.cgi?id=70989
57916
57917         Reviewed by Tim Horton (and Darin Adler).
57918
57919         WebGL specifies some maximum lengths for variable names (attributes
57920         and uniforms). Also, some GL drivers have issues with long names. For
57921         that reason, ANGLE has an option to rewrite the shader, translating
57922         long names into short names. Turning this on helps shaders compile,
57923         but we need to keep a mapping between the original names and the
57924         translated names, so that we bind to the right location from user code
57925         (which won't ever see the translated source).
57926
57927         This provided an opportunity to clean up some other bits of code:
57928         CSS Filters examined the uniform names after a compilation; It can
57929         now use the variable name map. I also added a typedef for the
57930         HashMaps that keep the shader, the source code and the variable name
57931         mappings.
57932
57933         I also opened a followup bug to make sure these tables are deleted
57934         when the associated shaders (or linked programs) go away:
57935         https://bugs.webkit.org/show_bug.cgi?id=98204
57936
57937         Covered by existing tests (with some enhancements):
57938         - fast/canvas/webgl/attrib-location-length-limits.html:
57939         - fast/canvas/webgl/uniform-location-length-limits.html:
57940
57941         * platform/graphics/ANGLEWebKitBridge.cpp:
57942         (WebCore::getSymbolInfo): Extracts all the information on symbols (either attributes
57943         or uniforms) from the newly compiled shader.
57944         (WebCore):
57945         (WebCore::ANGLEWebKitBridge::compileShaderSource): New method name.
57946         * platform/graphics/ANGLEWebKitBridge.h:
57947         (WebCore::getUniforms): Deleted this method.
57948         (WebCore::ANGLEShaderSymbol::isSampler): Make sure the symbol is a uniform.
57949         (ANGLEWebKitBridge):
57950         * platform/graphics/GraphicsContext3D.h:
57951         (WebCore::GraphicsContext3D::SymbolInfo::SymbolInfo): A new object that
57952         holds the size, type and translated name of a symbol from a WebGL shader.
57953         (ShaderSourceEntry):
57954         (WebCore::GraphicsContext3D::ShaderSourceEntry::ShaderSourceEntry): Now keeps track
57955         of the translated source code and symbol mappings.
57956         (WebCore::GraphicsContext3D::ShaderSourceEntry::symbolMap): Helper function to
57957         get the member variable corresponding to the type of symbol you're asking fo.
57958         * platform/graphics/filters/CustomFilterValidatedProgram.cpp:
57959         (WebCore::CustomFilterValidatedProgram::CustomFilterValidatedProgram): Calls new method
57960         name which also produces a set of symbols to examine.
57961         * platform/graphics/opengl/Extensions3DOpenGLCommon.cpp:
57962         (WebCore::Extensions3DOpenGLCommon::getTranslatedShaderSourceANGLE): We now can pass
57963         in some extra compile options to do translation of long symbol names. Also fill the
57964         map of translated symbol names.
57965         * platform/graphics/opengl/GraphicsContext3DOpenGLCommon.cpp:
57966         (WebCore::GraphicsContext3D::compileShader):
57967         (WebCore::GraphicsContext3D::mappedSymbolName): Returns the mapped name for
57968         a shader symbol if it was translated during compilation.
57969         (WebCore):
57970         (WebCore::GraphicsContext3D::getAttribLocation):
57971         (WebCore::GraphicsContext3D::getShaderiv):
57972         (WebCore::GraphicsContext3D::getShaderInfoLog):
57973         (WebCore::GraphicsContext3D::getShaderSource):
57974         (WebCore::GraphicsContext3D::getUniformLocation):
57975
57976 2012-10-04  Alpha Lam  <hclam@chromium.org>
57977
57978         [skia] Drawing a subrect of bitmap image is misaligned
57979         https://bugs.webkit.org/show_bug.cgi?id=95121
57980
57981         Reviewed by Stephen White.
57982
57983         When drawing a subrect of BitmapImage and the subrect is not aligned
57984         to integer boundaries, skia expands it to the closest enclosing integer
57985         rectangle. This creates prominent rendering artifacts when an image
57986         is used as background and its sub-regions are invalidated frequently.
57987
57988         This patch fixes the problem by doing alignment to integer boundaries
57989         and clipping for both cases of RESAMPLE_AWESOME and RESAMPLE_LINEAR.
57990
57991         A clip rect is applied to the canvas using original destination
57992         rectangle, while source and destination rectangles are enlarged
57993         appropriately to ensure source rectangle is aligned.
57994
57995         This patch also fixes a closely related problem. In RESAMPLE_AWESOME
57996         resampling mode the previous algorithm applies different approximated
57997         scale factor for each scaled image fragment. This caused the stitched
57998         image to look ugly.
57999
58000         Scale factor is approximated using entire image size, this gives a
58001         more accurate approximation because of greater denominator and a
58002         consistent scale factor across all fragments.
58003
58004         Changes in Skia enable caching of the scaled image and return the
58005         scaled fragment because scale factor is now consistent for all
58006         fragments.
58007
58008         Tests: fast/images/paint-subrect-grid.html
58009                fast/images/paint-subrect.html
58010                fast/images/repaint-subrect-grid.html
58011
58012         * platform/graphics/skia/ImageSkia.cpp:
58013         (WebCore::computeResamplingMode): Use float for width and height.
58014         (WebCore):
58015         (WebCore::areBoundariesIntegerAligned):
58016         (WebCore::computeBitmapDrawRects):
58017         (WebCore::extractScaledImageFragment):
58018         (WebCore::drawResampledBitmap): New algorithm for drawing scaled image fragment.
58019         (WebCore::paintSkBitmap):
58020         (WebCore::Image::drawPattern):
58021         (WebCore::BitmapImage::draw): Use SkRect instead of SkIRect.
58022         (WebCore::BitmapImageSingleFrameSkia::draw):
58023         * platform/graphics/skia/NativeImageSkia.cpp:
58024         Changing the algorithm for extracting a scaled image fragment.
58025         A fragment is now identified by (scaledImageSize, scaledImageSubset).
58026         (WebCore::NativeImageSkia::hasResizedBitmap):
58027         (WebCore::NativeImageSkia::resizedBitmap):
58028         (WebCore::NativeImageSkia::shouldCacheResampling):
58029         (WebCore::NativeImageSkia::CachedImageInfo::CachedImageInfo):
58030         (WebCore):
58031         (WebCore::NativeImageSkia::CachedImageInfo::isEqual):
58032         (WebCore::NativeImageSkia::CachedImageInfo::set):
58033         (WebCore::NativeImageSkia::CachedImageInfo::rectInSubset):
58034         * platform/graphics/skia/NativeImageSkia.h:
58035         (NativeImageSkia):
58036         (CachedImageInfo):
58037
58038 2012-10-03  Ryosuke Niwa  <rniwa@webkit.org>
58039
58040         ReplaceSelectionCommand should merge text nodes
58041         https://bugs.webkit.org/show_bug.cgi?id=98188
58042
58043         Reviewed by Levi Weintraub.
58044
58045         Added mergeTextNodesAroundPosition to ReplaceSelectionCommand to merge text nodes after the replace in
58046         completeHTMLReplacement. Also fixed a bunch of bugs in other classes and functions to make this work.
58047
58048         This behavior change is tested by existing tests.
58049
58050         * editing/InsertParagraphSeparatorCommand.cpp:
58051         (WebCore::InsertParagraphSeparatorCommand::doApply): When splitting a text node, place the insertionPosition
58052         at the end of the first half. Leaving it at the beginning of the second half confuses the rest of the code in
58053         the function. However, the logic to handle the "insignificant" white spaces needs the position at the start of
58054         the second half. So keep this position.
58055         * editing/ReplaceSelectionCommand.cpp:
58056         (WebCore::ReplaceSelectionCommand::doApply): Update visibleStart after inserting a paragraph separator so that
58057         the logic to cleanup the nested div checks the right condition (right beneath it starting with a long comment).
58058         (WebCore::ReplaceSelectionCommand::addSpacesForSmartReplace): Insert a space for smart paste at the appropriate
58059         offset instead of at the end of endNode. Also update the layout before obtaining startDownstream as we may have 
58060         modified the DOM by inserting a space for endNode. Finally, a non-breaking space should be treated like a space
58061         isCharacterSmartReplaceExempt for the purpose of smart replace. e.g. if we're inserting "world" after
58062         "hello&nbsp;", we shouldn't be inserting another space between "hello" and "world".
58063         (WebCore::ReplaceSelectionCommand::completeHTMLReplacement):
58064         (WebCore::ReplaceSelectionCommand::mergeTextNodesAroundPosition): Added. Merge text nodes around position, and
58065         adjust position and positionOnlyToBeUpdated accordingly. We need to call updatePositionForNodeRemoval when
58066         positions were before or after the text node.
58067         * editing/ReplaceSelectionCommand.h:
58068         (ReplaceSelectionCommand):
58069
58070 2012-10-04  Tony Chang  <tony@chromium.org>
58071
58072         Fix <input type="month"> tests
58073         https://bugs.webkit.org/show_bug.cgi?id=98426
58074
58075         Reviewed by Ojan Vafai.
58076
58077         The month picker uses flexbox and assumes that it will be aligned with
58078         the last line box. This looks visually correct. I will follow up on
58079         www-style to see what the expected behavior is.
58080
58081         Tests: fast/forms/month-multiple-fields tests cover this.
58082
58083         * rendering/RenderFlexibleBox.cpp:
58084         * rendering/RenderFlexibleBox.h:
58085
58086 2012-10-04  Sheriff Bot  <webkit.review.bot@gmail.com>
58087
58088         Unreviewed, rolling out r130396.
58089         http://trac.webkit.org/changeset/130396
58090         https://bugs.webkit.org/show_bug.cgi?id=98421
58091
58092         This patch is causing crashes on 4 tests on Lion Debug and
58093         Mountain Lion Debug (Requested by jernoble on #webkit).
58094
58095         * rendering/RenderLayerCompositor.cpp:
58096         (WebCore::RenderLayerCompositor::calculateCompositedBounds):
58097         (WebCore::RenderLayerCompositor::requiresCompositingForPosition):
58098         * rendering/RenderLayerCompositor.h:
58099         * testing/InternalSettings.cpp:
58100         (WebCore::InternalSettings::Backup::Backup):
58101         (WebCore::InternalSettings::Backup::restoreTo):
58102         * testing/InternalSettings.h:
58103         (Backup):
58104
58105 2012-10-04  Tony Chang  <tony@chromium.org>
58106
58107         inline-flex baseline is sometimes wrong
58108         https://bugs.webkit.org/show_bug.cgi?id=96188
58109
58110         Reviewed by Ojan Vafai.
58111
58112         Implement the necessary methods to get the proper baseline alignment of flexbox.
58113         We were falling back to the inline-block behavior.
58114
58115         Test: css3/flexbox/flexbox-baseline.html
58116
58117         * rendering/RenderFlexibleBox.cpp:
58118         (WebCore::RenderFlexibleBox::RenderFlexibleBox):
58119         (WebCore::RenderFlexibleBox::baselinePosition): Used to get the baseline of the box.
58120         Mostly just the first line box baseline.
58121         (WebCore):
58122         (WebCore::RenderFlexibleBox::lastLineBoxBaseline): This is used for getting the baseline when in an inline-block.
58123         We actually don't want the last line, but the flexbox's baseline.
58124         (WebCore::RenderFlexibleBox::firstLineBoxBaseline): Compute the baseline according to the rules in the spec.
58125         (WebCore::RenderFlexibleBox::repositionLogicalHeightDependentFlexItems): Keep track of the number of children on the
58126         first line so we don't have to re-compute this when getting the baseline.
58127         (WebCore::RenderFlexibleBox::crossAxisExtentForChild): Make const.
58128         (WebCore::RenderFlexibleBox::mainAxisExtentForChild): Make const.
58129         (WebCore::RenderFlexibleBox::hasAutoMarginsInCrossAxis): Make const.
58130         * rendering/RenderFlexibleBox.h: Add a size_t to keep track of how many children are in the first line.
58131
58132 2012-10-04  Xianzhu Wang  <wangxianzhu@chromium.org>
58133
58134         [Chromium] Should set unitsPerEm in SimpleFontDataSkia.cpp
58135         https://bugs.webkit.org/show_bug.cgi?id=98100
58136
58137         Reviewed by Stephen White.
58138
58139         At least on chromium-linux and chromium-android, unitsPerEm was not set
58140         according to the information in the font, causing at least problems in
58141         OpenTypeVerticalData when calculating vertical advance.
58142
58143         Test: fast/writing-mode/vertical-font-vmtx-units-per-em.html
58144
58145         * platform/graphics/skia/SimpleFontDataSkia.cpp:
58146         (WebCore::SimpleFontData::platformInit):
58147
58148 2012-10-04  Simon Fraser  <simon.fraser@apple.com>
58149
58150         Standardize on "flush" terminology for compositing layer flushing/syncing
58151         https://bugs.webkit.org/show_bug.cgi?id=98321
58152
58153         Reviewed by Simon Fraser.
58154
58155         Rename compositing-related methods that refer to "syncing" to instead
58156         refer to "flushing".
58157
58158         * WebCore.exp.in:
58159         * loader/EmptyClients.h:
58160         (WebCore::EmptyChromeClient::scheduleCompositingLayerFlush):
58161         * page/ChromeClient.h:
58162         (ChromeClient):
58163         * page/FrameView.cpp:
58164         (WebCore::FrameView::flushCompositingStateForThisFrame):
58165         (WebCore::FrameView::flushCompositingStateIncludingSubframes):
58166         (WebCore::FrameView::paintContents):
58167         * page/FrameView.h:
58168         (FrameView):
58169         * rendering/RenderLayerCompositor.cpp:
58170         (WebCore::RenderLayerCompositor::scheduleLayerFlush):
58171         (WebCore::RenderLayerCompositor::flushPendingLayerChanges):
58172
58173 2012-10-04  Peter Rybin  <peter.rybin@gmail.com>
58174
58175         Web Inspector: expose object internal properties such as PrimitiveValue or BoundThis
58176         https://bugs.webkit.org/show_bug.cgi?id=94397
58177
58178         Reviewed by Yury Semikhatsky.
58179
58180         Internal property access is built from Injected Script to V8 debug API. JSC binding
58181         has a stub imlpementation. Protocol is updated to explicitly reflect internal properties.
58182
58183         Test: inspector-protocol/runtime-getProperties.html
58184
58185         * bindings/js/JSInjectedScriptHostCustom.cpp:
58186         (WebCore::JSInjectedScriptHost::getInternalProperties):
58187         (WebCore):
58188         * bindings/v8/DebuggerScript.js:
58189         * bindings/v8/ScriptDebugServer.cpp:
58190         (WebCore::ScriptDebugServer::getInternalProperties):
58191         (WebCore):
58192         * bindings/v8/ScriptDebugServer.h:
58193         (ScriptDebugServer):
58194         * bindings/v8/custom/V8InjectedScriptHostCustom.cpp:
58195         (WebCore::V8InjectedScriptHost::getInternalPropertiesCallback):
58196         (WebCore):
58197         * inspector/InjectedScript.cpp:
58198         (WebCore::InjectedScript::getInternalProperties):
58199         (WebCore):
58200         * inspector/InjectedScript.h:
58201         (InjectedScript):
58202         * inspector/InjectedScriptHost.idl:
58203         * inspector/InjectedScriptSource.js:
58204         (.):
58205         * inspector/Inspector.json:
58206         * inspector/InspectorRuntimeAgent.cpp:
58207         (WebCore::InspectorRuntimeAgent::getProperties):
58208         * inspector/InspectorRuntimeAgent.h:
58209         (InspectorRuntimeAgent):
58210
58211 2012-10-04  Sami Kyostila  <skyostil@chromium.org>
58212
58213         Fixed position visibility check does not consider descendants
58214         https://bugs.webkit.org/show_bug.cgi?id=98144
58215
58216         Reviewed by Simon Fraser.
58217
58218         The check against creating composition layers for invisible fixed positioned
58219         elements is too aggressive in that it does not consider descendants of the
58220         fixed positioned element that may be visible even though the element itself is
58221         out of view.
58222
58223         Fix the problem by calculating the true composited bounds of the fixed
58224         element instead of just using the size of the fixed layer. Because calculating
58225         the true bounds may be expensive, it is only done if the fixed layer itself is
58226         invisible.
58227
58228         Test: compositing/layer-creation/fixed-position-absolute-descendant.html
58229
58230         * rendering/RenderLayerCompositor.cpp:
58231         (WebCore::RenderLayerCompositor::calculateCompositedBounds):
58232         (WebCore::RenderLayerCompositor::requiresCompositingForPosition):
58233         * rendering/RenderLayerCompositor.h:
58234
58235 2012-10-04  Vsevolod Vlasov  <vsevik@chromium.org>
58236
58237         Web Inspector: When uiSourceCode content has diverged from VM script, call frames should be shown in temporary script based uiSourceCodes.
58238         https://bugs.webkit.org/show_bug.cgi?id=98385
58239
58240         Reviewed by Pavel Feldman.
58241
58242         When javaScriptSource diverges from VM, ResourceScriptMapping now switches debugging
58243         to temporary VM scripts based uiSourceCode with isDivergedReplacement property set.
58244         Added hasDivergedFromVM and isDivergingFromVM properties to JavaScriptSource.
58245         JavaScriptSourceFrame and ScriptSnippetsModel are updated to process breakpoint changes correctly.
58246
58247         * inspector/front-end/BreakpointManager.js:
58248         (WebInspector.BreakpointManager.prototype.restoreBreakpoints):
58249         (WebInspector.BreakpointManager.prototype._uiSourceCodeRemoved):
58250         * inspector/front-end/JavaScriptSource.js:
58251         (WebInspector.JavaScriptSource.prototype.workingCopyCommitted):
58252         (WebInspector.JavaScriptSource.prototype.workingCopyChanged):
58253         (WebInspector.JavaScriptSource.prototype.fireHasDivergedFromVMChanged):
58254         * inspector/front-end/JavaScriptSourceFrame.js:
58255         (WebInspector.JavaScriptSourceFrame.prototype.commitEditing):
58256         (WebInspector.JavaScriptSourceFrame.prototype._hasDivergedFromVM):
58257         (WebInspector.JavaScriptSourceFrame.prototype.onTextChanged):
58258         (WebInspector.JavaScriptSourceFrame.prototype._getBreakpointDecorations):
58259         (WebInspector.JavaScriptSourceFrame.prototype._muteBreakpointsWhileEditing):
58260         (WebInspector.JavaScriptSourceFrame.prototype._didEditContent):
58261         (WebInspector.JavaScriptSourceFrame.prototype._restoreBreakpointsAfterEditing):
58262         (WebInspector.JavaScriptSourceFrame.prototype._addBreakpointDecoration):
58263         * inspector/front-end/ResourceScriptMapping.js:
58264         (WebInspector.ResourceScriptMapping.prototype.rawLocationToUILocation):
58265         (WebInspector.ResourceScriptMapping.prototype._hasDivergedFromVMChanged):
58266         (WebInspector.ResourceScriptMapping.prototype._bindUISourceCodeToScripts):
58267         (WebInspector.ResourceScriptMapping.prototype._getOrCreateTemporaryUISourceCode):
58268         * inspector/front-end/ScriptSnippetModel.js:
58269         (WebInspector.ScriptSnippetModel.prototype._createUISourceCodeForScript):
58270         (WebInspector.ScriptSnippetModel.prototype._restoreBreakpoints):
58271         * inspector/front-end/ScriptsPanel.js:
58272         (WebInspector.ScriptsPanel.prototype._revealExecutionLine):
58273         * inspector/front-end/UISourceCode.js:
58274         (WebInspector.UISourceCode.prototype.formatted):
58275
58276 2012-10-04  Vsevolod Vlasov  <vsevik@chromium.org>
58277
58278         Web Inspector: Scripts panel should not automatically switch to snippet evaluation when previously evaluated snippet is edited.
58279         https://bugs.webkit.org/show_bug.cgi?id=98402
58280
58281         Reviewed by Pavel Feldman.
58282
58283         Scripts panel does not automatically switch to snippet evaluation when
58284         one edits previously evaluated snippet.
58285
58286         * inspector/front-end/ScriptSnippetModel.js:
58287         (WebInspector.ScriptSnippetModel.prototype._createUISourceCodeForScript):
58288         * inspector/front-end/ScriptsPanel.js:
58289         (WebInspector.ScriptsPanel.prototype._revealExecutionLine):
58290
58291 2012-10-04  Balazs Kelemen  <kbalazs@webkit.org>
58292
58293         Don't allow to disable compositing in forced compositing mode
58294         https://bugs.webkit.org/show_bug.cgi?id=98048
58295
58296         Reviewed by Jocelyn Turcotte.
58297
58298         Make forced compositing mode imply accelerated compositing. This will
58299         avoid unexpected situations for platforms that don't want to support
58300         the non-accelerated rendering path.
58301
58302         Covered by existing tests.
58303
58304         * WebCore.exp.in: Export Settings::setAcceleratedCompositingEnabled
58305         because it has been deinlined.
58306         * page/Settings.cpp:
58307         (WebCore::Settings::setAcceleratedCompositingEnabled):
58308         (WebCore::Settings::setForceCompositingMode):
58309         (WebCore):
58310         * page/Settings.h:
58311         (Settings):
58312         (WebCore::Settings::forceCompositingMode): Make it const as a side fix.
58313
58314 2012-10-04  Harald Alvestrand  <hta@google.com>
58315
58316         Change RTCPeerConnection GetStats to use Date timestamp format
58317         https://bugs.webkit.org/show_bug.cgi?id=98263
58318
58319         Reviewed by Yury Semikhatsky.
58320
58321         Tested by extension to RTCPeerConnection-stats test.
58322
58323         * Modules/mediastream/RTCStatsElement.cpp:
58324         (WebCore::RTCStatsElement::create):
58325         (WebCore::RTCStatsElement::RTCStatsElement):
58326         * Modules/mediastream/RTCStatsElement.h: long -> double
58327         (RTCStatsElement):
58328         (WebCore::RTCStatsElement::timestamp):
58329         * Modules/mediastream/RTCStatsElement.idl: long -> Date
58330         * Modules/mediastream/RTCStatsReport.cpp:
58331         (WebCore::RTCStatsReport::addElement):
58332         * Modules/mediastream/RTCStatsReport.h:
58333         (RTCStatsReport):
58334         * Modules/mediastream/RTCStatsResponse.cpp:
58335         (WebCore::RTCStatsResponse::addElement):
58336         * Modules/mediastream/RTCStatsResponse.h:
58337         (RTCStatsResponse):
58338         * platform/chromium/support/WebRTCStatsResponse.cpp:
58339         (WebKit::WebRTCStatsResponse::addElement):
58340         * platform/mediastream/RTCStatsResponseBase.h:
58341         (RTCStatsResponseBase):
58342
58343 2012-10-04  Sheriff Bot  <webkit.review.bot@gmail.com>
58344
58345         Unreviewed, rolling out r130377.
58346         http://trac.webkit.org/changeset/130377
58347         https://bugs.webkit.org/show_bug.cgi?id=98392
58348
58349         Chromium Win compilation is broken (Requested by yurys on
58350         #webkit).
58351
58352         * Modules/mediastream/RTCStatsElement.cpp:
58353         (WebCore::RTCStatsElement::create):
58354         (WebCore::RTCStatsElement::RTCStatsElement):
58355         * Modules/mediastream/RTCStatsElement.h:
58356         (RTCStatsElement):
58357         (WebCore::RTCStatsElement::timestamp):
58358         * Modules/mediastream/RTCStatsElement.idl:
58359         * Modules/mediastream/RTCStatsReport.cpp:
58360         (WebCore::RTCStatsReport::addElement):
58361         * Modules/mediastream/RTCStatsReport.h:
58362         (RTCStatsReport):
58363         * Modules/mediastream/RTCStatsResponse.cpp:
58364         (WebCore::RTCStatsResponse::addElement):
58365         * Modules/mediastream/RTCStatsResponse.h:
58366         (RTCStatsResponse):
58367         * platform/chromium/support/WebRTCStatsResponse.cpp:
58368         (WebKit::WebRTCStatsResponse::addElement):
58369         * platform/mediastream/RTCStatsResponseBase.h:
58370         (RTCStatsResponseBase):
58371
58372 2012-10-04  Harald Alvestrand  <hta@google.com>
58373
58374         Change RTCPeerConnection GetStats to use Date timestamp format
58375         https://bugs.webkit.org/show_bug.cgi?id=98263
58376
58377         Reviewed by Adam Barth.
58378
58379         Tested by extension to RTCPeerConnection-stats test.
58380
58381         * Modules/mediastream/RTCStatsElement.cpp:
58382         (WebCore::RTCStatsElement::create):
58383         (WebCore::RTCStatsElement::RTCStatsElement):
58384         * Modules/mediastream/RTCStatsElement.h: long -> double
58385         (RTCStatsElement):
58386         (WebCore::RTCStatsElement::timestamp):
58387         * Modules/mediastream/RTCStatsElement.idl: long -> Date
58388         * Modules/mediastream/RTCStatsReport.cpp:
58389         (WebCore::RTCStatsReport::addElement):
58390         * Modules/mediastream/RTCStatsReport.h:
58391         (RTCStatsReport):
58392         * Modules/mediastream/RTCStatsResponse.cpp:
58393         (WebCore::RTCStatsResponse::addElement):
58394         * Modules/mediastream/RTCStatsResponse.h:
58395         (RTCStatsResponse):
58396         * platform/chromium/support/WebRTCStatsResponse.cpp:
58397         (WebKit::WebRTCStatsResponse::addElement):
58398         * platform/mediastream/RTCStatsResponseBase.h:
58399         (RTCStatsResponseBase):
58400
58401 2012-10-05  Kent Tamura  <tkent@chromium.org>
58402
58403         [Chromium] Enable the multiple fields UI for input[type=date]
58404         https://bugs.webkit.org/show_bug.cgi?id=98351
58405
58406         Reviewed by Hajime Morita.
58407
58408         Touch files related to ENABLE_INPUT_TYPE_DATE_LEGACY_UI to avoid build
58409         issues.
58410
58411         No new tests. Many tests will be landed shortly.
58412
58413         * html/DateInputType.cpp:
58414         * html/DateInputType.h:
58415
58416 2012-10-04  Kent Tamura  <tkent@chromium.org>
58417
58418         Add code for input[type=date] with the multiple fields UI
58419         https://bugs.webkit.org/show_bug.cgi?id=98340
58420
58421         Reviewed by Hajime Morita.
58422
58423         The new code is available if !ENABLE(INPUT_TYPE_DATE_LEGACY_UI). At this
58424         moment, there are no platforms enabling the new code. We're going to
58425         enable it soon on desktop Chromium, and add tests. Then we're going to
58426         remove the code for ENABLE(INPUT_TYPE_DATE_LEGACY_UI).
58427
58428         ENABLE(INPUT_TYPE_DATE_LEGACY_UI) means the current UI; input[type=date]
58429         is represetnted as a kind of text field, and it has code to invoke a
58430         calendar picker.
58431         ENABLE(CALENDAR_PICKER) was used wrongly. It meant calendar picker
58432         support + text field UI of input[type=date]. Now it means only calendar
58433         picker support.
58434
58435         * html/DateInputType.h:
58436         (WebCore): If ENABLE(INPUT_MULTIPLE_FIELDS_UI) &&
58437         !ENABLE(INPUT_TYPE_DATE_LEGACY_UI), change the base class to the class
58438         for multiple fields UI.
58439         (DateInputType): Wrap the code for text fields behavior and calendar
58440         picker UI with ENABLE(INPUT_TYPE_DATE_LEGACY_UI). Add functions for
58441         ENABLE(INPUT_MULTIPLE_FIELDS_UI)
58442         * html/DateInputType.cpp:
58443         (WebCore::DateInputType::DateInputType):
58444         Change the flag name; CALENDAR_PICKER -> INPUT_TYPE_DATE_LEGACY_UI
58445         (WebCore): ditto.
58446         (WebCore::DateInputType::formatDateTimeFieldsState):
58447         A callback for multiple fields UI. This constructs a string value from
58448         each of values of multiple fields.
58449         Note that we don't need to do +1 to month().
58450         (WebCore::DateInputType::setupLayoutParameters):
58451         A callback for multiple fields UI. Passes information to build UI.
58452
58453         * html/BaseMultipleFieldsDateAndTimeInputType.h:
58454         (BaseMultipleFieldsDateAndTimeInputType):
58455         Add m_pickerIndicatorIsAlwaysVisible member, wrap some members with flags.
58456         * html/BaseMultipleFieldsDateAndTimeInputType.cpp:
58457         (WebCore::BaseMultipleFieldsDateAndTimeInputType::BaseMultipleFieldsDateAndTimeInputType):
58458         Initialize m_pickerIndicatorIsAlwaysVisible.
58459         (WebCore::BaseMultipleFieldsDateAndTimeInputType::createShadowSubtree):
58460         If a type supports calendar picker, we should always show the picker
58461         indicator. We introduce m_pickerIndicatorIsAlwaysVisible flag, and ask
58462         RenderTheme for support status of each of types.
58463         Add a local variable 'document' to avoid multiple element()->document().
58464         (WebCore::BaseMultipleFieldsDateAndTimeInputType::updatePickerIndicatorVisibility):
58465         - If m_pickerIndicatorIsAlwaysVisible, don't hide the picker indicator element.
58466         - Wrap the code with appropriate flags.
58467
58468         * rendering/RenderTheme.h:
58469         (WebCore::RenderTheme::supportsCalendarPicker): Added.
58470         * rendering/RenderThemeChromiumMac.h: Override supportsCalendarPicker.
58471         * rendering/RenderThemeChromiumMac.mm:
58472         (WebCore::RenderThemeChromiumMac::supportsCalendarPicker):
58473         Added. Delegate to RenderThemeChromiumCommon.
58474         * rendering/RenderThemeChromiumSkia.h: Override supportsCalendarPicker.
58475         * rendering/RenderThemeChromiumSkia.cpp:
58476         (WebCore::RenderThemeChromiumSkia::supportsCalendarPicker):
58477         Added. Delegate to RenderThemeChromiumCommon.
58478         * rendering/RenderThemeChromiumCommon.h:
58479         (RenderThemeChromiumCommon): Declare supportsCalendarPicker.
58480         * rendering/RenderThemeChromiumCommon.cpp:
58481         (WebCore::RenderThemeChromiumCommon::supportsCalendarPicker):
58482         Returns true if the type is "date."
58483
58484         * html/DateTimeFieldsState.h:
58485         (DateTimeFieldsState): Add a comment for the m_month field.
58486
58487 2012-10-04  Kent Tamura  <tkent@chromium.org>
58488
58489         DateTimeYearFieldElement should respect min/max values specified by page authors
58490         https://bugs.webkit.org/show_bug.cgi?id=98227
58491
58492         Reviewed by Hajime Morita.
58493
58494         Before this patch, we always set 1 to the minimum limit and 275760 to
58495         the maximum limit for a year field, and a user can specify any year
58496         regardless of min/max attributes. Such wide range is unnecessary for
58497         normal applications and we should provide a way to limit the range.
58498
58499         Test: fast/forms/month-multiple-fields/month-multiple-fields-keyboard-events.html
58500
58501         * html/shadow/DateTimeFieldElements.h:
58502         To add four constructor arguments, introduce Parameters struct.
58503         Actually, we add the followings;
58504          - minimum year in UI
58505          - maximum year in UI
58506          - min attribute is specified
58507          - max attribute is specified
58508         (Parameters):
58509         (WebCore::DateTimeYearFieldElement::Parameters::Parameters):
58510         (DateTimeYearFieldElement):
58511         * html/shadow/DateTimeFieldElements.cpp:
58512         (WebCore::DateTimeYearFieldElement::DateTimeYearFieldElement): ditto.
58513         (WebCore::DateTimeYearFieldElement::create): ditto.
58514         (WebCore::DateTimeYearFieldElement::clampValueForHardLimits):
58515         Override DateTimeNumericFieldElement::clampValueForHardLimits.
58516         By this, we allow to set out-of-range year values.
58517         (WebCore::currentFullYear): A helper to get the current year.
58518         (WebCore::DateTimeYearFieldElement::defaultValueForStepDown):
58519         If the field has no value and step down operation occurs,
58520          - the field has the current year if the max attribute is not specified.
58521          - the field has the maximum value otherwise.
58522         (WebCore::DateTimeYearFieldElement::defaultValueForStepUp): Similar change.
58523
58524         * html/shadow/DateTimeNumericFieldElement.h:
58525         (DateTimeNumericFieldElement): Declare clampValueForHardLimits.
58526         * html/shadow/DateTimeNumericFieldElement.cpp:
58527         (WebCore::DateTimeNumericFieldElement::clampValueForHardLimits):
58528         (WebCore::DateTimeNumericFieldElement::setValueAsInteger):
58529         Call clampValueForHardLimits instead of clampValue in order to
58530         distinguish limits for UI and limits for internal value update.
58531
58532         * html/shadow/DateTimeEditElement.h:
58533         (LayoutParameters): Add minimumYear and maximumYear members.
58534         (WebCore::DateTimeEditElement::LayoutParameters::LayoutParameters):
58535         Initialize minimumYear and maximumYear.
58536         (WebCore::DateTimeEditElement::LayoutParameters::undefinedYear):
58537         Represents 'undefined' value for minimumYear and maximumYear.
58538         * html/shadow/DateTimeEditElement.cpp:
58539         (WebCore::DateTimeEditBuilder::visitField):
58540         Preparas DateTimeYearField::Parameters and pass it to the DateTimeYearField factory.
58541
58542         * html/BaseMultipleFieldsDateAndTimeInputType.cpp:
58543         (WebCore::BaseMultipleFieldsDateAndTimeInputType::fullYear):
58544         A helper to get a year value from an attribute value string.
58545         * html/BaseMultipleFieldsDateAndTimeInputType.h:
58546         (BaseMultipleFieldsDateAndTimeInputType): Add fullYear().
58547
58548         * html/DateTimeInputType.cpp:
58549         (WebCore::DateTimeInputType::setupLayoutParameters):
58550         Set LayoutParameters::minimumYear and maximumYear.
58551         * html/DateTimeLocalInputType.cpp:
58552         (WebCore::DateTimeLocalInputType::setupLayoutParameters): ditto.
58553         * html/MonthInputType.cpp:
58554         (WebCore::MonthInputType::setupLayoutParameters): ditto.
58555         * html/WeekInputType.cpp:
58556         (WebCore::WeekInputType::setupLayoutParameters): ditto.
58557
58558 2012-10-03  Adam Barth  <abarth@webkit.org>
58559
58560         Unreviewed. Fix parse error in vcproj file.
58561
58562         * WebCore.vcproj/WebCore.vcproj:
58563
58564 2012-10-03  Keishi Hattori  <keishi@webkit.org>
58565
58566         Implement localizeValue for TimeInputType
58567         https://bugs.webkit.org/show_bug.cgi?id=98237
58568
58569         Reviewed by Kent Tamura.
58570
58571         We want to localize time values for the suggestion picker.
58572         DateTimeStringBuilder parses a format and creates a formatted string.
58573
58574         Added chromium unit test LocaleMacTest.formatTime
58575
58576         * html/BaseMultipleFieldsDateAndTimeInputType.cpp:
58577         (WebCore::BaseMultipleFieldsDateAndTimeInputType::shouldHaveSecondField): Moved from LayoutParameters because we want to use it inside localizeValue.
58578         (WebCore):
58579         * html/BaseMultipleFieldsDateAndTimeInputType.h:
58580         (BaseMultipleFieldsDateAndTimeInputType):
58581         * html/DateTimeInputType.cpp:
58582         (WebCore::DateTimeInputType::setupLayoutParameters):
58583         * html/DateTimeLocalInputType.cpp:
58584         (WebCore::DateTimeLocalInputType::setupLayoutParameters):
58585         * html/TimeInputType.cpp:
58586         (WebCore::TimeInputType::localizeValue):
58587         (WebCore):
58588         (WebCore::TimeInputType::setupLayoutParameters):
58589         * html/TimeInputType.h:
58590         (TimeInputType):
58591         * html/shadow/DateTimeEditElement.cpp:
58592         (WebCore):
58593         * html/shadow/DateTimeEditElement.h:
58594         (WebCore::DateTimeEditElement::LayoutParameters::LayoutParameters):
58595         * platform/text/LocaleICU.cpp:
58596         (WebCore::LocaleICU::formatDateTime): Calls Localizer::formatDateTime if the date component is not a date.
58597         * platform/text/LocaleICU.h:
58598         (LocaleICU):
58599         * platform/text/LocaleWin.cpp:
58600         (WebCore::LocaleWin::formatDateTime): Calls Localizer::formatDateTime if the date component is not a date.
58601         * platform/text/LocaleWin.h:
58602         (LocaleWin):
58603         * platform/text/LocaleNone.cpp:
58604         (LocaleNone):
58605         (WebCore::LocaleNone::formatDateTime):
58606         * platform/text/Localizer.cpp:
58607         (DateTimeStringBuilder):
58608         (WebCore):
58609         (WebCore::DateTimeStringBuilder::DateTimeStringBuilder): Takes a
58610         Localizer pointer. This is used inside the Localizer so the Localizer
58611         will out live the DateTimeStringBuilder.
58612         (WebCore::DateTimeStringBuilder::build): Builds a localized string for the given format.
58613         (WebCore::DateTimeStringBuilder::zeroPadString):
58614         (WebCore::DateTimeStringBuilder::appendNumber): Appends a number with left zero padding to match width.
58615         (WebCore::DateTimeStringBuilder::visitField):
58616         (WebCore::DateTimeStringBuilder::visitLiteral):
58617         (WebCore::DateTimeStringBuilder::toString): Returns the localized string.
58618         (WebCore::Localizer::formatDateTime):
58619         * platform/text/Localizer.h:
58620         * platform/text/mac/LocaleMac.h:
58621         (LocaleMac):
58622         * platform/text/mac/LocaleMac.mm:
58623         (WebCore::LocaleMac::formatDateTime): Calls Localizer::formatDateTime if the date component is not a date.
58624
58625 2012-10-03  Douglas Stockwell  <dstockwell@chromium.org>
58626
58627         Chromium needs support for border radius clipping
58628         https://bugs.webkit.org/show_bug.cgi?id=69866
58629
58630         Reviewed by Stephen White.
58631
58632         Changes to make this suitably efficient have already landed upstream in skia:
58633         http://code.google.com/p/skia/source/detail?r=2924
58634
58635         Covered by existing tests.
58636
58637         * rendering/RenderLayer.cpp:
58638
58639 2012-10-03  Benjamin Poulain  <bpoulain@apple.com>
58640
58641         Simplify attribute access in Element::computeInheritedLanguage
58642         https://bugs.webkit.org/show_bug.cgi?id=98327
58643
58644         Reviewed by Andreas Kling.
58645
58646         * dom/Element.cpp:
58647         (WebCore::Element::computeInheritedLanguage):
58648         By using Element::fastGetAttribute(), we check for the existence of attributeData twice
58649         and do a bunch of useless operation on AtomicString.
58650
58651         By using ElementAttributeData directly, we can cut it to the two important branch.
58652
58653 2012-10-03  Kangil Han  <kangil.han@samsung.com>
58654
58655         Fix unused parameter compile warnings.
58656         https://bugs.webkit.org/show_bug.cgi?id=98243
58657
58658         Reviewed by Alexey Proskuryakov.
58659
58660         Fixed unused parameter compile warning by removing parameter names and adding UNUSED_PARAM usage.
58661
58662         * plugins/PluginDebug.cpp:
58663         (WebCore::prettyNameForNPPVariable):
58664         * plugins/npapi.cpp:
58665         (NPN_MemFlush):
58666         (NPN_RequestRead):
58667         (NPN_GetJavaPeer):
58668
58669 2012-10-03  Adam Barth  <abarth@webkit.org>
58670
58671         Measure the usage of WebSQLDatabase
58672         https://bugs.webkit.org/show_bug.cgi?id=98330
58673
58674         Reviewed by Ojan Vafai.
58675
58676         WebKit is the only engine that implements WebSQLDatabase. This patch
58677         causes us to measure its usage so we can see how quickly web sites move
58678         to IndexedDB.
58679
58680         * Modules/webdatabase/DOMWindowWebDatabase.idl:
58681         * page/FeatureObserver.h:
58682
58683 2012-10-03  Arnaud Renevier  <a.renevier@sisa.samsung.com>
58684
58685         [soup] WebKit crashes when doing a http request
58686         https://bugs.webkit.org/show_bug.cgi?id=98055
58687
58688         Reviewed by Martin Robinson.
58689
58690         On i386, (d->m_firstRequest.timeoutInterval() * 1000) results in 0 if
58691         timeoutInterval() is INT_MAX. So, set default timeout to 0 to avoid
58692         calling soup_add_timeout with a 0 value.
58693
58694         Also, if resource handle is deleted before "request-started" signal is
58695         emitted, soupMessage handle points to a deleted object, and a crash
58696         occurs. So, reset soupMessage handle data in
58697         cleanupSoupRequestOperation so it won't happen anymore.
58698
58699         Lastly, if timeout occurs before request is completed, handle is
58700         deleted, and crash occurs in sendRequestCallback due to an early
58701         destroyed handle. To avoid that, call handle->cancel in
58702         requestTimeoutCallback. There is no need to call
58703         cleanupSoupRequestOperation anymore since handle->cancel will trigger
58704         sendRequestCallback, and as handle is deleted,
58705         cleanupSoupRequestOperation will be called automatically.
58706
58707         No new tests yet, tests will be added with the patch in bug 74802.
58708
58709         * platform/network/ResourceRequestBase.cpp:
58710         (WebCore):
58711         * platform/network/soup/ResourceHandleSoup.cpp:
58712         (WebCore::cleanupSoupRequestOperation):
58713         (WebCore::ResourceHandle::platformSetDefersLoading):
58714         (WebCore::requestTimeoutCallback):
58715
58716 2012-10-03  Adam Barth  <abarth@webkit.org>
58717
58718         Remove support for ENABLE(LEGACY_WEBKIT_BLOB_BUILDER)
58719         https://bugs.webkit.org/show_bug.cgi?id=98301
58720
58721         Reviewed by Eric Seidel.
58722
58723         According to anonymous usage statistics, the APIs guarded by
58724         ENABLE(LEGACY_WEBKIT_BLOB_BUILDER) are used on approximately 0.006% of
58725         web pages. Given that this feature is only enabled in GTK and Chromium,
58726         it seems likely that we should remove it.
58727
58728         * CMakeLists.txt:
58729         * DerivedSources.make:
58730         * DerivedSources.pri:
58731         * GNUmakefile.features.am:
58732         * GNUmakefile.list.am:
58733         * WebCore.gypi:
58734         * WebCore.xcodeproj/project.pbxproj:
58735         * fileapi/WebKitBlobBuilder.idl: Removed.
58736         * page/DOMWindow.idl:
58737
58738 2012-10-03  Beth Dakin  <bdakin@apple.com>
58739
58740         https://bugs.webkit.org/show_bug.cgi?id=98313
58741         ScrollingStateNode should keep a Vector of children instead of child 
58742         pointers
58743
58744         Reviewed by Simon Fraser.
58745
58746         This patch re-names ScrollingStateNode::cloneNode() to 
58747         ScrollingStateNode::cloneAndResetNode(). The new function resets the 
58748         change properties of the current node after cloning it, and it also 
58749         takes care of cloning children, which the old function did not do.
58750
58751         m_firstChild and m_nextSibling are gone. Use the m_children Vector 
58752         instead.
58753         * page/scrolling/ScrollingStateNode.cpp:
58754         (WebCore::ScrollingStateNode::cloneAndResetChildNodes):
58755         (WebCore::ScrollingStateNode::appendChild):
58756         * page/scrolling/ScrollingStateNode.h:
58757         (ScrollingStateNode):
58758         (WebCore::ScrollingStateNode::parent):
58759         (WebCore::ScrollingStateNode::setParent):
58760
58761         Reset the change properties and clone children in cloneAndResetNode()
58762         * page/scrolling/ScrollingStateScrollingNode.cpp:
58763         (WebCore::ScrollingStateScrollingNode::cloneAndResetNode):
58764         * page/scrolling/ScrollingStateScrollingNode.h:
58765
58766         Yay, this function can be vastly simplified now that we don't have 
58767         those messy child and sibling pointers.
58768         * page/scrolling/ScrollingStateTree.cpp:
58769         (WebCore::ScrollingStateTree::commit):
58770
58771 2012-10-03  Ojan Vafai  <ojan@chromium.org>
58772
58773         Replace uses of -webkit-box-sizing with box-sizing
58774         https://bugs.webkit.org/show_bug.cgi?id=98312
58775
58776         Reviewed by Tony Chang.
58777
58778         No need to use the prefixed version when the unprefixed works the same.
58779         No new tests since there's no change in behavior..
58780
58781         * css/html.css:
58782
58783 2012-10-03  Joshua Bell  <jsbell@chromium.org>
58784
58785         IndexedDB: Don't do full commit for empty transactions
58786         https://bugs.webkit.org/show_bug.cgi?id=89239
58787
58788         Reviewed by Tony Chang.
58789
58790         Don't bother creating a leveldb write batch if there's nothing in the transaction
58791         to commit. Note that a read-only transaction may still have index cleanup so may
58792         not be an empty transaction.
58793
58794         This cuts the Lookup2 benchmark in http://reyesr.github.com/html5-storage-benchmark/
58795         from 70s to 2s.
58796
58797         Covered by existing tests, e.g. storage/indexeddb/transaction-basics.html
58798
58799         * platform/leveldb/LevelDBTransaction.cpp:
58800         (WebCore::LevelDBTransaction::commit):
58801
58802 2012-10-03  Adam Klein  <adamk@chromium.org>
58803
58804         Remove bogus FIXME from Document.idl
58805         https://bugs.webkit.org/show_bug.cgi?id=98302
58806
58807         Reviewed by Adam Barth.
58808
58809         The FIXME claimed that document.body throwing an exception was not
58810         specced, but in fact it is:
58811         http://www.whatwg.org/specs/web-apps/current-work/multipage/dom.html#dom-document-body
58812
58813         * dom/Document.idl:
58814
58815 2012-10-03  Joshua Bell  <jsbell@chromium.org>
58816
58817         IndexedDB: Memory leak when deleting object stores with indexes
58818         https://bugs.webkit.org/show_bug.cgi?id=98292
58819
58820         Reviewed by Tony Chang.
58821
58822         Reference cycles between IDBObjectStore and IDBIndex instances are explicitly
58823         broken when the transaction completes (and the spec allows traversal to fail).
58824         Deleted stores need to have the reference cycle broken too.
58825
58826         Caught by running valgrind over: storage/indexeddb/keypath-basics.html
58827
58828         * Modules/indexeddb/IDBTransaction.cpp:
58829         (WebCore::IDBTransaction::objectStoreDeleted): Add store to set.
58830         (WebCore::IDBTransaction::dispatchEvent): Notify stores in set.
58831         * Modules/indexeddb/IDBTransaction.h: Add set of deleted stores.
58832
58833 2012-10-03  Adam Barth  <abarth@webkit.org>
58834
58835         CSSNamespace.h is empty and should be deleted
58836         https://bugs.webkit.org/show_bug.cgi?id=98304
58837
58838         Reviewed by Eric Seidel.
58839
58840         There's no reason to have this file in the repository.
58841
58842         * GNUmakefile.list.am:
58843         * WebCore.gypi:
58844         * WebCore.vcproj/WebCore.vcproj:
58845         * WebCore.xcodeproj/project.pbxproj:
58846         * css/CSSNamespace.h: Removed.
58847
58848 2012-10-03  Arnaud Renevier  <a.renevier@sisa.samsung.com>
58849
58850         Build failure with css filters enabled and accelerated compositing disabled
58851         https://bugs.webkit.org/show_bug.cgi?id=95908
58852
58853         Reviewed by Tony Chang.
58854
58855         Do not try to setBackingNeedsRepaint when building without accelerated
58856         compositing.
58857
58858         Also, allow painting with filter (paintsWithFilters returns true if
58859         renderer has filter) when accelerated compositing is not enabled.
58860
58861         No functional change, so no new tests.
58862
58863         * rendering/RenderLayer.cpp:
58864         (WebCore::RenderLayer::styleChanged):
58865
58866 2012-10-03  Emil A Eklund  <eae@chromium.org>
58867
58868         Round image sizes when zooming
58869         https://bugs.webkit.org/show_bug.cgi?id=98205
58870
58871         Reviewed by Eric Seidel.
58872
58873         We currently floor image sizes when zooming which can result in
58874         images being rendered at one pixel less than the actual size.
58875         This is especially likely to happen for very large images.
58876
58877         Test: fast/sub-pixel/zoomed-image-tiles.html
58878
58879         * loader/cache/CachedImage.cpp:
58880         (WebCore::CachedImage::imageSizeForRenderer):
58881
58882 2012-10-03  Hugo Parente Lima  <hugo.lima@openbossa.org>
58883
58884         [WK2] PageViewportController.cpp is supposed to be a generic WebKit2 file but only works with Qt port.
58885         https://bugs.webkit.org/show_bug.cgi?id=98186
58886
58887         Reviewed by Noam Rosenthal.
58888
58889         Remove the implicit conversion from WebCore::FloatSize to QSize.
58890
58891         * platform/graphics/FloatSize.h:
58892         (FloatSize):
58893
58894 2012-10-03  Levi Weintraub  <leviw@chromium.org>
58895
58896         [Sub-pixel layout] incorrect rendering when painting sub-layers as their own root
58897         https://bugs.webkit.org/show_bug.cgi?id=97484
58898
58899         Reviewed by Eric Seidel.
58900
58901         When in compositing mode, layer painting can be triggered through the backing store. When this
58902         happens, a non-top-level RenderLayer is called to paint as its own root. Normally, we attempt to preserve
58903         the proper sub-pixel accumulation through layers to their children, but since we're not
58904         starting with the top-level layer, we haven't properly accumulated one, and convertToLayerCoords,
58905         another source of correctly getting the sub-pixel offset for a layer, also avoids crawling
58906         past the listed root layer.
58907
58908         When painting a root layer, we're aligned to the surface we're painting to, so we round our
58909         offset to avoid moving objects around.
58910
58911         * rendering/RenderLayer.cpp:
58912         (WebCore::RenderLayer::paintLayerContents):
58913
58914 2012-10-03  Jeff Timanus  <twiz@chromium.org>
58915
58916         [chromium] Expose settings value to conditionally enable pinch-zoom scaling in the Chromium compositor.  The
58917         flag defaults to disabled, so this change should be a no-op for scaling/scrolling behaviour.
58918         https://bugs.webkit.org/show_bug.cgi?id=93292
58919
58920         Reviewed by James Robinson.
58921
58922         Tests:  Existing page-scale layout tests.
58923
58924         * page/Frame.cpp:
58925         (WebCore::Frame::frameScaleFactor):
58926         * page/Settings.cpp:
58927         (WebCore::Settings::Settings):
58928         * page/Settings.h:
58929         (WebCore::Settings::setApplyPageScaleFactorInCompositor):
58930         (WebCore::Settings::applyPageScaleFactorInCompositor):
58931         (Settings):
58932
58933 2012-10-03  Stephen Chenney  <schenney@chromium.org>
58934
58935         Font data is purged while fonts are still using it
58936         https://bugs.webkit.org/show_bug.cgi?id=93640
58937
58938         Reviewed by Eric Seidel.
58939
58940         Move the handling of custom font pruning from Document to FontFallbackList.
58941         The previous inplementation allowed fonts to be removed before all their
58942         clients were done. This change moves handling of custom font purging to the
58943         FontFallbackList class, which is the shared object that is only removed
58944         when all clients of a font are done with it. This fixes a crash in Angry
58945         Birds due to a seamless iframe and some failing tests in fast/frames/seamless.
58946
58947         The specific element that causes problems is:
58948         <iframe id="ingame_frame0" name="ingame_frame0" frameborder="0" seamless="true"
58949           src="http://chrome.angrybirds.com/ingame_graphic.html"
58950           onload="this.style.opacity = 1; parent.adLoaded();" scrolling="no"
58951           style="opacity: 1; -webkit-transition: opacity 1s ease-in-out 0s;
58952           position: absolute; border: 0px; width: 312px; height: 320px; z-index:
58953           300; overflow: hidden; visibility: visible;"></iframe>
58954         The source document uses the same font as the embedding document.
58955
58956         Tests: fast/frames/seamless/seamless-custom-font-pruning-crash.html
58957                fast/frames/seamless/seamless-nested-crash.html
58958
58959         * css/CSSFontFaceSource.cpp:
58960         (WebCore::CSSFontFaceSource::getFontData): Remove code to register the font with the document.
58961         * css/CSSSegmentedFontFace.cpp:
58962         (WebCore::CSSSegmentedFontFace::getFontData): Remove code to register the font with the document.
58963         * dom/Document.cpp:
58964         (WebCore::Document::~Document): Remove code that records and purges custom fonts.
58965         (WebCore):
58966         (WebCore::Document::reportMemoryUsage): Remove reference to non-existent objects.
58967         * dom/Document.h:
58968         (WebCore):
58969         (Document): Remove method declarations for custom font handling.
58970         * platform/graphics/FontFallbackList.h:
58971         (FontFallbackList): Moved some code around and made non-copyable.
58972         (WebCore::FontFallbackList::setGlyphPageZero): Moved.
58973         (WebCore::FontFallbackList::setGlyphPages): Moved.
58974         * platform/graphics/GlyphPageTreeNode.cpp:
58975         (WebCore::GlyphPageTreeNode::pruneFontData): Removed unnecessary null check.
58976         * platform/graphics/SegmentedFontData.cpp:
58977         (WebCore::SegmentedFontData::~SegmentedFontData): Added code to prune the Glyph pages when this is deleted.
58978         * platform/graphics/SimpleFontData.cpp:
58979         (WebCore::SimpleFontData::~SimpleFontData): Added code to prune the Glyph pages when this is deleted.
58980
58981 2012-10-03  Adam Barth  <abarth@webkit.org>
58982
58983         Crash when calling document.open during unload
58984         https://bugs.webkit.org/show_bug.cgi?id=98287
58985
58986         Reviewed by Nate Chapin.
58987
58988         Calling document.open results in us nulling out m_documentLoader. This
58989         code doesn't properly handle that case and crashes.
58990
58991         Test: fast/parser/document-open-in-unload.html
58992
58993         * loader/FrameLoader.cpp:
58994         (WebCore::FrameLoader::commitProvisionalLoad):
58995
58996 2012-10-03  Benjamin Poulain  <bpoulain@apple.com>
58997
58998         Element::computeInheritedLanguage: evaluate the while() condition after fetching the string
58999         https://bugs.webkit.org/show_bug.cgi?id=98220
59000
59001         Reviewed by Andreas Kling.
59002
59003         * dom/Element.cpp:
59004         (WebCore::Element::computeInheritedLanguage):
59005         The condition is never false on the first execution. Move the condition to the
59006         end of the loop for fun and profit.
59007
59008 2012-10-03  Hans Wennborg  <hans@chromium.org>
59009
59010         Speech JavaScript API: Add SpeechRecognition.interimResults attribute
59011         https://bugs.webkit.org/show_bug.cgi?id=98279
59012
59013         Reviewed by Adam Barth.
59014
59015         Add the interimResults attribute and pass it to the embedder. It was
59016         added to the spec draft in
59017         http://dvcs.w3.org/hg/speech-api/rev/d25fea0d029c
59018
59019         Tested in fast/speech/scripted/basics.html
59020
59021         * Modules/speech/SpeechRecognition.cpp:
59022         (WebCore::SpeechRecognition::start):
59023         (WebCore::SpeechRecognition::SpeechRecognition):
59024         * Modules/speech/SpeechRecognition.h:
59025         (WebCore::SpeechRecognition::interimResults):
59026         (WebCore::SpeechRecognition::setInterimResults):
59027         * Modules/speech/SpeechRecognition.idl:
59028         * Modules/speech/SpeechRecognitionClient.h:
59029         (SpeechRecognitionClient):
59030         * Modules/speech/SpeechRecognitionController.h:
59031         (WebCore::SpeechRecognitionController::start):
59032
59033 2012-10-03  Hans Wennborg  <hans@chromium.org>
59034
59035         Speech JavaScript API: Remove resultdeleted event
59036         https://bugs.webkit.org/show_bug.cgi?id=98272
59037
59038         Reviewed by Adam Barth.
59039
59040         Remove the resultdeleted event. This was never used, and was removed
59041         from the spec draft in
59042         http://dvcs.w3.org/hg/speech-api/rev/f9d53ab8b449
59043
59044         The fast/speech/scripted/basics.html test is updated to reflect this.
59045
59046         * Modules/speech/SpeechRecognition.cpp:
59047         * Modules/speech/SpeechRecognition.h:
59048         (SpeechRecognition):
59049         * Modules/speech/SpeechRecognition.idl:
59050         * Modules/speech/SpeechRecognitionEvent.cpp:
59051         * Modules/speech/SpeechRecognitionEvent.h:
59052         (SpeechRecognitionEvent):
59053         * dom/EventNames.h:
59054         (WebCore):
59055
59056 2012-09-16  Mark Hahnenberg  <mhahnenberg@apple.com>
59057
59058         Delayed structure sweep can leak structures without bound
59059         https://bugs.webkit.org/show_bug.cgi?id=96546
59060
59061         Reviewed by Geoffrey Garen.
59062
59063         This patch gets rid of the separate Structure allocator in the MarkedSpace and adds two new destructor-only
59064         allocators. We now have separate allocators for our three types of objects: those objects with no destructors,
59065         those objects with destructors and with immortal structures, and those objects with destructors that don't have 
59066         immortal structures. All of the objects of the third type (destructors without immortal structures) now 
59067         inherit from a new class named JSDestructibleObject (which in turn is a subclass of JSNonFinalObject), which stores 
59068         the ClassInfo for these classes at a fixed offset for safe retrieval during sweeping/destruction.
59069
59070         No new tests.
59071
59072         * ForwardingHeaders/runtime/JSDestructableObject.h: Added.
59073         * bindings/js/JSDOMWrapper.h: Inherits from JSDestructibleObject.
59074         (JSDOMWrapper):
59075         (WebCore::JSDOMWrapper::JSDOMWrapper):
59076         * bindings/scripts/CodeGeneratorJS.pm: Add finalizers to anything that inherits from JSGlobalObject,
59077         e.g. JSDOMWindow and JSWorkerContexts. For those classes we also need to define needsDestruction as true.
59078         (GenerateHeader):
59079         * bridge/objc/objc_runtime.h: Inherit from JSDestructibleObject.
59080         (ObjcFallbackObjectImp):
59081         * bridge/objc/objc_runtime.mm:
59082         (Bindings):
59083         (JSC::Bindings::ObjcFallbackObjectImp::ObjcFallbackObjectImp):
59084         * bridge/runtime_array.cpp: Use a finalizer so that JSArray isn't forced to inherit from JSDestructibleObject.
59085         (JSC):
59086         (JSC::RuntimeArray::destroy):
59087         * bridge/runtime_array.h:
59088         (JSC::RuntimeArray::create):
59089         (JSC):
59090         * bridge/runtime_object.cpp: Inherit from JSDestructibleObject.
59091         (Bindings):
59092         (JSC::Bindings::RuntimeObject::RuntimeObject):
59093         * bridge/runtime_object.h:
59094         (RuntimeObject):
59095
59096 2012-10-02  Anders Carlsson  <andersca@apple.com>
59097
59098         Change most GraphicsLayer::create calls to use the version that takes a GraphicsLayerFactory
59099         https://bugs.webkit.org/show_bug.cgi?id=98217
59100
59101         Reviewed by Andreas Kling.
59102
59103         * WebCore.exp.in:
59104         * rendering/RenderLayerBacking.cpp:
59105         (WebCore::RenderLayerBacking::createGraphicsLayer):
59106         * rendering/RenderLayerCompositor.cpp:
59107         (WebCore::RenderLayerCompositor::updateOverflowControlsLayers):
59108         (WebCore::RenderLayerCompositor::ensureRootLayer):
59109
59110 2012-10-03  Joshua Bell  <jsbell@chromium.org>
59111
59112         IndexedDB: Optimize encodeString/decodeString
59113         https://bugs.webkit.org/show_bug.cgi?id=97794
59114
59115         Reviewed by Tony Chang.
59116
59117         Optimize string encoding/decoding, which showed up as a CPU hot spot during profiling.
59118         The backing store uses big-endian ordering of 16-bit code unit strings, so a memcopy
59119         isn't sufficient, but the code used StringBuilder::append() character-by-character
59120         and custom byte-swapping which was slow.
59121
59122         Ran a test w/ DumpRenderTree (to avoid multiprocess overhead) taking a 10k character string
59123         and putting it 20k times and getting it 20k times. On my test box, mean time before the
59124         patch was 8.2s, mean time after the patch was 4.6s.
59125
59126         Tested by Chromium's webkit_unit_tests --gtest_filter='IDBLevelDBCodingTest.*String*'
59127
59128         * Modules/indexeddb/IDBLevelDBCoding.cpp:
59129         (WebCore::IDBLevelDBCoding::encodeString):
59130         (WebCore::IDBLevelDBCoding::decodeString):
59131
59132 2012-10-03  Keishi Hattori  <keishi@webkit.org>
59133
59134         Implement DataList UI for input type time on chromium
59135         https://bugs.webkit.org/show_bug.cgi?id=98240
59136
59137         Reviewed by Kent Tamura.
59138
59139         This adds datalist UI for input type time. We add the picker indicator to
59140         BaseMultipleFieldsDateAndTimeInputType. We enclose the dateTimeEdit element
59141         and picker indicator inside a new div element so we can position the picker
59142         indicator in the same place as input type=date.
59143
59144         Tests: platform/chromium/fast/forms/time/time-suggestion-picker-appearance-rtl.html
59145                platform/chromium/fast/forms/time/time-suggestion-picker-appearance-with-scroll-bar.html
59146                platform/chromium/fast/forms/time/time-suggestion-picker-appearance.html
59147                platform/chromium/fast/forms/time/time-suggestion-picker-key-operations.html
59148                platform/chromium/fast/forms/time/time-suggestion-picker-mouse-operations.html
59149
59150         * css/html.css:
59151         (input::-webkit-date-and-time-container):
59152         * html/BaseMultipleFieldsDateAndTimeInputType.cpp:
59153         (WebCore::BaseMultipleFieldsDateAndTimeInputType::BaseMultipleFieldsDateAndTimeInputType):
59154         (WebCore::BaseMultipleFieldsDateAndTimeInputType::createShadowSubtree): Creates a picker indicator.
59155         (WebCore::BaseMultipleFieldsDateAndTimeInputType::handleKeydownEvent): Open the picker on Alt+Down.
59156         (WebCore):
59157         (WebCore::BaseMultipleFieldsDateAndTimeInputType::listAttributeTargetChanged): Updates picker visibility.
59158         (WebCore::BaseMultipleFieldsDateAndTimeInputType::updatePickerIndicatorVisibility): In the future, DateInputType can override
59159         this so the picker indicator is always visible.
59160         (WebCore::BaseMultipleFieldsDateAndTimeInputType::hidePickerIndicator):
59161         (WebCore::BaseMultipleFieldsDateAndTimeInputType::showPickerIndicator):
59162         * html/BaseMultipleFieldsDateAndTimeInputType.h:
59163         (WebCore):
59164         (BaseMultipleFieldsDateAndTimeInputType):
59165         * html/shadow/DateTimeFieldElement.cpp:
59166         (WebCore::DateTimeFieldElement::defaultKeyboardEventHandler): Ignore Alt+down because it should trigger the picker to open.
59167         * rendering/RenderThemeChromiumCommon.cpp:
59168         (WebCore::RenderThemeChromiumCommon::supportsDataListUI): Add time to the list.
59169
59170 2012-10-03  Andreas Kling  <kling@webkit.org>
59171
59172         Give CSSValueList backing vector an inline capacity.
59173         <http://webkit.org/b/98266>
59174         <rdar://problem/12421425>
59175
59176         Reviewed by Anders Carlsson.
59177
59178         Set an inline capacity of 4 on the CSSValue vector backing CSSValueList. This avoids an extra heap allocation
59179         in the common case, and reduces total memory use across the board, since the majority of CSSValueLists have
59180         at least 1 item, and the Vector will bump from 0 to 16 capacity on the first append.
59181
59182         394kB progression on Membuster3.
59183
59184         * css/CSSValueList.h:
59185         (CSSValueList):
59186
59187 2012-10-03  Ilya Tikhonovsky  <loislo@chromium.org>
59188
59189         Web Inspector: NMI: instrument NativeImageSkia.
59190         https://bugs.webkit.org/show_bug.cgi?id=96277
59191
59192         Reviewed by Yury Semikhatsky.
59193
59194         * platform/graphics/skia/NativeImageSkia.cpp:
59195         (WebCore::NativeImageSkia::reportMemoryUsage):
59196         (WebCore::reportMemoryUsage):
59197
59198 2012-10-03  Pavel Feldman  <pfeldman@chromium.org>
59199
59200         Web Inspector: remember the last dock option so that user could toggle between dock to bottom and right
59201         https://bugs.webkit.org/show_bug.cgi?id=98255
59202
59203         Reviewed by Vsevolod Vlasov.
59204
59205         - Introduced DockController.js that covers the dock mechanics
59206         - Removed dock orientation from the settings
59207         - Storing the last dock option to present it as default
59208         - Simplified the multi-option status bar button
59209
59210         * WebCore.gypi:
59211         * WebCore.vcproj/WebCore.vcproj:
59212         * inspector/compile-front-end.py:
59213         * inspector/front-end/DockController.js: Added.
59214         (WebInspector.DockController):
59215         (WebInspector.DockController.prototype.get element):
59216         (WebInspector.DockController.prototype.setDocked.set if):
59217         (WebInspector.DockController.prototype.setDocked):
59218         (WebInspector.DockController.prototype.setDockingUnavailable):
59219         (WebInspector.DockController.prototype._updateUI.get states):
59220         (WebInspector.DockController.prototype._updateUI):
59221         (WebInspector.DockController.prototype._decorateButtonForTargetState):
59222         (WebInspector.DockController.prototype._createDockOptions):
59223         (WebInspector.DockController.prototype._toggleDockState):
59224         (WebInspector.DockController.prototype.isCompactMode):
59225         (WebInspector.DockController.prototype.setCompactMode):
59226         * inspector/front-end/InspectorFrontendAPI.js:
59227         (InspectorFrontendAPI.setAttachedWindow):
59228         * inspector/front-end/InspectorFrontendHostStub.js:
59229         (.WebInspector.InspectorFrontendHostStub.prototype.requestAttachWindow):
59230         (.WebInspector.InspectorFrontendHostStub.prototype.requestDetachWindow):
59231         * inspector/front-end/Settings.js:
59232         * inspector/front-end/SettingsScreen.js:
59233         (WebInspector.GenericSettingsTab):
59234         * inspector/front-end/StatusBarButton.js:
59235         (WebInspector.StatusBarButton):
59236         * inspector/front-end/Toolbar.js:
59237         (WebInspector.Toolbar):
59238         (WebInspector.Toolbar.prototype.setCompactMode):
59239         (WebInspector.Toolbar.prototype._toolbarDragStart):
59240         (WebInspector.Toolbar.prototype._toolbarDrag):
59241         * inspector/front-end/WebKit.qrc:
59242         * inspector/front-end/externs.js:
59243         (WebInspector.toggleSearchingForNode):
59244         * inspector/front-end/inspector.css:
59245         (body.undocked.platform-mac-snowleopard #toolbar):
59246         (body.undocked.platform-mac-snowleopard #toolbar-dropdown):
59247         * inspector/front-end/inspector.html:
59248         * inspector/front-end/inspector.js:
59249         (WebInspector._createGlobalStatusBarItems):
59250         (windowLoaded):
59251         (WebInspector.setDockingUnavailable):
59252         * inspector/front-end/inspectorCommon.css:
59253         (body.dock-to-right:not(.undocked)):
59254         (body.dock-to-right.inactive:not(.undocked)):
59255
59256 2012-10-03  Vsevolod Vlasov  <vsevik@chromium.org>
59257
59258         Web Inspector: UISourceCode commitWorkingCopy should not fail when original script had syntax error.
59259         https://bugs.webkit.org/show_bug.cgi?id=97272
59260
59261         Reviewed by Pavel Feldman.
59262
59263         This patch is based on patch by John J. Barton.
59264
59265         * inspector/front-end/JavaScriptSource.js:
59266         (WebInspector.JavaScriptSource.prototype.workingCopyCommitted): added rawLocation null check.
59267
59268 2012-10-03  Alexander Pavlov  <apavlov@chromium.org>
59269
59270         Web Inspector: After "Edit as HTML", any click outside box should stop editing
59271         https://bugs.webkit.org/show_bug.cgi?id=98258
59272
59273         Reviewed by Vsevolod Vlasov.
59274
59275         Make the DOM tree OL span the entire height of its container in the Elements panel to catch mouse events.
59276
59277         * inspector/front-end/elementsPanel.css:
59278         (#elements-content > ol):
59279
59280 2012-10-03  Dongwoo Joshua Im  <dw.im@samsung.com>
59281
59282         [EFL] Skeleton code of File system API.
59283         https://bugs.webkit.org/show_bug.cgi?id=91187
59284
59285         Reviewed by Gyuyoung Kim.
59286
59287         Add skeleton code of File System API on EFL port.
59288         Implementation patches will be created later.
59289
59290         No new tests because this is just skeleton code.
59291
59292         * CMakeLists.txt: Add new files which created by other patches in Modules/filesystem/ directory.
59293         * PlatformEfl.cmake: Add AsyncFileSystemEfl.cpp.
59294         * platform/AsyncFileSystem.cpp:
59295         (WebCore):
59296         * platform/efl/AsyncFileSystemEfl.cpp: Added.
59297         * platform/efl/AsyncFileSystemEfl.h: Added.
59298
59299 2012-10-03  Andreas Kling  <kling@webkit.org>
59300
59301         Shrink ElementRareData by moving bool flags to NodeRareData.
59302         <http://webkit.org/b/98225>
59303
59304         Reviewed by Antti Koivisto.
59305
59306         Move all bool flags from ElementRareData to the bitfield in its base class NodeRareData.
59307         This shrinks ElementRareData by 8 bytes (on 64-bit) and saves a whopping 58kB on Membuster3.
59308         Also removed some double raredata hash lookups.
59309
59310         * dom/Element.cpp:
59311         (WebCore::Element::detach):
59312         (WebCore::Element::recalcStyle):
59313         (WebCore::Element::ensureShadow):
59314         (WebCore::Element::setStyleAffectedByEmpty):
59315         (WebCore::Element::styleAffectedByEmpty):
59316         (WebCore::Element::setIsInCanvasSubtree):
59317         (WebCore::Element::isInCanvasSubtree):
59318         (WebCore::Element::containsFullScreenElement):
59319         (WebCore::Element::setContainsFullScreenElement):
59320         * dom/ElementRareData.h:
59321         (ElementRareData):
59322         (WebCore::ElementRareData::ElementRareData):
59323         * dom/NodeRareData.h:
59324         (WebCore::NodeRareData::styleAffectedByEmpty):
59325         (WebCore::NodeRareData::setStyleAffectedByEmpty):
59326         (WebCore::NodeRareData::isInCanvasSubtree):
59327         (WebCore::NodeRareData::setIsInCanvasSubtree):
59328         (NodeRareData):
59329         (WebCore::NodeRareData::containsFullScreenElement):
59330         (WebCore::NodeRareData::setContainsFullScreenElement):
59331
59332 2012-10-03  Jussi Kukkonen  <jussi.kukkonen@intel.com>
59333
59334         getComputedStyle perspective-origin is based on the wrong bounding box
59335         https://bugs.webkit.org/show_bug.cgi?id=98027
59336
59337         Reviewed by Simon Fraser.
59338
59339         perspective-origin for ComputedStyleDeclaration is currently calculated using the
59340         wrong bounding box (sizingBox() which ends up as the contentbox).
59341
59342         Start using borderbox for ComputedStyleDeclaration perspective-origin, similar to
59343         what transform-origin already does.
59344
59345         Test: fast/css/getComputedStyle/getComputedStyle-origin-percentage.html
59346
59347         * css/CSSComputedStyleDeclaration.cpp:
59348         (WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue):
59349
59350 2012-10-03  Patrick Gansterer  <paroga@webkit.org>
59351
59352         Build fix for WinCE after r130160.
59353
59354         * platform/graphics/FontFastPath.cpp:
59355         (WebCore::Font::glyphDataAndPageForCharacter):
59356
59357 2012-10-03  Tommy Widenflycht  <tommyw@google.com>
59358
59359         MediaStream API: RTCPeerConnection should send down its handler via the FrameLoaderClient directly after creation.
59360         https://bugs.webkit.org/show_bug.cgi?id=98149
59361
59362         Reviewed by Adam Barth.
59363
59364         The chromium implementation needs to know which Frame created a PeerConnection so
59365         that the right housekeeping can take place correctly.
59366
59367         Not testable in DRT, but have verified the change manually and with our pyautotests.
59368
59369         * Modules/mediastream/RTCPeerConnection.cpp:
59370         (WebCore::RTCPeerConnection::RTCPeerConnection):
59371         * loader/FrameLoaderClient.h:
59372         (WebCore):
59373         (FrameLoaderClient):
59374         (WebCore::FrameLoaderClient::dispatchWillStartUsingPeerConnectionHandler):
59375         * platform/mediastream/chromium/RTCPeerConnectionHandlerChromium.cpp:
59376         (WebCore::RTCPeerConnectionHandlerChromium::toWebRTCPeerConnectionHandler):
59377         (WebCore):
59378         (WebCore::RTCPeerConnectionHandlerChromium::RTCPeerConnectionHandlerChromium):
59379         (WebCore::RTCPeerConnectionHandlerChromium::initialize):
59380         * platform/mediastream/chromium/RTCPeerConnectionHandlerChromium.h:
59381         (RTCPeerConnectionHandlerChromium):
59382
59383 2012-10-03  Eugene Klyuchnikov  <eustas.bug@gmail.com>
59384
59385         Web Inspector: Profiles: taking heap snapshot causes error message in console.
59386         https://bugs.webkit.org/show_bug.cgi?id=97890
59387
59388         Reviewed by Yury Semikhatsky.
59389
59390         Actual problem is that proxy loader is closed twice.
59391
59392         "_snapshotReceived" should never try to close receiver,
59393         because it is a callback fired by close.
59394
59395         Also minor glitches fixed:
59396          - taking snapshot shows "Loading..." status first,
59397         and then "Saving xxx%";
59398          - after all chunks are sent "Parsing" status is set and
59399         then is replaced with "Saving 100%";
59400          - removed dead code in proxy;
59401          - proxy was ignoring callback parameter;
59402          - "Loading %d\%" is not localized.
59403
59404         * English.lproj/localizedStrings.js: Added missing "Loading %d%" string.
59405         * inspector/front-end/HeapSnapshotProxy.js: Removed dead code.
59406         (WebInspector.HeapSnapshotLoaderProxy):
59407         (WebInspector.HeapSnapshotLoaderProxy.prototype.write): Make this method
59408         interface-conformant.
59409         * inspector/front-end/HeapSnapshotView.js:
59410         (WebInspector.HeapProfileHeader): Fixed update-status and
59411         finish-transfer logic.
59412
59413 2012-10-03  Jochen Eisinger  <jochen@chromium.org>
59414
59415         Make sure that user gestures can't be consumed twice
59416         https://bugs.webkit.org/show_bug.cgi?id=97483
59417
59418         Reviewed by Adam Barth.
59419
59420         Instead of a simple counter, use a ref counted token to track how many
59421         user gestures happened and where consumed. When creating a timer that
59422         is supposed to forward the user gesture, take a reference to this token
59423         and reinstantiate the UserGestureIndicator with that token when the
59424         timer is triggered.
59425
59426         Tests: platform/chromium/fast/events/popup-forwarded-gesture-blocked.html
59427                platform/chromium/fast/events/popup-forwarded-gesture.html
59428
59429         * dom/UserGestureIndicator.cpp:
59430         (WebCore):
59431         (WebCore::UserGestureIndicator::UserGestureIndicator):
59432         (WebCore::UserGestureIndicator::~UserGestureIndicator):
59433         (WebCore::UserGestureIndicator::processingUserGesture):
59434         (WebCore::UserGestureIndicator::consumeUserGesture):
59435         (WebCore::UserGestureIndicator::currentToken):
59436         * dom/UserGestureIndicator.h:
59437         (Token):
59438         (WebCore::UserGestureIndicator::Token::~Token):
59439         (UserGestureIndicator):
59440         * page/DOMTimer.cpp:
59441         (WebCore::DOMTimer::DOMTimer):
59442         (WebCore::DOMTimer::fired):
59443         * page/DOMTimer.h:
59444         (DOMTimer):
59445
59446 2012-10-03  Dominic Mazzoni  <dmazzoni@google.com>
59447
59448         AX: Heap-use-after-free when deleting a ContainerNode with an AX object
59449         https://bugs.webkit.org/show_bug.cgi?id=98073
59450
59451         Reviewed by Hajime Morita.
59452
59453         Calls axObjectCache()->remove(this) in ~ContainerNode so that the AX tree
59454         doesn't try to access the container node while walking up the parent chain
59455         from one of the container node's children.
59456
59457         Test: accessibility/container-node-delete-causes-crash.html
59458
59459         * dom/ContainerNode.cpp:
59460         (WebCore::ContainerNode::~ContainerNode):
59461         * dom/Node.cpp:
59462         (WebCore::Node::~Node):
59463         * dom/Node.h:
59464         (WebCore::Node::document):
59465         (WebCore::Node::documentInternal):
59466
59467 2012-10-03  Vsevolod Vlasov  <vsevik@chromium.org>
59468
59469         Web Inspector: SourceURL should be taken from debugger agent when possible.
59470         https://bugs.webkit.org/show_bug.cgi?id=98239
59471
59472         Reviewed by Yury Semikhatsky.
59473
59474         Removed a check that sourceURL coming from js engine is the same as the one parsed by debugger agent.
59475         Alwys use the one from debugger agent now.
59476
59477         * inspector/InspectorDebuggerAgent.cpp:
59478         (WebCore::InspectorDebuggerAgent::didParseSource):
59479
59480 2012-10-03  Ilya Tikhonovsky  <loislo@chromium.org>
59481
59482         Unreviewed. Touch FrameView.cpp file for fixing mac bot compilation.
59483
59484         * page/FrameView.cpp:
59485         (WebCore):
59486
59487 2012-10-02  Ilya Tikhonovsky  <loislo@chromium.org>
59488
59489         Web Inspector: "Load profile..." context menu item has to be shown only for left column with the list of profiles.
59490         https://bugs.webkit.org/show_bug.cgi?id=98163
59491
59492         Reviewed by Yury Semikhatsky.
59493
59494         The text was changed to "Load Heap Snapshot..."
59495         Also I changed "Save profile..." to "Save Heap Snapshot..." because other profiles don't support Save/Load operations yet.
59496         The Load context menu item will appear only when the user clicked in sidebar the tree empty space or a profile.
59497
59498         * English.lproj/localizedStrings.js:
59499         * inspector/front-end/ProfilesPanel.js:
59500         (WebInspector.ProfilesPanel.prototype._handleContextMenuEvent):
59501         (WebInspector.ProfileSidebarTreeElement.prototype.handleContextMenuEvent):
59502
59503 2012-10-03  Harald Alvestrand  <hta@google.com>
59504
59505         Add data passing to the GetStats interface of RTCPeerConnection
59506         https://bugs.webkit.org/show_bug.cgi?id=98003
59507
59508         Reviewed by Adam Barth.
59509
59510         Added an RTCStatsResponseBase interface to platform, and let the
59511         RTCStatsRequestImpl class produce an implementation of it that's returned
59512         to WebCore.
59513
59514         Tested by extension of the RTCPeerConnection-stats.html test.
59515
59516         * Modules/mediastream/RTCStatsElement.cpp:
59517         (WebCore::RTCStatsElement::addStatistic):
59518         (WebCore):
59519         * Modules/mediastream/RTCStatsElement.h:
59520         (RTCStatsElement):
59521         * Modules/mediastream/RTCStatsReport.cpp:
59522         (WebCore):
59523         (WebCore::RTCStatsReport::addElement):
59524         (WebCore::RTCStatsReport::addStatistic):
59525         * Modules/mediastream/RTCStatsReport.h:
59526         (RTCStatsReport):
59527         * Modules/mediastream/RTCStatsRequestImpl.cpp:
59528         (WebCore::RTCStatsRequestImpl::createResponse):
59529         (WebCore):
59530         (WebCore::RTCStatsRequestImpl::requestSucceeded):
59531         * Modules/mediastream/RTCStatsRequestImpl.h:
59532         (RTCStatsRequestImpl):
59533         * Modules/mediastream/RTCStatsResponse.cpp:
59534         (WebCore::RTCStatsResponse::create):
59535         (WebCore::RTCStatsResponse::addReport):
59536         (WebCore):
59537         (WebCore::RTCStatsResponse::addElement):
59538         (WebCore::RTCStatsResponse::addStatistic):
59539         * Modules/mediastream/RTCStatsResponse.h:
59540         (RTCStatsResponse):
59541         * WebCore.gypi:
59542         * platform/chromium/support/WebRTCStatsRequest.cpp:
59543         (WebKit::WebRTCStatsRequest::response):
59544         (WebKit):
59545         (WebKit::WebRTCStatsRequest::requestSucceeded):
59546         * platform/chromium/support/WebRTCStatsResponse.cpp: Added.
59547         (WebKit):
59548         (WebKit::WebRTCStatsResponse::WebRTCStatsResponse):
59549         (WebKit::WebRTCStatsResponse::assign):
59550         (WebKit::WebRTCStatsResponse::reset):
59551         (WebKit::WebRTCStatsResponse::operator WTF::PassRefPtr<WebCore::RTCStatsResponseBase>):
59552         (WebKit::WebRTCStatsResponse::addReport):
59553         (WebKit::WebRTCStatsResponse::addElement):
59554         (WebKit::WebRTCStatsResponse::addStatistic):
59555         * platform/mediastream/RTCStatsRequest.h:
59556         (WebCore):
59557         (RTCStatsRequest):
59558         * platform/mediastream/RTCStatsResponseBase.h: Added.
59559         (WebCore):
59560         (RTCStatsResponseBase):
59561         (WebCore::RTCStatsResponseBase::~RTCStatsResponseBase):
59562
59563 2012-10-02  Carlos Garcia Campos  <cgarcia@igalia.com>
59564
59565         [GTK] Add API to get the web view that initiated a custom URI request to WebKit2 GTK+
59566         https://bugs.webkit.org/show_bug.cgi?id=97895
59567
59568         Reviewed by Martin Robinson.
59569
59570         * platform/network/NetworkingContext.h:
59571         (NetworkingContext): Add initiatingPageID().
59572         * platform/network/ResourceHandle.h:
59573         (ResourceHandle): Add static method
59574         getSoupRequestInitiaingPageID().
59575         * platform/network/ResourceHandleInternal.h:
59576         (ResourceHandleInternal): Add initiatingPageID().
59577         * platform/network/soup/ResourceHandleSoup.cpp:
59578         (WebCore::ResourceHandleInternal::initiatingPageID): Get the
59579         initiating page ID of the resource handle networking context.
59580         (WebCore::setSoupRequestInitiaingPageID): Helper function to
59581         attach a page ID to a SoupRequest.
59582         (WebCore::startHTTPRequest): Call setSoupRequestInitiaingPageID()
59583         to attch the initiating page ID to the SoupRequest.
59584         (WebCore::startNonHTTPRequest): Ditto.
59585         (WebCore::ResourceHandle::getSoupRequestInitiaingPageID): Static
59586         method to get the page ID attached to a SoupRequest.
59587
59588 2012-10-03  Kent Tamura  <tkent@chromium.org>
59589
59590         Introduce DateComponents::minimumYear and maximumYear
59591         https://bugs.webkit.org/show_bug.cgi?id=98230
59592
59593         Reviewed by Kentaro Hara.
59594
59595         Share same difinitions in DateComponents.cpp and DateTimeFieldElements.cpp.
59596
59597         No new tests. This doesn't change any bahevior.
59598
59599         * platform/DateComponents.h:
59600         (WebCore::DateComponents::minimumYear): Moved from DateComponents.cpp.
59601         (WebCore::DateComponents::maximumYear): ditto.
59602         * platform/DateComponents.cpp:
59603         (WebCore): Move out static minimumYear and maximumYear.
59604         (WebCore::DateComponents::parseYear): Use DateCompnents::minimumYear and/or maximumYear.
59605         (WebCore::withinHTMLDateLimits): ditto.
59606         (WebCore::DateComponents::parseWeek): ditto.
59607         (WebCore::DateComponents::setMonthsSinceEpoch): ditto.
59608         (WebCore::DateComponents::setMillisecondsSinceEpochForWeek): ditto.
59609
59610         * html/shadow/DateTimeFieldElements.cpp:
59611         (WebCore): Remove minimumYear and maximumYear.
59612         (WebCore::DateTimeYearFieldElement::DateTimeYearFieldElement):
59613         Use DateComponents::minimumYear and maximumYear.
59614
59615
59616 2012-10-02  Arko Saha  <arko@motorola.com>
59617
59618         Microdata: itemprop names must not override builtin properties.
59619         https://bugs.webkit.org/show_bug.cgi?id=98025
59620
59621         Reviewed by Kentaro Hara.
59622
59623         We should look in the prototype for functions before assuming it as
59624         an item's name. Return false if the prototype of the object has a
59625         property (function) with propertyName.
59626         Named properties Spec: http://dev.w3.org/2006/webapi/WebIDL/#idl-named-properties
59627         Named property visibility algorithm:
59628         http://dev.w3.org/2006/webapi/WebIDL/#indexed-and-named-properties
59629         ...
59630         7. If the result of calling the [[HasProperty]] internal method on
59631         prototype with property name P is true, then return false.
59632         ...
59633         Also [OverrideBuiltins] is not declared for any of the properties,
59634         hence no overriding is allowed in this case.
59635
59636         Test: fast/dom/MicroData/itemprop-names-override-builtin-properties.html
59637
59638         * bindings/scripts/CodeGeneratorJS.pm:
59639         (GenerateGetOwnPropertySlotBody):
59640         (GenerateGetOwnPropertyDescriptorBody):
59641
59642 2012-10-02  Keishi Hattori  <keishi@webkit.org>
59643
59644         REGRESSION (r129738): Suggestion picker label is placed in the wrong location
59645         https://bugs.webkit.org/show_bug.cgi?id=98094
59646
59647         Reviewed by Kent Tamura.
59648
59649         We needed to reverse padding-left/right when rtl.
59650
59651         No new tests. Covered by date-suggestion-picker-appearance.html.
59652
59653         * Resources/pagepopups/suggestionPicker.css:
59654         (.suggestion-list-entry .label):
59655         (.rtl .suggestion-list-entry .label):
59656
59657 2012-10-02  Yury Semikhatsky  <yurys@chromium.org>
59658
59659         Provide memory instrumentation for HashCountedSet
59660         https://bugs.webkit.org/show_bug.cgi?id=98138
59661
59662         Reviewed by Pavel Feldman.
59663
59664         Replaced addHashCountedSet calls with addMember that now automatically
59665         detects HashCountedSet and calls appropriate routine.
59666
59667         * css/CSSImageGeneratorValue.cpp:
59668         (WebCore::CSSImageGeneratorValue::reportBaseClassMemoryUsage):
59669         * loader/cache/CachedResource.cpp:
59670
59671 2012-10-02  Nandor Huszka  <hnandor@inf.u-szeged.hu>
59672
59673         Buildfix after r130235.
59674
59675         Reviewed by Csaba Osztrogonác.
59676
59677         systemAllowsMultisamplingOnATICards was deleted from GraphicsContext3D,
59678         but function body remained in GraphicsContext3DOpenGLES. Delete method body.
59679
59680         * platform/graphics/opengl/GraphicsContext3DOpenGLES.cpp:
59681
59682 2012-10-02  Kent Tamura  <tkent@chromium.org>
59683
59684         Fix assertion failures on Chromium Debug bots for datetime/datetime-local input types.
59685
59686         * html/shadow/DateTimeFieldElements.cpp:
59687         If a placeholder stirng is empty, use a sequence of "-".
59688         (WebCore::DateTimeDayFieldElement::create):
59689         (WebCore::DateTimeMonthFieldElement::create):
59690         (WebCore::DateTimeYearFieldElement::create):
59691
59692 2012-10-02  MORITA Hajime  <morrita@google.com>
59693
59694         https://bugs.webkit.org/show_bug.cgi?id=98134
59695         [Refactoring] StyleResolver::matchScopedAuthorRules() could be simpler.
59696
59697         Reviewed by Dimitri Glazkov.
59698
59699         matchScopedAuthorRules() did have some optimization which only
59700         makes sense for heavily nested shadow tree. However, we don't see
59701         such type of usage of Shadow DOM and this looks premature
59702         optimization. This change unified its triple for loop into one,
59703         which makes the code much simpler.
59704
59705         No new tests. Covered by existing tests.
59706
59707         * css/StyleResolver.cpp:
59708         (WebCore::StyleResolver::matchScopedAuthorRules):
59709
59710 2012-10-02  Kent Tamura  <tkent@chromium.org>
59711
59712         Introduce Localizer::dateTimeFormatWithSecond and dateTimeFormatWithoutSecond
59713         https://bugs.webkit.org/show_bug.cgi?id=98229
59714
59715         Reviewed by Kentaro Hara.
59716
59717         Unify identical code in DateTimeInputType and DateTimeLocalInputType as
59718         Localizer member functions.
59719         They still have some common code. We'll address it later.
59720
59721         No new tests. This doesn't change any behavior.
59722
59723         * platform/text/Localizer.h:
59724         (Localizer): Add dateTimeFormatWithSecond and dateTimeFormatWithoutSecond.
59725         * platform/text/Localizer.cpp:
59726         (WebCore::Localizer::dateTimeFormatWithSecond):
59727         Implemented. Just concatenating dateFormat, a space, and timeFormat.
59728         (WebCore::Localizer::dateTimeFormatWithoutSecond):
59729         Implemented. Just concatenating dateFormat, a space, and shortTimeFormat.
59730
59731         * html/DateTimeInputType.cpp:
59732         (WebCore::DateTimeInputType::setupLayoutParameters):
59733         Use dateTimeFormatWithSecond and dateTimeFormatWithoutSecond.
59734         * html/DateTimeLocalInputType.cpp:
59735         (WebCore::DateTimeLocalInputType::setupLayoutParameters): ditto.
59736
59737 2012-10-03  Kent Tamura  <tkent@chromium.org>
59738
59739         Refactoring: DateTimeEditBuilder had better hold LayoutParameters
59740         https://bugs.webkit.org/show_bug.cgi?id=98228
59741
59742         Reviewed by Kentaro Hara.
59743
59744         Stop copying multiple members of LayoutParameters in DateTimeEditBuilder
59745         constructor. This change improves code size and runtime cost.
59746
59747         No new tests. This doesn't change user-visible behavior.
59748
59749         * html/shadow/DateTimeEditElement.cpp:
59750         (DateTimeEditBuilder): Add a comment about lifetime of objects.
59751         (WebCore::DateTimeEditBuilder::stepRange):
59752         Added. A helper to access m_parameters.stepRange.
59753         (WebCore::DateTimeEditBuilder::DateTimeEditBuilder):
59754         Remove m_stepRange, m_localizer, m_placeholderFor* members.
59755         Add m_parameters.
59756         (WebCore::DateTimeEditBuilder::needMillisecondField):
59757         Use stepRange() instead of m_stepRange.
59758         (WebCore::DateTimeEditBuilder::visitField):
59759         Use m_parameters.placeholderFor*.
59760         (WebCore::DateTimeEditBuilder::shouldMillisecondFieldReadOnly):
59761         Use stepRange() instead of m_stepRange.
59762         (WebCore::DateTimeEditBuilder::shouldMinuteFieldReadOnly): ditto.
59763         (WebCore::DateTimeEditBuilder::shouldSecondFieldReadOnly): ditto.
59764
59765 2012-10-02  Kent Tamura  <tkent@chromium.org>
59766
59767         Implement LocaleICU::dateFormat
59768         https://bugs.webkit.org/show_bug.cgi?id=98118
59769
59770         Reviewed by Hajime Morita.
59771
59772         http://trac.webkit.org/changeset/130127 introduced
59773         Localizer::dateFormat, and this is its implementation for LocaleICU
59774         classs. The code is going to be used when
59775         ENABLE_INPUT_MULTIPLE_FIELDS_UI is enabled.
59776
59777         No new tests. The function is not used yet.
59778
59779         * platform/text/LocaleICU.cpp:
59780         (WebCore::LocaleICU::dateFormat):
59781         Implemented. Note that m_shortDateFormat is a UDateFormat object, which
59782         knows various format information.
59783         * platform/text/LocaleICU.h:
59784         (LocaleICU): Add m_dateFormat to cache the format string.
59785
59786 2012-10-02  Kent Tamura  <tkent@chromium.org>
59787
59788         [Mac][Chromium-Mac] Implement LocaleMac::dateFormat
59789         https://bugs.webkit.org/show_bug.cgi?id=98116
59790
59791         Reviewed by Hajime Morita.
59792
59793         http://trac.webkit.org/changeset/130127 introduced
59794         Localizer::dateFormat, and this is its implementation for LocaleICU
59795         classs. The code is going to be used when
59796         ENABLE_INPUT_MULTIPLE_FIELDS_UI is enabled.
59797
59798         No new tests. The function is not used yet.
59799
59800         * platform/text/mac/LocaleMac.h:
59801         (LocaleMac): Declare m_dateFormat.
59802         * platform/text/mac/LocaleMac.mm:
59803         (WebCore::LocaleMac::dateFormat): Implemented.
59804
59805 2012-10-02  Kent Tamura  <tkent@chromium.org>
59806
59807         [Chromium-Win] Implement LocaleWin::dateFormat
59808         https://bugs.webkit.org/show_bug.cgi?id=98117
59809
59810         Reviewed by Kentaro Hara.
59811
59812         http://trac.webkit.org/changeset/130127 introduced
59813         Localizer::dateFormat, and this is its implementation for LocaleICU
59814         classs. The code is going to be used when
59815         ENABLE_INPUT_MULTIPLE_FIELDS_UI is enabled.
59816
59817         Tests: Added a new test to WebKit/chromium/tests/LocaleWinTest.cpp.
59818
59819         * platform/text/LocaleWin.cpp:
59820         (WebCore::parseDateFormat):
59821         Fix a continuous apostrophes parsing bug; "abc''''def" produced "abc'''def"
59822         (WebCore::appendAsLDMLLiteral):
59823         A helper function to make a literal string for LDML.
59824         (WebCore::convertWindowsDateFormatToLDML):
59825         Creates an LDML format from a parsed date format tokens.
59826         (WebCore::LocaleWin::dateFormat):
59827         Implemented. This uses convertWindowsDateFormatToLDML.
59828         (WebCore::LocaleWin::dateFormat):
59829         Added for testing. The source windows format is specified as a function
59830         argument.
59831         * platform/text/LocaleWin.h:
59832         (LocaleWin): Declare m_dateFormat and dateFormat().
59833
59834 2012-10-02  Ian Vollick  <vollick@chromium.org>
59835
59836         [chromium] Fix spelling of isNVIDIA override in Extensions3DChromium
59837         https://bugs.webkit.org/show_bug.cgi?id=98219
59838
59839         Reviewed by Dean Jackson.
59840
59841         The override in Extensions3dChromium should have been spelled isNVIDIA, not isNVidia.
59842
59843         No new tests. No change in functionality.
59844
59845         * platform/graphics/chromium/Extensions3DChromium.h:
59846         (WebCore::Extensions3DChromium::isNVIDIA):
59847
59848 2012-10-02  Anders Carlsson  <andersca@apple.com>
59849
59850         Try to fix the Snow Leopard build.
59851
59852         * platform/graphics/opengl/Extensions3DOpenGLCommon.cpp:
59853
59854 2012-10-02  Joshua Bell  <jsbell@chromium.org>
59855
59856         Add htons/htonl definitions and implementations
59857         https://bugs.webkit.org/show_bug.cgi?id=98054
59858
59859         Reviewed by Darin Adler.
59860
59861         Update users of htons and friends to use new wtf/ByteOrder.h header.
59862
59863         No new tests - just refactoring.
59864
59865         * platform/graphics/WOFFFileFormat.cpp:
59866         * platform/graphics/chromium/VDMXParser.cpp:
59867
59868 == Rolled over to ChangeLog-2012-10-02 ==