[CherryPick] Inappropriate validation message for required number/date input elements
[framework/web/webkit-efl.git] / Source / WebCore / ChangeLog
1 2013-03-11  Kent Tamura  <tkent@chromium.org>
2
3         Inappropriate validation message for required number/date input elements
4         https://bugs.webkit.org/show_bug.cgi?id=111982
5
6         Reviewed by Kentaro Hara.
7
8         For validation message, badInput messages should take precedence
9         over valueMissing messages because users already filled out the
10         field with a bad value.
11
12         Tests: Update fast/forms/validationMessage.html
13
14         * html/InputType.cpp:
15         (WebCore::InputType::validationMessage):
16         Check badInput first.
17
18 2013-03-11  Kent Tamura  <tkent@chromium.org>
19
20         Refactoring: Move the content of HTMLInputElement::subtreeHasChanged to TextFieldInputType
21         https://bugs.webkit.org/show_bug.cgi?id=103195
22
23         Reviewed by Kentaro Hara.
24
25         HTMLInputElement::subtreeHasChanged is called only if the input is
26         a text field. The code should be moved to TextFieldInputType.
27
28         No new tests. This should not change any behavior.
29
30         * html/HTMLInputElement.cpp:
31         - Remove unnecessary NumberInputType.h inclusion.
32         - Remove convertFromVisibleValue. It was used only by subtreeHasChanged.
33         (WebCore::HTMLInputElement::subtreeHasChanged):
34         Move the code to TextFieldInputType::subtreeHasChanged except
35         calculateAndAdjustDirectionality, which is a protected member of
36         HTMLElement.
37         * html/HTMLInputElement.h:
38         (HTMLInputElement): Remove convertFromVisibleValue.
39
40         * html/InputType.cpp:
41         Move convertFromVisibleValue to TextFieldInputType.
42         (WebCore::InputType::subtreeHasChanged):
43         Add ASSERT_NOT_REACHED.
44         * html/InputType.h:
45         (InputType): Remove convertFromVisibleValue.
46
47         * html/TextFieldInputType.cpp:
48         (WebCore::TextFieldInputType::convertFromVisibleValue):
49         Moved from InputType.
50         (WebCore::TextFieldInputType::subtreeHasChanged):
51         Moved from HTMLInputElement. A latter part is moved to
52         didSetValueByUserEdit to be hooked by SearchInputType.
53         (WebCore::TextFieldInputType::didSetValueByUserEdit):
54         Moved from HTMLInputElement::subtreeHasChanged, and clean up the code.
55         * html/TextFieldInputType.h:
56         (TextFieldInputType):
57         - Move convertFromVisibleValue from InputType.
58         - Add didSetValueByUserEdit and subtreeHasChanged.
59
60         * html/SearchInputType.cpp:
61         (WebCore::SearchInputType::didSetValueByUserEdit):
62         Renamed from subtreeHasChanged, and calls TextFieldInputType::didSetValueByUserEdit.
63         * html/SearchInputType.h:
64         (SearchInputType): Rename subtreeHasChanged to didSetValueByUserEdit.
65
66 2012-11-22  Kentaro Hara  <haraken@chromium.org>
67
68         [V8] Move WorkerExecutionContextProxy::initializeIfNeeded() to V8Initializer
69         https://bugs.webkit.org/show_bug.cgi?id=103061
70
71         Reviewed by Adam Barth.
72
73         This is an incremental step to remove WorkerExecutionContextProxy.
74         This patch moves WorkerExecutionContextProxy::initializeIfNeeded() to V8Initializer.
75         This patch also renames methods so that the names become consistent
76         between the main thread and workers.
77
78         No tests. No change in behavior.
79
80         * bindings/v8/V8Initializer.cpp:
81         (WebCore::reportFatalErrorInMainThread):
82         (WebCore::messageHandlerInMainThread):
83         (WebCore::failedAccessCheckCallbackInMainThread):
84         (WebCore::V8Initializer::initializeMainThreadIfNeeded):
85         (WebCore::reportFatalErrorInWorker):
86         (WebCore):
87         (WebCore::messageHandlerInWorker):
88         (WebCore::V8Initializer::initializeWorkerIfNeeded):
89         * bindings/v8/V8Initializer.h:
90         (V8Initializer):
91         * bindings/v8/WorkerContextExecutionProxy.cpp:
92         (WebCore::WorkerContextExecutionProxy::WorkerContextExecutionProxy):
93         * bindings/v8/WorkerContextExecutionProxy.h:
94         (WorkerContextExecutionProxy):
95
96 2012-11-25  Christophe Dumez  <christophe.dumez@intel.com>
97
98         [EFL] Refactor RenderThemeEfl::ThemePartCacheEntry::reuse()
99         https://bugs.webkit.org/show_bug.cgi?id=103189
100
101         Reviewed by Kenneth Rohde Christiansen.
102
103         Check if the entry size and type changed in
104         RenderThemeEfl::ThemePartCacheEntry::reuse() to avoid
105         useless processing if one of them did not change.
106
107         Remove useless call to cairo_surface_finish() since
108         we are using a smart pointer for the surface.
109
110         Resize the edge object *after* loading its content
111         from the theme file as it seems more logical this
112         way.
113
114         No new tests, no behavior change for layout tests.
115
116         * platform/efl/RenderThemeEfl.cpp:
117         (WebCore::RenderThemeEfl::ThemePartCacheEntry::reuse):
118         * platform/efl/RenderThemeEfl.h:
119         (ThemePartCacheEntry):
120
121 2012-11-25  Ryosuke Niwa  <rniwa@webkit.org>
122
123         Rename DynamicNodeList to LiveNodeList
124         https://bugs.webkit.org/show_bug.cgi?id=103197
125
126         Reviewed by Ojan Vafai.
127
128         Rename DynamicNodeList to LiveNodeList to match the terminology used in DOM4 working draft:
129         http://www.w3.org/TR/2012/WD-dom-20120405/#concept-collection-live
130         "A collection (either NodeList or HTMLCollection) can be either live or static".
131
132         Also rename DynamicNodeListCacheBase to LiveNodeListBase, and merge DynamicSubtreeNodeList
133         into LiveNodeList (old DynamicNodeList) now that the only difference between those two classes
134         is the former calling registerNodeListCache and unregisterNodeListCache on Document.
135
136         This patch completes the series of simplification of NodeList/HTMLCollection classes.
137
138         * CMakeLists.txt:
139         * GNUmakefile.list.am:
140         * Target.pri:
141         * WebCore.gypi:
142         * WebCore.xcodeproj/project.pbxproj:
143         * bindings/js/JSHTMLOptionsCollectionCustom.cpp:
144         (WebCore::getNamedItems):
145         * bindings/js/JSNodeListCustom.cpp:
146         (WebCore::JSNodeListOwner::isReachableFromOpaqueRoots):
147         * bindings/v8/custom/V8NodeListCustom.cpp:
148         (WebCore::V8NodeList::opaqueRootForGC):
149         * dom/ChildNodeList.cpp:
150         (WebCore::ChildNodeList::ChildNodeList):
151         (WebCore::ChildNodeList::nodeMatches):
152         * dom/ChildNodeList.h:
153         * dom/ClassNodeList.cpp:
154         (WebCore::ClassNodeList::ClassNodeList):
155         * dom/ClassNodeList.h:
156         * dom/DOMAllInOne.cpp:
157         * dom/Document.cpp:
158         (WebCore::Document::registerNodeListCache):
159         (WebCore::Document::unregisterNodeListCache):
160         (WebCore):
161         * dom/Document.h:
162         (WebCore):
163         (Document):
164         * dom/DynamicNodeList.cpp: Removed.
165         * dom/DynamicNodeList.h: Removed.
166         * dom/LiveNodeList.cpp: Copied from Source/WebCore/dom/DynamicNodeList.cpp.
167         (WebCore::LiveNodeListBase::rootNode):
168         (WebCore::LiveNodeListBase::invalidateCache):
169         (WebCore::LiveNodeListBase::invalidateIdNameCacheMaps):
170         (WebCore::LiveNodeListBase::reportMemoryUsage):
171         (WebCore::LiveNodeList::namedItem):
172         * dom/LiveNodeList.h: Copied from Source/WebCore/dom/DynamicNodeList.h.
173         (WebCore::LiveNodeListBase::LiveNodeListBase):
174         (WebCore::LiveNodeListBase::shouldInvalidateTypeOnAttributeChange):
175         (WebCore::LiveNodeList::LiveNodeList):
176         (WebCore::LiveNodeList::~LiveNodeList):
177         (LiveNodeList):
178         * dom/MicroDataItemList.cpp:
179         (WebCore::MicroDataItemList::MicroDataItemList):
180         * dom/MicroDataItemList.h:
181         * dom/NameNodeList.cpp:
182         (WebCore::NameNodeList::NameNodeList):
183         * dom/NameNodeList.h:
184         * dom/Node.cpp:
185         (WebCore::shouldInvalidateNodeListCachesForAttr):
186         (WebCore::Document::invalidateNodeListCaches):
187         * dom/Node.h:
188         (WebCore):
189         * dom/NodeList.h:
190         (WebCore::NodeList::isLiveNodeList):
191         * dom/NodeRareData.h:
192         (NodeListsNodeData):
193         (WebCore::NodeListsNodeData::removeCacheWithAtomicName):
194         (WebCore::NodeListsNodeData::removeCacheWithName):
195         (WebCore::NodeListsNodeData::removeCacheWithQualifiedName):
196         (WebCore::NodeListsNodeData::adoptTreeScope):
197         * dom/PropertyNodeList.cpp:
198         (WebCore::PropertyNodeList::PropertyNodeList):
199         * dom/PropertyNodeList.h:
200         * dom/TagNodeList.cpp:
201         (WebCore::TagNodeList::TagNodeList):
202         * dom/TagNodeList.h:
203         * html/HTMLCollection.cpp:
204         (WebCore::HTMLCollection::HTMLCollection):
205         (WebCore::LiveNodeListBase::iterateForNextNode):
206         (WebCore::LiveNodeListBase::itemBeforeOrAfter):
207         (WebCore::LiveNodeListBase::itemBefore):
208         (WebCore::LiveNodeListBase::itemAfter):
209         (WebCore::LiveNodeListBase::isLastItemCloserThanLastOrCachedItem):
210         (WebCore::LiveNodeListBase::isFirstItemCloserThanCachedItem):
211         (WebCore::LiveNodeListBase::setItemCache):
212         (WebCore::LiveNodeListBase::length):
213         (WebCore::LiveNodeListBase::item):
214         (WebCore::LiveNodeListBase::itemBeforeOrAfterCachedItem):
215         * html/HTMLCollection.h:
216         * html/LabelsNodeList.cpp:
217         (WebCore::LabelsNodeList::LabelsNodeList):
218         * html/LabelsNodeList.h:
219         * html/RadioNodeList.cpp:
220         (WebCore::RadioNodeList::RadioNodeList):
221         * html/RadioNodeList.h:
222
223 2012-10-08  Robert Hogan  <robert@webkit.org>
224
225         Changing position:relative to position:static results in mis-positioned div
226         https://bugs.webkit.org/show_bug.cgi?id=26397
227
228         Reviewed by Ojan Vafai.
229
230         When a block changes position from relative to static it is no longer the containing block for any
231         positioned objects it may have. If any of those positioned objects actually have a position specified
232         they are going to need a layout as their new containing block will likely have a different location they
233         need to offset from. Positioned objects without a specified position always get a layout anyway 
234         in layoutPositionedObjects() so no need to worry about them in this situation. 
235
236         Test: fast/block/abspos-child-container-changes-from-relative-to-static-expected.html
237
238         * rendering/RenderBlock.cpp:
239         (WebCore::RenderBlock::styleWillChange):
240         (WebCore::RenderBlock::layoutPositionedObjects):
241         (WebCore::RenderBlock::removePositionedObjects):
242         * rendering/RenderBlock.h:
243         (RenderBlock):
244
245 2012-11-25  Kent Tamura  <tkent@chromium.org>
246
247         Correct input[type=number] value sanitization for user-input
248         https://bugs.webkit.org/show_bug.cgi?id=103018
249
250         Reviewed by Kentaro Hara.
251
252         If a number field has non-number string, HTMLInputElement::value is not
253         updated and returns the past valid value. It doesn't match to the value
254         sanitization algorithm defined by the HTML standard [1], and Opera's
255         behavior. We should sanitize non-number strings to "".
256
257         [1] http://www.whatwg.org/specs/web-apps/current-work/multipage/states-of-the-type-attribute.html#number-state-(type=number)
258         > The value sanitization algorithm is as follows: If the value of the
259         > element is not a valid floating-point number, then set it to the empty
260         > string instead.
261
262         No new tests. Update existing tests;
263         fast/forms/number/number-commit-valid-only.html and
264         fast/forms/number/number-unacceptable-style.html
265
266         * html/HTMLInputElement.cpp:
267         (WebCore::HTMLInputElement::subtreeHasChanged):
268         Remove isAcceptableValue check.
269
270         * html/HTMLInputElement.h:
271         (HTMLInputElement): isAcceptableValue is no longer needed.
272         * html/InputType.cpp: Remove isAcceptableValue.
273         * html/InputType.h: Ditto.
274         * html/NumberInputType.cpp: Ditto.
275         (WebCore::NumberInputType::hasUnacceptableValue):
276         Fold the isAcceptableValue content into this.
277         * html/NumberInputType.h:
278         (NumberInputType): Remove isAcceptableValue.
279
280 2012-12-13  Byungwoo Lee  <bw80.lee@samsung.com>
281
282         [EFL] Remove redundant pipe write to prevent pipe buffer full.
283         https://bugs.webkit.org/show_bug.cgi?id=101135
284
285         Reviewed by Gyuyoung Kim.
286
287         To prevent a source of a deadlock, remove the redundant pipe write
288         in wakeUp() function.
289
290         EFL uses ecore_pipe_write() to wake up main run loop, and the function
291         uses POSIX pipe write with O_NONBLOCK disabled.
292         With O_NONBLOCK disabled, when written data is more than PIPE_BUF,
293         pipe write will be blocked until it can be written.
294
295         Currently, every wakeUp() function calls ecore_pipe_write() to invoke
296         wakeUpEvent() callback. And this can make pipe buffer full status
297         which is the one reason of the lockup problem described in Bug 99494.
298
299         * platform/RunLoop.h:
300         (RunLoop):
301         * platform/efl/RunLoopEfl.cpp:
302         (WebCore::RunLoop::RunLoop):
303         (WebCore::RunLoop::wakeUpEvent):
304         (WebCore::RunLoop::wakeUp):
305
306 2012-12-11  Viatcheslav Ostapenko  <sl.ostapenko@samsung.com>
307
308         Remove conversion to/from float and float division from ImageFrame::setRGBA
309         https://bugs.webkit.org/show_bug.cgi?id=103693
310
311         Reviewed by Brent Fulgham.
312
313         Replace floating point operations used for alpha premultiply with fixed point arithmetic
314         which is basically integer operations. Allows to shave extra couple percent from decoding
315         images with transparency.
316
317         Covered by existing tests.
318
319         * platform/image-decoders/ImageDecoder.h:
320         (ImageFrame):
321         (WebCore::ImageFrame::fixPointUnsignedMultiply):
322         (WebCore::ImageFrame::setRGBA):
323
324 2012-11-30  Jer Noble  <jer.noble@apple.com>
325
326         Unreviewed Windows build fix.
327
328         Add a default: entry to an case statement to fix a build error when compiled in VS2005.
329
330         * html/MediaController.cpp:
331         (MediaController::playbackState):
332
333 2012-11-28  Byungwoo Lee  <bw80.lee@samsung.com>
334
335         [EFL] Use mutex locker in wakeUp() to ensure thread-safety.
336         https://bugs.webkit.org/show_bug.cgi?id=101132
337
338         Reviewed by Gyuyoung Kim.
339
340         Add mutex locker for the ecore pipe to ensure thread-safety of
341         RunLoop::wakeUp().
342
343         RunLoop::wakeUp() can be called by multiple thread. It uses
344         ecore_pipe_write() function but the function is not thread-safe.
345
346         * platform/RunLoop.h:
347         (RunLoop):
348         * platform/efl/RunLoopEfl.cpp:
349         (WebCore::RunLoop::wakeUp):
350
351 2012-11-09  Huang Dongsung  <luxtella@company100.net>
352
353         Coordinated Graphics: Remove a backing store of GraphicsLayer when the layer is far from the viewport.
354         https://bugs.webkit.org/show_bug.cgi?id=101656
355
356         Reviewed by Kenneth Rohde Christiansen.
357
358         TiledBackingStore computes cover and keep rects to create, keep or remove tiles
359         smartly, but currently TiledBackingStore expects a contents rect is big enough
360         to cover the visibleRect. However, when CoordinatedGraphicsLayer uses TBS, it
361         is usually wrong expectation.
362
363         We must compute cover and keep rects using the visibleRect, instead of
364         the rect intersecting the visibleRect with m_rect, because TBS can be
365         used as a backing store of GraphicsLayer and the visible rect usually
366         does not intersect with m_rect.
367         In the below case, the intersecting rect is an empty.
368
369          +---------------+
370          |               |
371          |   m_rect      |
372          |       +-------|-----------------------+
373          |       | HERE  |  cover or keep        |
374          +---------------+      rect             |
375                  |         +---------+           |
376                  |         | visible |           |
377                  |         |  rect   |           |
378                  |         +---------+           |
379                  |                               |
380                  |                               |
381                  +-------------------------------+
382
383         We must create or keep the tiles in the HERE region. Currently in the
384         case, we do not create or keep tiles on the HERE region. Moreover, in
385         the case, we early return, which means we don't remove any tiles. It
386         causes to waste heap and video memory.
387
388         This patch changes TiledBackingStore to manage tiles smartly for
389         Coordinated Graphics.
390
391         Changing cache policy is not testable in layout tests.
392
393         * platform/graphics/TiledBackingStore.cpp:
394         (WebCore::TiledBackingStore::visibleRect):
395         (WebCore::TiledBackingStore::visibleAreaIsCovered):
396         (WebCore::TiledBackingStore::createTiles):
397         (WebCore::TiledBackingStore::adjustForContentsRect):
398         (WebCore::TiledBackingStore::removeAllNonVisibleTiles):
399         * platform/graphics/TiledBackingStore.h:
400         (TiledBackingStore):
401
402 2012-10-10  Christophe Dumez  <christophe.dumez@intel.com>
403
404         SQLResultSet.rowsAffected not cleared
405         https://bugs.webkit.org/show_bug.cgi?id=46070
406
407         Reviewed by Kenneth Rohde Christiansen.
408
409         SQLResultSet.rowsAffected is supposed to return the number
410         of rows that were changed by the statement. For "SELECT"
411         statements, it should return 0.
412
413         However, our implementation currently relies on sqlite3_changes()
414         to compute this value. sqlite3_changes() returns the number of
415         direct row changes in the most recent INSERT, UPDATE, or DELETE
416         statement within the same trigger context. Unfortunately, the
417         most recent INSERT, UPDATE, or DELETE statement may not be the
418         last statement. As a consequence, if you INSERT 1 row, then
419         do a SELECT, SQLResultSet.rowsAffected will be 1 for both the
420         INSERT and the SELECT statements.
421
422         The proposed solution is to use sqlite3_total_changes() instead
423         of sqlite3_changes(). sqlite3_total_changes() returns the number
424         of row changes caused by INSERT, UPDATE or DELETE statements since
425         the database connection was opened. We now store the value
426         returned by sqlite3_total_changes() before each statement in
427         order to return the count difference in
428         SQLiteDatabase::lastChanges().
429
430         Test: storage/websql/execute-sql-rowsAffected.html
431
432         * platform/sql/SQLiteDatabase.cpp:
433         (WebCore::SQLiteDatabase::SQLiteDatabase):
434         (WebCore::SQLiteDatabase::updateLastChangesCount):
435         (WebCore):
436         (WebCore::SQLiteDatabase::lastChanges):
437         * platform/sql/SQLiteDatabase.h:
438         (SQLiteDatabase):
439         * platform/sql/SQLiteStatement.cpp:
440         (WebCore::SQLiteStatement::step):
441
442 2012-11-20  Keishi Hattori  <keishi@webkit.org>
443
444         Week picker width is too small
445         https://bugs.webkit.org/show_bug.cgi?id=102766
446
447         Reviewed by Kent Tamura.
448
449         The width of week picker was too small because we were forgetting about
450         the week number column when calculating the desired width.
451
452         No new tests. Covered by week-picker-appearance*.html.
453
454         * Resources/pagepopups/calendarPicker.css:
455         (.week-mode .week-column): Needs to be table-cell.
456         * Resources/pagepopups/calendarPicker.js:
457         (CalendarPicker.prototype.fixWindowSize):
458
459 2012-11-20  Xabier Rodriguez Calvar  <calvaris@igalia.com>
460
461         [GTK] no volume slider in HTML5 media element controls
462         https://bugs.webkit.org/show_bug.cgi?id=97192
463
464         Reviewed by Philippe Normand.
465
466         r115829 was causing this regression so it was partially
467         reverted. The revert causes some small regressions, in the tests
468         but it is better to have the volume slider shown.
469
470         * css/mediaControlsGtk.css:
471         (audio::-webkit-media-controls-panel)
472         (video::-webkit-media-controls-panel): Partially reverted
473         r115829.
474
475 2012-11-19  Antti Koivisto  <antti@apple.com>
476
477         Collect user style sheets in DocumentStyleSheetCollection
478         https://bugs.webkit.org/show_bug.cgi?id=102683
479
480         Reviewed by Andreas Kling.
481
482         Move the user stylesheet collection logic from StyleResolver to DocumentStyleSheetCollection.
483         
484         * css/StyleResolver.cpp:
485         (WebCore::StyleResolver::StyleResolver):
486         (WebCore::StyleResolver::collectRulesFromUserStyleSheets):
487         (WebCore::collectCSSOMWrappers):
488         * css/StyleResolver.h:
489         (StyleResolver):
490         * dom/DocumentStyleSheetCollection.cpp:
491         (WebCore::DocumentStyleSheetCollection::~DocumentStyleSheetCollection):
492         (WebCore::DocumentStyleSheetCollection::pageUserStyleSheet):
493         (WebCore::DocumentStyleSheetCollection::clearPageUserStyleSheet):
494         (WebCore::DocumentStyleSheetCollection::updatePageUserStyleSheet):
495         (WebCore::DocumentStyleSheetCollection::analyzeStyleSheetChange):
496         (WebCore::collectActiveStyleSheetsFromSeamlessParents):
497         (WebCore::DocumentStyleSheetCollection::updateStyleResolver):
498         
499             Factor the StyleResolver updating code to function.
500
501         (WebCore):
502         (WebCore::DocumentStyleSheetCollection::updateActiveStyleSheets):
503         
504             Collect the user style sheets. Some renaming and other minor refactoring.
505
506         (WebCore::DocumentStyleSheetCollection::reportMemoryUsage):
507         * dom/DocumentStyleSheetCollection.h:
508         (WebCore::DocumentStyleSheetCollection::activeUserStyleSheets):
509         
510             Add activeUserStyleSheets vector that contains all user stylesheets from different sources,
511             similar to activeAuthorStyleSheets.
512
513         (DocumentStyleSheetCollection):
514         (WebCore::DocumentStyleSheetCollection::documentUserStyleSheets):
515
516 2012-11-20  Elliott Sprehn  <esprehn@chromium.org>
517
518         Remove unneeded optimization in Element::isInTopLayer
519         https://bugs.webkit.org/show_bug.cgi?id=102772
520
521         Reviewed by Andreas Kling.
522
523         There's no reason to worry about calling elementRareData() multiple
524         times in this non performance sensitive code path as it's only used
525         in HTMLDialogElement's showModal and close methods.
526
527         No new tests, just simplification.
528
529         * dom/Element.cpp:
530         (WebCore::Element::setIsInTopLayer):
531
532 2012-11-20  Elliott Sprehn  <esprehn@chromium.org>
533
534         Simplify Element::isSpellCheckingEnabled
535         https://bugs.webkit.org/show_bug.cgi?id=102779
536
537         Reviewed by Andreas Kling.
538
539         isSpellCheckingEnabled contains logic that duplicates parentOrHostElement
540         and can be simplified by just calling that.
541
542         No new tests, just simplification.
543
544         * dom/Element.cpp:
545         (WebCore::Element::isSpellCheckingEnabled):
546
547 2012-11-20  Kihong Kwon  <kihong.kwon@samsung.com>
548
549         Apply DeviceController as parent class of DeviceMotionController.
550         https://bugs.webkit.org/show_bug.cgi?id=102578
551
552         Reviewed by Hajime Morita.
553
554         DeviceController needs to be applied as parent class of DeviceMotionController
555         because DeviceController which is extracted as parent class of
556         DeviceMotionController and DeviceOrientationController is already added.
557         Therefore duplicated implementation can be removed.
558
559         Covered by existing tests.
560
561         * dom/DeviceMotionClient.h:
562         * dom/DeviceMotionController.cpp:
563         (WebCore::DeviceMotionController::DeviceMotionController):
564         (WebCore::DeviceMotionController::didChangeDeviceMotion):
565         (WebCore::DeviceMotionController::deviceMotionClient):
566         (WebCore::DeviceMotionController::hasLastData):
567         (WebCore::DeviceMotionController::getLastEvent):
568         (WebCore::DeviceMotionController::from):
569         (WebCore):
570         * dom/DeviceMotionController.h:
571         (WebCore):
572         (WebCore::DeviceMotionController::~DeviceMotionController):
573         (DeviceMotionController):
574         * dom/Document.cpp:
575         Remove all implementations which are related DeviceOrientationEvnet and DeviceMotionEvent.
576         Because DeviceController checks suspend and stop status of active dom object before dispatchEvent.
577         (WebCore::Document::suspendActiveDOMObjects):
578         (WebCore::Document::resumeActiveDOMObjects):
579         * loader/EmptyClients.h:
580         * page/DOMWindow.cpp:
581         (WebCore::DOMWindow::addEventListener):
582         (WebCore::DOMWindow::removeEventListener):
583         (WebCore::DOMWindow::removeAllEventListeners):
584
585 2012-11-20  Kentaro Hara  <haraken@chromium.org>
586
587         [V8] Remove V8ParameterBase
588         https://bugs.webkit.org/show_bug.cgi?id=102774
589
590         Reviewed by Adam Barth.
591
592         V8ParameterBase is a redundant indirection.
593         We can flatten methods of V8ParameterBase to V8Parameter.
594
595         No tests. No change in behavior.
596
597         * bindings/v8/V8StringResource.h:
598         (WebCore::V8Parameter::V8Parameter):
599         (V8Parameter):
600         (WebCore::V8Parameter::toString):
601         (WebCore::::prepare):
602
603 2012-11-20  Kunihiko Sakamoto  <ksakamoto@chromium.org>
604
605         Use localized date-time format in datetime input
606         https://bugs.webkit.org/show_bug.cgi?id=102769
607
608         Reviewed by Kent Tamura.
609
610         Move the implementation of Locale::dateTimeFormatWithSeconds and Locale::dateTimeFormatWithoutSeconds
611         to its subclasses and use platform-specific methods to get date-time pattern.
612         Because Windows does not provide an API to get date-time pattern. We use fixed "{date} {time}"
613         pattern for Windows.
614
615         Test: fast/forms/datetime/datetime-appearance-l10n.html
616
617         * platform/text/LocaleICU.cpp:
618         (WebCore::LocaleICU::initializeDateTimeFormat): Retrieve datetime formats too.
619         (WebCore::LocaleICU::dateTimeFormatWithSeconds): Added.
620         (WebCore):
621         (WebCore::LocaleICU::dateTimeFormatWithoutSeconds): Added.
622         * platform/text/LocaleICU.h:
623         (LocaleICU): Add m_dateTimeFormatWithSeconds and m_dateTimeFormatWithoutSeconds.
624         * platform/text/LocaleNone.cpp:
625         (LocaleNone):
626         (WebCore::LocaleNone::dateTimeFormatWithSeconds): Added. Always returns "dd/MM/yyyyy HH:mm:ss".
627         (WebCore):
628         (WebCore::LocaleNone::dateTimeFormatWithoutSeconds): Added. Always returns "dd/MM/yyyyy HH:mm".
629         * platform/text/PlatformLocale.cpp:
630         (WebCore): Remove dateTimeFormatWithSeconds() and dateTimeFormatWithoutSeconds() as these are now pure virtual.
631         * platform/text/PlatformLocale.h:
632         (Locale): Make dateTimeFormatWithSeconds() and dateTimeFormatWithoutSeconds() pure virtual.
633         * platform/text/mac/LocaleMac.h:
634         (LocaleMac): Add m_dateTimeFormatWithSeconds and m_dateTimeFormatWithoutSeconds.
635         * platform/text/mac/LocaleMac.mm:
636         (WebCore::LocaleMac::dateTimeFormatterWithSeconds): Added.
637         (WebCore):
638         (WebCore::LocaleMac::dateTimeFormatterWithoutSeconds): Added.
639         (WebCore::LocaleMac::dateTimeFormatWithSeconds): Added.
640         (WebCore::LocaleMac::dateTimeFormatWithoutSeconds): Added.
641         * platform/text/win/LocaleWin.cpp:
642         (WebCore::LocaleWin::dateTimeFormatWithSeconds): Copied from original Locale::dateTimeFormatWithSeconds().
643         (WebCore):
644         (WebCore::LocaleWin::dateTimeFormatWithoutSeconds): Copied from original Locale::dateTimeFormatWithoutSeconds().
645         * platform/text/win/LocaleWin.h:
646         (LocaleWin): Add m_dateTimeFormatWithSeconds and m_dateTimeFormatWithoutSeconds.
647
648 2012-11-20  Sheriff Bot  <webkit.review.bot@gmail.com>
649
650         Unreviewed, rolling out r135257.
651         http://trac.webkit.org/changeset/135257
652         https://bugs.webkit.org/show_bug.cgi?id=102777
653
654         Broke Chromium Debug compilation (Requested by yurys on
655         #webkit).
656
657         * bindings/v8/DOMDataStore.h:
658         (WebCore::DOMDataStore::getNode):
659
660 2012-11-20  Vsevolod Vlasov  <vsevik@chromium.org>
661
662         Web Inspector: Revert r133149: breaks revision reverting
663         https://bugs.webkit.org/show_bug.cgi?id=102672
664
665         Reviewed by Yury Semikhatsky.
666
667         * inspector/front-end/JavaScriptSourceFrame.js:
668         (WebInspector.JavaScriptSourceFrame):
669         (WebInspector.JavaScriptSourceFrame.prototype._onFormattedChanged):
670         (WebInspector.JavaScriptSourceFrame.prototype._onWorkingCopyCommitted):
671         (WebInspector.JavaScriptSourceFrame.prototype._innerSetContent):
672
673 2012-11-19  Csaba Osztrogonác  <ossy@webkit.org>
674
675         [Qt][Win] Unreviewed speculative buildfix after r135217.
676
677         * platform/win/WindowsExtras.h:
678
679 2012-11-19  Yury Semikhatsky  <yurys@chromium.org>
680
681         Unreviewed. Fix Chromium Win compilation after r135255.
682         https://bugs.webkit.org/show_bug.cgi?id=97803
683
684         * WebCore.gypi: removed reference to platform/wince/DragDataWince.cpp which
685         was deleted in the aforementioned change.
686
687 2012-11-19  Kentaro Hara  <haraken@chromium.org>
688
689         [V8] Merge getCachedWrapper(Node*) into DOMDataStore
690         https://bugs.webkit.org/show_bug.cgi?id=102158
691
692          Reviewed by Adam Barth.
693
694         A follow-up patch for r135230. This patch adds a correct ASSERTION.
695
696         No tests. No change in behavior.
697
698         * bindings/v8/DOMDataStore.h:
699         (WebCore::DOMDataStore::getNode):
700
701 2012-11-19  Kentaro Hara  <haraken@chromium.org>
702
703         [JSC] Replace $implClassName with $interfaceName in CodeGeneratorJS.pm
704         https://bugs.webkit.org/show_bug.cgi?id=102757
705
706         Reviewed by Adam Barth.
707
708         In CodeGeneratorJS.pm $implClassName and $interfaceName are
709         equivalent. We're using them interchangeably. We should replace
710         $implClassName with $interfaceName.
711
712         No tests. No change in behavior.
713
714         * bindings/scripts/CodeGeneratorJS.pm:
715         (AddClassForwardIfNeeded):
716         (GenerateGetOwnPropertySlotBody):
717         (GenerateGetOwnPropertyDescriptorBody):
718         (GenerateHeader):
719         (GenerateOverloadedFunction):
720         (GenerateImplementation):
721         (GenerateParametersCheck):
722         (GenerateImplementationFunctionCall):
723         (NativeToJSValue):
724
725 2012-11-19  Patrick Gansterer  <paroga@webkit.org>
726
727         Port DragDataWin.cpp to WinCE
728         https://bugs.webkit.org/show_bug.cgi?id=97803
729
730         Reviewed by Brent Fulgham.
731
732         Add two simple #if OS(WINCE) to DragDataWin.cpp, so it can be used by the WinCE port too.
733
734         * PlatformWinCE.cmake:
735         * platform/win/DragDataWin.cpp:
736         (WebCore::DragData::containsFiles):
737         (WebCore::DragData::numberOfFiles):
738         (WebCore::DragData::asFilenames):
739         * platform/wince/DragDataWinCE.cpp: Removed.
740
741 2012-11-19  Pan Deng  <pan.deng@intel.com>
742
743         [Web Inspector] This patch makes script line number search-able in Timeline panel.
744         https://bugs.webkit.org/show_bug.cgi?id=101910.
745
746         Reviewed by Pavel Feldman.
747
748         Script line number is visible in Timeline panel, however, not search-able. This patch makes it search-able.
749
750         No new tests. 
751
752         * inspector/front-end/TimelinePanel.js:
753         (WebInspector.TimelineRecordListRow.prototype.update):
754         (WebInspector.TimelineRecordListRow.testContentMatching):
755         * inspector/front-end/TimelinePresentationModel.js:
756         (WebInspector.TimelinePresentationModel.Record.prototype._generatePopupContentWithImagePreview):
757         (WebInspector.TimelinePresentationModel.Record.prototype._refreshDetails):
758         (WebInspector.TimelinePresentationModel.Record.prototype.detailsNode):
759         (WebInspector.TimelinePresentationModel.Record.prototype._createSpanWithText):
760         (WebInspector.TimelinePresentationModel.Record.prototype._getRecordDetails):
761
762 2012-11-19  Elliott Sprehn  <esprehn@chromium.org>
763
764         Remove unneeded null check in NodeRendererFactory::createRendererIfNeeded
765         https://bugs.webkit.org/show_bug.cgi?id=102765
766
767         Reviewed by Ojan Vafai.
768
769         If parentRenderer() was null then we return early from
770         createRendererIfNeeded() because shouldCreateRenderer() will return false
771         so there's no reason to check for it again.
772
773         Additionally if either parentRenderer() or style() is null then
774         implementations of rendererIsNeeded() will crash, so add asserts to
775         make this assumption more clear.
776
777         No new tests, just simplification.
778
779         * dom/NodeRenderingContext.cpp:
780         (WebCore::NodeRendererFactory::createRendererIfNeeded):
781
782 2012-11-19  Shinya Kawanaka  <shinyak@chromium.org>
783
784         [Refactoring] Remove WebCore::isInsertionPoint(Node*)
785         https://bugs.webkit.org/show_bug.cgi?id=102756
786
787         Reviewed by Hajime Morita.
788
789         Now that WebCore::isInsertionPoint(Node* node) does nothing special. We can remove this.
790
791         No new tests, simple refactoring.
792
793         * dom/ComposedShadowTreeWalker.cpp:
794         (WebCore::ComposedShadowTreeWalker::traverseNodeEscapingFallbackContents):
795         * dom/ContainerNode.cpp:
796         (WebCore::childAttachedAllowedWhenAttachingChildren):
797         * html/shadow/ContentDistributor.cpp:
798         (WebCore::ContentDistributor::invalidate):
799         * html/shadow/InsertionPoint.cpp:
800         (WebCore::InsertionPoint::isActive):
801         * html/shadow/InsertionPoint.h:
802         (WebCore::toInsertionPoint):
803         (WebCore::isActiveInsertionPoint):
804         (WebCore::isLowerEncapsulationBoundary):
805         (WebCore::parentNodeForDistribution):
806         * testing/Internals.cpp:
807         (WebCore::Internals::isValidContentSelect):
808
809 2012-11-19  Shinya Kawanaka  <shinyak@chromium.org>
810
811         [Refactoring] Remove shadowPseudoId() and use setPseudo() in <progress> ElementShadow.
812         https://bugs.webkit.org/show_bug.cgi?id=101703
813
814         Reviewed by Hajime Morita.
815
816         We're migrating shadowPseudoId() to pseudo(). We remove shadowPseudoId() from HTMLKeygenElement and use
817         setPseudo()/pseudo() instead.
818
819         No new tests, simple refactoring.
820
821         * html/shadow/ProgressShadowElement.cpp:
822         (WebCore::ProgressInnerElement::ProgressInnerElement):
823         * html/shadow/ProgressShadowElement.h:
824         (ProgressInnerElement):
825         (WebCore::ProgressBarElement::ProgressBarElement):
826         (ProgressBarElement):
827         (WebCore::ProgressValueElement::ProgressValueElement):
828
829 2012-11-19  Yury Semikhatsky  <yurys@chromium.org>
830
831         Unreviewed. Fix Chromium Debug compilation after r135230.
832         https://bugs.webkit.org/show_bug.cgi?id=102158
833
834         Removed ASSERT that used instance field in a static method.
835
836         * bindings/v8/DOMDataStore.h:
837         (WebCore::DOMDataStore::getWrapperFromObject):
838
839 2012-11-19  Chris Guan  <chris.guan@torchmobile.com.cn>
840
841         [Blackberry] When a frame is being detached, cancel all its network jobs.
842         https://bugs.webkit.org/show_bug.cgi?id=102758
843
844         Reviewed by George Staikos.
845
846         I use FrameDestructionObserver to refactor Networkjob code.
847         NetworkJob is inheriting from FrameDestructionObserver to be
848         aware of frame's destroyed. When a frame is being detached,
849         the willDetachPage() can be called in which we can cancel 
850         the job. This patch reverted the fix for RIM PR134207 as well.
851
852         Manually test is on 
853         "http://www.reuters.com/article/2012/01/27/us-greece-idUSTRE80P0DE20120127"
854         which triggers a ping loader.
855
856         No behavior changed, no new layout tests.
857
858         * platform/network/blackberry/NetworkJob.cpp:
859         (WebCore::NetworkJob::NetworkJob):
860         (WebCore::NetworkJob::initialize):
861         (WebCore::NetworkJob::handleNotifyHeaderReceived):
862         (WebCore::NetworkJob::startNewJobWithRequest):
863         (WebCore::NetworkJob::frameDestroyed):
864         (WebCore):
865         (WebCore::NetworkJob::willDetachPage):
866         * platform/network/blackberry/NetworkJob.h:
867         (NetworkJob):
868         * platform/network/blackberry/NetworkManager.cpp:
869         (WebCore::NetworkManager::startJob):
870         * platform/network/blackberry/NetworkManager.h:
871         (NetworkManager):
872         * platform/network/blackberry/ResourceHandleBlackBerry.cpp:
873         (WebCore::ResourceHandle::start):
874         (WebCore::ResourceHandle::loadResourceSynchronously):
875
876 2012-11-19  Matt Falkenhagen  <falken@chromium.org>
877
878         Implement the new stacking layer needed by the Fullscreen API and the new <dialog> element
879         https://bugs.webkit.org/show_bug.cgi?id=84796
880
881         Reviewed by Julien Chaffraix.
882
883         This adds the top layer element stack to Document. The Fullscreen
884         specification mandates that we track the ordering of the DOM nodes in
885         the top layer, not the renderers. That makes it hard to implement on
886         the rendering side only.
887
888         Elements in the top layer get a layer. Layers in the top layer are
889         added to the root layer's child list after normal layers and in the
890         order of the top layer stack. This way, the top layer appears above
891         all other stacking contexts and in the desired order.
892
893         In addition, top layer renderers are added as children of RenderView
894         in top layer order. This is to satisfy requirements such as the
895         containing block of an element in the top layer is the initial
896         containing block. It also allows RenderLayer to know the proper
897         stacking order of the layers without going directly from the top layer
898         elements to their layers.
899
900         So far, only modal dialog elements can be added to the top layer.
901         The plan is to make the Fullscreen API also use the top layer.
902
903         Tests: fast/dom/HTMLDialogElement/top-layer-containing-block.html
904                fast/dom/HTMLDialogElement/top-layer-display-none.html
905                fast/dom/HTMLDialogElement/top-layer-nesting.html
906                fast/dom/HTMLDialogElement/top-layer-stacking-dynamic.html
907                fast/dom/HTMLDialogElement/top-layer-stacking.html
908
909         * WebCore.exp.in:
910         * css/StyleResolver.cpp:
911         (WebCore::StyleResolver::adjustRenderStyle): Elements in the top layer have a stacking context.
912         * dom/Document.cpp:
913         (WebCore):
914         (WebCore::Document::addToTopLayer):
915         (WebCore::Document::removeFromTopLayer):
916         * dom/Document.h:
917         (Document):
918         (WebCore::Document::topLayerElements): Add the top layer element stack to Document.
919         * dom/Element.cpp:
920         (WebCore::Element::removedFrom):
921         (WebCore):
922         (WebCore::Element::isInTopLayer):
923         (WebCore::Element::setIsInTopLayer):
924         * dom/Element.h:
925         * dom/ElementRareData.h:
926         (ElementRareData):
927         * dom/Node.cpp:
928         (WebCore::Node::detach): Add an exception to the assert since top layer elements and their descendants are moved from their
929         regular position in the render tree.
930         * dom/NodeRareData.h:
931         (WebCore::NodeRareData::NodeRareData):
932         (NodeRareData):
933         (WebCore::NodeRareData::isInTopLayer):
934         (WebCore::NodeRareData::setIsInTopLayer):
935         * dom/NodeRenderingContext.cpp:
936         (WebCore):
937         (WebCore::adjustInsertionPointForTopLayerElement):
938         (WebCore::NodeRendererFactory::createRendererIfNeeded): Add renderers for top layer elements as children of RenderView, and
939         in top layer stacking order.
940         * html/HTMLDialogElement.cpp:
941         (WebCore::HTMLDialogElement::close):
942         (WebCore::HTMLDialogElement::showModal):
943         * rendering/RenderLayer.cpp:
944         (WebCore):
945         (WebCore::RenderLayer::isInTopLayer):
946         (WebCore::RenderLayer::isInTopLayerSubtree):
947         (WebCore::RenderLayer::rebuildZOrderLists): Add the top layer stack after normal layer collection.
948         (WebCore::RenderLayer::collectLayers): Avoid adding layers for top layer elements during normal layer collection.
949         * rendering/RenderLayer.h:
950         (RenderLayer):
951
952 2012-11-19  Kentaro Hara  <haraken@chromium.org>
953
954         In CodeGeneratorObj.pm we should rename $dataNode to $interface.
955         https://bugs.webkit.org/show_bug.cgi?id=102749
956
957         Reviewed by Adam Barth.
958
959         $dataNode is misnamed. It should be renamed to $interface.
960
961         No tests. No change in behavior.
962
963         * bindings/scripts/CodeGeneratorObjC.pm:
964         (GenerateInterface):
965         (GetParentImplClassName):
966         (GetParentAndProtocols):
967         (GenerateHeader):
968         (GenerateImplementation):
969
970 2012-11-19  Kentaro Hara  <haraken@chromium.org>
971
972         In CodeGeneratorV8.pm, we should rename $dataNode to $interface
973         https://bugs.webkit.org/show_bug.cgi?id=102747
974
975         Reviewed by Adam Barth.
976
977         $dataNode is misnamed. It should be $interface.
978
979         No tests. No change in behavior.
980
981         * bindings/scripts/CodeGeneratorV8.pm:
982         (GenerateInterface):
983         (NeedsCustomOpaqueRootForGC):
984         (GetGenerateIsReachable):
985         (GetCustomIsReachable):
986         (GenerateOpaqueRootForGC):
987         (GenerateHeader):
988         (GetInternalFields):
989         (GenerateHeaderCustomInternalFieldIndices):
990         (GenerateHeaderNamedAndIndexedPropertyAccessors):
991         (GenerateHeaderCustomCall):
992         (IsConstructable):
993         (GenerateConstructorGetter):
994         (GenerateNormalAttrGetter):
995         (GenerateReplaceableAttrSetter):
996         (GenerateNormalAttrSetter):
997         (GenerateOverloadedFunctionCallback):
998         (GenerateFunctionCallback):
999         (GenerateArgumentsCountCheck):
1000         (GenerateOverloadedConstructorCallback):
1001         (GenerateSingleConstructorCallback):
1002         (GenerateConstructorCallback):
1003         (GenerateEventConstructorCallback):
1004         (GenerateTypedArrayConstructorCallback):
1005         (GenerateNamedConstructorCallback):
1006         (GenerateBatchedAttributeData):
1007         (IsStandardFunction):
1008         (GenerateNonStandardFunction):
1009         (GenerateImplementationIndexer):
1010         (GenerateImplementationNamedPropertyGetter):
1011         (GenerateImplementationCustomCall):
1012         (GenerateImplementationMasqueradesAsUndefined):
1013         (GenerateImplementation):
1014         (GenerateHeaderContentHeader):
1015         (GenerateImplementationContentHeader):
1016         (GenerateCallbackHeader):
1017         (GenerateCallbackImplementation):
1018         (BaseInterfaceName):
1019         (GenerateToV8Converters):
1020         (GetNativeTypeForConversions):
1021         (GetTypeNameOfExternalTypedArray):
1022         (WriteData):
1023
1024 2012-11-19  Keishi Hattori  <keishi@webkit.org>
1025
1026         Move in animation should be disabled until the calendar picker is loaded.
1027         https://bugs.webkit.org/show_bug.cgi?id=102661
1028
1029         Reviewed by Kent Tamura.
1030
1031         On weeks where the first day is in the previous month (e.x. 2013-W01)
1032         the move in animation happens when you open the calendar picker. This
1033         patch disables the move in animation until the calendar picker is fully
1034         loaded.
1035
1036         No new tests.
1037
1038         * Resources/pagepopups/calendarPicker.js:
1039         (CalendarPicker):
1040         (CalendarPicker.prototype._handleWindowResize):
1041         (DaysTable.prototype._startMoveInAnimation):
1042
1043 2012-11-19  Elliott Sprehn  <esprehn@chromium.org>
1044
1045         Clean up loop in NodeRenderingContext::nextRenderer and previousRenderer
1046         https://bugs.webkit.org/show_bug.cgi?id=102743
1047
1048         Reviewed by Hajime Morita.
1049
1050         Clean up while (true) loops in NodeRenderingContext reducing the
1051         amount of code and the need for ASSERT_NOT_REACHED.
1052
1053         No new tests, just simplifcation.
1054
1055         * dom/NodeRenderingContext.cpp:
1056         (WebCore::NodeRenderingContext::nextRenderer):
1057         (WebCore::NodeRenderingContext::previousRenderer):
1058
1059 2012-11-19  Shinya Kawanaka  <shinyak@chromium.org>
1060
1061         [Shadow] attribute pseudo should return empty string instead of null when nothing is specified.
1062         https://bugs.webkit.org/show_bug.cgi?id=102753
1063
1064         Reviewed by Hajime Morita.
1065
1066         The ShadowDOM spec is changed so that attribute 'pseudo' returns empty string instead of null when
1067         no value is set.
1068
1069         Test: fast/dom/shadow/pseudo-attribute.html
1070
1071         * dom/Element.idl:
1072
1073 2012-11-19  Kentaro Hara  <haraken@chromium.org>
1074
1075         In CodeGeneratorGObject.pm we should rename $dataNode to $interface
1076         https://bugs.webkit.org/show_bug.cgi?id=102751
1077
1078         Reviewed by Adam Barth.
1079
1080         $dataNode is misnamed. It should be $interface.
1081
1082         No tests. No change in behavior.
1083
1084         * bindings/scripts/CodeGeneratorGObject.pm:
1085         (GetParentClassName):
1086         (GetParentGObjType):
1087         (GenerateProperties):
1088         (GenerateFunctions):
1089         (GenerateCFile):
1090         (GenerateEventTargetIface):
1091         (Generate):
1092         (WriteData):
1093         (GenerateInterface):
1094
1095 2012-11-19  Kentaro Hara  <haraken@chromium.org>
1096
1097         In CodeGenerator.pm we should rename $dataNode to $interface
1098         https://bugs.webkit.org/show_bug.cgi?id=102754
1099
1100         Reviewed by Adam Barth.
1101
1102         $dataNode is misnamed. It should be $interface.
1103
1104         No tests. No change in behavior.
1105
1106         * bindings/scripts/CodeGenerator.pm:
1107         (ForAllParents):
1108         (AddMethodsConstantsAndAttributesFromParentInterfaces):
1109         (FindSuperMethod):
1110         (IsConstructorTemplate):
1111         (LinkOverloadedFunctions):
1112         (GenerateCompileTimeCheckForEnumsIfNeeded):
1113         (GetVisibleInterfaceName):
1114         (IsSubType):
1115
1116 2012-11-19  Kentaro Hara  <haraken@chromium.org>
1117
1118         In CodeGeneratorCPP.pm we should rename $dataNode to $interface
1119         https://bugs.webkit.org/show_bug.cgi?id=102752
1120
1121         Reviewed by Adam Barth.
1122
1123         $dataNode is misnamed. It should be $interface.
1124
1125         No tests. No change in behavior.
1126
1127         * bindings/scripts/CodeGeneratorCPP.pm:
1128         (GenerateInterface):
1129         (GetParentImplClassName):
1130         (GetParent):
1131         (GenerateHeader):
1132         (GenerateImplementation):
1133
1134 2012-11-19  Kentaro Hara  <haraken@chromium.org>
1135
1136         In CodeGeneratorJS.pm we should rename $dataNode to $interface
1137         https://bugs.webkit.org/show_bug.cgi?id=102748
1138
1139         Reviewed by Adam Barth.
1140
1141         $dataNode is misnamed. It should be $interface.
1142
1143         No tests. No change in behavior.
1144
1145         * bindings/scripts/CodeGeneratorJS.pm:
1146         (GenerateInterface):
1147         (GetParentClassName):
1148         (GetGenerateIsReachable):
1149         (GetCustomIsReachable):
1150         (GenerateGetOwnPropertySlotBody):
1151         (GenerateGetOwnPropertyDescriptorBody):
1152         (GenerateHeaderContentHeader):
1153         (GenerateImplementationContentHeader):
1154         (ShouldGenerateToJSDeclaration):
1155         (ShouldGenerateToJSImplementation):
1156         (GenerateHeader):
1157         (GenerateAttributesHashTable):
1158         (GenerateOverloadedFunction):
1159         (GenerateImplementation):
1160         (GenerateArgumentsCountCheck):
1161         (GenerateParametersCheck):
1162         (GenerateCallbackHeader):
1163         (GenerateCallbackImplementation):
1164         (WriteData):
1165         (GenerateConstructorDeclaration):
1166         (GenerateConstructorDefinition):
1167         (IsConstructable):
1168
1169 2012-11-19  Adam Barth  <abarth@webkit.org>
1170
1171         [V8] Merge getCachedWrapper(Node*) into DOMDataStore
1172         https://bugs.webkit.org/show_bug.cgi?id=102158
1173
1174         Reviewed by Eric Seidel.
1175
1176         This patch is an incremental step towards fully merging the Node code
1177         path with the general code path. After this patch, at least Nodes flow
1178         through the same class.
1179
1180         * Modules/indexeddb/IDBTransactionCoordinator.h:
1181         * bindings/scripts/CodeGeneratorV8.pm:
1182         (GenerateHeader):
1183         (GenerateToV8Converters):
1184         * bindings/v8/DOMDataStore.h:
1185         (WebCore::DOMDataStore::getNode):
1186         (DOMDataStore):
1187         (WebCore::DOMDataStore::getWrapperFromObject):
1188         * bindings/v8/DOMWrapperWorld.cpp:
1189         (WebCore::DOMWrapperWorld::DOMWrapperWorld):
1190         (WebCore):
1191         * bindings/v8/DOMWrapperWorld.h:
1192         (WebCore):
1193         (DOMWrapperWorld):
1194         * bindings/v8/V8DOMWrapper.h:
1195         (V8DOMWrapper):
1196
1197 2012-11-19  Kentaro Hara  <haraken@chromium.org>
1198
1199         In the IDL parser, we should rename $dataNode to $interface
1200         https://bugs.webkit.org/show_bug.cgi?id=102746
1201
1202         Reviewed by Adam Barth.
1203
1204         $dataNode is misnamed. It should be $interface.
1205
1206         No tests. No change in behavior.
1207
1208         * bindings/scripts/IDLParser.pm:
1209         (parseInterface):
1210         (parseException):
1211         (parseAttributeOrOperationRest):
1212         (parseOperationOrIterator):
1213         (parseSpecialOperation):
1214         (parseInterfaceOld):
1215         (parseExceptionOld):
1216         (parseAttributeOrOperationOrIteratorOld):
1217         (parseAttributeOrOperationRestOld):
1218         (applyMemberList):
1219         (applyExtendedAttributeList):
1220         * bindings/scripts/generate-bindings.pl:
1221         * bindings/scripts/preprocess-idls.pl:
1222         (checkIDLAttributes):
1223
1224 2012-11-19  Adam Klein  <adamk@chromium.org>
1225
1226         MutationObserver wrapper should not be collected while still observing
1227         https://bugs.webkit.org/show_bug.cgi?id=102328
1228
1229         Reviewed by Adam Barth.
1230
1231         Use the new opaqueRootForGC helper in V8GCController to put each
1232         MutationObserver wrapper in the same object group as the nodes it's
1233         observing.
1234
1235         Only includes V8 impl for now, JSC impl coming soon.
1236
1237         Tests: fast/mutation/observer-wrapper-dropoff-transient.html
1238                fast/mutation/observer-wrapper-dropoff.html
1239
1240         * bindings/v8/V8GCController.cpp: Add custom code for MutationObserver
1241         with a FIXME to move this out once we update the opaque roots API.
1242         * dom/MutationObserver.cpp:
1243         (WebCore::MutationObserver::getObservedNodes): Plumbing to expose the observed nodes
1244         to the GC controller.
1245         (WebCore):
1246         * dom/MutationObserver.h:
1247         * dom/MutationObserverRegistration.cpp:
1248         (WebCore::MutationObserverRegistration::addRegistrationNodesToSet): More plumbing.
1249         (WebCore):
1250         * dom/MutationObserverRegistration.h:
1251         (MutationObserverRegistration):
1252
1253 2012-11-19  Tony Chang  <tony@chromium.org>
1254
1255         Move more non-settings out of InternalSettings
1256         https://bugs.webkit.org/show_bug.cgi?id=102711
1257
1258         Reviewed by Adam Barth.
1259
1260         Remove userPreferredLanguages, setUserPreferredLanguages and allowRoundingHacks
1261         from internal.settings since they are already exposed by window.internals (in
1262         fact, no one calls the internal.settings version).
1263
1264         Move setUsesOverlayScrollbars from internals.settings to internals because it is
1265         a global (static) setting and not tied to the lifetime of the Settings object.
1266
1267         No new tests, there should be no behavior change since this is a refactor.
1268
1269         * testing/InternalSettings.cpp:
1270         (WebCore::InternalSettings::reset): Remove custom reset code.
1271         (WebCore::InternalSettings::setUsesOverlayScrollbars): Add exception code handling to make it more consistent with other settings setters.
1272         * testing/InternalSettings.h:
1273         * testing/InternalSettings.idl: Remove unnecessary methods.
1274         * testing/Internals.cpp:
1275         (WebCore::Internals::resetToConsistentState): Reset userPreferredLanguages, allowRoundingHacks and overlay scrollbars.
1276         (WebCore::Internals::userPreferredLanguages): Don't go through InternalSettings.
1277         (WebCore::Internals::setUserPreferredLanguages): Don't go through InternalSettings.
1278         (WebCore::Internals::setUsesOverlayScrollbars): Moved from InternalsSettings.
1279         (WebCore::Internals::allowRoundingHacks): Don't go through InternalSettings.
1280
1281 2012-11-19  David Grogan  <dgrogan@chromium.org>
1282
1283         IndexedDB: Complex series of opens/deleteDatabase fails an ASSERT
1284         https://bugs.webkit.org/show_bug.cgi?id=101810
1285
1286         Reviewed by Tony Chang.
1287
1288         Tests - storage/indexeddb/deletedatabase-delayed-by-versionchange.html
1289
1290         * Modules/indexeddb/IDBDatabaseBackendImpl.cpp:
1291         (WebCore::IDBDatabaseBackendImpl::processPendingCalls):
1292         The condition tested by this assert is a valid state.
1293
1294 2012-11-19  Peter Wang  <peter.wang@torchmobile.com.cn>
1295
1296         Web Inspector: [JSC] worker debugger shouldn't stop for "willExecuteProgram" instruction
1297         https://bugs.webkit.org/show_bug.cgi?id=102637
1298
1299         Reviewed by Timothy Hatcher.
1300
1301         Override the interface "willExecuteProgram" to let WorkerScriptDebugServer to avoid to stop for it.
1302
1303         No new DRT test case. Sorry, so far it seems impossible to write a case to controle the popupped
1304         worker inspector window.
1305
1306         * bindings/js/ScriptDebugServer.cpp:
1307         (WebCore::ScriptDebugServer::createCallFrame):
1308         (WebCore::ScriptDebugServer::callEvent):
1309         (WebCore::ScriptDebugServer::willExecuteProgram):
1310         * bindings/js/ScriptDebugServer.h:
1311         (ScriptDebugServer):
1312         * bindings/js/WorkerScriptDebugServer.cpp:
1313         (WebCore::WorkerScriptDebugServer::willExecuteProgram):
1314         (WebCore):
1315         * bindings/js/WorkerScriptDebugServer.h:
1316         (WorkerScriptDebugServer):
1317
1318 2012-11-19  Pratik Solanki  <psolanki@apple.com>
1319
1320         For single element arrays use the pointer into the CFDataRef instead of copying data
1321         https://bugs.webkit.org/show_bug.cgi?id=102306
1322
1323         Reviewed by Brent Fulgham.
1324
1325         Address review comments for slightly nicer code.
1326
1327         * platform/SharedBuffer.cpp:
1328         (WebCore::SharedBuffer::data):
1329         * platform/cf/SharedBufferCF.cpp:
1330         (WebCore::SharedBuffer::singleDataArrayBuffer):
1331
1332 2012-11-19  Chris Rogers  <crogers@google.com>
1333
1334         Remove empirical bass-boost for HRTF spatialization
1335         https://bugs.webkit.org/show_bug.cgi?id=102745
1336
1337         Reviewed by Kenneth Russell.
1338
1339         Some empirically-based post-processing is being removed so that we'll
1340         now process with the exact HRTF impulse response measurements.
1341         Listening tests have determined that this post-processing is not necessary.
1342
1343         * platform/audio/HRTFElevation.cpp:
1344         (WebCore::HRTFElevation::calculateKernelsForAzimuthElevation):
1345         * platform/audio/HRTFKernel.cpp:
1346         (WebCore::HRTFKernel::HRTFKernel):
1347         * platform/audio/HRTFKernel.h:
1348         (WebCore::HRTFKernel::create):
1349         (HRTFKernel):
1350
1351 2012-11-19  Adam Barth  <abarth@webkit.org>
1352
1353         DISALLOW_COPY_AND_ASSIGN is not a WebKit macro
1354         https://bugs.webkit.org/show_bug.cgi?id=102755
1355
1356         Reviewed by Sam Weinig.
1357
1358         WTF_MAKE_NONCOPYABLE is the idiom we use in WebKit.  I don't understand
1359         how this compiles.
1360
1361         * Modules/indexeddb/IDBBackingStore.h:
1362         (RecordIdentifier):
1363
1364 2012-11-19  Chris Rogers  <crogers@google.com>
1365
1366         Implement .detune attribute for BiquadFilterNode
1367         https://bugs.webkit.org/show_bug.cgi?id=102737
1368
1369         Reviewed by Kenneth Russell.
1370
1371         Similar to OscillatorNode, BiquadFilterNode must have a .detune attribute
1372
1373         Tests changed: webaudio/biquad-lowpass.html
1374
1375         * Modules/webaudio/BiquadDSPKernel.cpp:
1376         (WebCore::BiquadDSPKernel::updateCoefficientsIfNecessary):
1377         * Modules/webaudio/BiquadFilterNode.h:
1378         (WebCore::BiquadFilterNode::detune):
1379         * Modules/webaudio/BiquadFilterNode.idl:
1380         * Modules/webaudio/BiquadProcessor.cpp:
1381         (WebCore::BiquadProcessor::BiquadProcessor):
1382         (WebCore::BiquadProcessor::checkForDirtyCoefficients):
1383         * Modules/webaudio/BiquadProcessor.h:
1384         (WebCore::BiquadProcessor::parameter4):
1385         (BiquadProcessor):
1386
1387 2012-11-19  Patrick Gansterer  <paroga@webkit.org>
1388
1389         [WIN] Add WebCore::getRegistryValue()
1390         https://bugs.webkit.org/show_bug.cgi?id=97828
1391
1392         Reviewed by Brent Fulgham.
1393
1394         The new function adds an abstraction to SHGetValue(), which isn't available on WinCE.
1395         Changing the existing files allows us to share more code between WinCE and WinNT in a next step.
1396
1397         * platform/win/MIMETypeRegistryWin.cpp:
1398         (WebCore::mimeTypeForExtension):
1399         (WebCore):
1400         (WebCore::MIMETypeRegistry::getPreferredExtensionForMIMEType):
1401         * platform/win/WindowsExtras.h:
1402         (WebCore::getRegistryValue):
1403         (WebCore):
1404         * plugins/win/PluginDatabaseWin.cpp:
1405         (WebCore::addPluginPathsFromRegistry):
1406         (WebCore::addWindowsMediaPlayerPluginDirectory):
1407         (WebCore::addQuickTimePluginDirectory):
1408         (WebCore::addAdobeAcrobatPluginDirectory):
1409         (WebCore::addJavaPluginDirectory):
1410
1411 2012-11-19  Alpha Lam  <hclam@chromium.org>
1412
1413         Not reviewed. Build fix for Chromium.
1414
1415         Added SkTypes.h includes for Windows.
1416
1417         * platform/graphics/chromium/ImageDecodingStore.h:
1418         * platform/graphics/chromium/ImageFrameGenerator.h:
1419         * platform/graphics/chromium/LazyDecodingPixelRef.h:
1420
1421 2012-11-19  Adam Barth  <abarth@webkit.org>
1422
1423         [V8] Simplify V8DOMWindowShell::getEntered
1424         https://bugs.webkit.org/show_bug.cgi?id=102156
1425
1426         Reviewed by Eric Seidel.
1427
1428         This patch is an incremental step towards merging
1429         V8DOMWrapper::getCachedWrapper(Node*) with the general case for looking
1430         up DOM wrappers. In order to merge with the general case, we need to
1431         get down to calling v8::Context::GetCurrent once, which means we need
1432         to factor the call to v8::Context::GetEntered out of V8DOMWindowShell.
1433
1434         As a side-benefit to this change, we can remove some redundant checks
1435         for isolatedWorldsExist and v8::Context::InContext from callers of
1436         V8DOMWindowShell::getEntered, including in getCachedWrapper.
1437
1438         * bindings/v8/DOMDataStore.cpp:
1439         (WebCore::DOMDataStore::current):
1440         * bindings/v8/ScriptController.cpp:
1441         (WebCore::ScriptController::shouldBypassMainWorldContentSecurityPolicy):
1442         (WebCore::ScriptController::currentWorldContext):
1443         * bindings/v8/V8DOMWindowShell.h:
1444         (WebCore::V8DOMWindowShell::isolated):
1445         (WebCore::V8DOMWindowShell::perContextData):
1446         (WebCore::V8DOMWindowShell::world):
1447         (V8DOMWindowShell):
1448         * bindings/v8/V8DOMWrapper.h:
1449         (WebCore::V8DOMWrapper::getCachedWrapper):
1450         * bindings/v8/WorldContextHandle.cpp:
1451         (WebCore::WorldContextHandle::WorldContextHandle):
1452         * bindings/v8/custom/V8DocumentCustom.cpp:
1453         (WebCore::V8Document::dispatchWrapCustom):
1454         * bindings/v8/custom/V8HTMLDocumentCustom.cpp:
1455         (WebCore::V8HTMLDocument::dispatchWrapCustom):
1456         * bindings/v8/custom/V8SVGDocumentCustom.cpp:
1457         (WebCore::V8SVGDocument::dispatchWrapCustom):
1458         * bindings/v8/custom/V8XMLHttpRequestConstructor.cpp:
1459         (WebCore::V8XMLHttpRequest::constructorCallback):
1460
1461 2012-11-19  Kentaro Hara  <haraken@chromium.org>
1462
1463         Rename idlDocument::classes to idlDocument::interfaces in the IDL parser
1464         https://bugs.webkit.org/show_bug.cgi?id=102671
1465
1466         Reviewed by Adam Barth.
1467
1468         Most part of code generators use 'interface'. The spec uses 'interface'.
1469         Thus, the IDL parser should use 'interface' instead of 'class'.
1470
1471         No tests. No change in behavior.
1472
1473         * bindings/scripts/CodeGenerator.pm:
1474         (ProcessDocument):
1475         (AddMethodsConstantsAndAttributesFromParentInterfaces):
1476         (ParseInterface):
1477         * bindings/scripts/CodeGeneratorCPP.pm:
1478         (GenerateImplementation):
1479         * bindings/scripts/CodeGeneratorJS.pm:
1480         (GenerateHeader):
1481         * bindings/scripts/CodeGeneratorObjC.pm:
1482         (GenerateImplementation):
1483         * bindings/scripts/CodeGeneratorV8.pm:
1484         (GenerateHeader):
1485         (GenerateFunctionCallback):
1486         * bindings/scripts/IDLParser.pm:
1487         (Parse):
1488         (parseModule):
1489         * bindings/scripts/generate-bindings.pl:
1490
1491 2012-11-19  Eric Carlson  <eric.carlson@apple.com>
1492
1493         HTMLMediaElement::configureTextTracks should configure all text tracks
1494         https://bugs.webkit.org/show_bug.cgi?id=102561
1495
1496         Reviewed by Philippe Normand.
1497
1498         No new tests, track-mode-not-changed-by-new-track.html was updated to test the changes.
1499
1500         * html/HTMLMediaElement.cpp:
1501         (WebCore::HTMLMediaElement::textTrackModeChanged): HTMLTrackElement -> TextTrack.
1502         (WebCore::HTMLMediaElement::willRemoveTrack): Ditto.
1503         (WebCore::HTMLMediaElement::configureTextTrackGroup): Ditto.
1504         (WebCore::HTMLMediaElement::configureTextTracks): Ditto.
1505         (WebCore::HTMLMediaElement::markCaptionAndSubtitleTracksAsUnconfigured): Ditto.
1506         * html/HTMLMediaElement.h:
1507
1508         * html/HTMLTrackElement.cpp:
1509         (WebCore::HTMLTrackElement::HTMLTrackElement): Move hasBeenConfigured down to TextTrack.
1510         (WebCore::HTMLTrackElement::parseAttribute): isDefault is stored on TextTrack.
1511         (WebCore::HTMLTrackElement::ensureTrack): LoadableTextTrack constructor doesn't take 
1512             "default" argument.
1513         * html/HTMLTrackElement.h:
1514
1515         * html/track/LoadableTextTrack.cpp:
1516         (WebCore::LoadableTextTrack::LoadableTextTrack): Initialize m_isDefault to false.
1517         * html/track/LoadableTextTrack.h: 
1518         (WebCore::TextTrack::isDefault): Override base class implementation, because a track element
1519             can be flagged as default.
1520         (WebCore::TextTrack::setIsDefault): Ditto.
1521
1522         * html/track/TextTrack.cpp:
1523         (WebCore::TextTrack::TextTrack): Initialize m_hasBeenConfigured.
1524         * html/track/TextTrack.h:
1525         (WebCore::TextTrack::hasBeenConfigured): New, moved from HTMLTrackElement so other code doesn't
1526             need know what type of track it is calling.
1527         (WebCore::TextTrack::setHasBeenConfigured): Ditto.
1528         (WebCore::TextTrack::isDefault): Base, do nothing, implementation because only LoadableTextTrack
1529             can be "default".
1530         (WebCore::TextTrack::setIsDefault): Ditto.
1531
1532 2012-11-19  Huang Dongsung  <luxtella@company100.net>
1533
1534         Coordinated Graphics: refactor syncCanvas to handle the lifecycle clearly.
1535         https://bugs.webkit.org/show_bug.cgi?id=102664
1536
1537         Reviewed by Noam Rosenthal.
1538
1539         As refactoring Coordinated Graphics in WebKit2, code related to
1540         TextureMapper is changed.
1541
1542         No new tests. Refactoring only.
1543
1544         * platform/graphics/qt/GraphicsContext3DQt.cpp:
1545         (GraphicsContext3DPrivate):
1546         (WebCore::GraphicsContext3DPrivate::platformLayerSize):
1547             We need to know the size of a texture mapper platform layer.
1548         (WebCore):
1549         * platform/graphics/texmap/TextureMapperBackingStore.cpp:
1550           Because CoordinatedGraphicsLayer handles the canvas GraphicsSurface
1551           lifecycle, TextureMapperSurfaceBackingStore does not need to know
1552           GraphicsSurfaceToken.
1553         (WebCore::TextureMapperSurfaceBackingStore::setGraphicsSurface):
1554         (WebCore::TextureMapperSurfaceBackingStore::swapBuffersIfNeeded):
1555         (WebCore::TextureMapperSurfaceBackingStore::paintToTextureMapper):
1556         * platform/graphics/texmap/TextureMapperBackingStore.h:
1557         (TextureMapperSurfaceBackingStore):
1558         * platform/graphics/texmap/TextureMapperPlatformLayer.h:
1559         (WebCore::TextureMapperPlatformLayer::platformLayerSize):
1560
1561 2012-11-19  Alpha Lam  <hclam@chromium.org>
1562
1563         [chromium] Lazy image decoding without cache
1564         https://bugs.webkit.org/show_bug.cgi?id=102021
1565
1566         Reviewed by Stephen White.
1567
1568         Goal of this change is to make image decoding in ImageFrameGenerator
1569         completely lazy without caching. Image decoding logic is then removed
1570         from ImageDecodingStore.
1571
1572         These methods are removed.
1573         - ImageDecodingStore::lockPixels
1574         - ImageDecodingStore::unlockPixels
1575
1576         Instead image decoding and scaling is done in
1577         ImageFrameGenerator::decodeAndScale().
1578
1579         Unit tests are updated:
1580         DeferredImageDecoderTest::drawIntoSkPicture
1581         DeferredImageDecoderTest::drawScaledIntoSkPicture
1582
1583         Also covered by layout tests:
1584         platform/chromium/virtual/deferred
1585
1586         * platform/graphics/chromium/DeferredImageDecoder.cpp:
1587         (WebCore::DeferredImageDecoder::createLazyDecodingBitmap):
1588         * platform/graphics/chromium/ImageDecodingStore.h:
1589         (ImageDecodingStore):
1590         * platform/graphics/chromium/ImageFrameGenerator.cpp:
1591         (WebCore::ImageFrameGenerator::ImageFrameGenerator):
1592         (WebCore::ImageFrameGenerator::~ImageFrameGenerator):
1593         (WebCore::ImageFrameGenerator::setData):
1594         (WebCore::ImageFrameGenerator::decodeAndScale):
1595         * platform/graphics/chromium/ImageFrameGenerator.h:
1596         (WebCore::ImageFrameGenerator::create):
1597         (ImageFrameGenerator):
1598         * platform/graphics/chromium/LazyDecodingPixelRef.cpp:
1599         (WebCore::LazyDecodingPixelRef::onLockPixels):
1600         (WebCore::LazyDecodingPixelRef::onUnlockPixels):
1601         * platform/graphics/chromium/LazyDecodingPixelRef.h:
1602         (LazyDecodingPixelRef):
1603
1604 2012-11-19  Abhishek Arya  <inferno@chromium.org>
1605
1606         Crash in ApplyStyleCommand::cleanupUnstyledAppleStyleSpans.
1607         https://bugs.webkit.org/show_bug.cgi?id=100150
1608
1609         Reviewed by Ryosuke Niwa.
1610
1611         RefPtr startDummySpanAncestor and endDummySpanAncestor since
1612         they can go away inside fixRangeAndApplyInlineStyle call.
1613
1614         Test: editing/style/apply-style-crash.html
1615
1616         * editing/ApplyStyleCommand.cpp:
1617         (WebCore::ApplyStyleCommand::applyInlineStyle):
1618
1619 2012-11-19  Sheriff Bot  <webkit.review.bot@gmail.com>
1620
1621         Unreviewed, rolling out r135172.
1622         http://trac.webkit.org/changeset/135172
1623         https://bugs.webkit.org/show_bug.cgi?id=102710
1624
1625         Broke some WebKit2 api tests :( (Requested by japhet on
1626         #webkit).
1627
1628         * loader/DocumentLoader.cpp:
1629         (WebCore::DocumentLoader::DocumentLoader):
1630         (WebCore::DocumentLoader::~DocumentLoader):
1631         (WebCore::DocumentLoader::finishedLoading):
1632         (WebCore::DocumentLoader::clearMainResourceLoader):
1633         (WebCore::DocumentLoader::isLoadingInAPISense):
1634         (WebCore::DocumentLoader::documentURL):
1635         (WebCore::DocumentLoader::isLoadingMainResource):
1636         (WebCore::DocumentLoader::startLoadingMainResource):
1637         * loader/DocumentLoader.h:
1638         (DocumentLoader):
1639         * loader/FrameLoader.cpp:
1640         (WebCore::FrameLoader::FrameLoader):
1641         (WebCore::FrameLoader::init):
1642         * loader/FrameLoaderStateMachine.cpp:
1643         (WebCore::FrameLoaderStateMachine::FrameLoaderStateMachine):
1644         * loader/FrameLoaderStateMachine.h:
1645         * loader/MainResourceLoader.cpp:
1646         (WebCore::shouldLoadAsEmptyDocument):
1647         (WebCore):
1648         (WebCore::MainResourceLoader::continueAfterContentPolicy):
1649         (WebCore::MainResourceLoader::didReceiveResponse):
1650         (WebCore::MainResourceLoader::didFinishLoading):
1651         (WebCore::MainResourceLoader::handleEmptyLoad):
1652         (WebCore::MainResourceLoader::loadNow):
1653         (WebCore::MainResourceLoader::load):
1654         * loader/MainResourceLoader.h:
1655         (MainResourceLoader):
1656
1657 2012-11-19  Tony Chang  <tony@chromium.org>
1658
1659         Remove 'is' prefix from WebSettings::isWebSecurityEnabled and WebSettings::isSpatialNavigationEnabled
1660         https://bugs.webkit.org/show_bug.cgi?id=102548
1661
1662         Reviewed by Adam Barth.
1663
1664         This allows us to use Settings.in to generate the code for this.
1665
1666         I didn't rename any of the WebKit API methods with similar names because that would
1667         probably break consumers.  It turns out that the getter is only called from
1668         Source/WebKit/efl (most of the time, WebPreferences just sets values on Settings).
1669
1670         No new tests, just a refactor.
1671
1672         * WebCore.exp.in: Remove symbols that are now inlined.
1673         * WebCore.order: Remove symbols that are now inlined.
1674         * dom/Document.cpp:
1675         (WebCore::Document::initSecurityContext): Rename.
1676         * page/Settings.cpp:
1677         (WebCore::Settings::Settings): Remove code since it will be generated.
1678         * page/Settings.h:
1679         (Settings): Remove code since it will be generated.
1680         * page/Settings.in: Add entries to be generated.
1681         * page/SpatialNavigation.cpp:
1682         (WebCore::isSpatialNavigationEnabled): Fix caller.
1683
1684 2012-11-19  Yael Aharon  <yael.aharon@intel.com>
1685
1686         [EFL][TexMap] Complie error when considering warnings as errors
1687         https://bugs.webkit.org/show_bug.cgi?id=102705
1688
1689         Reviewed by Kenneth Rohde Christiansen.
1690
1691         Change GaussianKernelHalfWidth to unsigned.
1692
1693         No new tests.
1694
1695         * platform/graphics/texmap/TextureMapperGL.cpp:
1696         (WebCore):
1697
1698 2012-11-19  Sheriff Bot  <webkit.review.bot@gmail.com>
1699
1700         Unreviewed, rolling out r134830.
1701         http://trac.webkit.org/changeset/134830
1702         https://bugs.webkit.org/show_bug.cgi?id=102701
1703
1704         ActiveDOMObject is not applicable to MutationObservers due to
1705         being tied to a Document (Requested by aklein on #webkit).
1706
1707         * bindings/js/JSMutationObserverCustom.cpp:
1708         (WebCore::JSMutationObserverConstructor::constructJSMutationObserver):
1709         * bindings/v8/custom/V8MutationObserverCustom.cpp:
1710         (WebCore::V8MutationObserver::constructorCallback):
1711         * dom/MutationObserver.cpp:
1712         (WebCore::MutationObserver::create):
1713         (WebCore::MutationObserver::MutationObserver):
1714         (WebCore::MutationObserver::observationStarted):
1715         (WebCore::MutationObserver::observationEnded):
1716         * dom/MutationObserver.h:
1717         (WebCore):
1718         * dom/MutationObserver.idl:
1719
1720 2012-11-19  Brady Eidson  <beidson@apple.com>
1721
1722         NetworkProcess Authentication.
1723         https://bugs.webkit.org/show_bug.cgi?id=102592
1724
1725         Reviewed by Alexey Proskuryakov.
1726
1727         Change an ASSERT that assumes there should be a resource handle which is not true with the NetworkProcess.
1728
1729         Also export some more stuff.
1730
1731         No new tests (Platform support, no effect in tested configs).
1732
1733         * WebCore.exp.in:
1734
1735         * loader/ResourceLoader.cpp:
1736         (WebCore::ResourceLoader::didReceiveAuthenticationChallenge): Only ASSERT that the handle has a challenge if
1737           there is a handle.
1738
1739 2012-11-19  Alec Flett  <alecflett@chromium.org>
1740
1741         IndexedDB: simplify RecordIdentifier
1742         https://bugs.webkit.org/show_bug.cgi?id=102018
1743
1744         Reviewed by Tony Chang.
1745
1746         Make IDBBackingStore's RecordIdentifier be a simple
1747         class, existing only as an inline or stack-based instance.
1748         This makes much of the copy semantics more explicit, and
1749         removes refcounting from an object that only ever had a refcount
1750         of 1 or 2.
1751
1752         No new tests, just a refactor.
1753
1754         * Modules/indexeddb/IDBBackingStore.cpp:
1755         (WebCore::IDBBackingStore::putRecord):
1756         (WebCore::IDBBackingStore::deleteRecord):
1757         (WebCore::IDBBackingStore::maybeUpdateKeyGeneratorCurrentNumber):
1758         (WebCore::IDBBackingStore::keyExistsInObjectStore):
1759         (WebCore::IDBBackingStore::putIndexDataForRecord):
1760         (WebCore::IDBBackingStore::deleteIndexDataForRecord):
1761         (WebCore::ObjectStoreKeyCursorImpl::loadCurrentRow):
1762         (ObjectStoreCursorImpl):
1763         (WebCore::ObjectStoreCursorImpl::loadCurrentRow):
1764         (WebCore::IndexKeyCursorImpl::recordIdentifier):
1765         (WebCore::IndexCursorImpl::recordIdentifier):
1766         * Modules/indexeddb/IDBBackingStore.h:
1767         (WebCore::IDBBackingStore::RecordIdentifier::RecordIdentifier):
1768         (WebCore::IDBBackingStore::RecordIdentifier::isValid):
1769         (WebCore::IDBBackingStore::RecordIdentifier::reset):
1770         (RecordIdentifier):
1771         (IDBBackingStore):
1772         (WebCore::IDBBackingStore::Cursor::recordIdentifier):
1773         (WebCore::IDBBackingStore::Cursor::Cursor):
1774         (Cursor):
1775         * Modules/indexeddb/IDBObjectStoreBackendImpl.cpp:
1776         (WebCore):
1777         (WebCore::IDBObjectStoreBackendImpl::setIndexKeys):
1778         (WebCore::IDBObjectStoreBackendImpl::putInternal):
1779         (WebCore::IDBObjectStoreBackendImpl::deleteInternal):
1780
1781 2012-11-19  Alexander Shalamov  <alexander.shalamov@intel.com>
1782
1783         Improve ContentTypeParser, so that it could be used to validate mime type according to RFC
1784         https://bugs.webkit.org/show_bug.cgi?id=100927
1785
1786         Reviewed by Alexey Proskuryakov.
1787
1788         This patch adds ParsedContentType class that represents contents of parsed
1789         content type string. isValidContentType function could be used to check if
1790         format of the content type string is acorrding to RFC 2616 section 4.2.
1791
1792         * CMakeLists.txt:
1793         * GNUmakefile.list.am:
1794         * Target.pri:
1795         * WebCore.gypi:
1796         * WebCore.xcodeproj/project.pbxproj:
1797         * platform/network/MIMEHeader.cpp:
1798         (WebCore::MIMEHeader::parseHeader):
1799         * platform/network/ParsedContentType.cpp: Renamed from Source/WebCore/platform/network/ContentTypeParser.cpp.
1800         (WebCore):
1801         (EmptyParsedContentType):
1802         (WebCore::EmptyParsedContentType::setContentType):
1803         (WebCore::EmptyParsedContentType::setContentTypeParameter):
1804         (WebCore::skipSpaces):
1805         (WebCore::isTokenCharacter):
1806         (WebCore::parseToken):
1807         (WebCore::parseQuotedString):
1808         (WebCore::substringForRange):
1809         (WebCore::parseContentType):
1810         (WebCore::isValidContentType):
1811         (WebCore::ParsedContentType::ParsedContentType):
1812         (WebCore::ParsedContentType::charset):
1813         (WebCore::ParsedContentType::parameterValueForName):
1814         (WebCore::ParsedContentType::parameterCount):
1815         (WebCore::ParsedContentType::setContentType):
1816         (WebCore::ParsedContentType::setContentTypeParameter):
1817         * platform/network/ParsedContentType.h: Renamed from Source/WebCore/platform/network/ContentTypeParser.h.
1818         (WebCore):
1819         (ParsedContentType):
1820         (WebCore::ParsedContentType::mimeType):
1821
1822 2012-11-19  Erik Arvidsson  <arv@chromium.org>
1823
1824         Update DOMException name: InvalidNodeTypeError
1825         https://bugs.webkit.org/show_bug.cgi?id=102519
1826
1827         Reviewed by Kentaro Hara.
1828
1829         Patch 24 of 25 to update DOMException name to match the spec and Firefox.
1830
1831         No code uses DOMException InvalidNodeTypeError. We do use INVALID_NODE_TYPE_ERR for RangeException. See bug 102515.
1832
1833         * dom/DOMCoreException.cpp:
1834
1835 2012-11-19  Shinya Kawanaka  <shinyak@chromium.org>
1836
1837         Changing id, className, or attribute should invalidate distribution
1838         https://bugs.webkit.org/show_bug.cgi?id=100738
1839
1840         Reviewed by Dimitri Glazkov.
1841
1842         When id, className, or attribute is changed, we might have to invalidate distribution.
1843         However, we don't want to do useless invalidation. So we consult with the RuleFeatureSet of ElementShadow
1844         to invalidate distribution only if necessary.
1845
1846         For the code that className is changed, we can share a lot of code between invalidating distribution and
1847         invalidating style. So we made checkNeedsStyleInvalidationForClassChange a template method, and share it.
1848
1849         Since attributeChanged() is a hot method, we don't want to make it slow. So we made one function to determine
1850         whether we have to invalidate distribution, and make it called only if necessary. Also, we've optimized
1851         shadowOfParentForDistribution() by making isInsertionPoint() de-virtualed. We consuded NodeFlags (IsInsertionPointFlag)
1852         for this purpose.
1853
1854         We've measured how this patch makes changing attribute slow. I've measured each code 3 times.
1855         DOM/ModifyAttribute.html is a micro benchmark which changes attribute a lot of times. The result of this benchmark
1856         will be the most affected by this patch. However, it's only 2% performance regression.
1857
1858         DOM/ModifyAttribute.html
1859         Before this patch:
1860                 median  stdev    min    max    [ms]
1861           1st    494.0   3.36  490.0  502.0
1862           2nd    503.5   3.44  497.0  512.0
1863           3rd    494.0   3.48  488.0  499.0
1864
1865         After this patch:
1866                 median  stdev  min      max    [ms]
1867           1st    504.0   2.00  501.0  509.0
1868           2nd    505.5   3.08  500.0  513.0
1869           3rd    507.0   2.32  502.0  510.0
1870
1871         Tests: fast/dom/shadow/distribution-attribute-modified.html
1872                fast/dom/shadow/distribution-className-modified.html
1873                fast/dom/shadow/distribution-id-modified.html
1874                fast/dom/shadow/reprojection-attribute-modified.html
1875                fast/dom/shadow/reprojection-className-modified.html
1876                fast/dom/shadow/reprojection-id-modified.html
1877
1878         * dom/Element.cpp:
1879         (WebCore::Element::attributeChanged):
1880         (WebCore::HasSelectorForClassStyleFunctor::HasSelectorForClassStyleFunctor):
1881         (HasSelectorForClassStyleFunctor):
1882         (WebCore::HasSelectorForClassStyleFunctor::operator()): Returns true if StyleResolver::hasSelectorForClass returns true.
1883         (WebCore):
1884         (WebCore::HasSelectorForClassDistributionFunctor::HasSelectorForClassDistributionFunctor):
1885         (HasSelectorForClassDistributionFunctor):
1886         (WebCore::HasSelectorForClassDistributionFunctor::operator()): Returns true if ElementShadow::hasSelectForClass returns true.
1887         (WebCore::checkFunctorForClassChange):
1888         (WebCore::checkNeedsStyleInvalidationForClassChange):
1889         (WebCore::checkNeedsDistributionInvalidationForClassChange): Extracted the implementation to checkFunctorForClassChange.
1890         (WebCore::Element::shouldInvalidateDistributionWhenAttributeChanged):
1891         * dom/Element.h:
1892         (Element):
1893         * dom/Node.h:
1894         (WebCore::Node::isInsertionPoint):
1895         * html/HTMLElement.h:
1896         (HTMLElement):
1897         * html/shadow/InsertionPoint.cpp:
1898         (WebCore::InsertionPoint::InsertionPoint):
1899         * html/shadow/InsertionPoint.h:
1900         (InsertionPoint):
1901         (WebCore::isInsertionPoint):
1902         (WebCore::shadowOfParentForDistribution):
1903         (WebCore::resolveReprojection):
1904
1905 2012-11-19  Nate Chapin  <japhet@chromium.org>
1906
1907         Move empty loading to DocumentLoader, simplify FrameLoader::init()
1908         https://bugs.webkit.org/show_bug.cgi?id=101512
1909
1910         Reviewed by Adam Barth.
1911
1912         No new tests, though several outputs changed because we no longer send resource
1913             load callbacks for empty loads.
1914
1915         * loader/DocumentLoader.cpp:
1916         (WebCore::DocumentLoader::DocumentLoader):
1917         (WebCore::DocumentLoader::~DocumentLoader):
1918         (WebCore::DocumentLoader::finishedLoading):
1919         (WebCore::DocumentLoader::clearMainResourceLoader):
1920         (WebCore::DocumentLoader::isLoadingInAPISense):
1921         (WebCore::DocumentLoader::isLoadingMainResource):
1922         (WebCore::DocumentLoader::maybeLoadEmpty):
1923         (WebCore):
1924         (WebCore::DocumentLoader::startLoadingMainResource): Handle empty main resource
1925              loads directly here.
1926         * loader/DocumentLoader.h:
1927         (DocumentLoader):
1928         * loader/FrameLoader.cpp:
1929         (WebCore::FrameLoader::FrameLoader): Initialize some variables whose values
1930             were previously being reset in init(). Given that the FrameLoader is in
1931             an inconsistent state before init() is called anyway, there doesn't seem
1932             to be a disadvantage to just initializing them to their post-init() values.
1933         (WebCore::FrameLoader::init): Just call startLoadingMainResource(), instead of
1934             doing a bunch of direct calls to functions FrameLoader shouldn't know about.
1935         * loader/FrameLoaderStateMachine.cpp:
1936         (WebCore::FrameLoaderStateMachine::FrameLoaderStateMachine):
1937         * loader/FrameLoaderStateMachine.h:
1938         * loader/MainResourceLoader.cpp: Throughout, remove the concept of an empty load.
1939         (WebCore::MainResourceLoader::loadNow): This only returned true when an empty
1940             load got deferred, which won't happen now. Return void and always treat
1941             as returning false.
1942         * loader/MainResourceLoader.h:
1943         (MainResourceLoader):
1944
1945 2012-11-19  Erik Arvidsson  <arv@chromium.org>
1946
1947         Update DOMException name: TimeoutError
1948         https://bugs.webkit.org/show_bug.cgi?id=102513
1949
1950         Reviewed by Kentaro Hara.
1951
1952         Patch 23 of 25 to update DOMException name to match the spec and Firefox.
1953
1954         No code uses DOMException TimeoutError. We do use TIMEOUT_ERR for XMLHttpRequestException. See bug 102506.
1955
1956         * dom/DOMCoreException.cpp:
1957
1958 2012-11-19  Erik Arvidsson  <arv@chromium.org>
1959
1960         Update DOMException name: DataCloneError
1961         https://bugs.webkit.org/show_bug.cgi?id=102521
1962
1963         Reviewed by Kentaro Hara.
1964
1965         Patch 25 of 25 to update DOMException name to match the spec and Firefox.
1966
1967         Updated existing tests.
1968
1969         * dom/DOMCoreException.cpp:
1970
1971 2012-11-19  Tom Hudson  <tomhudson@chromium.org>
1972
1973         Improve performance of RenderBoxModelObject::paintTranslucentBorderSides()
1974         https://bugs.webkit.org/show_bug.cgi?id=98660
1975
1976         Reviewed by Simon Fraser.
1977
1978         Accumulate edges[i].shouldRender() in a flag field and pass that to paintBorderSides()
1979         and paintTranslucentBorderSides() so that we don't do unnecessary work.
1980
1981         If we can avoid setting up and tearing down an unnecessary transparent layer we save
1982         30ms on some mobile platforms.
1983
1984         * rendering/RenderBoxModelObject.h:
1985         * rendering/RenderBoxModelObject.cpp:
1986         (WebCore::RenderBoxModelObject::paintBorder):
1987         (WebCore::RenderBoxModelObject::paintTranslucentBorderSides):
1988
1989 2012-11-19  Hans Muller  <hmuller@adobe.com>
1990
1991         [CSS Exclusions] remove null exclusion shape check from ExclusionShape::createExclusionShape
1992         https://bugs.webkit.org/show_bug.cgi?id=100765
1993
1994         Reviewed by Dirk Schulze.
1995
1996         ExclusionShape::createExclusionShape now ASSERTs that its basicShape argument
1997         isn't null, since the caller is expected to ensure as much.  No new tests were
1998         needed since this is a near-trivial cleanup.
1999
2000         * rendering/ExclusionShape.cpp:
2001         (WebCore::ExclusionShape::createExclusionShape): This method no longer defends against a null basicShape argument by returning null.
2002
2003 2012-11-19  Sami Kyostila  <skyostil@chromium.org>
2004
2005         Use device scale factor instead of physical screen DPI for screen DPI
2006         https://bugs.webkit.org/show_bug.cgi?id=101769
2007
2008         Reviewed by Adam Barth.
2009
2010         Media queries call WebCore::Screen::{horizontal,vertical}DPI() to determine
2011         the dots per CSS inch[1] value for the "screen" media type. On Chromium these
2012         functions currently return the physical screen DPI, which is wrong. To fix
2013         this, we remove both of these functions entirely and make media queries use
2014         the device scale factor multiplied by 96 on all ports.
2015
2016         [1] http://www.w3.org/TR/css3-mediaqueries/#resolution0
2017
2018         * page/Screen.cpp:
2019         (WebCore::Screen::horizontalDPI):
2020         (WebCore::Screen::verticalDPI):
2021         * platform/PlatformScreen.h:
2022         (WebCore):
2023         * platform/blackberry/PlatformScreenBlackBerry.cpp:
2024         * platform/chromium/PlatformScreenChromium.cpp:
2025         * platform/efl/PlatformScreenEfl.cpp:
2026         * platform/gtk/PlatformScreenGtk.cpp:
2027         * platform/mac/PlatformScreenMac.mm:
2028         * platform/qt/PlatformScreenQt.cpp:
2029         * platform/win/PlatformScreenWin.cpp:
2030         * platform/wx/ScreenWx.cpp:
2031
2032 2012-11-19  Julien Chaffraix  <jchaffraix@webkit.org>
2033
2034         Computed grid items' positions shouldn't be using Length
2035         https://bugs.webkit.org/show_bug.cgi?id=102537
2036
2037         Reviewed by Tony Chang.
2038
2039         This change refactors how we store the grid items' position to use
2040         a new type GridPosition. Length was a temporary type as it supported
2041         'auto' | <integer> but it was starting to get more and more confusing
2042         as we were implementing the layout routines.
2043
2044         No change in behavior.
2045
2046         * GNUmakefile.list.am:
2047         * WebCore.gypi:
2048         * WebCore.vcproj/WebCore.vcproj:
2049         * WebCore.xcodeproj/project.pbxproj:
2050         Added the new file to the build systems.
2051
2052         * rendering/style/RenderStyle.h:
2053         Updated after the type change. Also made some getters
2054         return a const reference instead of forcing a copy.
2055
2056         * rendering/style/StyleGridItemData.h:
2057         (StyleGridItemData):
2058         Ditto, also removed a comment about adding a new type.
2059
2060         * css/CSSComputedStyleDeclaration.cpp:
2061         (WebCore::valueForGridPosition):
2062         * css/StyleResolver.cpp:
2063         (WebCore::createGridPosition):
2064         (WebCore::StyleResolver::applyProperty):
2065         * rendering/RenderGrid.cpp:
2066         (WebCore::RenderGrid::resolveGridPosition):
2067         Updated these sites after switching to GridPosition.
2068
2069         * rendering/RenderGrid.h:
2070         Changed resolveGridPosition signature: it now takes a GridPosition.
2071
2072         * rendering/style/GridPosition.h: Added.
2073         (WebCore::GridPosition::GridPosition):
2074         Default constructor, creates an 'auto' position.
2075
2076         (WebCore::GridPosition::isPositive):
2077         (WebCore::GridPosition::type):
2078         (WebCore::GridPosition::isAuto):
2079         (WebCore::GridPosition::setIntegerPosition):
2080         (WebCore::GridPosition::integerPosition):
2081         Helper functions.
2082
2083         (WebCore::GridPosition::operator==):
2084         Required comparison operator for StyleGridItemData.
2085
2086 2012-11-19  Thiago Marcos P. Santos  <thiago.santos@intel.com>
2087
2088         Apply the resolved viewport rules
2089         https://bugs.webkit.org/show_bug.cgi?id=95964
2090
2091         Reviewed by Kenneth Rohde Christiansen.
2092
2093         This patch implements the CSS Device Adaptation specification. The
2094         WebKit implementation relies on the already implemented Viewport Meta
2095         infrastructure to notify the browser of viewport changes.
2096
2097         The implementation was tests with success on the Qt and EFL ports, but
2098         basically every port supporting Viewport Meta should be fine.
2099
2100         The usage of @-webkit-viewport inside media queries (more tests coming
2101         to map all the corner cases) is currently limited when the media query
2102         depends on the viewport dimensions itself. Defining the width and height
2103         based on screen size will fail on ports reporting the screen
2104         size as the size of the browser window instead of the device screen.
2105
2106         Tests: css3/device-adapt/opera/cascading-001.xhtml
2107                css3/device-adapt/opera/cascading-002.xhtml
2108                css3/device-adapt/opera/cascading-003.xhtml
2109                css3/device-adapt/opera/cascading-004.xhtml
2110                css3/device-adapt/opera/constrain-001.xhtml
2111                css3/device-adapt/opera/constrain-002.xhtml
2112                css3/device-adapt/opera/constrain-003.xhtml
2113                css3/device-adapt/opera/constrain-004.xhtml
2114                css3/device-adapt/opera/constrain-005.xhtml
2115                css3/device-adapt/opera/constrain-006.xhtml
2116                css3/device-adapt/opera/constrain-007.xhtml
2117                css3/device-adapt/opera/constrain-008.xhtml
2118                css3/device-adapt/opera/constrain-009.xhtml
2119                css3/device-adapt/opera/constrain-010.xhtml
2120                css3/device-adapt/opera/constrain-011.xhtml
2121                css3/device-adapt/opera/constrain-012.xhtml
2122                css3/device-adapt/opera/constrain-013.xhtml
2123                css3/device-adapt/opera/constrain-014.xhtml
2124                css3/device-adapt/opera/constrain-015.xhtml
2125                css3/device-adapt/opera/constrain-016.xhtml
2126                css3/device-adapt/opera/constrain-017.xhtml
2127                css3/device-adapt/opera/constrain-020.xhtml
2128                css3/device-adapt/opera/syntax-001.xhtml
2129                css3/device-adapt/opera/syntax-002.xhtml
2130                css3/device-adapt/opera/syntax-003.xhtml
2131
2132         * CMakeLists.txt:
2133         * GNUmakefile.list.am:
2134         * Target.pri:
2135         * WebCore.gypi:
2136         * WebCore.vcproj/WebCore.vcproj:
2137         * WebCore.xcodeproj/project.pbxproj:
2138         * css/CSSAllInOne.cpp:
2139         * css/RuleSet.cpp:
2140         (WebCore::RuleSet::addRulesFromSheet):
2141         * css/StyleResolver.cpp:
2142         (WebCore::StyleResolver::StyleResolver):
2143         (WebCore::StyleResolver::appendAuthorStyleSheets):
2144         (WebCore::StyleResolver::~StyleResolver):
2145         * css/StyleResolver.h:
2146         (StyleResolver):
2147         (WebCore::StyleResolver::viewportStyleResolver):
2148         * css/ViewportStyleResolver.cpp: Added.
2149         (WebCore):
2150         (WebCore::ViewportStyleResolver::ViewportStyleResolver):
2151         (WebCore::ViewportStyleResolver::addViewportRule):
2152         (WebCore::ViewportStyleResolver::clearDocument):
2153         (WebCore::ViewportStyleResolver::resolve):
2154         (WebCore::ViewportStyleResolver::getViewportArgumentValue):
2155         * css/ViewportStyleResolver.h: Added.
2156         (WebCore):
2157         (ViewportStyleResolver):
2158         (WebCore::ViewportStyleResolver::create):
2159         * dom/Document.h:
2160         (WebCore::Document::setViewportArguments):
2161         * dom/ViewportArguments.cpp:
2162         (WebCore::compareIgnoringAuto):
2163         (WebCore):
2164         (WebCore::ViewportArguments::resolve):
2165         * dom/ViewportArguments.h:
2166         (ViewportAttributes):
2167         (WebCore::ViewportArguments::ViewportArguments):
2168         (ViewportArguments):
2169         (WebCore::ViewportArguments::operator==):
2170
2171 2012-11-19  Erik Arvidsson  <arv@chromium.org>
2172
2173         Update DOMException name: SecurityError
2174         https://bugs.webkit.org/show_bug.cgi?id=102437
2175
2176         Reviewed by Kentaro Hara.
2177
2178         Patch 18 of 25 to update DOMException name to match the spec and Firefox.
2179
2180         Updated existing tests.
2181
2182         * dom/DOMCoreException.cpp:
2183
2184 2012-11-19  Erik Arvidsson  <arv@chromium.org>
2185
2186         Update DOMException name: URLMismatchError
2187         https://bugs.webkit.org/show_bug.cgi?id=102511
2188
2189         Reviewed by Kentaro Hara.
2190
2191         Patch 21 of 25 to update DOMException name to match the spec and Firefox.
2192
2193         Updated existing tests.
2194
2195         * dom/DOMCoreException.cpp:
2196         (WebCore):
2197
2198 2012-11-19  Kihong Kwon  <kihong.kwon@samsung.com>
2199
2200         Add PROXIMITY_EVENTS feature
2201         https://bugs.webkit.org/show_bug.cgi?id=102658
2202
2203         Reviewed by Kentaro Hara.
2204
2205         Add PROXIMITY_EVENTS feature to xcode project for WebCorei and GNU make.
2206
2207         No new tests. Just add a new feature.
2208
2209         * Configurations/FeatureDefines.xcconfig:
2210         * GNUmakefile.features.am:
2211
2212 2012-11-19  Alexei Filippov  <alph@chromium.org>
2213
2214         Web Inspector: Dim a component's subitems' color in NMI snapshot
2215         https://bugs.webkit.org/show_bug.cgi?id=102224
2216
2217         Reviewed by Yury Semikhatsky.
2218
2219         * inspector/front-end/NativeMemorySnapshotView.js:
2220         (WebInspector.NativeSnapshotNode.prototype._createSizeCell):
2221         * inspector/front-end/nativeMemoryProfiler.css:
2222         (.native-snapshot-view .data-grid .dimmed div.size-bar):
2223
2224 2012-11-19  Erik Arvidsson  <arv@chromium.org>
2225
2226         Update DOMException name: NetworkError
2227         https://bugs.webkit.org/show_bug.cgi?id=102503
2228
2229         Reviewed by Kentaro Hara.
2230
2231         Patch 19 of 25 to update DOMException name to match the spec and Firefox.
2232
2233         No code uses DOMException NetworkError. We do use NETWORK_ERR for XMLHttpRequestException. See bug 102506.
2234
2235         * dom/DOMCoreException.cpp:
2236
2237 2012-11-19  Ilya Tikhonovsky  <loislo@chromium.org>
2238
2239         webaudio: clean-up. Replace AudioContext::m_document member with ContextDestructionObserver::scriptExecutionContext().
2240         https://bugs.webkit.org/show_bug.cgi?id=102649
2241
2242         Reviewed by Adam Barth.
2243
2244         AudioContext uses m_document only as a pointer to ScriptExecutionContext.
2245         It could be safely replaced with ContextDestructionObserver::m_scriptExecutionContext.
2246         The lifetime of m_scriptExecutionContext is slightly different but it could be adjusted by m_isStopScheduled flag.
2247
2248         No new tests as there is no new functionality.
2249
2250         * Modules/webaudio/AudioBufferSourceNode.cpp:
2251         (WebCore::AudioBufferSourceNode::looping):
2252         (WebCore::AudioBufferSourceNode::setLooping):
2253         * Modules/webaudio/AudioContext.cpp:
2254         (WebCore::AudioContext::AudioContext):
2255         (WebCore::AudioContext::stop):
2256         (WebCore::AudioContext::scriptExecutionContext):
2257         (WebCore::AudioContext::fireCompletionEvent):
2258         (WebCore::AudioContext::reportMemoryUsage):
2259         * Modules/webaudio/AudioContext.h:
2260         (AudioContext):
2261         * Modules/webaudio/ScriptProcessorNode.cpp:
2262         (WebCore::ScriptProcessorNode::fireProcessEvent):
2263         (WebCore::ScriptProcessorNode::scriptExecutionContext):
2264
2265 2012-11-19  Ilya Tikhonovsky  <loislo@chromium.org>
2266
2267         webaudio: leak: AudioContext objects are leaking. They retain 36mb of shared data.
2268         https://bugs.webkit.org/show_bug.cgi?id=102356
2269
2270         Reviewed by Adam Barth.
2271
2272         A clean-up code was moved from uninitialize to clear method.
2273         AudioContext marks itself as hasPendingActivity in method constructCommon and unmarks itself in method clear.
2274         m_isStopScheduled filters out second ActiveDOMObject::stop call.
2275         markForDeletion appends AudioNode pointer to m_nodesToDelete array if there is no active audio thread.
2276         adoptRef was added in createOfflineContext method.
2277         A guard was added into deleteMarkedNodes.
2278
2279         Test: inspector-protocol/nmi-webaudio-leak-test.html
2280
2281         * Modules/webaudio/AudioContext.cpp:
2282         (WebCore::AudioContext::createOfflineContext):
2283         (WebCore::AudioContext::AudioContext):
2284         (WebCore::AudioContext::constructCommon):
2285         (WebCore::AudioContext::~AudioContext):
2286         (WebCore::AudioContext::clear):
2287         (WebCore::AudioContext::uninitialize):
2288         (WebCore::AudioContext::stopDispatch):
2289         (WebCore::AudioContext::stop):
2290         (WebCore::AudioContext::markForDeletion):
2291         (WebCore::AudioContext::scheduleNodeDeletion):
2292         (WebCore::AudioContext::deleteMarkedNodes):
2293         * Modules/webaudio/AudioContext.h:
2294         (AudioContext):
2295         * bindings/v8/custom/V8AudioContextCustom.cpp:
2296         (WebCore::V8AudioContext::constructorCallback):
2297         * inspector/InspectorMemoryAgent.cpp:
2298         (WebCore::InspectorMemoryAgent::getProcessMemoryDistribution):
2299         * platform/PlatformMemoryInstrumentation.cpp:
2300         (WebCore::PlatformMemoryInstrumentation::reportMemoryUsage):
2301         (WebCore):
2302         * platform/PlatformMemoryInstrumentation.h:
2303         (PlatformMemoryInstrumentation):
2304         (WebCore):
2305
2306 2012-11-19  Erik Arvidsson  <arv@chromium.org>
2307
2308         Update DOMException name: QuotaExceededError
2309         https://bugs.webkit.org/show_bug.cgi?id=102512
2310
2311         Reviewed by Kentaro Hara.
2312
2313         Patch 22 of 25 to update DOMException name to match the spec and Firefox.
2314
2315         Updated existing tests.
2316
2317         * dom/DOMCoreException.cpp:
2318
2319 2012-11-19  Erik Arvidsson  <arv@chromium.org>
2320
2321         Update DOMException name: AbortError
2322         https://bugs.webkit.org/show_bug.cgi?id=102508
2323
2324         Reviewed by Kentaro Hara.
2325
2326         Patch 20 of 25 to update DOMException name to match the spec and Firefox.
2327
2328         No code uses DOMException AbortError. We do use ABORT_ERR for XMLHttpRequestException. See bug 102506.
2329
2330         * dom/DOMCoreException.cpp:
2331
2332 2012-11-19  Kentaro Hara  <haraken@chromium.org>
2333
2334         Unreviewed, rolling out r135111.
2335         http://trac.webkit.org/changeset/135111
2336         https://bugs.webkit.org/show_bug.cgi?id=102356
2337
2338         The patch caused crashes in several layout tests
2339
2340         * Modules/webaudio/AudioContext.cpp:
2341         (WebCore::AudioContext::createOfflineContext):
2342         (WebCore::AudioContext::AudioContext):
2343         (WebCore::AudioContext::constructCommon):
2344         (WebCore::AudioContext::~AudioContext):
2345         (WebCore::AudioContext::uninitialize):
2346         (WebCore::AudioContext::uninitializeDispatch):
2347         (WebCore::AudioContext::stop):
2348         (WebCore::AudioContext::markForDeletion):
2349         (WebCore::AudioContext::scheduleNodeDeletion):
2350         (WebCore::AudioContext::deleteMarkedNodes):
2351         * Modules/webaudio/AudioContext.h:
2352         (AudioContext):
2353         * bindings/v8/custom/V8AudioContextCustom.cpp:
2354         (WebCore::V8AudioContext::constructorCallback):
2355         * inspector/InspectorMemoryAgent.cpp:
2356         (WebCore::InspectorMemoryAgent::getProcessMemoryDistribution):
2357         * platform/PlatformMemoryInstrumentation.cpp:
2358         (WebCore):
2359         * platform/PlatformMemoryInstrumentation.h:
2360
2361 2012-11-19  Kentaro Hara  <haraken@chromium.org>
2362
2363         Unreviewed, rolling out r135116.
2364         http://trac.webkit.org/changeset/135116
2365         https://bugs.webkit.org/show_bug.cgi?id=102649
2366
2367         Revert this patch to revert r135111, which caused crashes in
2368         several layout tests
2369
2370         * Modules/webaudio/AudioBufferSourceNode.cpp:
2371         (WebCore::AudioBufferSourceNode::looping):
2372         (WebCore::AudioBufferSourceNode::setLooping):
2373         * Modules/webaudio/AudioContext.cpp:
2374         (WebCore::AudioContext::AudioContext):
2375         (WebCore::AudioContext::stop):
2376         (WebCore::AudioContext::document):
2377         (WebCore):
2378         (WebCore::AudioContext::hasDocument):
2379         (WebCore::AudioContext::scriptExecutionContext):
2380         (WebCore::AudioContext::fireCompletionEvent):
2381         (WebCore::AudioContext::reportMemoryUsage):
2382         * Modules/webaudio/AudioContext.h:
2383         (AudioContext):
2384         * Modules/webaudio/ScriptProcessorNode.cpp:
2385         (WebCore::ScriptProcessorNode::fireProcessEvent):
2386         (WebCore::ScriptProcessorNode::scriptExecutionContext):
2387
2388 2012-11-19  Eugene Klyuchnikov  <eustas.bug@gmail.com>
2389
2390         Web Inspector: Refine JsDoc in DebuggerScriptMapping.js
2391         https://bugs.webkit.org/show_bug.cgi?id=102673
2392
2393         Reviewed by Vsevolod Vlasov.
2394
2395         DebuggerScriptMapping calls public method "addScript" not defined
2396         in SourceMapping interface.
2397
2398         To make things clear I've added ScriptSourceMapping interface that
2399         extends SourceMapping interface by adding "addScript" method.
2400
2401         * inspector/front-end/SourceMapping.js: Added "ScriptSourceMapping".
2402         * inspector/front-end/CompilerScriptMapping.js:
2403         Updated "@implements" to ScriptSourceMapping.
2404         * inspector/front-end/ResourceScriptMapping.js: Ditto.
2405         * inspector/front-end/ScriptSnippetModel.js: Ditto.
2406         * inspector/front-end/DebuggerScriptMapping.js: Updated signatures.
2407         Removed useless code.
2408
2409 2012-11-19  Tim Horton  <timothy_horton@apple.com>
2410
2411         Unreviewed, untested build fix.
2412
2413         * bindings/scripts/IDLParser.pm:
2414         (parseModule):
2415
2416 2012-11-19  Dongwoo Joshua Im  <dw.im@samsung.com>
2417
2418         [CSS3] Move CSSPropertyWebkitTextAlignLast into isValidKeywordPropertyAndValue function
2419         https://bugs.webkit.org/show_bug.cgi?id=102303
2420
2421         Reviewed by Alexis Menard.
2422
2423         Move the part which check whether CSSPropertyWebkitTextAlignLast has available value
2424         into the isValidKeywordPropertyAndValue function, like the same kind of properties.
2425         This will help speed wise in JS.
2426
2427         No new functionality, no new tests.
2428
2429         * css/CSSParser.cpp:
2430         (WebCore::isValidKeywordPropertyAndValue):
2431         (WebCore::isKeywordPropertyID):
2432         (WebCore::CSSParser::parseValue):
2433
2434 2012-11-19  Keishi Hattori  <keishi@webkit.org>
2435
2436         REGRESSION (r133565): Calendar picker isn't animating when changing month by pressing 't'
2437         https://bugs.webkit.org/show_bug.cgi?id=102660
2438
2439         Reviewed by Kent Tamura.
2440
2441         The calendar picker used to animate when you press 't'.
2442
2443         No new tests.
2444
2445         * Resources/pagepopups/calendarPicker.js:
2446         (DaysTable.prototype.selectRange):
2447
2448 2012-11-19  Kent Tamura  <tkent@chromium.org>
2449
2450         input.value="" should clear date/time input elements with partial values
2451         https://bugs.webkit.org/show_bug.cgi?id=102645
2452
2453         Reviewed by Kentaro Hara.
2454
2455         Tests: fast/forms/date-multiple-fields/date-multiple-fields-value-set-empty.html
2456                fast/forms/datetime-multiple-fields/datetime-multiple-fields-value-set-empty.html
2457                fast/forms/datetimelocal-multiple-fields/datetimelocal-multiple-fields-value-set-empty.html
2458                fast/forms/month-multiple-fields/month-multiple-fields-value-set-empty.html
2459                fast/forms/time-multiple-fields/time-multiple-fields-value-set-empty.html
2460                fast/forms/week-multiple-fields/week-multiple-fields-value-set-empty.html
2461
2462         * html/BaseMultipleFieldsDateAndTimeInputType.cpp:
2463         (WebCore::BaseMultipleFieldsDateAndTimeInputType::setValue):
2464         If the new value is an empty string and sub-fields has values, we should
2465         update the UI value to the empty state.
2466         * html/DateTimeFieldsState.h:
2467         (WebCore::DateTimeFieldsState::hasAnyValue):
2468         Added. It returns true if one or more sub-fields are not empty.
2469
2470 2012-11-19  Andrey Adaikin  <aandrey@chromium.org>
2471
2472         Web Inspector: [Canvas] if many canvases are being instrumented show the screenshot of the first one
2473         https://bugs.webkit.org/show_bug.cgi?id=102522
2474
2475         Reviewed by Yury Semikhatsky.
2476
2477         When many canvases are being instrumented we'll want to show replay screenshots for each canvas.
2478         Meanwhile, show the screenshot of the first one (instead of the last one), as it's likely to be the "main" canvas.
2479         Drive-by: add more typification for the JS compiler.
2480         Drive-by: create a new canvas for WebGL replay every time (similar to 2D replay) to avoid problems with resetting the context state.
2481
2482         * inspector/InjectedScriptCanvasModuleSource.js:
2483         (.):
2484
2485 2012-11-19  Kentaro Hara  <haraken@chromium.org>
2486
2487         Remove IDLStructure.pm
2488         https://bugs.webkit.org/show_bug.cgi?id=102642
2489
2490         Reviewed by Adam Barth.
2491
2492         Previously IDLStructure.pm was full of regular expressions to
2493         parse IDL files. Now a new IDL parser is implemented, IDLStructure.pm
2494         just contains several data structures for the IDL parser. We can
2495         move them to IDLParser.pm and thus remove IDLStructure.pm.
2496
2497         No tests. No change in generated code.
2498
2499         * CMakeLists.txt:
2500         * DerivedSources.make:
2501         * DerivedSources.pri:
2502         * GNUmakefile.am:
2503         * WebCore.gyp/WebCore.gyp:
2504         * WebCore.vcproj/MigrateScripts:
2505         * WebCore.vcproj/WebCore.vcproj:
2506         * WebCore.xcodeproj/project.pbxproj:
2507         * bindings/scripts/IDLParser.pm:
2508         (Parse):
2509         (parseInterface):
2510         (parseException):
2511         (parseConst):
2512         (parseAttributeRest):
2513         (parseOperationRest):
2514         (parseOptionalOrRequiredArgument):
2515         (parseExceptionField):
2516         (parseInterfaceOld):
2517         (parseExceptionOld):
2518         (parseAttributeRestOld):
2519         (applyExtendedAttributeList):
2520         * bindings/scripts/IDLStructure.pm: Removed.
2521
2522 2012-11-19  Alexei Filippov  <alph@chromium.org>
2523
2524         Web Inspector: refine time and bytes output formatting
2525         https://bugs.webkit.org/show_bug.cgi?id=102265
2526
2527         Reviewed by Yury Semikhatsky.
2528
2529         Add a space between number and unit, otherwise it's hard to read things like 88B.
2530         Reduce a number of decimal digits in KB and MB formats. 1023.45KB seems to be too detailed.
2531
2532         * English.lproj/localizedStrings.js:
2533         * inspector/front-end/CookiesTable.js:
2534         (WebInspector.CookiesTable.prototype._createGridNode):
2535         * inspector/front-end/UIUtils.js:
2536         (Number.secondsToString):
2537         (Number.bytesToString):
2538
2539 2012-11-19  Eugene Klyuchnikov  <eustas.bug@gmail.com>
2540
2541         Web Inspector: Timeline: DomContentLoaded event labeled incorrectly
2542         https://bugs.webkit.org/show_bug.cgi?id=102383
2543
2544         Reviewed by Yury Semikhatsky.
2545
2546         Fixed string presentation of event.
2547
2548         * inspector/front-end/TimelinePresentationModel.js: Fixed string.
2549
2550 2012-11-19  Kentaro Hara  <haraken@chromium.org>
2551
2552         Remove IDLStructure.pm
2553         https://bugs.webkit.org/show_bug.cgi?id=102642
2554
2555         Reviewed by Adam Barth.
2556
2557         Previously IDLStructure.pm was full of regular expressions to
2558         parse IDL files. Now a new IDL parser is implemented, IDLStructure.pm
2559         just contains several data structures for the IDL parser. We can
2560         move them to IDLParser.pm and thus remove IDLStructure.pm.
2561
2562         No tests. No change in generated code.
2563
2564         * CMakeLists.txt:
2565         * DerivedSources.make:
2566         * DerivedSources.pri:
2567         * GNUmakefile.am:
2568         * WebCore.gyp/WebCore.gyp:
2569         * WebCore.vcproj/MigrateScripts:
2570         * WebCore.vcproj/WebCore.vcproj:
2571         * WebCore.xcodeproj/project.pbxproj:
2572         * bindings/scripts/IDLParser.pm:
2573         (Parse):
2574         (parseInterface):
2575         (parseException):
2576         (parseConst):
2577         (parseAttributeRest):
2578         (parseOperationRest):
2579         (parseOptionalOrRequiredArgument):
2580         (parseExceptionField):
2581         (parseInterfaceOld):
2582         (parseExceptionOld):
2583         (parseAttributeRestOld):
2584         (applyExtendedAttributeList):
2585         * bindings/scripts/IDLStructure.pm: Removed.
2586
2587 2012-11-19  Alexei Filippov  <alph@chromium.org>
2588
2589         Web Inspector: refine time and bytes output formatting
2590         https://bugs.webkit.org/show_bug.cgi?id=102265
2591
2592         Reviewed by Yury Semikhatsky.
2593
2594         Add a space between number and unit, otherwise it's hard to read things like 88B.
2595         Reduce a number of decimal digits in KB and MB formats. 1023.45KB seems to be too detailed.
2596
2597         * English.lproj/localizedStrings.js:
2598         * inspector/front-end/CookiesTable.js:
2599         (WebInspector.CookiesTable.prototype._createGridNode):
2600         * inspector/front-end/UIUtils.js:
2601         (Number.secondsToString):
2602         (Number.bytesToString):
2603
2604 2012-11-19  Eugene Klyuchnikov  <eustas.bug@gmail.com>
2605
2606         Web Inspector: Timeline: DomContentLoaded event labeled incorrectly
2607         https://bugs.webkit.org/show_bug.cgi?id=102383
2608
2609         Reviewed by Yury Semikhatsky.
2610
2611         Fixed string presentation of event.
2612
2613         * inspector/front-end/TimelinePresentationModel.js: Fixed string.
2614
2615 2012-11-19  Kentaro Hara  <haraken@chromium.org>
2616
2617         Unreviewed, rolling out r135114.
2618         http://trac.webkit.org/changeset/135114
2619         https://bugs.webkit.org/show_bug.cgi?id=102642
2620
2621         it broke Qt build
2622
2623         * CMakeLists.txt:
2624         * DerivedSources.make:
2625         * DerivedSources.pri:
2626         * GNUmakefile.am:
2627         * WebCore.gyp/WebCore.gyp:
2628         * WebCore.vcproj/MigrateScripts:
2629         * WebCore.vcproj/WebCore.vcproj:
2630         * WebCore.xcodeproj/project.pbxproj:
2631         * bindings/scripts/IDLParser.pm:
2632         (Parse):
2633         (parseInterface):
2634         (parseException):
2635         (parseConst):
2636         (parseAttributeRest):
2637         (parseOperationRest):
2638         (parseOptionalOrRequiredArgument):
2639         (parseExceptionField):
2640         (parseInterfaceOld):
2641         (parseExceptionOld):
2642         (parseAttributeRestOld):
2643         (applyExtendedAttributeList):
2644         * bindings/scripts/IDLStructure.pm: Added.
2645
2646 2012-11-19  Vsevolod Vlasov  <vsevik@chromium.org>
2647
2648         Unreviewed inspector closure compilation fix.
2649
2650         * inspector/front-end/ObjectPropertiesSection.js:
2651         * inspector/front-end/externs.js:
2652
2653 2012-11-18  Ilya Tikhonovsky  <loislo@chromium.org>
2654
2655         webaudio: clean-up. Replace AudioContext::m_document member with ContextDestructionObserver::scriptExecutionContext().
2656         https://bugs.webkit.org/show_bug.cgi?id=102649
2657
2658         Reviewed by Adam Barth.
2659
2660         AudioContext uses m_document only as a pointer to ScriptExecutionContext.
2661         It could be safely replaced with ContextDestructionObserver::m_scriptExecutionContext.
2662         The lifetime of m_scriptExecutionContext is slightly different but it could be adjusted by m_isStopScheduled flag.
2663
2664         No new tests as there is no new functionality.
2665
2666         * Modules/webaudio/AudioBufferSourceNode.cpp:
2667         (WebCore::AudioBufferSourceNode::looping):
2668         (WebCore::AudioBufferSourceNode::setLooping):
2669         * Modules/webaudio/AudioContext.cpp:
2670         (WebCore::AudioContext::AudioContext):
2671         (WebCore::AudioContext::stop):
2672         (WebCore::AudioContext::fireCompletionEvent):
2673         (WebCore::AudioContext::reportMemoryUsage):
2674         * Modules/webaudio/AudioContext.h:
2675         (WebCore::AudioContext::scriptExecutionContext):
2676         (AudioContext):
2677         * Modules/webaudio/ScriptProcessorNode.cpp:
2678         (WebCore::ScriptProcessorNode::fireProcessEvent):
2679         (WebCore::ScriptProcessorNode::scriptExecutionContext):
2680
2681 2012-11-18  Kentaro Hara  <haraken@chromium.org>
2682
2683         [V8] Remove unused variables from CodeGeneratorV8.pm
2684         https://bugs.webkit.org/show_bug.cgi?id=102648
2685
2686         Reviewed by Adam Barth.
2687
2688         No tests. No change in generated code.
2689
2690         * bindings/scripts/CodeGeneratorV8.pm:
2691         (GenerateInterface):
2692         (GenerateHeader):
2693         (GetInternalFields):
2694         (GenerateNormalAttrGetter):
2695         (GenerateSingleBatchedAttribute):
2696         (GenerateImplementationCustomCall):
2697         (GenerateFunctionCallString):
2698         (CreateCustomSignature):
2699         (GetContextEnableFunction):
2700
2701 2012-11-18  Kentaro Hara  <haraken@chromium.org>
2702
2703         Remove IDLStructure.pm
2704         https://bugs.webkit.org/show_bug.cgi?id=102642
2705
2706         Reviewed by Adam Barth.
2707
2708         Previously IDLStructure.pm was full of regular expressions to
2709         parse IDL files. Now a new IDL parser is implemented, IDLStructure.pm
2710         just contains several data structures for the IDL parser. We can
2711         move them to IDLParser.pm and thus remove IDLStructure.pm.
2712
2713         No tests. No change in generated code.
2714
2715         * CMakeLists.txt:
2716         * DerivedSources.make:
2717         * DerivedSources.pri:
2718         * GNUmakefile.am:
2719         * WebCore.gyp/WebCore.gyp:
2720         * WebCore.vcproj/MigrateScripts:
2721         * WebCore.vcproj/WebCore.vcproj:
2722         * WebCore.xcodeproj/project.pbxproj:
2723         * bindings/scripts/IDLParser.pm:
2724         (Parse):
2725         (parseInterface):
2726         (parseException):
2727         (parseConst):
2728         (parseAttributeRest):
2729         (parseOperationRest):
2730         (parseOptionalOrRequiredArgument):
2731         (parseExceptionField):
2732         (parseInterfaceOld):
2733         (parseExceptionOld):
2734         (parseAttributeRestOld):
2735         (applyExtendedAttributeList):
2736         * bindings/scripts/IDLStructure.pm: Removed.
2737
2738 2012-11-18  Kentaro Hara  <haraken@chromium.org>
2739
2740         [V8] Make more use of $v8Interface in CodeGeneratorV8.pm
2741         https://bugs.webkit.org/show_bug.cgi?id=102639
2742
2743         Reviewed by Adam Barth.
2744
2745         We can replace hard-coded "V8${interfaceName}" with $v8Interface.
2746
2747         No tests. No change in generated code.
2748
2749         * bindings/scripts/CodeGeneratorV8.pm:
2750         (GenerateNormalAttrGetter):
2751         (GenerateNormalAttrSetter):
2752         (GenerateFunctionCallback):
2753         (GenerateNamedConstructorCallback):
2754         (GenerateImplementationIndexer):
2755         (GenerateImplementationNamedPropertyGetter):
2756         (GenerateImplementation):
2757
2758 2012-11-16  Ilya Tikhonovsky  <loislo@chromium.org>
2759
2760         webaudio: leak: AudioContext objects are leaking. They retain 36mb of shared data.
2761         https://bugs.webkit.org/show_bug.cgi?id=102356
2762
2763         Reviewed by Adam Barth.
2764
2765         A clean-up code was moved from uninitialize to clear method.
2766         AudioContext marks itself as hasPendingActivity in method constructCommon and unmarks itself in method clear.
2767         m_isStopScheduled filters out second ActiveDOMObject::stop call.
2768         markForDeletion appends AudioNode pointer to m_nodesToDelete array if there is no active audio thread.
2769         adoptRef was added in createOfflineContext method.
2770
2771         Test: inspector-protocol/nmi-webaudio-leak-test.html
2772
2773         * Modules/webaudio/AudioContext.cpp:
2774         (WebCore::AudioContext::createOfflineContext):
2775         (WebCore::AudioContext::AudioContext):
2776         (WebCore::AudioContext::constructCommon):
2777         (WebCore::AudioContext::~AudioContext):
2778         (WebCore::AudioContext::clear):
2779         (WebCore::AudioContext::uninitialize):
2780         (WebCore::AudioContext::stopDispatch):
2781         (WebCore::AudioContext::stop):
2782         (WebCore::AudioContext::markForDeletion):
2783         (WebCore::AudioContext::scheduleNodeDeletion):
2784         (WebCore::AudioContext::deleteMarkedNodes):
2785         * Modules/webaudio/AudioContext.h:
2786         (AudioContext):
2787         * bindings/v8/custom/V8AudioContextCustom.cpp:
2788         (WebCore::V8AudioContext::constructorCallback):
2789         * inspector/InspectorMemoryAgent.cpp:
2790         (WebCore::InspectorMemoryAgent::getProcessMemoryDistribution):
2791         * platform/PlatformMemoryInstrumentation.cpp:
2792         (WebCore::PlatformMemoryInstrumentation::reportMemoryUsage):
2793         (WebCore):
2794         * platform/PlatformMemoryInstrumentation.h:
2795         (PlatformMemoryInstrumentation):
2796         (WebCore):
2797
2798 2012-11-18  Kunihiko Sakamoto  <ksakamoto@chromium.org>
2799
2800         min/max/step support for calendar picker on datetime/datetime-local
2801         https://bugs.webkit.org/show_bug.cgi?id=102628
2802
2803         Reviewed by Kent Tamura.
2804
2805         Gray out dates with no allowed values on calendar picker for datetime/datetime-local
2806         when values are limited by min/max/step attributes.
2807
2808         Test: platform/chromium/fast/forms/calendar-picker/calendar-picker-datetime-with-step.html
2809
2810         * Resources/pagepopups/calendarPicker.js:
2811         (CalendarPicker.prototype._stepMismatch):
2812         Returns true iff there are any allowed values in the given day.
2813
2814 2012-11-18  Laszlo Gombos  <l.gombos@samsung.com>
2815
2816         Remove non-existent directories from the make system
2817         https://bugs.webkit.org/show_bug.cgi?id=102632
2818
2819         Reviewed by Adam Barth.
2820
2821         Remove (non-existent) symbian references from the exclude list in gyp project files.
2822
2823         No new tests as there is no new functionality.
2824
2825         * WebCore.gyp/WebCore.gyp:
2826
2827 2012-11-18  Patrick Gansterer  <paroga@webkit.org>
2828
2829         [WIN] Add a IMLangFontLinkType typedef
2830         https://bugs.webkit.org/show_bug.cgi?id=102584
2831
2832         Reviewed by Brent Fulgham.
2833
2834         Add a central typedef for IMLangFontLink(2) to get rid of a bunch of ifdefs.
2835
2836         * platform/graphics/FontCache.h:
2837         (WebCore):
2838         * platform/graphics/win/FontCacheWin.cpp:
2839         (WebCore::FontCache::getFontLinkInterface):
2840         (WebCore::getCJKCodePageMasks):
2841         (WebCore::createMLangFont):
2842         (WebCore::FontCache::getFontDataForCharacters):
2843         * platform/graphics/win/SimpleFontDataWin.cpp:
2844         (WebCore::SimpleFontData::containsCharacters):
2845         * platform/graphics/wince/FontCacheWinCE.cpp:
2846         (WebCore):
2847         (WebCore::FontCache::getFontLinkInterface):
2848         (WebCore::getCJKCodePageMasks):
2849         (WebCore::FontCache::getFontDataForCharacters):
2850         * platform/graphics/wince/FontPlatformData.cpp:
2851         (WebCore::FontFamilyCodePageInfo::codePages):
2852         (WebCore::FixedSizeFontData::create):
2853         * platform/graphics/wince/GlyphPageTreeNodeWinCE.cpp:
2854         (WebCore::GlyphPage::fill):
2855
2856 2012-11-18  Mike West  <mkwst@chromium.org>
2857
2858         Web Inspector: Remove unused ConsoleMessage constructor.
2859         https://bugs.webkit.org/show_bug.cgi?id=102590
2860
2861         Reviewed by Brent Fulgham.
2862
2863         We currently have a ConsoleMessage constructor that's unused. Let's
2864         kill it.
2865
2866         * inspector/ConsoleMessage.cpp:
2867         * inspector/ConsoleMessage.h:
2868         (ConsoleMessage):
2869             Removing an unused constructor variant.
2870
2871 2012-11-18  Andreas Kling  <akling@apple.com>
2872
2873         StyledElement: Make handling the "style" attribute a litte faster.
2874         <http://webkit.org/b/102623>
2875
2876         Reviewed by Ojan Vafai.
2877
2878         We know that "style" is never a presentation attribute, so avoid the virtual call to isPresentationAttribute()
2879         by hoisting the parseAttribute() logic up into attributeChanged().
2880         Did the same thing with Element::parseAttribute() for consistency.
2881
2882         Knocks ~0.6% of samples off of the DOM/CreateNodes performance test.
2883
2884         * dom/Element.cpp:
2885         (WebCore::Element::attributeChanged):
2886         * dom/Element.h:
2887         (WebCore::Element::parseAttribute):
2888         * dom/StyledElement.cpp:
2889         (WebCore::StyledElement::attributeChanged):
2890         * dom/StyledElement.h:
2891         (StyledElement):
2892
2893 2012-11-18  Laszlo Gombos  <l.gombos@samsung.com>
2894
2895         [CMake] Consolidate common input files
2896         https://bugs.webkit.org/show_bug.cgi?id=101632
2897
2898         Reviewed by Rob Buis.
2899
2900         Consolidate and sort the list of files, move common source files
2901         into CMakeLists.txt from the port specific files.
2902
2903         No new tests as there is no new functionality.
2904
2905         * CMakeLists.txt:
2906         * PlatformBlackBerry.cmake:
2907         * PlatformEfl.cmake:
2908         * PlatformWinCE.cmake:
2909
2910 2012-11-18  Andreas Kling  <akling@apple.com>
2911
2912         Tighten small SharedBuffers by reserving the exact amount of space needed.
2913         <http://webkit.org/b/102625>
2914
2915         Reviewed by Anders Carlsson.
2916
2917         When adding the first chunk to a small (<4096 bytes) SharedBuffer, reserve the exact
2918         amount of space needed instead of leaving it to Vector<char>::append().
2919
2920         1.86MB progression on Membuster3.
2921
2922         * platform/SharedBuffer.cpp:
2923         (WebCore::SharedBuffer::append):
2924
2925 2012-11-18  Ryosuke Niwa  <rniwa@webkit.org>
2926
2927         Make namedItem return a node list only in HTMLFormControlsCollection and HTMLOptionsCollection
2928         https://bugs.webkit.org/show_bug.cgi?id=101311
2929
2930         Reviewed by Darin Adler.
2931
2932         Introduce two new interfaces HTMLFormControlsCollection and HTMLOptionsCollection to be used by form.elements
2933         and select.options. These two interfaces have the named getter and namedItem that returns a live NodeList when
2934         there are multiple matches. Introducing these two interfaces allow us to make "regular" HTMLCollection's named
2935         getter and namedItem return exactly one node or null as specified in HTML5:
2936         http://www.whatwg.org/specs/web-apps/current-work/multipage/common-dom-interfaces.html#collections-0
2937
2938         Unfortunately, HTMLOptionsCollection still has a bug that its named getter and namedItem returns
2939         a static NodeList instead of a live NodeList (DynamicNodeList) at the moment.
2940
2941         Also got rid of Document::objects since it's not exposed in IDL or called anywhere.
2942
2943         Test: fast/dom/html-collections-namedItem.html
2944
2945         * CMakeLists.txt:
2946         * DerivedSources.cpp:
2947         * DerivedSources.make:
2948         * DerivedSources.pri:
2949         * GNUmakefile.list.am:
2950         * Target.pri:
2951         * UseJSC.cmake:
2952         * UseV8.cmake:
2953         * WebCore.gypi:
2954         * WebCore.vcproj/WebCore.vcproj:
2955         * WebCore.xcodeproj/project.pbxproj:
2956         * bindings/js/JSBindingsAllInOne.cpp:
2957         * bindings/js/JSHTMLAllCollectionCustom.cpp:
2958         (WebCore::getNamedItems):
2959         * bindings/js/JSHTMLCollectionCustom.cpp:
2960         (WebCore::JSHTMLCollection::nameGetter): Now returns exactly one node or null.
2961         (WebCore::toJS):
2962         * bindings/js/JSHTMLFormControlsCollectionCustom.cpp: Added.
2963         (WebCore::getNamedItems): Returns RadioNodeList when there are multiple matches.
2964         (WebCore::JSHTMLFormControlsCollection::canGetItemsForName):
2965         (WebCore::JSHTMLFormControlsCollection::nameGetter):
2966         (WebCore::JSHTMLFormControlsCollection::namedItem):
2967         * bindings/js/JSHTMLOptionsCollectionCustom.cpp:
2968         (WebCore::getNamedItems): Returns a static NodeList when there are multiple matches.
2969         This is a bug. It should be a live NodeList instead.
2970         (WebCore::JSHTMLOptionsCollection::canGetItemsForName):
2971         (WebCore::JSHTMLOptionsCollection::nameGetter):
2972         (WebCore::JSHTMLOptionsCollection::namedItem):
2973         * bindings/js/CodeGeneratorJS.pm: Include JSNode.js for all HTML*Collection interfaces for simplicity.
2974         * bindings/js/CodeGeneratorV8.pm: HTMLOptionsCollection now inherits from HTMLCollection. See
2975         http://www.whatwg.org/specs/web-apps/current-work/multipage/common-dom-interfaces.html#htmloptionscollection
2976         * bindings/v8/custom/V8HTMLAllCollectionCustom.cpp: Pass in isolate when we can.
2977         (WebCore::getNamedItems): Added a comment about how we should be returning
2978         a HTMLCollection when there are multiple matches.
2979         (WebCore::getItem):
2980         (WebCore::V8HTMLAllCollection::namedPropertyGetter):
2981         (WebCore::V8HTMLAllCollection::namedItemCallback):
2982         * bindings/v8/custom/V8HTMLCollectionCustom.cpp: Now returns exactly one node or null.
2983         (WebCore::V8HTMLCollection::namedPropertyGetter):
2984         (WebCore::toV8):
2985         * bindings/v8/custom/V8HTMLFormControlsCollectionCustom.cpp: Added.
2986         (WebCore::getNamedItems): Returns RadioNodeList when there are multiple matches.
2987         (WebCore::V8HTMLFormControlsCollection::namedPropertyGetter):
2988         (WebCore::V8HTMLFormControlsCollection::namedItemCallback):
2989         * bindings/v8/custom/V8HTMLOptionsCollectionCustom.cpp:
2990         (WebCore::getNamedItems): Returns a static NodeList when there are multiple matches.
2991         This is a bug. It should be a live NodeList instead.
2992         (WebCore::V8HTMLOptionsCollection::namedPropertyGetter):
2993         (WebCore::V8HTMLOptionsCollection::namedItemCallback):
2994         * dom/Document.cpp: Removed Document::objects since it was not used anywhere.
2995         * dom/Document.h:
2996         (Document):
2997         * dom/Element.cpp:
2998         (WebCore::ElementRareData::ensureCachedHTMLCollection): form.elements should instantiate
2999         a HTMLFormControlsCollection instead of a HTMLCollection.
3000         * html/CollectionType.h:
3001         * html/HTMLCollection.idl: Removed [Custom] since namedItem is a regular function call now.
3002         * html/HTMLFieldSetElement.cpp:
3003         * html/HTMLFieldSetElement.h:
3004         * html/HTMLFormCollection.cpp: Removed.
3005         * html/HTMLFormCollection.h: Removed.
3006         * html/HTMLFormControlsCollection.cpp: Copied from Source/WebCore/html/HTMLFormCollection.cpp.
3007         (WebCore::HTMLFormControlsCollection::HTMLFormControlsCollection):
3008         (WebCore::HTMLFormControlsCollection::create):
3009         (WebCore::HTMLFormControlsCollection::~HTMLFormControlsCollection):
3010         (WebCore::HTMLFormControlsCollection::formControlElements):
3011         (WebCore::HTMLFormControlsCollection::formImageElements):
3012         (WebCore::HTMLFormControlsCollection::virtualItemAfter):
3013         (WebCore::HTMLFormControlsCollection::namedItem):
3014         (WebCore::HTMLFormControlsCollection::updateNameCache):
3015         * html/HTMLFormControlsCollection.h: Copied from Source/WebCore/html/HTMLFormCollection.h.
3016         (HTMLFormControlsCollection):
3017         * html/HTMLFormControlsCollection.idl: Added.
3018         * html/HTMLFormElement.cpp:
3019         * html/HTMLFormElement.h:
3020         * html/HTMLOptionsCollection.idl:
3021
3022 2012-11-18  Kentaro Hara  <haraken@chromium.org>
3023
3024         [V8] Rename $className to $v8InterfaceName
3025         https://bugs.webkit.org/show_bug.cgi?id=102487
3026
3027         Reviewed by Adam Barth.
3028
3029         In CodeGeneratorV8.pm, $className is always "V8$interfaceName".
3030         We should rename $className to $v8InterfaceName. Also we can
3031         remove GetCallbackClassName().
3032
3033         No tests. No change in behavior.
3034
3035         * bindings/scripts/CodeGeneratorV8.pm:
3036         (GenerateHeader):
3037         (GetHeaderClassInclude):
3038         (GenerateDomainSafeFunctionGetter):
3039         (GenerateDomainSafeFunctionSetter):
3040         (GenerateParametersCheck):
3041         (GenerateImplementation):
3042         (GenerateHeaderContentHeader):
3043         (GenerateImplementationContentHeader):
3044         (GenerateCallbackHeader):
3045         (GenerateCallbackImplementation):
3046         (GenerateToV8Converters):
3047         (GetPassRefPtrType):
3048
3049 2012-11-18  Kentaro Hara  <haraken@chromium.org>
3050
3051         [V8] Remove GetTypeFromSignature() from CodeGeneratorV8.pm
3052         https://bugs.webkit.org/show_bug.cgi?id=102499
3053
3054         Reviewed by Adam Barth.
3055
3056         No tests. No change in behavior.
3057
3058         * bindings/scripts/CodeGeneratorV8.pm:
3059         (GenerateNormalAttrGetter):
3060         (GenerateNormalAttrSetter):
3061         (GenerateParametersCheckExpression):
3062         (GenerateParametersCheck):
3063         (GenerateFunctionCallString):
3064         (GetNativeTypeFromSignature):
3065         (TranslateParameter):
3066         (TypeCanFailConversion):
3067         (JSValueToNative):
3068         (NativeToJSValue):
3069
3070 2012-11-18  Kentaro Hara  <haraken@chromium.org>
3071
3072         Remove GenerateModule() from all code generators
3073         https://bugs.webkit.org/show_bug.cgi?id=102490
3074
3075         Reviewed by Adam Barth.
3076
3077         WebKit IDL files no longer support modules. The Web IDL spec
3078         no longer supports modules. We can remove it from code generators.
3079
3080         No tests. No change in behavior.
3081
3082         * bindings/scripts/CodeGenerator.pm:
3083         (ProcessDocument):
3084         * bindings/scripts/CodeGeneratorCPP.pm:
3085         * bindings/scripts/CodeGeneratorGObject.pm:
3086         * bindings/scripts/CodeGeneratorJS.pm:
3087         * bindings/scripts/CodeGeneratorObjC.pm:
3088         * bindings/scripts/CodeGeneratorV8.pm:
3089
3090 2012-11-18  Kentaro Hara  <haraken@chromium.org>
3091
3092         [V8] Get rid of unused functions and inline redundant functions in CodeGeneratorV8.pm
3093         https://bugs.webkit.org/show_bug.cgi?id=102497
3094
3095         Reviewed by Adam Barth.
3096
3097         No tests. No change in behavior.
3098
3099         * bindings/scripts/CodeGeneratorV8.pm:
3100         (GenerateDomainSafeFunctionGetter):
3101         (GenerateNormalAttrGetter):
3102         (GenerateFunctionCallString):
3103
3104 2012-11-18  Sheriff Bot  <webkit.review.bot@gmail.com>
3105
3106         Unreviewed, rolling out r135074.
3107         http://trac.webkit.org/changeset/135074
3108         https://bugs.webkit.org/show_bug.cgi?id=102619
3109
3110         Made most layout tests crash. (Requested by rakuco on
3111         #webkit).
3112
3113         * PlatformEfl.cmake:
3114         * platform/graphics/efl/GraphicsContext3DEfl.cpp:
3115         (WebCore::GraphicsContext3D::create):
3116         (WebCore::GraphicsContext3D::GraphicsContext3D):
3117         (WebCore::GraphicsContext3D::~GraphicsContext3D):
3118         (WebCore::GraphicsContext3D::makeContextCurrent):
3119         (WebCore::GraphicsContext3D::setContextLostCallback):
3120         * platform/graphics/efl/GraphicsContext3DPrivate.cpp:
3121         (WebCore::GraphicsContext3DPrivate::GraphicsContext3DPrivate):
3122         (WebCore::GraphicsContext3DPrivate::~GraphicsContext3DPrivate):
3123         (WebCore::GraphicsContext3DPrivate::createSurface):
3124         (WebCore::GraphicsContext3DPrivate::setCurrentGLContext):
3125         (WebCore::GraphicsContext3DPrivate::platformGraphicsContext3D):
3126         (WebCore::GraphicsContext3DPrivate::makeContextCurrent):
3127         (WebCore::GraphicsContext3DPrivate::createGraphicsSurfaces):
3128         (WebCore::GraphicsContext3DPrivate::copyToGraphicsSurface):
3129         (WebCore::GraphicsContext3DPrivate::graphicsSurfaceToken):
3130         * platform/graphics/efl/GraphicsContext3DPrivate.h:
3131         (GraphicsContext3DPrivate):
3132         * platform/graphics/opengl/GLDefs.h: Removed.
3133         * platform/graphics/opengl/GLPlatformContext.cpp: Removed.
3134         * platform/graphics/opengl/GLPlatformContext.h: Removed.
3135         * platform/graphics/opengl/GLPlatformSurface.cpp: Removed.
3136         * platform/graphics/opengl/GLPlatformSurface.h: Removed.
3137         * platform/graphics/surfaces/glx/GLXContext.cpp: Removed.
3138         * platform/graphics/surfaces/glx/GLXContext.h: Removed.
3139         * platform/graphics/surfaces/glx/GLXSurface.cpp: Removed.
3140         * platform/graphics/surfaces/glx/GLXSurface.h: Removed.
3141
3142 2012-11-18  Antti Koivisto  <antti@apple.com>
3143
3144         REGRESSION(r129644): User StyleSheet not applying
3145         https://bugs.webkit.org/show_bug.cgi?id=102110
3146
3147         Reviewed by Andreas Kling.
3148
3149         Injected stylesheets added as UserStyleAuthorLevel fail to apply. r129644 implicitly assumed that
3150         such things don't exists but on Chromium addUserStyleSheet() confusingly uses them.
3151         
3152         The patch adds injected author stylesheets to DocumentStyleSheetCollection::activeStyleSheets().
3153         It also generally cleans up the code around injected and user stylesheets.
3154
3155         Tests: userscripts/user-script-and-stylesheet.html
3156                userscripts/user-stylesheet-invalidate.html
3157
3158         * css/StyleResolver.cpp:
3159         (WebCore::StyleResolver::StyleResolver):
3160         (WebCore::StyleResolver::collectRulesFromUserStyleSheets):
3161         (WebCore::collectCSSOMWrappers):
3162         * css/StyleResolver.h:
3163         (StyleResolver):
3164         * dom/Document.cpp:
3165         (WebCore::Document::setCompatibilityMode):
3166         * dom/DocumentStyleSheetCollection.cpp:
3167         (WebCore::DocumentStyleSheetCollection::DocumentStyleSheetCollection):
3168         (WebCore::DocumentStyleSheetCollection::~DocumentStyleSheetCollection):
3169         (WebCore::DocumentStyleSheetCollection::injectedUserStyleSheets):
3170         (WebCore):
3171         (WebCore::DocumentStyleSheetCollection::injectedAuthorStyleSheets):
3172         (WebCore::DocumentStyleSheetCollection::updateInjectedStyleSheetCache):
3173         (WebCore::DocumentStyleSheetCollection::invalidateInjectedStyleSheetCache):
3174         (WebCore::DocumentStyleSheetCollection::addUserSheet):
3175         (WebCore::DocumentStyleSheetCollection::updateActiveStyleSheets):
3176         (WebCore::DocumentStyleSheetCollection::reportMemoryUsage):
3177         * dom/DocumentStyleSheetCollection.h:
3178         (WebCore::DocumentStyleSheetCollection::documentUserStyleSheets):
3179         (DocumentStyleSheetCollection):
3180         * page/PageGroup.cpp:
3181         (WebCore::PageGroup::addUserStyleSheetToWorld):
3182         (WebCore::PageGroup::removeUserStyleSheetFromWorld):
3183         (WebCore::PageGroup::removeUserStyleSheetsFromWorld):
3184         (WebCore::PageGroup::removeAllUserContent):
3185         (WebCore::PageGroup::invalidatedInjectedStyleSheetCacheInAllFrames):
3186         * page/PageGroup.h:
3187         (PageGroup):
3188
3189 2012-11-18  Adam Barth  <abarth@webkit.org>
3190
3191         Unreviewed.
3192
3193         Update run-bindings-tests baselines after
3194         http://trac.webkit.org/changeset/135063
3195
3196         * bindings/scripts/test/JS/JSTestActiveDOMObject.h:
3197         (JSTestActiveDOMObjectOwner):
3198         * bindings/scripts/test/JS/JSTestCustomNamedGetter.h:
3199         (JSTestCustomNamedGetterOwner):
3200         * bindings/scripts/test/JS/JSTestEventConstructor.h:
3201         (JSTestEventConstructorOwner):
3202         * bindings/scripts/test/JS/JSTestEventTarget.h:
3203         (JSTestEventTargetOwner):
3204         * bindings/scripts/test/JS/JSTestException.h:
3205         (JSTestExceptionOwner):
3206         * bindings/scripts/test/JS/JSTestInterface.h:
3207         (JSTestInterfaceOwner):
3208         * bindings/scripts/test/JS/JSTestMediaQueryListListener.h:
3209         (JSTestMediaQueryListListenerOwner):
3210         * bindings/scripts/test/JS/JSTestNamedConstructor.h:
3211         (JSTestNamedConstructorOwner):
3212         * bindings/scripts/test/JS/JSTestObj.h:
3213         (JSTestObjOwner):
3214         * bindings/scripts/test/JS/JSTestOverloadedConstructors.h:
3215         (JSTestOverloadedConstructorsOwner):
3216         * bindings/scripts/test/JS/JSTestSerializedScriptValueInterface.h:
3217         (JSTestSerializedScriptValueInterfaceOwner):
3218
3219 2012-11-18  Simon Fraser  <simon.fraser@apple.com>
3220
3221         Make convertToLayerCoords iterative, rather than recursive
3222         https://bugs.webkit.org/show_bug.cgi?id=102618
3223
3224         Reviewed by Antti Koivisto.
3225
3226         RenderLayer::convertToLayerCoords() is a hot function on profiles.
3227         Change it to be iterative, rather than recursive, so that the
3228         bulk of the function can be inlined.
3229         
3230         Was tested with assertions against the old code during development.
3231
3232         * rendering/RenderLayer.cpp:
3233         (WebCore::accumulateOffsetTowardsAncestor):
3234         (WebCore::RenderLayer::convertToLayerCoords):
3235
3236 2012-11-18  Andreas Kling  <akling@apple.com>
3237
3238         Inline the StyledElement constructor.
3239         <http://webkit.org/b/102615>
3240
3241         Reviewed by Antti Koivisto.
3242
3243         StyledElement sits between Element and HTMLElement in the inheritance chain, and both of those are inline. 
3244         Knocks ~0.4% of samples off of the DOM/CreateNodes performance test.
3245
3246         * dom/StyledElement.cpp:
3247         * dom/StyledElement.h:
3248         (WebCore::StyledElement::StyledElement):
3249
3250 2012-11-18  Andreas Kling  <akling@apple.com>
3251
3252         HTMLMediaElement: Skip unnecessary attribute lookup in parsing of "src" attribute.
3253         <http://webkit.org/b/102614>
3254
3255         Reviewed by Anders Carlsson.
3256
3257         When parsing the "src" attribute, we don't need to look it up with fastHasAttribute()
3258         to know if it's present. If it's not present, 'value' argument will be null.
3259
3260         * html/HTMLMediaElement.cpp:
3261         (WebCore::HTMLMediaElement::parseAttribute):
3262
3263 2012-11-18  Kondapally Kalyan  <kalyan.kondapally@intel.com>
3264
3265         [EFL] Refactor GraphicsContext3DEFL.
3266         https://bugs.webkit.org/show_bug.cgi?id=101291.
3267
3268         Reviewed by Kenneth Rohde Christiansen.
3269
3270         GraphicsContext3DEfl creates GraphicsContext3DPrivate, which acts as its platform Layer.
3271         GraphicsContext3DPrivate needs to handle the following cases:
3272         1) To provide an off-screen buffer for accelerated composition.
3273         2) Render to a current context.
3274         3) To render directly to host window. (currently not supported.)
3275
3276         Before this patch Evas was used to provide us an off-screen context and buffer. GLX was used in
3277         the other supported case. Evas acts as a glue layer to provide us with appropriate
3278         GL bindings (OpenGL functions), GL context and drawable (surface/offscreenbuffer).
3279         However, primitive rendering is handled by TextureMapper and OpenGLShims is used to load the needed GL functions.
3280
3281         It would be for our advantage to be able to take in to use any optimisations/extensions
3282         provided by underlying drivers, specific to a platform (e.g. GLX_MESA_copy_sub_buffer etc.).
3283         This patch introduces an abstraction layer to make it easy to add support for any GL backend (GLX, EGL etc.)
3284         and do any platform specific optimizations as needed without complicating GraphicsContext3DPrivate class.
3285         Two new classes are added with this implementation, GLPlatformContext and GLPlatformSurface.
3286         GraphicsContext3DPrivate would create and own a GLPlatformContext and GLPlatformSurface.
3287
3288         GLPlatformContext encapsulates an OpenGL context hiding any platform specific management.
3289         It uses GL extension ARB_robustness (when available) to detect driver resets.
3290         It defines a simple interface for things that need to be handled by the context. Support
3291         for multi-threaded usage and shared context-group would be added later.
3292
3293         GLPlatformSurface encapsulates an OpenGL drawable hiding any platform specific management.
3294         It defines a simple interface for things that need to be handled by the surface.
3295         It creates an off-screen rendering area. Any GLPlatformContext (compatible with the surface)
3296         can be used to render into this off-screen area.
3297
3298         This patch also adds GLX implementation. To keep the patch to minimum EGL support would be added in another changeset.
3299
3300         * PlatformEfl.cmake:
3301         * platform/graphics/efl/GraphicsContext3DEfl.cpp:
3302         (WebCore::GraphicsContext3D::create):
3303         (WebCore::GraphicsContext3D::GraphicsContext3D):
3304         (WebCore::GraphicsContext3D::~GraphicsContext3D):
3305         (WebCore::GraphicsContext3D::makeContextCurrent):
3306         (WebCore::GraphicsContext3D::setContextLostCallback):
3307         * platform/graphics/efl/GraphicsContext3DPrivate.cpp:
3308         (WebCore::GraphicsContext3DPrivate::GraphicsContext3DPrivate):
3309         (GraphicsContext3DPrivate::~GraphicsContext3DPrivate):
3310         (GraphicsContext3DPrivate::releaseResources):
3311         (GraphicsContext3DPrivate::setContextLostCallback):
3312         (GraphicsContext3DPrivate::platformGraphicsContext3D):
3313         (GraphicsContext3DPrivate::makeContextCurrent):
3314         (GraphicsContext3DPrivate::createGraphicsSurfaces):
3315         (GraphicsContext3DPrivate::copyToGraphicsSurface):
3316         (GraphicsContext3DPrivate::graphicsSurfaceToken):
3317         * platform/graphics/efl/GraphicsContext3DPrivate.h:
3318         (GraphicsContext3DPrivate):
3319         * platform/graphics/opengl/GLDefs.h: Added.
3320         (WebCore):
3321         * platform/graphics/opengl/GLPlatformContext.cpp: Added.
3322         (WebCore):
3323         (WebCore::GLPlatformContext::createContext):
3324         (WebCore::GLPlatformContext::createOffScreenContext):
3325         (WebCore::GLPlatformContext::createCurrentContextWrapper):
3326         (WebCore::GLPlatformContext::GLPlatformContext):
3327         (WebCore::GLPlatformContext::~GLPlatformContext):
3328         (WebCore::GLPlatformContext::makeCurrent):
3329         (WebCore::GLPlatformContext::isValid):
3330         (WebCore::GLPlatformContext::releaseCurrent):
3331         (WebCore::GLPlatformContext::handle):
3332         (WebCore::GLPlatformContext::isCurrentContext):
3333         (WebCore::GLPlatformContext::initialize):
3334         (WebCore::GLPlatformContext::getCurrent):
3335         (WebCore::GLPlatformContext::platformMakeCurrent):
3336         (WebCore::GLPlatformContext::platformReleaseCurrent):
3337         (WebCore::GLPlatformContext::destroy):
3338         * platform/graphics/opengl/GLPlatformContext.h: Added.
3339         (WebCore):
3340         (GLPlatformContext):
3341         * platform/graphics/opengl/GLPlatformSurface.cpp: Added.
3342         (WebCore):
3343         (WebCore::GLPlatformSurface::createOffscreenSurface):
3344         (WebCore::GLPlatformSurface::createTransportSurface):
3345         (WebCore::GLPlatformSurface::GLPlatformSurface):
3346         (WebCore::GLPlatformSurface::~GLPlatformSurface):
3347         (WebCore::GLPlatformSurface::handle):
3348         (WebCore::GLPlatformSurface::geometry):
3349         (WebCore::GLPlatformSurface::sharedDisplay):
3350         (WebCore::GLPlatformSurface::configuration):
3351         (WebCore::GLPlatformSurface::swapBuffers):
3352         (WebCore::GLPlatformSurface::copyTexture):
3353         (WebCore::GLPlatformSurface::updateContents):
3354         (WebCore::GLPlatformSurface::setGeometry):
3355         (WebCore::GLPlatformSurface::destroy):
3356         * platform/graphics/opengl/GLPlatformSurface.h: Added.
3357         (WebCore):
3358         (GLPlatformSurface):
3359             GLXOffScreenContext creates an off-screen context. This is used when
3360             renderstyle is RenderOffscreen.
3361             It uses GL extension GLX_ARB_create_context (when available)
3362             to create a context else falls back to use glXCreateNewContext.
3363         * platform/graphics/surfaces/glx/GLXContext.cpp: Added.
3364         (WebCore):
3365         (WebCore::initializeARBExtensions):
3366         (WebCore::GLXOffScreenContext::GLXOffScreenContext):
3367         (WebCore::GLXOffScreenContext::initialize):
3368         (WebCore::GLXOffScreenContext::~GLXOffScreenContext):
3369         (WebCore::GLXOffScreenContext::isCurrentContext):
3370         (WebCore::GLXOffScreenContext::platformMakeCurrent):
3371         (WebCore::GLXOffScreenContext::platformReleaseCurrent):
3372         (WebCore::GLXOffScreenContext::freeResources):
3373         (WebCore::GLXOffScreenContext::destroy):
3374             GLXCurrentContextWrapper acts as a wrapper for current context.
3375             This is used when renderstyle is RenderToCurrentGLContext.
3376         * platform/graphics/surfaces/glx/GLXContext.h: Added.
3377         (WebCore):
3378         (GLXCurrentContextWrapper):
3379         (WebCore::GLXCurrentContextWrapper::GLXCurrentContextWrapper):
3380         (WebCore::GLXCurrentContextWrapper::~GLXCurrentContextWrapper):
3381         (GLXOffScreenContext):
3382         * platform/graphics/surfaces/glx/GLXSurface.cpp: Added.
3383         (WebCore):
3384         (WebCore::GLXSurface::GLXSurface):
3385         (WebCore::GLXSurface::~GLXSurface):
3386         (WebCore::GLXSurface::visualInfo):
3387         (WebCore::GLXSurface::xWindow):
3388         (WebCore::GLXSurface::pBufferConfiguration):
3389         (WebCore::GLXSurface::transportSurfaceConfiguration):
3390         (WebCore::GLXSurface::isXRenderExtensionSupported):
3391             GLXTransportSurface creates Window and uses it as an off-screen surface.
3392             Any GLContext that was created with respect to configuration can be used
3393             to render into this.
3394             This is used when contents of the buffer are to be provided to UI Process
3395             for display.
3396         (WebCore::GLXTransportSurface::GLXTransportSurface):
3397         (WebCore::GLXTransportSurface::~GLXTransportSurface):
3398         (WebCore::GLXTransportSurface::configuration):
3399         (WebCore::GLXTransportSurface::swapBuffers):
3400         (WebCore::GLXTransportSurface::setGeometry):
3401         (WebCore::GLXTransportSurface::initialize):
3402         (WebCore::GLXTransportSurface::destroy):
3403         (WebCore::GLXTransportSurface::freeResources):
3404            GLXPBuffer, Creates a GL surface (PBuffer) used for offscreen rendering.
3405            Any GLContext that was created with respect to configuration can be used
3406            to render into this.
3407         (WebCore::GLXPBuffer::GLXPBuffer):
3408         (WebCore::GLXPBuffer::~GLXPBuffer):
3409         (WebCore::GLXPBuffer::initialize):
3410         (WebCore::GLXPBuffer::configuration):
3411         (WebCore::GLXPBuffer::destroy):
3412         (WebCore::GLXPBuffer::freeResources):
3413         * platform/graphics/surfaces/glx/GLXSurface.h: Added.
3414         (WebCore):
3415             Creates X resources which are shared between surface and context.
3416         (SharedX11Resources):
3417         (WebCore::SharedX11Resources::create):
3418         (WebCore::SharedX11Resources::deref):
3419         (WebCore::SharedX11Resources::getXWindow):
3420         (WebCore::SharedX11Resources::display):
3421         (WebCore::SharedX11Resources::visualInfo):
3422         (WebCore::SharedX11Resources::createConfig):
3423         (WebCore::SharedX11Resources::pBufferContextConfig):
3424         (WebCore::SharedX11Resources::surfaceContextConfig):
3425         (WebCore::SharedX11Resources::isXRenderExtensionSupported):
3426         (WebCore::SharedX11Resources::SharedX11Resources):
3427         (WebCore::SharedX11Resources::~SharedX11Resources):
3428         (GLXSurface):
3429         (GLXTransportSurface):
3430         (GLXPBuffer):
3431
3432 2012-11-18  Andreas Kling  <akling@apple.com>
3433
3434         Element::parseAttribute() should take name & value as separate arguments.
3435         <http://webkit.org/b/102608>
3436
3437         Reviewed by Antti Koivisto.
3438
3439         Update the signature of parseAttribute() to take a QualifiedName/AtomicString combo instead
3440         of an Attribute. This lets us pass avoid refcount churn in Element::attributeChanged() since
3441         creating a temporary Attribute is no longer necessary.
3442
3443         This was surprisingly hot (~1%) on the DOM/CreateNodes performance test.
3444
3445         * bindings/js/ScriptEventListener.cpp:
3446         (WebCore::createAttributeEventListener):
3447         * bindings/js/ScriptEventListener.h:
3448         (WebCore):
3449         * bindings/v8/ScriptEventListener.cpp:
3450         (WebCore::createAttributeEventListener):
3451         * bindings/v8/ScriptEventListener.h:
3452         (WebCore):
3453         * dom/Element.cpp:
3454         (WebCore::Element::attributeChanged):
3455         (WebCore::Element::parseAttribute):
3456         * dom/Element.h:
3457         (Element):
3458         * dom/StyledElement.cpp:
3459         (WebCore::StyledElement::parseAttribute):
3460         * dom/StyledElement.h:
3461         (StyledElement):
3462         * html/HTMLAnchorElement.cpp:
3463         (WebCore::HTMLAnchorElement::parseAttribute):
3464         * html/HTMLAnchorElement.h:
3465         (HTMLAnchorElement):
3466         * html/HTMLAppletElement.cpp:
3467         (WebCore::HTMLAppletElement::parseAttribute):
3468         * html/HTMLAppletElement.h:
3469         (HTMLAppletElement):
3470         * html/HTMLAreaElement.cpp:
3471         (WebCore::HTMLAreaElement::parseAttribute):
3472         * html/HTMLAreaElement.h:
3473         (HTMLAreaElement):
3474         * html/HTMLBaseElement.cpp:
3475         (WebCore::HTMLBaseElement::parseAttribute):
3476         * html/HTMLBaseElement.h:
3477         (HTMLBaseElement):
3478         * html/HTMLBodyElement.cpp:
3479         (WebCore::HTMLBodyElement::parseAttribute):
3480         * html/HTMLBodyElement.h:
3481         (HTMLBodyElement):
3482         * html/HTMLButtonElement.cpp:
3483         (WebCore::HTMLButtonElement::parseAttribute):
3484         * html/HTMLButtonElement.h:
3485         * html/HTMLCanvasElement.cpp:
3486         (WebCore::HTMLCanvasElement::parseAttribute):
3487         * html/HTMLCanvasElement.h:
3488         (HTMLCanvasElement):
3489         * html/HTMLDetailsElement.cpp:
3490         (WebCore::HTMLDetailsElement::parseAttribute):
3491         * html/HTMLDetailsElement.h:
3492         (HTMLDetailsElement):
3493         * html/HTMLElement.cpp:
3494         (WebCore::HTMLElement::parseAttribute):
3495         (WebCore::HTMLElement::dirAttributeChanged):
3496         * html/HTMLElement.h:
3497         (HTMLElement):
3498         * html/HTMLEmbedElement.cpp:
3499         (WebCore::HTMLEmbedElement::parseAttribute):
3500         * html/HTMLEmbedElement.h:
3501         (HTMLEmbedElement):
3502         * html/HTMLFormControlElement.cpp:
3503         (WebCore::HTMLFormControlElement::parseAttribute):
3504         * html/HTMLFormControlElement.h:
3505         (HTMLFormControlElement):
3506         * html/HTMLFormElement.cpp:
3507         (WebCore::HTMLFormElement::parseAttribute):
3508         * html/HTMLFormElement.h:
3509         (HTMLFormElement):
3510         * html/HTMLFrameElement.cpp:
3511         (WebCore::HTMLFrameElement::parseAttribute):
3512         * html/HTMLFrameElement.h:
3513         (HTMLFrameElement):
3514         * html/HTMLFrameElementBase.cpp:
3515         (WebCore::HTMLFrameElementBase::parseAttribute):
3516         * html/HTMLFrameElementBase.h:
3517         (HTMLFrameElementBase):
3518         * html/HTMLFrameSetElement.cpp:
3519         (WebCore::HTMLFrameSetElement::parseAttribute):
3520         * html/HTMLFrameSetElement.h:
3521         (HTMLFrameSetElement):
3522         * html/HTMLIFrameElement.cpp:
3523         (WebCore::HTMLIFrameElement::parseAttribute):
3524         * html/HTMLIFrameElement.h:
3525         (HTMLIFrameElement):
3526         * html/HTMLImageElement.cpp:
3527         (WebCore::HTMLImageElement::parseAttribute):
3528         * html/HTMLImageElement.h:
3529         (HTMLImageElement):
3530         * html/HTMLInputElement.cpp:
3531         (WebCore::HTMLInputElement::parseAttribute):
3532         (WebCore::HTMLInputElement::parseMaxLengthAttribute):
3533         * html/HTMLInputElement.h:
3534         (HTMLInputElement):
3535         * html/HTMLKeygenElement.cpp:
3536         (WebCore::HTMLKeygenElement::parseAttribute):
3537         * html/HTMLKeygenElement.h:
3538         (HTMLKeygenElement):
3539         * html/HTMLLIElement.cpp:
3540         (WebCore::HTMLLIElement::parseAttribute):
3541         * html/HTMLLIElement.h:
3542         (HTMLLIElement):
3543         * html/HTMLLinkElement.cpp:
3544         (WebCore::HTMLLinkElement::parseAttribute):
3545         * html/HTMLLinkElement.h:
3546         (HTMLLinkElement):
3547         * html/HTMLMapElement.cpp:
3548         (WebCore::HTMLMapElement::parseAttribute):
3549         * html/HTMLMapElement.h:
3550         (HTMLMapElement):
3551         * html/HTMLMediaElement.cpp:
3552         (WebCore::HTMLMediaElement::parseAttribute):
3553         * html/HTMLMediaElement.h:
3554         * html/HTMLMetaElement.cpp:
3555         (WebCore::HTMLMetaElement::parseAttribute):
3556         * html/HTMLMetaElement.h:
3557         (HTMLMetaElement):
3558         * html/HTMLMeterElement.cpp:
3559         (WebCore::HTMLMeterElement::parseAttribute):
3560         * html/HTMLMeterElement.h:
3561         (HTMLMeterElement):
3562         * html/HTMLOListElement.cpp:
3563         (WebCore::HTMLOListElement::parseAttribute):
3564         * html/HTMLOListElement.h:
3565         (HTMLOListElement):
3566         * html/HTMLObjectElement.cpp:
3567         (WebCore::HTMLObjectElement::parseAttribute):
3568         * html/HTMLObjectElement.h:
3569         (HTMLObjectElement):
3570         * html/HTMLOptGroupElement.cpp:
3571         (WebCore::HTMLOptGroupElement::parseAttribute):
3572         * html/HTMLOptGroupElement.h:
3573         * html/HTMLOptionElement.cpp:
3574         (WebCore::HTMLOptionElement::parseAttribute):
3575         * html/HTMLOptionElement.h:
3576         (HTMLOptionElement):
3577         * html/HTMLOutputElement.cpp:
3578         (WebCore::HTMLOutputElement::parseAttribute):
3579         * html/HTMLOutputElement.h:
3580         (HTMLOutputElement):
3581         * html/HTMLProgressElement.cpp:
3582         (WebCore::HTMLProgressElement::parseAttribute):
3583         * html/HTMLProgressElement.h:
3584         * html/HTMLScriptElement.cpp:
3585         (WebCore::HTMLScriptElement::parseAttribute):
3586         * html/HTMLScriptElement.h:
3587         (HTMLScriptElement):
3588         * html/HTMLSelectElement.cpp:
3589         (WebCore::HTMLSelectElement::parseAttribute):
3590         (WebCore::HTMLSelectElement::parseMultipleAttribute):
3591         * html/HTMLSelectElement.h:
3592         * html/HTMLStyleElement.cpp:
3593         (WebCore::HTMLStyleElement::parseAttribute):
3594         * html/HTMLStyleElement.h:
3595         (HTMLStyleElement):
3596         * html/HTMLTableCellElement.cpp:
3597         (WebCore::HTMLTableCellElement::parseAttribute):
3598         * html/HTMLTableCellElement.h:
3599         (HTMLTableCellElement):
3600         * html/HTMLTableColElement.cpp:
3601         (WebCore::HTMLTableColElement::parseAttribute):
3602         * html/HTMLTableColElement.h:
3603         (HTMLTableColElement):
3604         * html/HTMLTableElement.cpp:
3605         (WebCore::HTMLTableElement::parseAttribute):
3606         * html/HTMLTableElement.h:
3607         (HTMLTableElement):
3608         * html/HTMLTextAreaElement.cpp:
3609         (WebCore::HTMLTextAreaElement::parseAttribute):
3610         * html/HTMLTextAreaElement.h:
3611         (HTMLTextAreaElement):
3612         * html/HTMLTextFormControlElement.cpp:
3613         (WebCore::HTMLTextFormControlElement::parseAttribute):
3614         * html/HTMLTextFormControlElement.h:
3615         (HTMLTextFormControlElement):
3616         * html/HTMLTrackElement.cpp:
3617         (WebCore::HTMLTrackElement::parseAttribute):
3618         * html/HTMLTrackElement.h:
3619         (HTMLTrackElement):
3620         * html/HTMLVideoElement.cpp:
3621         (WebCore::HTMLVideoElement::parseAttribute):
3622         * html/HTMLVideoElement.h:
3623         (HTMLVideoElement):
3624         * html/shadow/HTMLContentElement.cpp:
3625         (WebCore::HTMLContentElement::parseAttribute):
3626         * html/shadow/HTMLContentElement.h:
3627         (HTMLContentElement):
3628         * mathml/MathMLElement.cpp:
3629         (WebCore::MathMLElement::parseAttribute):
3630         * mathml/MathMLElement.h:
3631         (MathMLElement):
3632         * svg/SVGAElement.cpp:
3633         (WebCore::SVGAElement::parseAttribute):
3634         * svg/SVGAElement.h:
3635         (SVGAElement):
3636         * svg/SVGAnimateMotionElement.cpp:
3637         (WebCore::SVGAnimateMotionElement::parseAttribute):
3638         * svg/SVGAnimateMotionElement.h:
3639         (SVGAnimateMotionElement):
3640         * svg/SVGAnimateTransformElement.cpp:
3641         (WebCore::SVGAnimateTransformElement::parseAttribute):
3642         * svg/SVGAnimateTransformElement.h:
3643         (SVGAnimateTransformElement):
3644         * svg/SVGAnimationElement.cpp:
3645         (WebCore::SVGAnimationElement::parseAttribute):
3646         * svg/SVGAnimationElement.h:
3647         (SVGAnimationElement):
3648         * svg/SVGCircleElement.cpp:
3649         (WebCore::SVGCircleElement::parseAttribute):
3650         * svg/SVGCircleElement.h:
3651         (SVGCircleElement):
3652         * svg/SVGClipPathElement.cpp:
3653         (WebCore::SVGClipPathElement::parseAttribute):
3654         * svg/SVGClipPathElement.h:
3655         (SVGClipPathElement):
3656         * svg/SVGComponentTransferFunctionElement.cpp:
3657         (WebCore::SVGComponentTransferFunctionElement::parseAttribute):
3658         * svg/SVGComponentTransferFunctionElement.h:
3659         (SVGComponentTransferFunctionElement):
3660         * svg/SVGCursorElement.cpp:
3661         (WebCore::SVGCursorElement::parseAttribute):
3662         * svg/SVGCursorElement.h:
3663         (SVGCursorElement):
3664         * svg/SVGElement.cpp:
3665         (WebCore::SVGElement::reportAttributeParsingError):
3666         (WebCore::SVGElement::parseAttribute):
3667         * svg/SVGElement.h:
3668         (SVGElement):
3669         * svg/SVGEllipseElement.cpp:
3670         (WebCore::SVGEllipseElement::parseAttribute):
3671         * svg/SVGEllipseElement.h:
3672         (SVGEllipseElement):
3673         * svg/SVGExternalResourcesRequired.cpp:
3674         (WebCore::SVGExternalResourcesRequired::parseAttribute):
3675         * svg/SVGExternalResourcesRequired.h:
3676         (SVGExternalResourcesRequired):
3677         * svg/SVGFEBlendElement.cpp:
3678         (WebCore::SVGFEBlendElement::parseAttribute):
3679         * svg/SVGFEBlendElement.h:
3680         (SVGFEBlendElement):
3681         * svg/SVGFEColorMatrixElement.cpp:
3682         (WebCore::SVGFEColorMatrixElement::parseAttribute):
3683         * svg/SVGFEColorMatrixElement.h:
3684         (SVGFEColorMatrixElement):
3685         * svg/SVGFEComponentTransferElement.cpp:
3686         (WebCore::SVGFEComponentTransferElement::parseAttribute):
3687         * svg/SVGFEComponentTransferElement.h:
3688         (SVGFEComponentTransferElement):
3689         * svg/SVGFECompositeElement.cpp:
3690         (WebCore::SVGFECompositeElement::parseAttribute):
3691         * svg/SVGFECompositeElement.h:
3692         (SVGFECompositeElement):
3693         * svg/SVGFEConvolveMatrixElement.cpp:
3694         (WebCore::SVGFEConvolveMatrixElement::parseAttribute):
3695         * svg/SVGFEConvolveMatrixElement.h:
3696         (SVGFEConvolveMatrixElement):
3697         * svg/SVGFEDiffuseLightingElement.cpp:
3698         (WebCore::SVGFEDiffuseLightingElement::parseAttribute):
3699         * svg/SVGFEDiffuseLightingElement.h:
3700         (SVGFEDiffuseLightingElement):
3701         * svg/SVGFEDisplacementMapElement.cpp:
3702         (WebCore::SVGFEDisplacementMapElement::parseAttribute):
3703         * svg/SVGFEDisplacementMapElement.h:
3704         (SVGFEDisplacementMapElement):
3705         * svg/SVGFEDropShadowElement.cpp:
3706         (WebCore::SVGFEDropShadowElement::parseAttribute):
3707         * svg/SVGFEDropShadowElement.h:
3708         (SVGFEDropShadowElement):
3709         * svg/SVGFEGaussianBlurElement.cpp:
3710         (WebCore::SVGFEGaussianBlurElement::parseAttribute):
3711         * svg/SVGFEGaussianBlurElement.h:
3712         (SVGFEGaussianBlurElement):
3713         * svg/SVGFEImageElement.cpp:
3714         (WebCore::SVGFEImageElement::parseAttribute):
3715         * svg/SVGFEImageElement.h:
3716         (SVGFEImageElement):
3717         * svg/SVGFELightElement.cpp:
3718         (WebCore::SVGFELightElement::parseAttribute):
3719         * svg/SVGFELightElement.h:
3720         (SVGFELightElement):
3721         * svg/SVGFEMergeNodeElement.cpp:
3722         (WebCore::SVGFEMergeNodeElement::parseAttribute):
3723         * svg/SVGFEMergeNodeElement.h:
3724         (SVGFEMergeNodeElement):
3725         * svg/SVGFEMorphologyElement.cpp:
3726         (WebCore::SVGFEMorphologyElement::parseAttribute):
3727         * svg/SVGFEMorphologyElement.h:
3728         (SVGFEMorphologyElement):
3729         * svg/SVGFEOffsetElement.cpp:
3730         (WebCore::SVGFEOffsetElement::parseAttribute):
3731         * svg/SVGFEOffsetElement.h:
3732         (SVGFEOffsetElement):
3733         * svg/SVGFESpecularLightingElement.cpp:
3734         (WebCore::SVGFESpecularLightingElement::parseAttribute):
3735         * svg/SVGFESpecularLightingElement.h:
3736         (SVGFESpecularLightingElement):
3737         * svg/SVGFETileElement.cpp:
3738         (WebCore::SVGFETileElement::parseAttribute):
3739         * svg/SVGFETileElement.h:
3740         (SVGFETileElement):
3741         * svg/SVGFETurbulenceElement.cpp:
3742         (WebCore::SVGFETurbulenceElement::parseAttribute):
3743         * svg/SVGFETurbulenceElement.h:
3744         (SVGFETurbulenceElement):
3745         * svg/SVGFilterElement.cpp:
3746         (WebCore::SVGFilterElement::parseAttribute):
3747         * svg/SVGFilterElement.h:
3748         (SVGFilterElement):
3749         * svg/SVGFilterPrimitiveStandardAttributes.cpp:
3750         (WebCore::SVGFilterPrimitiveStandardAttributes::parseAttribute):
3751         * svg/SVGFilterPrimitiveStandardAttributes.h:
3752         (SVGFilterPrimitiveStandardAttributes):
3753         * svg/SVGFitToViewBox.h:
3754         (WebCore::SVGFitToViewBox::parseAttribute):
3755         * svg/SVGFontFaceElement.cpp:
3756         (WebCore::SVGFontFaceElement::parseAttribute):
3757         * svg/SVGFontFaceElement.h:
3758         (SVGFontFaceElement):
3759         * svg/SVGFontFaceUriElement.cpp:
3760         (WebCore::SVGFontFaceUriElement::parseAttribute):
3761         * svg/SVGFontFaceUriElement.h:
3762         (SVGFontFaceUriElement):
3763         * svg/SVGForeignObjectElement.cpp:
3764         (WebCore::SVGForeignObjectElement::parseAttribute):
3765         * svg/SVGForeignObjectElement.h:
3766         (SVGForeignObjectElement):
3767         * svg/SVGGElement.cpp:
3768         (WebCore::SVGGElement::parseAttribute):
3769         * svg/SVGGElement.h:
3770         (SVGGElement):
3771         * svg/SVGGlyphElement.cpp:
3772         (WebCore::SVGGlyphElement::parseAttribute):
3773         * svg/SVGGlyphElement.h:
3774         (SVGGlyphElement):
3775         * svg/SVGGlyphRefElement.cpp:
3776         (WebCore::SVGGlyphRefElement::parseAttribute):
3777         * svg/SVGGlyphRefElement.h:
3778         * svg/SVGGradientElement.cpp:
3779         (WebCore::SVGGradientElement::parseAttribute):
3780         * svg/SVGGradientElement.h:
3781         * svg/SVGImageElement.cpp:
3782         (WebCore::SVGImageElement::parseAttribute):
3783         * svg/SVGImageElement.h:
3784         (SVGImageElement):
3785         * svg/SVGLangSpace.cpp:
3786         (WebCore::SVGLangSpace::parseAttribute):
3787         * svg/SVGLangSpace.h:
3788         (SVGLangSpace):
3789         * svg/SVGLineElement.cpp:
3790         (WebCore::SVGLineElement::parseAttribute):
3791         * svg/SVGLineElement.h:
3792         (SVGLineElement):
3793         * svg/SVGLinearGradientElement.cpp:
3794         (WebCore::SVGLinearGradientElement::parseAttribute):
3795         * svg/SVGLinearGradientElement.h:
3796         (SVGLinearGradientElement):
3797         * svg/SVGMPathElement.cpp:
3798         (WebCore::SVGMPathElement::parseAttribute):
3799         * svg/SVGMPathElement.h:
3800         (SVGMPathElement):
3801         * svg/SVGMarkerElement.cpp:
3802         (WebCore::SVGMarkerElement::parseAttribute):
3803         * svg/SVGMarkerElement.h:
3804         (SVGMarkerElement):
3805         * svg/SVGMaskElement.cpp:
3806         (WebCore::SVGMaskElement::parseAttribute):
3807         * svg/SVGMaskElement.h:
3808         (SVGMaskElement):
3809         * svg/SVGPathElement.cpp:
3810         (WebCore::SVGPathElement::parseAttribute):
3811         * svg/SVGPathElement.h:
3812         (SVGPathElement):
3813         * svg/SVGPatternElement.cpp:
3814         (WebCore::SVGPatternElement::parseAttribute):
3815         * svg/SVGPatternElement.h:
3816         (SVGPatternElement):
3817         * svg/SVGPolyElement.cpp:
3818         (WebCore::SVGPolyElement::parseAttribute):
3819         * svg/SVGPolyElement.h:
3820         (SVGPolyElement):
3821         * svg/SVGRadialGradientElement.cpp:
3822         (WebCore::SVGRadialGradientElement::parseAttribute):
3823         * svg/SVGRadialGradientElement.h:
3824         (SVGRadialGradientElement):
3825         * svg/SVGRectElement.cpp:
3826         (WebCore::SVGRectElement::parseAttribute):
3827         * svg/SVGRectElement.h:
3828         (SVGRectElement):
3829         * svg/SVGSVGElement.cpp:
3830         (WebCore::SVGSVGElement::parseAttribute):
3831         * svg/SVGSVGElement.h:
3832         (SVGSVGElement):
3833         * svg/SVGScriptElement.cpp:
3834         (WebCore::SVGScriptElement::parseAttribute):
3835         * svg/SVGScriptElement.h:
3836         (SVGScriptElement):
3837         * svg/SVGStopElement.cpp:
3838         (WebCore::SVGStopElement::parseAttribute):
3839         * svg/SVGStopElement.h:
3840         (SVGStopElement):
3841         * svg/SVGStyleElement.cpp:
3842         (WebCore::SVGStyleElement::parseAttribute):
3843         * svg/SVGStyleElement.h:
3844         (SVGStyleElement):
3845         * svg/SVGStyledElement.cpp:
3846         (WebCore::SVGStyledElement::parseAttribute):
3847         * svg/SVGStyledElement.h:
3848         (SVGStyledElement):
3849         * svg/SVGStyledTransformableElement.cpp:
3850         (WebCore::SVGStyledTransformableElement::parseAttribute):
3851         * svg/SVGStyledTransformableElement.h:
3852         (SVGStyledTransformableElement):
3853         * svg/SVGSymbolElement.cpp:
3854         (WebCore::SVGSymbolElement::parseAttribute):
3855         * svg/SVGSymbolElement.h:
3856         (SVGSymbolElement):
3857         * svg/SVGTRefElement.cpp:
3858         (WebCore::SVGTRefElement::parseAttribute):
3859         * svg/SVGTRefElement.h:
3860         (SVGTRefElement):
3861         * svg/SVGTests.cpp:
3862         (WebCore::SVGTests::parseAttribute):
3863         * svg/SVGTests.h:
3864         (SVGTests):
3865         * svg/SVGTextContentElement.cpp:
3866         (WebCore::SVGTextContentElement::parseAttribute):
3867         * svg/SVGTextContentElement.h:
3868         (SVGTextContentElement):
3869         * svg/SVGTextElement.cpp:
3870         (WebCore::SVGTextElement::parseAttribute):
3871         * svg/SVGTextElement.h:
3872         (SVGTextElement):
3873         * svg/SVGTextPathElement.cpp:
3874         (WebCore::SVGTextPathElement::parseAttribute):
3875         * svg/SVGTextPathElement.h:
3876         * svg/SVGTextPositioningElement.cpp:
3877         (WebCore::SVGTextPositioningElement::parseAttribute):
3878         * svg/SVGTextPositioningElement.h:
3879         (SVGTextPositioningElement):
3880         * svg/SVGURIReference.cpp:
3881         (WebCore::SVGURIReference::parseAttribute):
3882         * svg/SVGURIReference.h:
3883         (SVGURIReference):
3884         * svg/SVGUseElement.cpp:
3885         (WebCore::SVGUseElement::parseAttribute):
3886         * svg/SVGUseElement.h:
3887         (SVGUseElement):
3888         * svg/SVGViewElement.cpp:
3889         (WebCore::SVGViewElement::parseAttribute):
3890         * svg/SVGViewElement.h:
3891         (SVGViewElement):
3892         * svg/SVGZoomAndPan.h:
3893         (WebCore::SVGZoomAndPan::parseAttribute):
3894         * svg/animation/SVGSMILElement.cpp:
3895         (WebCore::SVGSMILElement::parseAttribute):
3896         * svg/animation/SVGSMILElement.h:
3897         (SVGSMILElement):
3898
3899 2012-11-18  Andreas Kling  <akling@apple.com>
3900
3901         StyleResolver: No need to compare "cellpadding" attributes when evaluating style sharing candidates.
3902         <http://webkit.org/b/102596>
3903
3904         Reviewed by Antti Koivisto.
3905
3906         Differences in the cellpadding attribute is caught by comparing additionalPresentationAttributeStyle()
3907         later on in canShareStyleWithElement() and we shouldn't waste time on comparing them.
3908
3909         * css/StyleResolver.cpp:
3910         (WebCore::haveIdenticalStyleAffectingAttributes):
3911
3912 2012-11-17  Jon Lee  <jonlee@apple.com>
3913
3914         Simulated mouse events should return an accurate offset
3915         https://bugs.webkit.org/show_bug.cgi?id=102606
3916         <rdar://problem/12725627>
3917
3918         Reviewed by Brady Eidson.
3919
3920         A check to see if the event is simulated prior to calculating the offset has existed for a
3921         long time (since at least r14916). Back then the check was needed because the offset was
3922         incrementally adjusted when the target was assigned (through
3923         MouseRelatedEvent::receivedTarget()).
3924
3925         Since r82225, we started calculating the offset only when needed, and calculating the offset
3926         from scratch rather than incrementally adjusting it. Since we recalculate from scratch,
3927         the isSimulated check is irrelevant, and we should remove it.
3928
3929         Tests are not possible because all uses of simulated mouse events provide no underlying
3930         event, so the offset is never recalculated.
3931
3932         * dom/MouseRelatedEvent.cpp:
3933         (WebCore::MouseRelatedEvent::computeRelativePosition): Remove the m_isSimulated check.
3934
3935 2012-11-17  Simon Fraser  <simon.fraser@apple.com>
3936
3937         Don't say there are dirty overlay scrollbars when they are clipped out
3938         https://bugs.webkit.org/show_bug.cgi?id=102609
3939
3940         Reviewed by Brady Eidson.
3941
3942         Painting overlay scrollbars involves a second painting pass over the entire
3943         RenderLayer subtree for a compositing layer, which can be very expensive.
3944         
3945         Avoid this when possible by detecting when overflow controls are not in
3946         the damage rect.
3947
3948         * rendering/RenderLayer.cpp:
3949         (WebCore::RenderLayer::rectForHorizontalScrollbar): Compute a local rect
3950         for the horizontal scrollbar.
3951         (WebCore::RenderLayer::rectForVerticalScrollbar): Compute a local rect
3952         for the vertical scrollbar.
3953         (WebCore::RenderLayer::positionOverflowControls): Use rectForHorizontalScrollbar()
3954         and rectForVerticalScrollbar().
3955         (WebCore::RenderLayer::overflowControlsIntersectRect): Return true if any
3956         of the present overflow controls intersect the given local rect.
3957         (WebCore::RenderLayer::paintOverflowControls): Bail if the damage rect
3958         doesn't intersect any of the overflow controls.
3959         * rendering/RenderLayer.h:
3960         (RenderLayer):
3961
3962 2012-11-17  Adam Barth  <abarth@webkit.org>
3963
3964         REGRESSION (r133633): ASSERTION FAILED: m_wrapper || !m_jsFunction
3965         https://bugs.webkit.org/show_bug.cgi?id=101428
3966
3967         Reviewed by Geoffrey Garen.
3968
3969         JSNodeOwner has some smarts that wrappers of subclasses of Node need to
3970         call during garbage collection. This patch teaches subclasses of Node
3971         to have their JSMumbleOwner objects inherit from JSNodeOwner.
3972
3973         The immediate benefit of this patch is that we correctly avoid
3974         collecting wrappers for HTMLAudioElements when they are reachable from
3975         the DOM.
3976
3977         * bindings/scripts/CodeGeneratorJS.pm:
3978         (GenerateHeader):
3979         (GenerateImplementation):
3980
3981 2012-11-17  Elliott Sprehn  <esprehn@chromium.org>
3982
3983         Expose JSObject::removeDirect and PrivateName to WebCore
3984         https://bugs.webkit.org/show_bug.cgi?id=102546
3985
3986         Reviewed by Geoffrey Garen.
3987
3988         Add forwarding header for PrivateName, so JSDependentRetained works.
3989
3990         No new tests, just adding headers.
3991
3992         * ForwardingHeaders/runtime/PrivateName.h: Added.
3993
3994 2012-11-17  Simon Fraser  <simon.fraser@apple.com>
3995
3996         Reduce the crazy number of parameters to RenderLayer clip-rect functions
3997         https://bugs.webkit.org/show_bug.cgi?id=102604
3998
3999         Reviewed by Dan Bernstein.
4000
4001         Many of the RenderLayer member functions related to clip rect computation
4002         took a long list of similar parameters. Gather these into a struct, ClipRectsContext,
4003         that we pass to these functions
4004         
4005         No functional changes.
4006
4007         * rendering/RenderLayer.cpp:
4008         (WebCore::RenderLayer::paintLayer):
4009         (WebCore::RenderLayer::paintLayerContents):
4010         (WebCore::RenderLayer::hitTestLayer):
4011         (WebCore::RenderLayer::updateClipRects):
4012         (WebCore::RenderLayer::calculateClipRects):
4013         (WebCore::RenderLayer::parentClipRects):
4014         (WebCore::RenderLayer::backgroundClipRect):
4015         (WebCore::RenderLayer::calculateRects):
4016         (WebCore::RenderLayer::childrenClipRect):
4017         (WebCore::RenderLayer::selfClipRect):
4018         (WebCore::RenderLayer::localClipRect):
4019         * rendering/RenderLayer.h:
4020         (WebCore::RenderLayer::ClipRectsContext::ClipRectsContext):
4021         (ClipRectsContext):
4022         (RenderLayer):
4023         (WebCore::RenderLayer::clipRects):
4024         * rendering/RenderLayerBacking.cpp:
4025         (WebCore::RenderLayerBacking::updateCompositedBounds):
4026         (WebCore::RenderLayerBacking::updateGraphicsLayerGeometry):
4027         * rendering/RenderLayerCompositor.cpp:
4028         (WebCore::RenderLayerCompositor::addToOverlapMap):
4029         (WebCore::RenderLayerCompositor::clippedByAncestor):
4030         * rendering/RenderTreeAsText.cpp:
4031         (WebCore::writeLayers):
4032
4033 2012-11-17  Simon Fraser  <simon.fraser@apple.com>
4034
4035         Simplify bounds computation for the RenderView's layer
4036         https://bugs.webkit.org/show_bug.cgi?id=102597
4037
4038         Reviewed by Anders Carlsson.
4039
4040         Computing the bounds of the main layer (that of the RenderView) used to do
4041         a full RenderLayer walk, taking the union of the bounds of all the sublayers,
4042         which is very expensive on large pages.
4043         
4044         For the RenderView we can avoid that entirely and just use the RenderView's
4045         document rect. Since page scaling happens as a transform on this layer,
4046         we want the unscaled document rect.
4047
4048         * rendering/RenderLayer.cpp:
4049         (WebCore::RenderLayer::calculateLayerBounds):
4050
4051 2012-11-17  Eric Seidel  <eric@webkit.org>
4052
4053         Add ScriptWrappable to more WebCore classes which are commonly JS-wrapped
4054         https://bugs.webkit.org/show_bug.cgi?id=102601
4055
4056         Reviewed by Adam Barth.
4057
4058         From my investigations all of these classes exist only to be exposed
4059         to the web (via JavaScript) and are not used internally by WebCore.
4060         I beleive all of them always have wrappers.
4061         These were found using this code:
4062         https://bugs.webkit.org/show_bug.cgi?id=102539#c2
4063
4064         Geolocation -- navigator.geolocation
4065         WebKitCSSMatrix -- represent matrixes in JS through various APIs
4066         DOMStringMap, NamedNodeMap, NodeIterator, TreeWalker -- exclusively for the DOM API
4067         Blob, FileList - used by the File, Clipboard and XHR, also exclusively as API
4068         ValidityState -- formControl.validity
4069         CanvasRenderingContext -- canvas.getContext()
4070         DOMApplicationCache -- window.appcache
4071         Screen -- window.screen
4072         DOMMimeTypeArray -- navigator.mimetypes
4073         DOMPlugin -- navigator.plugins[0]
4074         DOMPluginArray -- navigator.plugins
4075
4076         * Modules/geolocation/Geolocation.h:
4077         * css/WebKitCSSMatrix.h:
4078         * dom/DOMStringMap.h:
4079         * dom/NamedNodeMap.h:
4080         * dom/NodeIterator.h:
4081         * dom/TreeWalker.h:
4082         * fileapi/Blob.h:
4083         * fileapi/FileList.h: (had to un-indent to make check-webkit-style happy)
4084         (FileList):
4085         (WebCore::FileList::create):
4086         (WebCore::FileList::length):
4087         (WebCore::FileList::isEmpty):
4088         (WebCore::FileList::clear):
4089         (WebCore::FileList::append):
4090         * html/ValidityState.h:
4091         * html/canvas/CanvasRenderingContext.h:
4092         * loader/appcache/DOMApplicationCache.h:
4093         * page/Screen.h:
4094         * platform/graphics/wince/MediaPlayerProxy.cpp:
4095         (WebCore::WebMediaPlayerProxy::initEngine): This code was wrong, fixed to use internal APIs.
4096         * plugins/DOMMimeTypeArray.h:
4097         * plugins/DOMPlugin.h:
4098         * plugins/DOMPluginArray.h:
4099
4100 2012-11-17  Alexandru Chiculita  <achicu@adobe.com>
4101
4102         [Texmap][CSS Shaders] Reuse the precompiled shader for custom filters in TextureMapperGL
4103         https://bugs.webkit.org/show_bug.cgi?id=101801
4104
4105         Reviewed by Noam Rosenthal.
4106
4107         Added a HashMap in TextureMapperGL to store the precompiled versions of the shaders.
4108         Also added a new API on TextureMapper that receives a notification when the shader
4109         is no longer needed.
4110
4111         No new tests, the code is tested by existing tests.
4112
4113         * platform/graphics/filters/CustomFilterOperation.h:
4114         (WebCore::CustomFilterOperation::setProgram):
4115         (CustomFilterOperation): Made the constructor protected, so that we can overwrite the class in WK2.
4116         * platform/graphics/filters/CustomFilterValidatedProgram.cpp:
4117         (WebCore::CustomFilterValidatedProgram::validatedProgramInfo):
4118         (WebCore):
4119         * platform/graphics/filters/CustomFilterValidatedProgram.h:
4120         (CustomFilterValidatedProgram):
4121         * platform/graphics/texmap/TextureMapper.h:
4122         (WebCore):
4123         (TextureMapper):
4124         (WebCore::TextureMapper::removeCachedCustomFilterProgram):
4125         Function to be called by the platform code, when the shader is no longer
4126         needed. This implementation is empty and overridden in TextureMapperGL.
4127         * platform/graphics/texmap/TextureMapperGL.cpp:
4128         (WebCore::TextureMapperGL::removeCachedCustomFilterProgram):
4129         Removes the compiled shader from the cache. This is called from WK2 when the compiled shader
4130         is no longer needed.
4131         (WebCore):
4132         (WebCore::TextureMapperGL::drawUsingCustomFilter): The first time it uses a new
4133         shader it will cache the compiled version until removeCachedCustomFilterProgram is called.
4134         * platform/graphics/texmap/TextureMapperGL.h:
4135         (WebCore):
4136         (TextureMapperGL):
4137
4138 2012-11-17  Brady Eidson  <beidson@apple.com>
4139
4140         Add an integer identifier field to AuthenticationChallengeBase.
4141         https://bugs.webkit.org/show_bug.cgi?id=102593
4142
4143         Reviewed by Darin Adler.
4144
4145         This is to support linking two different challenges that might not compare as equal but that 
4146         represent the same logical authentication challenge.
4147
4148         One example is in an IPC environment where the platform challenge can only exist in one process.
4149
4150         No new tests (Platform support, no effect in tested configs).
4151
4152         * WebCore.exp.in:
4153
4154         * platform/network/AuthenticationChallengeBase.cpp:
4155         (WebCore::AuthenticationChallengeBase::AuthenticationChallengeBase):
4156         * platform/network/AuthenticationChallengeBase.h:
4157         (WebCore::AuthenticationChallengeBase::identifier):
4158
4159         * platform/network/cf/AuthenticationChallenge.h:
4160         * platform/network/mac/AuthenticationMac.mm:
4161         (WebCore::generateUniqueIdentifier):
4162         (WebCore::AuthenticationChallenge::AuthenticationChallenge): Generate a new unique identifier whenever
4163           constructing a challenge from an NSURLAuthenticationChallenge.
4164
4165         * platform/network/cf/AuthenticationCF.cpp:
4166         (WebCore::generateUniqueIdentifier):
4167         (WebCore::AuthenticationChallenge::AuthenticationChallenge): Generate a new unique identifier whenever
4168           constructing a challenge from a CFURLAuthChallengeRef.
4169
4170         Implement the new constructor form for ports relevant to WebKit2:
4171         * platform/network/qt/AuthenticationChallenge.h:
4172         (WebCore::AuthenticationChallenge::AuthenticationChallenge):
4173         * platform/network/soup/AuthenticationChallenge.h:
4174         (WebCore::AuthenticationChallenge::AuthenticationChallenge):
4175         * platform/network/win/AuthenticationChallenge.h:
4176         (WebCore::AuthenticationChallenge::AuthenticationChallenge):
4177
4178 2012-11-17  Simon Fraser  <simon.fraser@apple.com>
4179
4180         Dump the tile cache extent in layout tests
4181         https://bugs.webkit.org/show_bug.cgi?id=102600
4182
4183         Reviewed by Anders Carlsson.
4184
4185         When dumping tiled layer stats in layout tests, also dump the extent
4186         of the tile grid. This will allow us to detect issues related
4187         to zooming, which is not possible with the existing tile coverage rect,
4188         which is dumped in layer (not tile) coordinates.
4189
4190         * platform/graphics/TiledBacking.h: Added tileGridExtent().
4191         * platform/graphics/ca/GraphicsLayerCA.cpp:
4192         (WebCore::GraphicsLayerCA::dumpAdditionalProperties): Dump the tile grid extent.
4193         * platform/graphics/ca/mac/TileCache.h: tileCoverageRect() should be OVERRIDE.
4194         * platform/graphics/ca/mac/TileCache.mm:
4195         (WebCore::TileCache::getTileIndexRangeForRect):
4196         (WebCore::TileCache::tileGridExtent): Return a rect with the size of
4197         the grid as top,left width,height.
4198
4199 2012-11-17  Andreas Kling  <akling@apple.com>
4200
4201         Avoid full style recalc when 'style' attribute changes.
4202         <http://webkit.org/b/78718>
4203
4204         Reviewed by Anders Carlsson.
4205
4206         Use setNeedsStyleRecalc(InlineStyleChange) when the 'style' attribute changes
4207         to reduce the amount of work done in recalcStyle().
4208
4209         * dom/StyledElement.cpp:
4210         (WebCore::StyledElement::styleAttributeChanged):
4211
4212 2012-11-17  Li Yin  <li.yin@intel.com>
4213
4214         Remove coneGain and distanceGain attributes from PannerNode.idl
4215         https://bugs.webkit.org/show_bug.cgi?id=102343
4216
4217         Reviewed by Chris Rogers.
4218
4219         Removing .coneGain and .distanceGain as publicly accessible values,
4220         since normally they only need to be calculated internally.
4221
4222         No changes to tests, since these attributes were not tested and are being removed.
4223
4224         * Modules/webaudio/PannerNode.idl:
4225
4226 2012-11-17  Balazs Kelemen  <kbalazs@webkit.org>
4227
4228         [Coordinated Graphics] Resumed animations leave an obsolate GraphicsLayerAnimation behind
4229         https://bugs.webkit.org/show_bug.cgi?id=102530
4230
4231         Reviewed by Noam Rosenthal.
4232
4233         GraphicsLayer::addAnimation is called no only when a new animation is created
4234         but also when resuming a paused animation. If this is a resumed animation we
4235         should remove the obsolate GraphicsLayerAnimation object.
4236
4237         Tested by animations tests.
4238
4239         * platform/graphics/GraphicsLayerAnimation.cpp:
4240         (WebCore::GraphicsLayerAnimations::add):
4241
4242 2012-11-17  Martin Robinson  <mrobinson@igalia.com>
4243
4244         [Soup] CredentialStorage should only be used for HTTP-family requests
4245         https://bugs.webkit.org/show_bug.cgi?id=102582
4246
4247         Reviewed by Gustavo Noronha Silva.
4248
4249         Do not use CredentialStorage when handling non-HTTP family requests. CredentialStorage
4250         only expects to handle requests in the HTTP family.
4251
4252         No new tests. This is covered by existing tests.
4253
4254         * platform/network/ResourceHandle.h:
4255         (ResourceHandle): Add a shouldUseCredentialStorage helper to ResourceHandle. This
4256         helper returns false when firstRequest() is a non-HTTP family request.
4257         * platform/network/soup/ResourceHandleSoup.cpp:
4258         (WebCore::applyAuthenticationToRequest): Use the new helper.
4259         (WebCore::createSoupRequestAndMessageForHandle): Ditto.
4260         (WebCore::ResourceHandle::start): Ditto.
4261         (WebCore::ResourceHandle::shouldUseCredentialStorage): Ditto.
4262         (WebCore::ResourceHandle::didReceiveAuthenticationChallenge): Ditto.
4263         (WebCore::ResourceHandle::receivedCredential): Ditto.
4264
4265 2012-11-16  Patrick Gansterer  <paroga@webkit.org>
4266
4267         Build fix for !USE(ACCELERATED_COMPOSITING) after r135029.
4268
4269         * rendering/RenderLayer.cpp:
4270         (WebCore::RenderLayer::paintOverflowControls):
4271
4272 2012-11-16  Benjamin Poulain  <bpoulain@apple.com>
4273
4274         Improve the performance of rect transform
4275         https://bugs.webkit.org/show_bug.cgi?id=101828
4276
4277         Reviewed by Simon Fraser.
4278
4279         Mapping a rect and a quad by a transform is a common operation because
4280         we use it to recompute the repaint rect, overflow rect, etc.
4281
4282         The way it was done, is by transforming through mapRect()->mapQuad()->4 times mapPoint().
4283         Each of those functions tests isIdentityOrTranslation() which has to read the whole matrix
4284         and perform many comparison.
4285         Because of that, the simple mapping of a rect was loading and checking the matrix 5 times
4286         too many.
4287
4288         This patch just cut the intermediary calls.
4289
4290         On ARM, putting the operation together also has the advantage of loading the matrix
4291         only once in registers and reusing it for every point.
4292
4293         * platform/graphics/transforms/TransformationMatrix.cpp:
4294         (WebCore::TransformationMatrix::mapPoint):
4295         (WebCore::TransformationMatrix::mapRect):
4296         * platform/graphics/transforms/TransformationMatrix.h:
4297         (WebCore):
4298         (WebCore::TransformationMatrix::mapPointImpl): New convenience function to perform the
4299         point project without doing isIdentityOrTranslation().
4300
4301 2012-11-16  Simon Fraser  <simon.fraser@apple.com>
4302
4303         Avoid calling the virtual isBlockFlow() in RenderBox::computeRectForRepaint()
4304         https://bugs.webkit.org/show_bug.cgi?id=102581
4305
4306         Reviewed by Dan Bernstein.
4307
4308         isBlockFlow() is a virtual function call, and shows up in profiles of
4309         Facebook pages as called from RenderBox::computeRectForRepaint().
4310         
4311         It's faster to do the hasColumns() bit-check first. Also replace
4312         a call to layer() with the hasLayer() bit-check.        
4313
4314         * rendering/RenderBox.cpp:
4315         (WebCore::RenderBox::computeRectForRepaint):
4316
4317 2012-11-16  Sheriff Bot  <webkit.review.bot@gmail.com>
4318
4319         Unreviewed, rolling out r134817.
4320         http://trac.webkit.org/changeset/134817
4321         https://bugs.webkit.org/show_bug.cgi?id=102576
4322
4323         Broke iframes and causing tons of crashes on ClusterFuzz
4324         (Requested by inferno-sec on #webkit).
4325
4326         * dom/ContainerNode.cpp:
4327         (WebCore::willRemoveChildren):
4328         * dom/ContainerNodeAlgorithms.cpp:
4329         (WebCore::ChildFrameDisconnector::collectDescendant):
4330         * dom/ContainerNodeAlgorithms.h:
4331         (WebCore::ChildFrameDisconnector::ChildFrameDisconnector):
4332         (WebCore::ChildFrameDisconnector::~ChildFrameDisconnector):
4333         (ChildFrameDisconnector):
4334         (WebCore::ChildFrameDisconnector::collectDescendant):
4335         (WebCore::ChildFrameDisconnector::disconnect):
4336         * dom/Node.cpp:
4337         * dom/Node.h:
4338         (Node):
4339         * dom/NodeRareData.h:
4340         (WebCore::NodeRareData::NodeRareData):
4341         (NodeRareData):
4342         * html/HTMLFrameOwnerElement.cpp:
4343         (WebCore::HTMLFrameOwnerElement::setContentFrame):
4344         (WebCore::HTMLFrameOwnerElement::disconnectContentFrame):
4345
4346 2012-11-16  Simon Fraser  <simon.fraser@apple.com>
4347
4348         Fix overlay scrollbar painting in compositing layers
4349         https://bugs.webkit.org/show_bug.cgi?id=102442
4350
4351         Reviewed by Beth Dakin.
4352
4353         There were two issues with overlay scrollbar painting in
4354         compositing layers.
4355         
4356         First, we'd only ever call setContainsDirtyOverlayScrollbars()
4357         on the RenderView's layer, even when encountering an overlay scrollbar
4358         in some descendant compositing layer. This meant that we'd never
4359         run the paintOverlayScrollbars() code for those child compositing
4360         layers, so sometimes scrollbars were missing there.
4361         
4362         Even after fixing that, we would fail to render scrollbars that
4363         were not in the composited RenderLayer itself. This happened because
4364         we called into RenderLayer::paintOverlayScrollbars(), which called
4365         paintLayer() with flags that only said to paint the overlay scrollbars
4366         but not any descendants, so this paint path would not walk child
4367         RenderLayers.
4368         
4369         Also remove the containsScrollableAreaWithOverlayScrollbars() flag on
4370         ScrollView which is no longer used.
4371
4372         * platform/ScrollView.cpp:
4373         (WebCore::ScrollView::ScrollView): Remove containsScrollableAreaWithOverlayScrollbars().
4374         (WebCore::ScrollView::paint): Remove setting of m_containsScrollableAreaWithOverlayScrollbars.
4375         * platform/ScrollView.h:
4376         * rendering/RenderLayer.cpp:
4377         (WebCore::RenderLayer::paintOverflowControls): Call setContainsDirtyOverlayScrollbars()
4378         on the compositing ancestor or the root.
4379         Remove call to setContainsScrollableAreaWithOverlayScrollbars().
4380         (WebCore::RenderLayer::paintOverlayScrollbars): When painting overlay
4381         scrollbars, no need to say we have transparency, and no need to use 
4382         temporary clip rects.
4383         (WebCore::RenderLayer::paintLayer): The PaintLayerPaintingOverlayScrollbars
4384         check here was only needed because the compositing entrypoint to painting
4385         overlay scrollbars went via paintLayer(), which isn't normally used as
4386         a composited painting entry point. Now that we no longer call that, we
4387         don't need this special check.
4388         * rendering/RenderLayerBacking.cpp:
4389         (WebCore::RenderLayerBacking::paintIntoLayer): Jump into overlay scrollbar
4390         painting via paintLayerContents(), not paintOverlayScrollbars(), since
4391         the latter does not traverse sublayers.
4392
4393 2012-11-16  Joshua Bell  <jsbell@chromium.org>
4394
4395         IndexedDB: Assert hit when getting non-existent object store in version change transaction
4396         https://bugs.webkit.org/show_bug.cgi?id=102547
4397
4398         Reviewed by Tony Chang.
4399
4400         Code did not account for the not-found case in "versionchange" transactions, where all
4401         object stores are implicitly in scope.
4402
4403         Test: storage/indexeddb/object-lookups-in-versionchange.html
4404
4405         * Modules/indexeddb/IDBTransaction.cpp:
4406         (WebCore::IDBTransaction::objectStore):
4407
4408 2012-11-12  Simon Fraser  <simon.fraser@apple.com>
4409
4410         Eliminate ancestor tree walk computing outlineBoundsForRepaint() when updating layer positions
4411         https://bugs.webkit.org/show_bug.cgi?id=101874
4412
4413         Reviewed by Dave Hyatt.
4414
4415         RenderLayer::updateLayerPositions() and updateLayerPositionsAfterScroll() spend a
4416         lot of time in computeRepaintRects(), which does two ancestor tree walks, once
4417         for clippedOverflowRectForRepaint(), and one for outlineBoundsForRepaint().
4418
4419         Eliminate the ancestor tree walk in outlineBoundsForRepaint() by maintaining
4420         a RenderGeometryMap as we traverse the layer tree, and then using it to map
4421         the outline bounds to the repaint container. Replace the hokey cached offsetFromRoot
4422         now that the RenderGeometryMap can do a better job.
4423         
4424         The clipped overflow rect cannot be mapped simply, so cannot yet make use of
4425         the geometry map.
4426         
4427         Modify the RenderGeometryMap to support mapping to some repaintContainer ancestor.
4428         Add a RenderObject walk that is necessary to detect flipped writing mode blocks.
4429         
4430         Pass the RenderGeometryMap as an optional parameter to outlineBoundsForRepaint.
4431         
4432         * page/FrameView.cpp:
4433         (WebCore::FrameView::layout): Make a RenderGeometryMap and pass it down
4434         to updateLayerPositions(). For partial layouts, we have to push layers
4435         between the root and the enclosing layer of the layout subtree.
4436         The geometry map used for repainting does not use SnapOffsetForTransforms,
4437         so initialize it explicitly with just the UseTransforms flag.
4438         (WebCore::FrameView::repaintFixedElementsAfterScrolling): Make a RenderGeometryMap
4439         to pass along to updateLayerPositionsAfterScroll().
4440         * rendering/RenderBox.cpp:
4441         (WebCore::RenderBox::outlineBoundsForRepaint): Replace the optional cachedOffsetToRepaintContainer
4442         parameter with an optional RenderGeometryMap, and it use to map the compute rect to
4443         repaintContainer coordinates.
4444         * rendering/RenderBox.h:
4445         * rendering/RenderGeometryMap.cpp:
4446         (WebCore::RenderGeometryMap::RenderGeometryMap): This now has to store the mapping
4447         flags to use, so that its behavior can match that of mapLocalToContainer(). The
4448         pertinent flag is the confusingly named SnapOffsetForTransforms.
4449         (WebCore::RenderGeometryMap::absolutePoint): Call the new mapToContainer() with
4450         a null container.
4451         (WebCore::RenderGeometryMap::absoluteRect): Ditto.
4452         (WebCore::RenderGeometryMap::mapToContainer): Map to the supplied container,
4453         asserting that we found it. Add point- and rect-based mapping methods
4454         akin to the old absoluteRect/absolutePoint.
4455         (WebCore::canMapViaLayer): We need to test for isRenderFlowThread() here too.
4456         (WebCore::RenderGeometryMap::pushMappingsToAncestor): When mapping via
4457         layers, ensure that the RenderView is pushed as the first step.
4458         * rendering/RenderGeometryMap.h:
4459         (RenderGeometryMap):
4460         * rendering/RenderLayer.cpp:
4461         (WebCore::RenderLayer::updateLayerPositionsAfterLayout): New wrapper for updateLayerPositions()
4462         that makes the geometry map.
4463         (WebCore::RenderLayer::updateLayerPositionsAfterScroll): New wrapper for updateLayerPositionsAfterScroll
4464         that makes the geometry map.
4465         (WebCore::RenderLayer::updateLayerPositions): Now takes an optional RenderGeometryMap.
4466         Remove the old offsetFromRoot code. Push and pop layers to/from the geometry map. Use
4467         the geometry map to get the offsetFromRoot as needed by overflow controls. Pass
4468         it to computeRepaintRects().
4469         (WebCore::RenderLayer::computeRepaintRects): Pass the geometry map to outlineBoundsForRepaint().
4470         (WebCore::RenderLayer::updateLayerPositionsAfterScroll): Push and pop to/from the
4471         geometry map, and pass it to computeRepaintRects().
4472         (WebCore::RenderLayer::removeOnlyThisLayer): Remove the offsetFromRootBeforeMove
4473         computation; this could use a geometry map in future if it is shown to be a bottleneck.
4474         * rendering/RenderLayer.h:
4475         (WebCore::RenderLayer::canUseConvertToLayerCoords): It was thought that the isComposited()
4476         was there because the older cached offsetFromRoot logic was sensitive to compositing,
4477         but convertToLayerCoords() is not affected by compositing so this check is not needed,
4478         and actually harmful.
4479         * rendering/RenderLayerCompositor.cpp:
4480         (WebCore::RenderLayerCompositor::OverlapMap::OverlapMap): The geometry map
4481         used for overlap testing should not use SnapOffsetForTransforms, so initialize
4482         it explicitly with just the UseTransforms flag.
4483         * rendering/RenderObject.h:
4484         (WebCore::RenderObject::outlineBoundsForRepaint):
4485         * rendering/svg/RenderSVGModelObject.cpp:
4486         (WebCore::RenderSVGModelObject::outlineBoundsForRepaint):
4487         * rendering/svg/RenderSVGModelObject.h:
4488         (RenderSVGModelObject):
4489
4490 2012-11-16  Alec Flett  <alecflett@chromium.org>
4491
4492         Add tests for explicit serialization values
4493         https://bugs.webkit.org/show_bug.cgi?id=96818
4494
4495         Reviewed by Adam Barth.
4496
4497         Expose direct access to the serialization/deserialization mechanisms
4498         of SerializedScriptValue to DumpRenderTree.
4499
4500         * testing/Internals.cpp:
4501         (WebCore::Internals::serializeObject):
4502         (WebCore):
4503         (WebCore::Internals::deserializeBuffer):
4504         * testing/Internals.h:
4505         (WebCore):
4506         * testing/Internals.idl:
4507
4508 2012-11-16  Andreas Kling  <akling@apple.com>
4509
4510         Exploit shared attribute data to avoid parsing identical "style" attributes.
4511         <http://webkit.org/b/101163>
4512
4513         Reviewed by Antti Koivisto.
4514
4515         Track the "inline style dirty" state on ElementAttributeData instead of in a Node flag.
4516         This allows us to avoid duplicate work for ElementAttributeData that are shared between multiple elements,
4517         since the state is no longer per-Element.
4518
4519         * css/StyleResolver.cpp:
4520         (WebCore::isCacheableInMatchedPropertiesCache):
4521
4522             Disable the matched properties cache for styles with non-standard writing-mode.
4523             This is necessary because some CSS properties have different meaning depending on context -
4524             properties handled by CSSProperty::resolveDirectionAwareProperty().
4525
4526             Now that multiple elements may have identical inlineStyle() pointers, this is necessary to
4527             avoid mapping StylePropertySets with direction-aware properties to RenderStyles with differing
4528             writing-modes in the matched properties cache.
4529
4530         * dom/Node.h:
4531         * dom/ElementAttributeData.cpp:
4532         (WebCore::ElementAttributeData::ElementAttributeData):
4533         * dom/ElementAttributeData.h:
4534         (WebCore::ElementAttributeData::ElementAttributeData):
4535         (ElementAttributeData):
4536         * dom/Element.h:
4537         (WebCore::Element::updateInvalidAttributes):
4538         * dom/Element.cpp:
4539         (WebCore::Element::getAttribute):
4540         (WebCore::Element::removeAttribute):
4541         * dom/StyledElement.h:
4542         (WebCore::StyledElement::invalidateStyleAttribute):
4543         * dom/StyledElement.cpp:
4544         (WebCore::StyledElement::updateStyleAttribute):
4545
4546             Move "style attribute dirty" flag to ElementAttributeData.
4547
4548         (WebCore::Element::cloneAttributesFromElement):
4549
4550             Remove ugly optimization to avoid reparsing inline style when cloning elements. This now happens
4551             automagically since cloning nodes just refs the original attribute data.
4552
4553         * dom/StyledElement.cpp:
4554         (WebCore::StyledElement::updateStyleAttribute):
4555         (WebCore::StyledElement::setInlineStyleFromString):
4556         (WebCore::StyledElement::styleAttributeChanged):
4557         (WebCore::StyledElement::inlineStyleChanged):
4558
4559             Avoid reparsing the inline style if the element's attribute data is immutable and already has
4560             a parsed inlineStyle(). Split the set-inline-style-from-string code out of styleAttributeChanged()
4561             to make the code more understandable.
4562
4563 2012-11-16  Simon Fraser  <simon.fraser@apple.com>
4564
4565         Don't update layer positions on scrolling if we're in the middle of layout
4566         https://bugs.webkit.org/show_bug.cgi?id=102556
4567
4568         Reviewed by Dan Bernstein.
4569
4570         RenderLayer::scrollTo() can be called in the middle of layout. When
4571         that happens we should not waste time updating layer positions,
4572         compositing layers, or widget positions, because we'll do those at the
4573         end of layout anyway.
4574         
4575         This prevents us from having inconsistent RenderLayer state, which
4576         hinders future optimizations in this area.
4577
4578         * rendering/RenderLayer.cpp:
4579         (WebCore::RenderLayer::scrollTo):
4580
4581 2012-11-16  Tony Chang  <tony@chromium.org>
4582
4583         Remove ENABLE_CSS_HIERARCHIES since it's no longer in use
4584         https://bugs.webkit.org/show_bug.cgi?id=102554
4585
4586         Reviewed by Andreas Kling.
4587
4588         As mentioned in https://bugs.webkit.org/show_bug.cgi?id=79939#c41 ,
4589         we're going to revist this feature once additional vendor support is
4590         achieved.
4591
4592         No new tests, just removing an unused define.
4593
4594         * Configurations/FeatureDefines.xcconfig:
4595         * GNUmakefile.features.am:
4596
4597 2012-11-16  Mark Pilgrim  <pilgrim@chromium.org>
4598
4599         [Chromium] Remove cookie-related functions from PlatformSupport
4600         https://bugs.webkit.org/show_bug.cgi?id=99340
4601
4602         Reviewed by Adam Barth.
4603
4604         Move cookie-related functions out of PlatformSupport and implement
4605         new PlatformCookieJar interface via NetworkContext.
4606
4607         * WebCore.gyp/WebCore.gyp:
4608         * WebCore.gypi:
4609         * loader/CookieJar.cpp:
4610         * loader/chromium/CookieJarChromium.cpp: Removed.
4611         * platform/chromium/PlatformSupport.h:
4612         (WebCore):
4613         (PlatformSupport):
4614         * platform/network/NetworkingContext.h:
4615         (WebKit):
4616         (NetworkingContext):
4617         * platform/network/chromium/CookieJarChromium.cpp: Copied from Source/WebCore/loader/chromium/CookieJarChromium.cpp.
4618         (WebCore::setCookiesFromDOM):
4619         (WebCore::cookiesForDOM):
4620         (WebCore::cookieRequestHeaderFieldValue):
4621         (WebCore::cookiesEnabled):
4622         (WebCore::getRawCookies):
4623         (WebCore::deleteCookie):
4624         (WebCore::getHostnamesWithCookies):
4625         (WebCore::deleteCookiesForHostname):
4626         (WebCore::deleteAllCookies):
4627
4628 2012-11-16  Pablo Flouret  <pablof@motorola.com>
4629
4630         [JSC] Don't sanitize window.onerror information on crossorigin-enabled scripts
4631         https://bugs.webkit.org/show_bug.cgi?id=70574
4632
4633         Reviewed by Geoffrey Garen.
4634
4635         For scripts that use CORS (via the crossorigin attribute in this case),
4636         don't sanitize the information passed to the window's onerror handler (i.e.
4637         message, url, and line number). Useful for scripts hosted on CDNs.
4638
4639         Tests: http/tests/security/script-crossorigin-onerror-information.html
4640                http/tests/security/script-no-crossorigin-onerror-should-be-sanitized.html
4641
4642         * WebCore.exp.in:
4643         * WebCore.order:
4644
4645         * bindings/js/JSDOMBinding.cpp:
4646         (WebCore::reportException):
4647         * bindings/js/JSDOMBinding.h:
4648         (WebCore):
4649         * bindings/js/ScriptController.cpp:
4650         (WebCore::ScriptController::evaluateInWorld):
4651         * bindings/js/ScriptSourceCode.h:
4652         (WebCore::ScriptSourceCode::ScriptSourceCode):
4653         (WebCore::ScriptSourceCode::cachedScript):
4654         (ScriptSourceCode):
4655         * bindings/js/WorkerScriptController.cpp:
4656         (WebCore::WorkerScriptController::evaluate):
4657             Keep a reference to the cached script in the ScriptSourceCode, so
4658             that it can be passed around and be available when reporting the
4659             exception.
4660
4661         * dom/ScriptExecutionContext.cpp:
4662         (WebCore::ScriptExecutionContext::sanitizeScriptError):
4663         (WebCore::ScriptExecutionContext::reportException):
4664         (WebCore::ScriptExecutionContext::dispatchErrorEvent):
4665         * dom/ScriptExecutionContext.h:
4666         (WebCore):
4667         (ScriptExecutionContext):
4668             Check if the script passes the access control checks, and if so,
4669             don't sanitize the error information.
4670
4671         * html/parser/HTMLPreloadScanner.cpp:
4672         (WebCore::PreloadTask::processAttributes):
4673         (WebCore::PreloadTask::preload):
4674         (PreloadTask):
4675         (WebCore::PreloadTask::crossOriginModeAllowsCookies):
4676             When preloading script elements, check for the crossorigin attribute
4677             and adjust the request's allowCookies value accordingly. Otherwise
4678             when the script is loaded from the cache later on, the cross origin mode
4679             (anonymous/use-credentials) will be effectively ignored.
4680
4681 2012-11-16  Jon Lee  <jonlee@apple.com>
4682
4683         Change visual look of placeholder
4684         https://bugs.webkit.org/show_bug.cgi?id=102149
4685         <rdar://problem/12695566>
4686
4687         Reviewed by Darin Adler.
4688
4689         Move the button to the lower-right corner. Move the theming into
4690         RenderSnapshottedPlugin for now. Eventually we will want to migrate to using the
4691         shadow DOM instead, and the metrics of the button are needed for click passthrough.
4692
4693         * Resources/startButton.png: Added.
4694         * Resources/startButton@2x.png: Added.
4695         * Resources/startButtonPressed.png: Added.
4696         * Resources/startButtonPressed@2x.png: Added.
4697         * WebCore.xcodeproj/project.pbxproj: Add button images.
4698
4699         Maintain variables to track whether the mouse is over the button, and the rect
4700         for the button. If the user clicks in the rect, we render a pressed button.
4701         * rendering/RenderSnapshottedPlugIn.cpp:
4702         (WebCore): Add named constant for bottom and right padding of the button.
4703         (WebCore::RenderSnapshottedPlugIn::RenderSnapshottedPlugIn):
4704         (WebCore::RenderSnapshottedPlugIn::paintReplaced):
4705         (WebCore::startButtonImage): Returns button image.
4706         (WebCore::startButtonPressedImage): Returns pressed button image.
4707         (WebCore::RenderSnapshottedPlugIn::paintButton): Draw the button image in the
4708         lower right hand corner, but only if we are active or hovered.
4709         (WebCore::RenderSnapshottedPlugIn::repaintButton): Stubbed to call repaint().
4710         (WebCore::RenderSnapshottedPlugIn::handleEvent): Repaint the button if we are
4711         hovering over the plugin rect. With a mouse down event, calculate whether the
4712         mouse position is within the button rect.
4713         (WebCore::RenderSnapshottedPlugIn::layout): Cache the rect representing the button
4714         contents.
4715         * rendering/RenderSnapshottedPlugIn.h:
4716
4717         Remove theming function for now.
4718         * rendering/RenderTheme.h:
4719         (RenderTheme):
4720         * rendering/RenderThemeMacShared.h:
4721         * rendering/RenderThemeMacShared.mm:
4722
4723 2012-11-16  Eric Seidel  <eric@webkit.org>
4724
4725         Deploy ScriptWrappable to more always-wrapped objects
4726         https://bugs.webkit.org/show_bug.cgi?id=102539
4727
4728         Reviewed by Adam Barth.
4729
4730         Add the ScriptWrappable baseclass to:
4731         CSSStyleDeclaration (anttik tells me these should only be used from JS, even though some old Editing code used to use them)
4732         ClientRect (element.getBoundingClientRects)
4733         Event (Not all events end up wrapped, but any which live past dispatch do)
4734         NodeList (this covers Static and Dynamic node list types, like document.all)
4735         HTMLCollection (separate from NodeList, for things like table.rows)
4736         Storage (for window.storage, always wrapped)
4737         XMLHttpRequest (always wrapped, created from JS)
4738
4739         This should be a small memory savings as the inline pointer is only 4-8 bytes
4740         instead of the hashmap entry which would be 8-16.  This may also show up
4741         on benchmarks which repeatedly access these objects (like window.storage).
4742
4743         These were found by adding a couple lines of logging-code to
4744         WebCore::createWrapper when we were in the main world, but took the
4745         HashMap (instead of inline) storage path. I used sort and uniq -c
4746         to find the most-frequently wrapped objects (while surfing
4747         a few common sites) and came up with this list.  There are still a few
4748         more complicated objects (like CSSStyleDeclaration) which may benifit
4749         from inline-wrapper-access and will be covered in a later patch.
4750
4751         * css/CSSStyleDeclaration.h:
4752         * dom/ClientRect.h:
4753         * dom/Event.h:
4754         * dom/NodeList.h:
4755         * html/HTMLCollection.h:
4756         * storage/Storage.h:
4757         * xml/XMLHttpRequest.h:
4758
4759 2012-11-16  Jon Lee  <jonlee@apple.com>
4760
4761         Simulated events instances do not all have the same underlying event
4762         https://bugs.webkit.org/show_bug.cgi?id=102468
4763         <rdar://problem/12716331>
4764
4765         Reviewed by Alexey Proskuryakov.
4766
4767         The PassRefPtr with the underlying event is included as an argument for the mouse
4768         down, up, and click events. But the PassRefPtr loses its underlying pointer after
4769         the first simulated mouse down event because it gets assigned to that event's
4770         private m_underlyingEvent variable. We therefore send NULL to the other events.
4771
4772         The fix is for this and related functions to pass the raw pointer.
4773
4774         A layout test is not possible to put together because the call sites that use simulated
4775         events with an underlying event do not send mouse events, and those that send mouse
4776         events have a NULL underlying event.
4777
4778         * dom/EventDispatcher.cpp:
4779         (WebCore::EventDispatcher::dispatchSimulatedClick): Require passing in the raw pointer.
4780         * dom/EventDispatcher.h:
4781         * dom/Node.cpp:
4782         (WebCore::Node::dispatchSimulatedClick): Ditto.
4783         * dom/Node.h:
4784
4785 2012-11-16  Patrick Gansterer  <paroga@webkit.org>
4786
4787         Build fix for WinCE after r134936.
4788
4789         * platform/network/win/CookieJarWin.cpp:
4790         (WebCore::cookieRequestHeaderFieldValue):
4791
4792 2012-11-16  Dimitri Glazkov  <dglazkov@chromium.org>
4793
4794         Unreviewed, rolling out r134986.
4795         http://trac.webkit.org/changeset/134986
4796         https://bugs.webkit.org/show_bug.cgi?id=102110
4797
4798         Triggered ASSERT in fast/frames/seamless/seamless-inherited-
4799         origin.html.
4800
4801         * css/StyleResolver.cpp:
4802         (WebCore::StyleResolver::StyleResolver):
4803         (WebCore::StyleResolver::addAuthorRulesAndCollectUserRulesFromSheets):
4804         (WebCore::collectCSSOMWrappers):
4805         * css/StyleResolver.h:
4806         (StyleResolver):
4807         * dom/Document.cpp:
4808         (WebCore::Document::setCompatibilityMode):
4809         * dom/DocumentStyleSheetCollection.cpp:
4810         (WebCore::DocumentStyleSheetCollection::DocumentStyleSheetCollection):
4811         (WebCore::DocumentStyleSheetCollection::~DocumentStyleSheetCollection):
4812         (WebCore::DocumentStyleSheetCollection::pageGroupUserSheets):
4813         (WebCore):
4814         (WebCore::DocumentStyleSheetCollection::clearPageGroupUserSheets):
4815         (WebCore::DocumentStyleSheetCollection::updatePageGroupUserSheets):
4816         (WebCore::DocumentStyleSheetCollection::addUserSheet):
4817         (WebCore::DocumentStyleSheetCollection::updateActiveStyleSheets):
4818         (WebCore::DocumentStyleSheetCollection::reportMemoryUsage):
4819         * dom/DocumentStyleSheetCollection.h:
4820         (DocumentStyleSheetCollection):
4821         (WebCore::DocumentStyleSheetCollection::documentUserSheets):
4822         * page/PageGroup.cpp:
4823         (WebCore::PageGroup::addUserStyleSheetToWorld):
4824         (WebCore::PageGroup::removeUserStyleSheetFromWorld):
4825         (WebCore::PageGroup::removeUserStyleSheetsFromWorld):
4826         (WebCore::PageGroup::removeAllUserContent):
4827         (WebCore::PageGroup::resetUserStyleCacheInAllFrames):
4828         * page/PageGroup.h:
4829         (PageGroup):
4830
4831 2012-11-16  Michael Pruett  <michael@68k.org>
4832
4833         IndexedDB: Propagate DOMRequestState to IndexedDB binding utility functions
4834         https://bugs.webkit.org/show_bug.cgi?id=102430
4835
4836         Reviewed by Adam Barth.
4837
4838         DOMRequestState is currently propagated to some but not all of
4839         the IndexedDB binding utility functions. In order to implement
4840         these functions for JSC, this state must be propagated to all
4841         of the utility functions.
4842
4843         Tests: storage/indexeddb/*
4844
4845         * Modules/indexeddb/IDBCursor.cpp:
4846         (WebCore::IDBCursor::update):
4847         (WebCore::IDBCursor::setValueReady):
4848         * Modules/indexeddb/IDBObjectStore.cpp:
4849         (WebCore::generateIndexKeysForValue):
4850         (WebCore::IDBObjectStore::put):
4851         (WebCore):
4852         * Modules/indexeddb/IDBRequest.cpp:
4853         (WebCore::IDBRequest::onSuccess):
4854         (WebCore::IDBRequest::dispatchEvent):
4855         * Modules/indexeddb/IDBRequest.h:
4856         (WebCore::IDBRequest::requestState):
4857         (IDBRequest):
4858         * bindings/v8/IDBBindingUtilities.cpp:
4859         (WebCore::createIDBKeyFromScriptValueAndKeyPath):
4860         (WebCore::serializeIDBValue):
4861         (WebCore::injectIDBKeyIntoScriptValue):
4862         * bindings/v8/IDBBindingUtilities.h:
4863         (WebCore):
4864
4865 2012-11-16  Byungwoo Lee  <bw80.lee@samsung.com>
4866
4867         Rebaselined run-bindings-tests.
4868         https://bugs.webkit.org/show_bug.cgi?id=102523
4869
4870         Reviewed by Dimitri Glazkov.
4871
4872         Expected results need to be updated after r134931
4873
4874         * bindings/scripts/test/JS/JSTestObj.cpp:
4875         (WebCore::jsTestObjWithScriptArgumentsAndCallStackAttribute):
4876         (WebCore::setJSTestObjWithScriptArgumentsAndCallStackAttribute):
4877         (WebCore::jsTestObjPrototypeFunctionWithScriptArgumentsAndCallStack):
4878         * bindings/scripts/test/V8/V8TestObj.cpp:
4879         (WebCore::TestObjV8Internal::withScriptArgumentsAndCallStackAttributeAttrGetter):
4880         (WebCore::TestObjV8Internal::withScriptArgumentsAndCallStackAttributeAttrSetter):
4881         (WebCore::TestObjV8Internal::withScriptArgumentsAndCallStackCallback):
4882
4883 2012-11-16  Pratik Solanki  <psolanki@apple.com>
4884
4885         For single element arrays use the pointer into the CFDataRef instead of copying data
4886         https://bugs.webkit.org/show_bug.cgi?id=102306
4887         <rdar://problem/12267471>
4888
4889         Reviewed by Alexey Proskuryakov.
4890
4891         We generally copy the data received from CFNetwork into our own buffers. But if the
4892         CFArrayRef has exactly one CFDataRef inside it, then we can just hold on to the CFDataRef
4893         and access its memory directly and avoid making a copy.
4894
4895         This also moves the creation of PurgeableBuffer from CachedResource to SharedBuffer.
4896         SharedBuffer::createPurgeableBuffer() will avoid creating PurgeableBuffer when the
4897         SharedBuffer is backed by a NSData/CFDataRef and when we want to optimize and directly use
4898         the memory in the data array.
4899
4900         No new tests because no change in functionality.
4901
4902         * loader/ResourceBuffer.cpp:
4903         (WebCore::ResourceBuffer::createPurgeableBuffer): Added.
4904         * loader/ResourceBuffer.h:
4905         * loader/cache/CachedResource.cpp:
4906         (WebCore::CachedResource::makePurgeable):
4907         * platform/SharedBuffer.cpp:
4908         (WebCore::SharedBuffer::createPurgeableBuffer): Added.
4909         (WebCore::SharedBuffer::data):
4910         * platform/SharedBuffer.h:
4911         * platform/cf/SharedBufferCF.cpp:
4912         (WebCore::SharedBuffer::platformData): Use reinterpret_cast instead of C-style cast.
4913         (WebCore::SharedBuffer::maybeTransferPlatformData): Use reinterpret_cast instead of C-style cast.
4914         (WebCore::SharedBuffer::singleDataArrayBuffer): Added.
4915
4916 2012-11-16  Antti Koivisto  <antti@apple.com>
4917
4918         REGRESSION(r129644): User StyleSheet not applying
4919         https://bugs.webkit.org/show_bug.cgi?id=102110
4920
4921         Reviewed by Andreas Kling.
4922
4923         Injected stylesheets added as UserStyleAuthorLevel fail to apply. r129644 implicitly assumed that
4924         such things don't exists but on Chromium addUserStyleSheet() confusingly uses them.
4925         
4926         The patch adds injected author stylesheets to DocumentStyleSheetCollection::activeStyleSheets().
4927         It also generally cleans up the code around injected and user stylesheets.
4928
4929         Tests: userscripts/user-script-and-stylesheet.html
4930                userscripts/user-stylesheet-invalidate.html
4931
4932         * css/StyleResolver.cpp:
4933         (WebCore::StyleResolver::StyleResolver):
4934         (WebCore::StyleResolver::collectRulesFromUserStyleSheets):
4935         (WebCore::collectCSSOMWrappers):
4936         * css/StyleResolver.h:
4937         (StyleResolver):
4938         * dom/Document.cpp:
4939         (WebCore::Document::setCompatibilityMode):
4940         * dom/DocumentStyleSheetCollection.cpp:
4941         (WebCore::DocumentStyleSheetCollection::DocumentStyleSheetCollection):
4942         (WebCore::DocumentStyleSheetCollection::~DocumentStyleSheetCollection):
4943         (WebCore::DocumentStyleSheetCollection::injectedUserStyleSheets):
4944         (WebCore):
4945         (WebCore::DocumentStyleSheetCollection::injectedAuthorStyleSheets):
4946         (WebCore::DocumentStyleSheetCollection::updateInjectedStyleSheetCache):
4947         (WebCore::DocumentStyleSheetCollection::invalidateInjectedStyleSheetCache):
4948         (WebCore::DocumentStyleSheetCollection::addUserSheet):
4949         (WebCore::DocumentStyleSheetCollection::updateActiveStyleSheets):
4950         (WebCore::DocumentStyleSheetCollection::reportMemoryUsage):
4951         * dom/DocumentStyleSheetCollection.h:
4952         (WebCore::DocumentStyleSheetCollection::documentUserStyleSheets):
4953         (DocumentStyleSheetCollection):
4954         * page/PageGroup.cpp:
4955         (WebCore::PageGroup::addUserStyleSheetToWorld):
4956         (WebCore::PageGroup::removeUserStyleSheetFromWorld):
4957         (WebCore::PageGroup::removeUserStyleSheetsFromWorld):
4958         (WebCore::PageGroup::removeAllUserContent):
4959         (WebCore::PageGroup::invalidatedInjectedStyleSheetCacheInAllFrames):
4960         * page/PageGroup.h:
4961         (PageGroup):
4962
4963 2012-11-16  Andreas Kling  <akling@apple.com>
4964
4965         StyleResolver: Only input elements need equal "readonly" attribute for style sharing.
4966         <http://webkit.org/b/102536>
4967
4968         Reviewed by Antti Koivisto.
4969
4970         Move the comparison of the "readonly" attribute into canShareStyleWithControl() since it's only
4971         relevant for sharing style between <input> elements.
4972
4973         Also skip attribute comparisons for form control elements that share the same ElementAttributeData.
4974
4975         * css/StyleResolver.cpp:
4976         (WebCore::StyleResolver::canShareStyleWithControl):
4977         (WebCore::haveIdenticalStyleAffectingAttributes):
4978
4979 2012-11-16  Sheriff Bot  <webkit.review.bot@gmail.com>
4980
4981         Unreviewed, rolling out r134867.
4982         http://trac.webkit.org/changeset/134867
4983         https://bugs.webkit.org/show_bug.cgi?id=102544
4984
4985         Broke security fuzzier test (heap-buffer-overflow) (Requested
4986         by bfulgham on #webkit).
4987
4988         * platform/audio/Biquad.cpp:
4989         (WebCore::Biquad::process):
4990
4991 2012-11-16  Tommy Widenflycht  <tommyw@google.com>
4992
4993         MediaStream API: Update RTCPeerConnection states to match the latest editors draft
4994         https://bugs.webkit.org/show_bug.cgi?id=102382
4995
4996         Reviewed by Adam Barth.
4997
4998         Updating readyState & iceState, and adding iceGatheringState.
4999         Also safeguarding the event timer callback.
5000
5001         Patch covered by existing tests.
5002
5003         * Modules/mediastream/RTCPeerConnection.cpp:
5004         (WebCore::RTCPeerConnection::RTCPeerConnection):
5005         (WebCore::RTCPeerConnection::createOffer):
5006         (WebCore::RTCPeerConnection::createAnswer):
5007         (WebCore::RTCPeerConnection::setLocalDescription):
5008         (WebCore::RTCPeerConnection::localDescription):
5009         (WebCore::RTCPeerConnection::setRemoteDescription):
5010         (WebCore::RTCPeerConnection::remoteDescription):
5011         (WebCore::RTCPeerConnection::updateIce):
5012         (WebCore::RTCPeerConnection::addIceCandidate):
5013         (WebCore::RTCPeerConnection::readyState):
5014         (WebCore::RTCPeerConnection::iceGatheringState):
5015         (WebCore):
5016         (WebCore::RTCPeerConnection::iceState):
5017         (WebCore::RTCPeerConnection::addStream):
5018         (WebCore::RTCPeerConnection::close):
5019         (WebCore::RTCPeerConnection::didChangeIceGatheringState):
5020         (WebCore::RTCPeerConnection::stop):
5021         (WebCore::RTCPeerConnection::changeReadyState):
5022         (WebCore::RTCPeerConnection::scheduledEventTimerFired):
5023         * Modules/mediastream/RTCPeerConnection.h:
5024         (RTCPeerConnection):
5025         * Modules/mediastream/RTCPeerConnection.idl:
5026         * dom/EventNames.h:
5027         (WebCore):
5028         * platform/mediastream/RTCPeerConnectionHandlerClient.h:
5029         (RTCPeerConnectionHandlerClient):
5030         * platform/mediastream/chromium/RTCPeerConnectionHandlerChromium.cpp:
5031         (WebCore::RTCPeerConnectionHandlerChromium::didChangeICEGatheringState):
5032         (WebCore):
5033         * platform/mediastream/chromium/RTCPeerConnectionHandlerChromium.h:
5034         (RTCPeerConnectionHandlerChromium):
5035
5036 2012-11-16  Dimitri Glazkov  <dglazkov@chromium.org>
5037
5038         Unreviewed, rolling out r134973.
5039         http://trac.webkit.org/changeset/134973
5040         https://bugs.webkit.org/show_bug.cgi?id=99340
5041
5042         Broke compile on at least Mac and Linux.
5043
5044         * WebCore.gyp/WebCore.gyp:
5045         * WebCore.gypi:
5046         * loader/CookieJar.cpp:
5047         * loader/chromium/CookieJarChromium.cpp: Renamed from Source/WebKit/chromium/src/FrameNetworkingContextImpl.cpp.
5048         (WebCore):
5049         (WebCore::setCookies):
5050         (WebCore::cookies):
5051         (WebCore::cookieRequestHeaderFieldValue):
5052         (WebCore::cookiesEnabled):
5053         (WebCore::getRawCookies):
5054         (WebCore::deleteCookie):
5055         (WebCore::getHostnamesWithCookies):
5056         (WebCore::deleteCookiesForHostname):
5057         (WebCore::deleteAllCookies):
5058         * platform/chromium/PlatformSupport.h:
5059         (WebCore):
5060         (PlatformSupport):
5061         * platform/network/NetworkingContext.h:
5062         * platform/network/chromium/CookieJarChromium.cpp: Removed.
5063
5064 2012-11-16  Martin Robinson  <mrobinson@igalia.com>
5065
5066         [GTK] [WebKit2] Move GtkAuthenticationDialog to the UIProcess
5067         https://bugs.webkit.org/show_bug.cgi?id=101843
5068
5069         Reviewed by Gustavo Noronha Silva.
5070
5071         Make GtkAuthenticationDialog more general, so that it can be subclassed in 
5072         WebKit2. We cannot use the WebCore authentication-related classes directly there.
5073
5074         No new tests. This patch does not change behavior.
5075
5076         * platform/gtk/GtkAuthenticationDialog.cpp:
5077         (WebCore::GtkAuthenticationDialog::GtkAuthenticationDialog): Remove an unused include and reorder
5078         some field initializers.
5079         (WebCore::GtkAuthenticationDialog::authenticate): Now handle both the okay and cancel case here. This
5080         makes it simpler to subclass.
5081         (WebCore::GtkAuthenticationDialog::authenticationDialogResponseCallback): Handle fetching the username
5082         and password here, so that it can be shared with subclasses.
5083         * platform/gtk/GtkAuthenticationDialog.h: Make some methods virtual and protected so they can be
5084         subclasses.
5085
5086 2012-11-16  Mark Pilgrim  <pilgrim@chromium.org>
5087
5088         [Chromium] Remove cookie-related functions from PlatformSupport
5089         https://bugs.webkit.org/show_bug.cgi?id=99340
5090
5091         Reviewed by Adam Barth.
5092
5093         Move cookie-related functions out of PlatformSupport and implement
5094         new PlatformCookieJar interface via NetworkContext.
5095
5096         * WebCore.gyp/WebCore.gyp:
5097         * WebCore.gypi:
5098         * loader/CookieJar.cpp:
5099         * loader/chromium/CookieJarChromium.cpp: Removed.
5100         * platform/chromium/PlatformSupport.h:
5101         (WebCore):
5102         (PlatformSupport):
5103         * platform/network/NetworkingContext.h:
5104         (WebKit):
5105         (NetworkingContext):
5106         * platform/network/chromium/CookieJarChromium.cpp: Copied from Source/WebCore/loader/chromium/CookieJarChromium.cpp.
5107         (WebCore::setCookiesFromDOM):
5108         (WebCore::cookiesForDOM):
5109         (WebCore::cookieRequestHeaderFieldValue):
5110         (WebCore::cookiesEnabled):
5111         (WebCore::getRawCookies):
5112         (WebCore::deleteCookie):
5113         (WebCore::getHostnamesWithCookies):
5114         (WebCore::deleteCookiesForHostname):
5115         (WebCore::deleteAllCookies):
5116
5117 2012-11-16  Byungwoo Lee  <bw80.lee@samsung.com>
5118
5119         Fix assertion bug of build fix r134961
5120         https://bugs.webkit.org/show_bug.cgi?id=102533
5121
5122         Reviewed by Martin Robinson.
5123
5124         Assertion condition should be '!d->m_currentWebChallenge.isNull()'
5125
5126         * platform/network/soup/ResourceHandleSoup.cpp:
5127         (WebCore::ResourceHandle::continueDidReceiveAuthenticationChallenge):
5128
5129 2012-11-16  Tommy Widenflycht  <tommyw@google.com>
5130
5131         [chromium] MediaStream API: Add missing WebRTCPeerConnectionHandlerClient::didAddRemoteDataChannel
5132         https://bugs.webkit.org/show_bug.cgi?id=102386
5133
5134         Reviewed by Adam Barth.
5135
5136         Existing tests expanded to cover patch.
5137
5138         * platform/mediastream/RTCDataChannelDescriptor.cpp:
5139         (WebCore::RTCDataChannelDescriptor::RTCDataChannelDescriptor):
5140         (WebCore::RTCDataChannelDescriptor::readyStateChanged):
5141         * platform/mediastream/chromium/RTCPeerConnectionHandlerChromium.cpp:
5142         (WebCore::RTCPeerConnectionHandlerChromium::didAddRemoteDataChannel):
5143         (WebCore):
5144         * platform/mediastream/chromium/RTCPeerConnectionHandlerChromium.h:
5145         (WebKit):
5146         (RTCPeerConnectionHandlerChromium):
5147
5148 2012-11-16  Scott Violet  <sky@chromium.org>
5149
5150         [chromium] Copy linux theme related files to default
5151         https://bugs.webkit.org/show_bug.cgi?id=102403
5152
5153         Reviewed by Tony Chang
5154
5155         Transitional patch that copies linux WebThemeEngine to default directory.
5156
5157         No new tests, refactoring only.
5158
5159         * WebCore.gyp/WebCore.gyp: Update compile rules when use_default_render_theme is set.
5160         * WebCore.gypi: Adds new files.
5161         * platform/chromium/PlatformSupport.h:
5162         * platform/chromium/PlatformThemeChromiumDefault.cpp: Copied from Source/WebCore/platform/chromium/PlatformThemeChromiumLinux.cpp.
5163         * platform/chromium/PlatformThemeChromiumDefault.h: Copied from Source/WebCore/platform/chromium/PlatformThemeChromiumLinux.h.
5164         * platform/chromium/ScrollbarThemeChromiumDefault.cpp: Copied from Source/WebCore/platform/chromium/ScrollbarThemeChromiumLinux.cpp.
5165         * platform/chromium/ScrollbarThemeChromiumDefault.h: Copied from Source/WebCore/platform/chromium/ScrollbarThemeChromiumLinux.h.
5166         * rendering/RenderThemeChromiumDefault.cpp: Copied from Source/WebCore/rendering/RenderThemeChromiumLinux.cpp.
5167         * rendering/RenderThemeChromiumDefault.h: Copied from Source/WebCore/rendering/RenderThemeChromiumLinux.h.
5168
5169 2012-11-16  Alec Flett  <alecflett@chromium.org>
5170
5171         IndexedDB: add missing 'explicit' and fix backing store release
5172         https://bugs.webkit.org/show_bug.cgi?id=102450
5173
5174         Reviewed by Tony Chang.
5175
5176         A inconsequential regression was introduced in http://trac.webkit.org/changeset/134129
5177         which resulted in objects sticking around a bit longer than
5178         expected. This makes sure the LevelDBTransaction is released
5179         at the moment of commit/rollback rather than when IDBTransactionBackendImpl
5180         is destroyed.
5181
5182         No new tests, this is just internal state that will affect
5183         some future refactoring.
5184
5185         * Modules/indexeddb/IDBBackingStore.h:
5186         (Cursor):
5187         (Transaction):
5188         (WebCore::IDBBackingStore::Transaction::reset):
5189         * Modules/indexeddb/IDBTransactionBackendImpl.cpp:
5190         (WebCore::IDBTransactionBackendImpl::abort):
5191         (WebCore::IDBTransactionBackendImpl::commit):
5192
5193 2012-11-16  Dimitri Glazkov  <dglazkov@chromium.org>
5194
5195         [Chromium] One last tweak to WebCore.gypi to make Win build not sad.
5196
5197         * WebCore.gypi: Removed one last mention of accessibility/gtk file.
5198
5199 2012-11-16  Robert Flack  <flackr@chromium.org>
5200
5201         Handle gesture events on scrollbars.
5202         https://bugs.webkit.org/show_bug.cgi?id=101516
5203
5204         Reviewed by Antonio Gomes.
5205
5206         Adds a gesture event handler to scrollbars and sends gestures beginning
5207         over a scrollbar to this handler to allow touch scrolling scrollbars.
5208
5209         Test: fast/events/touch/gesture/gesture-scrollbar.html
5210
5211         * page/EventHandler.cpp:
5212         (WebCore::EventHandler::clear):
5213         (WebCore::EventHandler::handleGestureEvent):
5214         (WebCore::EventHandler::isScrollbarHandlingGestures):
5215         (WebCore):
5216         * page/EventHandler.h:
5217         (EventHandler):
5218         * platform/Scrollbar.cpp:
5219         (WebCore::Scrollbar::Scrollbar):
5220         (WebCore):
5221         (WebCore::Scrollbar::gestureEvent):
5222         (WebCore::Scrollbar::mouseMoved):
5223         (WebCore::Scrollbar::mouseUp):
5224         (WebCore::Scrollbar::mouseDown):
5225         * platform/Scrollbar.h:
5226         (WebCore):
5227         (Scrollbar):
5228         * platform/ScrollbarTheme.h:
5229         (WebCore::ScrollbarTheme::hitTest):
5230         * platform/ScrollbarThemeComposite.cpp:
5231         (WebCore::ScrollbarThemeComposite::hitTest):
5232         * platform/ScrollbarThemeComposite.h:
5233         (ScrollbarThemeComposite):
5234         * platform/qt/ScrollbarThemeQStyle.cpp:
5235         (WebCore::ScrollbarThemeQStyle::hitTest):
5236         * platform/qt/ScrollbarThemeQStyle.h:
5237         (ScrollbarThemeQStyle):
5238
5239 2012-11-16  Xianzhu Wang  <wangxianzhu@chromium.org>
5240
5241         [Chromium-Android] Stack overflow in MediaControlsChromiumAndroid.cpp
5242         https://bugs.webkit.org/show_bug.cgi?id=102444
5243
5244         Reviewed by Adam Barth.
5245
5246         No new tests. Have been covered by many existing layout tests.
5247
5248         * html/shadow/MediaControlsChromiumAndroid.cpp:
5249         (WebCore::MediaControls::create): Calls createControls instead of itself.
5250
5251 2012-11-16  Andreas Kling  <akling@apple.com>
5252
5253         StyleResolver: Optimize sharing candidate evaluation for elements with shared attribute data.
5254         <http://webkit.org/b/102507>
5255
5256         Reviewed by Antti Koivisto.
5257
5258         When evaluating two elements as potential style sharing candidate, we have a whole bunch of code
5259         comparing the various attributes that would prevent sharing.
5260
5261         If the two elements both share the same ElementAttributeData, we can skip all those checks
5262         since they are guaranteed to have equal attributes.
5263
5264         Cuts the time spent in canShareStyleWithElement() by 25% on the HTML5 spec at <http://whatwg.org/c>.
5265
5266         * css/StyleResolver.cpp:
5267         (WebCore::haveIdenticalStyleAffectingAttributes):
5268         (WebCore::StyleResolver::canShareStyleWithElement):
5269
5270 2012-11-16  Byungwoo Lee  <bw80.lee@samsung.com>
5271
5272         [EFL][GTK] Build fix after r134955
5273         https://bugs.webkit.org/show_bug.cgi?id=102527
5274
5275         Reviewed by Martin Robinson.
5276
5277         Fix the EFL,GTK debug bulid fails after r134955.
5278
5279         * platform/network/soup/ResourceHandleSoup.cpp:
5280         (WebCore::ResourceHandle::continueDidReceiveAuthenticationChallenge):
5281
5282 2012-11-15  Alexey Proskuryakov  <ap@apple.com>
5283
5284         Private Browsing is a per-page setting that sets a global value
5285         https://bugs.webkit.org/show_bug.cgi?id=67870
5286
5287         Reviewed by Sam Weinig.
5288
5289         Make ResourceHandle{Mac,CFNet} use context to access storage session.
5290
5291         * WebCore.exp.in: We track less session state in WebCore now, so we need fewer
5292         exports.
5293
5294         * loader/FrameNetworkingContext.h: Added an OVERRIDE.
5295
5296         * page/Settings.cpp: (WebCore::Settings::setPrivateBrowsingEnabled): WebCore
5297         no longer keeps track of a globally enabled private CFNetwork storage session.
5298
5299         * platform/CookiesStrategy.h: Added defaultCookieStorage(). Some cookie jar methods
5300         don't have a NetworkingContext pointer, and have to use whatever a client expects
5301         them to do. Perhaps we should move those methods away from WebCore eventually.
5302
5303         * platform/network/NetworkingContext.h: Added storageSession().
5304
5305         * platform/network/ResourceHandle.h: Removed sttaic methods for dealing with global
5306         sessions.
5307
5308         * platform/network/ResourceHandleInternal.h: Added m_storageSession. We need to
5309         remember it post-creation to do things in willSendRequest. Alternatively, we could
5310         keep a reference to NetworkingContext itself.
5311
5312         * platform/network/cf/CookieJarCFNet.cpp:
5313         (WebCore::setCookiesFromDOM): currentCFHTTPCookieStorage now needs a context,
5314         there is no globally current one any more. Also, we don't really expect cookie
5315         stirage to be 0 when not using NSURLConnection.
5316         (WebCore::cookiesForDOM): Ditto.
5317         (WebCore::cookieRequestHeaderFieldValue): Ditto.
5318         (WebCore::cookiesEnabled): Ditto.
5319         (WebCore::getRawCookies): Ditto.
5320         (WebCore::deleteCookie): Ditto.
5321         (WebCore::getHostnamesWithCookies): Ditto.
5322         (WebCore::deleteCookiesForHostname): Ditto.
5323         (WebCore::deleteAllCookies): Ditto.
5324         * platform/network/cf/CookieStorageCFNet.cpp:
5325         (WebCore::currentCFHTTPCookieStorage): Use a context.
5326         (WebCore::defaultCFHTTPCookieStorage): Except for Windows-only override session,
5327         this is implemented in a strategy.
5328         (WebCore::overridenCookieStorage): Exposed the override for WebKit use on Windows.
5329
5330         * platform/network/cf/CookieStorageCFNet.h: Ditto.
5331
5332         * platform/network/cf/ResourceHandleCFNet.cpp:
5333         (WebCore::willSendRequest): Use storage session from the context, not global one.
5334         (WebCore::makeFinalRequest): Merged this into the only remaining caller. This
5335         function didn't really make any sense on its own.
5336         (WebCore::shouldRelaxThirdPartyCookiePolicy): Factored out of createCFURLConnection
5337         to match Mac.
5338         (WebCore::ResourceHandle::createCFURLConnection): While merging makeFinalRequest()
5339         in, removed some seemingly nonsensical code that was getting and immediately re-applying
5340         cookie storage accept policy.
5341         (WebCore::ResourceHandle::start): Store context->storageSession() for use in willSendRequest.
5342         (WebCore::ResourceHandle::willSendRequest): Apply the stored session, not global one.
5343         (WebCore::ResourceHandle::storageSession): An accessor for static methods that cannot
5344         access "d".
5345         (WebCore::ResourceHandle::loadResourceSynchronously): Store context->storageSession() for use in willSendRequest.
5346         (WebCore::ResourceHandle::willLoadFromCache): Don't call makeFinalRequest here.
5347         It didn't match Mac, and nothing in makeFinalRequest should have affected the result.
5348
5349         * platform/network/cf/ResourceRequestCFNet.cpp: (WebCore::ResourceRequest::doUpdatePlatformRequest):
5350         This function used to apply current storage session to every request for no apparent
5351         reason.
5352
5353         * platform/network/mac/CookieJarMac.mm:
5354         (WebCore::cookiesForDOM): Changed to pass context to currentCFHTTPCookieStorage.
5355         (WebCore::cookieRequestHeaderFieldValue): Ditto.
5356         (WebCore::setCookiesFromDOM): Ditto.
5357         (WebCore::cookiesEnabled): Ditto.
5358         (WebCore::getRawCookies): Ditto.
5359         (WebCore::deleteCookie): Ditto.
5360         (WebCore::getHostnamesWithCookies): Ditto.
5361         (WebCore::deleteCookiesForHostname): Ditto.
5362         (WebCore::deleteAllCookies): Ditto.
5363         * platform/network/mac/ResourceHandleMac.mm:
5364         (WebCore::shouldRelaxThirdPartyCookiePolicy): There was no need to special case
5365         null currentCFHTTPCookieStorage, WKSI handles that internally. Added a context
5366         argument, so that the function can access current session.
5367         (WebCore::ResourceHandle::createNSURLConnection): Updated for other code changes.
5368         (WebCore::ResourceHandle::start): Store context->storageSession() for use in willSendRequest.
5369         (WebCore::ResourceHandle::willLoadFromCache): Style fix.
5370         (WebCore::ResourceHandle::loadResourceSynchronously): Store context->storageSession()
5371         for use in willSendRequest. 
5372         (WebCore::ResourceHandle::willSendRequest): Use stored session, not global one.
5373
5374 2012-11-16  Dimitri Glazkov  <dglazkov@chromium.org>
5375
5376         [Chromium] Land a proper fix for r134939.
5377
5378         * WebCore.gyp/WebCore.gyp: Added exclusion for "atk".
5379         * WebCore.gypi: Put the accessibility/atk directory back into WebCore.gypi.
5380
5381 2012-11-16  Dimitri Glazkov  <dglazkov@chromium.org>
5382
5383         [Chromium] Just yank the whole accessibility/atk dir out of WebCore.gypi.
5384
5385 2012-11-16  Dimitri Glazkov  <dglazkov@chromium.org>
5386
5387         [Chromium] Updated WebCore.gypi after r134939.
5388
5389         * WebCore.gypi: Renamed acessibility/gtk to accessibility/atk.
5390
5391 2012-11-16  Martin Robinson  <mrobinson@igalia.com>
5392
5393         [GTK] Move CredentialBackingStore usage from GtkAuthenticationDialog to ResourceHandleSoup
5394         https://bugs.webkit.org/show_bug.cgi?id=101840
5395
5396         Reviewed by Gustavo Noronha Silva.
5397
5398         Make ResourceHandleSoup aware of per-session CredentialStorage and persistent CredentialStorage.
5399         Persistent credential storage interaction is moved from GtkAuthenticationDialog, so that it can
5400         be used whether or not GtkAuthenticationDialog is used or not. We try to properly handle redirects
5401         in the manner that the CFNet backend does.
5402
5403         No new tests. There are tests for this behavior, but they cannot be activated until we finish
5404         plumbing this through to the API layer. Once that patch lands, the tests will be turned on.
5405
5406         * platform/gtk/GtkAuthenticationDialog.cpp: No longer store credentials into the persistent
5407         storage manually, instead rely on ResourceHandleSoup. Also, we no longer get proposed credentials
5408         from the persistent storage here as well. They are pre-loaded by the ResourceHanndle.
5409         * platform/gtk/GtkAuthenticationDialog.h: Remove callbacks and members associated with saving
5410         credentials to the persistent credential store.
5411         * platform/network/ResourceHandle.h:
5412         (ResourceHandle): Add a method which is used to continue asynchronously after looking for
5413         proposed credentials in the persistent credential store.
5414         * platform/network/ResourceHandleInternal.h: Add a member which tracks persistent credentials to be added once we know
5415         an authentication succeeded.
5416         * platform/network/gtk/CredentialBackingStore.cpp:
5417         (CredentialForChallengeAsyncReadyCallbackData): Added this data structure used for asynchronous access
5418         of stored credentials.
5419         (WebCore::credentialForChallengeAsyncReadyCallback): Ditto for this callback.
5420         (WebCore::CredentialBackingStore::credentialForChallenge): Make this method asynchronous.
5421         * platform/network/gtk/CredentialBackingStore.h:
5422         (CredentialBackingStore): Update method signatures for for making credentialForChallenge asynchronous.
5423         * platform/network/soup/AuthenticationChallenge.h:
5424         (WebCore::AuthenticationChallenge::setProposedCredential): Added a setter so that ResourceHandleSoup
5425         can set proposed credentials from the persistent credential store.
5426         * platform/network/soup/ResourceHandleSoup.cpp:
5427         (WebCore::gotHeadersCallback): For GTK+ save any pending credential in the persistent credential storage
5428         if the authentication succeeded.
5429         (WebCore::applyAuthenticationToRequest): Added this method which generically embeds stored credentials
5430         in the request URI. This is the method that Soup uses to override any soup-stored session credential.
5431         (WebCore::restartedCallback): Strip credentials for requests that span a security origin. Handle
5432         authenticating requests from the session store.
5433         (WebCore::createSoupRequestAndMessageForHandle): Make the local request reference mutable.
5434         (WebCore::ResourceHandle::start): Remove some code which is now part of applyAuthenticationToRequest.
5435         Call applyAuthenticationToRequest and clear the user and password members like the CFNet backend does.
5436         (WebCore::getCredentialFromPersistentStoreCallback): Added this callback for getting persistently stored credentials.
5437         (WebCore::ResourceHandle::continueDidReceiveAuthenticationChallenge): Split out didReceiveAuthenticationChallenge
5438         into this asynchronous bit.
5439         (WebCore::ResourceHandle::didReceiveAuthenticationChallenge): For GTK+ continue handling this situation after
5440         first looking in the persistent credential store.
5441         (WebCore::ResourceHandle::receivedCredential): Store session credentials in the session storage, which is
5442         at the moment a redundant version of the Soup session storage and also prepare any persistent credentials
5443         for storage later (see gotHeadersCallback).
5444
5445 2012-11-16  Erik Arvidsson  <arv@chromium.org>
5446
5447         Update DOMException name: TypeMismatchError
5448         https://bugs.webkit.org/show_bug.cgi?id=102418
5449
5450         Reviewed by Kentaro Hara.
5451
5452         Patch 17 of 25 to update DOMException name to match the spec and Firefox.
5453
5454         Updated existing tests.
5455
5456         * dom/DOMCoreException.cpp:
5457         (WebCore):
5458         * dom/ExceptionCode.h:
5459
5460 2012-11-16  Balazs Kelemen  <kbalazs@webkit.org>
5461
5462         Coordinated Graphics: support the "freeze animations" API
5463         https://bugs.webkit.org/show_bug.cgi?id=100703
5464
5465         Reviewed by Noam Rosenthal.
5466
5467         Typo fix after previous patch.
5468
5469         No new tests, it's just a typo that only takes effect in the browser.
5470
5471         * platform/graphics/GraphicsLayerAnimation.cpp:
5472         (WebCore::GraphicsLayerAnimation::GraphicsLayerAnimation):
5473         Initialize members.
5474
5475 2012-11-16  Dan Carney  <dcarney@google.com>
5476
5477         add 7 bit strings capabilities to the v8 binding layer
5478         https://bugs.webkit.org/show_bug.cgi?id=91850
5479
5480         Reviewed by Adam Barth.
5481
5482         This change enables the v8 binding layer to make use of webkit's
5483         8 bit string capabilities. Using 8 bit strings leads to certain
5484         benchmark performance improvemnts as can be seen in
5485         https://bug-91850-attachments.webkit.org/attachment.cgi?id=163334.
5486
5487         No new tests.  Test coverage already extensive.
5488
5489         * bindings/v8/V8PerIsolateData.cpp:
5490         (WebCore::V8PerIsolateData::visitExternalStrings):
5491         * bindings/v8/V8StringResource.cpp:
5492         (StringTraits):
5493         (WebCore::false):
5494         (WebCore):
5495         (WebCore::true):
5496         (WebCore::v8StringToWebCoreString):
5497         * bindings/v8/V8ValueCache.cpp:
5498         (WebCore::makeExternalString):
5499         (WebCore::WebCoreStringResourceBase::toWebCoreStringResourceBase):
5500         (WebCore):
5501         (WebCore::WebCoreStringResourceBase::visitStrings):
5502         * bindings/v8/V8ValueCache.h:
5503         (WebCoreStringResourceBase):
5504         (WebCore::WebCoreStringResourceBase::WebCoreStringResourceBase):
5505         (WebCore::WebCoreStringResourceBase::~WebCoreStringResourceBase):
5506         (WebCore::WebCoreStringResourceBase::atomicString):
5507         (WebCore::WebCoreStringResourceBase::memoryConsumption):
5508         (WebCoreStringResource16):
5509         (WebCore::WebCoreStringResource16::WebCoreStringResource16):
5510         (WebCore):
5511         (WebCoreStringResource8):
5512         (WebCore::WebCoreStringResource8::WebCoreStringResource8):
5513
5514 2012-11-16  Erik Arvidsson  <arv@chromium.org>
5515
5516         Update DOMException name: InvalidAccessError
5517         https://bugs.webkit.org/show_bug.cgi?id=102400
5518
5519         Reviewed by Kentaro Hara.
5520
5521         Patch 15 of 25 to update DOMException name to match the spec and Firefox.
5522
5523         Updated existing tests.
5524
5525         * dom/DOMCoreException.cpp:
5526
5527 2012-11-16  Alexandru Chiculita  <achicu@adobe.com>
5528
5529         [Texmap][CSS Shaders] Make the CustomFilterValidatedProgram maintain the platform compiled program
5530         https://bugs.webkit.org/show_bug.cgi?id=102414
5531
5532         Reviewed by Noam Rosenthal.
5533
5534         Added WebCore classes needed for the WebKit2 implementation of Texture Mapper to keep a reference to the 
5535         platform compiled custom filter. It is just used to maintain the life-time of the objects. WebKit2 injects a
5536         client in TextureMapperPlatformCompiledProgram and receives a callback when the custom filter program is not
5537         used to render any layer on the page. 
5538
5539         Note that CustomFilterValidatedProgram are reused across multiple elements of the same page. Also, the instances
5540         are reused across frames, so animations should reuse the same pre-validated program. In this case, the mechanism is
5541         extended and reused in the platform compositor.
5542         
5543         No new tests, existing tests for CSS Custom Filters already cover this path.
5544
5545         * CMakeLists.txt:
5546         * GNUmakefile.am:
5547         * GNUmakefile.list.am:
5548         * Target.pri:
5549         * WebCore.pri:
5550         * platform/graphics/filters/CustomFilterValidatedProgram.cpp:
5551         (WebCore):
5552         * platform/graphics/filters/CustomFilterValidatedProgram.h:
5553         (WebCore):
5554         (CustomFilterValidatedProgram):
5555         * platform/graphics/filters/texmap/CustomFilterValidatedProgramTextureMapper.cpp: Added.
5556         (WebCore):
5557         (WebCore::CustomFilterValidatedProgram::platformCompiledProgram): Platform implementation for creating and deleting the reference.
5558         (WebCore::CustomFilterValidatedProgram::platformInit):
5559         (WebCore::CustomFilterValidatedProgram::platformDestroy):
5560         * platform/graphics/filters/texmap/TextureMapperPlatformCompiledProgram.h: Added.
5561         (WebCore):
5562         (TextureMapperPlatformCompiledProgramClient):
5563         (WebCore::TextureMapperPlatformCompiledProgramClient::ref):
5564         (WebCore::TextureMapperPlatformCompiledProgramClient::deref):
5565         (TextureMapperPlatformCompiledProgram):
5566         Stores a link to a TextureMapperPlatformCompiledProgramClient. It's main purpose is to call unref on the client when
5567         the shader is not needed anymore. WebKit2 can use that to delete the corresponding shader from the compositor side.
5568         (WebCore::TextureMapperPlatformCompiledProgram::create):
5569         (WebCore::TextureMapperPlatformCompiledProgram::setClient): Used by WebKit2 to inject the platform client.
5570         (WebCore::TextureMapperPlatformCompiledProgram::client):
5571         (WebCore::TextureMapperPlatformCompiledProgram::TextureMapperPlatformCompiledProgram):
5572
5573 2012-11-16  Andreas Kling  <akling@apple.com>
5574
5575         Short-circuit Element::hasEquivalentAttributes() if elements share attribute data.
5576         <http://webkit.org/b/102498>
5577
5578         Reviewed by Antti Koivisto.
5579
5580         Add a fast path to hasEquivalentAttributes() that checks if both elements are using
5581         the same ElementAttributeData.
5582
5583         * dom/Element.cpp:
5584         (WebCore::Element::hasEquivalentAttributes):
5585
5586 2012-11-16  Zeno Albisser  <zeno@webkit.org>
5587
5588         [Qt] Adding a null pointer check for currentContext to GraphicsContext3DQt.
5589         https://bugs.webkit.org/show_bug.cgi?id=102360
5590
5591         QOpenGLContext::currentContext() will return null, in case there is
5592         no current context. Therefore currentContext must be null-checked
5593         before it can be reused.
5594         Making a context current on a null-surface on the other hand is
5595         perfectly possible.
5596
5597         Reviewed by Kenneth Rohde Christiansen.
5598
5599         * platform/graphics/qt/GraphicsContext3DQt.cpp:
5600         (WebCore::GraphicsContext3DPrivate::blitMultisampleFramebufferAndRestoreContext):
5601
5602 2012-11-16  Eugene Klyuchnikov  <eustas.bug@gmail.com>
5603
5604         Web Inspector: Workaround to show shortcuts for panels that hasn't been loaded.
5605         https://bugs.webkit.org/show_bug.cgi?id=102488
5606
5607         Reviewed by Vsevolod Vlasov.
5608
5609         Panels are lazily loaded / instantiated.
5610         Panel constructors register keyboard shortcuts.
5611
5612         When user open shortcuts screen all panel should be loaded.
5613         Otherwise some shortcuts will be missing.
5614
5615         * inspector/front-end/ShortcutsScreen.js: Added callback invokation.
5616         * inspector/front-end/inspector.js:
5617         Provided callback that loads all panels.
5618
5619 2012-11-16  Kentaro Hara  <haraken@chromium.org>
5620
5621         [V8] Remove IsSubType() from CodeGeneratorV8.pm
5622         https://bugs.webkit.org/show_bug.cgi?id=102348
5623
5624         Reviewed by Adam Barth.
5625
5626         CodeGenerator.pm has IsStrictSubType(). CodeGeneratorV8.pm should use it.
5627
5628         No tests. No change in behavior.
5629
5630         * bindings/scripts/CodeGenerator.pm:
5631         (IsSubType):
5632         * bindings/scripts/CodeGeneratorJS.pm:
5633         (GenerateImplementation):
5634         * bindings/scripts/CodeGeneratorV8.pm:
5635         (GenerateHeader):
5636         (GetInternalFields):
5637         (GenerateNormalAttrGetter):
5638         (GenerateNormalAttrSetter):
5639         (GenerateFunctionCallback):
5640         (GenerateImplementationIndexer):
5641         (GenerateToV8Converters):
5642
5643 2012-11-16  Mario Sanchez Prada  <mario@webkit.org>
5644
5645         [EFL] Share WebKit-Gtk's Accessibility implementation with others WebKit ports.
5646         https://bugs.webkit.org/show_bug.cgi?id=99578
5647
5648         Reviewed by Martin Robinson.
5649
5650         Renamed WebCore/accessibility/gtk to WebCore/accessibility/atk.
5651
5652         * GNUmakefile.am:
5653         * GNUmakefile.list.am:
5654         * accessibility/atk/AXObjectCacheAtk.cpp: Renamed from
5655         Source/WebCore/accessibility/gtk/AXObjectCacheAtk.cpp.
5656         * accessibility/atk/AccessibilityObjectAtk.cpp: Renamed from
5657         Source/WebCore/accessibility/gtk/AccessibilityObjectAtk.cpp.
5658         * accessibility/atk/WebKitAccessibleHyperlink.cpp: Renamed from
5659         Source/WebCore/accessibility/gtk/WebKitAccessibleHyperlink.cpp.
5660         * accessibility/atk/WebKitAccessibleHyperlink.h: Renamed from
5661         Source/WebCore/accessibility/gtk/WebKitAccessibleHyperlink.h.
5662         * accessibility/atk/WebKitAccessibleInterfaceAction.cpp: Renamed
5663         from Source/WebCore/accessibility/gtk/WebKitAccessibleInterfaceAction.cpp.
5664         * accessibility/atk/WebKitAccessibleInterfaceAction.h: Renamed
5665         from Source/WebCore/accessibility/gtk/WebKitAccessibleInterfaceAction.h.
5666         * accessibility/atk/WebKitAccessibleInterfaceComponent.cpp:
5667         Renamed from Source/WebCore/accessibility/gtk/WebKitAccessibleInterfaceComponent.cpp.
5668         * accessibility/atk/WebKitAccessibleInterfaceComponent.h: Renamed
5669         from Source/WebCore/accessibility/gtk/WebKitAccessibleInterfaceComponent.h.
5670         * accessibility/atk/WebKitAccessibleInterfaceDocument.cpp: Renamed
5671         from Source/WebCore/accessibility/gtk/WebKitAccessibleInterfaceDocument.cpp.
5672         * accessibility/atk/WebKitAccessibleInterfaceDocument.h: Renamed
5673         from Source/WebCore/accessibility/gtk/WebKitAccessibleInterfaceDocument.h.
5674         * accessibility/atk/WebKitAccessibleInterfaceEditableText.cpp:
5675         Renamed from Source/WebCore/accessibility/gtk/WebKitAccessibleInterfaceEditableText.cpp.
5676         * accessibility/atk/WebKitAccessibleInterfaceEditableText.h:
5677         Renamed from Source/WebCore/accessibility/gtk/WebKitAccessibleInterfaceEditableText.h.
5678         * accessibility/atk/WebKitAccessibleInterfaceHyperlinkImpl.cpp:
5679         Renamed from Source/WebCore/accessibility/gtk/WebKitAccessibleInterfaceHyperlinkImpl.cpp.
5680         * accessibility/atk/WebKitAccessibleInterfaceHyperlinkImpl.h:
5681         Renamed from Source/WebCore/accessibility/gtk/WebKitAccessibleInterfaceHyperlinkImpl.h.
5682         * accessibility/atk/WebKitAccessibleInterfaceHypertext.cpp:
5683         Renamed from Source/WebCore/accessibility/gtk/WebKitAccessibleInterfaceHypertext.cpp.
5684         * accessibility/atk/WebKitAccessibleInterfaceHypertext.h: Renamed
5685         from Source/WebCore/accessibility/gtk/WebKitAccessibleInterfaceHypertext.h.
5686         * accessibility/atk/WebKitAccessibleInterfaceImage.cpp: Renamed
5687         from Source/WebCore/accessibility/gtk/WebKitAccessibleInterfaceImage.cpp.
5688         * accessibility/atk/WebKitAccessibleInterfaceImage.h: Renamed from
5689         Source/WebCore/accessibility/gtk/WebKitAccessibleInterfaceImage.h.
5690         * accessibility/atk/WebKitAccessibleInterfaceSelection.cpp:
5691         Renamed from Source/WebCore/accessibility/gtk/WebKitAccessibleInterfaceSelection.cpp.
5692         * accessibility/atk/WebKitAccessibleInterfaceSelection.h: Renamed
5693         from Source/WebCore/accessibility/gtk/WebKitAccessibleInterfaceSelection.h.
5694         * accessibility/atk/WebKitAccessibleInterfaceTable.cpp: Renamed
5695         from Source/WebCore/accessibility/gtk/WebKitAccessibleInterfaceTable.cpp.
5696         * accessibility/atk/WebKitAccessibleInterfaceTable.h: Renamed from
5697         Source/WebCore/accessibility/gtk/WebKitAccessibleInterfaceTable.h.
5698         * accessibility/atk/WebKitAccessibleInterfaceText.cpp: Renamed
5699         from Source/WebCore/accessibility/gtk/WebKitAccessibleInterfaceText.cpp.
5700         * accessibility/atk/WebKitAccessibleInterfaceText.h: Renamed from
5701         Source/WebCore/accessibility/gtk/WebKitAccessibleInterfaceText.h.
5702         * accessibility/atk/WebKitAccessibleInterfaceValue.cpp: Renamed
5703         from Source/WebCore/accessibility/gtk/WebKitAccessibleInterfaceValue.cpp.
5704         * accessibility/atk/WebKitAccessibleInterfaceValue.h: Renamed from
5705         Source/WebCore/accessibility/gtk/WebKitAccessibleInterfaceValue.h.
5706         * accessibility/atk/WebKitAccessibleUtil.cpp: Renamed from
5707         Source/WebCore/accessibility/gtk/WebKitAccessibleUtil.cpp.
5708         * accessibility/atk/WebKitAccessibleUtil.h: Renamed from
5709         Source/WebCore/accessibility/gtk/WebKitAccessibleUtil.h.
5710         * accessibility/atk/WebKitAccessibleWrapperAtk.cpp: Renamed from
5711         Source/WebCore/accessibility/gtk/WebKitAccessibleWrapperAtk.cpp.
5712         * accessibility/atk/WebKitAccessibleWrapperAtk.h: Renamed from
5713         Source/WebCore/accessibility/gtk/WebKitAccessibleWrapperAtk.h.
5714
5715 2012-11-16  Shinya Kawanaka  <shinyak@chromium.org>
5716
5717         Changing pseudoClass (:indeterminate) should cause distribution
5718         https://bugs.webkit.org/show_bug.cgi?id=101903
5719
5720         Reviewed by Dimitri Glazkov.
5721
5722         <progress> and <input type="checkbox"> have 'indeterminate' state. When their state is changed, we have to
5723         invalidate distribution if necessary. To check it, we collect a feature that :invalidate is used in select attributes.
5724
5725         For <input>, we also have to see 'type' is changed. According to the spec, :indeterminate should match only
5726         progress element or <input type="checkbox">. So changing 'type' might also change :indeterminate state.
5727
5728         Tests: fast/dom/shadow/pseudoclass-update-indeterminate-input.html
5729                fast/dom/shadow/pseudoclass-update-indeterminate-progress.html
5730
5731         * html/HTMLInputElement.cpp:
5732         (WebCore::HTMLInputElement::updateType):
5733         (WebCore::HTMLInputElement::setIndeterminate):
5734         * html/HTMLProgressElement.cpp:
5735         (WebCore::HTMLProgressElement::didElementStateChange):
5736
5737 2012-11-16  Alexis Menard  <alexis@webkit.org>
5738
5739         Factorize the creation of primitive values with a pair into a function.
5740         https://bugs.webkit.org/show_bug.cgi?id=102485
5741
5742         Reviewed by Antti Koivisto.
5743
5744         The pattern is already existing in various call sites inside CSSParser
5745         and more will be added in the future (see bug 102104).
5746
5747         No new tests : It's a refactoring only, the tests should cover it.
5748
5749         * css/CSSParser.cpp:
5750         (WebCore):
5751         (WebCore::createPrimitiveValuePair):
5752         (WebCore::CSSParser::parseValue):
5753         (WebCore::CSSParser::parseFillSize):
5754         (WebCore::CSSParser::parseBorderImageRepeat):
5755         (WebCore::CSSParser::parseBorderRadius):
5756         (WebCore::CSSParser::parseCounter):
5757
5758 2012-11-16  Mark Pilgrim  <pilgrim@chromium.org>
5759
5760         Expand PlatformCookieJar interface to allow for other ports
5761         https://bugs.webkit.org/show_bug.cgi?id=102456
5762
5763         Reviewed by Adam Barth.
5764
5765         Add firstParty and cookieURL arguments to several functions to
5766         prepare for integrating Chromium port into new PlatformCookieJar
5767         interface.
5768
5769         * loader/CookieJar.cpp:
5770         (WebCore::cookiesEnabled):
5771         (WebCore::cookieRequestHeaderFieldValue):
5772         (WebCore::getRawCookies):
5773         * platform/network/PlatformCookieJar.h:
5774         (WebCore):
5775         * platform/network/cf/CookieJarCFNet.cpp:
5776         (WebCore::cookieRequestHeaderFieldValue):
5777         (WebCore::cookiesEnabled):
5778         (WebCore::getRawCookies):
5779         * platform/network/curl/CookieJarCurl.cpp:
5780         (WebCore::cookieRequestHeaderFieldValue):
5781         (WebCore::cookiesEnabled):
5782         (WebCore::getRawCookies):
5783         * platform/network/mac/CookieJarMac.mm:
5784         (WebCore::cookieRequestHeaderFieldValue):
5785         (WebCore::cookiesEnabled):
5786         (WebCore::getRawCookies):
5787         * platform/network/qt/CookieJarQt.cpp:
5788         (WebCore::cookieRequestHeaderFieldValue):
5789         (WebCore::cookiesEnabled):
5790         (WebCore::getRawCookies):
5791         * platform/network/soup/CookieJarSoup.cpp:
5792         (WebCore::cookieRequestHeaderFieldValue):
5793         (WebCore::cookiesEnabled):
5794         (WebCore::getRawCookies):
5795         * platform/network/win/CookieJarWin.cpp:
5796         (WebCore::cookieRequestHeaderFieldValue):
5797         (WebCore::cookiesEnabled):
5798         (WebCore::getRawCookies):
5799
5800 2012-11-16  Julien Chaffraix  <jchaffraix@webkit.org>
5801
5802         RenderGrid should have a function to resolve grid position
5803         https://bugs.webkit.org/show_bug.cgi?id=102441
5804
5805         Reviewed by Ojan Vafai.
5806
5807         The code was doing this conversion implicitly inside RenderGrid::findChildLogicalPosition.
5808         Also note that we also provided a fallback by returning LayoutPoint() (ie the (0, 0) position
5809         on the grid) if we couldn't handle the value. The explicit conversion is needed in order to
5810         support render areas and add a proper grid model to RenderGrid.
5811
5812         No expected change in behavior.
5813
5814         * rendering/RenderGrid.h:
5815         * rendering/RenderGrid.cpp:
5816         (WebCore::RenderGrid::resolveGridPosition):
5817         Added this new function to handle the conversion. We re-use Length but should never see
5818         a lot of the <length> values so I added some ASSERTs to enforce and catch that.
5819
5820         (WebCore::RenderGrid::findChildLogicalPosition):
5821         Simplified the function now that it just use resolveGridPosition.
5822
5823 2012-11-16  Ulan Degenbaev  <ulan@chromium.org>
5824
5825         [V8] Increment the amount of externally allocated memory for the receiving V8 isolate when transferring ArrayBuffer
5826         https://bugs.webkit.org/show_bug.cgi?id=94463
5827
5828         Reviewed by Kentaro Hara.
5829
5830         Call AdjustAmountOfExternalAllocatedMemory when V8ArrayBuffer is deserialized and transferred.
5831
5832         Test: ManualTests/typed-array-memory.html
5833
5834         * bindings/v8/SerializedScriptValue.cpp:
5835
5836 2012-11-16  Sheriff Bot  <webkit.review.bot@gmail.com>
5837
5838         Unreviewed, rolling out r134694.
5839         http://trac.webkit.org/changeset/134694
5840         https://bugs.webkit.org/show_bug.cgi?id=102481
5841
5842         it made API test crash on EFL port (Requested by gyuyoung on
5843         #webkit).
5844
5845         * platform/efl/RenderThemeEfl.cpp:
5846         (WebCore::fillColorsFromEdjeClass):
5847         (WebCore::RenderThemeEfl::setColorFromThemeClass):
5848         (WebCore::RenderThemeEfl::loadTheme):
5849         (WebCore::RenderThemeEfl::RenderThemeEfl):
5850         * platform/efl/RenderThemeEfl.h:
5851         (RenderThemeEfl):
5852
5853 2012-11-16  Mike West  <mkwst@chromium.org>
5854
5855         Web Inspector: Move call stack generation out of bindings.
5856         https://bugs.webkit.org/show_bug.cgi?id=101331
5857
5858         Reviewed by Yury Semikhatsky.
5859
5860         Currently, we generate stack traces for console messages at each call
5861         site. Bug 100650 has the end goal of moving all stack trace generation
5862         inside of the Inspector in order to ensure that we never send a console
5863         message without a stack trace if it's possible to generate one. This
5864         also ensures that we never generate unused call stacks.
5865
5866         This patch is the first step in that direction, moving stack trace
5867         generation out of the Console bindings, and into either Console or
5868         InspectorConsoleAgent.
5869
5870         No visible change in behavior should result; this refactoring should
5871         continue to pass all existing inspector tests.
5872
5873         * bindings/js/JSConsoleCustom.cpp:
5874         (WebCore::JSConsole::profile):
5875         (WebCore::JSConsole::profileEnd):
5876             Adjust custom JSC Console bindings to drop call stack generation.
5877         * bindings/scripts/CodeGeneratorJS.pm:
5878         (GenerateCallWith):
5879         * bindings/scripts/CodeGeneratorV8.pm:
5880         (GenerateCallWith):
5881             Drop call stack generation from JSC and V8 bindings.
5882         * bindings/scripts/CodeGeneratorGObject.pm:
5883             Skip timeEnd explicitly in these bindings; it used to include
5884             ScriptArguments, which autoskipped it. Now it doesn't, so it needs
5885             to be called out on its own.
5886         * bindings/v8/ScriptCallStackFactory.cpp:
5887         (WebCore::createScriptCallStackForConsole):
5888         (WebCore::createScriptCallStack):
5889         (WebCore):
5890         * bindings/v8/ScriptCallStackFactory.h:
5891         (WebCore):
5892             Add 'createScriptCallStack(ScriptState*, size_t)' to V8's
5893             ScriptCallStackFactory in order to match JCS' implementation.
5894             It simply delegates to 'createScriptCallStackForConsole', which
5895             now also accepts a 'maxStackSize' parameter.
5896         * bindings/v8/custom/V8ConsoleCustom.cpp:
5897         (WebCore::V8Console::traceCallback):
5898         (WebCore::V8Console::assertCallback):
5899         (WebCore::V8Console::profileCallback):
5900         (WebCore::V8Console::profileEndCallback):
5901             Adjust custom V8 bindings to drop call stack generation.
5902         * inspector/InspectorConsoleAgent.cpp:
5903         (WebCore::InspectorConsoleAgent::addMessageToConsole):
5904             With the eventual goal of getting rid of the call stack parameter
5905             entirely, this patch drops it from one version of
5906             'addMessageToConsole' (replacing it with ScriptState*), and creates
5907             a new version that only accepts a call stack. We should be able to
5908             migrate most (all?) external call sites over to the arguments
5909             version in future patches.
5910         (WebCore):
5911         (WebCore::InspectorConsoleAgent::count):
5912             Count takes 'ScriptState*' instead of a call stack, and generates
5913             the stack as needed.
5914         * inspector/InspectorConsoleAgent.h:
5915         (InspectorConsoleAgent):
5916         * inspector/InspectorConsoleInstrumentation.h:
5917         (WebCore::InspectorInstrumentation::addMessageToConsole):
5918         (WebCore):
5919         (WebCore::InspectorInstrumentation::consoleCount):
5920         * inspector/InspectorInstrumentation.cpp:
5921         (WebCore):
5922         (WebCore::InspectorInstrumentation::addMessageToConsoleImpl):
5923         (WebCore::InspectorInstrumentation::consoleCountImpl):
5924         * inspector/InspectorInstrumentation.h:
5925         (InspectorInstrumentation):
5926             Changes the InspectorInstrumentation pipeline to match the
5927             InspectorConsoleAgent changes.
5928         * page/Console.cpp:
5929         (WebCore::Console::addMessage):
5930             We now (always) generate one frame of a stack trace in order to
5931             populate line numbers and caller URLs. If we need to print the whole
5932             trace here, we generate a full stack.
5933         (WebCore::Console::debug):
5934         (WebCore::Console::error):
5935         (WebCore::Console::info):
5936         (WebCore::Console::log):
5937         (WebCore::Console::warn):
5938         (WebCore::Console::dir):
5939         (WebCore::Console::dirxml):
5940         (WebCore::Console::clear):
5941         (WebCore::Console::trace):
5942         (WebCore::Console::assertCondition):
5943         (WebCore::Console::count):
5944         (WebCore::Console::markTimeline):
5945         (WebCore::Console::timeEnd):
5946         (WebCore::Console::timeStamp):
5947         (WebCore::Console::group):
5948         (WebCore::Console::groupCollapsed):
5949         (WebCore::Console::profile):
5950         (WebCore::Console::profileEnd):
5951             s/ScriptCallStack/ScriptState*/g. Also, printing the stack trace
5952             has been moved out of 'trace' and into 'addMessage'.
5953         * page/Console.h:
5954         (Console):
5955         * page/Console.idl:
5956             Drop the call stack, add the script state.
5957         * workers/WorkerContext.cpp:
5958         (WebCore::WorkerContext::addMessageToWorkerConsole):
5959             Use the new, explicitly call stacked addMessageToConsole. We'll kill
5960             this in a future patch.
5961
5962 2012-11-16  Marja Hölttä  <marja@chromium.org>
5963
5964         Add initiator to CachedResourceRequest.
5965         https://bugs.webkit.org/show_bug.cgi?id=101935
5966
5967         Reviewed by Adam Barth.
5968
5969         Motivation: Chromium needs to know which elements request a
5970         resource (such as an image or a script) (bug 92761). In addition,
5971         for exposing resource timing information (bug 84883) we need to
5972         store the initiator, and this is the first step towards it.
5973
5974         No new tests: No visible change in behavior.
5975
5976         * CMakeLists.txt:
5977         * GNUmakefile.list.am:
5978         * Target.pri:
5979         * WebCore.gypi:
5980         * WebCore.vcproj/WebCore.vcproj:
5981         * WebCore.xcodeproj/project.pbxproj:
5982         * css/CSSCursorImageValue.cpp:
5983         (WebCore::CSSCursorImageValue::cachedImage):
5984         * css/CSSFontFaceSrcValue.cpp:
5985         (WebCore::CSSFontFaceSrcValue::cachedFont):
5986         * css/CSSImageSetValue.cpp:
5987         (WebCore::CSSImageSetValue::cachedImageSet):
5988         * css/CSSImageValue.cpp:
5989         (WebCore::CSSImageValue::cachedImage):
5990         * css/CSSImageValue.h:
5991         (WebCore):
5992         (CSSImageValue):
5993         * css/StyleResolver.cpp:
5994         (WebCore::StyleResolver::loadPendingImage):
5995         * css/StyleRuleImport.cpp:
5996         (WebCore::StyleRuleImport::requestStyleSheet):
5997         * css/WebKitCSSSVGDocumentValue.cpp:
5998         (WebCore::WebKitCSSSVGDocumentValue::load):
5999         * css/WebKitCSSShaderValue.cpp:
6000         (WebCore::WebKitCSSShaderValue::cachedShader):
6001         * dom/ScriptElement.cpp:
6002         (WebCore::ScriptElement::requestScript):
6003         * html/HTMLLinkElement.cpp:
6004         (WebCore::HTMLLinkElement::process):
6005         * html/parser/CSSPreloadScanner.cpp:
6006         (WebCore::CSSPreloadScanner::emitRule):
6007         * html/parser/CSSPreloadScanner.h:
6008         (CSSPreloadScanner):
6009         * html/parser/HTMLPreloadScanner.cpp:
6010         (WebCore::PreloadTask::preload):
6011         * loader/ImageLoader.cpp:
6012         (WebCore::ImageLoader::updateFromElement):
6013         * loader/cache/CachedResourceLoader.cpp:
6014         (WebCore::CachedResourceLoader::requestImage):
6015         (WebCore::CachedResourceLoader::requestResource):
6016         (WebCore::CachedResourceLoader::determineRevalidationPolicy):
6017         (WebCore):
6018         (WebCore::CachedResourceLoader::preload):
6019         * loader/cache/CachedResourceLoader.h:
6020         (WebCore):
6021         (CachedResourceLoader):
6022         * loader/cache/CachedResourceRequest.cpp:
6023         (WebCore::CachedResourceRequest::CachedResourceRequest):
6024         (WebCore):
6025         (WebCore::CachedResourceRequest::~CachedResourceRequest):
6026         (WebCore::CachedResourceRequest::setInitiator):
6027         (WebCore::CachedResourceRequest::initiatorName):
6028         (WebCore::CachedResourceRequest::initiatorDocument):
6029         (WebCore::CachedResourceRequest::initiatorElement):
6030         * loader/cache/CachedResourceRequest.h:
6031         (WebCore):
6032         (WebCore::CachedResourceRequest::setOptions):
6033         (WebCore::CachedResourceRequest::defer):
6034         (WebCore::CachedResourceRequest::setDefer):
6035         (CachedResourceRequest):
6036         * loader/cache/CachedResourceRequestInitiators.cpp: Copied from Source/WebCore/loader/cache/CachedResourceRequest.cpp.
6037         (WebCore):
6038         (WebCore::CachedResourceRequestInitiators::CachedResourceRequestInitiators):
6039         * loader/cache/CachedResourceRequestInitiators.h: Copied from Source/WebCore/loader/cache/CachedResourceRequest.cpp.
6040         (WebCore):
6041         (CachedResourceRequestInitiators):
6042         (WebCore::cachedResourceRequestInitiators):
6043         * loader/icon/IconLoader.cpp:
6044         (WebCore::IconLoader::startLoading):
6045         * platform/ThreadGlobalData.cpp:
6046         (WebCore::ThreadGlobalData::ThreadGlobalData):
6047         * platform/ThreadGlobalData.h:
6048         (WebCore):
6049         (WebCore::ThreadGlobalData::cachedResourceRequestInitiators):
6050         (ThreadGlobalData):
6051         * svg/SVGFEImageElement.cpp:
6052         (WebCore::SVGFEImageElement::requestImageResource):
6053         * svg/SVGFontFaceUriElement.cpp:
6054         (WebCore::SVGFontFaceUriElement::loadFont):
6055         * svg/SVGUseElement.cpp:
6056         (WebCore::SVGUseElement::svgAttributeChanged):
6057
6058 2012-11-16  Yury Semikhatsky  <yurys@chromium.org>
6059
6060         Web Inspector: don't show an Error when evaluating a watch expression results in an exception
6061         https://bugs.webkit.org/show_bug.cgi?id=102470
6062
6063         Reviewed by Vsevolod Vlasov.
6064
6065         Dim watch expression and show "<not available>" as its value in cases when it evaluates
6066         into an exception.
6067
6068         * English.lproj/localizedStrings.js:
6069         * inspector/front-end/WatchExpressionsSidebarPane.js:
6070         (WebInspector.WatchExpressionTreeElement.prototype.update):
6071         * inspector/front-end/inspector.css:
6072
6073 2012-11-16  Vsevolod Vlasov  <vsevik@chromium.org>
6074
6075         Web Inspector: Rollout 134404 134548 134552 Temporarily rolling out to ease merging.
6076         https://bugs.webkit.org/show_bug.cgi?id=102476
6077
6078         Unreviewed rolling out.
6079
6080         * English.lproj/localizedStrings.js:
6081         * WebCore.gypi:
6082         * WebCore.vcproj/WebCore.vcproj:
6083         * inspector/compile-front-end.py:
6084         * inspector/front-end/AdvancedSearchController.js:
6085         * inspector/front-end/CallStackSidebarPane.js:
6086         (WebInspector.CallStackSidebarPane.prototype.registerShortcuts):
6087         * inspector/front-end/ConsoleView.js:
6088         (WebInspector.ConsoleView.prototype._registerShortcuts):
6089         * inspector/front-end/ElementsPanel.js:
6090         (WebInspector.ElementsPanel):
6091         (WebInspector.ElementsPanel.prototype._registerShortcuts):
6092         * inspector/front-end/ElementsPanelDescriptor.js:
6093         * inspector/front-end/GoToLineDialog.js:
6094         (WebInspector.GoToLineDialog.install):
6095         * inspector/front-end/KeyboardShortcut.js:
6096         (WebInspector.KeyboardShortcut._keyName):
6097         * inspector/front-end/Panel.js:
6098         (WebInspector.Panel.prototype.registerShortcut):
6099         (WebInspector.Panel.prototype.unregisterShortcut):
6100         (WebInspector.PanelDescriptor.prototype.panel):
6101         * inspector/front-end/ScriptsPanel.js:
6102         (WebInspector.ScriptsPanel):
6103         (WebInspector.ScriptsPanel.prototype._createDebugToolbar):
6104         (WebInspector.ScriptsPanel.prototype._createButtonAndRegisterShortcuts):
6105         * inspector/front-end/ScriptsPanelDescriptor.js:
6106         * inspector/front-end/ShortcutsScreen.js:
6107         (WebInspector.ShortcutsScreen):
6108         (WebInspector.ShortcutsSection):
6109         (WebInspector.ShortcutsSection.prototype._renderKey):
6110         * inspector/front-end/StylesSidebarPane.js:
6111         (WebInspector.StylesSidebarPane.prototype.registerShortcuts):
6112         * inspector/front-end/TimelinePanel.js:
6113         (WebInspector.TimelinePanel.prototype._registerShortcuts):
6114         * inspector/front-end/TimelinePanelDescriptor.js: Removed.
6115         * inspector/front-end/WebKit.qrc:
6116         * inspector/front-end/inspector.html:
6117         * inspector/front-end/inspector.js:
6118         (WebInspector._panelDescriptors):
6119         (WebInspector._registerShortcuts):
6120
6121 2012-11-16  Eugene Klyuchnikov  <eustas.bug@gmail.com>
6122
6123         Web Inspector: Memory Timeline Crash
6124         https://bugs.webkit.org/show_bug.cgi?id=102390
6125
6126         Reviewed by Vsevolod Vlasov.
6127
6128         Crash seems to be caused by IPC overflow.
6129         Messages "ParsedScriptSource" are routed to
6130         ResourceScriptMapping.prototype.addScript that process them in time
6131         linear to number of already registered non-anonymous non-inline scripts.
6132
6133         Fixed this with replacing repreated filtering with "on-line" bucketing.
6134
6135         * inspector/front-end/ResourceScriptMapping.js:
6136         (WebInspector.ResourceScriptMapping):
6137         Removed duplicating initialization code.
6138         (WebInspector.ResourceScriptMapping.prototype.addScript):
6139         Added script bucketing by sourceURL/isInline parameters.
6140         (WebInspector.ResourceScriptMapping.prototype._scriptsForSourceURL):
6141         Avoid filterfig.
6142         (WebInspector.ResourceScriptMapping.prototype._createUISourceCode):
6143         Added outgoing muatable array safeguard.
6144         (WebInspector.ResourceScriptMapping.prototype._reset):
6145         Added type information and added two new maps.
6146
6147 2012-11-16  Helder Correia  <helder.correia@nokia.com>
6148
6149         [CoordGfx] Follow coding style on explicit constructors
6150         https://bugs.webkit.org/show_bug.cgi?id=102451
6151
6152         Reviewed by Noam Rosenthal.
6153
6154         Use the explicit keyword on single argument constructors.
6155
6156         No new tests needed.
6157
6158         * platform/graphics/texmap/GraphicsLayerTextureMapper.h:
6159         (GraphicsLayerTextureMapper):
6160         * platform/graphics/texmap/TextureMapper.h:
6161         (TextureMapper):
6162         * platform/graphics/texmap/TextureMapperBackingStore.h:
6163         (WebCore::TextureMapperTile::TextureMapperTile):
6164         * platform/graphics/texmap/TextureMapperGL.cpp:
6165         (WebCore::TextureMapperGLData::SharedGLData::SharedGLData):
6166         (WebCore::TextureMapperGLData::TextureMapperGLData):
6167         * platform/graphics/texmap/TextureMapperGL.h:
6168         (BitmapTextureGL):
6169         * platform/graphics/texmap/TextureMapperShaderManager.h:
6170         (TextureMapperShaderManager):
6171
6172 2012-11-16  Kihong Kwon  <kihong.kwon@samsung.com>
6173
6174         Add DeviceController base-class to remove duplication of DeviceXXXControler
6175         https://bugs.webkit.org/show_bug.cgi?id=96894
6176
6177         Reviewed by Hajime Morita.
6178
6179         Add DeviceController which is extracted from DeviceOrientationController to remove duplication.
6180         And soon-to-be-added DeviceMotionController and ProximityController.
6181
6182         Covered by existing tests.
6183
6184         * CMakeLists.txt:
6185         * GNUmakefile.list.am:
6186         * Target.pri:
6187         * WebCore.gypi:
6188         * WebCore.vcproj/WebCore.vcproj:
6189         * WebCore.xcodeproj/project.pbxproj:
6190         * dom/DeviceOrientationClient.h:
6191         * dom/DeviceOrientationController.cpp:
6192         Remove member functions to move to DeviceController.
6193         - addListener(), removeListener(), removeAllListeners(), isActive()
6194         (WebCore::DeviceOrientationController::DeviceOrientationController):
6195         (WebCore::DeviceOrientationController::didChangeDeviceOrientation):
6196         (WebCore::DeviceOrientationController::client):
6197         (WebCore::DeviceOrientationController::hasLastData):
6198         (WebCore::DeviceOrientationController::getLastEvent):
6199         (WebCore::DeviceOrientationController::from):
6200         (WebCore):
6201         * dom/DeviceOrientationController.h:
6202         (WebCore):
6203         (WebCore::DeviceOrientationController::~DeviceOrientationController):
6204         (DeviceOrientationController):
6205         * dom/Document.cpp:
6206         Remove suspendEventsForAllListeners() and resumeEventsForAllListeners() function calls.
6207         These calls can be made by checking activeDOMObjectsAreSuspended() and activeDOMObjectsAreStopped() before dispatchEvent.
6208         (WebCore::Document::suspendActiveDOMObjects):
6209         (WebCore::Document::resumeActiveDOMObjects):
6210         * loader/EmptyClients.h:
6211         (EmptyDeviceClient):
6212         (WebCore::EmptyDeviceClient::startUpdating):
6213         (WebCore::EmptyDeviceClient::stopUpdating):
6214         (WebCore):
6215         * page/DOMWindow.cpp:
6216         (WebCore::DOMWindow::addEventListener):
6217         (WebCore::DOMWindow::removeEventListener):
6218         (WebCore::DOMWindow::removeAllEventListeners):
6219         * page/DeviceClient.h: Added.
6220         (WebCore):
6221         (DeviceClient):
6222         (WebCore::DeviceClient::~DeviceClient):
6223         * page/DeviceController.cpp: Added.
6224         DeviceController has extracted functions from DeviceOrientationController and DeviceMotionController.
6225         - addDeviceEventListener(), removeDeviceEventlistener(), removeAllDeviceEventListeners(), dispatchDeviceEvent()
6226         All kind of device event controller which has DeviceClient can be inherited from DeviceController.
6227         (WebCore):
6228         (WebCore::DeviceController::DeviceController):
6229         (WebCore::DeviceController::addDeviceEventListener):
6230         (WebCore::DeviceController::removeDeviceEventListener):
6231         (WebCore::DeviceController::removeAllDeviceEventListeners):
6232         (WebCore::DeviceController::dispatchDeviceEvent):
6233         (WebCore::DeviceController::fireDeviceEvent):
6234         * page/DeviceController.h: Added.
6235         (WebCore):
6236         (DeviceController):
6237         (WebCore::DeviceController::~DeviceController):
6238         (WebCore::DeviceController::isActive):
6239         (WebCore::DeviceController::client):
6240         (WebCore::DeviceController::hasLastData):
6241         (WebCore::DeviceController::getLastEvent):
6242
6243 2012-11-16  Alexander Pavlov  <apavlov@chromium.org>
6244
6245         Web Inspector: [Overrides] Device metrics get reset on navigation, yet remain in the Overrides view
6246         https://bugs.webkit.org/show_bug.cgi?id=102467
6247
6248         Reviewed by Pavel Feldman.
6249
6250         Restore the device metrics overrides from the inspector cookie in InspectorPageAgent::restore().
6251         Drive-by: move the script execution and FPS counter display state restoration from enable() into restore(),
6252         so that they will get restored only upon page navigation, not upon any agent enablement.
6253
6254         * inspector/InspectorPageAgent.cpp:
6255         (WebCore::InspectorPageAgent::restore): Restore device metrics overrides, script execution and FPS counter display state.
6256         (WebCore::InspectorPageAgent::enable): Don't restore script execution and FPS counter display state on any enablement.
6257
6258 2012-11-16  Sheriff Bot  <webkit.review.bot@gmail.com>
6259
6260         Unreviewed, rolling out r134908.
6261         http://trac.webkit.org/changeset/134908
6262         https://bugs.webkit.org/show_bug.cgi?id=102473
6263
6264         Broke the Apple Windows Debug build. (Requested by dydx on
6265         #webkit).
6266
6267         * WebCore.exp.in:
6268         * dom/ViewportArguments.cpp:
6269         (WebCore::computeViewportAttributes):
6270         * dom/ViewportArguments.h:
6271         (WebCore):
6272
6273 2012-11-16  Peter Rybin  <prybin@chromium.org>
6274
6275         Web Inspector: show internal properties in inspector frontend
6276         https://bugs.webkit.org/show_bug.cgi?id=100021
6277
6278         Reviewed by Yury Semikhatsky.
6279
6280         New field 'internalProperties' is parsed and passed via all callbacks to Object Properties section.
6281
6282         Test: inspector/debugger/properties-special.html
6283
6284         * inspector/front-end/ObjectPropertiesSection.js:
6285         (WebInspector.ObjectPropertiesSection.prototype.update.callback):
6286         (WebInspector.ObjectPropertiesSection.prototype.update):
6287         (.callback):
6288         (WebInspector.ObjectPropertyTreeElement.populate):
6289         (.processProperties):
6290         (WebInspector.ArrayGroupingTreeElement._populateAsFragment):
6291         (WebInspector.ArrayGroupingTreeElement._populateNonIndexProperties):
6292         * inspector/front-end/RemoteObject.js:
6293         (WebInspector.RemoteObject.prototype.set else):
6294
6295 2012-11-06  Alexander Pavlov  <apavlov@chromium.org>
6296
6297         Web Inspector: metrics, geolocation, orientation overrides do not belong to the settings panel
6298         https://bugs.webkit.org/show_bug.cgi?id=93691
6299
6300         Reviewed by Vsevolod Vlasov.
6301
6302         - The Overrides tab contents have been moved from the Settings dialog into a brand new Overrides drawer view,
6303         both receiving a new, more light-weight design.
6304         - The Cog button now brings up a popup menu with the "Overrides" and "Settings" items.
6305
6306         * WebCore.gypi:
6307         * WebCore.vcproj/WebCore.vcproj:
6308         * inspector/compile-front-end.py:
6309         * inspector/front-end/ContextMenu.js:
6310         (WebInspector.ContextMenu.prototype.showSoftMenu): Display the ContextMenu as a soft menu.
6311         * inspector/front-end/OverridesView.js: Copied from Source/WebCore/inspector/front-end/SettingsScreen.js.
6312         (WebInspector.OverridesView.appendBlockTo):
6313         (WebInspector.OverridesView):
6314         (WebInspector.OverridesView.showInDrawer):
6315         (WebInspector.OverridesView.prototype.get listener):
6316         (WebInspector.OverridesView.prototype._createUserAgentSelectRowElement.get const):
6317         (WebInspector.OverridesView.prototype._createUserAgentSelectRowElement.textDoubleClicked):
6318         (WebInspector.OverridesView.prototype._createUserAgentSelectRowElement.textChanged):
6319         (WebInspector.OverridesView.prototype._createUserAgentSelectRowElement.set checkboxClicked):
6320         (WebInspector.OverridesView.prototype._createUserAgentSelectRowElement):
6321         (WebInspector.OverridesView.prototype._createInput):
6322         (WebInspector.OverridesView.prototype._onMetricsCheckboxClicked):
6323         (WebInspector.OverridesView.prototype._applyDeviceMetricsUserInput):
6324         (WebInspector.OverridesView.prototype.):
6325         (WebInspector.OverridesView.prototype.set if):
6326         (WebInspector.OverridesView.prototype._createDeviceMetricsElement.swapDimensionsClicked):
6327         (WebInspector.OverridesView.prototype._createDeviceMetricsElement):
6328         (WebInspector.OverridesView.prototype._onGeolocationOverrideCheckboxClicked):
6329         (WebInspector.OverridesView.prototype._applyGeolocationUserInput):
6330         (WebInspector.OverridesView.prototype._setGeolocationPosition):
6331         (WebInspector.OverridesView.prototype._createGeolocationOverrideElement):
6332         (WebInspector.OverridesView.prototype._onDeviceOrientationOverrideCheckboxClicked):
6333         (WebInspector.OverridesView.prototype._applyDeviceOrientationUserInput):
6334         (WebInspector.OverridesView.prototype._setDeviceOrientation):
6335         (WebInspector.OverridesView.prototype._createDeviceOrientationOverrideElement):
6336         * inspector/front-end/ScriptsPanel.js:
6337         (WebInspector.ScriptsPanel): Fix the "DOM Breakpoints" pane move upon the panel creation.
6338         * inspector/front-end/SettingsScreen.js:
6339         (WebInspector.SettingsTab):
6340         (WebInspector.SettingsTab.prototype._appendSection):
6341         (WebInspector.GenericSettingsTab):
6342         (WebInspector.ExperimentsSettingsTab):
6343         (WebInspector.SettingsController): Implement the popup menu upon the button click.
6344         (WebInspector.SettingsController.prototype.showOverrides):
6345         (WebInspector.SettingsController.prototype.showSettings):
6346         (WebInspector.SettingsController.prototype.appendApplicableItems):
6347         (WebInspector.SettingsController.prototype._buttonPressed):
6348         (WebInspector.SettingsController.prototype._onHideSettingsScreen):
6349         (WebInspector.SettingsController.prototype.showSettingsScreen):
6350         * inspector/front-end/ShortcutsScreen.js: Add "Shortcuts" header.
6351         (WebInspector.ShortcutsScreen.prototype.createShortcutsTabView):
6352         * inspector/front-end/SoftContextMenu.js: Enable in all cases, implement the alignToCurrentTarget mode in show().
6353         (WebInspector.SoftContextMenu.prototype.show):
6354         * inspector/front-end/TabbedPane.js: Implement vertical tab layout (skipping the tab width computations).
6355         (WebInspector.TabbedPane.prototype.set verticalTabLayout):
6356         (WebInspector.TabbedPane.prototype._updateWidths):
6357         (WebInspector.TabbedPaneTab.prototype.setWidth):
6358         (WebInspector.TabbedPaneTab.prototype._createTabElement):
6359         * inspector/front-end/WebKit.qrc:
6360         * inspector/front-end/helpScreen.css: Update styles for the new Settings and Overrides look-and-feel.
6361         * inspector/front-end/inspector.css: Drive-by fix small artifacts in the soft menu and drawer view statusbar item label.
6362         (.soft-context-menu-item):
6363         (.drawer-header):
6364         * inspector/front-end/inspector.html:
6365
6366 2012-11-16  Sheriff Bot  <webkit.review.bot@gmail.com>
6367
6368         Unreviewed, rolling out r134865.
6369         http://trac.webkit.org/changeset/134865
6370         https://bugs.webkit.org/show_bug.cgi?id=102466
6371
6372         Broke the Apple Windows Debug build. (Requested by dydx on
6373         #webkit).
6374
6375         * WebCore.exp.in:
6376         * bindings/js/SerializedScriptValue.h:
6377         * testing/Internals.cpp:
6378         * testing/Internals.h:
6379         (WebCore):
6380         * testing/Internals.idl:
6381
6382 2012-11-16  Takashi Sakamoto  <tasak@google.com>
6383
6384         ASSERT_NOT_REACHED() when building a CSSOM wrapper for StyleRuleHost
6385         https://bugs.webkit.org/show_bug.cgi?id=102116
6386
6387         Reviewed by Alexander Pavlov.
6388
6389         Provide a CSSUnknownRule instance as a CSSOM wrapper for StyleRuleHost
6390         rules. Since there is no CSSOM wrapper for @host @-rules and
6391         ASSERT_NOT_REACHED is used when a CSSOM wrapper is requested,
6392         this crash occurs.
6393
6394         Tests: fast/css/at-host-cssom-crash.html
6395                inspector/styles/styles-include-host-rules-crash.html
6396
6397         * css/StyleRule.cpp:
6398         (WebCore::StyleRuleBase::createCSSOMWrapper):
6399         Return a CSSUnknownRule instance for StyleRuleHost rules instead of
6400         calling ASSERT_NOT_REACHED().
6401
6402 2012-11-16  Mikhail Pozdnyakov  <mikhail.pozdnyakov@intel.com>
6403
6404         Avoid copying of ViewportArguments in computeViewportAttributes function
6405         https://bugs.webkit.org/show_bug.cgi?id=102354
6406
6407         Reviewed by Kenneth Rohde Christiansen.
6408
6409         Since r134749 we do not need copying of ViewportArguments parameter in
6410         computeViewportAttributes() as it is not modified any more.
6411
6412         Tested by existing tests fast/viewport.
6413
6414         * WebCore.exp.in: Updated exported symbols for MAC.
6415         * dom/ViewportArguments.cpp:
6416         (WebCore::computeViewportAttributes):
6417         * dom/ViewportArguments.h:
6418         (WebCore):
6419
6420 2012-11-15  Yury Semikhatsky  <yurys@chromium.org>
6421
6422         Memory instrumentation: add code for reporting stack traces of unknown instrumented objects
6423         https://bugs.webkit.org/show_bug.cgi?id=102384
6424
6425         Reviewed by Pavel Feldman.
6426
6427         * inspector/InspectorMemoryAgent.cpp:
6428         (WebCore::MemoryInstrumentationClientImpl::checkCountedObject): return false
6429         if the check fails.
6430         * inspector/MemoryInstrumentationImpl.h:
6431         (MemoryInstrumentationClientImpl):
6432
6433 2012-11-15  Jer Noble  <jer.noble@apple.com>
6434
6435         Crash at WebCore::PluginData::pluginFileForMimeType const + 38
6436         https://bugs.webkit.org/show_bug.cgi?id=102454
6437
6438         Reviewed by Dan Bernstein.
6439
6440         NULL-check the return value of Page::pluginData().
6441
6442         * loader/SubframeLoader.cpp:
6443         (WebCore::logPluginRequest):
6444
6445 2012-11-15  Kenichi Ishibashi  <bashi@chromium.org>
6446
6447         [Chromium] Unreviewed build fix attempt on win
6448
6449         Include OpenTypeVerticalData.h
6450
6451         * platform/graphics/chromium/FontPlatformDataChromiumWin.h:
6452         (WebCore):
6453
6454 2012-11-15  Kentaro Hara  <haraken@chromium.org>
6455
6456         Unreviewed, rolling out r134881.
6457         http://trac.webkit.org/changeset/134881
6458         https://bugs.webkit.org/show_bug.cgi?id=102348
6459
6460         http/tests/appcache tests on JSC platforms are broken
6461
6462         * bindings/scripts/CodeGenerator.pm:
6463         (IsStrictSubtype):
6464         * bindings/scripts/CodeGeneratorJS.pm:
6465         (GenerateImplementation):
6466         * bindings/scripts/CodeGeneratorV8.pm:
6467         (GenerateHeader):
6468         (GetInternalFields):
6469         (IsSubType):
6470         (IsNodeSubType):
6471         (GenerateNormalAttrGetter):
6472         (GenerateNormalAttrSetter):
6473         (GenerateFunctionCallback):
6474         (GenerateImplementationIndexer):
6475         (GenerateToV8Converters):
6476
6477 2012-11-15  Viatcheslav Ostapenko  <v.ostapenko@samsung.com>
6478
6479         [TexMap][Cairo][Qt] Refactor BitmapTextureGL::updateContents().
6480         https://bugs.webkit.org/show_bug.cgi?id=102420
6481
6482         Reviewed by Gyuyoung Kim.
6483
6484         Moved out texture upload without swizzle to the separate method and changed
6485         drawRepaintCounter to use no-swizzle method. This also fixes blue background
6486         of repaint counters in Qt Minibrowser.
6487         Added condition for sub-image buffer creation to not create it if full image is
6488         uploaded. This should give noticeable improvement for platforms that do not
6489         support sub-image upload to texture.
6490
6491         Covered by existing tests.
6492
6493         * platform/graphics/texmap/TextureMapperGL.cpp:
6494         (WebCore::TextureMapperGL::drawRepaintCounter):
6495         (WebCore::BitmapTextureGL::updateContentsNoSwizzle):
6496         (WebCore):
6497         (WebCore::BitmapTextureGL::updateContents):
6498         * platform/graphics/texmap/TextureMapperGL.h:
6499         (BitmapTextureGL):
6500
6501 2012-11-15  Kent Tamura  <tkent@chromium.org>
6502
6503         A Spin button should release mouse event capturing when a modal dialog opens
6504         https://bugs.webkit.org/show_bug.cgi?id=98007
6505
6506         Reviewed by Hajime Morita.
6507
6508         Description of bug:
6509         If the mouse left button is pressed on a spin button in
6510         input[type=number] and a 'change' event handler opens a modal dialog
6511         such as alert(), a repeating timer doesn't stop and mouse event
6512         capturing isn't released even though the mouse pointer isn't on the spin
6513         button.
6514         A user will see repeating alert dialogs for a document like <input
6515         type=number value=1 onchange="if (this.value==1) {alert(...);
6516         this.value=1;}"> by clicking the up button.
6517
6518         How to solve:
6519         We should notify modal dialog or popup open to a spin button.
6520         This patch introduce PopupOpeningObserver. Chrome notifies it when
6521         any dialogs / popups is opening. SpinButtonElement implements
6522         PopupOpeningObserver and registers/unregisters itself to/from
6523         Chrome.
6524
6525         No new tests. This is a behavior change, but it's very hard to make an
6526         automated test for timer-related behavior.
6527
6528         * page/PopupOpeningObserver.h: Added.
6529         * GNUmakefile.list.am: Add PopupOpeningObserver.h
6530         * Target.pri: Ditto.
6531         * WebCore.gypi: Ditto.
6532         * WebCore.vcproj/WebCore.vcproj: Ditto.
6533         * WebCore.xcodeproj/project.pbxproj: Ditto.
6534
6535         * page/Chrome.cpp:
6536         (WebCore::Chrome::runJavaScriptAlert): Calls notifyPopupOpeningObservers.
6537         (WebCore::Chrome::runJavaScriptConfirm): Ditto.
6538         (WebCore::Chrome::runJavaScriptPrompt): Ditto.
6539         (WebCore::Chrome::createColorChooser): Ditto.
6540         (WebCore::Chrome::openDateTimeChooser):
6541         Added. Calls notifyPopupOpeningObservers before calling
6542         ChromeClient::openDateTimeChooser.
6543         (WebCore::Chrome::runOpenPanel): Calls notifyPopupOpeningObservers.
6544         (WebCore::Chrome::createPopupMenu): Ditto.
6545         (WebCore::Chrome::createSearchPopupMenu): Ditto.
6546         (WebCore::Chrome::registerPopupOpeningObserver): Added.
6547         (WebCore::Chrome::unregisterPopupOpeningObserver): Added.
6548         (WebCore::Chrome::notifyPopupOpeningObservers): Added.
6549         * page/Chrome.h: Added new members and required class/struct declarations.
6550
6551         * html/BaseChooserOnlyDateAndTimeInputType.cpp:
6552         (WebCore::BaseChooserOnlyDateAndTimeInputType::handleDOMActivateEvent):
6553         Use Chrome::openDateTimeChooser instead of ChromeClient::openDateTimeChooser.
6554         * html/shadow/PickerIndicatorElement.cpp:
6555         (WebCore::PickerIndicatorElement::openPopup): Ditto.
6556
6557         * html/shadow/SpinButtonElement.h:
6558         (SpinButtonElement): Declare willOpenPopup.
6559         * html/shadow/SpinButtonElement.cpp:
6560         (WebCore::SpinButtonElement::defaultEventHandler):
6561         Change the order of timer start and changing the value so that we
6562         can cancel the timer correctly.
6563         Calls Chrome::registerPopupOpeningObserver on starting mouse capturing.
6564         (WebCore::SpinButtonElement::willOpenPopup):
6565         Release mouse event capturing before opening a modal dialog.
6566         (WebCore::SpinButtonElement::releaseCapture):
6567         Calls Chrome::unregisterPopupOpeningObserver.
6568
6569
6570 2012-11-15  Shinya Kawanaka  <shinyak@chromium.org>
6571
6572         Chaging pseudoClass (:enabled) should cause distribution
6573         https://bugs.webkit.org/show_bug.cgi?id=101900
6574
6575         Reviewed by Dimitri Glazkov.
6576
6577         When element's 'enabled' state is changed, we have to invalidate distribution.
6578
6579         According to the spec, :enabled matches anchor/area/link element having href attribute,
6580         and several form control elements which is not disabled. However, currently :enalbed does not match
6581         anchor/area/link yet. See https://bugs.webkit.org/show_bug.cgi?id=102349
6582
6583         Tests: fast/dom/shadow/pseudoclass-update-enabled-anchor.html
6584                fast/dom/shadow/pseudoclass-update-enabled-area.html
6585                fast/dom/shadow/pseudoclass-update-enabled-button.html
6586                fast/dom/shadow/pseudoclass-update-enabled-fieldset.html
6587                fast/dom/shadow/pseudoclass-update-enabled-input.html
6588                fast/dom/shadow/pseudoclass-update-enabled-optgroup.html
6589                fast/dom/shadow/pseudoclass-update-enabled-option.html
6590                fast/dom/shadow/pseudoclass-update-enabled-select.html
6591                fast/dom/shadow/pseudoclass-update-enabled-textarea.html
6592
6593         * html/HTMLAnchorElement.cpp:
6594         (WebCore::HTMLAnchorElement::parseAttribute):
6595         * html/HTMLFormControlElement.cpp:
6596         (WebCore::HTMLFormControlElement::disabledAttributeChanged):
6597         * html/HTMLOptGroupElement.cpp:
6598         (WebCore::HTMLOptGroupElement::parseAttribute):
6599         * html/HTMLOptionElement.cpp:
6600         (WebCore::HTMLOptionElement::parseAttribute):
6601
6602 2012-11-15  Erik Arvidsson  <arv@chromium.org>
6603
6604         Update DOMException name: ValidationError
6605         https://bugs.webkit.org/show_bug.cgi?id=102416
6606
6607         Reviewed by Kentaro Hara.
6608
6609         Patch 16 of 25 to update DOMException name to match the spec and Firefox.
6610
6611         VALIDATION_ERR is historical and not used in any spec or our code.
6612
6613         * dom/DOMCoreException.cpp:
6614         * dom/ExceptionCode.h:
6615
6616 2012-11-15  Kentaro Hara  <haraken@chromium.org>
6617
6618         [V8] Remove IsSubType() from CodeGeneratorV8.pm
6619         https://bugs.webkit.org/show_bug.cgi?id=102348
6620
6621         Reviewed by Adam Barth.
6622
6623         CodeGenerator.pm has IsStrictSubType(). CodeGeneratorV8.pm should use it.
6624
6625         No tests. No change in behavior.
6626
6627         * bindings/scripts/CodeGenerator.pm:
6628         (IsSubType):
6629         * bindings/scripts/CodeGeneratorJS.pm:
6630         (GenerateImplementation):
6631         * bindings/scripts/CodeGeneratorV8.pm:
6632         (GenerateHeader):
6633         (GetInternalFields):
6634         (GenerateNormalAttrGetter):
6635         (GenerateNormalAttrSetter):
6636         (GenerateFunctionCallback):
6637         (GenerateImplementationIndexer):
6638         (GenerateToV8Converters):
6639
6640 2012-11-15  Erik Arvidsson  <arv@chromium.org>
6641
6642         Update DOMException name: NamespaceError
6643         https://bugs.webkit.org/show_bug.cgi?id=102395
6644
6645         Reviewed by Kentaro Hara.
6646
6647         Patch 14 of 25 to update DOMException name to match the spec and Firefox.
6648
6649         Updated existing tests.
6650
6651         * dom/DOMCoreException.cpp:
6652
6653 2012-11-15  Tien-Ren Chen  <trchen@chromium.org>
6654
6655         Add Settings to disable custom scrollbars on main frame
6656         https://bugs.webkit.org/show_bug.cgi?id=102323
6657
6658         Reviewed by Adam Barth.
6659
6660         Custom scrollbars on main frame don't really work well on touch devices.
6661         Add a setting to inhibit their creation.
6662
6663         No new tests. No change in default layout behavior.
6664
6665         * page/FrameView.cpp:
6666         (WebCore::FrameView::createScrollbar):
6667         * page/Settings.in:
6668
6669 2012-11-15  Rick Byers  <rbyers@chromium.org>
6670
6671         custom CSS cursors ignore hotspot values embedded in CUR files
6672         https://bugs.webkit.org/show_bug.cgi?id=100059
6673
6674         Reviewed by Kenneth Russell.
6675
6676         Add reading the hotspot values to the ICOImageDecoder (for CUR files only),
6677         and plumb it through so that the existing calls to ImageSource::getHotSpot
6678         actually return the hot spot value when there is one.
6679
6680         Tests: fast/events/mouse-cursor.html, fast/events/mouse-cursor-multiframecur.html
6681
6682         * platform/graphics/ImageSource.cpp:
6683         (WebCore::ImageSource::getHotSpot):
6684         * platform/graphics/chromium/DeferredImageDecoder.cpp:
6685         (WebCore::DeferredImageDecoder::hotSpot):
6686         (WebCore::DeferredImageDecoder::hotSpotAtIndex):
6687         * platform/graphics/chromium/DeferredImageDecoder.h:
6688         (DeferredImageDecoder):
6689         * platform/image-decoders/ImageDecoder.h:
6690         (WebCore::ImageDecoder::hotSpot):
6691         (WebCore::ImageDecoder::hotSpotAtIndex):
6692         (ImageDecoder):
6693         * platform/image-decoders/ico/ICOImageDecoder.cpp:
6694         (WebCore::ICOImageDecoder::hotSpot):
6695         (WebCore::ICOImageDecoder::hotSpotAtIndex):
6696         (WebCore::ICOImageDecoder::processDirectory):
6697         (WebCore::ICOImageDecoder::readDirectoryEntry):
6698         * platform/image-decoders/ico/ICOImageDecoder.h:
6699         (ICOImageDecoder):
6700         (IconDirectoryEntry):
6701
6702 2012-11-15  Kenichi Ishibashi  <bashi@chromium.org>
6703
6704         Make OpenTypeVerticalData be ref-counted
6705         https://bugs.webkit.org/show_bug.cgi?id=101971
6706
6707         Reviewed by Tony Chang.
6708
6709         FontCache::purgeInactiveFontData() uses mark & sweep algorithm to remove unused
6710         OpenTypeVerticalData objects. It marks only OpenTypeVerticalData which can be reached
6711         via SimpleFontData in gFontDataCache. However, OpenTypeVerticalData can be referred by
6712         SimpleFontData which resides in CSSFontFaceSource::m_fontDataTable so the algorithm can
6713         delete active OpenTypeVerticalData. To avoid deleting active OpenTypeVerticalData, make
6714         it be ref-counted.
6715
6716         No new tests. No changes in behavior. Checked manually that the use-after-free was fixed.
6717
6718         * platform/graphics/FontCache.cpp:
6719         (WebCore): Use RefPtr instead of OwnPtr for FontVerticalDataCache.
6720         (WebCore::FontCache::getVerticalData): Return PassRefPtr<OpenTypeVerticalData>.
6721         (WebCore::FontCache::purgeInactiveFontData): Follow the change of OwnPtr -> RefPtr.
6722         * platform/graphics/FontCache.h:
6723         * platform/graphics/SimpleFontData.cpp:
6724         (WebCore::SimpleFontData::SimpleFontData):
6725         * platform/graphics/SimpleFontData.h:
6726         Use RefPtr instead of raw const pointer for OpenTypeVerticalData.
6727         (WebCore::SimpleFontData::verticalData):
6728         * platform/graphics/chromium/FontPlatformDataChromiumWin.cpp:
6729         (WebCore::FontPlatformData::verticalData): Return PassRefPtr<OpenTypeVerticalData>.
6730         * platform/graphics/chromium/FontPlatformDataChromiumWin.h:
6731         (FontPlatformData):
6732         * platform/graphics/harfbuzz/FontPlatformDataHarfBuzz.cpp:
6733         (WebCore::FontPlatformData::verticalData): Ditto.
6734         * platform/graphics/harfbuzz/FontPlatformDataHarfBuzz.h:
6735         (WebCore):
6736         (FontPlatformData):
6737         * platform/graphics/opentype/OpenTypeVerticalData.h:
6738         (WebCore::OpenTypeVerticalData::create): Added.
6739         (OpenTypeVerticalData):
6740
6741 2012-11-15  Xingnan Wang  <xingnan.wang@intel.com>
6742
6743         Optimize the multiply-add in Biquad.cpp::process
6744         https://bugs.webkit.org/show_bug.cgi?id=75528
6745
6746         Reviewed by Brent Fulgham.
6747
6748         Pipeline the multiply-add with SSE2 intrinsics.
6749         Get ~45% performance improvement for the function.
6750
6751         * platform/audio/Biquad.cpp:
6752         (WebCore::Biquad::process):
6753
6754 2012-11-15  Alec Flett  <alecflett@chromium.org>
6755
6756         Add tests for explicit serialization values
6757         https://bugs.webkit.org/show_bug.cgi?id=96818
6758
6759         Reviewed by Adam Barth.
6760
6761         Expose direct access to the serialization/deserialization mechanisms
6762         of SerializedScriptValue to DumpRenderTree.
6763
6764         * testing/Internals.cpp:
6765         (WebCore::Internals::serializeObject):
6766         (WebCore):
6767         (WebCore::Internals::deserializeBuffer):
6768         * testing/Internals.h:
6769         (WebCore):
6770         * testing/Internals.idl:
6771
6772 2012-11-15  Gustavo Noronha Silva  <gns@gnome.org>
6773
6774         [GTK] Split WebCore/platform into a separate library
6775         https://bugs.webkit.org/show_bug.cgi?id=94435
6776
6777         Reviewed by Martin Robinson.
6778
6779         More people have been reporting problems when linking WebCore because
6780         the command line limit is being exceeded. Splitting WebCore a bit more
6781         is in order.
6782
6783         * GNUmakefile.am: add new libWebCorePlatform convenience library.
6784         * GNUmakefile.list.am: move list of platform/* files to its own variable.
6785
6786 2012-11-15  Luke Macpherson   <macpherson@chromium.org>
6787
6788         Remove unused macro HANDLE_INHERIT_AND_INITIAL_WITH_VALUE in StyleResolver.cpp
6789         https://bugs.webkit.org/show_bug.cgi?id=102036
6790
6791         Reviewed by Darin Adler.
6792
6793         Remove HANDLE_INHERIT_AND_INITIAL_WITH_VALUE macro, as it is not used anywhere.
6794
6795         No tests added because code is unused, and compile is enough to verify that conculsively.
6796
6797         * css/StyleResolver.cpp:
6798
6799 2012-11-15  Erik Arvidsson  <arv@chromium.org>
6800
6801         Update DOMException name: SyntaxError
6802         https://bugs.webkit.org/show_bug.cgi?id=102279
6803
6804         Reviewed by Kentaro Hara.
6805
6806         Patch 12 of 25 to update DOMException name to match the spec and Firefox.
6807
6808         Updated existing tests.
6809
6810         * dom/DOMCoreException.cpp:
6811
6812 2012-11-15  Takashi Sakamoto  <tasak@google.com>
6813
6814         [Win] key event's location does not work on Windows platform.
6815         https://bugs.webkit.org/show_bug.cgi?id=89742
6816
6817         Reviewed by Brent Fulgham.
6818
6819         As WM_KEYDOWN, WM_KEYUP, WM_SYSKEYDOWN, and WM_SYSKEYUP doesn't
6820         directly provide a virtual keycode which distinguish between left-hand
6821         and right-hand keys. To obtain a virtual keycode, we have to look at
6822         lparam, i.e. scancode and extended key bit. So if the given virtual
6823         keycode is control, shift, or menu, use MapVirtualKey with scancode and
6824         extended key bit and recreate a virtual keycode which distinguishes
6825         between left-hand and right-hand.
6826
6827         No new tests, because left-hand keys, right-hand keys layout tests
6828         have been already added.
6829
6830         * platform/win/KeyEventWin.cpp:
6831         (WebCore::windowsKeycodeWithLocation):
6832         Use wparam and lparam to recreate a virtual keycode which distinguishes
6833         between left-hand and right-hand if the given wparam (=virtual keycode)
6834         is control, shift, or menu.
6835         (WebCore):
6836         (WebCore::PlatformKeyboardEvent::PlatformKeyboardEvent):
6837         Use the newly added function to obtain windows virtual keycode.
6838
6839 2012-11-15  Joe Mason  <jmason@rim.com>
6840
6841         [BlackBerry] Don't assert when notifyAuthReceived is called with a different auth type
6842         https://bugs.webkit.org/show_bug.cgi?id=102436
6843
6844         Reviewed by Rob Buis.
6845
6846         The server type could change if we contact a site taking HTTP auth, through an HTTP proxy
6847         taking auth of its own. First we get a 407 from the proxy, and then when get past the
6848         proxy, we get a 401 from the end site - so notifyAuthReceived gets called again with auth
6849         type Proxy instead of HTTP.
6850
6851         The correct thing to do when that happens is skip the "update the auth type in the
6852         credentials" step, since these are actually new credentials and not just credentials being
6853         reused for a different auth type on the same server.
6854
6855         PR 241637
6856
6857         * platform/network/blackberry/NetworkJob.cpp:
6858         (WebCore::NetworkJob::notifyAuthReceived):
6859
6860 2012-11-15  Stephen Chenney  <schenney@chromium.org>
6861
6862         mpath elements do not clear resource lists before destruction
6863         https://bugs.webkit.org/show_bug.cgi?id=101505
6864
6865         Reviewed by Abhishek Arya.
6866
6867         The destructor for SVGMPathElement should clear its resources before
6868         deletion, so as not to leave hanging pointers in resource lists.
6869
6870         Test: svg/animations/mpath-remove-from-dependents-on-delete-crash.html
6871
6872         * svg/SVGMPathElement.cpp:
6873         (WebCore::SVGMPathElement::~SVGMPathElement): Add destructor that calls clearResourceReferences.
6874         (WebCore):
6875         * svg/SVGMPathElement.h:
6876         (SVGMPathElement): Add destructor.
6877
6878 2012-11-15  Kentaro Hara  <haraken@chromium.org>
6879
6880         Remove CodeGenerator::StripModule
6881         https://bugs.webkit.org/show_bug.cgi?id=102338
6882
6883         Reviewed by Adam Barth.
6884
6885         Now WebKit IDL files have no modules. (The Web IDL spec has no modules.)
6886         We can remove CodeGenerator::StripModule.
6887         This might break some internal builds if the internal builds are still
6888         using modules. Ping haraken@ you observe it.
6889
6890         No tests. No change in behavior.
6891
6892         * bindings/scripts/CodeGenerator.pm:
6893         (ForAllParents):
6894         (AttributeNameForGetterAndSetter):
6895         (IsStrictSubtype):
6896         * bindings/scripts/CodeGeneratorCPP.pm:
6897         (GetClassName):
6898         (GetImplClassName):
6899         (GetParentImplClassName):
6900         (GetParent):
6901         (ConversionNeeded):
6902         (GetCPPTypeGetter):
6903         (AddForwardDeclarationsForType):
6904         (AddIncludesForType):
6905         (GenerateImplementation):
6906         * bindings/scripts/CodeGeneratorGObject.pm:
6907         (GetParentClassName):
6908         (GetParentGObjType):
6909         (GetClassName):
6910         * bindings/scripts/CodeGeneratorJS.pm:
6911         (GetParentClassName):
6912         (AddIncludesForTypeInImpl):
6913         (AddIncludesForTypeInHeader):
6914         (GenerateParametersCheckExpression):
6915         (GenerateImplementation):
6916         (GenerateParametersCheck):
6917         (GetNativeTypeFromSignature):
6918         (JSValueToNative):
6919         (NativeToJSValue):
6920         * bindings/scripts/CodeGeneratorObjC.pm:
6921         (GetClassName):
6922         (GetImplClassName):
6923         (GetParentImplClassName):
6924         (GetParentAndProtocols):
6925         (GetPropertyAttributes):
6926         (ConversionNeeded):
6927         (GetObjCTypeGetter):
6928         (AddForwardDeclarationsForType):
6929         (AddIncludesForType):
6930         (GenerateImplementation):
6931         * bindings/scripts/CodeGeneratorV8.pm:
6932         (AddIncludesForType):
6933         (GenerateHeader):
6934         (IsSubType):
6935         (GenerateSingleBatchedAttribute):
6936         (GenerateImplementation):
6937         (BaseInterfaceName):
6938         (GetTypeFromSignature):
6939         (IsWrapperType):
6940
6941 2012-11-15  Luke Macpherson   <macpherson@chromium.org>
6942
6943         Make assumptions about m_parentStyle consistent within StyleResolver::applyProperty()
6944         https://bugs.webkit.org/show_bug.cgi?id=101696
6945
6946         Reviewed by Tony Chang.
6947
6948         Most of the code in StyleResolver::applyProperty assumes that isInherit implies that m_parentStyle is available.
6949         This patch ASSERTs that this assumption is correct, and removes the few existing checks to maintain consistency.
6950
6951         No new tests / covered by all existing CSS tests.
6952
6953         * css/StyleResolver.cpp:
6954         (WebCore::StyleResolver::applyProperty):
6955
6956 2012-11-15  Kentaro Hara  <haraken@chromium.org>
6957
6958         [V8] Remove redundant $interfaceName from function parameters
6959         https://bugs.webkit.org/show_bug.cgi?id=102334
6960
6961         Reviewed by Adam Barth.
6962
6963         'sub func { my $dataNode = shift; my $interfaceName = shift; }'
6964         is redundant. We can get $interfaceName by $dataNode->name.
6965
6966         No tests. No change in behavior.
6967
6968         * bindings/scripts/CodeGeneratorV8.pm:
6969         (GenerateOpaqueRootForGC):
6970         (GenerateHeader):
6971         (GenerateConstructorGetter):
6972         (GenerateNormalAttrGetter):
6973         (GenerateReplaceableAttrSetter):
6974         (GenerateNormalAttrSetter):
6975         (GenerateOverloadedFunctionCallback):
6976         (GenerateFunctionCallback):
6977         (GenerateOverloadedConstructorCallback):
6978         (GenerateSingleConstructorCallback):
6979         (GenerateConstructorCallback):
6980         (GenerateEventConstructorCallback):
6981         (GenerateTypedArrayConstructorCallback):
6982         (GenerateNamedConstructorCallback):
6983         (GenerateBatchedAttributeData):
6984         (GenerateImplementation):
6985         (GenerateToV8Converters):
6986         (GetNativeTypeForConversions):
6987
6988 2012-11-15  Simon Fraser  <simon.fraser@apple.com>
6989
6990         Ensure that scrollbar layers show debug borders
6991         https://bugs.webkit.org/show_bug.cgi?id=102429
6992
6993         Reviewed by Anders Carlsson.
6994
6995         After r133517, scrollbar layers no longer showed debug borders, which
6996         was very confusing. Fix this by explicitly calling setShowDebugBorder()
6997         on the scrollbar-related layers owned by RenderLayerCompositor
6998         and RenderLayerBacking.
6999         
7000         * rendering/RenderLayerBacking.cpp:
7001         (WebCore::RenderLayerBacking::updateDebugIndicators):
7002         * rendering/RenderLayerCompositor.cpp:
7003         (WebCore::RenderLayerCompositor::cacheAcceleratedCompositingFlags):
7004         (WebCore::RenderLayerCompositor::updateOverflowControlsLayers):
7005
7006 2012-11-15  Andreas Kling  <akling@apple.com>
7007
7008         ASSERTION FAILED: fastAttributeLookupAllowed(name) for 7 layout tests
7009         <http://webkit.org/b/102423>
7010
7011         Reviewed by Anders Carlsson.
7012
7013         Use Element::getAttributeItem() to find out if the element has a given attribute
7014         instead of fastHasAttribute() since that causes assertions for the "style" attribute.
7015
7016         * html/parser/HTMLConstructionSite.cpp:
7017         (WebCore::HTMLConstructionSite::mergeAttributesFromTokenIntoElement):
7018
7019 2012-11-15  Erik Arvidsson  <arv@chromium.org>
7020
7021         Update DOMException name: DOMStringSizeError
7022         https://bugs.webkit.org/show_bug.cgi?id=102089
7023
7024         Reviewed by Ojan Vafai.
7025
7026         Patch 2 of 25 to update DOMException name to match the spec and Firefox.
7027
7028         DOMSTRING_SIZE_ERR is historical and not used in any spec or in our code.
7029
7030         * dom/DOMCoreException.cpp:
7031         * dom/ExceptionCode.h:
7032
7033 2012-11-15  Joshua Bell  <jsbell@chromium.org>
7034
7035         IndexedDB: Indexing tests are flaky-crashing
7036         https://bugs.webkit.org/show_bug.cgi?id=102283
7037
7038         Reviewed by Tony Chang.
7039
7040         Processing the final task can cause IDBTransactionBackendImpl references to be released
7041         by all holders. Prior to looping over the tasks (or, in an even earlier implementation,
7042         swapping queues) control would fall off the end of the function. The loop termination
7043         check introduced in http://wkrev.com/134529 requires that |this| be kept alive until
7044         the method completes.
7045
7046         Test: storage/indexeddb/transaction-crash-in-tasks.html
7047
7048         * Modules/indexeddb/IDBTransactionBackendImpl.cpp:
7049         (WebCore::IDBTransactionBackendImpl::abort): Rename self => protect.
7050         (WebCore::IDBTransactionBackendImpl::commit): Rename self => protect.
7051         (WebCore::IDBTransactionBackendImpl::taskTimerFired): New self-ref.
7052
7053 2012-11-15  Elliott Sprehn  <esprehn@chromium.org>
7054
7055         MutationObserver wrapper should not be collected while still observing
7056         https://bugs.webkit.org/show_bug.cgi?id=102328
7057
7058         Reviewed by Adam Barth.
7059
7060         Make MutationObserver an ActiveDOMObject so that the wrapper is not
7061         collected while it is still observing the DOM. This is needed because
7062         the wrapper is passed into the callback and expandos on the wrapper
7063         should be preserved.
7064
7065         Test: fast/mutation/observer-wrapper-dropoff.html
7066
7067         * bindings/js/JSMutationObserverCustom.cpp:
7068         (WebCore::JSMutationObserverConstructor::constructJSMutationObserver):
7069         * bindings/v8/custom/V8MutationObserverCustom.cpp:
7070         (WebCore::V8MutationObserver::constructorCallback):
7071         * dom/MutationObserver.cpp:
7072         (WebCore::MutationObserver::create):
7073         (WebCore::MutationObserver::MutationObserver):
7074         (WebCore::MutationObserver::observationStarted):
7075         (WebCore::MutationObserver::observationEnded):
7076         * dom/MutationObserver.h:
7077         (WebCore):
7078         * dom/MutationObserver.idl:
7079
7080 2012-11-15  Tony Chang  <tony@chromium.org>
7081
7082         Generate Settings from a .in file
7083         https://bugs.webkit.org/show_bug.cgi?id=100393
7084
7085         Reviewed by Adam Barth.
7086
7087         Generate most settings from an .in file to reduce human mistakes and
7088         to make it easier to add/remove new settings.
7089
7090         I only moved settings that are easy to move at this point.  There are many more that
7091         have some minor naming inconsistencies that we can also move to Settings.in, but I'll
7092         do that in a follow up patch.
7093
7094         This doesn't generate SettingInternals.* yet-- we can do that in a follow up patch.
7095
7096         No new tests, this is a refactor.
7097
7098         * CMakeLists.txt:
7099         * DerivedSources.make: Run make_settings.pl.
7100         * DerivedSources.pri: Run make_settings.pl.
7101         * GNUmakefile.am: Run make_settings.pl.
7102         * GNUmakefile.list.am:
7103         * WebCore.exp.in: Remove functions that are now inline in the header.
7104         * WebCore.gyp/WebCore.gyp: Run action_makenames.py, which will run make_settings.pl.
7105         * WebCore.gyp/scripts/action_makenames.py:
7106         (main): Allow make_settings.pl.
7107         * WebCore.order: Remove functions that are now inline in the header.
7108         * html/ValidationMessage.cpp:
7109         (WebCore::ValidationMessage::setMessageDOMAndStartTimer): Fix a typo in "magnification".
7110         * page/Settings.cpp:
7111         (WebCore::Settings::Settings): Replace generated settings with SETTINGS_INITIALIZER_LIST.
7112         * page/Settings.h:
7113         (Settings): Replace generated settings with SETTINGS_GETTERS_AND_SETTERS and SETTINGS_MEMBER_VARIABLES.
7114         * page/Settings.in: Added.
7115         * page/make_settings.pl: Added.
7116         (defaultItemFactory):
7117         (generateCode):
7118         (generateHeader): Use a similar model as make_names.pl.
7119         (printConditionalMacros):
7120         (printGettersAndSetters):
7121         (printMemberVariables):
7122         (printGetterAndSetter):
7123         (printInitializerList):
7124         (printInitializer):
7125
7126 2012-11-15  Alpha Lam  <hclam@chromium.org>
7127
7128         [chromium] Refactoring to move logic of creating lazy decoded SkBitmap into DeferredImageDecoder
7129         https://bugs.webkit.org/show_bug.cgi?id=102019
7130
7131         Reviewed by Stephen White.
7132
7133         Goal of this change is to keep ImageDecodingStore clean and only do
7134         image caching. Logic of creating lazily decoded SkBitmaps is moved into
7135         DeferredImageDecoder.
7136
7137         In particular these two methods are moved:
7138         - ImageDecodingStore::createLazyDecodedSkBitmap
7139         - ImageDecodingStore::resizeLazyDecodedSkBitmap
7140
7141         No new tests. There is no new code (really). It is just moved from
7142         ImageDecodingStore to DeferredImageDecoder.
7143
7144         No change in behavior. Code is tested with:
7145         Unit tests: webkit_unit_tests
7146         Layout test: platform/chromium/virtual/deferred
7147
7148         * platform/graphics/chromium/DeferredImageDecoder.cpp:
7149         (WebCore::DeferredImageDecoder::isLazyDecoded):
7150         (WebCore):
7151         (WebCore::DeferredImageDecoder::resizeLazyDecodedSkBitmap):
7152         (WebCore::DeferredImageDecoder::frameBufferAtIndex):
7153         (WebCore::DeferredImageDecoder::setData):
7154         (WebCore::DeferredImageDecoder::createLazyDecodedSkBitmap):
7155         * platform/graphics/chromium/DeferredImageDecoder.h:
7156         (WebCore):
7157         (DeferredImageDecoder):
7158         * platform/graphics/chromium/ImageDecodingStore.cpp:
7159         * platform/graphics/chromium/ImageDecodingStore.h:
7160         (ImageDecodingStore):
7161         * platform/graphics/chromium/ImageFrameGenerator.cpp:
7162         (WebCore::ImageFrameGenerator::ImageFrameGenerator):
7163         * platform/graphics/chromium/ImageFrameGenerator.h:
7164         (WebCore::ImageFrameGenerator::create):
7165         (ImageFrameGenerator):
7166         * platform/graphics/skia/NativeImageSkia.cpp:
7167         (WebCore::NativeImageSkia::resizedBitmap):
7168
7169 2012-11-15  Roger Fong  <roger_fong@apple.com>
7170
7171         Unreviewed. Build fix for Windows after r134767.
7172
7173         Update vsprops and vcproj files to reflect changes to file locations in r134767.
7174
7175         * WebCore.vcproj/WebCore.vcproj:
7176         * WebCore.vcproj/WebCoreCommon.vsprops:
7177
7178 2012-11-15  Elliott Sprehn  <esprehn@chromium.org>
7179
7180         Track subframe count to avoid traversing the tree when there's no subframes
7181         https://bugs.webkit.org/show_bug.cgi?id=101821
7182
7183         Reviewed by Ojan Vafai.
7184
7185         Bug 101619 showed a 9-14% improvement from not walking the children during
7186         removeChild looking for frames when there's known to be no frames. The fix
7187         in that bug only avoids this walk when the whole document has no frames, this
7188         patch extends it to skip traversing subtrees that have no iframes by hooking
7189         the frame assignment to walk up the tree and keep track of the count of frames
7190         in the subtree on contentFrame assignment and then decrement it on disconnect.
7191
7192         No new tests, this is just a perf refactor.
7193
7194         * dom/ContainerNode.cpp:
7195         (WebCore::willRemoveChildren):
7196         * dom/ContainerNodeAlgorithms.cpp:
7197         (WebCore::ChildFrameDisconnector::collectFrameOwners):
7198         * dom/ContainerNodeAlgorithms.h:
7199         (WebCore::ChildFrameDisconnector::ChildFrameDisconnector):
7200         (ChildFrameDisconnector):
7201         (WebCore::ChildFrameDisconnector::collectFrameOwners):
7202           Renamed from collectDescendant() to better reflect what it really does.
7203         (WebCore::ChildFrameDisconnector::disconnectCollectedFrameOwners):
7204           Renamed from disconnect() to better reflect what it really does.
7205         (WebCore::ChildFrameDisconnector::disconnect):
7206           New method that does the collection of frame owners on either the root
7207           or only it's descendants.
7208         * dom/Node.cpp:
7209         (WebCore::Node::connectedSubframeCount):
7210         (WebCore::Node::incrementConnectedSubframeCount):
7211         (WebCore::Node::decrementConnectedSubframeCount):
7212         * dom/Node.h:
7213         * dom/NodeRareData.h:
7214         (WebCore::NodeRareData::NodeRareData):
7215         (WebCore::NodeRareData::connectedSubframeCount):
7216         (WebCore::NodeRareData::incrementConnectedSubframeCount):
7217         (WebCore::NodeRareData::decrementConnectedSubframeCount):
7218         * html/HTMLFrameOwnerElement.cpp:
7219         (WebCore::HTMLFrameOwnerElement::setContentFrame):
7220         (WebCore::HTMLFrameOwnerElement::disconnectContentFrame):
7221
7222 2012-11-15  Alpha Lam  <hclam@chromium.org>
7223
7224         [chromium] WebGL texImage2D fails with deferred image decoding
7225         https://bugs.webkit.org/show_bug.cgi?id=102310
7226
7227         Reviewed by Kenneth Russell.
7228
7229         Skia's implementation of GraphicsContext3D::getImageData() uses ImageSource
7230         to decode an image. When deferred image decoding is enabled this class
7231         generates an ImageFrame marked as incomplete, which WebGL rejects. This results
7232         in failing of texImage2D.
7233
7234         This change uses ImageDecoder directly instead of ImageSource. This skips
7235         the code path of deferred image decoding. This behavior is correct because
7236         GraphicsContext3D wants to decode the image differently with alpha not
7237         premultiplied and color profile applied optionally.
7238
7239         Added a test to prove this change fixed the bug.
7240
7241         Test: fast/images/webgl-teximage2d.html
7242
7243         * platform/graphics/skia/GraphicsContext3DSkia.cpp:
7244         (WebCore::GraphicsContext3D::getImageData):
7245
7246 2012-11-15  Jer Noble  <jer.noble@apple.com>
7247
7248         Further unreviewed build fix. Add explicit static_casts to avoid implicit precision warnings.
7249
7250         * platform/graphics/avfoundation/objc/WebCoreAVFResourceLoader.mm:
7251         (WebCore::WebCoreAVFResourceLoader::fulfillRequestWithResource):
7252
7253 2012-11-15  Jer Noble  <jer.noble@apple.com>
7254
7255         Unreviewed build fix. Avoid implicit precision and unused parameter warnings.
7256
7257         * platform/graphics/avfoundation/objc/WebCoreAVFResourceLoader.mm:
7258         (WebCore::WebCoreAVFResourceLoader::responseReceived):
7259         (WebCore::WebCoreAVFResourceLoader::fulfillRequestWithResource):
7260
7261 2012-11-15  Adam Barth  <abarth@webkit.org>
7262
7263         [V8] We shouldn't call deprecated V8 APIs
7264         https://bugs.webkit.org/show_bug.cgi?id=102407
7265
7266         Reviewed by Eric Seidel.
7267
7268         This patch was written by Sven Panne on the V8 team. He would prefer
7269         that we not call deprecated V8 APIs. This patch updates these call
7270         sites to more modern idioms.
7271
7272         * bindings/scripts/CodeGeneratorV8.pm:
7273         (GenerateConstructorGetter):
7274         (GenerateImplementation):
7275         * bindings/scripts/test/V8/V8TestObj.cpp:
7276         (WebCore::TestObjV8Internal::TestObjConstructorGetter):
7277         * bindings/v8/PageScriptDebugServer.cpp:
7278         (WebCore::PageScriptDebugServer::addListener):
7279         * bindings/v8/ScriptController.cpp:
7280         (WebCore::ScriptController::setContextDebugId):
7281         (WebCore::ScriptController::contextDebugId):
7282         * bindings/v8/ScriptProfiler.cpp:
7283         (WebCore::ScriptProfiler::objectByHeapObjectId):
7284             - This code doesn't seem to do anything anymore.
7285         * bindings/v8/V8DOMConfiguration.h:
7286         (WebCore::V8DOMConfiguration::configureAttribute):
7287         * bindings/v8/V8DOMWindowShell.cpp:
7288         (WebCore::setInjectedScriptContextDebugId):
7289         * bindings/v8/V8DOMWrapper.cpp:
7290         (WebCore::V8DOMWrapper::maybeDOMWrapper):
7291         (WebCore::V8DOMWrapper::isWrapperOfType):
7292         * bindings/v8/V8EventListenerList.h:
7293         (WebCore::V8EventListenerList::doFindWrapper):
7294         (WebCore::V8EventListenerList::findOrCreateWrapper):
7295         * bindings/v8/WorkerContextExecutionProxy.cpp:
7296         (WebCore::WorkerContextExecutionProxy::initializeIfNeeded):
7297         * bindings/v8/WrapperTypeInfo.h:
7298         (WebCore::WrapperTypeInfo::unwrap):
7299
7300 2012-11-15  Sheriff Bot  <webkit.review.bot@gmail.com>
7301
7302         Unreviewed, rolling out r134800 and r134805.
7303         http://trac.webkit.org/changeset/134800
7304         http://trac.webkit.org/changeset/134805
7305         https://bugs.webkit.org/show_bug.cgi?id=102417
7306
7307         This patch broke chromium port (Requested by jianli on
7308         #webkit).
7309
7310         * Modules/mediastream/RTCPeerConnection.cpp:
7311         (WebCore::RTCPeerConnection::RTCPeerConnection):
7312         (WebCore::RTCPeerConnection::createOffer):
7313         (WebCore::RTCPeerConnection::createAnswer):
7314         (WebCore::RTCPeerConnection::setLocalDescription):
7315         (WebCore::RTCPeerConnection::localDescription):
7316         (WebCore::RTCPeerConnection::setRemoteDescription):
7317         (WebCore::RTCPeerConnection::remoteDescription):
7318         (WebCore::RTCPeerConnection::updateIce):
7319         (WebCore::RTCPeerConnection::addIceCandidate):
7320         (WebCore::RTCPeerConnection::readyState):
7321         (WebCore::RTCPeerConnection::iceState):
7322         (WebCore::RTCPeerConnection::addStream):
7323         (WebCore::RTCPeerConnection::close):
7324         (WebCore::RTCPeerConnection::stop):
7325         (WebCore::RTCPeerConnection::changeReadyState):
7326         (WebCore::RTCPeerConnection::scheduledEventTimerFired):
7327         * Modules/mediastream/RTCPeerConnection.h:
7328         (RTCPeerConnection):
7329         * Modules/mediastream/RTCPeerConnection.idl:
7330         * dom/EventNames.h:
7331         (WebCore):
7332         * platform/mediastream/RTCDataChannelDescriptor.cpp:
7333         (WebCore::RTCDataChannelDescriptor::RTCDataChannelDescriptor):
7334         (WebCore::RTCDataChannelDescriptor::readyStateChanged):
7335         * platform/mediastream/RTCPeerConnectionHandlerClient.h:
7336         (RTCPeerConnectionHandlerClient):
7337         * platform/mediastream/chromium/RTCPeerConnectionHandlerChromium.cpp:
7338         * platform/mediastream/chromium/RTCPeerConnectionHandlerChromium.h:
7339         (RTCPeerConnectionHandlerChromium):
7340
7341 2012-11-15  Elliott Sprehn  <esprehn@chromium.org>
7342
7343         Remove Node::aboutToUnload and be more explicit about what it was for
7344         https://bugs.webkit.org/show_bug.cgi?id=102357
7345
7346         Reviewed by Ryosuke Niwa.
7347
7348         Node::aboutToUnload was confusingly named because it was only called on
7349         the focused node, and it really only existed to support notifying the
7350         embedder that inputs should stop being editable on unload. Instead add
7351         a new method to HTMLInputElement that ends editing and call that
7352         explicitly in the FrameLoader so it's clear what this is about.
7353
7354         No new tests, this is just a refactoring.
7355
7356         * dom/Node.h:
7357         * html/HTMLInputElement.cpp:
7358         (WebCore::HTMLInputElement::endEditing):
7359             New method that handles finishing editing.
7360         * html/HTMLInputElement.h:
7361         (HTMLInputElement):
7362         * html/TextFieldInputType.cpp:
7363         (WebCore::TextFieldInputType::handleBlurEvent):
7364             Use the new method to reduce code duplication.
7365         * loader/FrameLoader.cpp:
7366         (WebCore::FrameLoader::stopLoading):
7367             Be explicit about what this check was for.
7368
7369 2012-11-15  Tommy Widenflycht  <tommyw@google.com>
7370
7371         [chromium] MediaStream API: Add missing WebRTCPeerConnectionHandlerClient::didAddRemoteDataChannel
7372         https://bugs.webkit.org/show_bug.cgi?id=102386
7373
7374         Reviewed by Adam Barth.
7375
7376         Existing tests expanded to cover patch.
7377
7378         * platform/mediastream/RTCDataChannelDescriptor.cpp:
7379         (WebCore::RTCDataChannelDescriptor::RTCDataChannelDescriptor):
7380         (WebCore::RTCDataChannelDescriptor::readyStateChanged):
7381         * platform/mediastream/chromium/RTCPeerConnectionHandlerChromium.cpp:
7382         (WebCore::RTCPeerConnectionHandlerChromium::didAddRemoteDataChannel):
7383         (WebCore):
7384         * platform/mediastream/chromium/RTCPeerConnectionHandlerChromium.h:
7385         (WebKit):
7386         (RTCPeerConnectionHandlerChromium):
7387
7388 2012-11-15  Rick Byers  <rbyers@chromium.org>
7389
7390         No tests for changing mouse cursors
7391         https://bugs.webkit.org/show_bug.cgi?id=100550
7392
7393         Reviewed by Brent Fulgham.
7394
7395         Add infrastructure to keep track of the last set mouse cursor,
7396         and then to query it from DumpRenderTree.  Also adds ASSERTs to help ensure
7397         we can reliably detect when an uninitialized Cursor object is used (such as
7398         the one that can be returned from OptionalCursor in the NoCursorChange scenario).
7399
7400         Test: fast/events/mouse-cursor.html
7401
7402         * WebCore.exp.in: Add Cursor copy ctor export
7403         * page/EventHandler.cpp:
7404         (WebCore::OptionalCursor::cursor):
7405         (WebCore::EventHandler::handleMouseMoveEvent): Keep track of last set mouse cursor
7406         * page/EventHandler.h:
7407         (WebCore::EventHandler::currentMouseCursor): New getter for last set mouse cursor
7408         * platform/Cursor.h:
7409         (WebCore::Cursor::Cursor): Mark uninitialized cursor types as invalid.
7410         (WebCore::Cursor::type): Assert cursor type is valid.
7411         * testing/Internals.cpp:
7412         (WebCore::cursorTypeToString): Helper to convert cursor type to enum
7413         (WebCore):
7414         (WebCore::Internals::getCurrentCursorInfo): New function to return a string describing the last set mouse cursor
7415         * testing/Internals.h: Declare getCurrentCursorInfo
7416         * testing/Internals.idl: Declare getCurrentCursorInfo
7417
7418 2012-11-13  Jer Noble  <jer.noble@apple.com>
7419
7420         Support loading of blob URLs in AVFoundation.
7421         https://bugs.webkit.org/show_bug.cgi?id=102182
7422
7423         Reviewed by Eric Carlson.
7424
7425         Add support for BLOB (and other non-natively supported schemed) URLs through the AVAssetResourceLoader API.
7426
7427         Test: media/video-src-blob.html
7428
7429         * platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.h:
7430         * platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
7431         (WebCore::MediaPlayerPrivateAVFoundationObjC::shouldWaitForLoadingOfResource): Only go down the encrypted
7432             media path if the key scheme is skp://.
7433         (WebCore::MediaPlayerPrivateAVFoundationObjC::didCancelLoadingRequest): Added.  Cancel resource loading if
7434             the media engine requests it.
7435         (WebCore::MediaPlayerPrivateAVFoundationObjC::addKey): Use the new, non-deprecated API.
7436         
7437         Use the dispatch_main_queue() as the AVAssetResourceLoadDelegate queue now that <rdar://problem/12362461> is fixed.
7438         * platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
7439         (WebCore::MediaPlayerPrivateAVFoundationObjC::createAVAssetForURL):
7440         (-[WebCoreAVFLoaderDelegate resourceLoader:shouldWaitForLoadingOfRequestedResource:]):
7441         (-[WebCoreAVFLoaderDelegate resourceLoader:didCancelLoadingRequest:]):
7442
7443         Add a new helper class to manage loading the CachedRawResource and feed the incoming
7444         data to the AVAssetResourceLoader.
7445         * platform/graphics/avfoundation/objc/WebCoreAVFResourceLoader.h: Added.
7446         * platform/graphics/avfoundation/objc/WebCoreAVFResourceLoader.mm: Added.
7447         (WebCore::WebCoreAVFResourceLoader::create): Simple factory.
7448         (WebCore::WebCoreAVFResourceLoader::WebCoreAVFResourceLoader): Simple constructor.
7449         (WebCore::WebCoreAVFResourceLoader::~WebCoreAVFResourceLoader): Simple destructor.
7450         (WebCore::WebCoreAVFResourceLoader::startLoading): Tell the cachedResourceLoader to schedule loading.
7451         (WebCore::WebCoreAVFResourceLoader::stopLoading): Remove this as a client of the resource.
7452         (WebCore::WebCoreAVFResourceLoader::responseReceived): Fill in the contentInformation field of the 
7453             AVAssetResourceLoadingRequest.
7454         (WebCore::WebCoreAVFResourceLoader::dataReceived): Call fulfillRequestWithResource.
7455         (WebCore::WebCoreAVFResourceLoader::notifyFinished): Tell the AVAssetResourceLoadingRequest that loading
7456             has completed.
7457         (WebCore::WebCoreAVFResourceLoader::fulfillRequestWithResource): Fill in (if possible) the dataRequest
7458             field of the AVAssetResourceLoadingRequest.
7459
7460         Add a MediaPlayerClient method allowing MediaPlayerPrivate subclasses to access the HTMLMediaElement's
7461         document's cachedResourceLoader.
7462         * html/HTMLMediaElement.cpp:
7463         (WebCore::HTMLMediaElement::mediaPlayerCachedResourceLoader):
7464         * html/HTMLMediaElement.h:
7465         * platform/graphics/MediaPlayer.cpp:
7466         (WebCore::MediaPlayer::cachedResourceLoader):
7467         * platform/graphics/MediaPlayer.h:
7468         (WebCore::MediaPlayerClient::mediaPlayerCachedResourceLoader):
7469
7470         Add a convenience method to convert from MIME type -> UTI.
7471         * platform/network/mac/UTIUtilities.h:
7472         * platform/network/mac/UTIUtilities.mm:
7473         (WebCore::UTIFromMIMEType):
7474
7475         Add new files to project.
7476         * WebCore.xcodeproj/project.pbxproj:
7477
7478 2012-11-15  Kenneth Rohde Christiansen  <kenneth@webkit.org>
7479
7480         Remove initiallyFitToViewport attribute
7481         https://bugs.webkit.org/show_bug.cgi?id=102392
7482
7483         Reviewed by Noam Rosenthal.
7484
7485         Remove the initiallyFitToViewport which shouldn't have been
7486         added in the first place. We now reset userScalable to auto (-1)
7487         in case it was not explicitly set by the web author.
7488
7489         Same behavior, covered by existing tests.
7490
7491         * dom/ViewportArguments.cpp:
7492         (WebCore::ViewportArguments::resolve):
7493         * dom/ViewportArguments.h:
7494         (ViewportAttributes):
7495
7496 2012-11-15  Tommy Widenflycht  <tommyw@google.com>
7497
7498         MediaStream API: Update RTCPeerConnection states to match the latest editors draft
7499         https://bugs.webkit.org/show_bug.cgi?id=102382
7500
7501         Reviewed by Adam Barth.
7502
7503         Updating readyState & iceState, and adding iceGatheringState.
7504         Also safeguarding the event timer callback.
7505
7506         Patch covered by existing tests.
7507
7508         * Modules/mediastream/RTCPeerConnection.cpp:
7509         (WebCore::RTCPeerConnection::RTCPeerConnection):
7510         (WebCore::RTCPeerConnection::createOffer):
7511         (WebCore::RTCPeerConnection::createAnswer):
7512         (WebCore::RTCPeerConnection::setLocalDescription):
7513         (WebCore::RTCPeerConnection::localDescription):
7514         (WebCore::RTCPeerConnection::setRemoteDescription):
7515         (WebCore::RTCPeerConnection::remoteDescription):
7516         (WebCore::RTCPeerConnection::updateIce):
7517         (WebCore::RTCPeerConnection::addIceCandidate):
7518         (WebCore::RTCPeerConnection::readyState):
7519         (WebCore::RTCPeerConnection::iceGatheringState):
7520         (WebCore):
7521         (WebCore::RTCPeerConnection::iceState):
7522         (WebCore::RTCPeerConnection::addStream):
7523         (WebCore::RTCPeerConnection::close):
7524         (WebCore::RTCPeerConnection::didChangeIceGatheringState):
7525         (WebCore::RTCPeerConnection::stop):
7526         (WebCore::RTCPeerConnection::changeReadyState):
7527         (WebCore::RTCPeerConnection::scheduledEventTimerFired):
7528         * Modules/mediastream/RTCPeerConnection.h:
7529         (RTCPeerConnection):
7530         * Modules/mediastream/RTCPeerConnection.idl:
7531         * dom/EventNames.h:
7532         (WebCore):
7533         * platform/mediastream/RTCPeerConnectionHandlerClient.h:
7534         (RTCPeerConnectionHandlerClient):
7535         * platform/mediastream/chromium/RTCPeerConnectionHandlerChromium.cpp:
7536         (WebCore::RTCPeerConnectionHandlerChromium::didChangeICEGatheringState):
7537         (WebCore):
7538         * platform/mediastream/chromium/RTCPeerConnectionHandlerChromium.h:
7539         (RTCPeerConnectionHandlerChromium):
7540
7541 2012-11-15  Sheriff Bot  <webkit.review.bot@gmail.com>
7542
7543         Unreviewed, rolling out r134649 and r134665.
7544         http://trac.webkit.org/changeset/134649
7545         http://trac.webkit.org/changeset/134665
7546         https://bugs.webkit.org/show_bug.cgi?id=102413
7547
7548         Broke a ton of downstream chromium tests (Requested by japhet
7549         on #webkit).
7550
7551         * loader/DocumentLoader.cpp:
7552         (WebCore::DocumentLoader::DocumentLoader):
7553         (WebCore::DocumentLoader::~DocumentLoader):
7554         (WebCore::DocumentLoader::finishedLoading):
7555         (WebCore::DocumentLoader::clearMainResourceLoader):
7556         (WebCore::DocumentLoader::isLoadingInAPISense):
7557         (WebCore::DocumentLoader::documentURL):
7558         (WebCore::DocumentLoader::isLoadingMainResource):
7559         (WebCore::DocumentLoader::startLoadingMainResource):
7560         * loader/DocumentLoader.h:
7561         (DocumentLoader):
7562         * loader/FrameLoader.cpp:
7563         (WebCore::FrameLoader::FrameLoader):
7564         (WebCore::FrameLoader::init):
7565         * loader/FrameLoaderStateMachine.cpp:
7566         (WebCore::FrameLoaderStateMachine::FrameLoaderStateMachine):
7567         * loader/FrameLoaderStateMachine.h:
7568         * loader/MainResourceLoader.cpp:
7569         (WebCore::shouldLoadAsEmptyDocument):
7570         (WebCore):
7571         (WebCore::MainResourceLoader::continueAfterContentPolicy):
7572         (WebCore::MainResourceLoader::didReceiveResponse):
7573         (WebCore::MainResourceLoader::didFinishLoading):
7574         (WebCore::MainResourceLoader::handleEmptyLoad):
7575         (WebCore::MainResourceLoader::loadNow):
7576         (WebCore::MainResourceLoader::load):
7577         * loader/MainResourceLoader.h:
7578         (MainResourceLoader):
7579
7580 2012-11-15  Kentaro Hara  <haraken@chromium.org>
7581
7582         Correct syntax of old-style IDL files
7583         https://bugs.webkit.org/show_bug.cgi?id=102335
7584
7585         Reviewed by Adam Barth.
7586
7587         Recently tasak@ corrected an IDL syntax of almost all IDL files.
7588         We should correct the rest of them.
7589
7590         No tests. No change in behavior.
7591
7592         * html/canvas/OESElementIndexUint.idl:
7593         * page/PerformanceMark.idl:
7594         * page/PerformanceMeasure.idl:
7595
7596 2012-11-15  Elliott Sprehn  <esprehn@chromium.org>
7597
7598         Remove isHTMLInputElement since it's unused and toInputElement exists 
7599         https://bugs.webkit.org/show_bug.cgi?id=102358
7600
7601         Reviewed by Ojan Vafai.
7602
7603         Remove isHTMLInputElement as no one uses it. Everyone just uses
7604         Node::toInputElement and checks for a 0 return value instead.
7605
7606         toInputElement is also more reliable as there's no requirement that
7607         subclasses of HTMLInputElement have the tag name of inputTag so using
7608         this method in a check could potentially miss future subclasses with
7609         different tag names, though none exist right now.
7610
7611         No new tests, this just deletes dead code.
7612
7613         * html/HTMLInputElement.h:
7614
7615 2012-11-15  Erik Arvidsson  <arv@chromium.org>
7616
7617         Update DOMException name: NotSupportedError
7618         https://bugs.webkit.org/show_bug.cgi?id=102139
7619
7620         Reviewed by Ojan Vafai.
7621
7622         Patch 9 of 25 to update DOMException name to match the spec and Firefox.
7623
7624         Updated existing tests.
7625
7626         * dom/DOMCoreException.cpp:
7627
7628 2012-11-15  Elliott Sprehn  <esprehn@chromium.org>
7629
7630         Remove isHTMLInputElement since it's unused and toInputElement exists 
7631         https://bugs.webkit.org/show_bug.cgi?id=102358
7632
7633         Reviewed by Ojan Vafai.
7634
7635         Remove isHTMLInputElement as no one uses it. Everyone just uses
7636         Node::toInputElement and checks for a 0 return value instead.
7637
7638         toInputElement is also more reliable as there's no requirement that
7639         subclasses of HTMLInputElement have the tag name of inputTag so using
7640         this method in a check could potentially miss future subclasses with
7641         different tag names, though none exist right now.
7642
7643         No new tests, this just deletes dead code.
7644
7645         * html/HTMLInputElement.h:
7646
7647 2012-11-15  Erik Arvidsson  <arv@chromium.org>
7648
7649         Update DOMException name: NoModificationAllowedError
7650         https://bugs.webkit.org/show_bug.cgi?id=102134
7651
7652         Reviewed by Ojan Vafai.
7653
7654         Patch 7 of 25 to update DOMException name to match the spec and Firefox.
7655
7656         Updated existing tests.
7657
7658         * dom/DOMCoreException.cpp:
7659
7660 2012-11-15  Miguel Garcia  <miguelg@chromium.org>
7661
7662         Remove unnecesary dependencies INPUT_TYPE_COLOR
7663         https://bugs.webkit.org/show_bug.cgi?id=102379
7664
7665         Reviewed by Darin Adler.
7666
7667         Platforms should be able to enable INPUT_TYPE_COLOR without enabling
7668         CALENDAR_PICKER and DATALIST_ELEMENT. Before this patch however there would be
7669         compile errors in such configuration.
7670
7671         No new tests since this is not adding any extra functionality.
7672
7673         * WebCore.gyp/WebCore.gyp:
7674         * html/ColorInputType.cpp:
7675         (WebCore::ColorInputType::shouldShowSuggestions):
7676         * make-file-arrays.py:
7677         (main):
7678
7679 2012-11-15  Eric Carlson  <eric.carlson@apple.com>
7680
7681         Update computed line position algorithm
7682         https://bugs.webkit.org/show_bug.cgi?id=93779
7683
7684         Reviewed by Philippe Normand.
7685
7686         Compute the position of a text track relative to rendered tracks. This is needed to position
7687         cues correctly when there is more than one text track.
7688
7689         Test: media/track/track-cue-container-rendering-position.html
7690
7691         * html/track/TextTrack.cpp:
7692         (WebCore::TextTrack::invalidateTrackIndex): Invalidate both cached track indices.
7693         (WebCore::TextTrack::trackIndexRelativeToRenderedTracks): Return the index of the track relative
7694             to other rendered tracks.
7695         * html/track/TextTrack.h:
7696
7697         * html/track/TextTrackCue.cpp:
7698         (WebCore::TextTrackCue::calculateComputedLinePosition): Use trackIndexRelativeToRenderedTracks()
7699             instead of trackIndex() so cues are positioned correctly.
7700
7701         * html/track/TextTrackList.cpp:
7702         (TextTrackList::getTrackIndex): Change return type from unsigned to int.
7703         (TextTrackList::getTrackIndexRelativeToRenderedTracks): New.
7704         * html/track/TextTrackList.h:
7705
7706 2012-11-15  Dominik Röttsches  <dominik.rottsches@intel.com>
7707
7708         [EFL] Bump Harfbuzz to allow fixing bug 101009 on EFL
7709         https://bugs.webkit.org/show_bug.cgi?id=101323
7710
7711         Reviewed by Martin Robinson.
7712
7713         Removing ifdef since we bumped Harfbuzz dependency. This is the
7714         real fix replacing the previous workaround of having a Chromium
7715         specific ifdef here, since Chromium uses a newer HarfBuzz version
7716         already.
7717
7718         No new tests, covered by css3/flexbox/inline-flex-crash.html
7719         which will not crash anymore even with the ifdef removed.
7720
7721         * platform/graphics/harfbuzz/ng/HarfBuzzShaper.cpp:
7722         (WebCore::HarfBuzzShaper::shapeHarfBuzzRuns):
7723
7724 2012-11-15  Andreas Kling  <kling@webkit.org>
7725
7726         REGRESSION(r134408): Heap-use-after-free in WebCore::HTMLConstructionSite::mergeAttributesFromTokenIntoElement().
7727         <http://webkit.org/b/102304>
7728
7729         Reviewed by Anders Carlsson.
7730
7731         Test: fast/dom/cloneNode-below-body-attribute-merging.html
7732
7733         * html/parser/HTMLConstructionSite.cpp:
7734         (WebCore::HTMLConstructionSite::mergeAttributesFromTokenIntoElement):
7735
7736             Use Element::fastHasAttribute() to determine if a given attribute is already present on the element
7737             we're merging attributes into.
7738
7739         * dom/ElementAttributeData.h:
7740         (ElementAttributeData):
7741
7742             Remove a now-unnecessary friend declaration.
7743
7744 2012-11-15  Elliott Sprehn  <esprehn@chromium.org>
7745
7746         Prevent creation of detached frames in ShadowRoot
7747         https://bugs.webkit.org/show_bug.cgi?id=102333
7748
7749         Reviewed by Dimitri Glazkov.
7750
7751         Similar to Bug 94717 you can create a loaded iframe in a detached
7752         subtree using ShadowRoot. To fix this we just need to make
7753         SubframeLoadingDisabler traverse through shadow boundaries.
7754
7755         Test: fast/frames/detached-shadow-frame.html
7756
7757         * html/HTMLFrameOwnerElement.h:
7758         (WebCore::SubframeLoadingDisabler::canLoadFrame):
7759
7760 2012-11-15  Shinya Kawanaka  <shinyak@chromium.org>
7761
7762         Changing pseudoClass (:visited) should cause distribution.
7763         https://bugs.webkit.org/show_bug.cgi?id=101700
7764
7765         Reviewed by Dimitri Glazkov.
7766
7767         When href attribute of an anchor or area element is changed, we have to invalidate distribution.
7768
7769         Since we would like to check a few pseudoClasses at once, we make the argument of
7770         SelectRuleFeatureSet::hasSelectorFor int.
7771
7772         Tests: fast/dom/shadow/pseudoclass-update-visited-anchor.html
7773                fast/dom/shadow/pseudoclass-update-visited-area.html
7774
7775         * dom/ElementShadow.cpp:
7776         (WebCore::invalidateParentDistributionIfNecessary):
7777         * dom/ElementShadow.h:
7778         (WebCore):
7779         * html/HTMLAnchorElement.cpp:
7780         (WebCore::HTMLAnchorElement::parseAttribute):
7781         * html/shadow/SelectRuleFeatureSet.h:
7782         (WebCore::SelectRuleFeatureSet::hasSelectorFor):
7783
7784 2012-11-15  Balazs Kelemen  <kbalazs@webkit.org>
7785
7786         Coordinated Graphics: support the "freeze animations" API
7787         https://bugs.webkit.org/show_bug.cgi?id=100703
7788
7789         Reviewed by Noam Rosenthal.
7790
7791         Make animations resumable in Coordinated Graphics.
7792         Pausing was already implemented.
7793
7794         Tested with animations and transitions tests. No tests to be
7795         unskipped because these tests has been working without this API
7796         as well (although this is the preferred way).
7797
7798         * platform/graphics/GraphicsLayerAnimation.cpp:
7799         (WebCore::GraphicsLayerAnimation::apply):
7800         (WebCore::GraphicsLayerAnimation::computeTotalRunningTime):
7801         Do not consider the time while we was suspended as part of
7802         the total running time.
7803         (WebCore):
7804         (WebCore::GraphicsLayerAnimation::resume):
7805         (WebCore::GraphicsLayerAnimations::suspend):
7806         (WebCore::GraphicsLayerAnimations::resume):
7807         * platform/graphics/GraphicsLayerAnimation.h:
7808         (GraphicsLayerAnimation):
7809         (GraphicsLayerAnimations):
7810
7811 2012-11-15  Gabor Rapcsanyi  <rgabor@webkit.org>
7812
7813         Relocate the ARM NEON SVG filter optimizations
7814         https://bugs.webkit.org/show_bug.cgi?id=102214
7815
7816         Reviewed by Zoltan Herczeg.
7817
7818         Relocate the ARM filter optimizations into platform/graphics/cpu/arm
7819         to keep them together with the others.
7820         From now all graphics optimization for ARM NEON should go here.
7821
7822         * CMakeLists.txt:
7823         * GNUmakefile.am:
7824         * GNUmakefile.list.am:
7825         * Target.pri:
7826         * WebCore.gyp/WebCore.gyp:
7827         * WebCore.gypi:
7828         * WebCore.pri:
7829         * WebCore.xcodeproj/project.pbxproj:
7830         * platform/graphics/cpu/arm/filters/FEBlendNEON.h: Renamed from Source/WebCore/platform/graphics/filters/arm/FEBlendNEON.h.
7831         (WebCore):
7832         (FEBlendUtilitiesNEON):
7833         (WebCore::FEBlendUtilitiesNEON::div255):
7834         (WebCore::FEBlendUtilitiesNEON::normal):
7835         (WebCore::FEBlendUtilitiesNEON::multiply):
7836         (WebCore::FEBlendUtilitiesNEON::screen):
7837         (WebCore::FEBlendUtilitiesNEON::darken):
7838         (WebCore::FEBlendUtilitiesNEON::lighten):
7839         (WebCore::FEBlend::platformApplyNEON):
7840         * platform/graphics/cpu/arm/filters/FECompositeArithmeticNEON.h: Renamed from Source/WebCore/platform/graphics/filters/arm/FECompositeArithmeticNEON.h.
7841         (WebCore):
7842         (WebCore::FEComposite::computeArithmeticPixelsNeon):
7843         (WebCore::FEComposite::platformArithmeticNeon):
7844         * platform/graphics/cpu/arm/filters/FEGaussianBlurNEON.h: Renamed from Source/WebCore/platform/graphics/filters/arm/FEGaussianBlurNEON.h.
7845         (WebCore):
7846         (WebCore::boxBlurNEON):
7847         * platform/graphics/cpu/arm/filters/FELightingNEON.cpp: Renamed from Source/WebCore/platform/graphics/filters/arm/FELightingNEON.cpp.
7848         (WebCore):
7849         (WebCore::feLightingConstantsForNeon):
7850         (WebCore::FELighting::platformApplyNeonWorker):
7851         (WebCore::FELighting::getPowerCoefficients):
7852         * platform/graphics/cpu/arm/filters/FELightingNEON.h: Renamed from Source/WebCore/platform/graphics/filters/arm/FELightingNEON.h.
7853         (WebCore):
7854         (FELightingFloatArgumentsForNeon):
7855         (FELightingPaintingDataForNeon):
7856         (WebCore::FELighting::platformApplyNeon):
7857         * platform/graphics/cpu/arm/filters/NEONHelpers.h: Renamed from Source/WebCore/platform/graphics/filters/arm/NEONHelpers.h.
7858         (WebCore):
7859         (WebCore::loadRGBA8AsFloat):
7860         (WebCore::storeFloatAsRGBA8):
7861
7862 2012-11-15  Mike West  <mkwst@chromium.org>
7863
7864         We should trigger a console warning when we encounter invalid sandbox flags.
7865         https://bugs.webkit.org/show_bug.cgi?id=101956
7866
7867         Reviewed by Adam Barth.
7868
7869         A developer who writes '<iframe sandbox="allowScripts">' probably has
7870         something in mind other than what the browser interprets. In these
7871         situations, we should log a console warning that notes 'allowScripts'
7872         is an invalid sandbox flag ('allow-scripts' is probably what she
7873         meant).
7874
7875         This patch does the simplest thing possible: it throws a warning that
7876         lists the invalid flags encountered for sandbox attributes on iframes,
7877         and for sandbox Content Security Policy directives.
7878
7879         Tests: http/tests/security/contentSecurityPolicy/sandbox-invalid-header.html
7880                http/tests/security/sandboxed-iframe-invalid.html
7881
7882         * dom/SecurityContext.cpp:
7883         (WebCore::SecurityContext::parseSandboxPolicy):
7884         * dom/SecurityContext.h:
7885         (SecurityContext):
7886             Accept a new out parameter, invalidTokensErrorMessage. If invalid
7887             tokens are encountered, build an error message string, and pass it
7888             back to the caller through this parameter.
7889         * html/HTMLIFrameElement.cpp:
7890         (WebCore::HTMLIFrameElement::parseAttribute):
7891         * page/ContentSecurityPolicy.cpp:
7892         (WebCore::CSPDirectiveList::applySandboxPolicy):
7893             When applying a sandbox policy, pass a string into
7894             SecurityContext::parseSandboxPolicy to grab any errors that might
7895             be encountered, and log a warning in that event.
7896         (WebCore::ContentSecurityPolicy::reportInvalidSandboxFlags):
7897         (WebCore):
7898         * page/ContentSecurityPolicy.h:
7899             Adding a new method to report invalid sandbox flags.
7900
7901 2012-11-15  Kenneth Rohde Christiansen  <kenneth@webkit.org>
7902
7903         Rename member vars in ViewportArgument to match css-device-adapt
7904         https://bugs.webkit.org/show_bug.cgi?id=102355
7905
7906         Reviewed by Gyuyoung Kim.
7907
7908         No behavior change, thus no new tests.
7909
7910         * dom/ViewportArguments.cpp:
7911         (WebCore::ViewportArguments::resolve):
7912         (WebCore::setViewportFeature):
7913         * dom/ViewportArguments.h:
7914         (WebCore::ViewportArguments::ViewportArguments):
7915         (ViewportArguments):
7916         (WebCore::ViewportArguments::operator==):
7917
7918 2012-11-15  Andrey Adaikin  <aandrey@chromium.org>
7919
7920         Web Inspector: [WebGL] cloneNode for images with revoked Blob URIs fails
7921         https://bugs.webkit.org/show_bug.cgi?id=102366
7922
7923         Reviewed by Vsevolod Vlasov.
7924
7925         * inspector/InjectedScriptCanvasModuleSource.js:
7926         (.):
7927
7928 2012-11-15  Mark Rowe  <mrowe@apple.com>
7929
7930         Build fix.
7931
7932         Disable deprecation warnings in a few places that need it.
7933
7934         * platform/graphics/ca/mac/TileCache.mm:
7935         (WebCore::TileCache::drawRepaintCounter):
7936         * platform/graphics/mac/FontMac.mm:
7937         (WebCore::showGlyphsWithAdvances):
7938         * platform/graphics/mac/WebLayer.mm:
7939         (drawLayerContents):
7940
7941 2012-11-15  Kent Tamura  <tkent@chromium.org>
7942
7943         Support stand-alone month names in calendar picker
7944         https://bugs.webkit.org/show_bug.cgi?id=102196
7945
7946         Reviewed by Kentaro Hara.
7947
7948         We have showed non stand-alone month names in any locales. However
7949         we should show stand-alone month names in some locales such as
7950         Russian.
7951
7952         This patch introduce PagePopupController::formatMonth. It is
7953         exposed to page-popups, and format year-month pairs in the same
7954         way as input[type=month].
7955
7956         No new tests. Affects platform/chromium/fast/forms/calendar-picker/calendar-picker-appearance-ru.html.
7957
7958         * Resources/pagepopups/calendarPicker.js:
7959         (Month.prototype.toLocaleString):
7960         Calls pagePopupController.formatMonth except Japanese locale.
7961         (handleArgumentsTimeout):
7962         Remove unnecessary default monthLabels.
7963         * page/PagePopupController.cpp:
7964         (WebCore::PagePopupController::formatMonth): Added.
7965         * page/PagePopupController.h:
7966         (PagePopupController): Declare formatMonth.
7967         * page/PagePopupController.idl: Add formatMonth.
7968
7969 2012-11-15  Eugene Klyuchnikov  <eustas.bug@gmail.com>
7970
7971         Web Inspector: Fix new JS compiler warnings.
7972         https://bugs.webkit.org/show_bug.cgi?id=102341
7973
7974         Reviewed by Yury Semikhatsky.
7975
7976         New version of compiler finds new inconsistencies.
7977
7978         * inspector/front-end/DOMAgent.js: Replaced 2 simiar cases with loop.
7979         * inspector/front-end/DOMBreakpointsSidebarPane.js:
7980         Declared instance property on WebInspector.
7981         * inspector/front-end/Script.js: Normalized parameter notation.
7982
7983 2012-11-15  Kenneth Rohde Christiansen  <kenneth@webkit.org>
7984
7985         Unreviewed build fix.
7986
7987         * dom/ViewportArguments.cpp:
7988         (WebCore::convertToUserSpace): Add static
7989
7990 2012-11-14  Kenneth Rohde Christiansen  <kenneth@webkit.org>
7991
7992         Refactor ViewportArguments to only use CSS units
7993         https://bugs.webkit.org/show_bug.cgi?id=102287
7994
7995         Reviewed by Noam Rosenthal.
7996
7997         Refactor the ViewportArgument code to use a member method for
7998         resolving the viewport. This new method only uses arguments in
7999         CSS units.
8000
8001         This is preparation for adding the CSS Device Adaptation support.
8002
8003         Tested by existing tests fast/viewport.
8004
8005         * dom/ViewportArguments.cpp:
8006         (WebCore::clampLengthValue):
8007         (WebCore::clampScaleValue): New utility functions.
8008         (WebCore::ViewportArguments::resolve):
8009         (WebCore::convertToUserSpace): Added until everyone provides arguments
8010         only in CSS units and not device ones.
8011         (WebCore::computeViewportAttributes):
8012         (WebCore::computeMinimumScaleFactorForContentContained):
8013         (WebCore):
8014         (WebCore::restrictMinimumScaleFactorToViewportSize):
8015         * dom/ViewportArguments.h:
8016         (ViewportArguments):
8017
8018 2012-11-14  Shinya Kawanaka  <shinyak@chromium.org> 
8019
8020         Changing pseudoClass (:disabled) should cause distribution.
8021         https://bugs.webkit.org/show_bug.cgi?id=101901
8022
8023         Reviewed by Hajime Morita.
8024
8025         We have to invalidate distribution when pseudo-class (:disabled) is changed.
8026
8027         According to the HTML5 spec, :disabled will match button, input, select, textarea, optgroup,
8028         option, command, li, and fieldset. However, command is not implemented yet, we skip li and command. li might
8029         have 'disabled' state, but we need a command element to make it 'disabled' state.
8030
8031         Tests: fast/dom/shadow/pseudoclass-update-disabled-button.html
8032                fast/dom/shadow/pseudoclass-update-disabled-fieldset.html
8033                fast/dom/shadow/pseudoclass-update-disabled-input.html
8034                fast/dom/shadow/pseudoclass-update-disabled-optgroup.html
8035                fast/dom/shadow/pseudoclass-update-disabled-option.html
8036                fast/dom/shadow/pseudoclass-update-disabled-select.html
8037                fast/dom/shadow/pseudoclass-update-disabled-textarea.html
8038
8039         * html/HTMLFormControlElement.cpp:
8040         (WebCore::HTMLFormControlElement::disabledAttributeChanged):
8041         * html/HTMLOptGroupElement.cpp:
8042         (WebCore::HTMLOptGroupElement::parseAttribute):
8043         * html/HTMLOptionElement.cpp:
8044         (WebCore::HTMLOptionElement::parseAttribute):
8045
8046 2012-11-14  Sheriff Bot  <webkit.review.bot@gmail.com>
8047
8048         Unreviewed, rolling out r134691, r134703, r134715, r134716,
8049         and r134733.
8050         http://trac.webkit.org/changeset/134691
8051         http://trac.webkit.org/changeset/134703
8052         http://trac.webkit.org/changeset/134715
8053         http://trac.webkit.org/changeset/134716
8054         http://trac.webkit.org/changeset/134733
8055         https://bugs.webkit.org/show_bug.cgi?id=102342
8056
8057         "Broke the Apple Windows Debug and GTK builds." (Requested by
8058         dydx on #webkit).
8059
8060         * WebCore.exp.in:
8061         * bindings/js/SerializedScriptValue.h:
8062         * testing/Internals.cpp:
8063         * testing/Internals.h:
8064         (WebCore):
8065         * testing/Internals.idl:
8066
8067 2012-11-14  Pavel Feldman  <pfeldman@chromium.org>
8068
8069         Not reviewed: fixing inspector tests under Qt.
8070
8071         * inspector/front-end/TestController.js:
8072         * inspector/front-end/utilities.js:
8073         (.):
8074
8075 2012-11-14  Kentaro Hara  <haraken@chromium.org>
8076
8077         Unreviewed. Rebaselined run-bindings-tests.
8078
8079         * bindings/scripts/test/V8/V8TestNode.h:
8080         (WebCore::toV8Fast):
8081
8082 2012-11-14  Simon Fraser  <simon.fraser@apple.com>
8083
8084         Don't use temporary clip rects when hit testing
8085         https://bugs.webkit.org/show_bug.cgi?id=102329
8086
8087         Reviewed by Beth Dakin.
8088
8089         We now cache clip rects separately for painting, hit testing etc. Hit testing
8090         clip rects are always shrunk to exclude scrollbars (so that hit testing on
8091         the scrollbars works), so we no longer every need to use temporary clip rects
8092         during hit testing.
8093
8094         Added an assertion that the scrollbar relevancy when we computed the clip rects
8095         is the same as that when using them.
8096         
8097         * rendering/RenderLayer.cpp:
8098         (WebCore::RenderLayer::hitTestLayer):
8099         (WebCore::RenderLayer::updateClipRects):
8100         * rendering/RenderLayer.h:
8101         (WebCore::ClipRectsCache::ClipRectsCache):
8102         (ClipRectsCache):
8103
8104 2012-11-14  Dirk Schulze  <krit@webkit.org>
8105
8106         Support animation of basic shape 'polygon'
8107         https://bugs.webkit.org/show_bug.cgi?id=102080
8108
8109         Reviewed by Daniel Bates.
8110
8111         The basic shapes 'circle', 'rectangle' and 'ellipse' are animatable with the committed
8112         patch http://trac.webkit.org/changeset/134352.
8113         This is a follow-up patch to make 'polygon' animatable as well, as long as the number
8114         of vertices between start and end polygon is the same.
8115
8116         Added polygon animation test to existing test:
8117             fast/exclusions/shape-inside/shape-inside-animation.html
8118             css3/masking/clip-path-animation.html
8119
8120         * page/animation/CSSPropertyAnimation.cpp: Forgot to add copyright with last commits.
8121         * rendering/style/BasicShapes.cpp:
8122         (WebCore::BasicShape::canBlend): Polygons are allowed now.
8123         (WebCore::BasicShapePolygon::blend): Interpolate polygon shapes.
8124
8125 2012-11-14  Kentaro Hara  <haraken@chromium.org>
8126
8127         Unreviewed. Fix code generator warnings.
8128
8129         * bindings/scripts/CodeGeneratorV8.pm:
8130         (GenerateFunctionCallback):
8131         (GenerateImplementation):
8132
8133 2012-11-14  Shinya Kawanaka  <shinyak@chromium.org>
8134
8135         Changing pseudoClass (:checked) should cause distribution.
8136         https://bugs.webkit.org/show_bug.cgi?id=101902
8137
8138         Reviewed by Dimitri Glazkov.
8139
8140         When the 'checked' state is changed, we have to invalidate distribution.
8141
8142         According to the HTML5 spec, :checked should match a checked input[type="checkbox"],
8143         a checked input[type="radio"], a selected option, and commands. However, we don't have a command element yet.
8144
8145         Tests: fast/dom/shadow/pseudoclass-update-checked-input.html
8146                fast/dom/shadow/pseudoclass-update-checked-option.html
8147
8148         * html/HTMLInputElement.cpp:
8149         (WebCore::HTMLInputElement::setChecked):
8150         * html/HTMLOptionElement.cpp:
8151         (WebCore::HTMLOptionElement::setSelectedState):
8152
8153 2012-11-14  Kentaro Hara  <haraken@chromium.org>
8154
8155         [V8] Kill $implClassName from CodeGeneratorV8.pm
8156         https://bugs.webkit.org/show_bug.cgi?id=102312
8157
8158         Reviewed by Adam Barth.
8159
8160         $implClassName and $interfaceName are the same.
8161         Sometimes we are passing both $implClassName and $interfaceName to
8162         subroutines. We can kill $implClassName.
8163
8164         No tests. No change in behavior.
8165
8166         * bindings/scripts/CodeGeneratorV8.pm:
8167         (GenerateOpaqueRootForGC):
8168         (GenerateHeader):
8169         (GenerateDomainSafeFunctionGetter):
8170         (GenerateDomainSafeFunctionSetter):
8171         (GenerateConstructorGetter):
8172         (GenerateNormalAttrGetter):
8173         (GenerateReplaceableAttrSetter):
8174         (GenerateNormalAttrSetter):
8175         (GenerateEventListenerCallback):
8176         (GenerateOverloadedFunctionCallback):
8177         (GenerateFunctionCallback):
8178         (GenerateParametersCheck):
8179         (GenerateOverloadedConstructorCallback):
8180         (GenerateSingleConstructorCallback):
8181         (GenerateConstructorCallback):
8182         (GenerateEventConstructorCallback):
8183         (GenerateTypedArrayConstructorCallback):
8184         (GenerateNamedConstructorCallback):
8185         (GenerateImplementation):
8186         (GenerateFunctionCallString):
8187
8188 2012-11-14  Adam Barth  <abarth@webkit.org>
8189
8190         [V8] We can shave one instruction off toV8Fast
8191         https://bugs.webkit.org/show_bug.cgi?id=102297
8192
8193         Reviewed by Kentaro Hara.
8194
8195         There's no reason to store info.Holder in a local variable. Calling
8196         Holder() is essentially free because it's inlined to an offset read.
8197
8198         I doubt this patch moves the performance needle in any measurable way,
8199         but it makes the code slightly prettier.
8200
8201         * bindings/scripts/CodeGeneratorV8.pm:
8202         (GenerateHeader):
8203         * bindings/scripts/test/V8/V8TestNode.h:
8204         (WebCore::toV8Fast):
8205
8206 2012-11-14  Kentaro Hara  <haraken@chromium.org>
8207
8208         [V8] Get rid of a redundant branch in JSValueToNative()
8209         https://bugs.webkit.org/show_bug.cgi?id=102311
8210
8211         Reviewed by Adam Barth.
8212
8213         No tests. No change in behavior.
8214
8215         * bindings/scripts/CodeGeneratorV8.pm:
8216         (JSValueToNative):
8217         (NativeToJSValue):
8218
8219 2012-11-14  Shinya Kawanaka  <shinyak@chromium.org>
8220
8221         Changing pseudoClass (:link) should cause distribution
8222         https://bugs.webkit.org/show_bug.cgi?id=101698
8223
8224         Reviewed by Hajime Morita.
8225
8226         CSSSelector :link matches anchor element with href attribute. When href attribute of an anchor element is changed,
8227         we have to invalidate distribution.
8228
8229         According to the HTML spec, :link matches a link element having href attribute, currently we have not implemented it yet.
8230
8231         Tests: fast/dom/shadow/pseudoclass-update-link-anchor.html
8232                fast/dom/shadow/pseudoclass-update-link-area.html
8233
8234         * html/HTMLAnchorElement.cpp:
8235         (WebCore::HTMLAnchorElement::parseAttribute):
8236
8237 2012-11-14  Kentaro Hara  <haraken@chromium.org>
8238
8239         Remove unused functions from CodeGenerator.pm
8240         https://bugs.webkit.org/show_bug.cgi?id=102316
8241
8242         Reviewed by Adam Barth.
8243
8244         No tests. No change in behavior.
8245
8246         * bindings/scripts/CodeGenerator.pm:
8247         (GenerateCompileTimeCheckForEnumsIfNeeded):
8248
8249 2012-11-14  Tiancheng Jiang  <tijiang@rim.com>
8250
8251         [BlackBerry] Update BB10 form theme.
8252         https://bugs.webkit.org/show_bug.cgi?id=100760
8253
8254         Reviewed by Rob Buis.
8255
8256         RIM PR 225755
8257         Internally Reviewed by Eli Fidler.
8258         Update checkbox, radio and menulist button style. Adjust border width
8259         and line height.
8260
8261         * platform/blackberry/RenderThemeBlackBerry.cpp:
8262         (WebCore::RenderThemeBlackBerry::adjustMenuListButtonStyle):
8263         * platform/blackberry/RenderThemeBlackBerry.h:
8264         (RenderThemeBlackBerry):
8265
8266 2012-11-14  Erik Arvidsson  <arv@chromium.org>
8267
8268         Update DOMException name: InvalidModificationError
8269         https://bugs.webkit.org/show_bug.cgi?id=102281
8270
8271         Reviewed by Kentaro Hara.
8272
8273         Patch 13 of 25 to update DOMException name to match the spec and Firefox.
8274
8275         DOMExcecption INVALID_MODIFICATION_ERR is not used in our code.
8276
8277         * dom/DOMCoreException.cpp:
8278
8279 2012-11-14  Adam Barth  <abarth@webkit.org>
8280
8281         document variable in Document::axObjectCache is actually the topDocument
8282         https://bugs.webkit.org/show_bug.cgi?id=101966
8283
8284         Reviewed by Chris Fleizach.
8285
8286         Name change requested by Darin Adler.
8287
8288         * dom/Document.cpp:
8289         (WebCore::Document::axObjectCache):
8290
8291 2012-11-14  Joseph Pecoraro  <pecoraro@apple.com>
8292
8293         [CF]: XMLHttpRequest "timeout" events firing as "error" events
8294         https://bugs.webkit.org/show_bug.cgi?id=102271
8295
8296         Reviewed by David Kilzer.
8297
8298         Initialize the tiemout flag if the error results from a timeout
8299         in the USE(CFNETWORK) cases.
8300
8301         No new tests. This is covered by http/tests/xmlhttprequest/timeout
8302         tests on ports that USE(CFNETWORK).
8303
8304         * platform/network/cf/ResourceErrorCF.cpp:
8305         (WebCore::ResourceError::ResourceError):
8306         * platform/network/mac/ResourceErrorMac.mm:
8307         (WebCore::ResourceError::ResourceError):
8308
8309 2012-11-14  Nico Weber  <thakis@chromium.org>
8310
8311         [chromium/mac] Fix drawing of buttons, checkboxes, radio boxes, and steppers when the page is scaled
8312         https://bugs.webkit.org/show_bug.cgi?id=102282
8313
8314         Reviewed by James Robinson.
8315
8316         Chromium uses skia, and skia state is synced with CG context state at
8317         LocalCurrentGraphicsContext construction time. So delay that
8318         construction after context transforms have happened.
8319         (This regressed in http://trac.webkit.org/changeset/125830)
8320
8321         Covered by the new pixel test fast/forms/zoomed-controls.html. I
8322         couldn't find an existing test for this.
8323
8324         * platform/mac/ThemeMac.mm:
8325         (WebCore::paintCheckbox):
8326         (WebCore::paintRadio):
8327         (WebCore::paintButton):
8328
8329 2012-11-14  Mark Lam  <mark.lam@apple.com>
8330
8331         Change JSEventListener::m_jsFunction to be a weak ref.
8332         https://bugs.webkit.org/show_bug.cgi?id=101989.
8333
8334         Reviewed by Geoffrey Garen.
8335
8336         No new tests.
8337
8338         * ForwardingHeaders/heap/SlotVisitor.h: Added.
8339         * bindings/js/JSDOMBinding.h: Added #include <heap/SlotVisitor.h>
8340         * bindings/js/JSEventListener.cpp:
8341         (WebCore::JSEventListener::JSEventListener):
8342         (WebCore::JSEventListener::visitJSFunction):
8343         (WebCore::JSEventListener::operator==):
8344          - Removed the m_wrapper checks in operator==() because they are not
8345            needed. There is no longer any threat of m_jsFunction pointing to
8346            recycled memory. The use of weak refs will ensure that m_jsFunction
8347            is either still holding on to its old memory exclusively, or is 0'ed
8348            out when the GC collects it.
8349         * bindings/js/JSEventListener.h:
8350         (JSEventListener):
8351         (WebCore::JSEventListener::jsFunction):
8352
8353 2012-11-14  Dan Carney  <dcarney@google.com>
8354
8355         [V8] Rename dispatchWrap
8356         https://bugs.webkit.org/show_bug.cgi?id=102240
8357
8358         Reviewed by Adam Barth.
8359
8360         Mostly a rename:
8361         dispatchWrap->wrap
8362         wrapSlow->createWrapper
8363         dispatchWrapCustom->wrap
8364
8365         No new tests. No change in functionality.
8366
8367         * bindings/scripts/CodeGeneratorV8.pm:
8368         (GenerateHeader):
8369         (GenerateNormalAttrGetter):
8370         (GenerateImplementation):
8371         (GenerateToV8Converters):
8372         * bindings/scripts/IDLAttributes.txt:
8373         * bindings/scripts/test/V8/V8Float64Array.cpp:
8374         (WebCore::wrap):
8375         (WebCore::V8Float64Array::createWrapper):
8376         * bindings/scripts/test/V8/V8Float64Array.h:
8377         (V8Float64Array):
8378         (WebCore):
8379         (WebCore::toV8Object):
8380         (WebCore::toV8):
8381         * bindings/scripts/test/V8/V8TestActiveDOMObject.cpp:
8382         (WebCore::V8TestActiveDOMObject::createWrapper):
8383         * bindings/scripts/test/V8/V8TestActiveDOMObject.h:
8384         (V8TestActiveDOMObject):
8385         (WebCore::wrap):
8386         (WebCore::toV8Object):
8387         (WebCore::toV8):
8388         * bindings/scripts/test/V8/V8TestCustomNamedGetter.cpp:
8389         (WebCore::V8TestCustomNamedGetter::createWrapper):
8390         * bindings/scripts/test/V8/V8TestCustomNamedGetter.h:
8391         (V8TestCustomNamedGetter):
8392         (WebCore::wrap):
8393         (WebCore::toV8Object):
8394         (WebCore::toV8):
8395         * bindings/scripts/test/V8/V8TestEventConstructor.cpp:
8396         (WebCore::V8TestEventConstructor::createWrapper):
8397         * bindings/scripts/test/V8/V8TestEventConstructor.h:
8398         (V8TestEventConstructor):
8399         (WebCore::wrap):
8400         (WebCore::toV8Object):
8401         (WebCore::toV8):
8402         * bindings/scripts/test/V8/V8TestEventTarget.cpp:
8403         (WebCore::V8TestEventTarget::createWrapper):
8404         * bindings/scripts/test/V8/V8TestEventTarget.h:
8405         (V8TestEventTarget):
8406         (WebCore::wrap):
8407         (WebCore::toV8Object):
8408         (WebCore::toV8):
8409         * bindings/scripts/test/V8/V8TestException.cpp:
8410         (WebCore::V8TestException::createWrapper):
8411         * bindings/scripts/test/V8/V8TestException.h:
8412         (V8TestException):
8413         (WebCore::wrap):
8414         (WebCore::toV8Object):
8415         (WebCore::toV8):
8416         * bindings/scripts/test/V8/V8TestInterface.cpp:
8417         (WebCore::V8TestInterface::createWrapper):
8418         * bindings/scripts/test/V8/V8TestInterface.h:
8419         (V8TestInterface):
8420         (WebCore::wrap):
8421         (WebCore::toV8Object):
8422         (WebCore::toV8):
8423         * bindings/scripts/test/V8/V8TestMediaQueryListListener.cpp:
8424         (WebCore::V8TestMediaQueryListListener::createWrapper):
8425         * bindings/scripts/test/V8/V8TestMediaQueryListListener.h:
8426         (V8TestMediaQueryListListener):
8427         (WebCore::wrap):
8428         (WebCore::toV8Object):
8429         (WebCore::toV8):
8430         * bindings/scripts/test/V8/V8TestNamedConstructor.cpp:
8431         (WebCore::V8TestNamedConstructor::createWrapper):
8432         * bindings/scripts/test/V8/V8TestNamedConstructor.h:
8433         (V8TestNamedConstructor):
8434         (WebCore::wrap):
8435         (WebCore::toV8Object):
8436         (WebCore::toV8):
8437         * bindings/scripts/test/V8/V8TestNode.cpp:
8438         (WebCore::V8TestNode::createWrapper):
8439         * bindings/scripts/test/V8/V8TestNode.h:
8440         (V8TestNode):
8441         (WebCore::wrap):
8442         (WebCore::toV8Object):
8443         (WebCore::toV8):
8444         (WebCore::toV8Fast):
8445         * bindings/scripts/test/V8/V8TestObj.cpp:
8446         (WebCore::V8TestObj::createWrapper):
8447         * bindings/scripts/test/V8/V8TestObj.h:
8448         (V8TestObj):
8449         (WebCore::wrap):
8450         (WebCore::toV8Object):
8451         (WebCore::toV8):
8452         * bindings/scripts/test/V8/V8TestOverloadedConstructors.cpp:
8453         (WebCore::V8TestOverloadedConstructors::createWrapper):
8454         * bindings/scripts/test/V8/V8TestOverloadedConstructors.h:
8455         (V8TestOverloadedConstructors):
8456         (WebCore::wrap):
8457         (WebCore::toV8Object):
8458         (WebCore::toV8):
8459         * bindings/scripts/test/V8/V8TestSerializedScriptValueInterface.cpp:
8460         (WebCore::V8TestSerializedScriptValueInterface::createWrapper):
8461         * bindings/scripts/test/V8/V8TestSerializedScriptValueInterface.h:
8462         (V8TestSerializedScriptValueInterface):
8463         (WebCore::wrap):
8464         (WebCore::toV8Object):
8465         (WebCore::toV8):
8466         * bindings/v8/custom/V8BlobCustom.cpp:
8467         (WebCore::wrap):
8468         * bindings/v8/custom/V8CSSRuleCustom.cpp:
8469         (WebCore::wrap):
8470         * bindings/v8/custom/V8CSSValueCustom.cpp:
8471         (WebCore::wrap):
8472         * bindings/v8/custom/V8CanvasRenderingContextCustom.cpp:
8473         (WebCore::wrap):
8474         * bindings/v8/custom/V8DataViewCustom.cpp:
8475         (WebCore::wrap):
8476         * bindings/v8/custom/V8DocumentCustom.cpp:
8477         (WebCore::wrap):
8478         * bindings/v8/custom/V8ElementCustom.cpp:
8479         (WebCore):
8480         (WebCore::wrap):
8481         * bindings/v8/custom/V8EntryCustom.cpp:
8482         (WebCore::wrap):
8483         * bindings/v8/custom/V8EntrySyncCustom.cpp:
8484         (WebCore::wrap):
8485         * bindings/v8/custom/V8EventCustom.cpp:
8486         (WebCore):
8487         (WebCore::wrap):
8488         * bindings/v8/custom/V8HTMLCollectionCustom.cpp:
8489         (WebCore::wrap):
8490         * bindings/v8/custom/V8HTMLDocumentCustom.cpp:
8491         (WebCore::wrap):
8492         * bindings/v8/custom/V8HTMLElementCustom.cpp:
8493         (WebCore::wrap):
8494         * bindings/v8/custom/V8ImageDataCustom.cpp:
8495         (WebCore::wrap):
8496         * bindings/v8/custom/V8NodeCustom.cpp:
8497         (WebCore::wrap):
8498         * bindings/v8/custom/V8PerformanceEntryCustom.cpp:
8499         (WebCore::wrap):
8500         * bindings/v8/custom/V8SVGDocumentCustom.cpp:
8501         (WebCore::wrap):
8502         * bindings/v8/custom/V8SVGElementCustom.cpp:
8503         (WebCore::wrap):
8504         * bindings/v8/custom/V8SVGPathSegCustom.cpp:
8505         (WebCore::wrap):
8506         * bindings/v8/custom/V8StyleSheetCustom.cpp:
8507         (WebCore::wrap):
8508         * dom/make_names.pl:
8509         (printWrapperFunctions):
8510         (printWrapperFactoryCppFile):
8511
8512 2012-11-14  Ryuan Choi  <ryuan.choi@gmail.com>
8513
8514         [EFL] Refactor theme to choose whether to support foreground color of selection
8515         https://bugs.webkit.org/show_bug.cgi?id=102037
8516
8517         Reviewed by Gyuyoung Kim.
8518
8519         RenderThemeEfl can change foreground color of selection using theme file.
8520         But it can not disable supports of foreground color to keep the text color
8521         which is selected.
8522
8523         This patch refactors color classes of theme file from active/inactive classes
8524         to foreground/background classes so that RenderThemeEfl checks whether
8525         theme file supports foreground color class.
8526
8527         * platform/efl/RenderThemeEfl.cpp:
8528         (WebCore::fillColorsFromEdjeClass):
8529         (WebCore::RenderThemeEfl::setColorFromThemeClass):
8530         (WebCore::RenderThemeEfl::loadTheme):
8531         (WebCore::RenderThemeEfl::RenderThemeEfl):
8532         (WebCore::RenderThemeEfl::supportsSelectionForegroundColors):
8533         (WebCore):
8534         * platform/efl/RenderThemeEfl.h:
8535         (RenderThemeEfl):
8536
8537 2012-11-14  Tony Chang  <tony@chromium.org>
8538
8539         Convert m_selectorVector back to a stack allocated m_reusableSelectorVector
8540         https://bugs.webkit.org/show_bug.cgi?id=102295
8541
8542         Reviewed by Andreas Kling.
8543
8544         Revert r125252 because we're not going to go forward with implementing CSS hierarchies at this time.
8545
8546         No new tests because there should be no change in behavior.
8547
8548         * css/CSSGrammar.y.in:
8549         * css/CSSParser.cpp:
8550         (WebCore::CSSParser::CSSParser):
8551         (WebCore::CSSParser::parseValue):
8552         (WebCore::CSSParser::parseColor):
8553         (WebCore::CSSParser::parseDeclaration):
8554         (WebCore):
8555         (WebCore::filterProperties):
8556         (WebCore::CSSParser::createStylePropertySet):
8557         (WebCore::CSSParser::addProperty):
8558         (WebCore::CSSParser::rollbackLastProperties):
8559         (WebCore::CSSParser::clearProperties):
8560         (WebCore::CSSParser::parse4Values):
8561         (WebCore::CSSParser::parseFlowThread):
8562         (WebCore::CSSParser::addTextDecorationProperty):
8563         (WebCore::CSSParser::createFloatingSelectorVector):
8564         (WebCore::CSSParser::sinkFloatingSelectorVector):
8565         (WebCore::CSSParser::createStyleRule):
8566         (WebCore::CSSParser::createFontFaceRule):
8567         (WebCore::CSSParser::createPageRule):
8568         (WebCore::CSSParser::setReusableRegionSelectorVector):
8569         (WebCore::CSSParser::startDeclarationsForMarginBox):
8570         (WebCore::CSSParser::endDeclarationsForMarginBox):
8571         (WebCore::CSSParser::deleteFontFaceOnlyValues):
8572         * css/CSSParser.h:
8573         (WebCore::CSSParser::hasProperties):
8574         (WebCore::CSSParser::reusableSelectorVector):
8575         (CSSParser):
8576         (WebCore::CSSParser::reusableRegionSelectorVector):
8577         * css/CSSParserValues.cpp:
8578         (WebCore::CSSParserSelector::adoptSelectorVector):
8579         * css/CSSParserValues.h:
8580         (CSSParserSelector):
8581         * css/CSSSelectorList.cpp:
8582         (WebCore::CSSSelectorList::adoptSelectorVector):
8583         * css/CSSSelectorList.h:
8584         (CSSSelectorList):
8585         * css/SVGCSSParser.cpp:
8586         (WebCore::CSSParser::parseSVGValue):
8587         * css/StyleRule.cpp:
8588         (WebCore::StyleRuleRegion::StyleRuleRegion):
8589         * css/StyleRule.h:
8590         (WebCore::StyleRule::parserAdoptSelectorVector):
8591         (WebCore::StyleRulePage::parserAdoptSelectorVector):
8592         (WebCore::StyleRuleRegion::create):
8593         (StyleRuleRegion):
8594
8595 2012-11-14  Alec Flett  <alecflett@chromium.org>
8596
8597         Add tests for explicit serialization values
8598         https://bugs.webkit.org/show_bug.cgi?id=96818
8599
8600         Reviewed by Adam Barth.
8601
8602         Expose direct access to the serialization/deserialization mechanisms
8603         of SerializedScriptValue to DumpRenderTree.
8604
8605         * testing/Internals.cpp:
8606         (WebCore::Internals::serializeObject):
8607         (WebCore):
8608         (WebCore::Internals::deserializeBuffer):
8609         * testing/Internals.h:
8610         (WebCore):
8611         * testing/Internals.idl:
8612
8613 2012-11-14  Michael Pruett  <michael@68k.org>
8614
8615         IndexedDB: Add clear() method to JSC ScriptValue
8616         https://bugs.webkit.org/show_bug.cgi?id=102288
8617
8618         Reviewed by Kentaro Hara.
8619
8620         IndexedDB uses the ScriptValue::clear() method, which existed
8621         previously only in the V8 implementation of ScriptValue. This
8622         change is necessary to implement IndexedDB for JSC.
8623
8624         Tests: storage/indexeddb/*
8625
8626         * bindings/js/ScriptValue.h:
8627         (WebCore::ScriptValue::clear):
8628         (ScriptValue):
8629
8630 2012-11-14  Joshua Bell  <jsbell@chromium.org>
8631
8632         IndexedDB: Indexing tests are flaky-crashing
8633         https://bugs.webkit.org/show_bug.cgi?id=102283
8634
8635         Reviewed by Tony Chang.
8636
8637         Don't commit the transaction if there are outstanding pre-emptive events
8638         from indexing operations.
8639
8640         Speculative fix for the flakiness.
8641
8642         * Modules/indexeddb/IDBTransactionBackendImpl.cpp:
8643         (WebCore::IDBTransactionBackendImpl::taskEventTimerFired):
8644
8645 2012-11-14  Tony Chang  <tony@chromium.org>
8646
8647         Crash in flexbox when removing absolutely positioned children
8648         https://bugs.webkit.org/show_bug.cgi?id=100465
8649
8650         Reviewed by Ojan Vafai.
8651
8652         We use m_numberOfChildrenOnFirstLine when computing baseline alignment.
8653         This value gets set during flexbox layout. When we remove an absolutely
8654         positioned child, we don't relayout and this value would get stale.
8655
8656         Change m_numberOfChildrenOnFirstLine to m_numberOfInFlowChildrenOnFirstLine
8657         so the value doesn't get stale when we remove absolutely positioned children.
8658         Also change the loop in firstLineBoxBaseline to bail if we run off the end of
8659         the iterator.
8660
8661         Test: css3/flexbox/crash-removing-out-of-flow-child.html
8662
8663         * rendering/RenderFlexibleBox.cpp:
8664         (WebCore::RenderFlexibleBox::RenderFlexibleBox):
8665         (WebCore::RenderFlexibleBox::firstLineBoxBaseline):
8666         (WebCore::RenderFlexibleBox::layoutBlock):
8667         (WebCore::RenderFlexibleBox::repositionLogicalHeightDependentFlexItems):
8668         (WebCore::RenderFlexibleBox::layoutAndPlaceChildren):
8669         * rendering/RenderFlexibleBox.h:
8670
8671 2012-11-14  Joshua Bell  <jsbell@chromium.org>
8672
8673         IndexedDB: Remove magic numbers in record comparator, handle missing case
8674         https://bugs.webkit.org/show_bug.cgi?id=102255
8675
8676         Reviewed by Tony Chang.
8677
8678         For some ranges of metadata entries, a simple type byte comparison is sufficient
8679         for the backing store comparator. In two places those ranges used magic numbers,
8680         one of which was incorrect - which could lead to failed reads/writes.
8681
8682         Test: webkit_unit_tests --gtest_filter='IDBLevelDBCodingTest.ComparisonTest'
8683
8684         * Modules/indexeddb/IDBLevelDBCoding.cpp:
8685         (IDBLevelDBCoding):
8686         (WebCore::IDBLevelDBCoding::compare):
8687         * Modules/indexeddb/IDBLevelDBCoding.h:
8688
8689 2012-11-14  Dirk Schulze  <krit@webkit.org>
8690
8691         Cleanup BasicShape blending check
8692         https://bugs.webkit.org/show_bug.cgi?id=102289
8693
8694         Reviewed by Daniel Bates.
8695
8696         CSSPropertyAnimation had the same code for varifying that two BasicShape objects can be blended 
8697         twice. Refactor the code and add a canBlend method in BasicShape that combines both checks. This
8698         is a preparation for follow-up patches.
8699
8700         Pure refactoring without behavior change, no new tests.
8701
8702         * page/animation/CSSPropertyAnimation.cpp:
8703         (WebCore::blendFunc): Call new canBlend method for blending verification.
8704         * rendering/style/BasicShapes.cpp:
8705         (WebCore::BasicShape::canBlend): Check if two BasicShape objects can be blended.
8706         (WebCore):
8707         * rendering/style/BasicShapes.h:
8708
8709 2012-11-14  Dirk Schulze  <krit@webkit.org>
8710
8711         [CSS Exclusions] Basic shapes on 'shape-inside' should be animatable
8712         https://bugs.webkit.org/show_bug.cgi?id=102123
8713
8714         Reviewed by Antti Koivisto.
8715
8716         The '-webkit-shape-inside' propery takes a BasicShape as input like
8717         '-webkit-clip-path'. Follow up on http://trac.webkit.org/changeset/134352 and
8718         make '-webkit-shape-inside' animatable as well.
8719
8720         Test: fast/exclusions/shape-inside/shape-inside-animation.html
8721
8722         * page/animation/CSSPropertyAnimation.cpp:
8723         (WebCore::blendFunc): Blend fuction for exclusion shapes. The property takes another
8724             input then '-webkit-clip-path'.
8725         (WebCore):
8726         (PropertyWrapperBasicShape): Add wrapper for BasicShape object. Can be reused by
8727             '-webkit-shape-ourside' as well.
8728         (WebCore::PropertyWrapperBasicShape::PropertyWrapperBasicShape):
8729         (WebCore::CSSPropertyAnimation::ensurePropertyMap):
8730
8731 2012-11-14  Helder Correia  <helder.correia@nokia.com>
8732
8733         [TexMap][Cairo] Accelerated compositing debug visuals
8734         https://bugs.webkit.org/show_bug.cgi?id=101883
8735
8736         Reviewed by Kenneth Rohde Christiansen.
8737
8738         No new tests, just introducing a debug feature.
8739
8740         Add a Cairo implementation to complement the patch from bug 90116
8741         (http://trac.webkit.org/changeset/122275).
8742
8743         For this feature to be enabled, the environment variable
8744         WEBKIT_SHOW_COMPOSITING_DEBUG_VISUALS must be set to 1. Once enabled,
8745         both repaint counters and tile borders will be painted.
8746
8747         A Cairo-specific drawRepaintCounter() implementation was added to
8748         TextureMapperGL. A cairo_surface_t is used as scratch buffer to paint
8749         the counters. It is then uploaded to a BitmapTexture acquired
8750         from the pool and finally draw by TextureMapper. The actual compositing
8751         happens inside LayerBackingStore::paintToTextureMapper(). Each
8752         LayerBackingStoreTile has a repaint counter which gets incremented in
8753         LayerBackingStore::updateTile().
8754
8755         * platform/graphics/texmap/TextureMapperGL.cpp:
8756         (WebCore::TextureMapperGL::drawRepaintCounter):
8757
8758 2012-11-14  Michael Pruett  <michael@68k.org>
8759
8760         IndexedDB: Add JSNoStaticTables to IndexedDB interfaces
8761         https://bugs.webkit.org/show_bug.cgi?id=102268
8762
8763         Reviewed by Geoffrey Garen.
8764
8765         Add JSNoStaticTables attribute to IndexedDB interface
8766         definitions. This attribute must be specified in interfaces
8767         which can be accessed from workers.
8768
8769         Tests: storage/indexeddb/*
8770
8771         * Modules/indexeddb/IDBAny.idl:
8772         * Modules/indexeddb/IDBCursor.idl:
8773         * Modules/indexeddb/IDBCursorWithValue.idl:
8774         * Modules/indexeddb/IDBDatabase.idl:
8775         * Modules/indexeddb/IDBDatabaseException.idl:
8776         * Modules/indexeddb/IDBFactory.idl:
8777         * Modules/indexeddb/IDBIndex.idl:
8778         * Modules/indexeddb/IDBKey.idl:
8779         * Modules/indexeddb/IDBKeyRange.idl:
8780         * Modules/indexeddb/IDBObjectStore.idl:
8781         * Modules/indexeddb/IDBOpenDBRequest.idl:
8782         * Modules/indexeddb/IDBRequest.idl:
8783         * Modules/indexeddb/IDBTransaction.idl:
8784         * Modules/indexeddb/IDBUpgradeNeededEvent.idl:
8785         * Modules/indexeddb/IDBVersionChangeEvent.idl:
8786         * Modules/indexeddb/IDBVersionChangeRequest.idl:
8787         * dom/DOMStringList.idl:
8788
8789 2012-11-14  Michael Pruett  <michael@68k.org>
8790
8791         IndexedDB: Replace int64 with int64_t
8792         https://bugs.webkit.org/show_bug.cgi?id=102270
8793
8794         Reviewed by Tony Chang.
8795
8796         Cleaning up coding inconsistencies, no change in behavior.
8797
8798         Tests: storage/indexeddb/*
8799
8800         * Modules/indexeddb/IDBDatabase.cpp:
8801         (WebCore::IDBDatabase::deleteObjectStore):
8802         * Modules/indexeddb/IDBObjectStoreBackendImpl.cpp:
8803         (WebCore::IDBObjectStoreBackendImpl::putInternal):
8804
8805 2012-11-14  Viatcheslav Ostapenko  <v.ostapenko@samsung.com>
8806
8807         [EFL][WK2] White flicker when scrolling big pages with dark background on slower hardware.
8808         https://bugs.webkit.org/show_bug.cgi?id=102000
8809
8810         Reviewed by Noam Rosenthal.
8811
8812         Add helper functions to clear viewport before painting. Those functions
8813         used by EFL Webkit2 port to set view background to match page background
8814         in order to reduce visibility of flicker during scrolling/scaling/repainting
8815         where page tiles are not ready.
8816
8817         * platform/graphics/texmap/TextureMapper.h:
8818         * platform/graphics/texmap/TextureMapperGL.cpp:
8819         (WebCore::TextureMapperGL::drawSolidColor):
8820         (WebCore):
8821         * platform/graphics/texmap/TextureMapperGL.h:
8822         * platform/graphics/texmap/TextureMapperImageBuffer.cpp:
8823         (WebCore::TextureMapperImageBuffer::drawSolidColor):
8824         (WebCore):
8825         * platform/graphics/texmap/TextureMapperImageBuffer.h:
8826
8827 2012-11-14  Mark Lam  <mark.lam@apple.com>
8828
8829         Fixed regressions due to adding JSEventListener::m_wrapper null checks.
8830         https://bugs.webkit.org/show_bug.cgi?id=102183.
8831
8832         Reviewed by Geoffrey Garen.
8833
8834         Fixed JSEventListener::operator==() to work within the contract that
8835         when m_wrapper is 0, m_jsFunction is also expected to be 0. Also fixed
8836         some typos in comments.
8837
8838         No new tests.
8839
8840         * bindings/js/JSEventListener.cpp:
8841         (WebCore::JSEventListener::visitJSFunction):
8842         (WebCore::JSEventListener::operator==):
8843         * bindings/js/JSEventListener.h:
8844         (WebCore::JSEventListener::jsFunction):
8845
8846 2012-11-14  Nate Chapin  <japhet@chromium.org>
8847
8848         Fix chromium asserts from r134649.
8849
8850         Rubber-stamped by Adam Barth.
8851
8852         MainResourceLoader was calling releaseResources() twice when cancelled
8853         within MainResourceLoader::load(), so check reachedTerminalState() before
8854         calling releaseResources() there.
8855
8856         * loader/MainResourceLoader.cpp:
8857         (WebCore::MainResourceLoader::load):
8858
8859 2012-11-14  Andreas Kling  <kling@webkit.org>
8860
8861         Only resolve presentation attribute style once per shared ElementAttributeData.
8862         <http://webkit.org/b/100990>
8863
8864         Reviewed by Antti Koivisto.
8865
8866         Track the "presentation attribute style dirty" state on ElementAttributeData instead of in a Node flag.
8867         This allows us to avoid duplicate work for ElementAttributeData that are shared between multiple elements,
8868         since the state is no longer per-Element.
8869
8870         I've left the presentation attribute cache in there for now, since it still covers the case where
8871         two elements have the same presentation attributes but different non-presentation attributes.
8872         It's likely that we're not gaining much from it anymore, but that's a topic for another patch.
8873
8874         (WebCore::StyledElement::rebuildPresentationAttributeStyle):
8875         * dom/StyledElement.h:
8876         (WebCore::StyledElement::presentationAttributeStyle):
8877         (WebCore::ElementAttributeData::ElementAttributeData):
8878         * dom/ElementAttributeData.h:
8879         (WebCore::ElementAttributeData::ElementAttributeData):
8880         (ElementAttributeData):
8881         * dom/Node.h:
8882
8883             Move presentation attribute style dirty flag from Node to ElementAttributeData.
8884
8885         * dom/ElementAttributeData.cpp:
8886         (SameSizeAsElementAttributeData):
8887
8888             Add a compile-time object size assertion for ElementAttributeData.
8889
8890         * dom/StyledElement.cpp:
8891         (WebCore::StyledElement::attributeChanged):
8892
8893             Don't mark the presentation attribute style dirty if the element is using an immutable (implies
8894             shared) ElementAttributeData and another element has already generated the StylePropertySet.
8895             The element itself is still marked for style recalc like before, this just avoids the process
8896             of converting the attributes to CSS properties.
8897
8898 2012-11-14  Scott Violet  <sky@chromium.org>
8899
8900         [Chromium] Refactor theme font lookup into a factory
8901         https://bugs.webkit.org/show_bug.cgi?id=101949
8902
8903         Reviewed by Tony Chang.
8904
8905         This will ultimately allow us to use what is currently in RenderThemeChromiumLinux on windows.
8906
8907         No new tests. Refactoring only.
8908
8909         * WebCore.gyp/WebCore.gyp:
8910         * WebCore.gypi:
8911         * rendering/RenderThemeChromiumFontProvider.cpp: Added.
8912         (WebCore):
8913         (WebCore::RenderThemeChromiumFontProvider::defaultGUIFont): Moved into RenderThemeFontProvider.
8914         * rendering/RenderThemeChromiumFontProvider.h: Added.
8915         (WTF):
8916         (WebCore):
8917         (RenderThemeChromiumFontProvider): This is the font related methods.
8918         * rendering/RenderThemeChromiumFontProviderLinux.cpp: Added.
8919         (WebCore):
8920         (WebCore::RenderThemeChromiumFontProvider::setDefaultFontSize): What was in RenderThemeChromiumSkia::setDefaultFontSize.
8921         (WebCore::RenderThemeChromiumFontProvider::systemFont): What was in RenderThemeChromiumSkia::systemFont.
8922         * rendering/RenderThemeChromiumFontProviderWin.cpp: Added.
8923         (WebCore):
8924         (WebCore::pointsToPixels): Moved from RenderThemeChromiumWin.
8925         (WebCore::getNonClientMetrics): Moved from RenderThemeChromiumWin.
8926         (WebCore::systemFontSize): Moved from RenderThemeChromiumWin.
8927         (WebCore::RenderThemeChromiumFontProvider::systemFont): Moved from RenderThemeChromiumWin.
8928         (WebCore::RenderThemeChromiumFontProvider::setDefaultFontSize): Moved from RenderThemeChromiumWin.
8929         * rendering/RenderThemeChromiumSkia.cpp:
8930         (WebCore::RenderThemeChromiumSkia::RenderThemeChromiumSkia): Moved into RenderThemeFontProvider.
8931         (WebCore::RenderThemeChromiumSkia::systemFont): Calls to RenderThemeChromiumFontProvider.
8932         (WebCore::RenderThemeChromiumSkia::setDefaultFontSize): Calls to RenderThemeChromiumFontProvider.
8933         * rendering/RenderThemeChromiumSkia.h:
8934         (RenderThemeChromiumSkia): Moves defaultFontSize into RenderThemeChromiumFontProvider.
8935         * rendering/RenderThemeChromiumWin.cpp: Moves font code into RenderThemeFontProviderWin.
8936         (WebCore):
8937         * rendering/RenderThemeChromiumWin.h: Removed overriden methods now handled by RenderThemeChromiumSkia.
8938         (RenderThemeChromiumWin):
8939
8940 2012-11-14  Erik Arvidsson  <arv@chromium.org>
8941
8942         Update DOMException name: InUseAttributeError
8943         https://bugs.webkit.org/show_bug.cgi?id=102141
8944
8945         Reviewed by Ojan Vafai.
8946
8947         Patch 10 of 25 to update DOMException name to match the spec and Firefox.
8948
8949         The name for this is not in the spec but the case was selected to match
8950         Firefox. http://mxr.mozilla.org/mozilla-central/source/dom/base/domerr.msg#18
8951
8952         INUSE_ATTRIBUTE_ERR is historical and not used in any spec or any of our tests.
8953
8954         * dom/DOMCoreException.cpp:
8955         * dom/ExceptionCode.h:
8956
8957 2012-11-14  Lynn Neir  <lynn.neir@skype.net>
8958
8959         [WinCairo] Incorrect line-height for styled menulist (select tag)
8960         in windows theme.
8961         https://bugs.webkit.org/show_bug.cgi?id=79435
8962
8963         Reviewed by Brent Fulgham
8964
8965         Applied same fix as in RenderThemeSafari::adjustMenuListButtonStyle
8966         to Windows theme to fix issue.
8967
8968         Tests: fast/forms/menulist-restrict-line-height.html
8969                fast/forms/control-restrict-line-height.html
8970                fast/forms/basic-selects.html
8971
8972         * rendering/RenderThemeWin.cpp:
8973         (WebCore::RenderThemeWin::adjustMenuListButtonStyle): Set line
8974         height to the correct initial height.
8975
8976 2012-11-14  Erik Arvidsson  <arv@chromium.org>
8977
8978         Update DOMException name: WrongDocumentError
8979         https://bugs.webkit.org/show_bug.cgi?id=102096
8980
8981         Reviewed by Ojan Vafai.
8982
8983         Patch 4 of 25 to update DOMException name to match the spec and Firefox.
8984
8985         Updated existing tests.
8986
8987         * dom/DOMCoreException.cpp:
8988
8989 2012-11-14  Nate Chapin  <japhet@chromium.org>
8990
8991         Move empty loading to DocumentLoader, simplify FrameLoader::init()
8992         https://bugs.webkit.org/show_bug.cgi?id=101512
8993
8994         Reviewed by Adam Barth.
8995
8996         No new tests, though several outputs changed because we no longer send resource
8997             load callbacks for empty loads.
8998
8999         * loader/DocumentLoader.cpp:
9000         (WebCore::DocumentLoader::startLoadingMainResource): Handle empty main resource
9001             loads directly here.
9002         * loader/DocumentLoader.h:
9003         * loader/FrameLoader.cpp:
9004         (WebCore::FrameLoader::FrameLoader): Initialize some variables whose values
9005             were previously being reset in init(). Given that the FrameLoader is in
9006             an inconsistent state before init() is called anyway, there doesn't seem
9007             to be a disadvantage to just initializing them to their post-init() values.
9008         (WebCore::FrameLoader::init): Just call startLoadingMainResource(), instead of
9009             doing a bunch of direct calls to functions FrameLoader shouldn't know about.
9010         * loader/FrameLoaderStateMachine.cpp:
9011         * loader/FrameLoaderStateMachine.h:
9012         * loader/MainResourceLoader.cpp: Throughout, remove the concept of an empty load.
9013         (WebCore::MainResourceLoader::loadNow): This only returned true when an empty
9014             load got deferred, which won't happen now. Return void and always treat
9015             as returning false.
9016         * loader/MainResourceLoader.h:
9017
9018 2012-11-14  Erik Arvidsson  <arv@chromium.org>
9019
9020         Update DOMException name: InvalidStateError
9021         https://bugs.webkit.org/show_bug.cgi?id=102241
9022
9023         Reviewed by Ojan Vafai.
9024
9025         Patch 11 of 25 to update DOMException name to match the spec and Firefox.
9026
9027         Updated existing tests.
9028
9029         * dom/DOMCoreException.cpp:
9030
9031 2012-11-14  Joshua Bell  <jsbell@chromium.org>
9032
9033         Rename NATIVE_TYPE_ERR to TypeError
9034         https://bugs.webkit.org/show_bug.cgi?id=102114
9035
9036         Reviewed by Kentaro Hara.
9037
9038         Defines names (mostly) matching WebIDL exception types for use by dom (etc) code.
9039         V8 binding code had colliding enum members, which required prefixing.
9040
9041         No new tests - just internal renames.
9042
9043         * Modules/indexeddb/IDBCursor.cpp: s/NATIVE_TYPE_ERR/TypeError/g
9044         (WebCore::IDBCursor::advance):
9045         (WebCore::IDBCursor::stringToDirection):
9046         (WebCore::IDBCursor::directionToString):
9047         * Modules/indexeddb/IDBDatabase.cpp: Ditto.
9048         (WebCore::IDBDatabase::setVersion):
9049         * Modules/indexeddb/IDBFactory.cpp: Ditto.
9050         (WebCore::IDBFactory::open):
9051         (WebCore::IDBFactory::openInternal):
9052         (WebCore::IDBFactory::deleteDatabase):
9053         * Modules/indexeddb/IDBObjectStore.cpp: Ditto.
9054         (WebCore::IDBObjectStore::createIndex):
9055         * Modules/indexeddb/IDBTransaction.cpp: Ditto.
9056         (WebCore::IDBTransaction::stringToMode):
9057         (WebCore::IDBTransaction::modeToString):
9058         * bindings/js/JSDOMBinding.cpp: Ditto.
9059         (WebCore::setDOMException):
9060         * bindings/v8/DateExtension.cpp: Prefix ErrorType enum/members w/ V8/v8.
9061         (WebCore::DateExtension::OnSleepDetected):
9062         * bindings/v8/NPV8Object.cpp: Ditto.
9063         (_NPN_SetException):
9064         * bindings/v8/V8Binding.cpp: Ditto.
9065         (WebCore::throwError):
9066         (WebCore::handleMaxRecursionDepthExceeded):
9067         * bindings/v8/V8Binding.h: Ditto.
9068         (WebCore):
9069         * bindings/v8/V8NPObject.cpp: Ditto.
9070         (WebCore::npObjectInvokeImpl):
9071         (WebCore::npObjectGetProperty):
9072         (WebCore::npObjectSetProperty):
9073         (WebCore::npObjectPropertyEnumerator):
9074         * bindings/v8/V8ThrowException.cpp: Rename ALL the errors!
9075         (WebCore::V8ThrowException::setDOMException):
9076         (WebCore::V8ThrowException::throwError):
9077         (WebCore::V8ThrowException::throwTypeError):
9078         (WebCore::V8ThrowException::throwNotEnoughArgumentsError):
9079         * bindings/v8/V8ThrowException.h:
9080         (V8ThrowException):
9081         * bindings/v8/WorkerContextExecutionProxy.cpp: Prefixing (continued)
9082         (WebCore::WorkerContextExecutionProxy::evaluate):
9083         * bindings/v8/custom/V8ArrayBufferCustom.cpp: Ditto.
9084         (WebCore::V8ArrayBuffer::constructorCallback):
9085         * bindings/v8/custom/V8ArrayBufferViewCustom.h: Ditto.
9086         (WebCore::constructWebGLArrayWithArrayBufferArgument):
9087         (WebCore::constructWebGLArray):
9088         (WebCore::setWebGLArrayHelper):
9089         * bindings/v8/custom/V8AudioContextCustom.cpp: Ditto.
9090         (WebCore::V8AudioContext::constructorCallback):
9091         * bindings/v8/custom/V8BlobCustom.cpp: Ditto.
9092         (WebCore::V8Blob::constructorCallback):
9093         * bindings/v8/custom/V8ClipboardCustom.cpp: Ditto.
9094         (WebCore::V8Clipboard::clearDataCallback):
9095         (WebCore::V8Clipboard::setDragImageCallback):
9096         * bindings/v8/custom/V8DOMFormDataCustom.cpp: Ditto.
9097         (WebCore::V8DOMFormData::appendCallback):
9098         * bindings/v8/custom/V8SQLResultSetRowListCustom.cpp: Ditto.
9099         (WebCore::V8SQLResultSetRowList::itemCallback):
9100         * dom/ExceptionCode.h: Add WebIDL exception types.
9101
9102 2012-11-14  Tiancheng Jiang  <tijiang@rim.com>
9103
9104         [BlackBerry] Style BB10 time input field font.
9105         https://bugs.webkit.org/show_bug.cgi?id=102260.
9106
9107         Reviewed by Rob Buis.
9108
9109         RIM PR 243355
9110         Adjust time input field font using BB10 system default font.
9111
9112         * css/themeBlackBerry.css:
9113         (input[type="date"], input[type="datetime"], input[type="datetime-local"], input[type="time"], input[type="month"]):
9114
9115 2012-11-14  Li Yin  <li.yin@intel.com>
9116
9117         createDelay should raise exception when the maxDelayTime parameter is incorrect.
9118         https://bugs.webkit.org/show_bug.cgi?id=102173
9119
9120         Reviewed by Chris Rogers.
9121
9122         Spec: https://dvcs.w3.org/hg/audio/raw-file/tip/webaudio/specification.html
9123         The specified value must be greater than zero and less than three minutes or a
9124         NOT_SUPPORTED_ERR exception will be thrown.
9125
9126         Tests: webaudio/delaynode-maxdelaylimit.html
9127
9128         * Modules/webaudio/AudioContext.cpp:
9129         (WebCore::AudioContext::createDelay):
9130         * Modules/webaudio/AudioContext.h:
9131         (AudioContext):
9132         * Modules/webaudio/AudioContext.idl: Add raising exception for createDelay.
9133         * Modules/webaudio/DelayNode.cpp:
9134         (WebCore):
9135         (WebCore::DelayNode::DelayNode):
9136         * Modules/webaudio/DelayNode.h:
9137         (WebCore::DelayNode::create):
9138         (DelayNode):
9139
9140 2012-11-14  Simon Fraser  <simon.fraser@apple.com>
9141
9142         Don't pass a paintingRoot when painting from RenderLayerBacking
9143         https://bugs.webkit.org/show_bug.cgi?id=102256
9144
9145         Reviewed by David Hyatt.
9146
9147         The 'paintingRoot' parameter to the RenderLayer paint functions
9148         is used when painting just a subtree (e.g. when painting dragged
9149         selections). There is no need to pass it when a RenderLayerBacking
9150         paints its contents or overlay scrollbars.
9151         
9152         Passing it requires an expensive isDescendant() check, so passing
9153         null is more efficient.
9154         
9155         * rendering/RenderLayer.h:
9156         (WebCore::RenderLayer::LayerPaintingInfo::LayerPaintingInfo):
9157         * rendering/RenderLayerBacking.cpp:
9158         (WebCore::RenderLayerBacking::paintIntoLayer):
9159         (WebCore::RenderLayerBacking::paintContents):
9160         * rendering/RenderLayerBacking.h:
9161         (RenderLayerBacking):
9162
9163 2012-11-14  Alec Flett  <alecflett@chromium.org>
9164
9165         Add DOMRequestState to maintain world/ScriptExecutionContext state
9166         https://bugs.webkit.org/show_bug.cgi?id=102102
9167
9168         Reviewed by Adam Barth.
9169
9170         Introduce DOMRequestState, and convert IndexedDB over.
9171
9172         No new tests, this is an abstraction layer for existing code.
9173
9174         * Modules/indexeddb/IDBRequest.cpp:
9175         (WebCore::IDBRequest::IDBRequest):
9176         (WebCore::IDBRequest::onSuccess):
9177         (WebCore::IDBRequest::dispatchEvent):
9178         * Modules/indexeddb/IDBRequest.h:
9179         (IDBRequest):
9180         * WebCore.gypi:
9181         * bindings/v8/DOMRequestState.h: Added.
9182         (WebCore):
9183         (DOMRequestState):
9184         (WebCore::DOMRequestState::DOMRequestState):
9185         (Scope):
9186         (WebCore::DOMRequestState::Scope::Scope):
9187         (WebCore::DOMRequestState::scope):
9188
9189 2012-11-14  Justin Novosad  <junov@google.com>
9190
9191         Boxes with rounded corners and thin borders are too slow to draw
9192         https://bugs.webkit.org/show_bug.cgi?id=101974
9193
9194         Reviewed by Simon Fraser.
9195
9196         With the current implementation RenderBox::
9197         determineBackgroundBleedAvoidance() uses the slow path
9198         BackgroundBleedUseTransparencyLayer for some very common use cases,
9199         notably for drawing rectangles with rounded corners that have thin
9200         borders. This is because the BackgroundBleedShrinkBackground
9201         strategy requires a border at least two pixels wide on all sides. This
9202         patch introduce drawing strategy BackgroundBleedBackgroundOverBorder.
9203         This approach consists in drawing the border first, with an inset inner
9204         edge (for anti-aliased compositing to work well).  This approach only
9205         works with opaque solid edges and opaque single-layer backgrounds.
9206         By using this approach rather than BackgroundBleedUseTransparencyLayer,
9207         we save two clipPath, one save and one saveLayer on the
9208         GraphicsContext. This patch gets good coverage from existing layout
9209         tests. One additional test was added to exercise mitring, thick edges
9210         and anti-aliasing edge cases under the new painting algorithm.
9211
9212         Test: fast/borders/border-radius-wide-border-05.html
9213
9214         * rendering/RenderBox.cpp:
9215         (WebCore::RenderBox::determineBackgroundBleedAvoidance):
9216         Added selection criteria for BackgroundOverBorder
9217         (WebCore::RenderBox::paintBoxDecorations):
9218         Added a preliminary paintBorder pass for BackgroundOverBorder
9219         (WebCore::RenderBox::paintBackground):
9220         Insetting the background to to innerBorder when bleedAvoidance is
9221         BackgroundOverBorder.  This why BackgroundOverBorder only works for
9222         Opaque solid edges.
9223         (WebCore):
9224         (WebCore::RenderBox::backgroundIsSingleOpaqueLayer):
9225         Utility method use by determineBackgroundBleedAvoidance to test the
9226         background's eligibility for BackgroundOverBorder bleed avoidance
9227         strategy.  The reason the background must be a single layer is to avoid
9228         color bleeding from layer compositing along anti-aliased edges
9229         * rendering/RenderBox.h:
9230         (RenderBox):
9231         * rendering/RenderBoxModelObject.cpp:
9232         (WebCore::RenderBoxModelObject::getBackgroundRoundedRect):
9233         (WebCore::RenderBoxModelObject::borderInnerRectAdjustedForBleedAvoidance):
9234         Added support for BackgroundOverBorder by applying a one pixel inset.
9235         (WebCore::RenderBoxModelObject::backgroundRoundedRectAdjustedForBleedAvoidance):
9236         Set the background rect to the inner border for BackgroundOverBorder
9237         (WebCore):
9238         (WebCore::RenderBoxModelObject::paintFillLayerExtended):
9239         Added support for BackgroundOverBorder by using 
9240         backgroundRoundedRectAdjustedForBleedAvoidance
9241         (WebCore::RenderBoxModelObject::paintBorderSides):
9242         Added support for BackgroundOverBorder by applying per-side inset
9243         adjustments.
9244         (WebCore::RenderBoxModelObject::paintTranslucentBorderSides):
9245         (WebCore::RenderBoxModelObject::paintBorder):
9246         Added support for BackgroundOverBorder by using an adjusted inner
9247         border, but not if sides are painted individually.
9248         * rendering/RenderBoxModelObject.h:
9249         (RenderBoxModelObject):
9250
9251 2012-11-14  Hideki Yoshida  <yoshida-hxa@necst.nec.co.jp>
9252
9253         [WinCairo] Fix cairo_t* memory leak in GraphicsContext::platformInit
9254         https://bugs.webkit.org/show_bug.cgi?id=76219
9255
9256         Reviewed by Brent Fulgham.
9257
9258         This patch is to fix a memory leak problem which occurs
9259         in every rendering process on Wincairo port.
9260         By applying this patch, the memory allocated in cairo 
9261         library will be released by calling cairo_destroy.
9262
9263         * platform/graphics/win/GraphicsContextCairoWin.cpp:
9264         (WebCore::GraphicsContext::platformInit):
9265
9266 2012-11-14  Sami Kyostila  <skyostil@chromium.org>
9267
9268         Optimize painting of composited scrolling layers
9269         https://bugs.webkit.org/show_bug.cgi?id=96087
9270
9271         Reviewed by Simon Fraser.
9272
9273         Don't completely repaint accelerated scrolling layers when the scroll offset
9274         changes.
9275
9276         Test: compositing/overflow/scrolling-without-painting.html
9277
9278         * platform/graphics/GraphicsLayer.cpp:
9279         (WebCore::GraphicsLayer::setOffsetFromRenderer):
9280         * platform/graphics/GraphicsLayer.h:
9281         (GraphicsLayer):
9282         * rendering/RenderLayerBacking.cpp:
9283         (WebCore::RenderLayerBacking::updateGraphicsLayerGeometry):
9284
9285 2012-11-14  Pavel Feldman  <pfeldman@chromium.org>
9286
9287         Web Inspector: keep track of mutation observers and disconnect them upon upload
9288         https://bugs.webkit.org/show_bug.cgi?id=102239
9289
9290         Reviewed by Vsevolod Vlasov.
9291
9292         Otherwise we hit memory leaks.
9293
9294         * inspector/front-end/DefaultTextEditor.js:
9295         (WebInspector.DefaultTextEditor.prototype.wasShown):
9296         (WebInspector.DefaultTextEditor.prototype.willHide):
9297         (WebInspector.TextEditorMainPanel.prototype._wasShown):
9298         (WebInspector.TextEditorMainPanel.prototype._willHide):
9299         (WebInspector.TextEditorMainPanel.prototype._attachMutationObserver):
9300         (WebInspector.TextEditorMainPanel.prototype._detachMutationObserver):
9301         * inspector/front-end/utilities.js:
9302
9303 2012-11-14  Sergio Villar Senin  <svillar@igalia.com>
9304
9305         [Qt] Use a node image if there is no drag image set for Drag&Drop
9306         https://bugs.webkit.org/show_bug.cgi?id=102124
9307
9308         Reviewed by Simon Hausmann.
9309
9310         Use the nodeImage provided by the frame if there is no dragImage in
9311         the clipboard for the current drag&drop operation.
9312
9313         * platform/qt/ClipboardQt.cpp:
9314         (WebCore::ClipboardQt::createDragImage):
9315
9316 2012-11-14  Max Vujovic  <mvujovic@adobe.com>
9317
9318         Call to enclosingFilterLayer() in RenderObject::containerForRepaint() is expensive
9319         https://bugs.webkit.org/show_bug.cgi?id=101846
9320
9321         Reviewed by Simon Fraser.
9322
9323         If software-rendered CSS Filters have not been used in the document, avoid doing the second
9324         tree walk in RenderObject::containerForRepaint, which determines the RenderObject's
9325         enclosing filter layer.
9326
9327         No new tests. We now avoid a filters related code path for a performance improvement when
9328         we're not using filters.
9329
9330         * page/FrameView.cpp:
9331         (WebCore::FrameView::FrameView):
9332         * page/FrameView.h:
9333         (FrameView):
9334         (WebCore::FrameView::setHasSoftwareFilters):
9335         (WebCore::FrameView::hasSoftwareFilters):
9336         * rendering/RenderLayer.cpp:
9337         (WebCore::RenderLayer::updateOrRemoveFilterEffectRenderer):
9338         * rendering/RenderObject.cpp:
9339         (WebCore::RenderObject::containerForRepaint):
9340
9341 2012-11-14  Erik Arvidsson  <arv@chromium.org>
9342
9343         Update DOMException name: NotFoundError
9344         https://bugs.webkit.org/show_bug.cgi?id=102137
9345
9346         Reviewed by Ojan Vafai.
9347
9348         Patch 8 of 25 to update DOMException name to match the spec and Firefox.
9349
9350         Updated existing tests.
9351
9352         * dom/DOMCoreException.cpp:
9353
9354 2012-11-14  Otto Derek Cheung  <otcheung@rim.com>
9355
9356         [BlackBerry] Updating BB Cookie database to use WAL
9357         https://bugs.webkit.org/show_bug.cgi?id=102237
9358
9359         Reviewed by Rob Buis.
9360
9361         The cookie database is accessed by one process only and should be updated to
9362         use the WAL journal mode for better I/O performance.
9363
9364         PR 236553
9365
9366         cookieCollection.db-wal is created after the conversion to WAL.
9367         Tested cookie persistence by logging on to random sites and restarting the browser and
9368         check if it automatically logs in.
9369         Also tested using Opera's cookie persistence test.
9370
9371         * platform/blackberry/CookieDatabaseBackingStore/CookieDatabaseBackingStore.cpp:
9372         (WebCore::CookieDatabaseBackingStore::invokeOpen):
9373
9374 2012-11-14  Erik Arvidsson  <arv@chromium.org>
9375
9376         Update DOMException name: IndexSizeError
9377         https://bugs.webkit.org/show_bug.cgi?id=102087
9378
9379         Reviewed by Ojan Vafai.
9380
9381         This is the first in a series of updates to DOMException name to match
9382         the spec and Firefox.
9383
9384         Patch 1 of 25
9385
9386         Updated existing tests.
9387
9388         * dom/DOMCoreException.cpp:
9389         (WebCore):
9390
9391 2012-11-14  Gabor Rapcsanyi  <rgabor@webkit.org>
9392
9393         Fix [-Wmissing-braces] warnings in graphics/cpu/arm/GraphicsContext3DNEON.h
9394         https://bugs.webkit.org/show_bug.cgi?id=102205
9395
9396         Reviewed by Csaba Osztrogonác.
9397
9398         Fixing some warnings in GraphicsContext3DNEON.h which have been caused by missing braces.
9399
9400         * platform/graphics/cpu/arm/GraphicsContext3DNEON.h:
9401         (WebCore::ARM::unpackOneRowOfRGBA4444ToRGBA8NEON):
9402         (WebCore::ARM::unpackOneRowOfRGBA5551ToRGBA8NEON):
9403         (WebCore::ARM::unpackOneRowOfRGB565ToRGBA8NEON):
9404
9405 2012-11-14  Erik Arvidsson  <arv@chromium.org>
9406
9407         Update DOMException name: NoDataAllowedError
9408         https://bugs.webkit.org/show_bug.cgi?id=102132
9409
9410         Reviewed by Darin Adler.
9411
9412         Patch 6 of 25 to update DOMException name to match the spec and Firefox.
9413
9414         NO_DATA_ALLOWED_ERR is historical and not used in any spec or in our code.
9415
9416         * dom/DOMCoreException.cpp:
9417         (WebCore):
9418         * dom/ExceptionCode.h:
9419
9420 2012-11-14  Pavel Feldman  <pfeldman@chromium.org>
9421
9422         Web Inspector: "Reveal in Element Panel" doesn't work if Elements panel hasn't been opened
9423         https://bugs.webkit.org/show_bug.cgi?id=102219
9424
9425         Reviewed by Alexander Pavlov.
9426
9427         Force elements module load upon context menu invocation.
9428
9429         * inspector/front-end/ElementsTreeOutline.js:
9430         (WebInspector.ElementsTreeOutline.prototype._contextMenuEventFired.focusElement):
9431         (WebInspector.ElementsTreeOutline.prototype._contextMenuEventFired):
9432
9433 2012-11-14  Sheriff Bot  <webkit.review.bot@gmail.com>
9434
9435         Unreviewed, rolling out r134523.
9436         http://trac.webkit.org/changeset/134523
9437         https://bugs.webkit.org/show_bug.cgi?id=102218
9438
9439         brake chrome windows build, as it references a non existing
9440         header js/DOMRequestState.h (Requested by jochen__ on
9441         #webkit).
9442
9443         * Modules/indexeddb/IDBCursor.cpp:
9444         (WebCore::IDBCursor::setValueReady):
9445         * Modules/indexeddb/IDBCursor.h:
9446         (IDBCursor):
9447         * Modules/indexeddb/IDBRequest.cpp:
9448         (WebCore::IDBRequest::IDBRequest):
9449         (WebCore::IDBRequest::onSuccess):
9450         (WebCore::IDBRequest::stop):
9451         (WebCore::IDBRequest::dispatchEvent):
9452         * Modules/indexeddb/IDBRequest.h:
9453         (IDBRequest):
9454         * WebCore.gypi:
9455         * bindings/v8/DOMRequestState.h: Removed.
9456         * bindings/v8/IDBBindingUtilities.cpp:
9457         (WebCore::deserializeIDBValue):
9458         (WebCore::idbKeyToScriptValue):
9459         * bindings/v8/IDBBindingUtilities.h:
9460         (WebCore):
9461
9462 2012-11-14  Anton Obzhirov  <a.obzhirov@samsung.com>
9463
9464         Add platform implementation of remote web inspector server for GTK port.
9465         https://bugs.webkit.org/show_bug.cgi?id=88094 
9466
9467         Reviewed by Gustavo Noronha Silva.
9468
9469         Extra SocketStreamHandle constructor is added to accept existing GSocketConnection.
9470         Needed to pass remote inspector server socket connection. The change is tested with 
9471         inspector server API tests.
9472
9473         * platform/network/soup/SocketStreamHandle.h:
9474         (WebCore::SocketStreamHandle::create):
9475         (SocketStreamHandle):
9476         * platform/network/soup/SocketStreamHandleSoup.cpp:
9477         (WebCore::SocketStreamHandle::SocketStreamHandle):
9478         (WebCore):
9479         (WebCore::SocketStreamHandle::connected):
9480         (WebCore::SocketStreamHandle::platformSend):
9481         (WebCore::SocketStreamHandle::platformClose):
9482
9483 2012-11-14  Pavel Feldman  <pfeldman@chromium.org>
9484
9485         Web Inspector: context menu on ObjectPropertyTreeElement's values is masked by the section.
9486         https://bugs.webkit.org/show_bug.cgi?id=102212
9487
9488         Reviewed by Vsevolod Vlasov.
9489
9490         * inspector/front-end/ObjectPropertiesSection.js:
9491         (WebInspector.ObjectPropertiesSection.prototype.enableContextMenu):
9492
9493 2012-11-09  Ilya Tikhonovsky  <loislo@chromium.org>
9494
9495         Web Inspector: NMI add instrumentation for WebAudo related stuff.
9496         They use about 16Mb for shared data on pages with webaudio.
9497         As example Angry Birds app.
9498         https://bugs.webkit.org/show_bug.cgi?id=101729
9499
9500         Reviewed by Yury Semikhatsky.
9501
9502         Plain vanilla instrumentation for audio and webaudio classes.
9503         AudioContext is a kind of ActiveDOMObject. I found that these objects
9504         are accessible through ScriptExecutuionContext and ScriptExecutionContext
9505         is an ancestor of Document. Document class was instrumented earler.
9506         I instrumented ActiveDOMObject, ScriptExecutionContext and other ancestors
9507         and now AudioContext and other ActiveDOMObjects are reacheable from Document.
9508
9509         Test: inspector-protocol/nmi-webaudio.html
9510
9511         * Modules/webaudio/AudioContext.cpp:
9512         (WebCore::AudioContext::reportMemoryUsage):
9513         (WebCore):
9514         * Modules/webaudio/AudioContext.h:
9515         (AudioContext):
9516         * Modules/webaudio/AudioNode.cpp:
9517         (WebCore::AudioNode::reportMemoryUsage):
9518         (WebCore):
9519         * Modules/webaudio/AudioNode.h:
9520         (AudioNode):
9521         * dom/ActiveDOMObject.cpp:
9522         (WebCore::ActiveDOMObject::reportMemoryUsage):
9523         (WebCore):
9524         * dom/ActiveDOMObject.h:
9525         (ActiveDOMObject):
9526         * dom/Document.cpp:
9527         (WebCore::Document::reportMemoryUsage):
9528         * dom/ScriptExecutionContext.cpp:
9529         (WebCore::ScriptExecutionContext::reportMemoryUsage):
9530         (WebCore):
9531         * dom/ScriptExecutionContext.h:
9532         (ScriptExecutionContext):
9533         * dom/SecurityContext.cpp:
9534         (WebCore::SecurityContext::reportMemoryUsage):
9535         (WebCore):
9536         * dom/SecurityContext.h:
9537         (SecurityContext):
9538         * dom/WebCoreMemoryInstrumentation.cpp:
9539         (WebCore):
9540         * dom/WebCoreMemoryInstrumentation.h:
9541         (WebCoreMemoryTypes):
9542         * platform/audio/AudioArray.h:
9543         (AudioArray):
9544         (WebCore::AudioArray::reportMemoryUsage):
9545         * platform/audio/FFTFrame.cpp:
9546         (WebCore::FFTFrame::reportMemoryUsage):
9547         (WebCore):
9548         * platform/audio/FFTFrame.h:
9549         (FFTFrame):
9550         * platform/audio/HRTFDatabase.cpp:
9551         (WebCore::HRTFDatabase::reportMemoryUsage):
9552         (WebCore):
9553         * platform/audio/HRTFDatabase.h:
9554         (HRTFDatabase):
9555         * platform/audio/HRTFDatabaseLoader.cpp:
9556         (WebCore::HRTFDatabaseLoader::reportMemoryUsage):
9557         (WebCore):
9558         * platform/audio/HRTFDatabaseLoader.h:
9559         (HRTFDatabaseLoader):
9560         * platform/audio/HRTFElevation.cpp:
9561         (WebCore::HRTFElevation::reportMemoryUsage):
9562         (WebCore):
9563         * platform/audio/HRTFElevation.h:
9564         (HRTFElevation):
9565         * platform/audio/HRTFKernel.cpp:
9566         (WebCore::HRTFKernel::reportMemoryUsage):
9567         (WebCore):
9568         * platform/audio/HRTFKernel.h:
9569         (HRTFKernel):
9570
9571 2012-11-14  Eugene Klyuchnikov  <eustas.bug@gmail.com>
9572
9573         Web Inspector: Settings screen: close button overlays view title on mac.
9574         https://bugs.webkit.org/show_bug.cgi?id=102198
9575
9576         Reviewed by Pavel Feldman.
9577
9578         Added margin-left for mac. Adjusted title height and vertical positioning.
9579
9580         * inspector/front-end/helpScreen.css:
9581         (.help-window-caption): Adjusted title height.
9582         (.help-window-title): Adjusted title vertical positioning. 
9583         (body.platform-mac .help-window-main .help-window-title): Fixed margin.
9584
9585 2012-11-13  Pavel Feldman  <pfeldman@chromium.org>
9586
9587         Web Inspector: use last selection as complementary signal when applying DOM changes to the text model.
9588         https://bugs.webkit.org/show_bug.cgi?id=101905
9589
9590         Reviewed by Vsevolod Vlasov.
9591
9592         Currently we use heuristics for detecting damaged model range upon DOM mutation.
9593         This change adds signals from the last selection and keyboard events in order to
9594         further improve the heuristics quality.
9595
9596         * inspector/front-end/DefaultTextEditor.js:
9597         (WebInspector.DefaultTextEditor):
9598         (WebInspector.DefaultTextEditor.EditInfo):
9599         (WebInspector.DefaultTextEditor.prototype._handleTextInput):
9600         (WebInspector.DefaultTextEditor.prototype._handleKeyDown):
9601         (WebInspector.DefaultTextEditor.prototype.lastSelection):
9602         (WebInspector.DefaultTextEditor.prototype.wasShown):
9603         (WebInspector.TextEditorMainPanel.prototype._applyDomUpdates):
9604         (WebInspector.TextEditorMainPanel.prototype._guessEditRangeBasedOnSelection):
9605         (WebInspector.TextEditorMainPanel.prototype._guessEditRangeBasedOnDiff):
9606         (WebInspector.TextEditorMainPanel.prototype._closingBlockOffset):
9607         (WebInspector.TextEditorMainPanel.prototype._handleSelectionChange):
9608         * inspector/front-end/TextEditorModel.js:
9609         (WebInspector.TextRange.prototype.compareTo):
9610         (WebInspector.TextRange.prototype.shift):
9611         (WebInspector.TextEditorModel.endsWithBracketRegex.):
9612
9613 2012-11-14  Dan Carney  <dcarney@google.com>
9614
9615         [V8] use toV8Fast in all relevant Node getters
9616         https://bugs.webkit.org/show_bug.cgi?id=100851
9617
9618         Reviewed by Kentaro Hara.
9619
9620         The toV8Fast function for Node objects is now called in all getters
9621         instead of toV8.
9622
9623         No new tests. Test coverage extensive.
9624
9625         * bindings/scripts/CodeGeneratorV8.pm:
9626         (GenerateHeader):
9627         (GenerateNormalAttrGetter):
9628         (IsDOMNodeType):
9629         * bindings/scripts/test/V8/V8TestNode.h:
9630         (WebCore::toV8Fast):
9631
9632 2012-11-14  Kenneth Rohde Christiansen  <kenneth@webkit.org>
9633
9634         Clean up use of adjustWindowRect
9635         https://bugs.webkit.org/show_bug.cgi?id=102072
9636
9637         Reviewed by Gyuyoung Kim.
9638
9639         Tested by fast/dom/Window/open-window-min-size.html
9640
9641         * loader/FrameLoader.cpp:
9642         (WebCore::createWindow):
9643
9644             Validate the window size here so that it is not just done for
9645             .open, but also for .showModalDialog. This is compatible with
9646             other browsers such as IE and Firefox (though IE > 6, enforces
9647             a minimum width of 250 instead of 100 as Firefox and us.)
9648
9649         * page/DOMWindow.cpp:
9650         (WebCore):
9651         (WebCore::DOMWindow::adjustWindowRect):
9652
9653             Make it a static method which only takes page. It was never
9654             called from anywhere without a valid page, so the page check
9655             has been turned into an assert, and two of the arguments have
9656             been removed as they can be accessed via the page.
9657
9658         (WebCore::DOMWindow::moveBy):
9659         (WebCore::DOMWindow::moveTo):
9660         (WebCore::DOMWindow::resizeBy):
9661         (WebCore::DOMWindow::resizeTo):
9662
9663             Update use of adjustWindowRect.
9664
9665         (WebCore::DOMWindow::open):
9666
9667             Avoid modifying the WindowFeatures as the WebCore::createWindow
9668             validates and adjusts the arguments.
9669
9670         * page/DOMWindow.h:
9671         (DOMWindow):
9672
9673 2012-11-14  Takashi Sakamoto  <tasak@google.com>
9674
9675         Crash when replacing parts of text inputs with content: url(...)
9676         https://bugs.webkit.org/show_bug.cgi?id=101133
9677
9678         Reviewed by Kent Tamura.
9679
9680         Disable directly setting content of elements in an input element's
9681         shadow dom tree, because the setting breaks input element's behavior.
9682
9683         Tests: fast/forms/number/number-content-url-crash.html
9684                fast/forms/search/search-content-url-crash.html
9685
9686         * css/html.css:
9687         (input::-webkit-textfield-decoration-container):
9688         Use important to disable overriding an input element's content
9689         property.
9690         * html/TextFieldInputType.cpp:
9691         (WebCore::TextFieldInputType::attach):
9692         Added ASSERTION. No content should be applied to
9693         input::-webkit-textfield-decoration-container.
9694
9695 2012-11-14  Kentaro Hara  <haraken@chromium.org>
9696
9697         Unreviewed. Rebaselined run-bindings-tests results.
9698
9699         * bindings/scripts/test/V8/V8TestOverloadedConstructors.cpp:
9700         (WebCore::V8TestOverloadedConstructors::constructor1Callback):
9701         (WebCore::V8TestOverloadedConstructors::constructor2Callback):
9702         (WebCore::V8TestOverloadedConstructors::constructor3Callback):
9703         (WebCore::V8TestOverloadedConstructors::constructor4Callback):
9704         (WebCore::V8TestOverloadedConstructors::wrapSlow):
9705
9706 2012-11-14  Anton Muhin  <antonm@chromium.org>
9707
9708         Provide return types for custom WebGLRenderingContext methods
9709         https://bugs.webkit.org/show_bug.cgi?id=100777
9710
9711         Reviewed by Kenneth Russell.
9712
9713         No new tests as doesn't change generated code.
9714
9715         * html/canvas/WebGLRenderingContext.idl:
9716
9717 2012-11-14  Kent Tamura  <tkent@chromium.org>
9718
9719         Support for localization tests of calendar picker
9720         https://bugs.webkit.org/show_bug.cgi?id=102181
9721
9722         Reviewed by Kentaro Hara.
9723
9724         Introduce DateTimeChooserParameters::locale to inform locale to
9725         DateTimeChooser implementations. However we pass defaultLanguage
9726         unless tests calls internals.settings.
9727         setLangAttributeAwareFormControlUIEnabled(true) explicitly.
9728
9729         Test: platform/chromium/fast/forms/calendar-picker/calendar-picker-appearance-ru.html
9730
9731         * html/HTMLInputElement.cpp:
9732         (WebCore::HTMLInputElement::setupDateTimeChooserParameters):
9733         Set DateTimeChooserParameters::locale up.
9734         * platform/DateTimeChooser.h:
9735         (DateTimeChooserParameters): Add 'locale' member.
9736
9737 2012-11-14  Pavel Feldman  <pfeldman@chromium.org>
9738
9739         Web Inspector: highlight is not updating as one edits CSS properties
9740         https://bugs.webkit.org/show_bug.cgi?id=102191
9741
9742         Reviewed by Alexander Pavlov.
9743
9744         We should update highlight upon layout / style recalculation.
9745
9746         * inspector/InspectorInstrumentation.cpp:
9747         (WebCore):
9748         (WebCore::InspectorInstrumentation::didRecalculateStyleImpl):
9749         * inspector/InspectorPageAgent.cpp:
9750         (WebCore::InspectorPageAgent::InspectorPageAgent):
9751         (WebCore::InspectorPageAgent::enable):
9752         (WebCore::InspectorPageAgent::disable):
9753         (WebCore::InspectorPageAgent::domContentEventFired):
9754         (WebCore::InspectorPageAgent::didPaint):
9755         (WebCore::InspectorPageAgent::didLayout):
9756         (WebCore::InspectorPageAgent::didScroll):
9757         (WebCore):
9758         (WebCore::InspectorPageAgent::didRecalculateStyle):
9759         * inspector/InspectorPageAgent.h:
9760
9761 2012-11-14  Sheriff Bot  <webkit.review.bot@gmail.com>
9762
9763         Unreviewed, rolling out r134566.
9764         http://trac.webkit.org/changeset/134566
9765         https://bugs.webkit.org/show_bug.cgi?id=102197
9766
9767         "it broke Chromium Android Release build" (Requested by
9768         haraken on #webkit).
9769
9770         * html/HTMLInputElement.cpp:
9771         (WebCore::HTMLInputElement::setupDateTimeChooserParameters):
9772         * platform/DateTimeChooser.h:
9773         (DateTimeChooserParameters):
9774
9775 2012-11-08  Vsevolod Vlasov  <vsevik@chromium.org>
9776
9777         Web Inspector: No content available for requests made from flash
9778         https://bugs.webkit.org/show_bug.cgi?id=101560
9779
9780         Reviewed by Pavel Feldman.
9781
9782         Network request data is now saved to inspector cache in following cases:
9783          - Error status code;
9784          - No cached resource available;
9785          - Cached resource has ShouldNotBufferData option set.
9786         Drive-by: refactored didReceiveResponse logic to be clearer.
9787
9788         * inspector/InspectorResourceAgent.cpp:
9789         (WebCore::InspectorResourceAgent::didReceiveResponse):
9790         (WebCore::InspectorResourceAgent::didReceiveData):
9791         * loader/cache/CachedResource.h:
9792         (WebCore::CachedResource::shouldBufferData):
9793
9794 2012-11-14  Shinya Kawanaka  <shinyak@chromium.org>
9795
9796         Changing pseudoClass (:target) should cause distribution
9797         https://bugs.webkit.org/show_bug.cgi?id=101699
9798
9799         Reviewed by Hajime Morita.
9800
9801         When cssTarget element is changed, we might have to invalidate distribution. We check its necessity
9802         by consulting with SelectRuleFeatureSet.
9803
9804         We also implement invalidateParentDistributionIfNecessary for all collected features in this patch.
9805
9806         Test: fast/dom/shadow/pseudoclass-update-target.html
9807
9808         * dom/Document.cpp:
9809         (WebCore::Document::setCSSTarget):
9810         * dom/ElementShadow.cpp:
9811         (WebCore::invalidateParentDistributionIfNecessary):
9812         (WebCore):
9813         * dom/ElementShadow.h:
9814         (WebCore):
9815         * html/shadow/SelectRuleFeatureSet.h:
9816         (WebCore::SelectRuleFeatureSet::hasSelectorFor):
9817         (SelectRuleFeatureSet):
9818
9819 2012-11-14  Kentaro Hara  <haraken@chromium.org>
9820
9821         [V8] DOM wrapper objects should be collected in minor GC cycles
9822         https://bugs.webkit.org/show_bug.cgi?id=98725
9823
9824         Reviewed by Adam Barth.
9825
9826         Previously minor GC cycles cannot collect DOM Nodes. All DOM Nodes
9827         have to survive two minor GC cycles, be promoted to the old space
9828         and wait for a heavy major GC cycle.
9829
9830         This patch enables V8 to collect DOM Nodes in minor GC cycles.
9831         For real world applications, I confirmed that minor GC cycles
9832         reclaims a substantial amount of memory (24 MB for Facebook,
9833         235 MB for Google Calendar) with acceptable overhead (~10 ms
9834         per minor GC cycle). No performance regression in Dromaeo
9835         DOM tests.
9836
9837         A design document: https://docs.google.com/a/google.com/document/d/16DeHrzkm3cO9XCPT1aK3Y5qgUxXB3RFmueqQWYmN2rI/edit
9838         Performance results: https://docs.google.com/a/google.com/document/d/1h0-EsHu7T0sSMuZm5eE0r1e8sCAzY3weLvsDUpOSngE/edit
9839         A slide: https://docs.google.com/a/google.com/presentation/d/1uifwVYGNYTZDoGLyCb7sXa7g49mWNMW2gaWvMN5NLk8/edit#slide=id.p
9840
9841         * bindings/v8/IntrusiveDOMWrapperMap.h:
9842         (WebCore::IntrusiveDOMWrapperMap::set):
9843         * bindings/v8/V8DOMWindowShell.cpp:
9844         (WebCore::initializeV8IfNeeded):
9845         * bindings/v8/V8GCController.cpp:
9846         (WebCore):
9847         (WebCore::gcTree):
9848         (WebCore::V8GCController::newWrapperBorn):
9849         (WebCore::V8GCController::gcPrologue):
9850         (WebCore::V8GCController::minorGCPrologue):
9851         (WebCore::V8GCController::majorGCPrologue):
9852         (WebCore::V8GCController::gcEpilogue):
9853         (WebCore::V8GCController::minorGCEpilogue):
9854         (WebCore::V8GCController::majorGCEpilogue):
9855         * bindings/v8/V8GCController.h:
9856         (WebCore):
9857         (V8GCController):
9858         * bindings/v8/WorkerContextExecutionProxy.cpp:
9859         (WebCore::WorkerContextExecutionProxy::initIsolate):
9860         * dom/Element.cpp:
9861         (WebCore::Element::focus):
9862         * dom/Node.h:
9863         (WebCore::Node::inEden):
9864         (WebCore::Node::setEden):
9865         (Node):
9866
9867 2012-11-14  Kentaro Hara  <haraken@chromium.org>
9868
9869         [V8] Replace setDOMWrapper() + setJSWrapperForDOMObject() with createDOMWrapper()
9870         https://bugs.webkit.org/show_bug.cgi?id=101917
9871
9872         Reviewed by Adam Barth.
9873
9874         setJSWrapperForDOMObject() is always coupled with setDOMWrapper().
9875         We can replace setDOMWrapper() + setJSWrapperForDOMObject() with
9876         createDOMWrapper(). (c.f. CREATE_DOM_WRAPPER() in JSC)
9877
9878         No tests. No change in behavior.
9879
9880         * bindings/scripts/CodeGeneratorV8.pm:
9881         (GenerateConstructorCallback):
9882         (GenerateEventConstructorCallback):
9883         (GenerateNamedConstructorCallback):
9884         (GenerateToV8Converters):
9885         * bindings/v8/V8DOMWindowShell.cpp:
9886         (WebCore::V8DOMWindowShell::installDOMWindow):
9887         * bindings/v8/V8DOMWrapper.cpp:
9888         (WebCore::V8DOMWrapper::instantiateV8Object):
9889         * bindings/v8/V8DOMWrapper.h:
9890         (V8DOMWrapper):
9891         (WebCore::V8DOMWrapper::createDOMWrapper):
9892         * bindings/v8/WorkerContextExecutionProxy.cpp:
9893         (WebCore::WorkerContextExecutionProxy::initializeIfNeeded):
9894         * bindings/v8/custom/V8ArrayBufferCustom.cpp:
9895         (WebCore::V8ArrayBuffer::constructorCallback):
9896         * bindings/v8/custom/V8ArrayBufferViewCustom.h:
9897         (WebCore::wrapArrayBufferView):
9898         (WebCore::constructWebGLArray):
9899         * bindings/v8/custom/V8DOMFormDataCustom.cpp:
9900         (WebCore::V8DOMFormData::constructorCallback):
9901         * bindings/v8/custom/V8DataViewCustom.cpp:
9902         (WebCore::V8DataView::constructorCallback):
9903         * bindings/v8/custom/V8HTMLImageElementConstructor.cpp:
9904         (WebCore::v8HTMLImageElementConstructorCallback):
9905         * bindings/v8/custom/V8IntentConstructor.cpp:
9906         (WebCore::V8Intent::constructorCallback):
9907         * bindings/v8/custom/V8MessageChannelConstructor.cpp:
9908         (WebCore::V8MessageChannel::constructorCallback):
9909         * bindings/v8/custom/V8MutationObserverCustom.cpp:
9910         (WebCore::V8MutationObserver::constructorCallback):
9911         * bindings/v8/custom/V8WebKitPointConstructor.cpp:
9912         (WebCore::V8WebKitPoint::constructorCallback):
9913         * bindings/v8/custom/V8WebSocketCustom.cpp:
9914         (WebCore::V8WebSocket::constructorCallback):
9915         * bindings/v8/custom/V8XMLHttpRequestConstructor.cpp:
9916         (WebCore::V8XMLHttpRequest::constructorCallback):
9917
9918 2012-11-14  Kent Tamura  <tkent@chromium.org>
9919
9920         Support for localization tests of calendar picker
9921         https://bugs.webkit.org/show_bug.cgi?id=102181
9922
9923         Reviewed by Kentaro Hara.
9924
9925         Introduce DateTimeChooserParameters::locale to inform locale to
9926         DateTimeChooser implementations. However we pass defaultLanguage
9927         unless tests calls internals.settings.
9928         setLangAttributeAwareFormControlUIEnabled(true) explicitly.
9929
9930         Test: platform/chromium/fast/forms/calendar-picker/calendar-picker-appearance-ru.html
9931
9932         * html/HTMLInputElement.cpp:
9933         (WebCore::HTMLInputElement::setupDateTimeChooserParameters):
9934         Set DateTimeChooserParameters::locale up.
9935         * platform/DateTimeChooser.h:
9936         (DateTimeChooserParameters): Add 'locale' member.
9937
9938 2012-11-14  Alexei Filippov  <alph@chromium.org>
9939
9940         Web Inspector: Show total memory in the NMI snapshot header
9941         https://bugs.webkit.org/show_bug.cgi?id=101922
9942
9943         Reviewed by Pavel Feldman.
9944
9945         * inspector/front-end/NativeMemorySnapshotView.js:
9946         (WebInspector.NativeMemoryProfileType.prototype.buttonClicked.didReceiveMemorySnapshot):
9947         (WebInspector.NativeMemoryProfileType.prototype.buttonClicked):
9948
9949 2012-11-14  Jan Keromnes  <janx@linux.com>
9950
9951         Web Inspector: CodeMirrorTextEditor fails to scroll breakpoint into view after the first time
9952         https://bugs.webkit.org/show_bug.cgi?id=102142
9953
9954         Reviewed by Pavel Feldman.
9955
9956         Calling revealLine in highlightLine like in DefaultTextEditor does the trick.
9957
9958         * inspector/front-end/CodeMirrorTextEditor.js:
9959         (WebInspector.CodeMirrorTextEditor.prototype.highlightLine):
9960
9961 2012-11-13  Kent Tamura  <tkent@chromium.org>
9962
9963         Use menulist-button instead of menulist for date/time input types
9964         https://bugs.webkit.org/show_bug.cgi?id=101886
9965
9966         Reviewed by Hajime Morita.
9967
9968         Both of Chromium-Android and iOS use -webkit-appearance:menulist-button,
9969         not menulist. We had better apply common one by default.
9970
9971         No new tests. Covered by fast/forms/*/*-appearance-*.html.
9972
9973         * css/html.css:
9974         (input[type="date"]): Switch menulist-button from menulist.
9975         (input[type="datetime"]): Ditto.
9976         (input[type="datetime-local"]): Ditto.
9977         (input[type="month"]): Ditto.
9978         (input[type="time"]): Ditto.
9979         (input[type="week"]): Ditto.
9980         (input::-webkit-date-and-time-value):
9981         Add top, right, bottom margins. The right margin is important when
9982         dir=rtl is specified.
9983         whitespace:pre is needed to align baseline in a case of empty values.
9984         * css/themeChromiumAndroid.css:
9985         Remove redundant style declaration.
9986         * css/themeWin.css:
9987         Remove padding adjustment for date/time input types. It is for
9988         textfields.
9989
9990 2012-11-13  Vincent Scheib  <scheib@chromium.org>
9991
9992         Remove RuntimeEnabledFeatures::isPointerLockEnabled.
9993         https://bugs.webkit.org/show_bug.cgi?id=102107
9994
9995         Reviewed by Adam Barth.
9996
9997         The runtime flag is always true now that the feature is enabled by default in Chromium.
9998
9999         * bindings/generic/RuntimeEnabledFeatures.cpp:
10000         (WebCore):
10001         * bindings/generic/RuntimeEnabledFeatures.h:
10002         (RuntimeEnabledFeatures):
10003         * dom/Document.idl:
10004         * dom/Element.idl:
10005         * dom/MouseEvent.idl:
10006
10007 2012-11-13  Eugene Klyuchnikov  <eustas.bug@gmail.com>
10008
10009         Web Inspector: JsDoc-annotate KeyboardShortcuts
10010         https://bugs.webkit.org/show_bug.cgi?id=101301
10011
10012         Reviewed by Pavel Feldman.
10013
10014         JsDoc-annotate KeyboardShortcuts to improve readability.
10015
10016         * inspector/front-end/AdvancedSearchController.js: Fix parameter type.
10017         * inspector/front-end/KeyboardShortcut.js: Add annotations.
10018         * inspector/front-end/Panel.js: Make event parameter typed.
10019         * inspector/front-end/inspector.js: Ditto.
10020
10021 2012-11-13  Eugene Klyuchnikov  <eustas.bug@gmail.com>
10022
10023         Web Inspector: Extract common interface for StatusBarButton and StatusBarCombo
10024         https://bugs.webkit.org/show_bug.cgi?id=101907
10025
10026         Reviewed by Pavel Feldman.
10027
10028         Status bar control element should have common interface for
10029         easier management.
10030         In this patch getter/setter for StatusBarButton "disabled" are replaced
10031         with regular functions "enabled"/"setEnabled"; added "setEnabled"
10032         to StatusBarCombo; added new base class StatusBarItem with
10033         method "setEnabled" and member "element".
10034
10035         * inspector/front-end/CPUProfileView.js: Adopted refactoring.
10036         * inspector/front-end/DockController.js: Ditto.
10037         * inspector/front-end/ScriptsPanel.js: Ditto.
10038         * inspector/front-end/TimelinePanel.js: Ditto.
10039         * inspector/front-end/inspector.js: Ditto.
10040         * inspector/front-end/StatusBarButton.js:
10041         (WebInspector.StatusBarItem): Added.
10042         (WebInspector.StatusBarButton): Replaced getter/setter with
10043         regular functions.
10044         (WebInspector.StatusBarComboBox.prototype.setEnabled): Added.
10045
10046 2012-11-13  Eugene Klyuchnikov  <eustas.bug@gmail.com>
10047
10048         Web Inspector: Console: update tab/shift-tab shortcut description.
10049         https://bugs.webkit.org/show_bug.cgi?id=102175
10050
10051         Reviewed by Pavel Feldman.
10052
10053         For "Tab / Shift-Tab" it said "Next/previous suggestion".
10054         Actually, shift-tab to do nothing, and tab auto-completes common prefix.
10055
10056         * English.lproj/localizedStrings.js: Replaced string.
10057         * inspector/front-end/ConsoleView.js: Updated shortcut registration.
10058
10059 2012-11-13  Dana Jansens  <danakj@chromium.org>
10060
10061         [chromium] Pass showDebugBorders directly to WebLayerTreeSettings, don't use the GraphicsLayer border width setting.
10062         https://bugs.webkit.org/show_bug.cgi?id=102130
10063
10064         Reviewed by James Robinson.
10065
10066         The current method of setting debug borders on GraphicsLayers requires
10067         every GraphicsLayerClient to set the value on the layer(s) it
10068         represents. This skips the NonCompositedContentHost as well as any
10069         other clients other than RenderLayerBacking - including layers from the
10070         inspector.
10071
10072         Instead, pass the debug border setting directly to the
10073         WebLayerTreeSettings where the compositor can use the flag to enable
10074         borders on all layers globally.
10075
10076         * platform/graphics/chromium/GraphicsLayerChromium.cpp:
10077         (WebCore::GraphicsLayerChromium::GraphicsLayerChromium):
10078         (WebCore::GraphicsLayerChromium::updateMasksToBounds):
10079         (WebCore::GraphicsLayerChromium::updateLayerIsDrawable):
10080         (WebCore::GraphicsLayerChromium::setupContentsLayer):
10081         * platform/graphics/chromium/GraphicsLayerChromium.h:
10082         (GraphicsLayerChromium):
10083
10084 2012-11-13  Kunihiko Sakamoto  <ksakamoto@chromium.org>
10085
10086         Enable calendar picker for input types datetime/datetime-local
10087         https://bugs.webkit.org/show_bug.cgi?id=101889
10088
10089         Reviewed by Kent Tamura.
10090
10091         This adds calendar picker to <input type=datetime> and <input type=datetime-local>.
10092         When a user choose a date from calendar picker, year/month/day fields of the input
10093         element are updated and hour/minute/second fields are unchanged.
10094
10095         Tests: platform/chromium/fast/forms/calendar-picker/calendar-picker-datetime-local.html
10096                platform/chromium/fast/forms/calendar-picker/calendar-picker-datetime.html
10097
10098         * Resources/pagepopups/calendarPicker.js: Day.parse accepts datetime string (just drops time part).
10099         * html/BaseMultipleFieldsDateAndTimeInputType.cpp:
10100         (WebCore::BaseMultipleFieldsDateAndTimeInputType::pickerIndicatorChooseValue):
10101         If the given value is not valid for the element, try to parse it as a date string.
10102         * html/DateTimeInputType.cpp:
10103         (WebCore::DateTimeInputType::formatDateTimeFieldsState): DateTimeFieldsState::month() returns 1-12, not 0-11.
10104         * html/DateTimeLocalInputType.cpp:
10105         (WebCore::DateTimeLocalInputType::formatDateTimeFieldsState): Ditto.
10106         * html/shadow/DateTimeEditElement.cpp:
10107         (WebCore::DateTimeEditElement::setOnlyYearMonthDay): Added.
10108         (WebCore):
10109         * html/shadow/DateTimeEditElement.h:
10110         (DateTimeEditElement):
10111         * rendering/RenderThemeChromiumCommon.cpp:
10112         (WebCore::RenderThemeChromiumCommon::supportsCalendarPicker): Return true for datetime and datetimelocal too.
10113
10114 2012-11-13  Sheriff Bot  <webkit.review.bot@gmail.com>
10115
10116         Unreviewed, rolling out r134524.
10117         http://trac.webkit.org/changeset/134524
10118         https://bugs.webkit.org/show_bug.cgi?id=102177
10119
10120         "Chromiium build broken" (Requested by haraken on #webkit).
10121
10122         * WebCore.gyp/WebCore.gyp:
10123         * WebCore.gypi:
10124         * rendering/RenderThemeChromiumFontProvider.cpp: Removed.
10125         * rendering/RenderThemeChromiumFontProvider.h: Removed.
10126         * rendering/RenderThemeChromiumFontProviderLinux.cpp: Removed.
10127         * rendering/RenderThemeChromiumFontProviderWin.cpp: Removed.
10128         * rendering/RenderThemeChromiumSkia.cpp:
10129         (WebCore::RenderThemeChromiumSkia::defaultGUIFont):
10130         (WebCore::RenderThemeChromiumSkia::systemFont):
10131         (WebCore::RenderThemeChromiumSkia::setDefaultFontSize):
10132         * rendering/RenderThemeChromiumSkia.h:
10133         (RenderThemeChromiumSkia):
10134         * rendering/RenderThemeChromiumWin.cpp:
10135         (WebCore):
10136         (WebCore::getNonClientMetrics):
10137         (WebCore::systemFontSize):
10138         (WebCore::pointsToPixels):
10139         (WebCore::RenderThemeChromiumWin::systemFont):
10140         (WebCore::RenderThemeChromiumWin::setDefaultFontSize):
10141         * rendering/RenderThemeChromiumWin.h:
10142         (RenderThemeChromiumWin):
10143
10144 2012-11-13  KyungTae Kim  <ktf.kim@samsung.com>
10145
10146         Fix compile warning [-Wsign-compare]
10147         https://bugs.webkit.org/show_bug.cgi?id=101458
10148
10149         Reviewed by Alexey Proskuryakov.
10150
10151         Currently, lossy check has been done by comparing file size(posix signed integral value) with conversioned(standard c++ unsigned integral value).
10152         However, it leads -Wsign-compare compile warning.
10153         Therefore, this patch assigns the file size to the biggest possible unsigned variable, then does the lossy check.
10154
10155         * platform/posix/SharedBufferPOSIX.cpp:
10156         (WebCore::SharedBuffer::createWithContentsOfFile):
10157
10158 2012-11-13  Keishi Hattori  <keishi@webkit.org>
10159
10160         Enable datalist UI for input types week and month
10161         https://bugs.webkit.org/show_bug.cgi?id=102041
10162
10163         Reviewed by Kent Tamura.
10164
10165         Enabling datalist UI for input types week and month.
10166
10167         No new tests. Tests will be added later in Bug 102039 and Bug 102040.
10168
10169         * rendering/RenderThemeChromiumCommon.cpp:
10170         (WebCore::RenderThemeChromiumCommon::supportsDataListUI): Add month and week to the list.
10171
10172 2012-11-13  Eberhard Graether  <egraether@google.com>
10173
10174         checkbox to toggle FPS counter in the inspector's settings
10175         https://bugs.webkit.org/show_bug.cgi?id=99660
10176
10177         Reviewed by Pavel Feldman.
10178
10179         Added a checkbox to the inspector's settings to toggle a FPS counter. The checkbox appears when InspectorClient::canShowFPSCounter() returns true.
10180
10181         No new tests.
10182
10183         * English.lproj/localizedStrings.js:
10184         * inspector/Inspector.json:
10185         * inspector/InspectorClient.h:
10186         (WebCore::InspectorClient::canShowFPSCounter):
10187         (WebCore::InspectorClient::setShowFPSCounter):
10188         (InspectorClient):
10189         * inspector/InspectorPageAgent.cpp:
10190         (PageAgentState):
10191         (WebCore::InspectorPageAgent::enable):
10192         (WebCore::InspectorPageAgent::disable):
10193         (WebCore::InspectorPageAgent::canShowFPSCounter):
10194         (WebCore):
10195         (WebCore::InspectorPageAgent::setShowFPSCounter):
10196         * inspector/InspectorPageAgent.h:
10197         * inspector/front-end/Settings.js:
10198         * inspector/front-end/SettingsScreen.js:
10199         (WebInspector.GenericSettingsTab):
10200         (WebInspector.GenericSettingsTab.prototype.get _showFPSCounterChanged):
10201         * inspector/front-end/inspector.js:
10202         (WebInspector.doLoadedDone):
10203
10204 2012-11-13  Shinya Kawanaka  <shinyak@chromium.org>
10205
10206         Collect necessary features for SelectRuleFeatureSet
10207         https://bugs.webkit.org/show_bug.cgi?id=102160
10208
10209         Reviewed by Dimitri Glazkov.
10210
10211         When pseudo class is changed, we might have to invalidate distribution. To determine whether we should invalidate
10212         distribution, we would like to collect RuleFeature from select attributes.
10213
10214         According to ShadowDOM spec, we have to collect the following pseudo classes: checked, enabled, disabled,
10215         indeterminate, link, target, and visited. We collect them in this patch.
10216
10217         Test: fast/dom/shadow/shadow-select-attribute-featureset.html
10218
10219         * html/shadow/SelectRuleFeatureSet.cpp:
10220         (WebCore::SelectRuleFeatureSet::SelectRuleFeatureSet): Uses int as bitset so that we can use bit operator.
10221         (WebCore::SelectRuleFeatureSet::add):
10222         (WebCore::SelectRuleFeatureSet::clear):
10223         (WebCore::SelectRuleFeatureSet::collectFeaturesFromSelector): Collects necessary features from CSSSelector.
10224         * html/shadow/SelectRuleFeatureSet.h:
10225         (WebCore::SelectRuleFeatureSet::hasSelectorForChecked):
10226         (WebCore::SelectRuleFeatureSet::hasSelectorForEnabled):
10227         (WebCore::SelectRuleFeatureSet::hasSelectorForDisabled):
10228         (WebCore::SelectRuleFeatureSet::hasSelectorForIndeterminate):
10229         (WebCore::SelectRuleFeatureSet::hasSelectorForLink):
10230         (WebCore::SelectRuleFeatureSet::hasSelectorForTarget):
10231         (WebCore::SelectRuleFeatureSet::hasSelectorForVisited):
10232         (SelectRuleFeatureSet):
10233         (WebCore::SelectRuleFeatureSet::setSelectRuleFeature):
10234         (WebCore::SelectRuleFeatureSet::hasSelectorFor):
10235         * testing/Internals.cpp:
10236         (WebCore::Internals::hasSelectorForPseudoClassInShadow):
10237         (WebCore):
10238         * testing/Internals.h:
10239         (Internals):
10240         * testing/Internals.idl:
10241
10242 2012-11-13  Andreas Kling  <kling@webkit.org>
10243
10244         Move inline style logic from ElementAttributeData to StyledElement.
10245         <http://webkit.org/b/102120>
10246
10247         Reviewed by Antti Koivisto.
10248
10249         Move all the logic dealing with element inline style from ElementAttributeData to StyledElement.
10250         No difference in behavior, just making ElementAttributeData dumber.
10251
10252         * css/StylePropertySet.cpp:
10253         * css/StylePropertySet.h:
10254         (WebCore::StylePropertySet::hasCSSOMWrapper):
10255         (WebCore::StylePropertySet::cssStyleDeclaration):
10256
10257             Added as complements to ensureCSSStyleDeclaration() for the case where we don't want
10258             to instantiate a CSSOM wrapper unnecessarily.
10259
10260         * dom/StyledElement.h:
10261         (WebCore::StyledElement::inlineStyle):
10262         * dom/ElementAttributeData.cpp:
10263         (WebCore::ImmutableElementAttributeData::ImmutableElementAttributeData):
10264         (WebCore::MutableElementAttributeData::MutableElementAttributeData):
10265         (WebCore::ElementAttributeData::reportMemoryUsage):
10266         * dom/ElementAttributeData.h:
10267         (WebCore::ElementAttributeData::inlineStyle):
10268         (ElementAttributeData):
10269
10270             Renamed m_inlineStyleDecl to m_inlineStyle. Finally.
10271
10272         * dom/StyledElement.cpp:
10273         (WebCore::StyledElement::~StyledElement):
10274
10275             Detach the CSSOM wrapper from the inline style if there is one.
10276
10277         (WebCore::StyledElement::ensureMutableInlineStyle):
10278         (WebCore::StyledElement::style):
10279
10280             Renamed ensureInlineStyle() to ensureMutableInlineStyle() since that's what it
10281             actually does. Update call sites accordingly.
10282
10283         (WebCore::StyledElement::inlineStyleCSSOMWrapper):
10284
10285             Added helper to get the CSSOM wrapper for the element's inline style if there is one.
10286
10287         (WebCore::StyledElement::styleAttributeChanged):
10288
10289             Do the work to parse/update/replace the inline style attribute here instead of
10290             in an ElementAttributeData method.
10291
10292         (WebCore::StyledElement::setInlineStyleProperty):
10293         (WebCore::StyledElement::removeInlineStyleProperty):
10294         (WebCore::StyledElement::removeAllInlineStyleProperties):
10295         * editing/ApplyStyleCommand.cpp:
10296         (WebCore::ApplyStyleCommand::applyRelativeFontStyleChange):
10297         (WebCore::ApplyStyleCommand::removeEmbeddingUpToEnclosingBlock):
10298         (WebCore::ApplyStyleCommand::applyInlineStyleToNodeRange):
10299         * editing/ReplaceSelectionCommand.cpp:
10300         (WebCore::ReplaceSelectionCommand::handleStyleSpans):
10301         * html/canvas/CanvasStyle.cpp:
10302         (WebCore::currentColor):
10303
10304             s/ensureInlineStyle/ensureMutableInlineStyle/
10305
10306 2012-11-13  Li Yin  <li.yin@intel.com>
10307
10308         fast/forms/file/input-file-write-files.html should cover correct setting value
10309         https://bugs.webkit.org/show_bug.cgi?id=100085
10310
10311         Reviewed by Kentaro Hara.
10312
10313         Fix the GObject and Objective C bindings comparibility issue. Preserving existing
10314         behavior for those may be important in idl.
10315
10316         No new tests, because fast/forms/file/input-file-value.html has covered it.
10317
10318         * html/HTMLInputElement.idl:
10319
10320 2012-11-13  KyungTae Kim  <ktf.kim@samsung.com>
10321
10322         [EFL] Fix build warning in NetworkStateNotifierEfl.cpp
10323         https://bugs.webkit.org/show_bug.cgi?id=102061
10324
10325         Reviewed by Gyuyoung Kim.
10326
10327         The second argument for NLMSG_OK needs to be unsigned to avoid the -Wsign-compare warning.
10328
10329         * platform/network/efl/NetworkStateNotifierEfl.cpp:
10330         (WebCore::readSocketCallback):
10331
10332 2012-11-13  Sami Kyostila  <skyostil@chromium.org>
10333
10334         Don't mark scrolling contents as dirty if RenderLayerBacking is going away
10335         https://bugs.webkit.org/show_bug.cgi?id=101947
10336
10337         Reviewed by Simon Fraser.
10338
10339         When a scrolling contents graphics layer is created or destroyed, the
10340         associated graphics layer is marked as needing display because some of
10341         the painted content may have migrated between the primary graphics layer
10342         and the scrolling layer.
10343
10344         This causes a problem when the RenderLayerBacking is being destroyed,
10345         because setNeedsDisplay() needs to check from the compositor whether to
10346         track repaints or not. If the RenderLayerBacking is being destroyed, the
10347         value returned by compositor() is garbage and this causes a crash.
10348
10349         This patch fixes the problem by making RenderLayer::compositor() return a null
10350         pointer when the renderer no longer has a view.
10351
10352         Covered by existing layout tests in compositing/overflow/.
10353
10354         * rendering/RenderLayer.cpp:
10355         (WebCore::RenderLayer::compositor):
10356
10357 2012-11-13  Erik Arvidsson  <arv@chromium.org>
10358
10359         Update DOMException name: InvalidCharacterError
10360         https://bugs.webkit.org/show_bug.cgi?id=102128
10361
10362         Reviewed by Darin Adler.
10363
10364         Patch 5 of 25 to update DOMException name to match the spec and Firefox.
10365
10366         Updated existing tests.
10367
10368         * dom/DOMCoreException.cpp:
10369
10370 2012-11-13  Joshua Bell  <jsbell@chromium.org>
10371
10372         IndexedDB: Run multiple tasks per transaction tick
10373         https://bugs.webkit.org/show_bug.cgi?id=97738
10374
10375         Reviewed by Tony Chang.
10376
10377         Process multiple tasks from the pending queue(s) when the timer fires. The
10378         task may initiate new tasks that change which queue is active (e.g. indexing
10379         operations) so the loop must re-check each tick which queue to use.
10380
10381         In DumpRenderTree, time to make 20k puts/20k gets dropped from 3.2s to 2.0s (-37%);
10382         in Chromium's content_shell, the time dropped from 8.1s to 4.6s (-42%).
10383
10384         No new tests - just perf improvements, covered by (nearly) all existing IDB tests.
10385
10386         * Modules/indexeddb/IDBTransactionBackendImpl.cpp:
10387         (WebCore::IDBTransactionBackendImpl::abort): Use takeFirst() to clean up code.
10388         (WebCore::IDBTransactionBackendImpl::taskTimerFired): Process as many tasks as are available.
10389
10390 2012-11-13  Elliott Sprehn  <esprehn@chromium.org>
10391
10392         Disable frame loading instead of throwing exceptions on subtree modifications in ChildFrameDisconnector
10393         https://bugs.webkit.org/show_bug.cgi?id=102012
10394
10395         Reviewed by Ojan Vafai.
10396
10397         Previously if you modified the subtree that was being removed from a
10398         removeChild from inside an unload handler on an <iframe> inside the
10399         subtree you'd get an exception which is wrong. Instead we just need to
10400         disable all frame loading there.
10401
10402         This works because either the subtree will be removed and the frame never
10403         loading doesn't matter, or some section of the subtree that contains the
10404         frame will be moved to another part of the document which will cause the
10405         frame to load when it's inserted there.
10406
10407         I also added a check for <object> elements. It doesn't seem this is actually
10408         reachable in the existing code, but I'm not entirely sure since the frame
10409         loading and object/plugin handling is very confusing.
10410
10411         A better fix could be to repeatedly walk the subtree until all frames
10412         were disconnected or some iteration limit was hit and then force all leftover
10413         subframes to disconnect without firing unload handlers but this is such an
10414         edge case I don't think the complexity is necessary.
10415
10416         Test: fast/frames/modifications-in-subtree-unload.html
10417
10418         * dom/ContainerNodeAlgorithms.h:
10419         (WebCore::ChildFrameDisconnector::ChildFrameDisconnector):
10420         (WebCore::ChildFrameDisconnector::~ChildFrameDisconnector):
10421         (ChildFrameDisconnector):
10422         (WebCore::ChildFrameDisconnector::disconnect):
10423         * dom/Node.cpp:
10424         (WebCore::checkAcceptChild): Removed exception.
10425         * html/HTMLFrameElementBase.cpp:
10426         (WebCore::HTMLFrameElementBase::didNotifySubtreeInsertions): Check canLoadFrame().
10427         * html/HTMLFrameOwnerElement.h:
10428         (SubframeLoadingDisabler):
10429         (WebCore::SubframeLoadingDisabler::SubframeLoadingDisabler):
10430         (WebCore::SubframeLoadingDisabler::~SubframeLoadingDisabler):
10431         (WebCore::SubframeLoadingDisabler::canLoadFrame):
10432           Returns true if frames can be loaded in the subtree.
10433         (WebCore::SubframeLoadingDisabler::disabledSubtreeRoots):
10434         * html/HTMLObjectElement.cpp:
10435         (WebCore::HTMLObjectElement::updateWidget):
10436           Check canLoadFrame(). I think this case is impossible, but it's better
10437           to be safe than sorry later.
10438
10439 2012-11-13  Joshua Bell  <jsbell@chromium.org>
10440
10441         [V8] Add missing ENABLE(SVG) test in header
10442         https://bugs.webkit.org/show_bug.cgi?id=102143
10443
10444         Reviewed by Kentaro Hara.
10445
10446         Need to wrap the #include of a header that's only conditionally generated.
10447
10448         Fixes build error if compiling e.g. w/ GYP_DEFINES="enable_svg=0"
10449
10450         * bindings/v8/custom/V8ElementCustom.cpp:
10451
10452 2012-11-13  Jon Lee  <jonlee@apple.com>
10453
10454         Automatically run small plugins
10455         https://bugs.webkit.org/show_bug.cgi?id=102148
10456         <rdar://problem/12695560>
10457
10458         Reviewed by Darin Adler.
10459
10460         * rendering/RenderEmbeddedObject.h: Promote layout() to protected.
10461         * rendering/RenderSnapshottedPlugIn.cpp: Add constants for threshold size for plugins that will auto-start.
10462         (WebCore::RenderSnapshottedPlugIn::layout): After layout, obtain the width and height of the element.
10463         If either dimension is 0, or the overall size of the plugin is smaller that the threshold size, move the
10464         display state to Playing. Assuming we will always layout before first paint, changing the state here
10465         should be safe.
10466         * rendering/RenderSnapshottedPlugIn.h:
10467
10468 2012-11-13  Kenneth Russell  <kbr@google.com>
10469
10470         Notify embedder of lost contexts and allow overriding of WebGL support
10471         https://bugs.webkit.org/show_bug.cgi?id=101826
10472
10473         Reviewed by Adam Barth.
10474
10475         Add hooks notifying the embedder when OpenGL contexts are lost and
10476         allowing overriding of WebGL support on a per-frame basis.
10477
10478         No tests yet; don't know how to test this solely within WebKit.
10479         Currently developing tests in the Chromium port exercising the
10480         notifications end-to-end. Once those are in place, I'm prepared to
10481         investigate adding tests for all ports.
10482
10483         * html/canvas/WebGLRenderingContext.cpp:
10484         (WebCore):
10485         (WebCore::WebGLRenderingContext::create):
10486           Check whether embedder vetoes creation of new WebGL contexts.
10487         (WebCore::WebGLRenderingContext::loseContextImpl):
10488           Notify embedder that context was lost.
10489         (WebCore::WebGLRenderingContext::maybeRestoreContext):
10490           Check whether embedder vetoes restoration of existing WebGL contexts.
10491         * loader/FrameLoaderClient.h:
10492         (FrameLoaderClient):
10493         (WebCore::FrameLoaderClient::allowWebGL):
10494         (WebCore::FrameLoaderClient::didLoseWebGLContext):
10495           Hooks notifying embedder of lost contexts and asking permission to run WebGL.
10496
10497 2012-11-13  Scott Violet  <sky@chromium.org>
10498
10499         [Chromium] Refactor theme font lookup into a factory
10500         https://bugs.webkit.org/show_bug.cgi?id=101949
10501
10502         Reviewed by Tony Chang.
10503
10504         This will ultimately allow us to use what is currently in RenderThemeChromiumLinux on windows.
10505
10506         No new tests. Refactoring only.
10507
10508         * WebCore.gyp/WebCore.gyp:
10509         * WebCore.gypi:
10510         * rendering/RenderThemeChromiumFontProvider.cpp: Added.
10511         (WebCore):
10512         (WebCore::RenderThemeChromiumFontProvider::defaultGUIFont): Moved into RenderThemeFontProvider.
10513         * rendering/RenderThemeChromiumFontProvider.h: Added.
10514         (WTF):
10515         (WebCore):
10516         (RenderThemeChromiumFontProvider): This is the font related methods.
10517         * rendering/RenderThemeChromiumFontProviderLinux.cpp: Added.
10518         (WebCore):
10519         (WebCore::RenderThemeChromiumFontProvider::setDefaultFontSize): What was in RenderThemeChromiumSkia::setDefaultFontSize.
10520         (WebCore::RenderThemeChromiumFontProvider::systemFont): What was in RenderThemeChromiumSkia::systemFont.
10521         * rendering/RenderThemeChromiumFontProviderWin.cpp: Added.
10522         (WebCore):
10523         (WebCore::pointsToPixels): Moved from RenderThemeChromiumWin.
10524         (WebCore::getNonClientMetrics): Moved from RenderThemeChromiumWin.
10525         (WebCore::systemFontSize): Moved from RenderThemeChromiumWin.
10526         (WebCore::RenderThemeChromiumFontProvider::systemFont): Moved from RenderThemeChromiumWin.
10527         (WebCore::RenderThemeChromiumFontProvider::setDefaultFontSize): Moved from RenderThemeChromiumWin.
10528         * rendering/RenderThemeChromiumSkia.cpp:
10529         (WebCore::RenderThemeChromiumSkia::RenderThemeChromiumSkia): Moved into RenderThemeFontProvider.
10530         (WebCore::RenderThemeChromiumSkia::systemFont): Calls to RenderThemeChromiumFontProvider.
10531         (WebCore::RenderThemeChromiumSkia::setDefaultFontSize): Calls to RenderThemeChromiumFontProvider.
10532         * rendering/RenderThemeChromiumSkia.h:
10533         (RenderThemeChromiumSkia): Moves defaultFontSize into RenderThemeChromiumFontProvider.
10534         * rendering/RenderThemeChromiumWin.cpp: Moves font code into RenderThemeFontProviderWin.
10535         (WebCore):
10536         * rendering/RenderThemeChromiumWin.h: Removed overriden methods now handled by RenderThemeChromiumSkia.
10537         (RenderThemeChromiumWin):
10538
10539 2012-11-13  Alec Flett  <alecflett@chromium.org>
10540
10541         Add DOMRequestState to maintain world/ScriptExecutionContext state
10542         https://bugs.webkit.org/show_bug.cgi?id=102102
10543
10544         Reviewed by Adam Barth.
10545
10546         Introduce DOMRequestState, and convert IndexedDB over.
10547
10548         No new tests, this is an abstraction layer for existing code.
10549
10550         * Modules/indexeddb/IDBRequest.cpp:
10551         (WebCore::IDBRequest::IDBRequest):
10552         (WebCore::IDBRequest::onSuccess):
10553         (WebCore::IDBRequest::dispatchEvent):
10554         * Modules/indexeddb/IDBRequest.h:
10555         (IDBRequest):
10556         * WebCore.gypi:
10557         * bindings/v8/DOMRequestState.h: Added.
10558         (WebCore):
10559         (DOMRequestState):
10560         (WebCore::DOMRequestState::DOMRequestState):
10561         (Scope):
10562         (WebCore::DOMRequestState::Scope::Scope):
10563         (WebCore::DOMRequestState::scope):
10564
10565 2012-11-13  Robert Sesek  <rsesek@chromium.org>
10566
10567         Sever Chromium's dependence on WebKitSystemInterface media control drawing functions in RenderThemeMac
10568         https://bugs.webkit.org/show_bug.cgi?id=101634
10569
10570         Reviewed by Adam Barth.
10571
10572         This splits out the common methods between RenderThemeMac and RenderThemeChromiumMac
10573         into RenderThemeMacShared.
10574
10575         No new tests, just refactoring.
10576
10577         * WebCore.gyp/WebCore.gyp: Remove RenderThemeMac.mm from platform/ sources list, since it's part of rendering/
10578         * WebCore.gypi: Add RenderThemeMacShared.{h,mm}
10579         * WebCore.xcodeproj/project.pbxproj: Add RenderThemeMacShared.{h,mm}
10580         * rendering/RenderThemeChromiumMac.h:
10581         * rendering/RenderThemeChromiumMac.mm:
10582         (WebCore::RenderThemeChromiumMac::popupInternalPaddingLeft):
10583         (WebCore::RenderThemeChromiumMac::popupInternalPaddingRight):
10584         (WebCore::RenderThemeChromiumMac::extraDefaultStyleSheet):
10585         * rendering/RenderThemeMac.h:
10586         (RenderThemeMac):
10587         * rendering/RenderThemeMac.mm:
10588         (WebCore):
10589         (WebCore::RenderTheme::themeForPage):
10590         (WebCore::RenderThemeMac::create):
10591         (WebCore::RenderThemeMac::RenderThemeMac):
10592         (WebCore::RenderThemeMac::~RenderThemeMac):
10593         (WebCore::RenderThemeMac::documentViewFor):
10594         (WebCore::mediaControllerTheme):
10595         (WebCore::RenderThemeMac::paintMediaSliderTrack):
10596         (WebCore::RenderThemeMac::paintMediaRewindButton):
10597         (WebCore::RenderThemeMac::paintMediaReturnToRealtimeButton):
10598         (WebCore::RenderThemeMac::paintMediaFullScreenVolumeSliderTrack):
10599         (WebCore::RenderThemeMac::paintMediaFullScreenVolumeSliderThumb):
10600         (WebCore::RenderThemeMac::extraMediaControlsStyleSheet):
10601         (WebCore::RenderThemeMac::extraFullScreenStyleSheet):
10602         * rendering/RenderThemeMacShared.h: Copied from Source/WebCore/rendering/RenderThemeMac.h.
10603         (WebCore):
10604         (RenderThemeMacShared):
10605         (WebCore::RenderThemeMacShared::supportsControlTints):
10606         (WebCore::RenderThemeMacShared::scrollbarControlSizeForPart):
10607         (WebCore::RenderThemeMacShared::supportsSelectionForegroundColors):
10608         (WebCore::RenderThemeMacShared::supportsClosedCaptioning):
10609         (WebCore::RenderThemeMacShared::updateActiveState):
10610         * rendering/RenderThemeMacShared.mm: Copied from Source/WebCore/rendering/RenderThemeMac.mm.
10611         (-[WebCoreRenderThemeNotificationObserver initWithTheme:WebCore::]):
10612         (-[WebCoreRenderThemeNotificationObserver systemColorsDidChange:]):
10613         (-[WebCoreTextFieldCell _coreUIDrawOptionsWithFrame:inView:includeFocus:]):
10614         (WebCore):
10615         (WebCore::RenderThemeMacShared::RenderThemeMacShared):
10616         (WebCore::RenderThemeMacShared::~RenderThemeMacShared):
10617         (WebCore::RenderThemeMacShared::platformActiveSelectionBackgroundColor):
10618         (WebCore::RenderThemeMacShared::platformInactiveSelectionBackgroundColor):
10619         (WebCore::RenderThemeMacShared::platformActiveListBoxSelectionBackgroundColor):
10620         (WebCore::RenderThemeMacShared::platformActiveListBoxSelectionForegroundColor):
10621         (WebCore::RenderThemeMacShared::platformInactiveListBoxSelectionForegroundColor):
10622         (WebCore::RenderThemeMacShared::platformFocusRingColor):
10623         (WebCore::RenderThemeMacShared::platformInactiveListBoxSelectionBackgroundColor):
10624         (WebCore::toFontWeight):
10625         (WebCore::RenderThemeMacShared::systemFont):
10626         (WebCore::convertNSColorToColor):
10627         (WebCore::menuBackgroundColor):
10628         (WebCore::RenderThemeMacShared::platformColorsDidChange):
10629         (WebCore::RenderThemeMacShared::systemColor):
10630         (WebCore::RenderThemeMacShared::usesTestModeFocusRingColor):
10631         (WebCore::RenderThemeMacShared::isControlStyled):
10632         (WebCore::RenderThemeMacShared::adjustRepaintRect):
10633         (WebCore::RenderThemeMacShared::inflateRect):
10634         (WebCore::RenderThemeMacShared::convertToPaintingRect):
10635         (WebCore::RenderThemeMacShared::updateCheckedState):
10636         (WebCore::RenderThemeMacShared::updateEnabledState):
10637         (WebCore::RenderThemeMacShared::updateFocusedState):
10638         (WebCore::RenderThemeMacShared::updatePressedState):
10639         (WebCore::RenderThemeMacShared::controlSupportsTints):
10640         (WebCore::RenderThemeMacShared::controlSizeForFont):
10641         (WebCore::RenderThemeMacShared::setControlSize):
10642         (WebCore::RenderThemeMacShared::sizeForFont):
10643         (WebCore::RenderThemeMacShared::sizeForSystemFont):
10644         (WebCore::RenderThemeMacShared::setSizeFromFont):
10645         (WebCore::RenderThemeMacShared::setFontFromControlSize):
10646         (WebCore::RenderThemeMacShared::controlSizeForSystemFont):
10647         (WebCore::RenderThemeMacShared::paintTextField):
10648         (WebCore::RenderThemeMacShared::adjustTextFieldStyle):
10649         (WebCore::RenderThemeMacShared::paintCapsLockIndicator):
10650         (WebCore::RenderThemeMacShared::paintTextArea):
10651         (WebCore::RenderThemeMacShared::adjustTextAreaStyle):
10652         (WebCore::RenderThemeMacShared::popupButtonMargins):
10653         (WebCore::RenderThemeMacShared::popupButtonSizes):
10654         (WebCore::RenderThemeMacShared::popupButtonPadding):
10655         (WebCore::RenderThemeMacShared::paintMenuList):
10656         (WebCore::RenderThemeMacShared::meterSizeForBounds):
10657         (WebCore::RenderThemeMacShared::paintMeter):
10658         (WebCore::RenderThemeMacShared::supportsMeter):
10659         (WebCore::RenderThemeMacShared::levelIndicatorStyleFor):
10660         (WebCore::RenderThemeMacShared::levelIndicatorFor):
10661         (WebCore::RenderThemeMacShared::progressBarSizes):
10662         (WebCore::RenderThemeMacShared::progressBarMargins):
10663         (WebCore::RenderThemeMacShared::minimumProgressBarHeight):
10664         (WebCore::RenderThemeMacShared::animationRepeatIntervalForProgressBar):
10665         (WebCore::RenderThemeMacShared::animationDurationForProgressBar):
10666         (WebCore::RenderThemeMacShared::adjustProgressBarStyle):
10667         (WebCore::RenderThemeMacShared::paintProgressBar):
10668         (WebCore::TopGradientInterpolate):
10669         (WebCore::BottomGradientInterpolate):
10670         (WebCore::MainGradientInterpolate):
10671         (WebCore::TrackGradientInterpolate):
10672         (WebCore::RenderThemeMacShared::paintMenuListButtonGradients):
10673         (WebCore::RenderThemeMacShared::paintMenuListButton):
10674         (WebCore::menuListButtonSizes):
10675         (WebCore::RenderThemeMacShared::adjustMenuListStyle):
10676         (WebCore::RenderThemeMacShared::popupInternalPaddingLeft):
10677         (WebCore::RenderThemeMacShared::popupInternalPaddingRight):
10678         (WebCore::RenderThemeMacShared::popupInternalPaddingTop):
10679         (WebCore::RenderThemeMacShared::popupInternalPaddingBottom):
10680         (WebCore::RenderThemeMacShared::adjustMenuListButtonStyle):
10681         (WebCore::RenderThemeMacShared::setPopupButtonCellState):
10682         (WebCore::RenderThemeMacShared::menuListSizes):
10683         (WebCore::RenderThemeMacShared::minimumMenuListSize):
10684         (WebCore::RenderThemeMacShared::adjustSliderTrackStyle):
10685         (WebCore::RenderThemeMacShared::paintSliderTrack):
10686         (WebCore::RenderThemeMacShared::adjustSliderThumbStyle):
10687         (WebCore::RenderThemeMacShared::paintSliderThumb):
10688         (WebCore::RenderThemeMacShared::paintSearchField):
10689         (WebCore::RenderThemeMacShared::setSearchCellState):
10690         (WebCore::RenderThemeMacShared::searchFieldSizes):
10691         (WebCore::RenderThemeMacShared::setSearchFieldSize):
10692         (WebCore::RenderThemeMacShared::adjustSearchFieldStyle):
10693         (WebCore::RenderThemeMacShared::paintSearchFieldCancelButton):
10694         (WebCore::RenderThemeMacShared::cancelButtonSizes):
10695         (WebCore::RenderThemeMacShared::adjustSearchFieldCancelButtonStyle):
10696         (WebCore::RenderThemeMacShared::resultsButtonSizes):
10697         (WebCore::RenderThemeMacShared::adjustSearchFieldDecorationStyle):
10698         (WebCore::RenderThemeMacShared::paintSearchFieldDecoration):
10699         (WebCore::RenderThemeMacShared::adjustSearchFieldResultsDecorationStyle):
10700         (WebCore::RenderThemeMacShared::paintSearchFieldResultsDecoration):
10701         (WebCore::RenderThemeMacShared::adjustSearchFieldResultsButtonStyle):
10702         (WebCore::RenderThemeMacShared::paintSearchFieldResultsButton):
10703         (WebCore::RenderThemeMacShared::sliderTickSize):
10704         (WebCore::RenderThemeMacShared::sliderTickOffsetFromTrackCenter):
10705         (WebCore::RenderThemeMacShared::adjustSliderThumbSize):
10706         (WebCore::RenderThemeMacShared::shouldShowPlaceholderWhenFocused):
10707         (WebCore::RenderThemeMacShared::popupButton):
10708         (WebCore::RenderThemeMacShared::search):
10709         (WebCore::RenderThemeMacShared::searchMenuTemplate):
10710         (WebCore::RenderThemeMacShared::sliderThumbHorizontal):
10711         (WebCore::RenderThemeMacShared::sliderThumbVertical):
10712         (WebCore::RenderThemeMacShared::textField):
10713         (WebCore::RenderThemeMacShared::fileListNameForWidth):
10714         (WebCore::RenderThemeMacShared::paintPlugInSnapshotOverlay):
10715
10716 2012-11-13  Tab Atkins  <jackalmage@gmail.com>
10717
10718         CSS @charset parsing is too loose, doesn't match other browsers
10719         https://bugs.webkit.org/show_bug.cgi?id=101527
10720
10721         Reviewed by Alexey Proskuryakov.
10722
10723         Per <https://www.w3.org/Bugs/Public/show_bug.cgi?id=19882#attach_1244>,
10724         IE and FF have changed to be strict about @charset parsing,
10725         as the CSS 2.1 spec requires.
10726         Since @charset use is very uncommon anyway,
10727         we should match the new behavior and the spec for platform consistency.
10728
10729         Test: fast/encoding/css-charset-evil/css-charset-evil.html
10730
10731         * loader/TextResourceDecoder.cpp:
10732         (WebCore::bytesEqual):
10733         (WebCore::TextResourceDecoder::checkForCSSCharset):
10734
10735 2012-11-13  Kenichi Ishibashi  <bashi@chromium.org>
10736
10737         [WebSocket] send() and close() should not throw an exception for an unpaired surrogate but use the replacement character
10738         https://bugs.webkit.org/show_bug.cgi?id=101569
10739
10740         Reviewed by Alexey Proskuryakov.
10741
10742         Replace unpaired surrogates with replacing character (U+FFFD) when
10743         encoding text messages and close reasons. This change is aimed at
10744         following the changes on the WebSocket API specification.
10745
10746         Test: http/tests/websocket/tests/hybi/close-reason-too-long.html
10747
10748         * Modules/websockets/WebSocket.cpp:
10749         (WebCore::WebSocket::close):
10750         Use String::StrictConversionReplacingUnpairedSurrogatesWithFFFD mode to encode
10751         text message. Remove invalid utf-8 check.
10752         * Modules/websockets/WebSocketChannel.cpp:
10753         (WebCore::WebSocketChannel::send):
10754         Use String::StrictConversionReplacingUnpairedSurrogatesWithFFFD mode to encode
10755         close reason. Remove invalid utf-8 check.
10756
10757 2012-11-13  Christophe Dumez  <christophe.dumez@intel.com>
10758
10759         Make HTMLLegendElement.form behave according to specification
10760         https://bugs.webkit.org/show_bug.cgi?id=101044
10761
10762         Reviewed by Kent Tamura.
10763
10764         According to the HTML5 specification (http://dev.w3.org/html5/spec/single-page.html#dom-legend-form),
10765         The form IDL attribute's behavior depends on whether the legend element is in a fieldset element or
10766         not. If the legend has a fieldset element as its parent, then the form IDL attribute must return the
10767         same value as the form IDL attribute on that fieldset element. Otherwise, it must return null.
10768
10769         This patch makes WebKit behaves according to specification (and Firefox). Previously, legend.form was
10770         not returning null if the element was not inside a fieldset. Also, legend.form did not necessarily
10771         return the same value as the parent fieldset's form attribute.
10772
10773         Test: fast/forms/legend/legend-form.html
10774
10775         * html/HTMLLegendElement.cpp:
10776         (WebCore):
10777         (WebCore::HTMLLegendElement::virtualForm):
10778         * html/HTMLLegendElement.h:
10779         (HTMLLegendElement):
10780
10781 2012-11-13  Mark Lam  <mark.lam@apple.com>
10782
10783         Make an assertion in JSEventListener::jsFunction() more useful.
10784         https://bugs.webkit.org/show_bug.cgi?id=101985.
10785
10786         Reviewed by Geoffrey Garen.
10787
10788         The assertion was weakened in r134495. This strengthens it again.
10789
10790         No new tests.
10791
10792         * bindings/js/JSEventListener.h:
10793         (WebCore::JSEventListener::jsFunction):
10794
10795 2012-11-13  Dean Jackson  <dino@apple.com>
10796
10797         Support list of tracks in caption media controls
10798         https://bugs.webkit.org/show_bug.cgi?id=101669
10799
10800         Reviewed by Eric Carlson.
10801
10802         Attempt four of commit. The first two times caused build failures on Chromium. The third time
10803         crashed the Windows test bot. It's also been rebased since r134488.
10804
10805         Add some new elements to the media control shadow DOM that display the list of available
10806         tracks on an audio/video element. The UI is hidden by default everywhere but on Mac,
10807         where it is given a very basic design. At the moment only the list of available tracks
10808         are displayed; The followup bug will make the UI active: https://bugs.webkit.org/show_bug.cgi?id=101670
10809
10810         No new tests - this doesn't expose any testable surface.
10811
10812         * css/mediaControls.css: Added default rules that hide the new elements.
10813         * css/mediaControlsQuickTime.css: Specific rules that give a basic rendering of the new track list.
10814         * html/shadow/MediaControlElements.cpp:
10815         (WebCore::MediaControlElement::isShowing): Tests for the visibility of a control.
10816         (WebCore::MediaControlClosedCaptionsContainerElement::MediaControlClosedCaptionsContainerElement):
10817         (WebCore::MediaControlClosedCaptionsContainerElement::create):
10818         (WebCore::MediaControlClosedCaptionsContainerElement::shadowPseudoId):
10819         (WebCore::MediaControlToggleClosedCaptionsButtonElement::MediaControlToggleClosedCaptionsButtonElement):
10820         (WebCore::MediaControlToggleClosedCaptionsButtonElement::create): Now takes a reference to the media controls as a parameter.
10821         (WebCore::MediaControlToggleClosedCaptionsButtonElement::updateDisplayType):
10822         (WebCore::MediaControlToggleClosedCaptionsButtonElement::defaultEventHandler):
10823         (WebCore::MediaControlToggleClosedCaptionsButtonElement::shadowPseudoId):
10824         (WebCore::MediaControlClosedCaptionsTrackListElement::MediaControlClosedCaptionsTrackListElement): New element for holding a list of tracks to display.
10825         * html/shadow/MediaControlElements.h:
10826         (MediaControlElement):
10827         (MediaControlToggleClosedCaptionsButtonElement):
10828         (MediaControlClosedCaptionsContainerElement):
10829         (MediaControlClosedCaptionsTrackListElement): Examines the media element to build a shadow DOM that lists all the tracks available.
10830         * html/shadow/MediaControlsApple.cpp:
10831         (WebCore::MediaControlsApple::MediaControlsApple):
10832         (WebCore::MediaControlsApple::create): New track container and list elements created.
10833         (WebCore::MediaControlsApple::setMediaController): Hook up the new elements to the controller..
10834         (WebCore::MediaControlsApple::hide):
10835         (WebCore::MediaControlsApple::makeTransparent):
10836         (WebCore::MediaControlsApple::reset):
10837         (WebCore::MediaControlsApple::reportedError):
10838         (WebCore::MediaControlsApple::toggleClosedCaptionTrackList): Shows or hides the popup with the list of tracks.
10839         (WebCore):
10840         * html/shadow/MediaControlsApple.h:
10841         (MediaControlsApple):
10842         * html/shadow/MediaControlsChromium.cpp:
10843         (WebCore::MediaControlsChromium::initializeControls): Pass in the controls as a parameter.
10844         * html/shadow/MediaControls.h:
10845         (MediaControls):
10846         * platform/Language.cpp:
10847         (WebCore::displayNameForLanguageLocale): New function to return a human-readable name for a locale, given the identifier input.
10848         * platform/Language.h:
10849         (WebCore):
10850         * rendering/RenderMediaControls.cpp:
10851         (WebCore::RenderMediaControls::paintMediaControlsPart): New enum values into switch.
10852         * rendering/RenderMediaControlsChromium.cpp:
10853         (WebCore::RenderMediaControlsChromium::paintMediaControlsPart): New enum values into switch.
10854
10855 2012-11-13  Dimitri Glazkov  <dglazkov@chromium.org>
10856
10857         Unreviewed, rolling out r134377.
10858         http://trac.webkit.org/changeset/134377
10859         https://bugs.webkit.org/show_bug.cgi?id=101133
10860
10861         Caused a mysterious Android Clang build failure, needs
10862         investigation before landing again.
10863
10864         * css/html.css:
10865         (input::-webkit-textfield-decoration-container):
10866         * html/TextFieldInputType.cpp:
10867         (WebCore::TextFieldInputType::attach):
10868
10869 2012-11-13  Sheriff Bot  <webkit.review.bot@gmail.com>
10870
10871         Unreviewed, rolling out r134482.
10872         http://trac.webkit.org/changeset/134482
10873         https://bugs.webkit.org/show_bug.cgi?id=102140
10874
10875         The patch causes fast/regions/moved-content-node-crash.html to
10876         crash in Debug mode due to ASSERTION. (Requested by abucur on
10877         #webkit).
10878
10879         * rendering/InlineFlowBox.cpp:
10880         (SameSizeAsInlineFlowBox):
10881         * rendering/InlineFlowBox.h:
10882         (WebCore::InlineFlowBox::InlineFlowBox):
10883         (InlineFlowBox):
10884         * rendering/RenderBlock.cpp:
10885         (WebCore::RenderBlock::lineWidthForPaginatedLineChanged):
10886         * rendering/RenderBlockLineLayout.cpp:
10887         (WebCore::RenderBlock::layoutRunsAndFloatsInRange):
10888         (WebCore::RenderBlock::linkToEndLineIfNeeded):
10889         (WebCore::RenderBlock::determineStartPosition):
10890         * rendering/RootInlineBox.cpp:
10891         (WebCore::RootInlineBox::RootInlineBox):
10892         * rendering/RootInlineBox.h:
10893         (WebCore):
10894         (WebCore::RootInlineBox::paginationStrut):
10895         (WebCore::RootInlineBox::setPaginationStrut):
10896         (WebCore::RootInlineBox::isFirstAfterPageBreak):
10897         (WebCore::RootInlineBox::setIsFirstAfterPageBreak):
10898         (WebCore::RootInlineBox::paginatedLineWidth):
10899         (WebCore::RootInlineBox::setPaginatedLineWidth):
10900         (RootInlineBox):
10901
10902 2012-11-13  Xianzhu Wang  <wangxianzhu@chromium.org>
10903
10904         Missing NodeRenderStyle.h include in WebCore/html/TextFieldInputType.cpp
10905         https://bugs.webkit.org/show_bug.cgi?id=102108
10906
10907         Reviewed by Adam Barth.
10908
10909         No new tests. Fix clang build break.
10910
10911         * html/TextFieldInputType.cpp: Added #include "NodeRenderStyle.h"
10912
10913 2012-11-13  Chris Fleizach  <cfleizach@apple.com>
10914
10915         AX: MathML types need to be semantically identified in AX tree
10916         https://bugs.webkit.org/show_bug.cgi?id=101263
10917
10918         Reviewed by Beth Dakin.
10919
10920         Semantically identify various MathML elements within the AX tree. This will allow
10921         screen readers to identify math types so that equations can be output more accurately.
10922
10923         Test: platform/mac/accessibility/mathml-elements.html
10924
10925         * accessibility/AccessibilityObject.h:
10926         (AccessibilityObject):
10927         (WebCore::AccessibilityObject::isMathElement):
10928         (WebCore::AccessibilityObject::isMathFraction):
10929         (WebCore::AccessibilityObject::isMathFenced):
10930         (WebCore::AccessibilityObject::isMathSubscriptSuperscript):
10931         (WebCore::AccessibilityObject::isMathRow):
10932         (WebCore::AccessibilityObject::isMathUnderOver):
10933         (WebCore::AccessibilityObject::isMathRoot):
10934         (WebCore::AccessibilityObject::isMathSquareRoot):
10935         (WebCore::AccessibilityObject::isMathText):
10936         (WebCore::AccessibilityObject::isMathNumber):
10937         (WebCore::AccessibilityObject::isMathOperator):
10938         (WebCore::AccessibilityObject::isMathFenceOperator):
10939         (WebCore::AccessibilityObject::isMathSeparatorOperator):
10940         (WebCore::AccessibilityObject::isMathIdentifier):
10941         (WebCore::AccessibilityObject::isMathTable):
10942         (WebCore::AccessibilityObject::isMathTableRow):
10943         (WebCore::AccessibilityObject::isMathTableCell):
10944         (WebCore::AccessibilityObject::mathRadicandObject):
10945         (WebCore::AccessibilityObject::mathRootIndexObject):
10946         (WebCore::AccessibilityObject::mathUnderObject):
10947         (WebCore::AccessibilityObject::mathOverObject):
10948         (WebCore::AccessibilityObject::mathNumeratorObject):
10949         (WebCore::AccessibilityObject::mathDenominatorObject):
10950         (WebCore::AccessibilityObject::mathBaseObject):
10951         (WebCore::AccessibilityObject::mathSubscriptObject):
10952         (WebCore::AccessibilityObject::mathSuperscriptObject):
10953         (WebCore::AccessibilityObject::mathFencedOpenString):
10954         (WebCore::AccessibilityObject::mathFencedCloseString):
10955         * accessibility/AccessibilityRenderObject.cpp:
10956         (WebCore::startOfContinuations):
10957             Handle a case where a MathML render element is created with the node of their parent (which could lead to an assert).
10958         (WebCore::AccessibilityRenderObject::textUnderElement):
10959             Handle the cases for RenderMathMLOperators which use the node of their parent, which confuses the normal textUnderElement() routine.
10960         (WebCore::AccessibilityRenderObject::accessibilityIsIgnored):
10961             Handle ignored cases for math elements
10962         (WebCore::AccessibilityRenderObject::determineAccessibilityRole):
10963         (WebCore::AccessibilityRenderObject::isMathElement):
10964         (WebCore::AccessibilityRenderObject::isMathFraction):
10965         (WebCore::AccessibilityRenderObject::isMathFenced):
10966         (WebCore::AccessibilityRenderObject::isMathSubscriptSuperscript):
10967         (WebCore::AccessibilityRenderObject::isMathRow):
10968         (WebCore::AccessibilityRenderObject::isMathUnderOver):
10969         (WebCore::AccessibilityRenderObject::isMathSquareRoot):
10970         (WebCore::AccessibilityRenderObject::isMathRoot):
10971         (WebCore::AccessibilityRenderObject::isMathOperator):
10972         (WebCore::AccessibilityRenderObject::isMathFenceOperator):
10973         (WebCore::AccessibilityRenderObject::isMathSeparatorOperator):
10974         (WebCore::AccessibilityRenderObject::isMathText):
10975         (WebCore::AccessibilityRenderObject::isMathNumber):
10976         (WebCore::AccessibilityRenderObject::isMathIdentifier):
10977         (WebCore::AccessibilityRenderObject::isMathTable):
10978         (WebCore::AccessibilityRenderObject::isMathTableRow):
10979         (WebCore::AccessibilityRenderObject::isMathTableCell):
10980         (WebCore::AccessibilityRenderObject::isIgnoredElementWithinMathTree):
10981             Make sure anonymouse blocks are ignored within math tree; make sure non-element type objects are ignored (like <mstyle>).
10982         (WebCore::AccessibilityRenderObject::mathRadicandObject):
10983         (WebCore::AccessibilityRenderObject::mathRootIndexObject):
10984         (WebCore::AccessibilityRenderObject::mathNumeratorObject):
10985         (WebCore::AccessibilityRenderObject::mathDenominatorObject):
10986         (WebCore::AccessibilityRenderObject::mathUnderObject):
10987         (WebCore::AccessibilityRenderObject::mathOverObject):
10988         (WebCore::AccessibilityRenderObject::mathBaseObject):
10989         (WebCore::AccessibilityRenderObject::mathSubscriptObject):
10990         (WebCore::AccessibilityRenderObject::mathSuperscriptObject):
10991         (WebCore::AccessibilityRenderObject::mathFencedOpenString):
10992         (WebCore::AccessibilityRenderObject::mathFencedCloseString):
10993         * accessibility/AccessibilityRenderObject.h:
10994         (AccessibilityRenderObject):
10995         * accessibility/mac/WebAccessibilityObjectWrapper.mm:
10996         (-[WebAccessibilityObjectWrapper additionalAccessibilityAttributeNames]):
10997         (createAccessibilityRoleMap):
10998         (-[WebAccessibilityObjectWrapper subrole]):
10999         (-[WebAccessibilityObjectWrapper accessibilityAttributeValue:]):
11000         * rendering/mathml/RenderMathMLBlock.cpp:
11001         (WebCore::RenderMathMLBlock::RenderMathMLBlock):
11002         * rendering/mathml/RenderMathMLBlock.h:
11003         (WebCore::RenderMathMLBlock::isRenderMathMLFenced):
11004         (WebCore::RenderMathMLBlock::isRenderMathMLFraction):
11005         (WebCore::RenderMathMLBlock::isRenderMathMLRoot):
11006         (WebCore::RenderMathMLBlock::isRenderMathMLSquareRoot):
11007         (WebCore::RenderMathMLBlock::isRenderMathMLSubSup):
11008         (WebCore::RenderMathMLBlock::isRenderMathMLUnderOver):
11009         (WebCore::RenderMathMLBlock::setIgnoreInAccessibilityTree):
11010         (WebCore::RenderMathMLBlock::ignoreInAccessibilityTree):
11011             Add ability to identify anonymous render blocks as items that AX should ignore.
11012         (RenderMathMLBlock):
11013         * rendering/mathml/RenderMathMLFenced.cpp:
11014         (WebCore::RenderMathMLFenced::createMathMLOperator):
11015             Identify which kind of math operator is being created on the fly (Fence or Separator)
11016         (WebCore::RenderMathMLFenced::makeFences):
11017         (WebCore::RenderMathMLFenced::addChild):
11018         * rendering/mathml/RenderMathMLFenced.h:
11019         (WebCore::RenderMathMLFenced::isRenderMathMLFenced):
11020         (RenderMathMLFenced):
11021         * rendering/mathml/RenderMathMLFraction.h:
11022         (WebCore::RenderMathMLFraction::isRenderMathMLFraction):
11023         * rendering/mathml/RenderMathMLOperator.cpp:
11024         (WebCore::RenderMathMLOperator::RenderMathMLOperator):
11025         (WebCore::RenderMathMLOperator::updateFromElement):
11026         (WebCore::RenderMathMLOperator::createGlyph):
11027              Mark anonymous render blocks as AX ignored.
11028         * rendering/mathml/RenderMathMLOperator.h:
11029         (WebCore::RenderMathMLOperator::setOperatorType):
11030         (WebCore::RenderMathMLOperator::operatorType):
11031         (RenderMathMLOperator):
11032         * rendering/mathml/RenderMathMLRoot.h:
11033         (WebCore::RenderMathMLRoot::isRenderMathMLRoot):
11034         * rendering/mathml/RenderMathMLSquareRoot.h:
11035         (WebCore::RenderMathMLSquareRoot::isRenderMathMLSquareRoot):
11036         * rendering/mathml/RenderMathMLSubSup.h:
11037         (WebCore::RenderMathMLSubSup::isRenderMathMLSubSup):
11038         * rendering/mathml/RenderMathMLUnderOver.h:
11039         (WebCore::RenderMathMLUnderOver::isRenderMathMLUnderOver):
11040         
11041 2012-11-13  Mark Lam  <mark.lam@apple.com>
11042
11043         JSEventListener should not access m_jsFunction when its wrapper is gone.
11044         https://bugs.webkit.org/show_bug.cgi?id=101985.
11045
11046         Reviewed by Geoffrey Garen.
11047
11048         Added a few null checks for m_wrapper before we do anything with m_jsFunction.
11049
11050         No new tests.
11051
11052         * bindings/js/JSEventListener.cpp:
11053         (WebCore::JSEventListener::initializeJSFunction):
11054         - Removed a now invalid assertion. m_wrapper is expected to have a
11055           valid non-zero value when jsFunction is valid. However, in the case
11056           of JSLazyEventListener (which extends JSEventListener), m_wrapper is
11057           initially 0 when m_jsFunction has not been realized yet. When
11058           JSLazyEventListener::initializeJSFunction() realizes m_jsFunction,
11059           it will set m_wrapper to an appropriate wrapper object.
11060
11061           For this reason, JSEventListener::jsFunction() cannot do the null
11062           check on m_wrapper until after the call to initializeJSFunction.
11063
11064           This, in turns, means that in the case of the non-lazy
11065           JSEventListener, initializeJSFunction() will also be called, and
11066           if the GC has collected the m_wrapper but the JSEventListener has
11067           not been removed yet, it is possible to see a null m_wrapper while
11068           m_jsFunction contains a non-zero stale value.
11069
11070           Hence, this assertion of (m_wrapper || !m_jsFunction) in
11071           JSEventListener::initializeJSFunction() is not always true and
11072           should be removed.
11073
11074         (WebCore::JSEventListener::visitJSFunction):
11075         (WebCore::JSEventListener::operator==):
11076         * bindings/js/JSEventListener.h:
11077         (WebCore::JSEventListener::jsFunction):
11078
11079 2012-11-13  Adam Barth  <abarth@webkit.org>
11080
11081         [V8] instantiateV8Object should encapulate the tricky creationContext logic
11082         https://bugs.webkit.org/show_bug.cgi?id=102117
11083
11084         Reviewed by Eric Seidel.
11085
11086         The logic around creationContext is tricky. Rather than putting the
11087         logic in the code generator, we can centralize the logic in
11088         instantiateV8Object.
11089
11090         This patch shouldn't have any behavior change.
11091
11092         * bindings/scripts/CodeGeneratorV8.pm:
11093         (GenerateToV8Converters):
11094         * bindings/v8/V8DOMWrapper.cpp:
11095         (V8WrapperInstantiationScope):
11096         (WebCore::V8WrapperInstantiationScope::V8WrapperInstantiationScope):
11097         (WebCore::V8WrapperInstantiationScope::~V8WrapperInstantiationScope):
11098         (WebCore::V8WrapperInstantiationScope::context):
11099         (WebCore):
11100         (WebCore::V8DOMWrapper::instantiateV8Object):
11101         * bindings/v8/V8DOMWrapper.h:
11102         (V8DOMWrapper):
11103
11104 2012-11-13  Silvia Pfeiffer  <silviapf@chromium.org>
11105
11106         Clean up the inheritance tree under the MediaControls Class.
11107         https://bugs.webkit.org/show_bug.cgi?id=88871
11108
11109         Reviewed by Eric Carlson.
11110
11111         This patch removes code duplication between the Chromium and Safari
11112         media controls shadow DOMs.
11113         This is achieved by pulling common functions that are identical (or
11114         almost identical) between the different platforms into the base class.
11115         The derived classes are renamed based on their platform:
11116         - MediaControlRootElement                to MediaControlsApple.
11117         - MediaControlRootElementChromium        to MediaControlsChromium.
11118         - MediaControlRootElementChromiumAndroid to MediaControlsChromiumAndroid.
11119         MediaControls is now no longer an abstract base class, but its "create"
11120         function is only implemented in the port-specific header file, so it's
11121         on purpose incomplete in the MediaControls.cpp file.
11122
11123         No new tests because this is refactoring work only.
11124
11125         * CMakeLists.txt:
11126           Rename MediaControlRootElement.cpp to MediaControlsApple.cpp .
11127         * GNUmakefile.list.am:
11128           Rename MediaControlRootElement.[cpp,h] to MediaControlsApple.[cpp,h] .
11129         * Target.pri:
11130           Rename MediaControlRootElement.cpp to MediaControlsApple.cpp .
11131         * WebCore.gypi:
11132           Rename MediaControlRootElement[Chromium[Android]].[cpp,h] to MediaControls[Apple,Chromium[Android]].[cpp,h] .
11133         * WebCore.order:
11134           Rename MediaControlRootElement symbols to MediaControlsApple symbols.
11135         * WebCore.vcproj/WebCore.vcproj:
11136           Rename MediaControlRootElement.[cpp,h] to MediaControlsApple.[cpp,h] .
11137         * WebCore.xcodeproj/project.pbxproj:
11138           Rename MediaControlRootElement.[cpp,h] to MediaControlsApple.[cpp,h] .
11139         * html/shadow/MediaControlElements.cpp:
11140         (WebCore::MediaControlTimelineElement::defaultEventHandler):
11141           Remove dependency on MediaControlRootElement.h (base class MediaControls.h is still there).
11142           Rename updateTimeDisplay() to updateCurrentTimeDisplay().
11143         * html/shadow/MediaControls.cpp:
11144         (WebCore::MediaControls::MediaControls):
11145           Added initialization for media elements that all platform controls share.
11146         (WebCore):
11147           Removed include files that are already included in header file.
11148         (WebCore::MediaControls::setMediaController):
11149           Added controller assignment for media elements that all platform controls share.
11150         (WebCore::MediaControls::reset):
11151           Added resets for media elements that all platform controls share.
11152         (WebCore::MediaControls::reportedError):
11153           Added error handling for media elements that all platform controls share.
11154         (WebCore::MediaControls::loadedMetadata):
11155           Added default action for loadedMetadata event.
11156         (WebCore::MediaControls::show):
11157         (WebCore::MediaControls::hide):
11158         (WebCore::MediaControls::makeOpaque):
11159         (WebCore::MediaControls::makeTransparent):
11160         (WebCore::MediaControls::shouldHideControls):
11161         (WebCore::MediaControls::bufferingProgressed):
11162         (WebCore::MediaControls::playbackStarted):
11163         (WebCore::MediaControls::playbackProgressed):
11164         (WebCore::MediaControls::playbackStopped):
11165         (WebCore::MediaControls::updateCurrentTimeDisplay):
11166         (WebCore::MediaControls::showVolumeSlider):
11167         (WebCore::MediaControls::changedMute):
11168         (WebCore::MediaControls::changedVolume):
11169         (WebCore::MediaControls::changedClosedCaptionsVisibility):
11170         (WebCore::MediaControls::enteredFullscreen):
11171         (WebCore::MediaControls::exitedFullscreen):
11172         (WebCore::MediaControls::defaultEventHandler):
11173         (WebCore::MediaControls::hideFullscreenControlsTimerFired):
11174         (WebCore::MediaControls::startHideFullscreenControlsTimer):
11175         (WebCore::MediaControls::stopHideFullscreenControlsTimer):
11176         (WebCore::MediaControls::shadowPseudoId):
11177         (WebCore::MediaControls::containsRelatedTarget):
11178         (WebCore::MediaControls::createTextTrackDisplay):
11179         (WebCore::MediaControls::showTextTrackDisplay):
11180         (WebCore::MediaControls::hideTextTrackDisplay):
11181         (WebCore::MediaControls::updateTextTrackDisplay):
11182           Added default actions for all these media controls member functions.
11183         * html/shadow/MediaControls.h:
11184         (WebCore):
11185           Added include files and forward class declarations that all media controls share.
11186         (MediaControls):
11187           Make all pure virtual functions that have default implementations just virtual.
11188         (WebCore::MediaControls::updateStatusDisplay):
11189           Add an empty virtual updateStatusDisplay function which is used by media elements.
11190         * html/shadow/MediaControlsApple.cpp: Renamed from Source/WebCore/html/shadow/MediaControlRootElement.cpp.
11191           Reduced Apple-specific media control functions by relying on default implementations in the base class.
11192         * html/shadow/MediaControlsApple.h: Renamed from Source/WebCore/html/shadow/MediaControlRootElement.h.
11193           Reduced Apple-specific media control elements by relying on some elements in the base class.
11194         * html/shadow/MediaControlsChromium.cpp: Renamed from Source/WebCore/html/shadow/MediaControlRootElementChromium.cpp.
11195           Reduced Chromium-specific media control functions by relying on default implementations in the base class.
11196         * html/shadow/MediaControlsChromium.h: Renamed from Source/WebCore/html/shadow/MediaControlRootElementChromium.h.
11197           Reduced Chromium-specific media control functions by relying on default implementations in the base class.
11198         * html/shadow/MediaControlsChromiumAndroid.cpp: Renamed from Source/WebCore/html/shadow/MediaControlRootElementChromiumAndroid.cpp.
11199           Renamed class name and base class name.
11200         * html/shadow/MediaControlsChromiumAndroid.h: Renamed from Source/WebCore/html/shadow/MediaControlRootElementChromiumAndroid.h.
11201           Renamed class name and base class name.
11202         * rendering/RenderTheme.h:
11203         (WebCore::RenderTheme::timeWithoutMouseMovementBeforeHidingControls):
11204           Moved timeWithoutMouseMovementBeforeHidingControls variable from all classes to a theme-specific function.
11205
11206 2012-11-13  Benjamin Poulain  <benjamin@webkit.org>
11207
11208         CSSParser::setStyleSheet() should be inline
11209         https://bugs.webkit.org/show_bug.cgi?id=101829
11210
11211         Reviewed by Andreas Kling.
11212
11213         * css/CSSParser.cpp:
11214         * css/CSSParser.h:
11215         (WebCore::CSSParser::setStyleSheet):
11216         CSSParser::setStyleSheet() just assign a pointer, it does not even
11217         change a ref-count. The function should probably be in the header.
11218
11219 2012-11-13  Andrei Bucur  <abucur@adobe.com>
11220
11221         [CSS Regions] Add Region info for RootLineBoxes and pack the pagination data
11222         https://bugs.webkit.org/show_bug.cgi?id=101332
11223
11224         Reviewed by David Hyatt.
11225
11226         Currently the pagination information for lines is spread between the RootInlineBox and InlineFlowBox classes, consuming memory even though
11227         the boxes were not the result of an pagination layout. To overcome this, a new struct (LineFragmentationData) is created that wraps all the data,
11228         including a new member, the containing Region for the line.
11229         The containing Region is used to detect if a line changed the Region where it resides. This will be helpful especially when implementing region
11230         styling for layout properties (e.g. the font-size property https://bugs.webkit.org/show_bug.cgi?id=95559 ).
11231         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
11232         the task of updating the containing Region to the block.
11233
11234         Tests: No new tests because there is no functional change.
11235
11236         * rendering/InlineFlowBox.cpp:
11237         (SameSizeAsInlineFlowBox):
11238         * rendering/InlineFlowBox.h:
11239         (WebCore::InlineFlowBox::InlineFlowBox):
11240         (InlineFlowBox):
11241         * rendering/RenderBlock.cpp:
11242         (WebCore::RenderBlock::lineWidthForPaginatedLineChanged):
11243         * rendering/RenderBlockLineLayout.cpp:
11244         (WebCore::RenderBlock::layoutRunsAndFloatsInRange):
11245         (WebCore::RenderBlock::linkToEndLineIfNeeded):
11246         (WebCore::RenderBlock::determineStartPosition):
11247         * rendering/RootInlineBox.cpp:
11248         (WebCore::RootInlineBox::RootInlineBox):
11249         (WebCore::RootInlineBox::setContainingRegion):
11250         (WebCore):
11251         * rendering/RootInlineBox.h:
11252         (WebCore):
11253         (WebCore::RootInlineBox::paginationStrut):
11254         (WebCore::RootInlineBox::setPaginationStrut):
11255         (WebCore::RootInlineBox::isFirstAfterPageBreak):
11256         (WebCore::RootInlineBox::setIsFirstAfterPageBreak):
11257         (WebCore::RootInlineBox::paginatedLineWidth):
11258         (WebCore::RootInlineBox::setPaginatedLineWidth):
11259         (RootInlineBox):
11260         (WebCore::RootInlineBox::containingRegion):
11261         (WebCore::RootInlineBox::ensureLineFragmentationData):
11262         (LineFragmentationData):
11263         (WebCore::RootInlineBox::LineFragmentationData::LineFragmentationData):
11264
11265 2012-11-13  Milian Wolff  <milian.wolff@kdab.com>
11266
11267         [Qt] QNX build fails due to signature change in gl2.h header (glShaderSource)
11268         https://bugs.webkit.org/show_bug.cgi?id=98038
11269
11270         Reviewed by Simon Hausmann.
11271
11272         Cast the function to the expected type, just like it is done on non-Qt/OpenGL2 ES platforms.
11273
11274         * platform/graphics/OpenGLShims.cpp:
11275         (WebCore):
11276
11277 2012-11-13  Chris Fleizach  <cfleizach@apple.com>
11278
11279         WebKit exposes ARIA rowheader role as AXUnknown when not contained in table/grid
11280         https://bugs.webkit.org/show_bug.cgi?id=101616
11281
11282         Reviewed by Beth Dakin.
11283
11284         If the rowheader role is exposed because the element is not within a table, the mac platform
11285         should map that to a generic group.
11286
11287         Test: platform/mac/accessibility/rowheader-outside-table-role.html
11288
11289         * accessibility/mac/WebAccessibilityObjectWrapper.mm:
11290         (createAccessibilityRoleMap):
11291
11292 2012-11-13  Stephen White  <senorblanco@chromium.org>
11293
11294         [Chromium] Fix SkImageFilter DAG path to pass all css3/filters tests
11295         https://bugs.webkit.org/show_bug.cgi?id=101952
11296
11297         Reviewed by James Robinson.
11298
11299         With these changes, all of the css3/filters tests pass when the
11300         if-test in GraphicsLayerChromium::setFilters() is forced true (for
11301         now, it remains true only if there's a reference filter in the chain).
11302
11303         Covered by the css3/filters tests (when the switch is thrown in
11304         GraphicsLayerChromium::setFilters()).
11305
11306         * WebCore.gypi:
11307         * platform/graphics/chromium/GraphicsLayerChromium.cpp:
11308         Drop to software rendering if there's a custom filter in the chain.
11309         This is the same as the WebFilterOperations path is doing.
11310         * platform/graphics/filters/skia/DropShadowImageFilter.cpp: Added.
11311         * platform/graphics/filters/skia/DropShadowImageFilter.h: Added.
11312         New implementation of drop-shadow filter; equivalent to
11313         the path in cc/render_surface_filters.cc.
11314         * platform/graphics/filters/skia/SkiaImageFilterBuilder.cpp:
11315         Fix the sepia and grayscale filters (value was inverted).
11316
11317 2012-11-13  Sheriff Bot  <webkit.review.bot@gmail.com>
11318
11319         Unreviewed, rolling out r134442.
11320         http://trac.webkit.org/changeset/134442
11321         https://bugs.webkit.org/show_bug.cgi?id=102111
11322
11323         Does not compile on apple-mac (Requested by abarth on
11324         #webkit).
11325
11326         * CMakeLists.txt:
11327         * GNUmakefile.list.am:
11328         * Target.pri:
11329         * WebCore.gypi:
11330         * WebCore.vcproj/WebCore.vcproj:
11331         * WebCore.xcodeproj/project.pbxproj:
11332         * css/CSSCursorImageValue.cpp:
11333         (WebCore::CSSCursorImageValue::cachedImage):
11334         * css/CSSFontFaceSrcValue.cpp:
11335         (WebCore::CSSFontFaceSrcValue::cachedFont):
11336         * css/CSSImageSetValue.cpp:
11337         (WebCore::CSSImageSetValue::cachedImageSet):
11338         * css/CSSImageValue.cpp:
11339         (WebCore::CSSImageValue::cachedImage):
11340         * css/CSSImageValue.h:
11341         (WebCore):
11342         (CSSImageValue):
11343         * css/StyleResolver.cpp:
11344         (WebCore::StyleResolver::loadPendingImage):
11345         * css/StyleRuleImport.cpp:
11346         (WebCore::StyleRuleImport::requestStyleSheet):
11347         * css/WebKitCSSSVGDocumentValue.cpp:
11348         (WebCore::WebKitCSSSVGDocumentValue::load):
11349         * css/WebKitCSSShaderValue.cpp:
11350         (WebCore::WebKitCSSShaderValue::cachedShader):
11351         * dom/ScriptElement.cpp:
11352         (WebCore::ScriptElement::requestScript):
11353         * html/HTMLLinkElement.cpp:
11354         (WebCore::HTMLLinkElement::process):
11355         * html/parser/CSSPreloadScanner.cpp:
11356         (WebCore::CSSPreloadScanner::emitRule):
11357         * html/parser/CSSPreloadScanner.h:
11358         (CSSPreloadScanner):
11359         * html/parser/HTMLPreloadScanner.cpp:
11360         (WebCore::PreloadTask::preload):
11361         * loader/ImageLoader.cpp:
11362         (WebCore::ImageLoader::updateFromElement):
11363         * loader/cache/CachedResourceLoader.cpp:
11364         (WebCore::CachedResourceLoader::requestImage):
11365         (WebCore::CachedResourceLoader::requestResource):
11366         (WebCore::CachedResourceLoader::determineRevalidationPolicy):
11367         (WebCore):
11368         (WebCore::CachedResourceLoader::preload):
11369         * loader/cache/CachedResourceLoader.h:
11370         (WebCore):
11371         (CachedResourceLoader):
11372         * loader/cache/CachedResourceRequest.cpp:
11373         (WebCore::CachedResourceRequest::CachedResourceRequest):
11374         * loader/cache/CachedResourceRequest.h:
11375         (CachedResourceRequest):
11376         (WebCore::CachedResourceRequest::defer):
11377         (WebCore::CachedResourceRequest::setDefer):
11378         * loader/cache/CachedResourceRequestInitiators.cpp: Removed.
11379         * loader/cache/CachedResourceRequestInitiators.h: Removed.
11380         * loader/icon/IconLoader.cpp:
11381         (WebCore::IconLoader::startLoading):
11382         * platform/ThreadGlobalData.cpp:
11383         (WebCore::ThreadGlobalData::ThreadGlobalData):
11384         * platform/ThreadGlobalData.h:
11385         (ThreadGlobalData):
11386         * svg/SVGFEImageElement.cpp:
11387         (WebCore::SVGFEImageElement::requestImageResource):
11388         * svg/SVGFontFaceUriElement.cpp:
11389         (WebCore::SVGFontFaceUriElement::loadFont):
11390         * svg/SVGUseElement.cpp:
11391         (WebCore::SVGUseElement::svgAttributeChanged):
11392
11393 2012-11-13  Chris Fleizach  <cfleizach@apple.com>
11394
11395         AX: file upload input text value is not exposed through accessibility
11396         https://bugs.webkit.org/show_bug.cgi?id=100583
11397
11398         Reviewed by Beth Dakin.
11399
11400         This is a hard problem to solve on the Mac because there are three pieces of information
11401              1) The type of button 2) The text on the button 3) The text for the value.
11402         I think the best compromise is to label this as a file upload button type in the role description, 
11403         and then expose the file path text as the AXTitle. 
11404         This will give the more relevant information and should be clear what is happening.
11405
11406         Test: platform/mac/accessibility/file-upload-button-subrole.html
11407
11408         * English.lproj/Localizable.strings:
11409         * accessibility/mac/WebAccessibilityObjectWrapper.mm:
11410         (-[WebAccessibilityObjectWrapper subrole]):
11411         (-[WebAccessibilityObjectWrapper roleDescription]):
11412         (-[WebAccessibilityObjectWrapper accessibilityTitle]):
11413         * platform/LocalizedStrings.cpp:
11414         (WebCore::AXFileUploadButtonText):
11415         * platform/LocalizedStrings.h:
11416
11417 2012-11-13  Sheriff Bot  <webkit.review.bot@gmail.com>
11418
11419         Unreviewed, rolling out r133944.
11420         http://trac.webkit.org/changeset/133944
11421         https://bugs.webkit.org/show_bug.cgi?id=102118
11422
11423         Only JS bindings support NATIVE_TYPE_ERR (Requested by arv on
11424         #webkit).
11425
11426         * bindings/scripts/CodeGeneratorV8.pm:
11427         (GenerateFunctionCallback):
11428         (GenerateParametersCheck):
11429         (GenerateSingleConstructorCallback):
11430         (GenerateNamedConstructorCallback):
11431         (TypeCanFailConversion):
11432         * dom/Element.cpp:
11433         (WebCore::Element::setAttributeNode):
11434         (WebCore::Element::removeAttributeNode):
11435         * dom/Element.idl:
11436
11437 2012-11-13  Adam Barth  <abarth@webkit.org>
11438
11439         Unreviewed.
11440
11441         Update run-bindings-tests results.
11442
11443         * bindings/scripts/test/V8/V8Float64Array.cpp:
11444         (WebCore::V8Float64Array::dispatchWrapCustom):
11445         (WebCore::V8Float64Array::wrapSlow):
11446         * bindings/scripts/test/V8/V8Float64Array.h:
11447         (WebCore::V8Float64Array::toNative):
11448         (V8Float64Array):
11449         (WebCore):
11450         (WebCore::dispatchWrap):
11451         (WebCore::toV8Object):
11452         (WebCore::toV8):
11453         * bindings/scripts/test/V8/V8TestActiveDOMObject.cpp:
11454         (WebCore::V8TestActiveDOMObject::wrapSlow):
11455         * bindings/scripts/test/V8/V8TestActiveDOMObject.h:
11456         (WebCore::V8TestActiveDOMObject::toNative):
11457         (V8TestActiveDOMObject):
11458         (WebCore):
11459         (WebCore::dispatchWrap):
11460         (WebCore::toV8Object):
11461         (WebCore::toV8):
11462         * bindings/scripts/test/V8/V8TestCustomNamedGetter.cpp:
11463         (WebCore::V8TestCustomNamedGetter::wrapSlow):
11464         * bindings/scripts/test/V8/V8TestCustomNamedGetter.h:
11465         (WebCore::V8TestCustomNamedGetter::toNative):
11466         (V8TestCustomNamedGetter):
11467         (WebCore):
11468         (WebCore::dispatchWrap):
11469         (WebCore::toV8Object):
11470         (WebCore::toV8):
11471         * bindings/scripts/test/V8/V8TestEventConstructor.cpp:
11472         (WebCore::V8TestEventConstructor::wrapSlow):
11473         * bindings/scripts/test/V8/V8TestEventConstructor.h:
11474         (WebCore::V8TestEventConstructor::toNative):
11475         (V8TestEventConstructor):
11476         (WebCore):
11477         (WebCore::dispatchWrap):
11478         (WebCore::toV8Object):
11479         (WebCore::toV8):
11480         * bindings/scripts/test/V8/V8TestEventTarget.cpp:
11481         (WebCore::V8TestEventTarget::wrapSlow):
11482         * bindings/scripts/test/V8/V8TestEventTarget.h:
11483         (WebCore::V8TestEventTarget::toNative):
11484         (V8TestEventTarget):
11485         (WebCore):
11486         (WebCore::dispatchWrap):
11487         (WebCore::toV8Object):
11488         (WebCore::toV8):
11489         * bindings/scripts/test/V8/V8TestException.cpp:
11490         (WebCore::V8TestException::wrapSlow):
11491         * bindings/scripts/test/V8/V8TestException.h:
11492         (WebCore::V8TestException::toNative):
11493         (V8TestException):
11494         (WebCore):
11495         (WebCore::dispatchWrap):
11496         (WebCore::toV8Object):
11497         (WebCore::toV8):
11498         * bindings/scripts/test/V8/V8TestInterface.cpp:
11499         (WebCore::V8TestInterface::wrapSlow):
11500         * bindings/scripts/test/V8/V8TestInterface.h:
11501         (WebCore::V8TestInterface::toNative):
11502         (V8TestInterface):
11503         (WebCore):
11504         (WebCore::dispatchWrap):
11505         (WebCore::toV8Object):
11506         (WebCore::toV8):
11507         * bindings/scripts/test/V8/V8TestMediaQueryListListener.cpp:
11508         (WebCore::V8TestMediaQueryListListener::wrapSlow):
11509         * bindings/scripts/test/V8/V8TestMediaQueryListListener.h:
11510         (WebCore::V8TestMediaQueryListListener::toNative):
11511         (V8TestMediaQueryListListener):
11512         (WebCore):
11513         (WebCore::dispatchWrap):
11514         (WebCore::toV8Object):
11515         (WebCore::toV8):
11516         * bindings/scripts/test/V8/V8TestNamedConstructor.cpp:
11517         (WebCore::V8TestNamedConstructor::wrapSlow):
11518         * bindings/scripts/test/V8/V8TestNamedConstructor.h:
11519         (WebCore::V8TestNamedConstructor::toNative):
11520         (V8TestNamedConstructor):
11521         (WebCore):
11522         (WebCore::dispatchWrap):
11523         (WebCore::toV8Object):
11524         (WebCore::toV8):
11525         * bindings/scripts/test/V8/V8TestNode.cpp:
11526         (WebCore::V8TestNode::wrapSlow):
11527         * bindings/scripts/test/V8/V8TestNode.h:
11528         (WebCore::V8TestNode::toNative):
11529         (V8TestNode):
11530         (WebCore):
11531         (WebCore::dispatchWrap):
11532         (WebCore::toV8Object):
11533         (WebCore::toV8):
11534         (WebCore::toV8Fast):
11535         * bindings/scripts/test/V8/V8TestObj.cpp:
11536         (WebCore::V8TestObj::wrapSlow):
11537         * bindings/scripts/test/V8/V8TestObj.h:
11538         (WebCore::V8TestObj::toNative):
11539         (V8TestObj):
11540         (WebCore):
11541         (WebCore::dispatchWrap):
11542         (WebCore::toV8Object):
11543         (WebCore::toV8):
11544         * bindings/scripts/test/V8/V8TestOverloadedConstructors.cpp:
11545         (WebCore::V8TestOverloadedConstructors::wrapSlow):
11546         * bindings/scripts/test/V8/V8TestOverloadedConstructors.h:
11547         (WebCore::V8TestOverloadedConstructors::toNative):
11548         (V8TestOverloadedConstructors):
11549         (WebCore):
11550         (WebCore::dispatchWrap):
11551         (WebCore::toV8Object):
11552         (WebCore::toV8):
11553         * bindings/scripts/test/V8/V8TestSerializedScriptValueInterface.cpp:
11554         (WebCore::V8TestSerializedScriptValueInterface::wrapSlow):
11555         * bindings/scripts/test/V8/V8TestSerializedScriptValueInterface.h:
11556         (WebCore::V8TestSerializedScriptValueInterface::toNative):
11557         (V8TestSerializedScriptValueInterface):
11558         (WebCore):
11559         (WebCore::dispatchWrap):
11560         (WebCore::toV8Object):
11561         (WebCore::toV8):
11562
11563 2012-11-13  Adam Barth  <abarth@webkit.org>
11564
11565         Unreviewed.
11566
11567         Speculative build fix for Qt.
11568
11569         * dom/make_names.pl:
11570         (printWrapperFactoryCppFile):
11571
11572 2012-11-13  Sami Kyostila  <skyostil@chromium.org>
11573
11574         Allow painting outside overflow clip in accelerated scrolling layers
11575         https://bugs.webkit.org/show_bug.cgi?id=100524
11576
11577         Reviewed by Simon Fraser.
11578
11579         In preparation for avoiding repaints when scrolling child layers, make it
11580         possible to paint outside the overflow clip.
11581
11582         Test: compositing/overflow/updating-scrolling-content.html
11583
11584         * rendering/LayoutState.h:
11585         (LayoutState):
11586         * rendering/RenderBlock.cpp:
11587         (WebCore::RenderBlock::paint):
11588         * rendering/RenderBox.cpp:
11589         (WebCore::RenderBox::applyCachedClipAndScrollOffsetForRepaint):
11590         * rendering/RenderLayer.cpp:
11591         (WebCore::RenderLayer::repaintBlockSelectionGaps):
11592
11593 2012-11-13  Patrick Gansterer  <paroga@webkit.org>
11594
11595         Port SimpleFontDataWin.cpp to WinCE
11596         https://bugs.webkit.org/show_bug.cgi?id=97889
11597
11598         Reviewed by Brent Fulgham.
11599
11600         Add #if !OS(WINCE) around some parts of the code, so it can be used by the WinCE port too in a next step.
11601         Also cleaned up the include headers.
11602
11603         * platform/graphics/win/SimpleFontDataWin.cpp:
11604         (WebCore::SimpleFontData::initGDIFont):
11605         (WebCore::SimpleFontData::platformDestroy):
11606         (WebCore::SimpleFontData::boundsForGDIGlyph):
11607         (WebCore):
11608         (WebCore::SimpleFontData::widthForGDIGlyph):
11609
11610 2012-11-13  Pavel Feldman  <pfeldman@chromium.org>
11611
11612         Web Inspector: [Chromium] move spectrum.css into the standalone css files group.
11613
11614         Not reviewed: moved css file in gypi.
11615
11616         * WebCore.gypi:
11617
11618 2012-11-13  Dimitri Glazkov  <dglazkov@chromium.org>
11619
11620         Unreviewed, rolling out r134434.
11621         http://trac.webkit.org/changeset/134434
11622         https://bugs.webkit.org/show_bug.cgi?id=102072
11623
11624         The test that was added asserts in loader.
11625
11626         * loader/FrameLoader.cpp:
11627         (WebCore::createWindow):
11628         * page/DOMWindow.cpp:
11629         (WebCore):
11630         (WebCore::DOMWindow::adjustWindowRect):
11631         (WebCore::DOMWindow::moveBy):
11632         (WebCore::DOMWindow::moveTo):
11633         (WebCore::DOMWindow::resizeBy):
11634         (WebCore::DOMWindow::resizeTo):
11635         (WebCore::DOMWindow::open):
11636         (WebCore::DOMWindow::showModalDialog):
11637         * page/DOMWindow.h:
11638         (DOMWindow):
11639
11640 2012-11-13  Dan Carney  <dcarney@google.com>
11641
11642         [V8] More efficient wrapper dispatch
11643         https://bugs.webkit.org/show_bug.cgi?id=102082
11644
11645         Reviewed by Adam Barth.
11646
11647         Dispatching a call to V8Whatever::wrap involved a chain
11648         of calls, each of which checked its wrapper cache.
11649         This refactor gives calls only 2 choices of functions to call:
11650         toV8 and toV8Object instead of wrap. wrap has been renamed to
11651         dispatchWrap and no longer contains cache checks.
11652         Additionally, classes which require a custom toV8 function
11653         have had all wrapping and caching calls removed, as they could
11654         not have been accessed.
11655
11656         No new tests. Sufficiently covered.
11657
11658         * Modules/indexeddb/IDBAny.idl:
11659         * Modules/indexeddb/IDBKey.idl:
11660         * WebCore.gypi:
11661         * bindings/scripts/CodeGeneratorV8.pm:
11662         (GenerateHeader):
11663         (GenerateNormalAttrGetter):
11664         (GenerateImplementation):
11665         (GenerateToV8Converters):
11666         * bindings/scripts/IDLAttributes.txt:
11667         * bindings/v8/SerializedScriptValue.cpp:
11668         * bindings/v8/custom/V8BlobCustom.cpp:
11669         (WebCore::V8Blob::dispatchWrapCustom):
11670         * bindings/v8/custom/V8CSSRuleCustom.cpp:
11671         (WebCore::V8CSSRule::dispatchWrapCustom):
11672         * bindings/v8/custom/V8CSSValueCustom.cpp:
11673         (WebCore::V8CSSValue::dispatchWrapCustom):
11674         * bindings/v8/custom/V8CanvasRenderingContextCustom.cpp:
11675         (WebCore::V8CanvasRenderingContext::dispatchWrapCustom):
11676         * bindings/v8/custom/V8DataViewCustom.cpp:
11677         (WebCore):
11678         (WebCore::V8DataView::dispatchWrapCustom):
11679         * bindings/v8/custom/V8DocumentCustom.cpp:
11680         (WebCore::V8Document::dispatchWrapCustom):
11681         * bindings/v8/custom/V8ElementCustom.cpp: Copied from Source/WebCore/bindings/v8/custom/V8PerformanceEntryCustom.cpp.
11682         (WebCore):
11683         (WebCore::V8Element::dispatchWrapCustom):
11684         * bindings/v8/custom/V8EntryCustom.cpp:
11685         (WebCore::V8Entry::dispatchWrapCustom):
11686         * bindings/v8/custom/V8EntrySyncCustom.cpp:
11687         (WebCore::V8EntrySync::dispatchWrapCustom):
11688         * bindings/v8/custom/V8EventCustom.cpp:
11689         (WebCore):
11690         (WebCore::V8Event::dispatchWrapCustom):
11691         * bindings/v8/custom/V8HTMLCollectionCustom.cpp:
11692         (WebCore::V8HTMLCollection::dispatchWrapCustom):
11693         * bindings/v8/custom/V8HTMLDocumentCustom.cpp:
11694         (WebCore::V8HTMLDocument::dispatchWrapCustom):
11695         * bindings/v8/custom/V8HTMLElementCustom.cpp:
11696         (WebCore::V8HTMLElement::dispatchWrapCustom):
11697         * bindings/v8/custom/V8ImageDataCustom.cpp:
11698         (WebCore::V8ImageData::dispatchWrapCustom):
11699         * bindings/v8/custom/V8NodeCustom.cpp:
11700         (WebCore::V8Node::dispatchWrapCustom):
11701         * bindings/v8/custom/V8PerformanceEntryCustom.cpp:
11702         (WebCore::V8PerformanceEntry::dispatchWrapCustom):
11703         * bindings/v8/custom/V8SVGDocumentCustom.cpp:
11704         (WebCore::V8SVGDocument::dispatchWrapCustom):
11705         * bindings/v8/custom/V8SVGElementCustom.cpp:
11706         (WebCore::V8SVGElement::dispatchWrapCustom):
11707         * bindings/v8/custom/V8SVGPathSegCustom.cpp:
11708         (WebCore::V8SVGPathSeg::dispatchWrapCustom):
11709         * bindings/v8/custom/V8StyleSheetCustom.cpp:
11710         (WebCore::V8StyleSheet::dispatchWrapCustom):
11711         * dom/Element.idl:
11712         * dom/make_names.pl:
11713         (printWrapperFunctions):
11714         (printWrapperFactoryCppFile):
11715         (printWrapperFactoryHeaderFile):
11716         * html/MicroDataItemValue.idl:
11717         * inspector/ScriptProfile.idl:
11718         * inspector/ScriptProfileNode.idl:
11719         * page/DOMWindow.idl:
11720         * workers/WorkerContext.idl:
11721
11722 2012-11-13  Dimitri Glazkov  <dglazkov@chromium.org>
11723
11724         Unreviewed, rolling out r134367.
11725         http://trac.webkit.org/changeset/134367
11726         https://bugs.webkit.org/show_bug.cgi?id=100738
11727
11728         Speculative rollout, could have cause Dromaeo setAttribute
11729         perf regression.
11730
11731         * dom/Element.cpp:
11732         (WebCore::Element::attributeChanged):
11733         (WebCore::checkNeedsStyleInvalidationForClassChange):
11734         (WebCore::Element::classAttributeChanged):
11735
11736 2012-11-13  Marja Hölttä  <marja@chromium.org>
11737
11738         Add initiator to CachedResourceRequest.
11739         https://bugs.webkit.org/show_bug.cgi?id=101935
11740
11741         Reviewed by Adam Barth.
11742
11743         Motivation: Chromium needs to know which elements request a
11744         resource (such as an image or a script) (bug 92761). In addition,
11745         for exposing resource timing information (bug 84883) we need to
11746         store the initiator, and this is the first step towards it.
11747
11748         No new tests: No visible change in behavior.
11749
11750         * CMakeLists.txt:
11751         * GNUmakefile.list.am:
11752         * Target.pri:
11753         * WebCore.gypi:
11754         * WebCore.vcproj/WebCore.vcproj:
11755         * WebCore.xcodeproj/project.pbxproj:
11756         * css/CSSCrossfadeValue.cpp:
11757         (WebCore::cachedImageForCSSValue):
11758         * css/CSSCursorImageValue.cpp:
11759         (WebCore::CSSCursorImageValue::cachedImage):
11760         * css/CSSFontFaceSrcValue.cpp:
11761         (WebCore::CSSFontFaceSrcValue::cachedFont):
11762         * css/CSSImageSetValue.cpp:
11763         (WebCore::CSSImageSetValue::cachedImageSet):
11764         * css/CSSImageValue.cpp:
11765         (WebCore::CSSImageValue::cachedImage):
11766         * css/CSSImageValue.h:
11767         (WebCore):
11768         (CSSImageValue):
11769         * css/StyleResolver.cpp:
11770         (WebCore::StyleResolver::loadPendingImage):
11771         * css/StyleRuleImport.cpp:
11772         (WebCore::StyleRuleImport::requestStyleSheet):
11773         * css/WebKitCSSSVGDocumentValue.cpp:
11774         (WebCore::WebKitCSSSVGDocumentValue::load):
11775         * css/WebKitCSSShaderValue.cpp:
11776         (WebCore::WebKitCSSShaderValue::cachedShader):
11777         * dom/ScriptElement.cpp:
11778         (WebCore::ScriptElement::requestScript):
11779         * html/HTMLLinkElement.cpp:
11780         (WebCore::HTMLLinkElement::process):
11781         * html/parser/CSSPreloadScanner.cpp:
11782         (WebCore::CSSPreloadScanner::emitRule):
11783         * html/parser/CSSPreloadScanner.h:
11784         (CSSPreloadScanner):
11785         * html/parser/HTMLPreloadScanner.cpp:
11786         (WebCore::PreloadTask::preload):
11787         * loader/ImageLoader.cpp:
11788         (WebCore::ImageLoader::updateFromElement):
11789         * loader/cache/CachedResourceLoader.cpp:
11790         (WebCore::CachedResourceLoader::requestImage):
11791         (WebCore::CachedResourceLoader::requestResource):
11792         (WebCore::CachedResourceLoader::determineRevalidationPolicy):
11793         (WebCore):
11794         (WebCore::CachedResourceLoader::preload):
11795         * loader/cache/CachedResourceLoader.h:
11796         (WebCore):
11797         (CachedResourceLoader):
11798         * loader/cache/CachedResourceRequest.cpp:
11799         (WebCore::CachedResourceRequest::CachedResourceRequest):
11800         (WebCore):
11801         (WebCore::CachedResourceRequest::~CachedResourceRequest):
11802         (WebCore::CachedResourceRequest::setInitiator):
11803         (WebCore::CachedResourceRequest::initiatorName):
11804         (WebCore::CachedResourceRequest::initiatorDocument):
11805         (WebCore::CachedResourceRequest::initiatorElement):
11806         * loader/cache/CachedResourceRequest.h:
11807         (WebCore):
11808         (WebCore::CachedResourceRequest::setOptions):
11809         (WebCore::CachedResourceRequest::defer):
11810         (WebCore::CachedResourceRequest::setDefer):
11811         (CachedResourceRequest):
11812         * loader/cache/CachedResourceRequestInitiators.cpp: Copied from Source/WebCore/loader/cache/CachedResourceRequest.cpp.
11813         (WebCore):
11814         (WebCore::CachedResourceRequestInitiators::CachedResourceRequestInitiators):
11815         * loader/cache/CachedResourceRequestInitiators.h: Copied from Source/WebCore/loader/cache/CachedResourceRequest.cpp.
11816         (WebCore):
11817         (CachedResourceRequestInitiators):
11818         (WebCore::cachedResourceRequestInitiators):
11819         * loader/icon/IconLoader.cpp:
11820         (WebCore::IconLoader::startLoading):
11821         * platform/ThreadGlobalData.cpp:
11822         (WebCore::ThreadGlobalData::ThreadGlobalData):
11823         * platform/ThreadGlobalData.h:
11824         (WebCore):
11825         (WebCore::ThreadGlobalData::cachedResourceRequestInitiators):
11826         (ThreadGlobalData):
11827         * svg/SVGFEImageElement.cpp:
11828         (WebCore::SVGFEImageElement::requestImageResource):
11829         * svg/SVGFontFaceUriElement.cpp:
11830         (WebCore::SVGFontFaceUriElement::loadFont):
11831         * svg/SVGUseElement.cpp:
11832         (WebCore::SVGUseElement::svgAttributeChanged):
11833
11834 2012-11-13  Sheriff Bot  <webkit.review.bot@gmail.com>
11835
11836         Unreviewed, rolling out r134345.
11837         http://trac.webkit.org/changeset/134345
11838         https://bugs.webkit.org/show_bug.cgi?id=102106
11839
11840         Incomplete support for NATIVE_TYPE_ERR in objc and other
11841         bindings (Requested by jsbell on #webkit).
11842
11843         * Modules/mediastream/MediaConstraintsImpl.cpp:
11844         (WebCore::MediaConstraintsImpl::create):
11845         * Modules/mediastream/MediaStreamTrackList.cpp:
11846         (WebCore::MediaStreamTrackList::add):
11847         (WebCore::MediaStreamTrackList::remove):
11848         * Modules/mediastream/RTCDataChannel.cpp:
11849         (WebCore::RTCDataChannel::setBinaryType):
11850         * Modules/mediastream/RTCIceCandidate.cpp:
11851         (WebCore::RTCIceCandidate::create):
11852         * Modules/mediastream/RTCPeerConnection.cpp:
11853         (WebCore::RTCPeerConnection::parseConfiguration):
11854         (WebCore::RTCPeerConnection::createOffer):
11855         (WebCore::RTCPeerConnection::createAnswer):
11856         (WebCore::RTCPeerConnection::setLocalDescription):
11857         (WebCore::RTCPeerConnection::setRemoteDescription):
11858         (WebCore::RTCPeerConnection::addIceCandidate):
11859         (WebCore::RTCPeerConnection::addStream):
11860         (WebCore::RTCPeerConnection::removeStream):
11861         * Modules/mediastream/RTCSessionDescription.cpp:
11862         (WebCore::RTCSessionDescription::create):
11863         (WebCore::RTCSessionDescription::setType):
11864         * bindings/js/CallbackFunction.cpp:
11865         (WebCore::checkFunctionOnlyCallback):
11866         * bindings/js/JSCustomXPathNSResolver.cpp:
11867         (WebCore::JSCustomXPathNSResolver::create):
11868         * bindings/js/JSHTMLOptionsCollectionCustom.cpp:
11869         (WebCore::JSHTMLOptionsCollection::add):
11870         * bindings/js/JSHTMLSelectElementCustom.cpp:
11871         (WebCore::selectIndexSetter):
11872         * bindings/js/JSMutationObserverCustom.cpp:
11873         (WebCore::JSMutationObserverConstructor::constructJSMutationObserver):
11874         * bindings/js/JSSQLResultSetRowListCustom.cpp:
11875         (WebCore::JSSQLResultSetRowList::item):
11876         * bindings/js/JSSQLTransactionCustom.cpp:
11877         (WebCore::JSSQLTransaction::executeSql):
11878         * bindings/js/JSSQLTransactionSyncCustom.cpp:
11879         (WebCore::JSSQLTransactionSync::executeSql):
11880         * bindings/scripts/CodeGeneratorJS.pm:
11881         (GenerateParametersCheck):
11882         * bindings/scripts/CodeGeneratorObjC.pm:
11883         (GenerateImplementation):
11884         * bindings/scripts/CodeGeneratorV8.pm:
11885         (GenerateFunctionCallString):
11886         * bindings/v8/V8Callback.h:
11887         (WebCore::createFunctionOnlyCallback):
11888         * bindings/v8/V8Collection.cpp:
11889         (WebCore::toOptionsCollectionSetter):
11890         * bindings/v8/custom/V8DocumentCustom.cpp:
11891         (WebCore::V8Document::evaluateCallback):
11892         * bindings/v8/custom/V8HTMLOptionsCollectionCustom.cpp:
11893         (WebCore::V8HTMLOptionsCollection::addCallback):
11894         * bindings/v8/custom/V8MutationObserverCustom.cpp:
11895         (WebCore::V8MutationObserver::constructorCallback):
11896         * bindings/v8/custom/V8SQLTransactionCustom.cpp:
11897         (WebCore::V8SQLTransaction::executeSqlCallback):
11898         * bindings/v8/custom/V8SQLTransactionSyncCustom.cpp:
11899         (WebCore::V8SQLTransactionSync::executeSqlCallback):
11900         * dom/DOMCoreException.idl:
11901         * html/HTMLElement.cpp:
11902         (WebCore::HTMLElement::insertAdjacentElement):
11903         * html/HTMLMediaElement.cpp:
11904         (WebCore::HTMLMediaElement::webkitAddKey):
11905         * html/HTMLOptionsCollection.cpp:
11906         (WebCore::HTMLOptionsCollection::add):
11907         * html/canvas/CanvasRenderingContext2D.cpp:
11908         (WebCore::CanvasRenderingContext2D::drawImage):
11909         (WebCore::CanvasRenderingContext2D::createPattern):
11910         (WebCore::CanvasRenderingContext2D::putImageData):
11911         (WebCore::CanvasRenderingContext2D::webkitPutImageDataHD):
11912         * page/Crypto.cpp:
11913         (WebCore::Crypto::getRandomValues):
11914         * page/DOMSelection.cpp:
11915         (WebCore::DOMSelection::extend):
11916         * svg/properties/SVGTransformListPropertyTearOff.h:
11917         (WebCore::SVGTransformListPropertyTearOff::createSVGTransformFromMatrix):
11918
11919 2012-11-13  Erik Arvidsson  <arv@chromium.org>
11920
11921         Update DOMException name: HierarchyRequestError
11922         https://bugs.webkit.org/show_bug.cgi?id=102092
11923
11924         Reviewed by Ojan Vafai.
11925
11926         Patch 3 of 25 to update DOMException name to match the spec and Firefox.
11927
11928         Updated existing tests.
11929
11930         * dom/DOMCoreException.cpp:
11931
11932 2012-11-13  Kenneth Rohde Christiansen  <kenneth@webkit.org>
11933
11934         Clean up use of adjustWindowRect
11935         https://bugs.webkit.org/show_bug.cgi?id=102072
11936
11937         Reviewed by Alexis Menard.
11938
11939         Tested by fast/dom/Window/open-window-min-size.html
11940
11941         * loader/FrameLoader.cpp:
11942         (WebCore::createWindow):
11943
11944             Validate the window size here so that it is not just done for
11945             .open, but also for .showModalDialog. This is compatible with
11946             other browsers such as IE and Firefox (though IE > 6, enforces
11947             a minimum width of 250 instead of 100 as Firefox and us.)
11948
11949         * page/DOMWindow.cpp:
11950         (WebCore):
11951         (WebCore::DOMWindow::adjustWindowRect):
11952
11953             Make it a static method which only takes page. It was never
11954             called from anywhere without a valid page, so the page check
11955             has been turned into an assert, and two of the arguments have
11956             been removed as they can be accessed via the page.
11957
11958         (WebCore::DOMWindow::moveBy):
11959         (WebCore::DOMWindow::moveTo):
11960         (WebCore::DOMWindow::resizeBy):
11961         (WebCore::DOMWindow::resizeTo):
11962
11963             Update use of adjustWindowRect.
11964
11965         (WebCore::DOMWindow::open):
11966
11967             Avoid modifying the WindowFeatures as the WebCore::createWindow
11968             validates and adjusts the arguments.
11969
11970         * page/DOMWindow.h:
11971         (DOMWindow):
11972
11973 2012-11-13  Bem Jones-Bey  <bjonesbe@adobe.com>
11974
11975         [CSS Exclusions] Update wrap-margin/padding to shape-margin/padding
11976         https://bugs.webkit.org/show_bug.cgi?id=97736
11977
11978         Reviewed by Andreas Kling.
11979
11980         Rename properties to match updated spec.
11981
11982         Tests: fast/exclusions/shape-margin-parsing.html
11983                fast/exclusions/shape-padding-parsing.html
11984
11985         * css/CSSComputedStyleDeclaration.cpp:
11986         (WebCore):
11987         (WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue):
11988         * css/CSSParser.cpp:
11989         (WebCore::isSimpleLengthPropertyID):
11990         (WebCore::CSSParser::parseValue):
11991         * css/CSSProperty.cpp:
11992         (WebCore::CSSProperty::isInheritedProperty):
11993         * css/CSSPropertyNames.in:
11994         * css/StyleBuilder.cpp:
11995         (WebCore::StyleBuilder::StyleBuilder):
11996         * css/StylePropertySet.cpp:
11997         (WebCore::StylePropertySet::asText):
11998         * css/StylePropertyShorthand.cpp:
11999         (WebCore::webkitWrapShorthand):
12000         * css/StyleResolver.cpp:
12001         (WebCore::StyleResolver::applyProperty):
12002         * rendering/style/RenderStyle.cpp:
12003         (WebCore::RenderStyle::diff):
12004         * rendering/style/RenderStyle.h:
12005         * rendering/style/StyleRareNonInheritedData.cpp:
12006         (WebCore::StyleRareNonInheritedData::StyleRareNonInheritedData):
12007         (WebCore::StyleRareNonInheritedData::operator==):
12008         * rendering/style/StyleRareNonInheritedData.h:
12009         (StyleRareNonInheritedData):
12010
12011 2012-11-13  Dimitri Glazkov  <dglazkov@chromium.org>
12012
12013         Unreviewed, rolling out r134418.
12014         http://trac.webkit.org/changeset/134418
12015         https://bugs.webkit.org/show_bug.cgi?id=101903
12016
12017         The newly added test is crashing on cr-win.
12018
12019         * dom/ElementShadow.cpp:
12020         * dom/ElementShadow.h:
12021         * html/HTMLInputElement.cpp:
12022         (WebCore::HTMLInputElement::updateType):
12023         (WebCore::HTMLInputElement::setIndeterminate):
12024         * html/HTMLProgressElement.cpp:
12025         (WebCore::HTMLProgressElement::didElementStateChange):
12026         * html/shadow/SelectRuleFeatureSet.cpp:
12027         (WebCore::SelectRuleFeatureSet::add):
12028         (WebCore::SelectRuleFeatureSet::clear):
12029         (WebCore::SelectRuleFeatureSet::collectFeaturesFromSelector):
12030         * html/shadow/SelectRuleFeatureSet.h:
12031         (SelectRuleFeatureSet):
12032
12033 2012-11-13  Dimitri Glazkov  <dglazkov@chromium.org>
12034
12035         Unreviewed, rolling out r134391.
12036         http://trac.webkit.org/changeset/134391
12037         https://bugs.webkit.org/show_bug.cgi?id=99660
12038
12039         Speculative rollout, trying to fix browser_tests failure.
12040
12041         * English.lproj/localizedStrings.js:
12042         * inspector/Inspector.json:
12043         * inspector/InspectorClient.h:
12044         * inspector/InspectorPageAgent.cpp:
12045         (PageAgentState):
12046         (WebCore::InspectorPageAgent::enable):
12047         (WebCore::InspectorPageAgent::disable):
12048         * inspector/InspectorPageAgent.h:
12049         * inspector/front-end/Settings.js:
12050         * inspector/front-end/SettingsScreen.js:
12051         (WebInspector.GenericSettingsTab):
12052         * inspector/front-end/inspector.js:
12053         (WebInspector.doLoadedDone):
12054
12055 2012-11-13  Sheriff Bot  <webkit.review.bot@gmail.com>
12056
12057         Unreviewed, rolling out r134205.
12058         http://trac.webkit.org/changeset/134205
12059         https://bugs.webkit.org/show_bug.cgi?id=102093
12060
12061         Broke webkit-flow-inlines-dynamic.html on several ports
12062         (Requested by mihnea on #webkit).
12063
12064         * css/StyleResolver.cpp:
12065         (WebCore::StyleResolver::isValidRegionStyleProperty):
12066         * rendering/InlineBox.cpp:
12067         * rendering/InlineBox.h:
12068         (WebCore):
12069         (InlineBox):
12070         * rendering/InlineFlowBox.cpp:
12071         (WebCore::InlineFlowBox::addToLine):
12072         (WebCore::InlineFlowBox::addTextBoxVisualOverflow):
12073         * rendering/RenderRegion.cpp:
12074         (WebCore::RenderRegion::setRegionObjectsRegionStyle):
12075         (WebCore::RenderRegion::restoreRegionObjectsOriginalStyle):
12076         (WebCore::RenderRegion::computeStyleInRegion):
12077         (WebCore::RenderRegion::computeChildrenStyleInRegion):
12078         (WebCore::RenderRegion::setObjectStyleInRegion):
12079         (WebCore::RenderRegion::clearObjectStyleInRegion):
12080         * rendering/RenderRegion.h:
12081         (RenderRegion):
12082         (ObjectRegionStyleInfo):
12083
12084 2012-11-13  Andreas Kling  <kling@webkit.org>
12085
12086         Remove the non-const overload of ElementAttributeData::inlineStyle().
12087
12088         Rubber-stamped by Anders Koivisto.
12089
12090         No call sites actually needed a mutable StylePropertySet* from inlineStyle() anyway.
12091
12092         * dom/ElementAttributeData.h:
12093
12094 2012-11-13  Keishi Hattori  <keishi@webkit.org>
12095
12096         [Chromium] Enable input type month/week
12097         https://bugs.webkit.org/show_bug.cgi?id=102042
12098
12099         Reviewed by Kent Tamura.
12100
12101         Enable input type month/week for Chromium.
12102
12103         No new tests. Tests will be added later in Bug 102045 and Bug 102046.
12104
12105         * bindings/generic/RuntimeEnabledFeatures.cpp:
12106         (WebCore):
12107
12108 2012-11-13  Shinya Kawanaka  <shinyak@chromium.org>
12109
12110         [Refactoring] Remove shadowPseudoId() and use setPseudo() in <meter> ElementShadow.
12111         https://bugs.webkit.org/show_bug.cgi?id=101906
12112
12113         Reviewed by Dimitri Glazkov.
12114
12115         We're migrating shadowPseudoId() to pseudo(). We remove shadowPseudoId() from HTMLKeygenElement and use
12116         setPseudo()/pseudo() instead.
12117
12118         No new tests, covered by existing tests.
12119
12120         * html/HTMLMeterElement.cpp:
12121         (WebCore::HTMLMeterElement::didElementStateChange): Since shadowPseudoId() was returning pseudo id without setting
12122         it anywhere, we have to set it into pseudo attribute here.
12123         (WebCore::HTMLMeterElement::createShadowSubtree): ditto.
12124         * html/shadow/MeterShadowElement.cpp:
12125         (WebCore::MeterInnerElement::MeterInnerElement):
12126         (WebCore::MeterValueElement::valuePseudoId):
12127         * html/shadow/MeterShadowElement.h:
12128         (MeterInnerElement):
12129         (WebCore::MeterBarElement::MeterBarElement):
12130         (MeterBarElement):
12131         (WebCore::MeterValueElement::MeterValueElement):
12132         (WebCore::MeterValueElement::updatePseudo):
12133         (MeterValueElement):
12134
12135 2012-11-13  Shinya Kawanaka  <shinyak@chromium.org>
12136
12137         Changing pseudoClass (:indeterminate) should cause distribution
12138         https://bugs.webkit.org/show_bug.cgi?id=101903
12139
12140         Reviewed by Dimitri Glazkov.
12141
12142         <progress> and <input type="checkbox"> have 'indeterminate' state. When their state is changed, we have to
12143         invalidate distribution if necessary. To check it, we collect a feature that :invalidate is used in select attributes.
12144
12145         For <input>, we also have to see 'type' is changed. According to the spec, :indeterminate should match only
12146         progress element or <input type="checkbox">. So changing 'type' might also change :indeterminate state.
12147
12148         Tests: fast/dom/shadow/pseudoclass-update-indeterminate-input.html
12149                fast/dom/shadow/pseudoclass-update-indeterminate-progress.html
12150
12151         * dom/ElementShadow.cpp:
12152         (WebCore::invalidateParentDistributionIfNecessary): Since we will add a lot of pseudoClass check later, we would like to
12153         have this kind of helper method. We will add various pseudoClass check (see Bug 101697), we reuse CSSSelector::PseudoType
12154         here.
12155         (WebCore):
12156         * dom/ElementShadow.h:
12157         (WebCore):
12158         * html/HTMLInputElement.cpp:
12159         (WebCore::HTMLInputElement::updateType): Invalidate parent distribution anyway, since it changes various internal states.
12160         (WebCore::HTMLInputElement::setIndeterminate): Invalidate parent distribution if necessary.
12161         * html/HTMLProgressElement.cpp:
12162         (WebCore::HTMLProgressElement::didElementStateChange):
12163         * html/shadow/SelectRuleFeatureSet.cpp:
12164         (WebCore::SelectRuleFeatureSet::SelectRuleFeatureSet): Adds m_usesIndeterminate feature.
12165         (WebCore::SelectRuleFeatureSet::add):
12166         (WebCore::SelectRuleFeatureSet::clear):
12167         (WebCore::SelectRuleFeatureSet::collectFeaturesFromSelector):
12168         * html/shadow/SelectRuleFeatureSet.h:
12169         (WebCore::SelectRuleFeatureSet::hasSelectorForIndeterminate):
12170         (SelectRuleFeatureSet):
12171
12172 2012-11-13  Andreas Kling  <kling@webkit.org>
12173
12174         Exploit ElementAttributeData sharing in Node.cloneNode.
12175         <http://webkit.org/b/101374>
12176
12177         Reviewed by Anders Carlsson.
12178
12179         Instead of blindly creating a new ElementAttributeData for Node.cloneNode, let's be clever!
12180         If the source data is immutable, simply ref it from the new node at virtually no cost.
12181
12182         If the source data is mutable, convert it to immutable data so it can be shared between both nodes.
12183         Since the typical use-case for Node.cloneNode is to create-once/clone-many, this saves both time
12184         and memory in the long run.
12185
12186         ~8% speed-up on PerformanceTests/DOM/CloneNodes on my MBP.
12187
12188         * dom/Element.cpp:
12189         (WebCore::Element::cloneAttributesFromElement):
12190
12191             Move attribute data cloning logic from ElementAttributeData to Element.
12192
12193         * dom/ElementAttributeData.cpp:
12194         (WebCore::ImmutableElementAttributeData::~ImmutableElementAttributeData):
12195         (WebCore::ImmutableElementAttributeData::ImmutableElementAttributeData):
12196         (WebCore::ElementAttributeData::ElementAttributeData):
12197         (WebCore::MutableElementAttributeData::MutableElementAttributeData):
12198         (WebCore::ElementAttributeData::makeMutableCopy):
12199         (WebCore::ElementAttributeData::makeImmutableCopy):
12200         * dom/ElementAttributeData.h:
12201         (ElementAttributeData):
12202         (ImmutableElementAttributeData):
12203         (MutableElementAttributeData):
12204
12205             Add facilities for converting a mutable ElementAttributeData to an immutable one.
12206             Share some code in the common base class constructor.
12207
12208 2012-11-13  Kentaro Hara  <haraken@chromium.org>
12209
12210         Unreviewed. Build fix of V8 bindings.
12211
12212         * bindings/v8/V8DOMWrapper.cpp:
12213         (WebCore::V8DOMWrapper::maybeDOMWrapper):
12214
12215 2012-11-13  Andrey Adaikin  <aandrey@chromium.org>
12216
12217         Web Inspector: [Canvas] UI: make the Grid save scrolling position, show wait spinner icon
12218         https://bugs.webkit.org/show_bug.cgi?id=102071
12219
12220         Reviewed by Pavel Feldman.
12221
12222         * inspector/front-end/CanvasProfileView.js:
12223         (WebInspector.CanvasProfileView):
12224         (WebInspector.CanvasProfileView.prototype.dispose):
12225         (WebInspector.CanvasProfileView.prototype.elementsToRestoreScrollPositionsFor):
12226         (WebInspector.CanvasProfileView.prototype._enableWaitIcon):
12227         (WebInspector.CanvasProfileView.prototype._replayTraceLog.didReplayTraceLog):
12228         (WebInspector.CanvasProfileView.prototype._replayTraceLog):
12229         (WebInspector.CanvasProfileView.prototype._didReceiveTraceLog):
12230         (WebInspector.CanvasProfileView.prototype._createCallNode):
12231         * inspector/front-end/canvasProfiler.css:
12232         (#canvas-replay-image.wait):
12233
12234 2012-11-13  Eugene Klyuchnikov  <eustas.bug@gmail.com>
12235
12236         Web Inspector: Settings screen: some panel shortcuts are missing
12237         https://bugs.webkit.org/show_bug.cgi?id=101026
12238
12239         Reviewed by Pavel Feldman.
12240
12241         Panels, that have not been loaded by the time shortcuts view was
12242         initialized, had no chance to register shortcuts.
12243
12244         Solution: move shortcut registration (for shortcuts screen) to panel
12245         descriptors.
12246
12247         More changes: add JsDoc annotations to ShortcutScreen and change "key"
12248         parameter type for raw string to key descriptor object.
12249
12250         * WebCore.gypi: Added TimelinePanelDescriptor.js file.
12251         * WebCore.vcproj/WebCore.vcproj: Ditto.
12252         * inspector/compile-front-end.py: Ditto.
12253         * inspector/front-end/WebKit.qrc: Ditto.
12254         * inspector/front-end/inspector.html: Ditto.
12255         * inspector/front-end/AdvancedSearchController.js: Add JsDoc annotation.
12256         * inspector/front-end/GoToLineDialog.js: Ditto.
12257         * inspector/front-end/CallStackSidebarPane.js: Removed shortcut-screen
12258         shortcuts registration.
12259         * inspector/front-end/ElementsPanel.js: Ditto.
12260         * inspector/front-end/ScriptsPanel.js: Ditto.
12261         * inspector/front-end/StylesSidebarPane.js: Ditto.
12262         * inspector/front-end/TimelinePanel.js: Ditto.
12263         * inspector/front-end/ConsoleView.js: Changes order of lines to increase
12264         readability.
12265         * inspector/front-end/ElementsPanelDescriptor.js: Add shortcut-screen
12266         shortcuts registration and key descriptor constants.
12267         * inspector/front-end/ScriptsPanelDescriptor.js: Ditto.
12268         * inspector/front-end/TimelinePanelDescriptor.js: Ditto.
12269         * inspector/front-end/Panel.js: Removed unused "uregisterShortcut"; made
12270         "registerShortcuts" method accept array of key descriptors.
12271         (WebInspector.PanelDescriptor.prototype.registerShortcuts): Added.
12272         * inspector/front-end/ShortcutsScreen.js: Added JsDoc; changed parameter
12273         type from string to key descriptor.
12274         * inspector/front-end/inspector.js: Register shortcuts using
12275         panel descriptors.
12276         (WebInspector._panelDescriptors): Removed duplicate line.
12277
12278 2012-11-13  Gabor Rapcsanyi  <rgabor@webkit.org>
12279
12280         Optimize RGB565 and RGBA5551 packing/unpacking functions with NEON intrinsics
12281         https://bugs.webkit.org/show_bug.cgi?id=102060
12282
12283         Reviewed by Zoltan Herczeg.
12284
12285         Adding more NEONized packing functions to GraphicsContext3DNEON.h.
12286         These functions are three times faster with this intrinsics optimizations.
12287
12288         * platform/graphics/GraphicsContext3D.cpp:
12289         (WebCore):
12290         * platform/graphics/cpu/arm/GraphicsContext3DNEON.h:
12291         (WebCore::ARM::unpackOneRowOfRGBA5551ToRGBA8NEON):
12292         (ARM):
12293         (WebCore::ARM::packOneRowOfRGBA8ToUnsignedShort5551NEON):
12294         (WebCore::ARM::unpackOneRowOfRGB565ToRGBA8NEON):
12295         (WebCore::ARM::packOneRowOfRGBA8ToUnsignedShort565NEON):
12296
12297 2012-11-13  Csaba Osztrogonác  <ossy@webkit.org>
12298
12299         [Qt] Enable Mutation observer
12300         https://bugs.webkit.org/show_bug.cgi?id=102066
12301
12302         Reviewed by Pavel Feldman.
12303
12304         * DerivedSources.pri: Add missing IDL files.
12305
12306 2012-11-13  Kentaro Hara  <haraken@chromium.org>
12307
12308         [V8] Make isValidDOMObject() static
12309         https://bugs.webkit.org/show_bug.cgi?id=101914
12310
12311         Reviewed by Adam Barth.
12312
12313         isValidDOMObject() is used by DOMWrapper.cpp only.
12314
12315         No tests. No change in behavior.
12316
12317         * bindings/v8/V8DOMWrapper.cpp:
12318         (WebCore::isValidDOMObject):
12319         (WebCore):
12320         (WebCore::V8DOMWrapper::maybeDOMWrapper):
12321         * bindings/v8/V8DOMWrapper.h:
12322         (V8DOMWrapper):
12323
12324 2012-11-13  Mihnea Ovidenie  <mihnea@adobe.com>
12325
12326         [CSSRegions] Incorrect computed height for content with region-break-before
12327         https://bugs.webkit.org/show_bug.cgi?id=101862
12328
12329         Reviewed by Julien Chaffraix.
12330
12331         When processing the region breaks for auto-height regions, we skipped the case
12332         when the region-break-before occurred in the first region in the chain which was
12333         an auto-height region. Because of that, the region computed height was not 0
12334         as it was supposed to be, but rather LayoutUnit::max() / 2.
12335
12336         Test: fast/regions/autoheight-breakbefore-wrongheight.html
12337
12338         * rendering/RenderFlowThread.cpp:
12339         (WebCore::RenderFlowThread::addForcedRegionBreak):
12340         Make sure we process also the case when the region-break occurs at offset 0 in the flow thread
12341         and the first region in chain is an auto-height region.
12342         * rendering/RenderRegion.cpp:
12343         (WebCore::RenderRegion::updateLogicalHeight):
12344         Add an assert to make sure that the computed height for auto-height regions is always less than LayoutUnit::max() / 2.
12345
12346 2012-11-13  Yury Semikhatsky  <yurys@chromium.org>
12347
12348         Memory instrumentation: remove reportMemoryUsage method from ImageObserver
12349         https://bugs.webkit.org/show_bug.cgi?id=102058
12350
12351         Reviewed by Pavel Feldman.
12352
12353         * bindings/v8/V8PerIsolateData.cpp:
12354         (WebCore::V8PerIsolateData::reportMemoryUsage): drive-by fix, no need to report
12355         each element of the vector as generic vector instrumentation will take care of it.
12356         * platform/graphics/Image.cpp: the client is reported as weak pointer to make sure
12357         we don't count its by the pointer to the base class which may differ from the actual
12358         object address.
12359         (WebCore::Image::reportMemoryUsage):
12360         * platform/graphics/ImageObserver.h: removed reportMemoryUsage method from the interface.
12361         (ImageObserver):
12362
12363 2012-11-13  Eberhard Graether  <egraether@google.com>
12364
12365         checkbox to toggle FPS counter in the inspector's settings
12366         https://bugs.webkit.org/show_bug.cgi?id=99660
12367
12368         Reviewed by Pavel Feldman.
12369
12370         Added a checkbox to the inspector's settings to toggle a FPS counter. The checkbox appears when InspectorClient::canShowFPSCounter() returns true.
12371
12372         No new tests.
12373
12374         * English.lproj/localizedStrings.js:
12375         * inspector/Inspector.json:
12376         * inspector/InspectorClient.h:
12377         (WebCore::InspectorClient::canShowFPSCounter):
12378         (WebCore::InspectorClient::setShowFPSCounter):
12379         (InspectorClient):
12380         * inspector/InspectorPageAgent.cpp:
12381         (PageAgentState):
12382         (WebCore::InspectorPageAgent::enable):
12383         (WebCore::InspectorPageAgent::disable):
12384         (WebCore::InspectorPageAgent::canShowFPSCounter):
12385         (WebCore):
12386         (WebCore::InspectorPageAgent::setShowFPSCounter):
12387         * inspector/InspectorPageAgent.h:
12388         * inspector/front-end/Settings.js:
12389         * inspector/front-end/SettingsScreen.js:
12390         (WebInspector.GenericSettingsTab):
12391         (WebInspector.GenericSettingsTab.prototype.get _showFPSCounterChanged):
12392         * inspector/front-end/inspector.js:
12393         (WebInspector.doLoadedDone):
12394
12395 2012-11-12  Kent Tamura  <tkent@chromium.org>
12396
12397         Unable to set valid time value to input[type=time] with user interaction in some cases
12398         https://bugs.webkit.org/show_bug.cgi?id=102048
12399
12400         Reviewed by Kentaro Hara.
12401
12402         The implementations of shouldMillisecondFieldReadOnly,
12403         shouldMinuteFieldReadOnly, and shouldSecondFieldReadOnly were
12404         incorrect. We need to check if a part of the minimum value matches to
12405         the corresponding part of the current value.
12406
12407         Also, we had better check hour field editability.
12408
12409         Test: fast/forms/time-multiple-fields/time-multiple-fields-readonly-subfield.html
12410
12411         * html/BaseMultipleFieldsDateAndTimeInputType.cpp:
12412         (WebCore::BaseMultipleFieldsDateAndTimeInputType::shouldHaveSecondField):
12413         Fix a problem that hh:mm:00.sss didn't create a seconds field.
12414         * html/shadow/DateTimeEditElement.cpp:
12415         (DateTimeEditBuilder): Add shouldHourFieldReadOnly declaration.
12416         (WebCore::DateTimeEditBuilder::visitField):
12417         Add shouldHourFieldReadOnly check to Hour11/Hour12/Hour23/Hour24/Period fields.
12418         (WebCore::DateTimeEditBuilder::shouldHourFieldReadOnly):
12419         Added. An hour field should be read-only if the step value is a multiple
12420         of a day and the hour part of the minimum value matches to the hour part
12421         of the value.
12422         (WebCore::DateTimeEditBuilder::shouldMillisecondFieldReadOnly):
12423         A millisecond field should be read-only if the step value is a multiple
12424         of one second and the millisecond part of the minimum value matches to
12425         the millisecond part of the value.
12426         (WebCore::DateTimeEditBuilder::shouldMinuteFieldReadOnly):
12427         A minute field should be read-only if the step value is a multiple of
12428         one hour and the minute part of the minimum value matches to the minute
12429         part of the value.
12430         (WebCore::DateTimeEditBuilder::shouldSecondFieldReadOnly):
12431         A second field should be read-only if the step value is a multiple of
12432         one minute and the second part of the minimum value matches to the second
12433         part of the value.
12434         * platform/Decimal.cpp:
12435         (WebCore::Decimal::remainder):
12436         Fix a bug in case that the fractional part of quotient is >= 0.5. Also
12437         make this matches to C99, C++11, ECMAScript behavior.
12438
12439 2012-11-13  Yury Semikhatsky  <yurys@chromium.org>
12440
12441         Memory instrumentation: MemoryBlock name should not include full path to the block
12442         https://bugs.webkit.org/show_bug.cgi?id=102055
12443
12444         Reviewed by Pavel Feldman.
12445
12446         * inspector/InspectorMemoryAgent.cpp: pass only last path component as MemoryBlock name
12447         intead of fully qualified name.
12448
12449 2012-11-13  Pavel Feldman  <pfeldman@chromium.org>
12450
12451         Web Inspector: get rid of enter/exitTextChangeMode in the editor
12452         https://bugs.webkit.org/show_bug.cgi?id=101845
12453
12454         Reviewed by Vsevolod Vlasov.
12455
12456         They seem to do nothing.
12457
12458         * inspector/front-end/DefaultTextEditor.js:
12459         (WebInspector.DefaultTextEditor.prototype._textChanged):
12460         (WebInspector.DefaultTextEditor.prototype.editRange):
12461         (WebInspector.TextEditorMainPanel):
12462         (WebInspector.TextEditorMainPanel.prototype.handleUndoRedo):
12463         (WebInspector.TextEditorMainPanel.prototype.handleEnterKey.get var):
12464         (WebInspector.TextEditorMainPanel.prototype.handleEnterKey):
12465         (WebInspector.TextEditorMainPanel.prototype._applyDomUpdates):
12466         * inspector/front-end/TextEditorModel.js:
12467         (WebInspector.TextEditorModel.endsWithBracketRegex.):
12468
12469 2012-11-13  Tommy Widenflycht  <tommyw@google.com>
12470
12471         Remove the custom WebSocket::send for both V8 and JSC
12472         https://bugs.webkit.org/show_bug.cgi?id=101936
12473
12474         Reviewed by Kentaro Hara.
12475
12476         This patch removes the custom WebSocket::send since it isn't needed anymore.
12477
12478         Patch covered by existing tests.
12479
12480         * Modules/websockets/WebSocket.idl:
12481         * UseV8.cmake:
12482         * WebCore.gypi:
12483         * bindings/js/JSWebSocketCustom.cpp:
12484         * bindings/v8/custom/V8WebSocketCustom.cpp: Removed.
12485
12486 2012-11-13  Pavel Feldman  <pfeldman@chromium.org>
12487
12488         Web Inspector: move indentation logic into TextEditorModel
12489         https://bugs.webkit.org/show_bug.cgi?id=101842
12490
12491         Reviewed by Vsevolod Vlasov.
12492
12493         I'd like to move as much headless logic into the TextEditorModel as possible.
12494         Drive by: removed some dead code, converted getter into function and moved undo
12495         mark state into the model as well.
12496
12497         * inspector/front-end/DefaultTextEditor.js:
12498         (WebInspector.DefaultTextEditor.prototype.editRange):
12499         (WebInspector.DefaultTextEditor.prototype._syncDecorationsForLine):
12500         (WebInspector.TextEditorChunkedPanel.prototype._splitChunkOnALine):
12501         (WebInspector.TextEditorMainPanel.prototype.handleEnterKey.get var):
12502         (WebInspector.TextEditorMainPanel.prototype.handleEnterKey):
12503         (WebInspector.TextEditorMainPanel.prototype._applyDomUpdates):
12504         (WebInspector.TextEditorMainPanel.prototype._updateChunksForRanges):
12505         (WebInspector.TextEditorMainChunk):
12506         (WebInspector.TextEditorMainChunk.prototype.isDecorated):
12507         (WebInspector.TextEditorMainChunk.prototype.set expanded):
12508         * inspector/front-end/TextEditorModel.js:
12509         (WebInspector.TextEditorModel.endsWithBracketRegex.):
12510
12511 2012-11-13  Hayato Ito  <hayato@chromium.org>
12512
12513         Unreviewed attempt to fix the chromium mac-build after r134348.
12514
12515         * platform/graphics/mac/FontMac.mm:
12516         (WebCore::Font::drawGlyphs):
12517         * platform/mac/WebCoreSystemInterface.h:
12518         * platform/mac/WebCoreSystemInterface.mm:
12519
12520 2012-11-13  Pavel Feldman  <pfeldman@chromium.org>
12521
12522         Web Inspector: migrate text editor to mutation observers
12523         https://bugs.webkit.org/show_bug.cgi?id=101841
12524
12525         Reviewed by Vsevolod Vlasov.
12526
12527         Otherwise, we miss notifications on the removed lines.
12528
12529         * inspector/front-end/DefaultTextEditor.js:
12530         (WebInspector.DefaultTextEditor.prototype.wasShown):
12531         (WebInspector.DefaultTextEditor.prototype.willHide):
12532         (WebInspector.TextEditorChunkedPanel.prototype._repaintAll):
12533         (WebInspector.TextEditorMainPanel):
12534         (WebInspector.TextEditorMainPanel.prototype._wasShown):
12535         (WebInspector.TextEditorMainPanel.prototype._willHide):
12536         (WebInspector.TextEditorMainPanel.prototype.markAndRevealRange):
12537         (WebInspector.TextEditorMainPanel.prototype.beginDomUpdates):
12538         (WebInspector.TextEditorMainPanel.prototype.endDomUpdates):
12539         (WebInspector.TextEditorMainPanel.prototype._paintScheduledLines):
12540         (WebInspector.TextEditorMainPanel.prototype._paintLineChunks):
12541         (WebInspector.TextEditorMainPanel.prototype._paintLine):
12542         (WebInspector.TextEditorMainPanel.prototype._insertSpanBefore):
12543         (WebInspector.TextEditorMainPanel.prototype._handleMutations.else.get if):
12544         (WebInspector.TextEditorMainPanel.prototype._handleMutations):
12545         (WebInspector.TextEditorMainPanel.prototype._collectDirtyLines):
12546         (WebInspector.TextEditorMainPanel.prototype._applyDomUpdates):
12547         * inspector/front-end/externs.js:
12548         (WebKitMutation):
12549         (WebKitMutationObserver.prototype.observe):
12550         (WebKitMutationObserver.prototype.disconnect):
12551         * inspector/front-end/textEditor.css:
12552         (.debug-fadeout):
12553         (@-webkit-keyframes debug-fadeout):
12554         (to):
12555
12556 2012-11-13  Gabor Rapcsanyi  <rgabor@webkit.org>
12557
12558         Optimize RGBA4444ToRGBA8 packing/unpacking functions with NEON intrinsics in GraphicsContext3D
12559         https://bugs.webkit.org/show_bug.cgi?id=101473
12560
12561         Reviewed by Zoltan Herczeg.
12562
12563         With NEON intrinsics the packing/unpacking functions can be optimized well.
12564         This particular function is about 3 times faster with ARM NEON. On top level tests
12565         the speed up was 1.18x.
12566
12567         * CMakeLists.txt:
12568         * GNUmakefile.am:
12569         * GNUmakefile.list.am:
12570         * Target.pri:
12571         * WebCore.gyp/WebCore.gyp:
12572         * WebCore.gypi:
12573         * WebCore.pri:
12574         * WebCore.xcodeproj/project.pbxproj:
12575         * platform/graphics/GraphicsContext3D.cpp:
12576         (WebCore):
12577         * platform/graphics/cpu/arm/GraphicsContext3DNEON.h: Added.
12578         (WebCore):
12579         (ARM):
12580         (WebCore::ARM::unpackOneRowOfRGBA4444ToRGBA8NEON):
12581         (WebCore::ARM::packOneRowOfRGBA8ToUnsignedShort4444NEON):
12582
12583 2012-11-13  Takashi Sakamoto  <tasak@google.com>
12584
12585         Crash when replacing parts of text inputs with content: url(...)
12586         https://bugs.webkit.org/show_bug.cgi?id=101133
12587
12588         Reviewed by Kent Tamura.
12589
12590         Disable directly setting content of elements in an input element's
12591         shadow dom tree, because the setting breaks input element's behavior.
12592
12593         Tests: fast/forms/number/number-content-url-crash.html
12594                fast/forms/search/search-content-url-crash.html
12595
12596         * css/html.css:
12597         (input::-webkit-textfield-decoration-container):
12598         Use important to disable overriding an input element's content
12599         property.
12600         * html/TextFieldInputType.cpp:
12601         (WebCore::TextFieldInputType::attach):
12602         Added ASSERTION. No content should be applied to
12603         input::-webkit-textfield-decoration-container.
12604
12605 2012-11-12  Huang Dongsung  <luxtella@company100.net>
12606
12607         [Qt] REGRESSION(134142): overscaled tiles in pixel test results and MiniBrowser
12608         https://bugs.webkit.org/show_bug.cgi?id=101918
12609
12610         Reviewed by Noam Rosenthal.
12611
12612         Remove TiledBackingStore::rect(), because it is not used anymore.
12613
12614         * platform/graphics/TiledBackingStore.h:
12615         (TiledBackingStore):
12616
12617 2012-11-12  Adam Barth  <abarth@webkit.org>
12618
12619         [V8] We should be able to recover the V8DOMWindowShell more quickly
12620         https://bugs.webkit.org/show_bug.cgi?id=102020
12621
12622         Reviewed by Kentaro Hara.
12623
12624         For isolated worlds, we used to store the V8DOMWindowShell as an
12625         internal field of the inner DOM window. This patch moves the pointer to
12626         an internal field of the v8::Context, which saves us the work of
12627         looking up the inner DOM window.
12628
12629         Unfortunately, we cannot store the V8DOMWindowShell in V8PerContextData
12630         because the V8DOMWindowShell outlives the V8PerContextData. (We destroy
12631         the V8PerContextData when we detach the V8DOMWindowShell from the
12632         frame.)
12633
12634         * bindings/scripts/CodeGeneratorV8.pm:
12635         (GetInternalFields):
12636         * bindings/v8/V8DOMWindowShell.cpp:
12637         (WebCore::V8DOMWindowShell::initializeIfNeeded):
12638         * bindings/v8/V8DOMWindowShell.h:
12639         (WebCore::V8DOMWindowShell::getEntered):
12640         * bindings/v8/V8PerContextData.h:
12641
12642 2012-11-12  Kentaro Hara  <haraken@chromium.org>
12643
12644         [V8] Add ASSERT() to guarantee that we don't store NULL pointers to V8 internal fields
12645         https://bugs.webkit.org/show_bug.cgi?id=101054
12646
12647         Reviewed by Adam Barth.
12648
12649         I'm investigating a Chromium crash bug:
12650         http://code.google.com/p/chromium/issues/detail?id=155942
12651
12652         I've not yet identified the root cause (because I can't reproduce
12653         the crash), but it looks like we are storing NULL pointers to
12654         V8 internal fields. Just in case, we can add an ASSERT() to
12655         guarantee that NULL pointers are never stored. (Also I'm hoping
12656         that this ASSERT() will give me more debug information.)
12657
12658         No tests. No change in behavior.
12659
12660         * bindings/v8/V8DOMWrapper.h:
12661         (WebCore::V8DOMWrapper::setDOMWrapper):
12662
12663 2012-11-12  Shinya Kawanaka  <shinyak@chromium.org>
12664
12665         Changing id, className, or attribute should invalidate distribution
12666         https://bugs.webkit.org/show_bug.cgi?id=100738
12667
12668         Reviewed by Dimitri Glazkov.
12669
12670         When id, className, or attribute is changed, we might have to invalidate distribution.
12671         However, we don't want to do useless invalidation. So we consult with the RuleFeatureSet of ElementShadow,
12672         and invalidate distribution only if necessary.
12673
12674         When className is changed, we can share a lot of code between invalidating distribution and invalidating style.
12675         So we made checkNeedsStyleInvalidationForClassChange a template method, and share it.
12676
12677         Also we've measured how this patch makes changing attribute slow. By converting checkNeedsStyleInvalidationForClassChange
12678         to template, actually this improves the performance of changing attribute code. I've measured each code 3 times.
12679
12680         DOM/ModifyAttribute.html
12681         Before this patch:
12682                 median  stdev  min      max    [ms]
12683           1st   115.62   0.67  114.75   117.00
12684           2nd   115.08   1.13  113.25   117.58
12685           3rd   114.75   1.16  113.42   117.83
12686
12687         After this patch:
12688                 median  stdev  min      max    [ms]
12689           1st   102.55   0.95  101.25   104.50
12690           2nd   103.10   0.86  102.20   100.95
12691           3rd   103.30   1.05  102.10   106.65
12692
12693         Tests: fast/dom/shadow/distribution-attribute-modified.html
12694                fast/dom/shadow/distribution-className-modified.html
12695                fast/dom/shadow/distribution-id-modified.html
12696                fast/dom/shadow/reprojection-attribute-modified.html
12697                fast/dom/shadow/reprojection-className-modified.html
12698                fast/dom/shadow/reprojection-id-modified.html
12699
12700         * dom/Element.cpp:
12701         (WebCore::Element::attributeChanged):
12702         (WebCore::HasSelectorForClassStyleFunctor::HasSelectorForClassStyleFunctor):
12703         (HasSelectorForClassStyleFunctor):
12704         (WebCore::HasSelectorForClassStyleFunctor::operator()): Returns true if StyleResolver::hasSelectorForClass returns true.
12705         (WebCore):
12706         (WebCore::HasSelectorForClassDistributionFunctor::HasSelectorForClassDistributionFunctor):
12707         (HasSelectorForClassDistributionFunctor):
12708         (WebCore::HasSelectorForClassDistributionFunctor::operator()): Returns true if ElementShadow::hasSelectorForClass returns true.
12709         (WebCore::checkFunctorForClassChange):
12710         (WebCore::checkNeedsStyleInvalidationForClassChange): Extacted the implementation to checkFunctorForClassChange.
12711         (WebCore::checkNeedsDistributionInvalidationForClassChange):
12712         (WebCore::Element::classAttributeChanged):
12713
12714 2012-11-12  Joe Mason  <jmason@rim.com>
12715
12716         [BlackBerry] NetworkJob should not check if data is received with HEAD
12717         https://bugs.webkit.org/show_bug.cgi?id=102034
12718
12719         Reviewed by George Staikos.
12720
12721         Internal PR: 241391
12722
12723         Make HEAD requests call didFinish instead of didFail on a 404 response, even though they
12724         have no data.
12725
12726         Tests: ManualTests/blackberry/head-xhr-nonexistant-file.html
12727
12728         * platform/network/blackberry/NetworkJob.cpp:
12729         (WebCore::NetworkJob::NetworkJob):
12730         (WebCore::NetworkJob::initialize):
12731         (WebCore::NetworkJob::shouldNotifyClientFailed):
12732         * platform/network/blackberry/NetworkJob.h:
12733         (NetworkJob):
12734
12735 2012-11-12  Adam Barth  <abarth@webkit.org>
12736
12737         [V8] V8DOMWrapper::instantiateV8Object shouldn't use deprecatedDocument
12738         https://bugs.webkit.org/show_bug.cgi?id=102015
12739
12740         Reviewed by Kentaro Hara.
12741
12742         Previously, Nodes had a special path through
12743         V8DOMWrapper::instantiateV8Object using deprecatedDocument so that we
12744         could find the V8PerContextData quickly. Now that we can get the
12745         V8PerContextData from the v8::Context quickly, we can move Nodes to the
12746         general case. The net consequence is that creation of all DOM objects
12747         should be as fast as Nodes are.
12748
12749         * bindings/scripts/CodeGeneratorV8.pm:
12750         (GenerateToV8Converters):
12751         * bindings/scripts/test/V8/V8Float64Array.cpp:
12752         (WebCore::V8Float64Array::wrapSlow):
12753         * bindings/scripts/test/V8/V8TestActiveDOMObject.cpp:
12754         (WebCore::V8TestActiveDOMObject::wrapSlow):
12755         * bindings/scripts/test/V8/V8TestCustomNamedGetter.cpp:
12756         (WebCore::V8TestCustomNamedGetter::wrapSlow):
12757         * bindings/scripts/test/V8/V8TestEventConstructor.cpp:
12758         (WebCore::V8TestEventConstructor::wrapSlow):
12759         * bindings/scripts/test/V8/V8TestEventTarget.cpp:
12760         (WebCore::V8TestEventTarget::wrapSlow):
12761         * bindings/scripts/test/V8/V8TestException.cpp:
12762         (WebCore::V8TestException::wrapSlow):
12763         * bindings/scripts/test/V8/V8TestInterface.cpp:
12764         (WebCore::V8TestInterface::wrapSlow):
12765         * bindings/scripts/test/V8/V8TestMediaQueryListListener.cpp:
12766         (WebCore::V8TestMediaQueryListListener::wrapSlow):
12767         * bindings/scripts/test/V8/V8TestNamedConstructor.cpp:
12768         (WebCore::V8TestNamedConstructor::wrapSlow):
12769         * bindings/scripts/test/V8/V8TestNode.cpp:
12770         (WebCore::V8TestNode::wrapSlow):
12771         * bindings/scripts/test/V8/V8TestObj.cpp:
12772         (WebCore::V8TestObj::wrapSlow):
12773         * bindings/scripts/test/V8/V8TestOverloadedConstructors.cpp:
12774         (WebCore::V8TestOverloadedConstructors::wrapSlow):
12775         * bindings/scripts/test/V8/V8TestSerializedScriptValueInterface.cpp:
12776         (WebCore::V8TestSerializedScriptValueInterface::wrapSlow):
12777         * bindings/v8/V8Binding.cpp:
12778         * bindings/v8/V8Binding.h:
12779         (WebCore):
12780         * bindings/v8/V8DOMWrapper.cpp:
12781         (WebCore::V8DOMWrapper::instantiateV8Object):
12782         * bindings/v8/V8DOMWrapper.h:
12783         (V8DOMWrapper):
12784
12785 2012-11-12  KyungTae Kim  <ktf.kim@samsung.com>
12786
12787         Some CSS properties are not handled on StyleResolver::applyProperty
12788         https://bugs.webkit.org/show_bug.cgi?id=102027
12789
12790         Reviewed by Gyuyoung Kim.
12791
12792         The CSSPropertyMaxZoom, CSSPropertyMinZoom, CSSPropertyOrientation and CSSPropertyUserZoom
12793         need to be handled on StyleResolver::applyProperty.
12794
12795         * css/StyleResolver.cpp:
12796         (WebCore::StyleResolver::applyProperty):
12797
12798 2012-11-12  Simon Fraser  <simon.fraser@apple.com>
12799
12800         Avoid calling calculateLayerBounds() and convertToLayerCoords() more than once per layer paint
12801         https://bugs.webkit.org/show_bug.cgi?id=102031
12802
12803         Reviewed by Beth Dakin.
12804
12805         RenderLayer::paintLayerContents() and callees could end up calling convertToLayerCoords()
12806         and calculateLayerBounds() multiple times for painting a single layer.
12807         
12808         Keep track of whether we've computed the root-relative bounds and do it on demand.
12809         Compute the offset relative to rootLayer once, and pass it around as an optional parameter
12810         to functions that need it.
12811
12812         * rendering/RenderLayer.cpp:
12813         (WebCore::RenderLayer::paintLayerContents):
12814         (WebCore::RenderLayer::hitTestLayer):
12815         (WebCore::RenderLayer::calculateRects):
12816         (WebCore::RenderLayer::intersectsDamageRect):
12817         (WebCore::RenderLayer::boundingBox):
12818         (WebCore::RenderLayer::calculateLayerBounds):
12819         * rendering/RenderLayer.h:
12820         * rendering/RenderLayerCompositor.cpp:
12821         (WebCore::RenderLayerCompositor::calculateCompositedBounds):
12822
12823 2012-11-12  Simon Fraser  <simon.fraser@apple.com>
12824
12825         Change calculateLayerBounds() from a static function to a member function
12826         https://bugs.webkit.org/show_bug.cgi?id=102022
12827
12828         Reviewed by Beth Dakin.
12829
12830         calculateLayerBounds() has grown into a substantial function after
12831         starting live as a little utility function, so make it a member function
12832         of RenderLayer, and adjust callers accordingly.
12833
12834         * rendering/RenderLayer.cpp:
12835         (WebCore::RenderLayer::setFilterBackendNeedsRepaintingInRect):
12836         (WebCore::RenderLayer::paintLayerContents):
12837         (WebCore::RenderLayer::calculateLayerBounds):
12838         * rendering/RenderLayer.h:
12839         * rendering/RenderLayerCompositor.cpp:
12840         (WebCore::RenderLayerCompositor::calculateCompositedBounds):
12841
12842 2012-11-12  Alexei Filippov  <alph@chromium.org>
12843
12844         Web Inspector: Add an option to switch display of "Other" memory on/off in NMI
12845         https://bugs.webkit.org/show_bug.cgi?id=101601
12846
12847         Reviewed by Yury Semikhatsky.
12848
12849         * English.lproj/localizedStrings.js:
12850         * inspector/front-end/NativeMemorySnapshotView.js:
12851         * inspector/front-end/Settings.js:
12852         * inspector/front-end/SettingsScreen.js:
12853         (WebInspector.GenericSettingsTab):
12854
12855 2012-11-10  Dirk Schulze  <krit@webkit.org>
12856
12857         BasicShapes 'circle', 'rectangle', 'ellipse' should be animatable with themselves
12858         https://bugs.webkit.org/show_bug.cgi?id=101854
12859
12860         Reviewed by Andreas Kling.
12861
12862         The basic shapes BasicShapeCircle, BasicShapeEllipse and BasicShapeRectangle should
12863         blend with themselves. This patch introduces simple interpolation of BasicShapes for
12864         the -webkit-clip-path property.
12865
12866         Test: css3/masking/clip-path-animation.html
12867
12868         * page/animation/CSSPropertyAnimation.cpp:
12869         (WebCore::blendFunc): Added a new function that blends between two BasicShape objects.
12870             It skips blending on <clipPath> references, polygons and if the shapes are not of
12871             the same type.
12872         (WebCore):
12873         (PropertyWrapperClipPath): Added new wrapper for ClipPathShapes.
12874         (WebCore::PropertyWrapperClipPath::PropertyWrapperClipPath): Ditto.
12875         (WebCore::CSSPropertyAnimation::ensurePropertyMap): Add -webkit-clip-path to animatable
12876             properties.
12877         * rendering/style/BasicShapes.cpp:
12878             The blending is done by each shape itself. This is similar to FilterOperations or
12879             TransformOperations.
12880         (WebCore::BasicShapeRectangle::blend):
12881         (WebCore):
12882         (WebCore::BasicShapeCircle::blend):
12883         (WebCore::BasicShapeEllipse::blend):
12884         (WebCore::BasicShapePolygon::blend):
12885         * rendering/style/BasicShapes.h:
12886             Added new blending functions to header.
12887         (BasicShape):
12888         (BasicShapeRectangle):
12889         (BasicShapeCircle):
12890         (BasicShapeEllipse):
12891         (BasicShapePolygon):
12892
12893 2012-11-12  Adam Barth  <abarth@webkit.org>
12894
12895         [V8] We should be able to get V8PerContextData from a v8::Context more quickly
12896         https://bugs.webkit.org/show_bug.cgi?id=102008
12897
12898         Reviewed by Ojan Vafai.
12899
12900         This patch uses the new v8::Context::GetAlignedPointerFromEmbedderData
12901         API to get the V8PerContextData associated with a v8::Context much more
12902         quickly. We no longer need to use a hidden property on the inner global
12903         object. This patch will enable future optimizations.
12904
12905         * bindings/v8/V8HiddenPropertyName.h:
12906         (WebCore):
12907         * bindings/v8/V8PerContextData.cpp:
12908         (WebCore::V8PerContextData::dispose):
12909         (WebCore::V8PerContextData::init):
12910         * bindings/v8/V8PerContextData.h:
12911         (WebCore::V8PerContextData::from):
12912
12913 2012-11-12  Elliott Sprehn  <esprehn@chromium.org>
12914
12915         Make Frames and HTMLFrameOwnerElement less friendly
12916         https://bugs.webkit.org/show_bug.cgi?id=102003
12917
12918         Reviewed by Ojan Vafai.
12919
12920         Frame used to assign HTMLFrameOwnerElement's m_contentFrame directly
12921         this patch makes it go through a method to allow future hooks when frames
12922         are associated with owners.
12923
12924         No new tests, this is just a refactor.
12925
12926         * html/HTMLFrameOwnerElement.cpp:
12927         (WebCore::HTMLFrameOwnerElement::setContentFrame):
12928         * html/HTMLFrameOwnerElement.h:
12929         (HTMLFrameOwnerElement):
12930         (WebCore::HTMLFrameOwnerElement::clearContentFrame):
12931         * page/Frame.cpp:
12932         (WebCore::Frame::Frame): Use new methods.
12933
12934 2012-11-12  Beth Dakin  <bdakin@apple.com>
12935
12936         Zoomed-in scrolling is very slow when deviceScaleFactor > 1
12937         https://bugs.webkit.org/show_bug.cgi?id=101787
12938
12939         Reviewed by Simon Fraser.
12940
12941         This patch adds a new member to the GraphicsContextState that tracks 
12942         whether or not fonts should be subpixel-quantized. We want to default 
12943         to sibpixel-quantizing, but we'll turn it off if we're scrolling 
12944         content that cannot be scrolled on the scrolling thread.
12945
12946         State has a new bool shouldSubpixelQuantizeFonts. It defaults to true 
12947         since normally we do want to quantize.
12948         * platform/graphics/GraphicsContext.cpp:
12949         (WebCore::GraphicsContext::setShouldSubpixelQuantizeFonts):
12950         (WebCore::GraphicsContext::shouldSubpixelQuantizeFonts):
12951         * platform/graphics/GraphicsContext.h:
12952         (WebCore::GraphicsContextState::GraphicsContextState):
12953         (GraphicsContextState):
12954         (GraphicsContext):
12955
12956         wkSetCGFontRenderingMode now takes a BOOL parameter which indicates 
12957         whether or not it should try to subpixel-quantize the fonts.
12958         * platform/graphics/mac/FontMac.mm:
12959         (WebCore::Font::drawGlyphs):
12960         * platform/mac/WebCoreSystemInterface.h:
12961         * platform/mac/WebCoreSystemInterface.mm:
12962
12963         Disable subpixel-quantization for overflow areas, subframes, and 
12964         content that is scrolling on the main thread.
12965         * rendering/RenderLayer.cpp:
12966         (WebCore::RenderLayer::paintLayerContents):
12967
12968 2012-11-12  Timothy Hatcher  <timothy@apple.com>
12969
12970         Expose InspectorFrontendClientLocal::setAttachedWindow as public.
12971
12972         This allows external actions to update the docked state in the frontend.
12973
12974         https://bugs.webkit.org/show_bug.cgi?id=102023
12975
12976         Reviewed by Anders Carlsson.
12977
12978         * inspector/InspectorFrontendClientLocal.h:
12979         Moved InspectorFrontendClientLocal::setAttachedWindow to public section.
12980
12981 2012-11-12  Erik Arvidsson  <arv@chromium.org>
12982
12983         Replace DOMException TYPE_MISMATCH_ERR with TypeError
12984         https://bugs.webkit.org/show_bug.cgi?id=101604
12985
12986         Reviewed by Adam Barth.
12987
12988         DOMException.TYPE_MISMATCH_ERR is deprecated in favor of using TypeError.
12989
12990         We have historically used TYPE_MISMATCH_ERR as a blanket DOMException code when
12991         the spec mandates TypeError being thrown.
12992
12993         Updated existing tests.
12994
12995         * Modules/mediastream/MediaConstraintsImpl.cpp:
12996         * Modules/mediastream/MediaStreamTrackList.cpp:
12997         * Modules/mediastream/PeerConnection00.cpp:
12998         * Modules/mediastream/RTCDataChannel.cpp:
12999         * Modules/mediastream/RTCIceCandidate.cpp:
13000         * Modules/mediastream/RTCPeerConnection.cpp:
13001         * Modules/mediastream/RTCSessionDescription.cpp:
13002         * Modules/mediastream/SessionDescription.cpp:
13003         * bindings/js/CallbackFunction.cpp:
13004         * bindings/js/JSCustomXPathNSResolver.cpp:
13005         * bindings/js/JSHTMLOptionsCollectionCustom.cpp:
13006         * bindings/js/JSHTMLSelectElementCustom.cpp:
13007         * bindings/js/JSMutationObserverCustom.cpp:
13008         * bindings/js/JSSQLResultSetRowListCustom.cpp:
13009         * bindings/js/JSSQLTransactionCustom.cpp:
13010         * bindings/js/JSSQLTransactionSyncCustom.cpp:
13011         * bindings/scripts/CodeGeneratorJS.pm:
13012         * bindings/scripts/CodeGeneratorObjC.pm:
13013         * bindings/scripts/CodeGeneratorV8.pm:
13014         * bindings/v8/V8Callback.h:
13015         * bindings/v8/V8Collection.cpp:
13016         * bindings/v8/custom/V8DocumentCustom.cpp:
13017         * bindings/v8/custom/V8HTMLOptionsCollectionCustom.cpp:
13018         * bindings/v8/custom/V8MutationObserverCustom.cpp:
13019         * bindings/v8/custom/V8SQLTransactionCustom.cpp:
13020         * bindings/v8/custom/V8SQLTransactionSyncCustom.cpp:
13021         * dom/DOMCoreException.idl:
13022         * html/HTMLElement.cpp:
13023         * html/HTMLMediaElement.cpp:
13024         * html/HTMLOptionsCollection.cpp:
13025         * html/canvas/CanvasRenderingContext2D.cpp:
13026         * page/Crypto.cpp:
13027         * page/DOMSelection.cpp:
13028         * svg/properties/SVGTransformListPropertyTearOff.h:
13029
13030 2012-11-12  Joshua Bell  <jsbell@chromium.org>
13031
13032         IndexedDB: Use sequence<> instead of DOMString[] in IDL
13033         https://bugs.webkit.org/show_bug.cgi?id=100539
13034
13035         Reviewed by Adam Barth.
13036
13037         In the binding layer, DOMString[] is implemented as an alias for DOMStringList.
13038         WebIDL usage is tending towards sequence<DOMString> anyway for inputs, so switch
13039         to that. Note webkit.org/b/100537 which requires sequence<String> instead.
13040
13041         Covered by storage/indexeddb/transaction-basics.html and objectstore-basics.html
13042
13043         * Modules/indexeddb/IDBDatabase.cpp:
13044         (WebCore::IDBDatabase::transaction): DOMStringList -> Vector<String>
13045         * Modules/indexeddb/IDBDatabase.h:
13046         (WebCore::IDBDatabase::transaction):
13047         (IDBDatabase):
13048         * Modules/indexeddb/IDBDatabase.idl: DOMString[] -> sequence<String>
13049         * Modules/indexeddb/IDBObjectStore.cpp: Move trivial impls to header.
13050         * Modules/indexeddb/IDBObjectStore.h:
13051         (WebCore::IDBObjectStore::createIndex):
13052         * Modules/indexeddb/IDBObjectStore.idl: DOMString[] -> sequence<String>
13053
13054 2012-11-12  Anders Carlsson  <andersca@apple.com>
13055
13056         Remove Leopard only gradient code
13057         https://bugs.webkit.org/show_bug.cgi?id=102033
13058
13059         Reviewed by Dan Bernstein.
13060
13061         USE_CG_SHADING was only ever true on Leopard, so we can remove it now.
13062
13063         * platform/graphics/Gradient.h:
13064         * platform/graphics/cg/GradientCG.cpp:
13065         (WebCore::Gradient::platformDestroy):
13066         (WebCore::Gradient::platformGradient):
13067         (WebCore::Gradient::paint):
13068
13069 2012-11-12  Tiancheng Jiang  <tijiang@rim.com>
13070
13071         [BlackBerry] Update BB10 form theme.
13072         https://bugs.webkit.org/show_bug.cgi?id=100760
13073
13074         Reviewed by Rob Buis.
13075
13076         RIM PR 237003
13077         Internally Reviewed by Eli Fidler.
13078         Since we nolonger use small font for form controls, adjust paddingDivisor
13079         ratio to decrease the padding value.
13080
13081         * platform/blackberry/RenderThemeBlackBerry.cpp:
13082         (WebCore):
13083
13084 2012-11-12  Simon Fraser  <simon.fraser@apple.com>
13085
13086         Fix filter dirty rect regression from r134311
13087         https://bugs.webkit.org/show_bug.cgi?id=102002
13088
13089         Reviewed by Beth Dakin.
13090
13091         When rendering with filters, the code can inflate the root-relative
13092         paintDirtyRect in RenderLayer::paintLayerContents(), and my cleanup
13093         broke this behavior.
13094     
13095         Fix by making a local copy of LayerPaintingInfo, updating its paintDirtyRect,
13096         and using it for the rest of the function.
13097
13098         * rendering/RenderLayer.cpp:
13099         (WebCore::RenderLayer::paintLayerContents):
13100
13101 2012-11-12  Kentaro Hara  <haraken@chromium.org>
13102
13103         [V8] V8Event::valueAccessorGetter() in custom binding is not used
13104         https://bugs.webkit.org/show_bug.cgi?id=101893
13105
13106         Reviewed by Adam Barth.
13107
13108         No tests. No change in behavior.
13109
13110         * bindings/v8/custom/V8EventCustom.cpp:
13111
13112 2012-11-12  Roger Fong  <roger_fong@apple.com>
13113
13114         Web Inspector: Fix docking behaviour on Windows.
13115         https://bugs.webkit.org/show_bug.cgi?id=101978
13116
13117         Reviewed by Brian Weinstein.
13118
13119         There are a number of problems with docking behaviour on Windows.
13120         For starters, it does not ever constrain the inspector's size properly while docked.
13121         It also does not properly set the whether or not the inspector can be docked/undocked.
13122         This patch fixes both issues.
13123
13124         * inspector/InspectorFrontendClientLocal.cpp:
13125         (WebCore::InspectorFrontendClientLocal::frontendLoaded):
13126         Switch order of calling bringToFront and setDockingUnavailable.
13127
13128 2012-11-12  Adam Barth  <abarth@webkit.org>
13129
13130         [V8] Update callers to use the aligned pointer API rather than the deprecated unaligned pointer API
13131         https://bugs.webkit.org/show_bug.cgi?id=101519
13132
13133         Reviewed by Ojan Vafai.
13134
13135         There should be no change in behavior.  The new API is slightly faster
13136         than the old API (and apparently works correctly internally in V8).
13137
13138         * bindings/scripts/CodeGeneratorV8.pm:
13139         (GenerateHeader):
13140         * bindings/scripts/test/V8/V8Float64Array.h:
13141         (WebCore::V8Float64Array::toNative):
13142         * bindings/scripts/test/V8/V8TestActiveDOMObject.h:
13143         (WebCore::V8TestActiveDOMObject::toNative):
13144         * bindings/scripts/test/V8/V8TestCustomNamedGetter.h:
13145         (WebCore::V8TestCustomNamedGetter::toNative):
13146         * bindings/scripts/test/V8/V8TestEventConstructor.h:
13147         (WebCore::V8TestEventConstructor::toNative):
13148         * bindings/scripts/test/V8/V8TestEventTarget.h:
13149         (WebCore::V8TestEventTarget::toNative):
13150         * bindings/scripts/test/V8/V8TestException.h:
13151         (WebCore::V8TestException::toNative):
13152         * bindings/scripts/test/V8/V8TestInterface.h:
13153         (WebCore::V8TestInterface::toNative):
13154         * bindings/scripts/test/V8/V8TestMediaQueryListListener.h:
13155         (WebCore::V8TestMediaQueryListListener::toNative):
13156         * bindings/scripts/test/V8/V8TestNamedConstructor.h:
13157         (WebCore::V8TestNamedConstructor::toNative):
13158         * bindings/scripts/test/V8/V8TestNode.h:
13159         (WebCore::V8TestNode::toNative):
13160         * bindings/scripts/test/V8/V8TestObj.h:
13161         (WebCore::V8TestObj::toNative):
13162         * bindings/scripts/test/V8/V8TestSerializedScriptValueInterface.h:
13163         (WebCore::V8TestSerializedScriptValueInterface::toNative):
13164         * bindings/v8/NPV8Object.cpp:
13165         (WebCore::v8ObjectToNPObject):
13166         (WebCore::npCreateV8ScriptObject):
13167         * bindings/v8/V8Collection.h:
13168         (WebCore::toNativeCollection):
13169         * bindings/v8/V8DOMWindowShell.cpp:
13170         (WebCore::setIsolatedWorldField):
13171         (WebCore::V8DOMWindowShell::enteredIsolatedWorldContext):
13172         * bindings/v8/V8DOMWrapper.cpp:
13173         (WebCore::V8DOMWrapper::isWrapperOfType):
13174         * bindings/v8/V8DOMWrapper.h:
13175         (WebCore::V8DOMWrapper::setDOMWrapper):
13176         (WebCore::V8DOMWrapper::clearDOMWrapper):
13177         * bindings/v8/WrapperTypeInfo.h:
13178         (WebCore::toNative):
13179         (WebCore::toWrapperTypeInfo):
13180
13181 2012-11-12  Andreas Kling  <kling@webkit.org>
13182
13183         Rename AttributeStyle => PresentationAttributeStyle across WebCore.
13184         <http://webkit.org/b/101975>
13185
13186         Rubber-stamped by Antti Koivisto.
13187
13188         The completely separate concepts of "attribute style" and "style attribute" were a bit too
13189         easy to confuse in variable and method names. Reconfigure our terminology to call it
13190         "presentation attribute style" instead of "attribute style".
13191
13192         * css/StyleResolver.cpp:
13193         (WebCore::StyleResolver::sweepMatchedPropertiesCache):
13194         (WebCore::StyleResolver::matchAllRules):
13195         (WebCore::StyleResolver::canShareStyleWithElement):
13196         * dom/Attr.cpp:
13197         (WebCore::Attr::style):
13198         * dom/ElementAttributeData.cpp:
13199         (WebCore::MutableElementAttributeData::MutableElementAttributeData):
13200         (WebCore::ElementAttributeData::reportMemoryUsage):
13201         * dom/ElementAttributeData.h:
13202         (WebCore::ElementAttributeData::presentationAttributeStyle):
13203         (WebCore::ElementAttributeData::setPresentationAttributeStyle):
13204         (ElementAttributeData):
13205         * dom/Node.h:
13206         (WebCore::Node::attributeStyleDirty):
13207         (WebCore::Node::setPresentationAttributeStyleDirty):
13208         (WebCore::Node::clearPresentationAttributeStyleDirty):
13209         * dom/StyledElement.cpp:
13210         (WebCore::StyledElement::attributeChanged):
13211         (WebCore::StyledElement::rebuildPresentationAttributeStyle):
13212         (WebCore::StyledElement::addPropertyToPresentationAttributeStyle):
13213         * dom/StyledElement.h:
13214         (WebCore::StyledElement::additionalPresentationAttributeStyle):
13215         (StyledElement):
13216         (WebCore::StyledElement::collectStyleForPresentationAttribute):
13217         (WebCore::StyledElement::presentationAttributeStyle):
13218         * html/HTMLBRElement.cpp:
13219         (WebCore::HTMLBRElement::collectStyleForPresentationAttribute):
13220         * html/HTMLBRElement.h:
13221         (HTMLBRElement):
13222         * html/HTMLBodyElement.cpp:
13223         (WebCore::HTMLBodyElement::collectStyleForPresentationAttribute):
13224         * html/HTMLBodyElement.h:
13225         (HTMLBodyElement):
13226         * html/HTMLDivElement.cpp:
13227         (WebCore::HTMLDivElement::collectStyleForPresentationAttribute):
13228         * html/HTMLDivElement.h:
13229         (HTMLDivElement):
13230         * html/HTMLElement.cpp:
13231         (WebCore::HTMLElement::applyBorderAttributeToStyle):
13232         (WebCore::HTMLElement::mapLanguageAttributeToLocale):
13233         (WebCore::HTMLElement::collectStyleForPresentationAttribute):
13234         (WebCore::HTMLElement::applyAlignmentAttributeToStyle):
13235         (WebCore::HTMLElement::addHTMLLengthToStyle):
13236         * html/HTMLElement.h:
13237         (HTMLElement):
13238         * html/HTMLEmbedElement.cpp:
13239         (WebCore::HTMLEmbedElement::collectStyleForPresentationAttribute):
13240         * html/HTMLEmbedElement.h:
13241         (HTMLEmbedElement):
13242         * html/HTMLFontElement.cpp:
13243         (WebCore::HTMLFontElement::collectStyleForPresentationAttribute):
13244         * html/HTMLFontElement.h:
13245         (HTMLFontElement):
13246         * html/HTMLFrameSetElement.cpp:
13247         (WebCore::HTMLFrameSetElement::collectStyleForPresentationAttribute):
13248         * html/HTMLFrameSetElement.h:
13249         (HTMLFrameSetElement):
13250         * html/HTMLHRElement.cpp:
13251         (WebCore::HTMLHRElement::collectStyleForPresentationAttribute):
13252         * html/HTMLHRElement.h:
13253         (HTMLHRElement):
13254         * html/HTMLIFrameElement.cpp:
13255         (WebCore::HTMLIFrameElement::collectStyleForPresentationAttribute):
13256         * html/HTMLIFrameElement.h:
13257         (HTMLIFrameElement):
13258         * html/HTMLImageElement.cpp:
13259         (WebCore::HTMLImageElement::collectStyleForPresentationAttribute):
13260         * html/HTMLImageElement.h:
13261         (HTMLImageElement):
13262         * html/HTMLInputElement.cpp:
13263         (WebCore::HTMLInputElement::collectStyleForPresentationAttribute):
13264         * html/HTMLInputElement.h:
13265         (HTMLInputElement):
13266         * html/HTMLLIElement.cpp:
13267         (WebCore::HTMLLIElement::collectStyleForPresentationAttribute):
13268         * html/HTMLLIElement.h:
13269         (HTMLLIElement):
13270         * html/HTMLMarqueeElement.cpp:
13271         (WebCore::HTMLMarqueeElement::collectStyleForPresentationAttribute):
13272         * html/HTMLMarqueeElement.h:
13273         (HTMLMarqueeElement):
13274         * html/HTMLOListElement.cpp:
13275         (WebCore::HTMLOListElement::collectStyleForPresentationAttribute):
13276         * html/HTMLOListElement.h:
13277         (HTMLOListElement):
13278         * html/HTMLObjectElement.cpp:
13279         (WebCore::HTMLObjectElement::collectStyleForPresentationAttribute):
13280         * html/HTMLObjectElement.h:
13281         (HTMLObjectElement):
13282         * html/HTMLParagraphElement.cpp:
13283         (WebCore::HTMLParagraphElement::collectStyleForPresentationAttribute):
13284         * html/HTMLParagraphElement.h:
13285         (HTMLParagraphElement):
13286         * html/HTMLPlugInElement.cpp:
13287         (WebCore::HTMLPlugInElement::collectStyleForPresentationAttribute):
13288         * html/HTMLPlugInElement.h:
13289         (HTMLPlugInElement):
13290         * html/HTMLPreElement.cpp:
13291         (WebCore::HTMLPreElement::collectStyleForPresentationAttribute):
13292         * html/HTMLPreElement.h:
13293         (HTMLPreElement):
13294         * html/HTMLTableCaptionElement.cpp:
13295         (WebCore::HTMLTableCaptionElement::collectStyleForPresentationAttribute):
13296         * html/HTMLTableCaptionElement.h:
13297         (HTMLTableCaptionElement):
13298         * html/HTMLTableCellElement.cpp:
13299         (WebCore::HTMLTableCellElement::collectStyleForPresentationAttribute):
13300         (WebCore::HTMLTableCellElement::additionalPresentationAttributeStyle):
13301         * html/HTMLTableCellElement.h:
13302         (HTMLTableCellElement):
13303         * html/HTMLTableColElement.cpp:
13304         (WebCore::HTMLTableColElement::collectStyleForPresentationAttribute):
13305         (WebCore::HTMLTableColElement::additionalPresentationAttributeStyle):
13306         * html/HTMLTableColElement.h:
13307         (HTMLTableColElement):
13308         * html/HTMLTableElement.cpp:
13309         (WebCore::HTMLTableElement::collectStyleForPresentationAttribute):
13310         (WebCore::HTMLTableElement::additionalPresentationAttributeStyle):
13311         * html/HTMLTableElement.h:
13312         (HTMLTableElement):
13313         * html/HTMLTablePartElement.cpp:
13314         (WebCore::HTMLTablePartElement::collectStyleForPresentationAttribute):
13315         * html/HTMLTablePartElement.h:
13316         (HTMLTablePartElement):
13317         * html/HTMLTableSectionElement.cpp:
13318         (WebCore::HTMLTableSectionElement::additionalPresentationAttributeStyle):
13319         * html/HTMLTableSectionElement.h:
13320         (HTMLTableSectionElement):
13321         * html/HTMLTextAreaElement.cpp:
13322         (WebCore::HTMLTextAreaElement::collectStyleForPresentationAttribute):
13323         * html/HTMLTextAreaElement.h:
13324         (HTMLTextAreaElement):
13325         * html/HTMLUListElement.cpp:
13326         (WebCore::HTMLUListElement::collectStyleForPresentationAttribute):
13327         * html/HTMLUListElement.h:
13328         (HTMLUListElement):
13329         * html/HTMLVideoElement.cpp:
13330         (WebCore::HTMLVideoElement::collectStyleForPresentationAttribute):
13331         * html/HTMLVideoElement.h:
13332         (HTMLVideoElement):
13333         * inspector/InspectorCSSAgent.cpp:
13334         (WebCore::InspectorCSSAgent::buildObjectForAttributesStyle):
13335         * mathml/MathMLElement.cpp:
13336         (WebCore::MathMLElement::collectStyleForPresentationAttribute):
13337         * mathml/MathMLElement.h:
13338         (MathMLElement):
13339         * svg/SVGImageElement.cpp:
13340         (WebCore::SVGImageElement::collectStyleForPresentationAttribute):
13341         * svg/SVGImageElement.h:
13342         (SVGImageElement):
13343         * svg/SVGStyledElement.cpp:
13344         (WebCore::SVGStyledElement::collectStyleForPresentationAttribute):
13345         * svg/SVGStyledElement.h:
13346         (SVGStyledElement):
13347         * svg/SVGTextContentElement.cpp:
13348         (WebCore::SVGTextContentElement::collectStyleForPresentationAttribute):
13349         * svg/SVGTextContentElement.h:
13350         (SVGTextContentElement):
13351
13352 2012-11-12  Adam Barth  <abarth@webkit.org>
13353
13354         [V8] Many things crash when switching to V8's new aligned pointer API
13355         https://bugs.webkit.org/show_bug.cgi?id=101994
13356
13357         Reviewed by Eric Seidel.
13358
13359         When using the aligned pointer API, we need to make sure to initialize
13360         every internal field that we later read because the new API has better
13361         error checks than the old API. This patch explicitly initializes the
13362         enteredIsolatedWorldIndex internal field to zero for main worlds,
13363         fixing the LayoutTest crashes from our previous attempt to move the
13364         aligned pointer API.
13365
13366         * bindings/v8/V8DOMWindowShell.cpp:
13367         (WebCore::V8DOMWindowShell::initializeIfNeeded):
13368
13369 2012-11-12  Simon Fraser  <simon.fraser@apple.com>
13370
13371         Reduce the crazy number of parameters to RenderLayer painting member functions
13372         https://bugs.webkit.org/show_bug.cgi?id=101895
13373
13374         Reviewed by Beth Dakin.
13375
13376         The various RenderLayer::paintLayer* functions took a lot of arguments, most
13377         of which were passed down directly to descendants.
13378         
13379         Gather these arguments into a LayerPaintingInfo struct.
13380
13381         * rendering/RenderLayer.cpp:
13382         (WebCore::RenderLayer::paint): Create a LayerPaintingInfo struct to pass
13383         to descendant paint calls.
13384         (WebCore::RenderLayer::paintOverlayScrollbars): Ditto.
13385         (WebCore::RenderLayer::paintLayer): When painting transformed layers, we
13386         make a new LayerPaintingInfo because the root layer is shifted.
13387         (WebCore::RenderLayer::paintLayerContentsAndReflection):
13388         (WebCore::RenderLayer::paintLayerContents):
13389         (WebCore::RenderLayer::paintList):
13390         (WebCore::RenderLayer::paintPaginatedChildLayer):
13391         (WebCore::RenderLayer::paintChildLayerIntoColumns): Create a new LayerPaintingInfo
13392         struct for column painting.
13393         * rendering/RenderLayer.h:
13394         (WebCore::RenderLayer::LayerPaintingInfo::LayerPaintingInfo):
13395         (LayerPaintingInfo):
13396         * rendering/RenderLayerBacking.cpp:
13397         (WebCore::RenderLayerBacking::paintIntoLayer): Build a LayerPaintingInfo
13398         to enter layer painting.
13399         * rendering/RenderReplica.cpp:
13400         (WebCore::RenderReplica::paint): Ditto.
13401
13402 2012-11-12  Brady Eidson  <beidson@apple.com>
13403
13404         NetworkProcess: Use an accurate shouldContentSniff value when creating ResourceHandles
13405         https://bugs.webkit.org/show_bug.cgi?id=101872
13406
13407         Reviewed by Alexey Proskuryakov.
13408
13409         Expose shouldSniffContent to pass it along to the NetworkProcess.
13410
13411         * loader/ResourceLoader.h:
13412         (WebCore::ResourceLoader::shouldSniffContent):
13413
13414 2012-11-12  Christophe Dumez  <christophe.dumez@intel.com>
13415
13416         Fix memory leak in createSurfaceForBackingStore()
13417         https://bugs.webkit.org/show_bug.cgi?id=101941
13418
13419         Reviewed by Kenneth Rohde Christiansen.
13420
13421         Fix memory leak in createSurfaceForBackingStore(),
13422         the RefPtr<cairo_surface_t> should be released
13423         when returned since we pass ownership to the
13424         caller.
13425
13426         No new tests, no behavior change for layout tests.
13427
13428         * platform/graphics/efl/CairoUtilitiesEfl.cpp:
13429         (WebCore::createSurfaceForBackingStore):
13430
13431 2012-11-12  Joe Mason  <jmason@rim.com>
13432
13433         [BlackBerry] Update to new proxyInfo API
13434         https://bugs.webkit.org/show_bug.cgi?id=101945
13435
13436         Reviewed by George Staikos.
13437
13438         Internal PR: 234680
13439         Reviewed internally by: Leo Yang
13440
13441         The proxyAddress, proxyUsername and proxyPassword methods in BlackBerry::Platform::Settings
13442         have been replaced with a single, more efficient proxyInfo method.
13443
13444         No new tests because this is an API update with no behaviour change.
13445
13446         * platform/network/blackberry/NetworkJob.cpp:
13447         (WebCore::NetworkJob::sendRequestWithCredentials):
13448         (WebCore::NetworkJob::storeCredentials):
13449
13450 2012-11-12  Sheriff Bot  <webkit.review.bot@gmail.com>
13451
13452         Unreviewed, rolling out r126157.
13453         http://trac.webkit.org/changeset/126157
13454         https://bugs.webkit.org/show_bug.cgi?id=101954
13455
13456         This patch caused (untestable) regression of the volume
13457         property on Mac, Win, and Blackberry ports. (Requested by
13458         jernoble on #webkit).
13459
13460         * platform/graphics/MediaPlayer.cpp:
13461         (WebCore::MediaPlayer::loadWithNextMediaEngine):
13462         (WebCore::MediaPlayer::setVolume):
13463         (WebCore::MediaPlayer::setMuted):
13464         (WebCore::MediaPlayer::setPreservesPitch):
13465         (WebCore::MediaPlayer::setSize):
13466         (WebCore::MediaPlayer::setVisible):
13467         (WebCore::MediaPlayer::setPreload):
13468
13469 2012-11-12  Arpita Bahuguna  <arpitabahuguna@gmail.com>
13470
13471         Specified width CSS tables should not include border and padding as part of that width.
13472         https://bugs.webkit.org/show_bug.cgi?id=77028
13473
13474         Reviewed by Julien Chaffraix.
13475
13476         CSS table width should not include border and padding even though HTML
13477         tables size as though their width includes border/padding.
13478
13479         This is applicable for all CSS tables with specified widths.
13480
13481         The change would also make our rendering of CSS tables with specified
13482         width similar to that of Opera, IE and FF.
13483
13484         Test: fast/table/css-table-width-with-border-padding.html
13485
13486         * rendering/RenderTable.cpp:
13487         (WebCore::RenderTable::convertStyleLogicalWidthToComputedWidth):
13488         Added check for all (positive) specified widths for CSS tables to
13489         consider border and padding outside of the specified width.
13490
13491 2012-11-12  Allan Sandfeld Jensen  <allan.jensen@digia.com>
13492
13493         Move resolving blob references to FormData.
13494         https://bugs.webkit.org/show_bug.cgi?id=101754
13495
13496         Reviewed by Simon Hausmann.
13497
13498         Resolving Blob-references to a set of just File and Data is done similar by several platforms.
13499         This patch adds a generic implementation in FormData and uses that from CFNetwork, Qt and
13500         BlackBerry network implementation.
13501
13502         * platform/network/FormData.cpp:
13503         (WebCore::appendBlobResolved):
13504         (WebCore::FormData::resolveBlobReferences):
13505         * platform/network/FormData.h:
13506         * platform/network/blackberry/ResourceRequestBlackBerry.cpp:
13507         (WebCore::ResourceRequest::initializePlatformRequest):
13508         * platform/network/cf/FormDataStreamCFNet.cpp:
13509         (WebCore::setHTTPBody):
13510         * platform/network/qt/QNetworkReplyHandler.cpp:
13511         (WebCore::FormDataIODevice::prepareFormElements):
13512
13513 2012-11-12  Zeno Albisser  <zeno@webkit.org>
13514
13515         GraphicsSurfaceGLX does not handle transparency correctly.
13516         https://bugs.webkit.org/show_bug.cgi?id=101943
13517
13518         GraphicsSurfacGLX must consistently use RGBA texture format.
13519         glXCreateWindow must be called after creating the XWindow
13520         that serves as a temporary offscreen texture storage, in order
13521         to allow for transparency.
13522         When creating the offscreen XWindow we must make sure,
13523         that we use a framebuffer configuration that supports
13524         an alpha mask.
13525
13526         Reviewed by Noam Rosenthal.
13527
13528         * platform/graphics/surfaces/qt/GraphicsSurfaceGLX.cpp:
13529         (WebCore):
13530         (WebCore::GraphicsSurfacePrivate::GraphicsSurfacePrivate):
13531         (WebCore::GraphicsSurfacePrivate::~GraphicsSurfacePrivate):
13532         (WebCore::GraphicsSurfacePrivate::createSurface):
13533         (GraphicsSurfacePrivate):
13534         (WebCore::GraphicsSurface::platformPaintToTextureMapper):
13535
13536 2012-11-12  Sheriff Bot  <webkit.review.bot@gmail.com>
13537
13538         Unreviewed, rolling out r134225.
13539         http://trac.webkit.org/changeset/134225
13540         https://bugs.webkit.org/show_bug.cgi?id=101948
13541
13542         Appears to have broken the EFL and GTK builds (Requested by
13543         abarth on #webkit).
13544
13545         * bindings/js/JSHTMLElementCustom.cpp:
13546         (WebCore):
13547         (WebCore::JSHTMLElement::itemValue):
13548         (WebCore::JSHTMLElement::setItemValue):
13549         * bindings/v8/custom/V8HTMLElementCustom.cpp:
13550         (WebCore):
13551         (WebCore::V8HTMLElement::itemValueAccessorGetter):
13552         (WebCore::V8HTMLElement::itemValueAccessorSetter):
13553         * html/HTMLElement.idl:
13554
13555 2012-11-12  Allan Sandfeld Jensen  <allan.jensen@digia.com>
13556
13557         hitTestResultAtPoint does two hit-tests if called on non main frame
13558         https://bugs.webkit.org/show_bug.cgi?id=101915
13559
13560         Reviewed by Antonio Gomes.
13561
13562         Always redirect hitTestResultAtPoint to the main-frame. This used to being
13563         done on every result that hit anything, which caused running the expensive 
13564         hit-tests multiple times in almost all cases.
13565
13566         * page/EventHandler.cpp:
13567         (WebCore::EventHandler::hitTestResultAtPoint):
13568
13569 2012-11-12  Kentaro Hara  <haraken@chromium.org>
13570
13571         [V8][JSC] ScriptProfileNode::callUID needs not to be [Custom]
13572         https://bugs.webkit.org/show_bug.cgi?id=101892
13573
13574         Reviewed by Adam Barth.
13575
13576         We can remove [Custom] from callUID in ScriptProfileNode.idl.
13577
13578         No tests. No change in behavior.
13579
13580         * GNUmakefile.list.am:
13581         * Target.pri:
13582         * UseJSC.cmake:
13583         * WebCore.gypi:
13584         * WebCore.vcproj/WebCore.vcproj:
13585         * WebCore.xcodeproj/project.pbxproj:
13586         * bindings/js/JSBindingsAllInOne.cpp:
13587         * bindings/js/JSScriptProfileNodeCustom.cpp: Removed.
13588         * bindings/v8/custom/V8ScriptProfileNodeCustom.cpp:
13589         * inspector/ScriptProfileNode.idl:
13590
13591 2012-11-12  Kentaro Hara  <haraken@chromium.org>
13592
13593         [V8] Performance::memory getter needs not to be [Custom]
13594         https://bugs.webkit.org/show_bug.cgi?id=101890
13595
13596         Reviewed by Adam Barth.
13597
13598         No tests. No change in behavior.
13599
13600         * UseV8.cmake:
13601         * WebCore.gypi:
13602         * bindings/v8/custom/V8PerformanceCustom.cpp: Removed.
13603         * page/Performance.idl:
13604
13605 2012-11-12  Kentaro Hara  <haraken@chromium.org>
13606
13607         [V8][JSC] HTMLOptionsCollection::length needs not to be [Custom]
13608         https://bugs.webkit.org/show_bug.cgi?id=101888
13609
13610         Reviewed by Adam Barth.
13611
13612         We can remove [Custom] from getter. It is possible to remove [Custom]
13613         from setter, but it changes the current behavior.
13614         (I think the current implementation of the setter is wrong.
13615         I'll fix it in another patch.)
13616
13617         No tests. No change in behavior.
13618
13619         * bindings/js/JSHTMLOptionsCollectionCustom.cpp:
13620         * bindings/v8/custom/V8HTMLOptionsCollectionCustom.cpp:
13621         * html/HTMLOptionsCollection.idl:
13622
13623 2012-11-12  Yael Aharon  <yael.aharon@intel.com>
13624
13625         [EFL][WK2][AC] Black screen when applications use software backend.
13626         https://bugs.webkit.org/show_bug.cgi?id=101659
13627
13628         Reviewed by Kenneth Rohde Christiansen.
13629
13630         Add a utility method to create a cairo_surface_t from a given Evas_Object_Image.
13631
13632         No new tests. Will be covered when running existing tests without enabling openGL.
13633
13634         * platform/graphics/efl/CairoUtilitiesEfl.cpp:
13635         (WebCore::createSurfaceForImage):
13636         (WebCore):
13637         * platform/graphics/efl/CairoUtilitiesEfl.h:
13638         (WebCore):
13639
13640 2012-11-12  Carlos Garcia Campos  <cgarcia@igalia.com>
13641
13642         Unreviewed. Fix make distcheck.
13643
13644         * GNUmakefile.am: Remove editing from IDL_PATH since it doesn't
13645         contain idl files anymore.
13646         * GNUmakefile.list.am: Add missing header files.
13647
13648 2012-11-12  Tommy Widenflycht  <tommyw@google.com>
13649
13650         MediaStream API: Make sure that MediaConstraints only has optional and mandatory at the top level
13651         https://bugs.webkit.org/show_bug.cgi?id=101733
13652
13653         Reviewed by Jochen Eisinger.
13654
13655         This patch adds better verification to MediaConstraintsImpl.
13656
13657         Existing tests expanded to cover this change.
13658
13659         * Modules/mediastream/MediaConstraintsImpl.cpp:
13660         (WebCore::MediaConstraintsImpl::initialize):
13661
13662 2012-11-12  Sheriff Bot  <webkit.review.bot@gmail.com>
13663
13664         Unreviewed, rolling out r134223.
13665         http://trac.webkit.org/changeset/134223
13666         https://bugs.webkit.org/show_bug.cgi?id=101939
13667
13668         Breaks inspector tests (Requested by pfeldman on #webkit).
13669
13670         * inspector/front-end/DefaultTextEditor.js:
13671         (WebInspector.TextEditorChunkedPanel.prototype._repaintAll):
13672         (WebInspector.TextEditorMainPanel):
13673         (WebInspector.TextEditorMainPanel.prototype.markAndRevealRange):
13674         (WebInspector.TextEditorMainPanel.prototype.beginDomUpdates):
13675         (WebInspector.TextEditorMainPanel.prototype.endDomUpdates):
13676         (WebInspector.TextEditorMainPanel.prototype._paintScheduledLines):
13677         (WebInspector.TextEditorMainPanel.prototype._paintLineChunks):
13678         (WebInspector.TextEditorMainPanel.prototype._paintLine):
13679         (WebInspector.TextEditorMainPanel.prototype._insertSpanBefore):
13680         (WebInspector.TextEditorMainPanel.prototype._handleDOMUpdates):
13681         (WebInspector.TextEditorMainPanel.prototype._applyDomUpdates):
13682         * inspector/front-end/externs.js:
13683         * inspector/front-end/textEditor.css:
13684
13685 2012-11-12  Allan Sandfeld Jensen  <allan.jensen@digia.com>
13686
13687         [Qt] Support ResourceRequest's setTimeoutInterval
13688         https://bugs.webkit.org/show_bug.cgi?id=101731
13689
13690         Reviewed by Simon Hausmann.
13691
13692         Establish a timeout and return the correct error when it is triggered.
13693
13694         Tested by existing http/tests/xmlhttprequest/timeout tests.
13695
13696         * platform/network/ResourceRequestBase.cpp:
13697         * platform/network/qt/QNetworkReplyHandler.cpp:
13698         (WebCore::QNetworkReplyHandler::release):
13699         (WebCore::QNetworkReplyHandler::finish):
13700         (WebCore::QNetworkReplyHandler::timeout):
13701         (WebCore::QNetworkReplyHandler::timerEvent):
13702         (WebCore::QNetworkReplyHandler::start):
13703         * platform/network/qt/QNetworkReplyHandler.h:
13704         (QNetworkReplyHandler):
13705
13706 2012-11-12  Sheriff Bot  <webkit.review.bot@gmail.com>
13707
13708         Unreviewed, rolling out r134224.
13709         http://trac.webkit.org/changeset/134224
13710         https://bugs.webkit.org/show_bug.cgi?id=101937
13711
13712         asserting on bawts (Requested by kling on #webkit).
13713
13714         * rendering/style/RenderStyle.cpp:
13715         (WebCore::RenderStyle::diff):
13716         (WebCore::RenderStyle::setColor):
13717         (WebCore::RenderStyle::setVisitedLinkColor):
13718         * rendering/style/RenderStyle.h:
13719         * rendering/style/StyleBackgroundData.cpp:
13720         (WebCore::StyleBackgroundData::StyleBackgroundData):
13721         * rendering/style/StyleBackgroundData.h:
13722         (WebCore::StyleBackgroundData::color):
13723         (StyleBackgroundData):
13724         * rendering/style/StyleInheritedData.cpp:
13725         (WebCore::StyleInheritedData::StyleInheritedData):
13726         * rendering/style/StyleInheritedData.h:
13727         (StyleInheritedData):
13728         * rendering/style/StyleMultiColData.cpp:
13729         (WebCore::StyleMultiColData::StyleMultiColData):
13730         * rendering/style/StyleMultiColData.h:
13731         (StyleMultiColData):
13732         * rendering/style/StyleRareInheritedData.cpp:
13733         (SameSizeAsStyleRareInheritedData):
13734         (WebCore::StyleRareInheritedData::StyleRareInheritedData):
13735         (WebCore::StyleRareInheritedData::operator==):
13736         * rendering/style/StyleRareInheritedData.h:
13737         (WebCore):
13738         (StyleRareInheritedData):
13739         * rendering/style/StyleRareNonInheritedData.cpp:
13740         (WebCore::StyleRareNonInheritedData::StyleRareNonInheritedData):
13741         (WebCore::StyleRareNonInheritedData::operator==):
13742         * rendering/style/StyleRareNonInheritedData.h:
13743         (StyleRareNonInheritedData):
13744
13745 2012-11-12  Tiancheng Jiang  <tijiang@rim.com>
13746
13747         [BlackBerry] Update BB10 form theme.
13748         https://bugs.webkit.org/show_bug.cgi?id=100760
13749
13750         Reviewed by Rob Buis.
13751
13752         RIM PR 236993
13753         Internally Reviewed by Jeff Rogers.
13754         Use slide and paint method on slider range and media controls.
13755
13756         * platform/blackberry/RenderThemeBlackBerry.cpp:
13757         (WebCore):
13758         (WebCore::drawThreeSliceHorizontal):
13759         (WebCore::drawThreeSliceVertical):
13760         (WebCore::RenderThemeBlackBerry::paintSliderTrackRect):
13761         (WebCore::RenderThemeBlackBerry::paintMediaSliderTrack):
13762         (WebCore::RenderThemeBlackBerry::paintMediaSliderThumb):
13763         (WebCore::RenderThemeBlackBerry::paintMediaVolumeSliderTrack):
13764         * platform/blackberry/RenderThemeBlackBerry.h:
13765         (RenderThemeBlackBerry):
13766
13767 2012-11-12  Kent Tamura  <tkent@chromium.org>
13768
13769         Refactoring: set read-only values on layout in DateTimeEditElement
13770         https://bugs.webkit.org/show_bug.cgi?id=101916
13771
13772         Reviewed by Kentaro Hara.
13773
13774         We have always updated read-only values when we set an empty value or
13775         DateTimeFieldsState. It has wasted CPU time because such read-only
13776         values are never updated after layout() essentially. So, we set
13777         read-only values in DateTimeEditBuilder used by layout(), and remove
13778         dateForReadOnlyField arguments of setEmptyValue and
13779         setValueAsDateTimeFieldsState.
13780
13781         No new tests. This should not make behavior changes.
13782
13783         * html/BaseMultipleFieldsDateAndTimeInputType.cpp:
13784         (WebCore::BaseMultipleFieldsDateAndTimeInputType::restoreFormControlState):
13785         We removed dateForReadOnlyField argument because read-only values are
13786         already set in DateTimeFieldElement::layout().
13787         * html/shadow/DateTimeEditElement.cpp:
13788         (WebCore::DateTimeEditBuilder::visitField):
13789         Set a value to a read-only minute/second/millisecond field while
13790         building UI elements.
13791         Also, changed variable types for millisecond and second fields to
13792         RefPtr<DateTimeNumericFieldElement> because we'd like to call
13793         setValueAsDate, which is private in DateTimeMillisecondFieldElement and
13794         DateTimeSecondFieldElement
13795         (WebCore::DateTimeEditElement::setValueAsDateTimeFieldsState):
13796         We removed dateForReadOnlyField argument because read-only values are
13797         already set in DateTimeFieldElement::layout().
13798         (WebCore::DateTimeEditElement::setEmptyValue): Ditto.
13799         * html/shadow/DateTimeEditElement.h:
13800         (DateTimeEditElement):
13801         Removed dateForReadOnlyField argument for setValueAsDateTimeFieldsState.
13802
13803         * html/shadow/DateTimeFieldElement.cpp:
13804         (WebCore::DateTimeFieldElement::defaultKeyboardEventHandler):
13805         We removed dateForReadOnlyField argument because read-only values are
13806         already set in DateTimeFieldElement::layout().
13807         * html/shadow/DateTimeFieldElement.h:
13808         (DateTimeFieldElement): Ditto.
13809
13810         * html/shadow/DateTimeFieldElements.cpp: Ditto.
13811         * html/shadow/DateTimeFieldElements.h: Ditto.
13812         * html/shadow/DateTimeNumericFieldElement.cpp:
13813         (WebCore::DateTimeNumericFieldElement::setEmptyValue):
13814         It should do nothing if it is read-only because a read-only value was
13815         already set just after construction.
13816         * html/shadow/DateTimeNumericFieldElement.h:
13817         (DateTimeNumericFieldElement):
13818         Removed dateForReadOnlyField argument of setEmptyValue.
13819         * html/shadow/DateTimeSymbolicFieldElement.cpp:
13820         (WebCore::DateTimeSymbolicFieldElement::setEmptyValue): Ditto.
13821         * html/shadow/DateTimeSymbolicFieldElement.h:
13822         (DateTimeSymbolicFieldElement): Ditto.
13823
13824 2012-11-12  Tiancheng Jiang  <tijiang@rim.com>
13825
13826         [BlackBerry] Update BB10 form theme.
13827         https://bugs.webkit.org/show_bug.cgi?id=100760
13828
13829         Reviewed by Rob Buis.
13830
13831         RIM PR 236993
13832         Internally Reviewed by Jeff Rogers.
13833         Enable GL slider.
13834
13835         * platform/blackberry/RenderThemeBlackBerry.cpp:
13836         (WebCore::drawThreeSlice):
13837         (WebCore):
13838         (WebCore::RenderThemeBlackBerry::paintSliderTrackRect):
13839         (WebCore::RenderThemeBlackBerry::paintSliderThumb):
13840
13841 2012-11-12  Kentaro Hara  <haraken@chromium.org>
13842
13843         [V8][JSC] HTMLElement::itemValue() needs not to be custom
13844         https://bugs.webkit.org/show_bug.cgi?id=101882
13845
13846         Reviewed by Adam Barth.
13847
13848         We can remove a [Custom] IDL attribute.
13849
13850         No tests. No change in behavior.
13851
13852         * bindings/js/JSHTMLElementCustom.cpp:
13853         * bindings/v8/custom/V8HTMLElementCustom.cpp:
13854         * html/HTMLElement.idl:
13855
13856 2012-11-12  Andreas Kling  <kling@webkit.org>
13857
13858         RenderStyle: Pack Color members tighter in substructures.
13859         <http://webkit.org/b/101860>
13860
13861         Reviewed by Antti Koivisto.
13862
13863         For RenderStyle substructures (StyleInheritedData, et al.), unfold all WebCore::Color
13864         members into RGBA32/bool variables OR just an RGBA32 if the color can never be invalid.
13865
13866         Memory saved per instance:
13867
13868             - StyleMultiColData:          4 bytes
13869             - StyleBackgroundData:        8 bytes
13870             - StyleInheritedData:         8 bytes
13871             - StyleRareInheritedData:    24 bytes
13872             - StyleRareNonInheritedData: 24 bytes
13873
13874         323kB progression on Membuster3.
13875
13876         * rendering/style/RenderStyle.cpp:
13877         (WebCore::RenderStyle::diff):
13878         (WebCore::RenderStyle::setColor):
13879         (WebCore::RenderStyle::setVisitedLinkColor):
13880         (WebCore::RenderStyle::setVisitedLinkColumnRuleColor):
13881         (WebCore::RenderStyle::setBackgroundColor):
13882         * rendering/style/RenderStyle.h:
13883         * rendering/style/StyleBackgroundData.cpp:
13884         (WebCore::StyleBackgroundData::StyleBackgroundData):
13885         * rendering/style/StyleBackgroundData.h:
13886         (WebCore::StyleBackgroundData::color):
13887         (StyleBackgroundData):
13888         * rendering/style/StyleInheritedData.cpp:
13889         (WebCore::StyleInheritedData::StyleInheritedData):
13890         * rendering/style/StyleInheritedData.h:
13891         (StyleInheritedData):
13892         * rendering/style/StyleMultiColData.cpp:
13893         (WebCore::StyleMultiColData::StyleMultiColData):
13894         (WebCore::StyleMultiColData::setVisitedLinkColumnRuleColor):
13895         * rendering/style/StyleMultiColData.h:
13896         (StyleMultiColData):
13897         (WebCore::StyleMultiColData::visitedLinkColumnRuleColor):
13898         * rendering/style/StyleRareInheritedData.cpp:
13899         (SameSizeAsStyleRareInheritedData):
13900         (WebCore::StyleRareInheritedData::StyleRareInheritedData):
13901         (WebCore::StyleRareInheritedData::operator==):
13902         (WebCore::StyleRareInheritedData::setTextStrokeColor):
13903         (WebCore::StyleRareInheritedData::setTextFillColor):
13904         (WebCore::StyleRareInheritedData::setTextEmphasisColor):
13905         (WebCore::StyleRareInheritedData::setVisitedLinkTextStrokeColor):
13906         (WebCore::StyleRareInheritedData::setVisitedLinkTextFillColor):
13907         (WebCore::StyleRareInheritedData::setVisitedLinkTextEmphasisColor):
13908         * rendering/style/StyleRareInheritedData.h:
13909         (StyleRareInheritedData):
13910         (WebCore::StyleRareInheritedData::textStrokeColor):
13911         (WebCore::StyleRareInheritedData::textFillColor):
13912         (WebCore::StyleRareInheritedData::textEmphasisColor):
13913         (WebCore::StyleRareInheritedData::visitedLinkTextStrokeColor):
13914         (WebCore::StyleRareInheritedData::visitedLinkTextFillColor):
13915         (WebCore::StyleRareInheritedData::visitedLinkTextEmphasisColor):
13916         * rendering/style/StyleRareNonInheritedData.cpp:
13917         (WebCore::StyleRareNonInheritedData::StyleRareNonInheritedData):
13918         (WebCore::StyleRareNonInheritedData::operator==):
13919         (WebCore::StyleRareNonInheritedData::setVisitedLinkBorderLeftColor):
13920         (WebCore::StyleRareNonInheritedData::setVisitedLinkBorderRightColor):
13921         (WebCore::StyleRareNonInheritedData::setVisitedLinkBorderTopColor):
13922         (WebCore::StyleRareNonInheritedData::setVisitedLinkBorderBottomColor):
13923         (WebCore::StyleRareNonInheritedData::setVisitedLinkOutlineColor):
13924         (WebCore::StyleRareNonInheritedData::setVisitedLinkBackgroundColor):
13925         * rendering/style/StyleRareNonInheritedData.h:
13926         (WebCore::StyleRareNonInheritedData::visitedLinkBackgroundColor):
13927         (WebCore::StyleRareNonInheritedData::visitedLinkOutlineColor):
13928         (WebCore::StyleRareNonInheritedData::visitedLinkBorderLeftColor):
13929         (WebCore::StyleRareNonInheritedData::visitedLinkBorderRightColor):
13930         (WebCore::StyleRareNonInheritedData::visitedLinkBorderTopColor):
13931         (WebCore::StyleRareNonInheritedData::visitedLinkBorderBottomColor):
13932         (StyleRareNonInheritedData):
13933
13934 2012-11-12  Pavel Feldman  <pfeldman@chromium.org>
13935
13936         Web Inspector: migrate text editor to mutation observers
13937         https://bugs.webkit.org/show_bug.cgi?id=101841
13938
13939         Reviewed by Vsevolod Vlasov.
13940
13941         Otherwise, we miss notifications on the removed lines.
13942
13943         * inspector/front-end/DefaultTextEditor.js:
13944         (WebInspector.TextEditorMainPanel):
13945         (WebInspector.TextEditorMainPanel.prototype.beginDomUpdates):
13946         (WebInspector.TextEditorMainPanel.prototype.endDomUpdates):
13947         (WebInspector.TextEditorMainPanel.prototype._handleMutations):
13948         (WebInspector.TextEditorMainPanel.prototype._handleMutation):
13949         * inspector/front-end/externs.js:
13950         (WebKitMutation):
13951         (WebKitMutationObserver.prototype.observe):
13952         (WebKitMutationObserver.prototype.disconnect):
13953
13954 2012-11-12  Allan Sandfeld Jensen  <sandfeld@kde.org>
13955
13956         [Qt] Flash-plugin starts with wrong width
13957         https://bugs.webkit.org/show_bug.cgi?id=101836
13958
13959         Reviewed by Simon Hausmann.
13960
13961         Defer the setWindow call, so that the one time it is called it will have its final size.
13962
13963         * plugins/PluginPackage.cpp:
13964         (WebCore::PluginPackage::determineQuirks):
13965
13966 2012-11-12  Tommy Widenflycht  <tommyw@google.com>
13967
13968         Remove the V8 custom code for WebSockets constructor
13969         https://bugs.webkit.org/show_bug.cgi?id=100801
13970
13971         Reviewed by Kentaro Hara.
13972
13973         This patch does the following:
13974
13975         1) Modifies the V8 code generator to support overloaded constructors,
13976            the JS generator is fixed to work as before. Proper support for JS will come later.
13977
13978         2) Modifies WebSocket.h/.cpp for the new constructors.
13979
13980         Tested by running WebSockets layout tests.
13981
13982         * Modules/websockets/WebSocket.cpp:
13983         (WebCore::WebSocket::create):
13984         (WebCore):
13985         * Modules/websockets/WebSocket.h:
13986         (WebSocket):
13987         * Modules/websockets/WebSocket.idl:
13988         * bindings/scripts/CodeGeneratorJS.pm:
13989         (GenerateConstructorDefinition):
13990         * bindings/scripts/CodeGeneratorV8.pm:
13991         (GenerateHeader):
13992         (GenerateOverloadedConstructorCallback):
13993         (GenerateSingleConstructorCallback):
13994         (GenerateConstructorCallback):
13995         (GenerateImplementation):
13996         * bindings/scripts/IDLParser.pm:
13997         (copyAttributes):
13998         (parseExtendedAttributeList):
13999         (parseExtendedAttributes):
14000         (applyExtendedAttributeList):
14001         * bindings/scripts/IDLStructure.pm:
14002         * bindings/scripts/test/CPP/WebDOMTestOverloadedConstructors.cpp: Added.
14003         (WebDOMTestOverloadedConstructors::WebDOMTestOverloadedConstructorsPrivate::WebDOMTestOverloadedConstructorsPrivate):
14004         (WebDOMTestOverloadedConstructors::WebDOMTestOverloadedConstructorsPrivate):
14005         (WebDOMTestOverloadedConstructors::WebDOMTestOverloadedConstructors):
14006         (WebDOMTestOverloadedConstructors::operator=):
14007         (WebDOMTestOverloadedConstructors::impl):
14008         (WebDOMTestOverloadedConstructors::~WebDOMTestOverloadedConstructors):
14009         (toWebCore):
14010         (toWebKit):
14011         * bindings/scripts/test/CPP/WebDOMTestOverloadedConstructors.h: Added.
14012         (WebCore):
14013         (WebDOMTestOverloadedConstructors):
14014         * bindings/scripts/test/GObject/WebKitDOMTestOverloadedConstructors.cpp: Added.
14015         (WebKit):
14016         (WebKit::kit):
14017         (WebKit::core):
14018         (WebKit::wrapTestOverloadedConstructors):
14019         (webkit_dom_test_overloaded_constructors_finalize):
14020         (webkit_dom_test_overloaded_constructors_set_property):
14021         (webkit_dom_test_overloaded_constructors_get_property):
14022         (webkit_dom_test_overloaded_constructors_constructed):
14023         (webkit_dom_test_overloaded_constructors_class_init):
14024         (webkit_dom_test_overloaded_constructors_init):
14025         * bindings/scripts/test/GObject/WebKitDOMTestOverloadedConstructors.h: Added.
14026         (_WebKitDOMTestOverloadedConstructors):
14027         (_WebKitDOMTestOverloadedConstructorsClass):
14028         * bindings/scripts/test/GObject/WebKitDOMTestOverloadedConstructorsPrivate.h: Added.
14029         (WebKit):
14030         * bindings/scripts/test/JS/JSTestOverloadedConstructors.cpp: Added.
14031         (WebCore):
14032         (WebCore::JSTestOverloadedConstructorsConstructor::JSTestOverloadedConstructorsConstructor):
14033         (WebCore::JSTestOverloadedConstructorsConstructor::finishCreation):
14034         (WebCore::JSTestOverloadedConstructorsConstructor::getOwnPropertySlot):
14035         (WebCore::JSTestOverloadedConstructorsConstructor::getOwnPropertyDescriptor):
14036         (WebCore::JSTestOverloadedConstructorsConstructor::constructJSTestOverloadedConstructors):
14037         (WebCore::JSTestOverloadedConstructorsConstructor::getConstructData):
14038         (WebCore::JSTestOverloadedConstructorsPrototype::self):
14039         (WebCore::JSTestOverloadedConstructors::JSTestOverloadedConstructors):
14040         (WebCore::JSTestOverloadedConstructors::finishCreation):
14041         (WebCore::JSTestOverloadedConstructors::createPrototype):
14042         (WebCore::JSTestOverloadedConstructors::destroy):
14043         (WebCore::JSTestOverloadedConstructors::~JSTestOverloadedConstructors):
14044         (WebCore::JSTestOverloadedConstructors::getOwnPropertySlot):
14045         (WebCore::JSTestOverloadedConstructors::getOwnPropertyDescriptor):
14046         (WebCore::jsTestOverloadedConstructorsConstructor):
14047         (WebCore::JSTestOverloadedConstructors::getConstructor):
14048         (WebCore::isObservable):
14049         (WebCore::JSTestOverloadedConstructorsOwner::isReachableFromOpaqueRoots):
14050         (WebCore::JSTestOverloadedConstructorsOwner::finalize):
14051         (WebCore::toJS):
14052         (WebCore::toTestOverloadedConstructors):
14053         * bindings/scripts/test/JS/JSTestOverloadedConstructors.h: Added.
14054         (WebCore):
14055         (JSTestOverloadedConstructors):
14056         (WebCore::JSTestOverloadedConstructors::create):
14057         (WebCore::JSTestOverloadedConstructors::createStructure):
14058         (WebCore::JSTestOverloadedConstructors::impl):
14059         (WebCore::JSTestOverloadedConstructors::releaseImpl):
14060         (WebCore::JSTestOverloadedConstructors::releaseImplIfNotNull):
14061         (JSTestOverloadedConstructorsOwner):
14062         (WebCore::wrapperOwner):
14063         (WebCore::wrapperContext):
14064         (JSTestOverloadedConstructorsPrototype):
14065         (WebCore::JSTestOverloadedConstructorsPrototype::create):
14066         (WebCore::JSTestOverloadedConstructorsPrototype::createStructure):
14067         (WebCore::JSTestOverloadedConstructorsPrototype::JSTestOverloadedConstructorsPrototype):
14068         (JSTestOverloadedConstructorsConstructor):
14069         (WebCore::JSTestOverloadedConstructorsConstructor::create):
14070         (WebCore::JSTestOverloadedConstructorsConstructor::createStructure):
14071         * bindings/scripts/test/ObjC/DOMTestOverloadedConstructors.h: Added.
14072         * bindings/scripts/test/ObjC/DOMTestOverloadedConstructors.mm: Added.
14073         (-[DOMTestOverloadedConstructors dealloc]):
14074         (-[DOMTestOverloadedConstructors finalize]):
14075         (core):
14076         (kit):
14077         * bindings/scripts/test/ObjC/DOMTestOverloadedConstructorsInternal.h: Added.
14078         (WebCore):
14079         * bindings/scripts/test/TestOverloadedConstructors.idl: Copied from Source/WebCore/bindings/scripts/test/TestSerializedScriptValueInterface.idl.
14080         * bindings/scripts/test/TestSerializedScriptValueInterface.idl:
14081         * bindings/scripts/test/V8/V8TestOverloadedConstructors.cpp: Added.
14082         (WebCore):
14083         (TestOverloadedConstructorsV8Internal):
14084         (WebCore::TestOverloadedConstructorsV8Internal::V8_USE):
14085         (WebCore::V8TestOverloadedConstructors::constructor1Callback):
14086         (WebCore::V8TestOverloadedConstructors::constructor2Callback):
14087         (WebCore::V8TestOverloadedConstructors::constructor3Callback):
14088         (WebCore::V8TestOverloadedConstructors::constructor4Callback):
14089         (WebCore::V8TestOverloadedConstructors::constructorCallback):
14090         (WebCore::ConfigureV8TestOverloadedConstructorsTemplate):
14091         (WebCore::V8TestOverloadedConstructors::GetRawTemplate):
14092         (WebCore::V8TestOverloadedConstructors::GetTemplate):
14093         (WebCore::V8TestOverloadedConstructors::HasInstance):
14094         (WebCore::V8TestOverloadedConstructors::wrapSlow):
14095         (WebCore::V8TestOverloadedConstructors::derefObject):
14096         * bindings/scripts/test/V8/V8TestOverloadedConstructors.h: Added.
14097         (WebCore):
14098         (V8TestOverloadedConstructors):
14099         (WebCore::V8TestOverloadedConstructors::toNative):
14100         (WebCore::V8TestOverloadedConstructors::installPerContextProperties):
14101         (WebCore::V8TestOverloadedConstructors::installPerContextPrototypeProperties):
14102         (WebCore::V8TestOverloadedConstructors::wrap):
14103         (WebCore::toV8):
14104         * bindings/v8/custom/V8WebSocketCustom.cpp:
14105
14106 2012-11-12  Shinya Kawanaka  <shinyak@chromium.org>
14107
14108         [Refactoring] Create SelectRuleFeatureSet for collecting RuleFeatureSet for select attribute
14109         https://bugs.webkit.org/show_bug.cgi?id=101891
14110
14111         Reviewed by Hajime Morita.
14112
14113         We would like to have another class for RuleFeatureSet to collect 'select' attribute features,
14114         since it will have more features than the original RuleFeatureSet has.
14115
14116         Also, some methods of ElementShadow are removed and we provide a method to get SelectRuleFeatureSet itself.
14117
14118         No new tests, no change in behavior.
14119
14120         * CMakeLists.txt:
14121         * GNUmakefile.list.am:
14122         * Target.pri:
14123         * WebCore.gypi:
14124         * WebCore.vcproj/WebCore.vcproj:
14125         * WebCore.xcodeproj/project.pbxproj:
14126         * dom/ElementShadow.h:
14127         (ElementShadow):
14128         (WebCore::ElementShadow::selectRuleFeatureSet):
14129         (WebCore):
14130         * html/shadow/SelectRuleFeatureSet.cpp: Added.
14131         (WebCore):
14132         (WebCore::SelectRuleFeatureSet::SelectRuleFeatureSet):
14133         (WebCore::SelectRuleFeatureSet::add):
14134         (WebCore::SelectRuleFeatureSet::clear):
14135         (WebCore::SelectRuleFeatureSet::collectFeaturesFromSelector):
14136         * html/shadow/SelectRuleFeatureSet.h: Added.
14137         (WebCore):
14138         (SelectRuleFeatureSet):
14139         (WebCore::SelectRuleFeatureSet::hasSelectorForId):
14140         (WebCore::SelectRuleFeatureSet::hasSelectorForClass):
14141         (WebCore::SelectRuleFeatureSet::hasSelectorForAttribute):
14142         * testing/Internals.cpp:
14143         (WebCore::Internals::hasSelectorForIdInShadow):
14144         (WebCore::Internals::hasSelectorForClassInShadow):
14145         (WebCore::Internals::hasSelectorForAttributeInShadow):
14146
14147 2012-11-13  Keishi Hattori  <keishi@webkit.org>
14148
14149         Build fix for Chromium Android (caused by r134216)
14150
14151         Unreviewed.
14152
14153         No new tests.
14154
14155         * platform/text/PlatformLocale.cpp:
14156         (WebCore::Locale::formatDateTime):
14157
14158 2012-11-12  Keishi Hattori  <keishi@webkit.org>
14159
14160         Add support for week/month to Locale::formatDateTime()
14161         https://bugs.webkit.org/show_bug.cgi?id=101878
14162
14163         Reviewed by Kent Tamura.
14164
14165         Adding support for week/month to Locale::formatDateTime() in preparation for datalist support for <input type=week/month>.
14166
14167         Added Chromium tests LocaleMacTest.formatWeek and LocaleMacTest.formatMonth.
14168
14169         * platform/text/PlatformLocale.cpp:
14170         (WebCore::DateTimeStringBuilder::visitField):
14171         (WebCore::Locale::formatDateTime): Support week and month types.
14172
14173 2012-11-12  Allan Sandfeld Jensen  <allan.jensen@digia.com>
14174
14175         [Qt] Can not load MHTML documents
14176         https://bugs.webkit.org/show_bug.cgi?id=101765
14177
14178         Reviewed by Simon Hausmann.
14179
14180         Recognize common MHTML extensions so that we can recognize MHTML tests on the file-system.
14181
14182         Tested by existing mhtml/ tests.
14183
14184         * platform/qt/MIMETypeRegistryQt.cpp:
14185         (WebCore):
14186
14187 2012-11-12  Andreas Kling  <akling@apple.com>
14188
14189         Tighten vector in ResourceRequestBase::setResponseContentDispositionEncodingFallbackArray().
14190         <http://webkit.org/b/101850>
14191
14192         Reviewed by Antti Koivisto.
14193
14194         Reserve the exact amount of space needed for m_responseContentDispositionEncodingFallbackArray.
14195         222kB progression on Membuster3.
14196
14197         * platform/network/ResourceRequestBase.cpp:
14198         (WebCore::ResourceRequestBase::setResponseContentDispositionEncodingFallbackArray):
14199
14200 2012-11-12  Tommy Widenflycht  <tommyw@google.com>
14201
14202         MediaStream API: Schedule the RTCDataChannel events to be triggered at idle state
14203         https://bugs.webkit.org/show_bug.cgi?id=101751
14204
14205         Reviewed by Adam Barth.
14206
14207         This patch queues the events until the JS interpreter is in an idle state.
14208
14209         Existing tests cover this patch.
14210
14211         * Modules/mediastream/RTCDataChannel.cpp:
14212         (WebCore::RTCDataChannel::RTCDataChannel):
14213         (WebCore::RTCDataChannel::readyStateChanged):
14214         (WebCore::RTCDataChannel::dataArrived):
14215         (WebCore::RTCDataChannel::error):
14216         (WebCore::RTCDataChannel::scheduleDispatchEvent):
14217         (WebCore):
14218         (WebCore::RTCDataChannel::scheduledEventTimerFired):
14219         * Modules/mediastream/RTCDataChannel.h:
14220         (RTCDataChannel):
14221         * platform/chromium/support/WebRTCDataChannel.cpp:
14222         (WebKit::WebRTCDataChannel::setBufferedAmount):
14223         (WebKit::WebRTCDataChannel::readyStateChanged):
14224         (WebKit::WebRTCDataChannel::dataArrived):
14225         (WebKit::WebRTCDataChannel::error):
14226
14227 2012-11-12  Kunihiko Sakamoto  <ksakamoto@chromium.org>
14228
14229         Remove HTMLInputElement dependency from PickerIndicatorElement
14230         https://bugs.webkit.org/show_bug.cgi?id=101913
14231
14232         Reviewed by Kent Tamura.
14233
14234         Introduced PickerIndicatorOwner interface that replaces the role of hostInput() in
14235         PickerIndicatorElement. It makes easier to add interactions between picker indicator
14236         and its owner without having to add functions to HTMLInputElement.
14237
14238         No new tests. This is just a refactor.
14239
14240         * html/BaseMultipleFieldsDateAndTimeInputType.cpp:
14241         (WebCore::BaseMultipleFieldsDateAndTimeInputType::isPickerIndicatorOwnerDisabledOrReadOnly): Added.
14242         (WebCore):
14243         (WebCore::BaseMultipleFieldsDateAndTimeInputType::pickerIndicatorChooseValue): Added.
14244         (WebCore::BaseMultipleFieldsDateAndTimeInputType::setupDateTimeChooserParameters): Added.
14245         (WebCore::BaseMultipleFieldsDateAndTimeInputType::~BaseMultipleFieldsDateAndTimeInputType):
14246         (WebCore::BaseMultipleFieldsDateAndTimeInputType::createShadowSubtree):
14247         (WebCore::BaseMultipleFieldsDateAndTimeInputType::destroyShadowSubtree):
14248         * html/BaseMultipleFieldsDateAndTimeInputType.h:
14249         (WebCore):
14250         (BaseMultipleFieldsDateAndTimeInputType): Implements PickerIndicatorOwner.
14251         * html/shadow/PickerIndicatorElement.cpp: Replaced all the use of hostInput() by using PickerIndicatorOwner.
14252         (WebCore::PickerIndicatorElement::PickerIndicatorElement):
14253         (WebCore::PickerIndicatorElement::create):
14254         (WebCore::PickerIndicatorElement::defaultEventHandler):
14255         (WebCore::PickerIndicatorElement::willRespondToMouseClickEvents):
14256         (WebCore::PickerIndicatorElement::didChooseValue):
14257         (WebCore::PickerIndicatorElement::openPopup):
14258         * html/shadow/PickerIndicatorElement.h:
14259         (PickerIndicatorElement): Added a PickerIndicatorOwner member.
14260         (PickerIndicatorOwner): An interface class for communicating picker indicator and its owner.
14261         (WebCore::PickerIndicatorElement::PickerIndicatorOwner::~PickerIndicatorOwner):
14262         (WebCore::PickerIndicatorElement::removePickerIndicatorOwner):
14263
14264 2012-11-12  Mihnea Ovidenie  <mihnea@adobe.com>
14265
14266         [CSSRegions]Add support for text-shadow in region styling
14267         https://bugs.webkit.org/show_bug.cgi?id=94472
14268
14269         Reviewed by David Hyatt.
14270
14271         Original patch by Andrei Onea.
14272         Add support for text-shadow in region styling (@-webkit-region rule).
14273         In addition to the previously supported region styling properties (background-color and color),
14274         text-shadow requires the computation of an element style in region at layout time.
14275
14276         This patch adds a new method on RenderRegion - ensureRegionStyleForObject - that
14277         can be used to retrieve the object style in region (if already cached) or to compute it
14278         on the spot. When computing the object style in region, we need to compute the style in region
14279         also for the object ancestor, up to the content nodes.
14280
14281         This patch also refactors the way styles in region are computed and stored, because
14282         we can compute the style in region not only at paint time, but also at layout time.
14283
14284         Test: fast/regions/region-style-text-shadow.html
14285
14286         * css/StyleResolver.cpp:
14287         (WebCore::StyleResolver::isValidRegionStyleProperty):
14288         Allow text-shadow to be used in region styling.
14289         * rendering/InlineBox.cpp:
14290         (WebCore::InlineBox::styleInRegion):
14291         Retrieve the region style for an InlineBox's renderer, given its RenderRegion.
14292         Compute the style in region if not computed yet.
14293         (WebCore::InlineBox::regionDuringLayout):
14294         Retrieve the region in which an InlineBox is being flowed.
14295         * rendering/InlineBox.h:
14296         * rendering/InlineFlowBox.cpp: Take region styling into account.
14297         (WebCore::InlineFlowBox::addToLine):
14298         (WebCore::InlineFlowBox::addTextBoxVisualOverflow):
14299         * rendering/RenderRegion.cpp:
14300         (WebCore::RenderRegion::setRegionObjectsRegionStyle):
14301         (WebCore::canCacheObjectStyleInRegion):
14302         Test if we can cache the computed style in region.
14303         (WebCore::RenderRegion::restoreRegionObjectsOriginalStyle):
14304         (WebCore::RenderRegion::computeStyleInRegion):
14305         (WebCore::RenderRegion::setChildrenStyleInRegion):
14306         (WebCore::setObjectHasBoxDecorationsFlag):
14307         (WebCore::RenderRegion::setObjectStyleInRegion):
14308         (WebCore::RenderRegion::clearObjectStyleInRegion):
14309         (WebCore::RenderRegion::ensureRegionStyleForObject):
14310         * rendering/RenderRegion.h:
14311
14312 2012-11-12  Sheriff Bot  <webkit.review.bot@gmail.com>
14313
14314         Unreviewed, rolling out r134154.
14315         http://trac.webkit.org/changeset/134154
14316         https://bugs.webkit.org/show_bug.cgi?id=101919
14317
14318         Causes plenty of crashes on GTK and Apple Win builders
14319         (Requested by zdobersek on #webkit).
14320
14321         * css/mediaControls.css:
14322         * css/mediaControlsQuickTime.css:
14323         (audio::-webkit-media-controls-toggle-closed-captions-button, video::-webkit-media-controls-toggle-closed-captions-button):
14324         (audio::-webkit-media-controls-volume-slider-mute-button, video::-webkit-media-controls-volume-slider-mute-button):
14325         * html/shadow/MediaControlElements.cpp:
14326         (WebCore::MediaControlToggleClosedCaptionsButtonElement::MediaControlToggleClosedCaptionsButtonElement):
14327         (WebCore::MediaControlToggleClosedCaptionsButtonElement::create):
14328         (WebCore::MediaControlToggleClosedCaptionsButtonElement::defaultEventHandler):
14329         (WebCore::MediaControlToggleClosedCaptionsButtonElement::updateDisplayType):
14330         (WebCore::MediaControlToggleClosedCaptionsButtonElement::shadowPseudoId):
14331         * html/shadow/MediaControlElements.h:
14332         (MediaControlElement):
14333         (MediaControlToggleClosedCaptionsButtonElement):
14334         * html/shadow/MediaControlRootElement.cpp:
14335         (WebCore::MediaControlRootElement::MediaControlRootElement):
14336         (WebCore::MediaControlRootElement::create):
14337         (WebCore::MediaControlRootElement::setMediaController):
14338         (WebCore::MediaControlRootElement::hide):
14339         (WebCore::MediaControlRootElement::makeTransparent):
14340         (WebCore::MediaControlRootElement::reset):
14341         (WebCore::MediaControlRootElement::reportedError):
14342         * html/shadow/MediaControlRootElement.h:
14343         (WebCore):
14344         (MediaControlRootElement):
14345         * html/shadow/MediaControlRootElementChromium.cpp:
14346         (WebCore::MediaControlRootElementChromium::initializeControls):
14347         * html/shadow/MediaControls.h:
14348         (MediaControls):
14349         * platform/Language.cpp:
14350         (WebCore):
14351         * platform/Language.h:
14352         (WebCore):
14353         * rendering/RenderMediaControls.cpp:
14354         (WebCore::RenderMediaControls::paintMediaControlsPart):
14355         * rendering/RenderMediaControlsChromium.cpp:
14356         (WebCore::RenderMediaControlsChromium::paintMediaControlsPart):
14357
14358 2012-11-12  Mike West  <mkwst@chromium.org>
14359
14360         'for (x in y)' requires 'var' declaration in ConsoleMessage.js
14361         https://bugs.webkit.org/show_bug.cgi?id=101908
14362
14363         Reviewed by Pavel Feldman.
14364
14365         r134166 should have included a 'var' declaration in its 'for (x in y)'
14366         loop. This patch adds the missing 'var' in order to prevent leakage into
14367         the global context.
14368
14369         * inspector/front-end/ConsoleMessage.js:
14370         (WebInspector.ConsoleMessageImpl.prototype.append):
14371         (WebInspector.ConsoleMessageImpl.prototype._formatWithSubstitutionString):
14372
14373 2012-11-12  Zeno Albisser  <zeno@webkit.org>
14374
14375         [Qt] MiniBrowser should not strongly depend on QtTestSupport.
14376         https://bugs.webkit.org/show_bug.cgi?id=101775
14377
14378         Introducing HAVE(QTTESTSUPPORT) to allow building
14379         MiniBrowser without QtTestSupport.
14380         This is necessary when using a production build.
14381
14382         Reviewed by Tor Arne Vestbø.
14383
14384         * Target.pri:
14385         * platform/qt/QtTestSupport.h:
14386
14387 2012-11-12  Pavel Feldman  <pfeldman@chromium.org>
14388
14389         Web Inspector: wasShown is called twice when show() is called from within wasShown
14390         https://bugs.webkit.org/show_bug.cgi?id=101858
14391
14392         Reviewed by Vsevolod Vlasov.
14393
14394         When we attach views lazily from within wasShown, the views were getting wasShown notification twice.
14395         We now mute one of them.
14396
14397         * inspector/front-end/View.js:
14398         (WebInspector.View):
14399         (WebInspector.View.prototype._inNotification):
14400         (WebInspector.View.prototype._parentIsShowing):
14401         (WebInspector.View.prototype._callOnVisibleChildren):
14402         (WebInspector.View.prototype._processWasShown):
14403         (WebInspector.View.prototype._processWillHide):
14404         (WebInspector.View.prototype._processOnResize):
14405         (WebInspector.View.prototype._notify):
14406         (WebInspector.View.prototype.show):
14407
14408 2012-11-12  Ryosuke Niwa  <rniwa@webkit.org>
14409
14410         Build fix after r134191. Turns out that FrameView::performPostLayoutTasks calls FrameSelection::updateAppearance
14411         in the middle of a layout. So we can't have assertions in recomputeCaretRect and updateAppearance.
14412
14413         Furthermore, we can't update layout in updateAppearance. So do that in its call sites.
14414
14415         * editing/FrameSelection.cpp:
14416         (WebCore::FrameSelection::setSelection):
14417         (WebCore::FrameSelection::recomputeCaretRect):
14418         (WebCore::FrameSelection::updateAppearance):
14419         (WebCore::FrameSelection::setCaretVisibility):
14420
14421 2012-11-12  Shinya Kawanaka  <shinyak@chromium.org>
14422
14423         Don't update style when attaching in HTMLMeterElement
14424         https://bugs.webkit.org/show_bug.cgi?id=101714
14425
14426         Reviewed by Hajime Morita.
14427
14428         HTMLMeterElement was updating style when it's being attached. However, updating style when attaching
14429         can cause style-update prevention. The similar thing has already happened in Bug 100507.
14430
14431         Since we have already set the default value in creating ShadowDOM subtree, we don't need to update style actually.
14432
14433         Test: fast/dom/HTMLMeterElement/meter-bar-set-value.html
14434
14435         * html/HTMLMeterElement.cpp:
14436         * html/HTMLMeterElement.h:
14437         (HTMLMeterElement): Removed attach(). We don't need it.
14438
14439 2012-11-09  Ryosuke Niwa  <rniwa@webkit.org>
14440
14441         Multiple Layout Tests (e.g. fast/repaint/japanese-rl-selection-clear.html) is failing after r133840.
14442         https://bugs.webkit.org/show_bug.cgi?id=101547
14443
14444         Reviewed by Simon Fraser.
14445
14446         I overlooked the fact when the selection is null, we still have to invalidate the caret rect that
14447         previously existed. Revert the optimization added in r133840 to skip caret invalidation when new
14448         selection is null, and add a special method to be called by FrameLoader prior to destruction instead.
14449         This will let us avoid doing an extra layout upon destruction and not regress repaint tests.
14450
14451         Covered by existing tests.
14452
14453         * editing/FrameSelection.cpp:
14454         (WebCore::FrameSelection::setSelection): Added DoNotUpdateAppearance option.
14455         (WebCore::FrameSelection::prepareForDestruction): Added.
14456         (WebCore::FrameSelection::updateAppearance): Reverted the flawed optimization added in r133840.
14457         Also, don't update style before updating selection unless text caret is disabled since we always
14458         update the layout (including style) when text caret is enabled.
14459         * editing/FrameSelection.h:
14460         (FrameSelection):
14461         * loader/FrameLoader.cpp:
14462         (WebCore::FrameLoader::clear): Call prepareForDestruction instead of clear to avoid a layout.
14463
14464 2012-11-11  Dongwoo Joshua Im  <dw.im@samsung.com>
14465
14466         [CSS3] Parsing the property, text-align-last.
14467         https://bugs.webkit.org/show_bug.cgi?id=99439
14468
14469         Reviewed by Julien Chaffraix.
14470
14471         This patch implements the parsing side of the "text-align-last" property specified
14472         in CSS3 working draft, with "-webkit-" prefix, under ENABLE_CSS3_TEXT flag.
14473         Specification link : http://www.w3.org/TR/css3-text/#text-align-last
14474
14475         Tests: fast/css3-text/css3-text-align-last/getComputedStyle/getComputedStyle-text-align-last-inherited.html
14476                fast/css3-text/css3-text-align-last/getComputedStyle/getComputedStyle-text-align-last.html
14477
14478         * css/CSSComputedStyleDeclaration.cpp:
14479         (WebCore):
14480         (WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue): Get the value of the text-align-last property.
14481         * css/CSSParser.cpp:
14482         (WebCore::CSSParser::parseValue): Parse the value, and check whether it is a proper value which text-align-last can have.
14483         * css/CSSPrimitiveValueMappings.h:
14484         (WebCore):
14485         (WebCore::CSSPrimitiveValue::CSSPrimitiveValue):
14486         (WebCore::CSSPrimitiveValue::operator ETextAlignLast):
14487         * css/CSSProperty.cpp:
14488         (WebCore::CSSProperty::isInheritedProperty):
14489         * css/CSSPropertyNames.in: Add '-webkit-text-align-last' property.
14490         * css/StyleBuilder.cpp:
14491         (WebCore::StyleBuilder::StyleBuilder):
14492         * css/StylePropertySet.cpp:
14493         (WebCore):
14494         * css/StyleResolver.cpp:
14495         (WebCore::StyleResolver::applyProperty):
14496         * rendering/style/RenderStyle.h:
14497         * rendering/style/RenderStyleConstants.h:
14498         * rendering/style/StyleRareInheritedData.cpp:
14499         (WebCore::StyleRareInheritedData::StyleRareInheritedData):
14500         (WebCore::StyleRareInheritedData::operator==):
14501         * rendering/style/StyleRareInheritedData.h:
14502         (StyleRareInheritedData): Add m_textAlignLast.
14503
14504 2012-11-11  Shinya Kawanaka  <shinyak@chromium.org>
14505
14506         [Refactoring] Remove shadowPseudoId() and use setPseudo() in HTMLKeygenElement
14507         https://bugs.webkit.org/show_bug.cgi?id=101881
14508
14509         Reviewed by Kent Tamura.
14510
14511         We're migrating shadowPseudoId() to pseudo(). We remove shadowPseudoId() from HTMLKeygenElement and use
14512         setPseudo()/pseudo() instead.
14513
14514         No new tests, simple refacotring.
14515
14516         * html/HTMLKeygenElement.cpp:
14517         (WebCore::KeygenSelectElement::KeygenSelectElement):
14518         (KeygenSelectElement):
14519
14520 2012-11-11  Adam Barth  <abarth@webkit.org>
14521
14522         Many DOMWindowProperties would benefit from being ScriptWrappable
14523         https://bugs.webkit.org/show_bug.cgi?id=101887
14524
14525         Reviewed by Kentaro Hara.
14526
14527         These object are only ever created at the behest of script, which means
14528         making them ScriptWrappable is a win.
14529
14530         * page/BarInfo.h:
14531         * page/Console.h:
14532         * page/Crypto.h:
14533         * page/History.h:
14534         * page/Location.h:
14535         * page/Navigator.h:
14536         * page/Performance.h:
14537
14538 2012-11-11  Kentaro Hara  <haraken@chromium.org>
14539
14540         [V8] HTMLDocument::all() needs not to be custom
14541         https://bugs.webkit.org/show_bug.cgi?id=101875
14542
14543         Reviewed by Adam Barth.
14544
14545         We can easily remove the custom getter from V8 because the
14546         custom setter sets .all by ForceSet(). On the other hand,
14547         it is non-trivial to remove the custom getter from JSC
14548         because the custom setter sets .all by putDirect()
14549         and the custom getter wants to get it by getDirect().
14550
14551         No tests. No change in behavior.
14552
14553         * bindings/v8/custom/V8HTMLDocumentCustom.cpp:
14554         * html/HTMLDocument.idl:
14555
14556 2012-11-11  Kentaro Hara  <haraken@chromium.org>
14557
14558         [V8] V8Console::memoryAttrGetter() needs not to be custom
14559         https://bugs.webkit.org/show_bug.cgi?id=101873
14560
14561         Reviewed by Adam Barth.
14562
14563         No tests. No change in behavior.
14564
14565         * bindings/v8/custom/V8ConsoleCustom.cpp:
14566         (WebCore):
14567         * page/Console.idl:
14568
14569 2012-11-11  Shinya Kawanaka  <shinyak@chromium.org>
14570
14571         [Shadow] ElementShadow should have RuleFeatureSet for select attribute selectors.
14572         https://bugs.webkit.org/show_bug.cgi?id=101180
14573
14574         Reviewed by Dimitri Glazkov.
14575
14576         This is a preparation patch for Bug 100451.
14577
14578         We preserve RuleFeatureSet collected from select attributes in ShadowDOM.
14579         When an element attribute is changed, we might have to invalidate content distribution,
14580         however it's high cost operation. So we would like to check RuleFeatureSet used in
14581         select attributes to determine we really need to invalidate distribution.
14582
14583         Like StyleResolver, ElementShadow has several rule features. When nested ShadowDOM is used,
14584         first we collect features in nested ShadowDOM, and merge it to the parent ShadowDOM.
14585         For the performance reason, we have a flag to check whether we need to collect features again.
14586
14587         Test: fast/dom/shadow/shadow-select-attribute-featureset.html
14588
14589         * WebCore.exp.in:
14590         * dom/ElementShadow.cpp:
14591         (WebCore::ElementShadow::ElementShadow):
14592         (WebCore::ElementShadow::setShouldCollectSelectFeatureSet): Enable a flag to collect feature set of descendant
14593         nodes (and their ShadowDOM).
14594         (WebCore):
14595         (WebCore::ElementShadow::ensureSelectFeatureSetCollected):
14596         (WebCore::ElementShadow::collectSelectFeatureSetFrom): Collect RuleFeatureSet from all descendant Nodes and their
14597         ShadowDOM. We need to collect id, class, and attribute names.
14598         * dom/ElementShadow.h:
14599         (WebCore::ElementShadow::shouldCollectSelectFeatureSet):
14600         (ElementShadow):
14601         (WebCore::ElementShadow::hasSelectorForId):
14602         (WebCore):
14603         (WebCore::ElementShadow::hasSelectorForClass):
14604         (WebCore::ElementShadow::hasSelectorForAttribute):
14605         * html/shadow/HTMLContentElement.cpp:
14606         (WebCore::HTMLContentElement::parseAttribute): When select attribute is changed, enable a flag to recollect features.
14607         (WebCore::HTMLContentElement::insertedInto): We have to recollect features when HTMLContentElement is moved.
14608         (WebCore::HTMLContentElement::removedFrom): ditto.
14609         * html/shadow/HTMLContentElement.h:
14610         (WebCore::toHTMLContentElement):
14611         (WebCore):
14612         * testing/Internals.cpp:
14613         (WebCore::Internals::hasSelectorForIdInShadow):
14614         (WebCore):
14615         (WebCore::Internals::hasSelectorForClassInShadow):
14616         (WebCore::Internals::hasSelectorForAttributeInShadow):
14617         * testing/Internals.h:
14618         (Internals):
14619         * testing/Internals.idl:
14620
14621 2012-11-11  Sheriff Bot  <webkit.review.bot@gmail.com>
14622
14623         Unreviewed, rolling out r134144.
14624         http://trac.webkit.org/changeset/134144
14625         https://bugs.webkit.org/show_bug.cgi?id=101876
14626
14627         seems to break win 7 chromium browser test (Requested by
14628         hayato on #webkit).
14629
14630         * WebCore.exp.in:
14631         * page/EventHandler.cpp:
14632         (WebCore):
14633         (WebCore::EventHandler::handleMouseMoveEvent):
14634         * page/EventHandler.h:
14635         (EventHandler):
14636         * testing/Internals.cpp:
14637         * testing/Internals.h:
14638         * testing/Internals.idl:
14639
14640 2012-11-11  Kent Tamura  <tkent@chromium.org>
14641
14642         Internals: MockPagePopup should not update DOM structure during detach()
14643         https://bugs.webkit.org/show_bug.cgi?id=101710
14644
14645         Reviewed by Hajime Morita.
14646
14647         PickerIndicatorElement::detach calls
14648         MockPagePopupDriver::closePagePopup, MockPagePopup::~MockPagePopup,
14649         which remove the mock iframe from the tree. But updating the tree during
14650         detach() is dangerous.
14651
14652         MockPagePopupDriver::closePagePopup calls MockpagePopup::closeLater, it
14653         requests to call 'close' asynchronously, and 'close' removes the mock
14654         iframe. We need to change MockPagePopup so that it is ref-couted and has
14655         a timer.
14656
14657         No new tests. This is a change for the test harness.
14658
14659         * testing/MockPagePopupDriver.cpp:
14660         (MockPagePopup): Make this ref-counted, add closeLater, add close, and
14661         add m_closeTimer.
14662         (WebCore::MockPagePopup::MockPagePopup): Initialize the timer.
14663         (WebCore::MockPagePopup::create): PassOwnPtr -> PassRefPtr
14664         (WebCore::MockPagePopup::closeLater):
14665         - Add one reference to avoid destruction by m_mockPagePopup.clear() in
14666           closePagePopup.
14667         - Notify didClosePopup here because the client expects didClosePopup is
14668           called synchronously.
14669         - Invoke the timer to call 'close'
14670         (WebCore::MockPagePopup::close):
14671         Just remove one reference. This means calling the desructor.
14672         (WebCore::MockPagePopup::~MockPagePopup):
14673         Move didClosePopup call to caloseLater.
14674         (WebCore::MockPagePopupDriver::closePagePopup):
14675         Request to close PagePopup.
14676         Clear PagePopupClient in m_pagePopupController because this object is
14677         necessary until MockPagePopup is closed, but it should not have a
14678         reference to the PagePopupClient.
14679         * testing/MockPagePopupDriver.h:
14680         (MockPagePopupDriver): Make MockPagePopup ref-counted.
14681
14682 2012-11-11  Adam Barth  <abarth@webkit.org>
14683
14684         axObjectCache code is more complicated than necessary
14685         https://bugs.webkit.org/show_bug.cgi?id=101820
14686
14687         Reviewed by Darin Adler.
14688
14689         This code should use OwnPtr rather than manually calling new/delete.
14690         Also, instead of using a "double check" pattern, we can just access the
14691         private fields on the top document directly.
14692
14693         * dom/Document.cpp:
14694         (WebCore::Document::Document):
14695         (WebCore::Document::clearAXObjectCache):
14696         (WebCore::Document::axObjectCacheExists):
14697         (WebCore):
14698         (WebCore::Document::axObjectCache):
14699         * dom/Document.h:
14700         (Document):
14701
14702 2012-11-10  Simon Fraser  <simon.fraser@apple.com>
14703
14704         Save one call to containerForRepaint() when updating layer positions
14705         https://bugs.webkit.org/show_bug.cgi?id=101856
14706
14707         Reviewed by Dan Bernstein.
14708
14709          RenderLayer::updateLayerPositions() has already computed the repaint container,
14710          but calls computeRepaintRects() which computes it again. Computing the repaint
14711          container involves a walk back up the layer tree, so calling it during a tree
14712          traversal is costly.
14713          
14714          Fix by passing the repaint container down into computeRepaintRects().
14715
14716         * rendering/RenderLayer.cpp:
14717         (WebCore::RenderLayer::updateLayerPositions):
14718         (WebCore::RenderLayer::computeRepaintRects):
14719         (WebCore::RenderLayer::computeRepaintRectsIncludingDescendants):
14720         (WebCore::RenderLayer::updateLayerPositionsAfterScroll):
14721         (WebCore::RenderLayer::setHasVisibleContent):
14722         * rendering/RenderLayer.h:
14723         (RenderLayer):
14724
14725 2012-11-11  Kenichi Ishibashi  <bashi@chromium.org>
14726
14727         WTFString::utf8() should have a mode of conversion to use replacement character
14728         https://bugs.webkit.org/show_bug.cgi?id=101678
14729
14730         Reviewed by Alexey Proskuryakov.
14731
14732         Follow the change on String::utf8()
14733
14734         No new tests. No changes in behavior.
14735
14736         * Modules/websockets/WebSocket.cpp:
14737         (WebCore::WebSocket::close): Pass String::StrictConversion instead of true to String::utf8().
14738         * Modules/websockets/WebSocketChannel.cpp:
14739         (WebCore::WebSocketChannel::send): Ditto.
14740         * html/MediaFragmentURIParser.cpp:
14741         (WebCore::MediaFragmentURIParser::parseFragments): Ditto.
14742         * platform/graphics/blackberry/MediaPlayerPrivateBlackBerry.cpp:
14743         (WebCore::MediaPlayerPrivate::notifyChallengeResult): Ditto.
14744         * platform/network/blackberry/rss/RSSFilterStream.cpp:
14745         (WebCore::RSSFilterStream::convertContentToHtml): Ditto.
14746         * platform/network/blackberry/rss/RSSGenerator.cpp:
14747         (WebCore::RSSGenerator::generateHtml): Ditto.
14748
14749 2012-11-10  Simon Fraser  <simon.fraser@apple.com>
14750
14751         Coalesce main thread scroll position updates
14752         https://bugs.webkit.org/show_bug.cgi?id=101855
14753
14754         Reviewed by Anders Carlsson.
14755
14756         When using threaded scrolling, the dispatched updateMainFrameScrollPosition() calls 
14757         from ScrollingTree would pile up on the main thread, and we'd handle several per
14758         runloop cycle when scrolling fast. This causes extra work especially on pages
14759         with position:fixed elements which must update RenderLayers on scrolling.
14760         
14761         Fix by using a zero-delay timer in ScrollingCoordinator to coalesce these
14762         scrolling updates to one per runloop.
14763
14764         * page/scrolling/ScrollingCoordinator.cpp:
14765         (WebCore::ScrollingCoordinator::ScrollingCoordinator): Initialized data members
14766         for the scheduled scroll position update.
14767         (WebCore::ScrollingCoordinator::scheduleUpdateMainFrameScrollPosition): If 
14768         the timer is active and the parameters match, just update the target scroll
14769         position and return. If the params don't match, dispatch the scheduled update,
14770         and then the new one. Otherwise, prime the timer.
14771         (WebCore::ScrollingCoordinator::updateMainFrameScrollPositionTimerFired): Call
14772         the existing updateMainFrameScrollPosition() with the saved values.
14773         * page/scrolling/ScrollingCoordinator.h:
14774         * page/scrolling/ScrollingTree.cpp:
14775         (WebCore::ScrollingTree::updateMainFrameScrollPosition): Call scheduleUpdateMainFrameScrollPosition()
14776         rather than updateMainFrameScrollPosition().
14777         * page/scrolling/mac/ScrollingCoordinatorMac.mm:
14778         (WebCore::ScrollingCoordinatorMac::syncChildPositions): Fixed a bug that caused fixed
14779         position elements to jiggle with the patch; we should be calling syncPosition() (which just
14780         sets the position data, without touching CA layers).
14781
14782 2012-11-10  Simon Fraser  <simon.fraser@apple.com>
14783
14784         Remove ScrollingCoordinatorMac::updateMainFrameScrollPositionAndScrollLayerPosition()
14785         https://bugs.webkit.org/show_bug.cgi?id=101514
14786
14787         Reviewed by Tim Horton.
14788
14789         ScrollingCoordinatorMac::updateMainFrameScrollPositionAndScrollLayerPosition() is very similar to
14790         ScrollingCoordinator::updateMainFrameScrollPosition(). In order to eliminate updateMainFrameScrollPositionAndScrollLayerPosition(),
14791         we just need to plumb through a flag that says that updateMainFrameScrollPosition() should
14792         set the layer position (rather than just doing a 'sync').
14793
14794         * page/scrolling/ScrollingCoordinator.cpp:
14795         (WebCore::ScrollingCoordinator::updateMainFrameScrollPosition):
14796         * page/scrolling/ScrollingCoordinator.h:
14797         * page/scrolling/ScrollingTree.cpp:
14798         (WebCore::ScrollingTree::updateMainFrameScrollPosition):
14799         * page/scrolling/ScrollingTree.h:
14800         * page/scrolling/mac/ScrollingCoordinatorMac.h:
14801         * page/scrolling/mac/ScrollingCoordinatorMac.mm:
14802         * page/scrolling/mac/ScrollingTreeScrollingNodeMac.mm:
14803         (WebCore::ScrollingTreeScrollingNodeMac::setScrollPositionWithoutContentEdgeConstraints):
14804
14805 2012-11-10  Sheriff Bot  <webkit.review.bot@gmail.com>
14806
14807         Unreviewed, rolling out r134069.
14808         http://trac.webkit.org/changeset/134069
14809         https://bugs.webkit.org/show_bug.cgi?id=101852
14810
14811         "It is a wrong way to fix the problem. See discussions in bug
14812         96614" (Requested by 1JTAAPQFJ on #webkit).
14813
14814         * bindings/js/JSDictionary.cpp:
14815         (WebCore::JSDictionary::getWithUndefinedOrNullCheck):
14816
14817 2012-11-10  Mike West  <mkwst@chromium.org>
14818
14819         Web Inspector: Multiple '%c' formatting options should all have effect.
14820         https://bugs.webkit.org/show_bug.cgi?id=101495
14821
14822         Reviewed by Pavel Feldman.
14823
14824         This patch supports multiple '%c' formatting blocks in console messages.
14825         'console.log("%cblue! %cgreen!", "color: blue;", "color: green;")' will
14826         do exactly what you expect: "blue!" will be blue, and "green!" will be
14827         green.
14828
14829         The implementation moves the styles off the message's parent 'span', and
14830         onto new 'span' elements that wrap the various textual bits of the
14831         message.
14832
14833         * inspector/front-end/ConsoleMessage.js:
14834         (WebInspector.ConsoleMessageImpl.prototype.):
14835         (WebInspector.ConsoleMessageImpl.prototype.append):
14836         (WebInspector.ConsoleMessageImpl.prototype._formatWithSubstitutionString):
14837
14838 2012-11-10  Mike West  <mkwst@chromium.org>
14839
14840         Including <CoreText/CoreText.h> breaks the chromium/mac build.
14841         https://bugs.webkit.org/show_bug.cgi?id=101851
14842
14843         Reviewed by Dan Bernstein.
14844
14845         r134146 introduced inclusion of 'CoreText/CoreText.h' in
14846         SimpleFontDataCoreText.cpp, which broke the chromium/mac build. Grepping
14847         around, it looks like this needs to be modified to include
14848         'ApplicationServices/ApplicationServices.h'.
14849
14850         * platform/graphics/mac/SimpleFontDataCoreText.cpp:
14851             Drop 'CoreText.h' in favor of 'ApplicationServices.h'.
14852         * platform/graphics/mac/ComplexTextControllerCoreText.mm:
14853             Drop the platform-specific '#if' logic; just include 'ApplicationServices.h'.
14854
14855 2012-11-10  Andreas Kling  <kling@webkit.org>
14856
14857         Don't detach from shared ElementAttributeData when overwriting attribute with identical value.
14858         <http://webkit.org/b/101849>
14859
14860         Reviewed by Anders Carlsson.
14861
14862         Defer the mutableAttributeData() call in Element::setAttributeInternal() until the last
14863         possible moment, to avoid unnecessarily detaching and cloning from attribute data.
14864
14865         120 kB progression on Membuster3.
14866
14867         * dom/Element.cpp:
14868         (WebCore::Element::setAttributeInternal):
14869         (WebCore::Element::addAttributeInternal):
14870
14871 2012-11-10  Simon Fraser  <simon.fraser@apple.com>
14872
14873         Some minor optimizations in RenderLayer
14874         https://bugs.webkit.org/show_bug.cgi?id=101847
14875
14876         Reviewed by Anders Carlsson.
14877
14878         Some minor performance improvements in RenderLayer code.
14879
14880         * rendering/RenderLayer.cpp:
14881         (WebCore::RenderLayer::updateLayerPosition): isRenderInline() is a virtual call,
14882         so prefix it with an isInline() check which tests a bit on RenderObject.
14883         (WebCore::RenderLayer::localBoundingBox): Ditto.
14884         (WebCore::RenderLayer::calculateLayerBounds): Pull layer->renderer()
14885         into a local variable.
14886
14887 2012-11-10  Anders Carlsson  <andersca@apple.com>
14888
14889         Document::m_fullScreenElementStack should be a Vector
14890         https://bugs.webkit.org/show_bug.cgi?id=101844
14891
14892         Reviewed by Andreas Kling.
14893
14894         m_fullScreenElementStack is currently a Deque where elements are being prepended
14895         and removed from the beginning in LIFO order, so it can be replaced with a Vector.
14896
14897         * dom/Document.cpp:
14898         (WebCore::Document::requestFullScreenForElement):
14899         (WebCore::Document::webkitCancelFullScreen):
14900         (WebCore::Document::popFullscreenElementStack):
14901         (WebCore::Document::pushFullscreenElementStack):
14902         * dom/Document.h:
14903         (WebCore::Document::webkitFullscreenElement):
14904         (Document):
14905
14906 2012-11-10  Adam Barth  <abarth@webkit.org>
14907
14908         [V8] Clean up header includes and ifdefs in V8GCController
14909         https://bugs.webkit.org/show_bug.cgi?id=101691
14910
14911         Reviewed by Kentaro Hara.
14912
14913         This file doesn't need to include all these headers anymore.
14914
14915         * bindings/v8/V8GCController.cpp:
14916         (WebCore::workingSetEstimateMBMutex):
14917         (WebCore::V8GCController::majorGCEpilogue):
14918         (WebCore::V8GCController::checkMemoryUsage):
14919
14920 2012-11-10  Joseph Pecoraro  <pecoraro@apple.com>
14921
14922         [Mac] Guard WebCore PageVisibility Symbol Export
14923         https://bugs.webkit.org/show_bug.cgi?id=101817
14924
14925         Reviewed by Andreas Kling.
14926
14927         Guard the export with the same ENABLE guards around its definition
14928         and implementation.
14929
14930         * WebCore.exp.in:
14931
14932 2012-11-10  Bruno de Oliveira Abinader  <bruno.abinader@basyskom.com>
14933
14934         [css] text-decoration:none no longer valid
14935         https://bugs.webkit.org/show_bug.cgi?id=101529
14936
14937         Reviewed by Ojan Vafai.
14938
14939         This patch fixes an issue where the 'none' value was parsed as explicitly
14940         'initial' value. However true in a sense that the initial value for the
14941         'text-decoration' property is 'none', the value itself could not be parsed as
14942         'initial'.
14943
14944         The getComputedStyle layout tests for 'text-decoration' and
14945         '-webkit-text-decoration-line' CSS properties are updated with the correct
14946         results.
14947
14948         * css/CSSParser.cpp:
14949         (WebCore::CSSParser::parseTextDecoration): When parsed, 'none' value
14950         gets its own identifier value instead of explicit initial.
14951
14952 2012-11-09  Dean Jackson  <dino@apple.com>
14953
14954         Support list of tracks in caption media controls
14955         https://bugs.webkit.org/show_bug.cgi?id=101669
14956
14957         Reviewed by Eric Carlson.
14958
14959         Attempt three of commit. The first two times caused build failures on Chromium.
14960
14961         Add some new elements to the media control shadow DOM that display the list of available
14962         tracks on an audio/video element. The UI is hidden by default everywhere but on Mac,
14963         where it is given a very basic design. At the moment only the list of available tracks
14964         are displayed; The followup bug will make the UI active: https://bugs.webkit.org/show_bug.cgi?id=101670
14965
14966         No new tests - this doesn't expose any testable surface.
14967
14968         * css/mediaControls.css: Added default rules that hide the new elements.
14969         * css/mediaControlsQuickTime.css: Specific rules that give a basic rendering of the new track list.
14970         * html/shadow/MediaControlElements.cpp:
14971         (WebCore::MediaControlElement::isShowing): Tests for the visibility of a control.
14972         (WebCore::MediaControlClosedCaptionsContainerElement::MediaControlClosedCaptionsContainerElement):
14973         (WebCore::MediaControlClosedCaptionsContainerElement::create):
14974         (WebCore::MediaControlClosedCaptionsContainerElement::shadowPseudoId):
14975         (WebCore::MediaControlToggleClosedCaptionsButtonElement::MediaControlToggleClosedCaptionsButtonElement):
14976         (WebCore::MediaControlToggleClosedCaptionsButtonElement::create): Now takes a reference to the media controls as a parameter.
14977         (WebCore::MediaControlToggleClosedCaptionsButtonElement::updateDisplayType):
14978         (WebCore::MediaControlToggleClosedCaptionsButtonElement::defaultEventHandler):
14979         (WebCore::MediaControlToggleClosedCaptionsButtonElement::shadowPseudoId):
14980         (WebCore::MediaControlClosedCaptionsTrackListElement::MediaControlClosedCaptionsTrackListElement): New element for holding a list of tracks to display.
14981         * html/shadow/MediaControlElements.h:
14982         (MediaControlElement):
14983         (MediaControlToggleClosedCaptionsButtonElement):
14984         (MediaControlClosedCaptionsContainerElement):
14985         (MediaControlClosedCaptionsTrackListElement): Examines the media element to build a shadow DOM that lists all the tracks available.
14986         * html/shadow/MediaControlRootElement.cpp:
14987         (WebCore::MediaControlRootElement::MediaControlRootElement):
14988         (WebCore::MediaControlRootElement::create): New track container and list elements created.
14989         (WebCore::MediaControlRootElement::setMediaController): Hook up the new elements to the controller..
14990         (WebCore::MediaControlRootElement::hide):
14991         (WebCore::MediaControlRootElement::makeTransparent):
14992         (WebCore::MediaControlRootElement::reset):
14993         (WebCore::MediaControlRootElement::reportedError):
14994         (WebCore::MediaControlRootElement::toggleClosedCaptionTrackList): Shows or hides the popup with the list of tracks.
14995         (WebCore):
14996         * html/shadow/MediaControlRootElement.h:
14997         (WebCore):
14998         (MediaControlRootElement):
14999         * html/shadow/MediaControlRootElementChromium.cpp:
15000         (WebCore::MediaControlRootElementChromium::initializeControls): Pass in the controls as a parameter.
15001         * html/shadow/MediaControls.h:
15002         (MediaControls):
15003         * platform/Language.cpp:
15004         (WebCore::displayNameForLanguageLocale): New function to return a human-readable name for a locale, given the identifier input.
15005         * platform/Language.h:
15006         (WebCore):
15007         * rendering/RenderMediaControls.cpp:
15008         (WebCore::RenderMediaControls::paintMediaControlsPart): New enum values into switch.
15009         * rendering/RenderMediaControlsChromium.cpp:
15010         (WebCore::RenderMediaControlsChromium::paintMediaControlsPart): New enum values into switch.
15011
15012 2012-11-09  Sheriff Bot  <webkit.review.bot@gmail.com>
15013
15014         Unreviewed, rolling out r134152.
15015         http://trac.webkit.org/changeset/134152
15016         https://bugs.webkit.org/show_bug.cgi?id=101831
15017
15018         broke chromium again (Requested by dino_ on #webkit).
15019
15020         * css/mediaControls.css:
15021         * css/mediaControlsQuickTime.css:
15022         (audio::-webkit-media-controls-toggle-closed-captions-button, video::-webkit-media-controls-toggle-closed-captions-button):
15023         (audio::-webkit-media-controls-volume-slider-mute-button, video::-webkit-media-controls-volume-slider-mute-button):
15024         * html/shadow/MediaControlElements.cpp:
15025         (WebCore::MediaControlToggleClosedCaptionsButtonElement::MediaControlToggleClosedCaptionsButtonElement):
15026         (WebCore::MediaControlToggleClosedCaptionsButtonElement::create):
15027         (WebCore::MediaControlToggleClosedCaptionsButtonElement::defaultEventHandler):
15028         (WebCore::MediaControlToggleClosedCaptionsButtonElement::updateDisplayType):
15029         (WebCore::MediaControlToggleClosedCaptionsButtonElement::shadowPseudoId):
15030         * html/shadow/MediaControlElements.h:
15031         (MediaControlElement):
15032         (MediaControlToggleClosedCaptionsButtonElement):
15033         * html/shadow/MediaControlRootElement.cpp:
15034         (WebCore::MediaControlRootElement::MediaControlRootElement):
15035         (WebCore::MediaControlRootElement::create):
15036         (WebCore::MediaControlRootElement::setMediaController):
15037         (WebCore::MediaControlRootElement::hide):
15038         (WebCore::MediaControlRootElement::makeTransparent):
15039         (WebCore::MediaControlRootElement::reset):
15040         (WebCore::MediaControlRootElement::reportedError):
15041         * html/shadow/MediaControlRootElement.h:
15042         (WebCore):
15043         (MediaControlRootElement):
15044         * html/shadow/MediaControlRootElementChromium.cpp:
15045         (WebCore::MediaControlRootElementChromium::initializeControls):
15046         * html/shadow/MediaControls.h:
15047         (MediaControls):
15048         * platform/Language.cpp:
15049         (WebCore):
15050         * platform/Language.h:
15051         (WebCore):
15052         * rendering/RenderMediaControls.cpp:
15053         (WebCore::RenderMediaControls::paintMediaControlsPart):
15054         * rendering/RenderMediaControlsChromium.cpp:
15055         (WebCore::RenderMediaControlsChromium::paintMediaControlsPart):
15056
15057 2012-11-09  Dean Jackson  <dino@apple.com>
15058
15059         Support list of tracks in caption media controls
15060         https://bugs.webkit.org/show_bug.cgi?id=101669
15061
15062         Reviewed by Eric Carlson.
15063
15064         Attempt two of commit. The first time caused a build failure on Chromium.
15065
15066         Add some new elements to the media control shadow DOM that display the list of available
15067         tracks on an audio/video element. The UI is hidden by default everywhere but on Mac,
15068         where it is given a very basic design. At the moment only the list of available tracks
15069         are displayed; The followup bug will make the UI active: https://bugs.webkit.org/show_bug.cgi?id=101670
15070
15071         No new tests - this doesn't expose any testable surface.
15072
15073         * css/mediaControls.css: Added default rules that hide the new elements.
15074         * css/mediaControlsQuickTime.css: Specific rules that give a basic rendering of the new track list.
15075         * html/shadow/MediaControlElements.cpp:
15076         (WebCore::MediaControlElement::isShowing): Tests for the visibility of a control.
15077         (WebCore::MediaControlClosedCaptionsContainerElement::MediaControlClosedCaptionsContainerElement):
15078         (WebCore::MediaControlClosedCaptionsContainerElement::create):
15079         (WebCore::MediaControlClosedCaptionsContainerElement::shadowPseudoId):
15080         (WebCore::MediaControlToggleClosedCaptionsButtonElement::MediaControlToggleClosedCaptionsButtonElement):
15081         (WebCore::MediaControlToggleClosedCaptionsButtonElement::create): Now takes a reference to the media controls as a parameter.
15082         (WebCore::MediaControlToggleClosedCaptionsButtonElement::updateDisplayType):
15083         (WebCore::MediaControlToggleClosedCaptionsButtonElement::defaultEventHandler):
15084         (WebCore::MediaControlToggleClosedCaptionsButtonElement::shadowPseudoId):
15085         (WebCore::MediaControlClosedCaptionsTrackListElement::MediaControlClosedCaptionsTrackListElement): New element for holding a list of tracks to display.
15086         * html/shadow/MediaControlElements.h:
15087         (MediaControlElement):
15088         (MediaControlToggleClosedCaptionsButtonElement):
15089         (MediaControlClosedCaptionsContainerElement):
15090         (MediaControlClosedCaptionsTrackListElement): Examines the media element to build a shadow DOM that lists all the tracks available.
15091         * html/shadow/MediaControlRootElement.cpp:
15092         (WebCore::MediaControlRootElement::MediaControlRootElement):
15093         (WebCore::MediaControlRootElement::create): New track container and list elements created.
15094         (WebCore::MediaControlRootElement::setMediaController): Hook up the new elements to the controller..
15095         (WebCore::MediaControlRootElement::hide):
15096         (WebCore::MediaControlRootElement::makeTransparent):
15097         (WebCore::MediaControlRootElement::reset):
15098         (WebCore::MediaControlRootElement::reportedError):
15099         (WebCore::MediaControlRootElement::toggleClosedCaptionTrackList): Shows or hides the popup with the list of tracks.
15100         (WebCore):
15101         * html/shadow/MediaControlRootElement.h:
15102         (WebCore):
15103         (MediaControlRootElement):
15104         * html/shadow/MediaControlRootElementChromium.cpp:
15105         (WebCore::MediaControlRootElementChromium::initializeControls): Pass in the controls as a parameter.
15106         * html/shadow/MediaControls.h:
15107         (MediaControls):
15108         * platform/Language.cpp:
15109         (WebCore::displayNameForLanguageLocale): New function to return a human-readable name for a locale, given the identifier input.
15110         * platform/Language.h:
15111         (WebCore):
15112         * rendering/RenderMediaControls.cpp:
15113         (WebCore::RenderMediaControls::paintMediaControlsPart): New enum values into switch.
15114         * rendering/RenderMediaControlsChromium.cpp:
15115         (WebCore::RenderMediaControlsChromium::paintMediaControlsPart): New enum values into switch.
15116
15117 2012-11-09  Ojan Vafai  <ojan@chromium.org>
15118
15119         Should only fire a single set of mouse events and update hover state once when scrolling is done
15120         https://bugs.webkit.org/show_bug.cgi?id=99940
15121
15122         Reviewed by Levi Weintraub.
15123
15124         -Use a DeferrableOneShotTimer instead of a Timer. By resetting when the
15125         timer is fired, we ensure the actual goal of not firing fake mouse events
15126         until the scroll is completed. This is the core part of this change.
15127         -Change our mouse event throttling to keep a running average of how long
15128         mouse events take and adjust throttling appropriately.
15129         Test: fast/scrolling/fake-mouse-event-throttling.html
15130         -Maintain a minimum throttle of 100ms.
15131
15132         * page/EventHandler.cpp:
15133         (WebCore):
15134         (WebCore::RunningAverageDurationTracker::RunningAverageDurationTracker):
15135         (WebCore::RunningAverageDurationTracker::~RunningAverageDurationTracker):
15136         Keep track of a running average instead of max. This lets us adjust throttling
15137         dynamically without punishing a page for having a single mouse event handler
15138         that takes disproportionately long.
15139         (RunningAverageDurationTracker):
15140         (WebCore::EventHandler::EventHandler):
15141         (WebCore::EventHandler::clear):
15142         (WebCore::EventHandler::mouseMoved):
15143         (WebCore::EventHandler::handleMouseMoveEvent):
15144         (WebCore::EventHandler::dispatchFakeMouseMoveEventSoon):
15145         (WebCore::EventHandler::fakeMouseMoveEventTimerFired):
15146         * page/EventHandler.h:
15147         (EventHandler):
15148         * platform/Timer.h:
15149         (WebCore::DeferrableOneShotTimer::setDelay):
15150         (WebCore::DeferrableOneShotTimer::delay):
15151         Add a way of adjusting the timer delay.
15152
15153 2012-11-09  Rick Byers  <rbyers@chromium.org>
15154
15155         Move chromium to USE(LAZY_NATIVE_CURSOR)
15156         https://bugs.webkit.org/show_bug.cgi?id=101501
15157
15158         Reviewed by Adam Barth.
15159
15160         This simplifies cursor handling in chromium and unifies it with other
15161         ports for easier code sharing and testing by moving to the
15162         USE_LAZY_CURSOR model and eliminating PlatformCursor entirely.
15163
15164         PlatformCursor adds no value in chromium since the sandboxing model
15165         requires the cursor information be marshalled to the browser process
15166         before being turned into a real OS cursor.
15167
15168         Test: fast/events/mouse-cursor.html
15169
15170         * WebCore.gypi:
15171         * platform/Cursor.h:
15172         (WebCore):
15173         * platform/chromium/CursorChromium.cpp:
15174         (WebCore::Cursor::Cursor):
15175         (WebCore::Cursor::operator=):
15176         (WebCore::Cursor::~Cursor):
15177         (WebCore::Cursor::ensurePlatformCursor):
15178         * platform/chromium/PlatformCursor.h: Removed.
15179
15180 2012-11-09  Noam Rosenthal  <noam.rosenthal@nokia.com>
15181
15182         Allow ports to decide whether an image should be directly composited
15183         https://bugs.webkit.org/show_bug.cgi?id=101827
15184
15185         Reviewed by Simon Fraser.
15186
15187         Tested by compositing/tiling/huge-layer-img.html.
15188
15189         * platform/graphics/GraphicsLayer.h:
15190         (WebCore::GraphicsLayer::shouldDirectlyCompositeImage):
15191             Allow the GraphicsLayer implementation to decide if the image can be composited.
15192
15193         * rendering/RenderLayerBacking.cpp:
15194         (WebCore::RenderLayerBacking::isDirectlyCompositedImage):
15195             Take onto account the new shouldDirectlyCompositeImage check.
15196
15197 2012-11-09  Dan Bernstein  <mitz@apple.com>
15198
15199         SimpleFontData::getCFStringAttributes sets some attributes to their default values, but shouldn’t
15200         https://bugs.webkit.org/show_bug.cgi?id=101799
15201
15202         Reviewed by Alexey Proskuryakov.
15203
15204         In some configurations, setting kCTLigatureAttributeName to its default value of 1 yields
15205         different behavior from not setting it at all. We can get the correct behavior and greatly
15206         simplify the code by not setting attributes to their default values.
15207
15208         * platform/graphics/mac/SimpleFontDataCoreText.cpp:
15209         Removed redundant #import directives and changed the remaining ones to #include.
15210         (WebCore::SimpleFontData::getCFStringAttributes): Changed to use a mutable dictionary and
15211         only add attributes that have non-default values.
15212
15213 2012-11-09  Rick Byers  <rbyers@chromium.org>
15214
15215         No tests for changing mouse cursors
15216         https://bugs.webkit.org/show_bug.cgi?id=100550
15217
15218         Reviewed by Adam Barth.
15219
15220         Add infrastructure to keep track of the last set mouse cursor,
15221         and then to query it from DumpRenderTree.
15222
15223         Test: fast/events/mouse-cursor.html
15224
15225         * WebCore.exp.in: Add Cursor copy ctor export
15226         * page/EventHandler.cpp:
15227         (WebCore::EventHandler::handleMouseMoveEvent): Keep track of last set mouse cursor
15228         * page/EventHandler.h:
15229         (WebCore::EventHandler::currentMouseCursor): New getter for last set mouse cursor
15230         * testing/Internals.cpp:
15231         (WebCore::cursorTypeToString): Helper to convert cursor type to enum
15232         (WebCore):
15233         (WebCore::Internals::getCurrentCursorInfo): New function to return a string describing the last set mouse cursor
15234         * testing/Internals.h: Declare getCurrentCursorInfo
15235         * testing/Internals.idl: Declare getCurrentCursorInfo
15236
15237 2012-11-09  Huang Dongsung  <luxtella@company100.net>
15238
15239         Coordinated Graphics: Amend CoordinatedBackingStore::paintToTextureMapper to fit its own semantic.
15240         https://bugs.webkit.org/show_bug.cgi?id=101701
15241
15242         Reviewed by Noam Rosenthal.
15243
15244         Add TiledBackingStore::rect() because CoordinatedTile needs to know
15245         m_rect of TiledBackingStore.
15246
15247         * platform/graphics/TiledBackingStore.h:
15248         (WebCore::TiledBackingStore::rect):
15249
15250 2012-11-09  Sheriff Bot  <webkit.review.bot@gmail.com>
15251
15252         Unreviewed, rolling out r134139.
15253         http://trac.webkit.org/changeset/134139
15254         https://bugs.webkit.org/show_bug.cgi?id=101823
15255
15256         breaks chromium (android) build (Requested by thorton on
15257         #webkit).
15258
15259         * css/mediaControls.css:
15260         * css/mediaControlsQuickTime.css:
15261         (audio::-webkit-media-controls-toggle-closed-captions-button, video::-webkit-media-controls-toggle-closed-captions-button):
15262         (audio::-webkit-media-controls-volume-slider-mute-button, video::-webkit-media-controls-volume-slider-mute-button):
15263         * html/shadow/MediaControlElements.cpp:
15264         (WebCore::MediaControlToggleClosedCaptionsButtonElement::MediaControlToggleClosedCaptionsButtonElement):
15265         (WebCore::MediaControlToggleClosedCaptionsButtonElement::create):
15266         (WebCore::MediaControlToggleClosedCaptionsButtonElement::defaultEventHandler):
15267         (WebCore::MediaControlToggleClosedCaptionsButtonElement::updateDisplayType):
15268         (WebCore::MediaControlToggleClosedCaptionsButtonElement::shadowPseudoId):
15269         * html/shadow/MediaControlElements.h:
15270         (MediaControlElement):
15271         (MediaControlToggleClosedCaptionsButtonElement):
15272         * html/shadow/MediaControlRootElement.cpp:
15273         (WebCore::MediaControlRootElement::MediaControlRootElement):
15274         (WebCore::MediaControlRootElement::create):
15275         (WebCore::MediaControlRootElement::setMediaController):
15276         (WebCore::MediaControlRootElement::hide):
15277         (WebCore::MediaControlRootElement::makeTransparent):
15278         (WebCore::MediaControlRootElement::reset):
15279         (WebCore::MediaControlRootElement::reportedError):
15280         * html/shadow/MediaControlRootElement.h:
15281         (WebCore):
15282         (MediaControlRootElement):
15283         * html/shadow/MediaControlRootElementChromium.cpp:
15284         (WebCore::MediaControlRootElementChromium::initializeControls):
15285         * html/shadow/MediaControls.h:
15286         (MediaControls):
15287         * platform/Language.cpp:
15288         (WebCore):
15289         * platform/Language.h:
15290         (WebCore):
15291
15292 2012-11-09  Huang Dongsung  <luxtella@company100.net>
15293
15294         [TexMap] Initialize m_compositedNativeImagePtr in GraphicsLayerTextureMapper.
15295         https://bugs.webkit.org/show_bug.cgi?id=101675
15296
15297         Reviewed by Noam Rosenthal.
15298
15299         Fix a potential bug in GraphicsLayerTextureMapper. If the member's uninitialized
15300         value equals image->nativeImageForCurrentFrame() by change, we can encounter
15301         undefined behavior.
15302
15303         * platform/graphics/texmap/GraphicsLayerTextureMapper.cpp:
15304         (WebCore::GraphicsLayerTextureMapper::GraphicsLayerTextureMapper):
15305         (WebCore::GraphicsLayerTextureMapper::setContentsToImage):
15306
15307 2012-11-09  Dean Jackson  <dino@apple.com>
15308
15309         Support list of tracks in caption media controls
15310         https://bugs.webkit.org/show_bug.cgi?id=101669
15311
15312         Reviewed by Eric Carlson.
15313
15314         Add some new elements to the media control shadow DOM that display the list of available
15315         tracks on an audio/video element. The UI is hidden by default everywhere but on Mac,
15316         where it is given a very basic design. At the moment only the list of available tracks
15317         are displayed; The followup bug will make the UI active: https://bugs.webkit.org/show_bug.cgi?id=101670
15318
15319         No new tests - this doesn't expose any testable surface.
15320
15321         * css/mediaControls.css: Added default rules that hide the new elements.
15322         * css/mediaControlsQuickTime.css: Specific rules that give a basic rendering of the new track list.
15323         * html/shadow/MediaControlElements.cpp:
15324         (WebCore::MediaControlElement::isShowing): Tests for the visibility of a control.
15325         (WebCore::MediaControlClosedCaptionsContainerElement::MediaControlClosedCaptionsContainerElement):
15326         (WebCore::MediaControlClosedCaptionsContainerElement::create):
15327         (WebCore::MediaControlClosedCaptionsContainerElement::shadowPseudoId):
15328         (WebCore::MediaControlToggleClosedCaptionsButtonElement::MediaControlToggleClosedCaptionsButtonElement):
15329         (WebCore::MediaControlToggleClosedCaptionsButtonElement::create): Now takes a reference to the media controls as a parameter.
15330         (WebCore::MediaControlToggleClosedCaptionsButtonElement::updateDisplayType):
15331         (WebCore::MediaControlToggleClosedCaptionsButtonElement::defaultEventHandler):
15332         (WebCore::MediaControlToggleClosedCaptionsButtonElement::shadowPseudoId):
15333         (WebCore::MediaControlClosedCaptionsTrackListElement::MediaControlClosedCaptionsTrackListElement): New element for holding a list of tracks to display.
15334         * html/shadow/MediaControlElements.h:
15335         (MediaControlElement):
15336         (MediaControlToggleClosedCaptionsButtonElement):
15337         (MediaControlClosedCaptionsContainerElement):
15338         (MediaControlClosedCaptionsTrackListElement): Examines the media element to build a shadow DOM that lists all the tracks available.
15339         * html/shadow/MediaControlRootElement.cpp:
15340         (WebCore::MediaControlRootElement::MediaControlRootElement):
15341         (WebCore::MediaControlRootElement::create): New track container and list elements created.
15342         (WebCore::MediaControlRootElement::setMediaController): Hook up the new elements to the controller..
15343         (WebCore::MediaControlRootElement::hide):
15344         (WebCore::MediaControlRootElement::makeTransparent):
15345         (WebCore::MediaControlRootElement::reset):
15346         (WebCore::MediaControlRootElement::reportedError):
15347         (WebCore::MediaControlRootElement::toggleClosedCaptionTrackList): Shows or hides the popup with the list of tracks.
15348         (WebCore):
15349         * html/shadow/MediaControlRootElement.h:
15350         (WebCore):
15351         (MediaControlRootElement):
15352         * html/shadow/MediaControlRootElementChromium.cpp:
15353         (WebCore::MediaControlRootElementChromium::initializeControls): Pass in the controls as a parameter.
15354         * html/shadow/MediaControls.h:
15355         (MediaControls):
15356         * platform/Language.cpp:
15357         (WebCore::displayNameForLanguageLocale): New function to return a human-readable name for a locale, given the identifier input.
15358         * platform/Language.h:
15359         (WebCore):
15360
15361 2012-11-09  Noel Gordon  <noel.gordon@gmail.com>
15362
15363         [chromium] Should pass fast/images/paletted-png-with-color-profile.html
15364         https://bugs.webkit.org/show_bug.cgi?id=101551
15365
15366         Reviewed by Adam Barth.
15367
15368         Support decoding color PALETTE images that have an ICC color profile.
15369
15370         Covered by fast/images/png-suite/test.html and many other fast/image tests.
15371
15372         * platform/image-decoders/png/PNGImageDecoder.cpp:
15373         (WebCore::PNGImageDecoder::headerAvailable): Move the color profile code after the
15374         transparency (tRNS) reader. Allow color PNG images: RGB, RGBA, PALLETE to be color
15375         corrected. Use the transparency count from the tRNS reader to detect the expansion
15376         of RGB and PALLETE image pixels to RGBA.
15377
15378 2012-11-09  Tien-Ren Chen  <trchen@chromium.org>
15379
15380         Correct hit-test point scaling for document.elementFromPoint
15381         https://bugs.webkit.org/show_bug.cgi?id=101798
15382
15383         Reviewed by Adam Barth.
15384
15385         The hit-test point come from user JavaScript is in the document coordinate.
15386         Convert to the frame coordinate with correct scale factor for hit test.
15387
15388         Test: fast/dom/elementFromPoint-scaled-scrolled.html
15389
15390         * dom/Document.cpp:
15391         (WebCore::nodeFromPoint):
15392
15393 2012-11-09  Alec Flett  <alecflett@chromium.org>
15394
15395         IndexedDB: Combine IDBBackingStore and IDBLevelDBBackingStore
15396         https://bugs.webkit.org/show_bug.cgi?id=101415
15397
15398         Reviewed by Tony Chang.
15399
15400         Combine abstract interface IDBBackingStore with its only
15401         implementation, IDBLevelDBBackingStore, to reduce code
15402         complexity. The legacy structure existed to support a SQLLite
15403         IDBBackingStore, but it is no longer worth the complexity to
15404         support this abstraction.
15405
15406         Changes include:
15407         1) Merging IDBLevelDBBackingStore into IDBBackingStore.
15408
15409         2) Merge together IDBBackingStore's inner classes: Cursor,
15410         Transaction, and ObjectStoreRecordIdentfier with their respective
15411         subclasses in IDBLevelDBBackingStore.
15412
15413         3) Simplifying the inner Transaction class to not be refcounted or
15414         virtualized, to allow it to be a simple concrete member of its
15415         owner, IDBTransactionBackendImpl.
15416
15417         No new tests as this is purely a refactor.
15418
15419         * Modules/indexeddb/IDBBackingStore.cpp:
15420         (WebCore::recordInternalError):
15421         (WebCore::setUpMetadata):
15422         (WebCore::IDBBackingStore::IDBBackingStore):
15423         (WebCore):
15424         (WebCore::IDBBackingStore::~IDBBackingStore):
15425         (WebCore::IDBBackingStore::open):
15426         (WebCore::IDBBackingStore::getDatabaseNames):
15427         (WebCore::IDBBackingStore::getIDBDatabaseMetaData):
15428         (WebCore::IDBBackingStore::createIDBDatabaseMetaData):
15429         (WebCore::IDBBackingStore::updateIDBDatabaseIntVersion):
15430         (WebCore::IDBBackingStore::updateIDBDatabaseMetaData):
15431         (WebCore::deleteRange):
15432         (WebCore::IDBBackingStore::deleteDatabase):
15433         (WebCore::IDBBackingStore::getObjectStores):
15434         (WebCore::setMaxObjectStoreId):
15435         (WebCore::IDBBackingStore::createObjectStore):
15436         (WebCore::IDBBackingStore::deleteObjectStore):
15437         (WebCore::IDBBackingStore::getRecord):
15438         (WebCore::IDBBackingStore::putRecord):
15439         (WebCore::IDBBackingStore::clearObjectStore):
15440         (WebCore::IDBBackingStore::deleteRecord):
15441         (WebCore::IDBBackingStore::getKeyGeneratorCurrentNumber):
15442         (WebCore::IDBBackingStore::maybeUpdateKeyGeneratorCurrentNumber):
15443         (WebCore::IDBBackingStore::keyExistsInObjectStore):
15444         (WebCore::IDBBackingStore::getIndexes):
15445         (WebCore::setMaxIndexId):
15446         (WebCore::IDBBackingStore::createIndex):
15447         (WebCore::IDBBackingStore::deleteIndex):
15448         (WebCore::IDBBackingStore::putIndexDataForRecord):
15449         (WebCore::IDBBackingStore::deleteIndexDataForRecord):
15450         (WebCore::IDBBackingStore::findKeyInIndex):
15451         (WebCore::IDBBackingStore::getPrimaryKeyViaIndex):
15452         (WebCore::IDBBackingStore::keyExistsInIndex):
15453         (WebCore::IDBBackingStore::Cursor::Cursor):
15454         (WebCore::IDBBackingStore::Cursor::firstSeek):
15455         (WebCore::IDBBackingStore::Cursor::advance):
15456         (WebCore::IDBBackingStore::Cursor::continueFunction):
15457         (WebCore::IDBBackingStore::Cursor::haveEnteredRange):
15458         (WebCore::IDBBackingStore::Cursor::isPastBounds):
15459         (WebCore::ObjectStoreKeyCursorImpl::create):
15460         (ObjectStoreKeyCursorImpl):
15461         (WebCore::ObjectStoreKeyCursorImpl::value):
15462         (WebCore::ObjectStoreKeyCursorImpl::ObjectStoreKeyCursorImpl):
15463         (WebCore::ObjectStoreKeyCursorImpl::loadCurrentRow):
15464         (WebCore::ObjectStoreCursorImpl::create):
15465         (ObjectStoreCursorImpl):
15466         (WebCore::ObjectStoreCursorImpl::value):
15467         (WebCore::ObjectStoreCursorImpl::ObjectStoreCursorImpl):
15468         (WebCore::ObjectStoreCursorImpl::loadCurrentRow):
15469         (WebCore::IndexKeyCursorImpl::create):
15470         (IndexKeyCursorImpl):
15471         (WebCore::IndexKeyCursorImpl::value):
15472         (WebCore::IndexKeyCursorImpl::primaryKey):
15473         (WebCore::IndexKeyCursorImpl::recordIdentifier):
15474         (WebCore::IndexKeyCursorImpl::IndexKeyCursorImpl):
15475         (WebCore::IndexKeyCursorImpl::loadCurrentRow):
15476         (WebCore::IndexCursorImpl::create):
15477         (IndexCursorImpl):
15478         (WebCore::IndexCursorImpl::value):
15479         (WebCore::IndexCursorImpl::primaryKey):
15480         (WebCore::IndexCursorImpl::recordIdentifier):
15481         (WebCore::IndexCursorImpl::IndexCursorImpl):
15482         (WebCore::IndexCursorImpl::loadCurrentRow):
15483         (WebCore::objectStoreCursorOptions):
15484         (WebCore::indexCursorOptions):
15485         (WebCore::IDBBackingStore::openObjectStoreCursor):
15486         (WebCore::IDBBackingStore::openObjectStoreKeyCursor):
15487         (WebCore::IDBBackingStore::openIndexKeyCursor):
15488         (WebCore::IDBBackingStore::openIndexCursor):
15489         (WebCore::IDBBackingStore::Transaction::Transaction):
15490         (WebCore::IDBBackingStore::Transaction::begin):
15491         (WebCore::IDBBackingStore::Transaction::commit):
15492         (WebCore::IDBBackingStore::Transaction::rollback):
15493         * Modules/indexeddb/IDBBackingStore.h:
15494         (WebCore):
15495         (IDBBackingStore):
15496         (RecordIdentifier):
15497         (WebCore::IDBBackingStore::RecordIdentifier::create):
15498         (WebCore::IDBBackingStore::RecordIdentifier::~RecordIdentifier):
15499         (WebCore::IDBBackingStore::RecordIdentifier::isValid):
15500         (WebCore::IDBBackingStore::RecordIdentifier::primaryKey):
15501         (WebCore::IDBBackingStore::RecordIdentifier::setPrimaryKey):
15502         (WebCore::IDBBackingStore::RecordIdentifier::version):
15503         (WebCore::IDBBackingStore::RecordIdentifier::setVersion):
15504         (WebCore::IDBBackingStore::RecordIdentifier::RecordIdentifier):
15505         (Transaction):
15506         (WebCore::IDBBackingStore::Transaction::levelDBTransactionFrom):
15507         (CursorOptions):
15508         (Cursor):
15509         (WebCore::IDBBackingStore::Cursor::Cursor):
15510         (WebCore::IDBBackingStore::Cursor::key):
15511         (WebCore::IDBBackingStore::Cursor::primaryKey):
15512         (WebCore::IDBBackingStore::Cursor::~Cursor):
15513         * Modules/indexeddb/IDBFactoryBackendImpl.cpp:
15514         (WebCore::IDBFactoryBackendImpl::openBackingStore):
15515         * Modules/indexeddb/IDBIndexBackendImpl.cpp:
15516         (WebCore::IDBIndexBackendImpl::countInternal):
15517         * Modules/indexeddb/IDBLevelDBBackingStore.h: Removed.
15518         * Modules/indexeddb/IDBObjectStoreBackendImpl.cpp:
15519         (WebCore::IDBObjectStoreBackendImpl::setIndexKeys):
15520         (WebCore::IDBObjectStoreBackendImpl::putInternal):
15521         (WebCore::IDBObjectStoreBackendImpl::deleteInternal):
15522         * Modules/indexeddb/IDBTransactionBackendImpl.cpp:
15523         (WebCore::IDBTransactionBackendImpl::IDBTransactionBackendImpl):
15524         (WebCore::IDBTransactionBackendImpl::abort):
15525         (WebCore::IDBTransactionBackendImpl::commit):
15526         (WebCore::IDBTransactionBackendImpl::taskTimerFired):
15527         * Modules/indexeddb/IDBTransactionBackendImpl.h:
15528         (WebCore::IDBTransactionBackendImpl::backingStoreTransaction):
15529         * WebCore.xcodeproj/project.pbxproj:
15530
15531 2012-11-09  Tien-Ren Chen  <trchen@chromium.org>
15532
15533         Correct scroll adjustment for touchEvent.clientX/clientY
15534         https://bugs.webkit.org/show_bug.cgi?id=101800
15535
15536         Reviewed by Adam Barth.
15537
15538         FrameView::scrollX/scrollY returns scroll offset in (scaled) frame coordinate.
15539         Convert to document coordinate before passing to JavaScript.
15540
15541         Test: fast/events/touch/touch-scaled-scrolled.html
15542
15543         * dom/Touch.cpp:
15544         (WebCore::contentsX):
15545         (WebCore::contentsY):
15546
15547 2012-11-09  Alexandru Chiculita  <achicu@adobe.com>
15548
15549         [Texmap][CSS Shaders] Enable CSS Shaders in TextureMapperGL
15550         https://bugs.webkit.org/show_bug.cgi?id=98990
15551
15552         Reviewed by Noam Rosenthal.
15553
15554         Added code that draws the Custom Filter in the TextureMapperGL. Also added 
15555         required code to make a depth buffer for a BitmapTextureGL.
15556
15557         Note that the code is not optimized yet, so it will always recompile the shader.
15558
15559         Test: css3/filters/custom/composited/custom-filter-blend-modes.html
15560
15561         * platform/graphics/texmap/TextureMapperGL.cpp:
15562         (WebCore::BitmapTextureGL::BitmapTextureGL):
15563         (WebCore::getPassesRequiredForFilter):
15564         (WebCore):
15565         (WebCore::TextureMapperGL::drawUsingCustomFilter):
15566         (WebCore::BitmapTextureGL::applyFilters):
15567         (WebCore::BitmapTextureGL::initializeDepthBuffer):
15568         (WebCore::BitmapTextureGL::~BitmapTextureGL):
15569         * platform/graphics/texmap/TextureMapperGL.h:
15570         (BitmapTextureGL):
15571
15572 2012-11-09  Sadrul Habib Chowdhury  <sadrul@chromium.org>
15573
15574         CustomEvent: Allow taking in a serialized value during initialization.
15575         https://bugs.webkit.org/show_bug.cgi?id=101348
15576
15577         Reviewed by Adam Barth.
15578
15579         If a CustomEvent is initialized using a serialized value, then for each access
15580         to |detail|, the value is deserialized first. This way, each world gets a different
15581         deserialization.
15582
15583         * UseV8.cmake:
15584         * WebCore.gypi:
15585         * bindings/v8/V8HiddenPropertyName.h:
15586         (WebCore):
15587         * bindings/v8/custom/V8CustomEventCustom.cpp: Copied from Source/WebCore/bindings/v8/V8HiddenPropertyName.h.
15588         (WebCore):
15589         (WebCore::V8CustomEvent::detailAccessorGetter):
15590         * dom/CustomEvent.cpp:
15591         (WebCore::CustomEvent::initCustomEvent):
15592         (WebCore):
15593         * dom/CustomEvent.h:
15594         (CustomEvent):
15595         (WebCore::CustomEvent::serializedScriptValue):
15596         * dom/CustomEvent.idl:
15597
15598 2012-11-09  Brady Eidson  <beidson@apple.com>
15599
15600         Implement WebResourceBuffer::isEmpty()
15601         https://bugs.webkit.org/show_bug.cgi?id=101805
15602
15603         Reviewed by Alexey Proskuryakov.
15604
15605         This is required to make the existing subresource loading in NetworkProcess work correctly,
15606         as there's an isEmpty() check in the WebProcess that decides whether or not to actually deliver 
15607         the data to the ResourceLoader.
15608
15609         No new tests (No change in behavior in any configuration we test.)
15610
15611         * loader/ResourceBuffer.h: Make isEmpty() virtual.
15612
15613 2012-11-09  Michael Saboff  <msaboff@apple.com>
15614
15615         HTML Attributes names and values should be created as 8 bit string where possible
15616         https://bugs.webkit.org/show_bug.cgi?id=101781
15617
15618         Reviewed by Filip Pizlo.
15619
15620         Given that almost all attribute names and values are lower case ASCII, we should try to
15621         create 8 bit strings to process them.  Creating an AtomicString already tries to make
15622         an 8 bit string, so that didn't need to change.
15623
15624         No new tests, functionality covered by existing tests.
15625
15626         * html/HTMLViewSourceDocument.cpp:
15627         (WebCore::HTMLViewSourceDocument::processTagToken):
15628         * html/parser/HTMLMetaCharsetParser.cpp:
15629         (WebCore::HTMLMetaCharsetParser::processMeta):
15630         * html/parser/HTMLPreloadScanner.cpp:
15631         (WebCore::PreloadTask::processAttributes):
15632
15633 2012-11-09  Dana Jansens  <danakj@chromium.org>
15634
15635         [chromium] Define WEBKIT_IMPLEMENTATION everywhere inside WebCore
15636         https://bugs.webkit.org/show_bug.cgi?id=101795
15637
15638         Reviewed by James Robinson.
15639
15640         * WebCore.gyp/WebCore.gyp:
15641
15642 2012-11-09  Sheriff Bot  <webkit.review.bot@gmail.com>
15643
15644         Unreviewed, rolling out r134101.
15645         http://trac.webkit.org/changeset/134101
15646         https://bugs.webkit.org/show_bug.cgi?id=101790
15647
15648         IDBDatabaseBackendTest.BackingStoreRetention failing
15649         (Requested by jsbell|gardener on #webkit).
15650
15651         * GNUmakefile.list.am:
15652         * Modules/indexeddb/IDBBackingStore.cpp:
15653         (WebCore::IDBLevelDBBackingStore::IDBLevelDBBackingStore):
15654         (WebCore::IDBLevelDBBackingStore::~IDBLevelDBBackingStore):
15655         (WebCore::IDBLevelDBBackingStore::open):
15656         (WebCore::IDBLevelDBBackingStore::getDatabaseNames):
15657         (WebCore::IDBLevelDBBackingStore::getIDBDatabaseMetaData):
15658         (WebCore::IDBLevelDBBackingStore::createIDBDatabaseMetaData):
15659         (WebCore::IDBLevelDBBackingStore::updateIDBDatabaseIntVersion):
15660         (WebCore::IDBLevelDBBackingStore::updateIDBDatabaseMetaData):
15661         (WebCore::IDBLevelDBBackingStore::deleteDatabase):
15662         (WebCore::IDBLevelDBBackingStore::getObjectStores):
15663         (WebCore::IDBLevelDBBackingStore::createObjectStore):
15664         (WebCore::IDBLevelDBBackingStore::deleteObjectStore):
15665         (WebCore::IDBLevelDBBackingStore::getRecord):
15666         (WebCore):
15667         (WebCore::IDBLevelDBBackingStore::putRecord):
15668         (WebCore::IDBLevelDBBackingStore::clearObjectStore):
15669         (WebCore::IDBLevelDBBackingStore::createInvalidRecordIdentifier):
15670         (WebCore::IDBLevelDBBackingStore::deleteRecord):
15671         (WebCore::IDBLevelDBBackingStore::getKeyGeneratorCurrentNumber):
15672         (WebCore::IDBLevelDBBackingStore::maybeUpdateKeyGeneratorCurrentNumber):
15673         (WebCore::IDBLevelDBBackingStore::keyExistsInObjectStore):
15674         (WebCore::IDBLevelDBBackingStore::getIndexes):
15675         (WebCore::IDBLevelDBBackingStore::createIndex):
15676         (WebCore::IDBLevelDBBackingStore::deleteIndex):
15677         (WebCore::IDBLevelDBBackingStore::putIndexDataForRecord):
15678         (WebCore::IDBLevelDBBackingStore::deleteIndexDataForRecord):
15679         (WebCore::IDBLevelDBBackingStore::findKeyInIndex):
15680         (WebCore::IDBLevelDBBackingStore::getPrimaryKeyViaIndex):
15681         (WebCore::IDBLevelDBBackingStore::keyExistsInIndex):
15682         (WebCore::IDBLevelDBBackingStore::openObjectStoreCursor):
15683         (WebCore::IDBLevelDBBackingStore::openObjectStoreKeyCursor):
15684         (WebCore::IDBLevelDBBackingStore::openIndexKeyCursor):
15685         (WebCore::IDBLevelDBBackingStore::openIndexCursor):
15686         (WebCore::IDBLevelDBBackingStore::createTransaction):
15687         (WebCore::IDBLevelDBBackingStore::Transaction::create):
15688         (WebCore::IDBLevelDBBackingStore::Transaction::Transaction):
15689         (WebCore::IDBLevelDBBackingStore::Transaction::begin):
15690         (WebCore::IDBLevelDBBackingStore::Transaction::commit):
15691         (WebCore::IDBLevelDBBackingStore::Transaction::rollback):
15692         (WebCore::IDBLevelDBBackingStore::backingStoreExists):
15693         * Modules/indexeddb/IDBBackingStore.h:
15694         (WebCore):
15695         (WebCore::IDBBackingStore::~IDBBackingStore):
15696         (IDBBackingStore):
15697         (RecordIdentifier):
15698         (WebCore::IDBBackingStore::Cursor::~Cursor):
15699         (WebCore::IDBBackingStore::Transaction::~Transaction):
15700         (Transaction):
15701         * Modules/indexeddb/IDBFactoryBackendImpl.cpp:
15702         (WebCore::IDBFactoryBackendImpl::openBackingStore):
15703         * Modules/indexeddb/IDBLevelDBBackingStore.h: Copied from Source/WebCore/Modules/indexeddb/IDBBackingStore.h.
15704         (WebCore):
15705         (IDBLevelDBBackingStore):
15706         (Transaction):
15707         (WebCore::IDBLevelDBBackingStore::Transaction::levelDBTransactionFrom):
15708         * Modules/indexeddb/IDBObjectStoreBackendImpl.cpp:
15709         (WebCore::IDBObjectStoreBackendImpl::setIndexKeys):
15710         (WebCore::IDBObjectStoreBackendImpl::putInternal):
15711         (WebCore::IDBObjectStoreBackendImpl::deleteInternal):
15712         * Modules/indexeddb/IDBTransactionBackendImpl.cpp:
15713         (WebCore::IDBTransactionBackendImpl::IDBTransactionBackendImpl):
15714         (WebCore::IDBTransactionBackendImpl::abort):
15715         (WebCore::IDBTransactionBackendImpl::commit):
15716         (WebCore::IDBTransactionBackendImpl::taskTimerFired):
15717         * Modules/indexeddb/IDBTransactionBackendImpl.h:
15718         (WebCore::IDBTransactionBackendImpl::backingStoreTransaction):
15719         * WebCore.xcodeproj/project.pbxproj:
15720
15721 2012-11-09  Erik Arvidsson  <arv@chromium.org>
15722
15723         REGRESSION (r125239): classList contains() doesn't work after element was moved from strict mode document to quirks mode document
15724         https://bugs.webkit.org/show_bug.cgi?id=101627
15725
15726         Reviewed by Alexey Proskuryakov.
15727
15728         We used to only create m_classNamesForQuirksMode in the constructor or when the class attribute
15729         was changed. If an element is moved from a standards document to a quirks mode document the
15730         m_classNamesForQuirksMode would not be up to date which lead to wrong results.
15731
15732         Now we alway check if m_classNamesForQuirksMode is up to date (in quirks mode only).
15733
15734         Test: fast/dom/Element/class-list-move-between-document-with-different-quirks-mode.html
15735
15736         * html/ClassList.cpp:
15737         (WebCore::ClassList::classNames): Create the m_classNamesForQuirksMode lazily as needed so that
15738                                           it is up to date.
15739         * html/ClassList.h:
15740
15741 2012-11-09  Alec Flett  <alecflett@chromium.org>
15742
15743         IndexedDB: Combine IDBBackingStore and IDBLevelDBBackingStore
15744         https://bugs.webkit.org/show_bug.cgi?id=101415
15745
15746         Reviewed by Tony Chang.
15747
15748         Combine abstract interface IDBBackingStore with its only
15749         implementation, IDBLevelDBBackingStore, to reduce code
15750         complexity. The legacy structure existed to support a SQLLite
15751         IDBBackingStore, but it is no longer worth the complexity to
15752         support this abstraction.
15753
15754         Changes include:
15755         1) Merging IDBLevelDBBackingStore into IDBBackingStore.
15756
15757         2) Merge together IDBBackingStore's inner classes: Cursor,
15758         Transaction, and ObjectStoreRecordIdentfier with their respective
15759         subclasses in IDBLevelDBBackingStore.
15760
15761         3) Simplifying the inner Transaction class to not be refcounted or
15762         virtualized, to allow it to be a simple concrete member of its
15763         owner, IDBTransactionBackendImpl.
15764
15765         No new tests as this is purely a refactor.
15766
15767         * Modules/indexeddb/IDBBackingStore.cpp:
15768         (WebCore::recordInternalError):
15769         (WebCore::setUpMetadata):
15770         (WebCore::IDBBackingStore::IDBBackingStore):
15771         (WebCore):
15772         (WebCore::IDBBackingStore::~IDBBackingStore):
15773         (WebCore::IDBBackingStore::open):
15774         (WebCore::IDBBackingStore::getDatabaseNames):
15775         (WebCore::IDBBackingStore::getIDBDatabaseMetaData):
15776         (WebCore::IDBBackingStore::createIDBDatabaseMetaData):
15777         (WebCore::IDBBackingStore::updateIDBDatabaseIntVersion):
15778         (WebCore::IDBBackingStore::updateIDBDatabaseMetaData):
15779         (WebCore::deleteRange):
15780         (WebCore::IDBBackingStore::deleteDatabase):
15781         (WebCore::IDBBackingStore::getObjectStores):
15782         (WebCore::setMaxObjectStoreId):
15783         (WebCore::IDBBackingStore::createObjectStore):
15784         (WebCore::IDBBackingStore::deleteObjectStore):
15785         (WebCore::IDBBackingStore::getRecord):
15786         (WebCore::IDBBackingStore::putRecord):
15787         (WebCore::IDBBackingStore::clearObjectStore):
15788         (WebCore::IDBBackingStore::deleteRecord):
15789         (WebCore::IDBBackingStore::getKeyGeneratorCurrentNumber):
15790         (WebCore::IDBBackingStore::maybeUpdateKeyGeneratorCurrentNumber):
15791         (WebCore::IDBBackingStore::keyExistsInObjectStore):
15792         (WebCore::IDBBackingStore::getIndexes):
15793         (WebCore::setMaxIndexId):
15794         (WebCore::IDBBackingStore::createIndex):
15795         (WebCore::IDBBackingStore::deleteIndex):
15796         (WebCore::IDBBackingStore::putIndexDataForRecord):
15797         (WebCore::IDBBackingStore::deleteIndexDataForRecord):
15798         (WebCore::IDBBackingStore::findKeyInIndex):
15799         (WebCore::IDBBackingStore::getPrimaryKeyViaIndex):
15800         (WebCore::IDBBackingStore::keyExistsInIndex):
15801         (WebCore::IDBBackingStore::Cursor::Cursor):
15802         (WebCore::IDBBackingStore::Cursor::firstSeek):
15803         (WebCore::IDBBackingStore::Cursor::advance):
15804         (WebCore::IDBBackingStore::Cursor::continueFunction):
15805         (WebCore::IDBBackingStore::Cursor::haveEnteredRange):
15806         (WebCore::IDBBackingStore::Cursor::isPastBounds):
15807         (WebCore::ObjectStoreKeyCursorImpl::create):
15808         (ObjectStoreKeyCursorImpl):
15809         (WebCore::ObjectStoreKeyCursorImpl::value):
15810         (WebCore::ObjectStoreKeyCursorImpl::ObjectStoreKeyCursorImpl):
15811         (WebCore::ObjectStoreKeyCursorImpl::loadCurrentRow):
15812         (WebCore::ObjectStoreCursorImpl::create):
15813         (ObjectStoreCursorImpl):
15814         (WebCore::ObjectStoreCursorImpl::value):
15815         (WebCore::ObjectStoreCursorImpl::ObjectStoreCursorImpl):
15816         (WebCore::ObjectStoreCursorImpl::loadCurrentRow):
15817         (WebCore::IndexKeyCursorImpl::create):
15818         (IndexKeyCursorImpl):
15819         (WebCore::IndexKeyCursorImpl::value):
15820         (WebCore::IndexKeyCursorImpl::primaryKey):
15821         (WebCore::IndexKeyCursorImpl::recordIdentifier):
15822         (WebCore::IndexKeyCursorImpl::IndexKeyCursorImpl):
15823         (WebCore::IndexKeyCursorImpl::loadCurrentRow):
15824         (WebCore::IndexCursorImpl::create):
15825         (IndexCursorImpl):
15826         (WebCore::IndexCursorImpl::value):
15827         (WebCore::IndexCursorImpl::primaryKey):
15828         (WebCore::IndexCursorImpl::recordIdentifier):
15829         (WebCore::IndexCursorImpl::IndexCursorImpl):
15830         (WebCore::IndexCursorImpl::loadCurrentRow):
15831         (WebCore::objectStoreCursorOptions):
15832         (WebCore::indexCursorOptions):
15833         (WebCore::IDBBackingStore::openObjectStoreCursor):
15834         (WebCore::IDBBackingStore::openObjectStoreKeyCursor):
15835         (WebCore::IDBBackingStore::openIndexKeyCursor):
15836         (WebCore::IDBBackingStore::openIndexCursor):
15837         (WebCore::IDBBackingStore::Transaction::Transaction):
15838         (WebCore::IDBBackingStore::Transaction::begin):
15839         (WebCore::IDBBackingStore::Transaction::commit):
15840         (WebCore::IDBBackingStore::Transaction::rollback):
15841         * Modules/indexeddb/IDBBackingStore.h:
15842         (WebCore):
15843         (IDBBackingStore):
15844         (RecordIdentifier):
15845         (WebCore::IDBBackingStore::RecordIdentifier::create):
15846         (WebCore::IDBBackingStore::RecordIdentifier::~RecordIdentifier):
15847         (WebCore::IDBBackingStore::RecordIdentifier::isValid):
15848         (WebCore::IDBBackingStore::RecordIdentifier::primaryKey):
15849         (WebCore::IDBBackingStore::RecordIdentifier::setPrimaryKey):
15850         (WebCore::IDBBackingStore::RecordIdentifier::version):
15851         (WebCore::IDBBackingStore::RecordIdentifier::setVersion):
15852         (WebCore::IDBBackingStore::RecordIdentifier::RecordIdentifier):
15853         (Transaction):
15854         (WebCore::IDBBackingStore::Transaction::levelDBTransactionFrom):
15855         (CursorOptions):
15856         (Cursor):
15857         (WebCore::IDBBackingStore::Cursor::Cursor):
15858         (WebCore::IDBBackingStore::Cursor::key):
15859         (WebCore::IDBBackingStore::Cursor::primaryKey):
15860         (WebCore::IDBBackingStore::Cursor::~Cursor):
15861         * Modules/indexeddb/IDBFactoryBackendImpl.cpp:
15862         (WebCore::IDBFactoryBackendImpl::openBackingStore):
15863         * Modules/indexeddb/IDBIndexBackendImpl.cpp:
15864         (WebCore::IDBIndexBackendImpl::countInternal):
15865         * Modules/indexeddb/IDBLevelDBBackingStore.h: Removed.
15866         * Modules/indexeddb/IDBObjectStoreBackendImpl.cpp:
15867         (WebCore::IDBObjectStoreBackendImpl::setIndexKeys):
15868         (WebCore::IDBObjectStoreBackendImpl::putInternal):
15869         (WebCore::IDBObjectStoreBackendImpl::deleteInternal):
15870         * Modules/indexeddb/IDBTransactionBackendImpl.cpp:
15871         (WebCore::IDBTransactionBackendImpl::IDBTransactionBackendImpl):
15872         (WebCore::IDBTransactionBackendImpl::abort):
15873         (WebCore::IDBTransactionBackendImpl::commit):
15874         (WebCore::IDBTransactionBackendImpl::taskTimerFired):
15875         * Modules/indexeddb/IDBTransactionBackendImpl.h:
15876         (WebCore::IDBTransactionBackendImpl::backingStoreTransaction):
15877         * WebCore.xcodeproj/project.pbxproj:
15878
15879 2012-10-28  Timothy Hatcher  <timothy@apple.com>
15880
15881         Make -webkit-canvas in CSS use the full backing store instead
15882         of always 1x when rendering.
15883
15884         https://bugs.webkit.org/show_bug.cgi?id=100611
15885
15886         Reviewed by Dean Jackson.
15887
15888         Test: fast/canvas/canvas-as-image-hidpi.html
15889
15890         * html/HTMLCanvasElement.cpp:
15891         (WebCore::HTMLCanvasElement::makePresentationCopy): Pass Unscaled to copyImage.
15892         (WebCore::HTMLCanvasElement::copiedImage): Ditto.
15893         * platform/graphics/ImageBuffer.h:
15894         * platform/graphics/cg/ImageBufferCG.cpp:
15895         (WebCore::ImageBuffer::copyImage): Added Scale parameter and use copyNativeImage for Unscaled.
15896         * platform/graphics/cairo/ImageBufferCairo.cpp:
15897         (WebCore::ImageBuffer::copyImage): Added unnamed ScaleBehavior parameter.
15898         * platform/graphics/qt/ImageBufferQt.cpp:
15899         (WebCore::ImageBuffer::copyImage): Ditto.
15900         * platform/graphics/skia/ImageBufferSkia.cpp:
15901         (WebCore::ImageBuffer::copyImage): Ditto.
15902         * platform/graphics/wince/ImageBufferWinCE.cpp:
15903         (WebCore::ImageBuffer::copyImage): Ditto.
15904         * platform/graphics/wx/ImageBufferWx.cpp:
15905         (WebCore::ImageBuffer::copyImage): Ditto.
15906
15907 2012-10-28  Timothy Hatcher  <timothy@apple.com>
15908
15909         Reset the canvas backing store pixel ratio when the buffer resizes.
15910
15911         The backing store was not being recreated using the current page pixel ratio
15912         when a resize occurred.
15913
15914         https://bugs.webkit.org/show_bug.cgi?id=100608
15915
15916         Reviewed by Darin Adler.
15917
15918         Test: fast/canvas/canvas-resize-reset-pixelRatio.html
15919
15920         * html/HTMLCanvasElement.cpp:
15921         (WebCore::HTMLCanvasElement::HTMLCanvasElement): Use targetDeviceScaleFactor.
15922         (WebCore::HTMLCanvasElement::reset): Do a clear only if the pixel ratios also
15923         match. Store the new pixel ratio in m_deviceScaleFactor.
15924         (WebCore::HTMLCanvasElement::targetDeviceScaleFactor): Added.
15925         * html/HTMLCanvasElement.h:
15926         (WebCore::HTMLCanvasElement::setSize): Return early only if the sizes and
15927         pixel ratios match.
15928
15929 2012-11-08  Ryosuke Niwa  <rniwa@webkit.org>
15930
15931         RemoveFormat command doesn't remove background color
15932         https://bugs.webkit.org/show_bug.cgi?id=101682
15933
15934         Reviewed by Tony Chang.
15935
15936         Fixed the bug by removing all non-transparent background-color properties.
15937
15938         Test: editing/execCommand/remove-format-background-color.html
15939
15940         * editing/RemoveFormatCommand.cpp:
15941         (WebCore::RemoveFormatCommand::doApply):
15942
15943 2012-11-09  Alec Flett  <alecflett@chromium.org>
15944
15945         IndexedDB: switch frontend to use int64_t-based references
15946         https://bugs.webkit.org/show_bug.cgi?id=100426
15947
15948         Reviewed by Tony Chang.
15949
15950         Remove String-based objectStore/index references, obsoleted by
15951         https://bugs.webkit.org/show_bug.cgi?id=100425.
15952
15953         No new tests as this is the second half of a refactor.
15954
15955         * Modules/indexeddb/IDBCallbacks.h:
15956         * Modules/indexeddb/IDBDatabase.cpp:
15957         (WebCore::IDBDatabase::deleteObjectStore):
15958         (WebCore::IDBDatabase::transaction):
15959         * Modules/indexeddb/IDBDatabaseBackendImpl.cpp:
15960         (WebCore::IDBDatabaseBackendImpl::setVersion):
15961         (WebCore::IDBDatabaseBackendImpl::transaction):
15962         (WebCore::IDBDatabaseBackendImpl::runIntVersionChangeTransaction):
15963         * Modules/indexeddb/IDBDatabaseBackendImpl.h:
15964         (IDBDatabaseBackendImpl):
15965         * Modules/indexeddb/IDBDatabaseBackendInterface.h:
15966         (IDBDatabaseBackendInterface):
15967         * Modules/indexeddb/IDBMetadata.h:
15968         (WebCore::IDBObjectStoreMetadata::findIndex):
15969         (IDBObjectStoreMetadata):
15970         (WebCore::IDBObjectStoreMetadata::containsIndex):
15971         * Modules/indexeddb/IDBObjectStore.cpp:
15972         (WebCore::IDBObjectStore::put):
15973         (WebCore):
15974         (WebCore::IDBObjectStore::index):
15975         (WebCore::IDBObjectStore::deleteIndex):
15976         * Modules/indexeddb/IDBObjectStoreBackendImpl.cpp:
15977         (WebCore::IDBObjectStoreBackendImpl::put):
15978         (WebCore):
15979         * Modules/indexeddb/IDBObjectStoreBackendImpl.h:
15980         (IDBObjectStoreBackendImpl):
15981         * Modules/indexeddb/IDBObjectStoreBackendInterface.h:
15982         * inspector/Inspector-1.0.json:
15983         * inspector/Inspector.json:
15984         * inspector/InspectorIndexedDBAgent.cpp:
15985         (WebCore):
15986         (WebCore::InspectorIndexedDBAgent::requestData):
15987         * inspector/InspectorIndexedDBAgent.h:
15988         (InspectorIndexedDBAgent):
15989
15990 2012-11-09  Mario Sanchez Prada  <mario@webkit.org>
15991
15992         [GTK] Isolate the GTK/Gail/Pango specific code in accessibility/gtk
15993         https://bugs.webkit.org/show_bug.cgi?id=101727
15994
15995         Reviewed by Chris Fleizach.
15996
15997         Added conditional compilation checks for GTK+ specific
15998         accessibility code, to pave the way for sharing this
15999         implementation with other ports (e.g WebKitEFL).
16000
16001         * accessibility/gtk/WebKitAccessibleInterfaceText.cpp:
16002         (webkitAccessibleTextGetTextAfterOffset): Added conditional
16003         compilation checks, only implementing it in GTK so far.
16004         (webkitAccessibleTextGetTextAtOffset): Ditto.
16005         (webkitAccessibleTextGetTextBeforeOffset): Ditto.
16006         * accessibility/gtk/WebKitAccessibleWrapperAtk.cpp:
16007         (atkParentOfRootObject): Added conditional compilation checks,
16008         only implementing in GTK the part of getting the accessible object
16009         for the root object.
16010         (webkitAccessibleGetParent): Updated comments.
16011         (webkitAccessibleGetNChildren): Ditto.
16012         (webkitAccessibleRefChild): Ditto.
16013         (webkitAccessibleGetIndexInParent): Ditto.
16014         (webkitAccessibleGetAttributes): Only set the 'toolkit' attribute
16015         for GTK. Other ports might be interested in this too.
16016         (setAtkStateSetFromCoreObject): Updated comments.
16017
16018 2012-11-09  Tommy Widenflycht  <tommyw@google.com>
16019
16020         MediaStream API: Don't trigger any object deletion during RTCPeerConnection::stop
16021         https://bugs.webkit.org/show_bug.cgi?id=101586
16022
16023         Reviewed by Adam Barth.
16024
16025         Stop calling stop on the RTCPeerConnectionHandler, and don't delete it, when
16026         ActiveDOMObject::stop is called on RTCPeerConnection. Due to the async nature of the new
16027         API some WebCore objects might be cleaned away which is not allowed at this stage.
16028
16029         This behaviour is not possible to test unfortunately in webkit.
16030
16031         * Modules/mediastream/RTCPeerConnection.cpp:
16032         (WebCore::RTCPeerConnection::stop):
16033
16034 2012-11-09  Joshua Bell  <jsbell@chromium.org>
16035
16036         [Chromium] Unreviewed gardening. Fix chromium-win builds following r134082
16037
16038         * WebCore.gypi:
16039
16040 2012-11-09  Dan Carney  <dcarney@google.com>
16041
16042         [V8] Remove ScriptController::windowShell()
16043         https://bugs.webkit.org/show_bug.cgi?id=100235
16044
16045         Reviewed by Adam Barth.
16046
16047         Refactored windowShell(DOMWrapperWorld*) and
16048         existingWindowShell(DOMWrapperWorld*) to be like JSC.
16049
16050         No new tests. No change in functionality.
16051
16052         * bindings/scripts/CodeGeneratorV8.pm:
16053         (GenerateToV8Converters):
16054         * bindings/v8/DOMWrapperWorld.cpp:
16055         (WebCore::isolatedWorldMap):
16056         (WebCore::DOMWrapperWorld::getAllWorlds):
16057         (WebCore):
16058         * bindings/v8/DOMWrapperWorld.h:
16059         (DOMWrapperWorld):
16060         * bindings/v8/PageScriptDebugServer.cpp:
16061         (WebCore::PageScriptDebugServer::addListener):
16062         * bindings/v8/ScriptController.cpp:
16063         (WebCore::ScriptController::~ScriptController):
16064         (WebCore::ScriptController::clearForOutOfMemory):
16065         (WebCore):
16066         (WebCore::ScriptController::clearForClose):
16067         (WebCore::ScriptController::updateSecurityOrigin):
16068         (WebCore::ScriptController::initializeMainWorld): Returns true if the main world was initialized.
16069         (WebCore::existingWindowShellWorkaroundWorld):
16070         (WebCore::ScriptController::existingWindowShell):
16071         (WebCore::ScriptController::windowShell):
16072         (WebCore::ScriptController::evaluateInIsolatedWorld):
16073         (WebCore::ScriptController::currentWorldContext):
16074         (WebCore::ScriptController::mainWorldContext):
16075         (WebCore::ScriptController::haveInterpreter):
16076         (WebCore::ScriptController::enableEval):
16077         (WebCore::ScriptController::disableEval):
16078         (WebCore::ScriptController::clearWindowShell):
16079         (WebCore::ScriptController::setContextDebugId):
16080         (WebCore::ScriptController::updateDocument):
16081         (WebCore::ScriptController::namedItemAdded):
16082         (WebCore::ScriptController::namedItemRemoved):
16083         * bindings/v8/ScriptController.h:
16084         (ScriptController):
16085         (WebCore::ScriptController::getAllWorlds):
16086         * bindings/v8/V8Binding.cpp:
16087         (WebCore::perContextDataForCurrentWorld):
16088         (WebCore::handleOutOfMemory):
16089         * bindings/v8/V8DOMWindowShell.cpp:
16090         (WebCore::V8DOMWindowShell::initializeIfNeeded):
16091         (WebCore::V8DOMWindowShell::updateDocument):
16092         (WebCore::V8DOMWindowShell::namedItemAdded):
16093         (WebCore::V8DOMWindowShell::namedItemRemoved):
16094         * bindings/v8/V8DOMWindowShell.h:
16095         (WebCore::V8DOMWindowShell::isContextInitialized):
16096         (WebCore::V8DOMWindowShell::isGlobalInitialized):
16097         * bindings/v8/custom/V8DocumentCustom.cpp:
16098         (WebCore::toV8):
16099         * bindings/v8/custom/V8HTMLDocumentCustom.cpp:
16100         (WebCore::toV8):
16101         * bindings/v8/custom/V8SVGDocumentCustom.cpp:
16102         (WebCore::toV8):
16103
16104 2012-11-09  Adam Barth  <abarth@webkit.org>
16105
16106         [V8] Remove a level of indirection in DOMDataStore
16107         https://bugs.webkit.org/show_bug.cgi?id=101690
16108
16109         Reviewed by Kentaro Hara.
16110
16111         There is no longer any reason for the DOMDataStore to hold the wrapper
16112         map via a pointer. It can just hold the wrapper map directly, saving a
16113         level of indirection. I doubt this has any measurable performance gain.
16114
16115         * bindings/v8/DOMDataStore.cpp:
16116         (WebCore::DOMDataStore::DOMDataStore):
16117         (WebCore::DOMDataStore::~DOMDataStore):
16118         (WebCore::DOMDataStore::reportMemoryUsage):
16119         * bindings/v8/DOMDataStore.h:
16120         (WebCore::DOMDataStore::get):
16121         (WebCore::DOMDataStore::set):
16122         (DOMDataStore):
16123
16124 2012-11-09  Mihnea Ovidenie  <mihnea@adobe.com>
16125
16126         [CSSRegions] Region styling properties are not filtered correctly
16127         https://bugs.webkit.org/show_bug.cgi?id=101768
16128
16129         Reviewed by Andreas Kling.
16130
16131         Region styling allows only a handful of css properties. There is a mechanism in place,
16132         in StyleResolver::isValidRegionStyleProperty that filters the supported region style properties.
16133         In order to be effective, this mechanism relies on RuleData::m_isInRegionRule being set correctly.
16134         This patch makes sure that the flag RuleData::m_isInRegionRule is set properly in RuleData constructor.
16135
16136         Test: fast/regions/region-style-not-supported-properties.html
16137
16138         * css/RuleSet.cpp:
16139         (WebCore::RuleData::RuleData):
16140
16141 2012-11-09  Tommy Widenflycht  <tommyw@google.com>
16142
16143         MediaStream API: Deleting all files relating to the deprecated PeerConnection00
16144         https://bugs.webkit.org/show_bug.cgi?id=101730
16145
16146         Reviewed by Adam Barth.
16147
16148         Since RTCPeerConenction has superseeded PeerConnection00 this patch removes all
16149         files relating to the old API.
16150
16151         No testing needed, the remaining tests makes sure that nothing else breaks.
16152
16153         * CMakeLists.txt:
16154         * GNUmakefile.list.am:
16155         * Modules/mediastream/DOMWindowMediaStream.idl:
16156         * Modules/mediastream/IceCallback.h: Removed.
16157         * Modules/mediastream/IceCallback.idl: Removed.
16158         * Modules/mediastream/IceCandidate.cpp: Removed.
16159         * Modules/mediastream/IceCandidate.h: Removed.
16160         * Modules/mediastream/IceCandidate.idl: Removed.
16161         * Modules/mediastream/PeerConnection00.cpp: Removed.
16162         * Modules/mediastream/PeerConnection00.h: Removed.
16163         * Modules/mediastream/PeerConnection00.idl: Removed.
16164         * Modules/mediastream/SessionDescription.cpp: Removed.
16165         * Modules/mediastream/SessionDescription.h: Removed.
16166         * Modules/mediastream/SessionDescription.idl: Removed.
16167         * WebCore.gypi:
16168         * bindings/generic/RuntimeEnabledFeatures.cpp:
16169         (WebCore):
16170         * bindings/generic/RuntimeEnabledFeatures.h:
16171         (RuntimeEnabledFeatures):
16172         * dom/EventTargetFactory.in:
16173         * platform/chromium/support/WebICECandidateDescriptor.cpp: Removed.
16174         * platform/chromium/support/WebICEOptions.cpp: Removed.
16175         * platform/chromium/support/WebMediaHints.cpp: Removed.
16176         * platform/mediastream/IceCandidateDescriptor.cpp: Removed.
16177         * platform/mediastream/IceCandidateDescriptor.h: Removed.
16178         * platform/mediastream/IceOptions.cpp: Removed.
16179         * platform/mediastream/IceOptions.h: Removed.
16180         * platform/mediastream/MediaHints.cpp: Removed.
16181         * platform/mediastream/MediaHints.h: Removed.
16182         * platform/mediastream/MediaStreamCenter.h:
16183         (WebCore):
16184         (MediaStreamCenter):
16185         * platform/mediastream/PeerConnection00Handler.cpp: Removed.
16186         * platform/mediastream/PeerConnection00Handler.h: Removed.
16187         * platform/mediastream/PeerConnection00HandlerClient.h: Removed.
16188         * platform/mediastream/SessionDescriptionDescriptor.cpp: Removed.
16189         * platform/mediastream/SessionDescriptionDescriptor.h: Removed.
16190         * platform/mediastream/blackberry/MediaStreamCenterBlackBerry.cpp:
16191         * platform/mediastream/blackberry/MediaStreamCenterBlackBerry.h:
16192         (WebCore):
16193         (MediaStreamCenterBlackBerry):
16194         * platform/mediastream/chromium/MediaStreamCenterChromium.cpp:
16195         * platform/mediastream/chromium/MediaStreamCenterChromium.h:
16196         (WebCore):
16197         (MediaStreamCenterChromium):
16198         * platform/mediastream/chromium/PeerConnection00Handler.cpp: Removed.
16199         * platform/mediastream/chromium/PeerConnection00HandlerInternal.cpp: Removed.
16200         * platform/mediastream/chromium/PeerConnection00HandlerInternal.h: Removed.
16201         * platform/mediastream/gstreamer/MediaStreamCenterGStreamer.cpp:
16202         * platform/mediastream/gstreamer/MediaStreamCenterGStreamer.h:
16203         (WebCore):
16204         (MediaStreamCenterGStreamer):
16205
16206 2012-11-09  Jer Noble  <jer.noble@apple.com>
16207
16208         Plugin diagnostic logging should send plugin file basename instead of MIME type.
16209         https://bugs.webkit.org/show_bug.cgi?id=101679
16210
16211         Reviewed by Eric Carlson.
16212
16213         Log the basename of the plugin file rather than the mime type so as to more
16214         accurately log which plugin was used to handle the request.
16215
16216         * loader/SubframeLoader.cpp:
16217         (WebCore::logPluginRequest): Log the plugin 'file' field, if present.
16218         * plugins/PluginData.cpp:
16219         (WebCore::PluginData::pluginInfoForMimeType): Factored out from pluginNameForMimeType.
16220         (WebCore::PluginData::pluginNameForMimeType): Use pluginInfoForMimeType to retrieve name field.
16221         (WebCore::PluginData::pluginFileForMimeType): Use pluginInfoForMimeType to retrieve file field.
16222         * plugins/PluginData.h:
16223
16224 2012-11-09  Alexey Proskuryakov  <ap@apple.com>
16225
16226         CookieJar uses Document class, which is a layering violation
16227         https://bugs.webkit.org/show_bug.cgi?id=101621
16228
16229         Reviewed by Brady Eidson.
16230
16231         Split CookieJar in two parts, one that takes a Document, and another that is a pure
16232         platform one, using NetworkingContext to access the correct platform storage.
16233
16234         * GNUmakefile.list.am:
16235         * PlatformBlackBerry.cmake:
16236         * Target.pri:
16237         * WebCore.gypi:
16238         * WebCore.gyp/WebCore.gyp:
16239         * WebCore.vcproj/WebCore.vcproj:
16240         * WebCore.xcodeproj/project.pbxproj:
16241         Updated.
16242
16243         * loader/CookieJar.cpp: Added.
16244         (WebCore::networkingContext):
16245         (WebCore::cookies):
16246         (WebCore::setCookies):
16247         (WebCore::cookiesEnabled):
16248         (WebCore::cookieRequestHeaderFieldValue):
16249         (WebCore::getRawCookies):
16250         (WebCore::deleteCookie):
16251         (WebCore::getHostnamesWithCookies):
16252         (WebCore::deleteCookiesForHostname):
16253         (WebCore::deleteAllCookies):
16254         * loader/CookieJar.h: Copied from Source/WebCore/platform/CookieJar.h.
16255         This is an adaptor for pure platform implementations. Clients continue to use the
16256         old interface unchanged.
16257
16258         * platform/blackberry/CookieJarBlackBerry.cpp: Removed.
16259         * loader/blackberry/CookieJarBlackBerry.cpp: Copied from Source/WebCore/platform/blackberry/CookieJarBlackBerry.cpp.
16260         * platform/network/chromium/CookieJarChromium.cpp: Removed.
16261         * loader/chromium/CookieJarChromium.cpp: Copied from Source/WebCore/platform/network/chromium/CookieJarChromium.cpp.
16262         These platforms do not have a pure platform implementation yet, so they just keep
16263         to use original implementations. Since the code is not in platform/ any more, the
16264         violation is resolved for Chromium and Blackberry, too.
16265
16266         * platform/CookieJar.h: Removed.
16267         * platform/network/PlatformCookieJar.h: Copied from Source/WebCore/platform/CookieJar.h.
16268         The platform interface is now more uniform - all functions take a NetworkingContext
16269         instead of hardcoding which cookie storage to use in some cases.
16270         Renamed functions that are only useful for document.cookie implementation to look
16271         less generic.
16272
16273         * platform/mac/CookieJar.mm: Removed.
16274         * platform/network/mac/CookieJarMac.mm: Copied from Source/WebCore/platform/mac/CookieJar.mm.
16275         (WebCore::cookiesForDOM): This now takes a context instead of Document, and also
16276         takes a firstParty URL (unused on Mac, but used on some other platforms).
16277         (WebCore::cookieRequestHeaderFieldValue): Get cookie storage from context (and
16278         use shared one if context is null).
16279         (WebCore::setCookiesFromDOM): Ditto.
16280         (WebCore::cookiesEnabled): Ditto.
16281         (WebCore::getRawCookies): Ditto.
16282         (WebCore::deleteCookie): Ditto.
16283         (WebCore::getHostnamesWithCookies): Ditto. This used to only support default storage,
16284         but its cleaner to have a uniform interface.
16285         (WebCore::deleteCookiesForHostname): Ditto.
16286         (WebCore::deleteAllCookies): Ditto.
16287
16288         * platform/network/cf/CookieJarCFNet.cpp:
16289         Same changes as on Mac.
16290
16291         * platform/network/curl/CookieJarCurl.cpp:
16292         Updated for new interface. Implementation is largely a dummy one.
16293
16294         * platform/qt/CookieJarQt.h: Removed.
16295         * platform/network/qt/CookieJarQt.h: Copied from Source/WebCore/platform/qt/CookieJarQt.h.
16296         Moved to a common location, most cookie files were in network/ already.
16297
16298         * platform/qt/CookieJarQt.cpp: Removed.
16299         * platform/network/qt/CookieJarQt.cpp: Copied from Source/WebCore/platform/qt/CookieJarQt.cpp.
16300         (WebCore::setCookiesFromDOM): Use context's or shared cooke jar as appropriate.
16301         (WebCore::cookiesForDOM): Ditto.
16302         (WebCore::cookieRequestHeaderFieldValue): Ditto.
16303         (WebCore::cookiesEnabled): Ditto.
16304         (WebCore::getRawCookies): Ditto.
16305         (WebCore::deleteCookie): Ditto.
16306         (WebCore::getHostnamesWithCookies): Back-end implementation can only handle shared
16307         jar here, assert that argument does not request another one.
16308         (WebCore::deleteCookiesForHostname): Ditto.
16309         (WebCore::deleteAllCookies): Ditto.
16310
16311         * platform/network/soup/CookieJarSoup.cpp:
16312         (WebCore::cookieJarForContext):
16313         (WebCore::setCookiesFromDOM):
16314         (WebCore::cookiesForContext):
16315         (WebCore::cookiesForDOM):
16316         (WebCore::cookieRequestHeaderFieldValue):
16317         (WebCore::cookiesEnabled):
16318         (WebCore::getRawCookies):
16319         (WebCore::deleteCookie):
16320         (WebCore::getHostnamesWithCookies):
16321         (WebCore::deleteCookiesForHostname):
16322         (WebCore::deleteAllCookies):
16323         Updated for new function signatures, and use the same cross-platform logic for
16324         choosing a cookie jar.
16325
16326         * platform/network/soup/CookieJarSoup.h: Don't include unnecessary CooieJar.h.
16327         
16328         * platform/network/win/CookieJarWin.cpp:
16329         (WebCore::setCookiesFromDOM):
16330         (WebCore::cookiesForDOM):
16331         (WebCore::cookieRequestHeaderFieldValue):
16332         (WebCore::cookiesEnabled):
16333         (WebCore::getRawCookies):
16334         (WebCore::deleteCookie):
16335         (WebCore::getHostnamesWithCookies):
16336         (WebCore::deleteCookiesForHostname):
16337         (WebCore::deleteAllCookies):
16338         Updated for new function signatures.
16339
16340 2012-11-09  Bruno de Oliveira Abinader  <bruno.abinader@basyskom.com>
16341
16342         [css] Text decoration's "blink" not valid when CSS3_TEXT is enabled
16343         https://bugs.webkit.org/show_bug.cgi?id=101750
16344
16345         Reviewed by Ojan Vafai.
16346
16347         This patch fixes an issue regarding "blink" value, which is valid for CSS 2.1
16348         "text-decoration" property, but recently have its parser function modified by
16349         the addition of CSS3 "-webkit-text-decoration-line" property.
16350
16351         The 'fast/css/getComputedStyle/getComputedStyle-text-decoration.html'
16352         layout test is updated with all possible value combinations.
16353
16354         * css/CSSParser.cpp:
16355         (WebCore::CSSParser::parseTextDecoration): Added 'blink' value to list
16356         if accepted.
16357
16358 2012-11-09  Xan Lopez  <xlopez@igalia.com>
16359
16360         [GTK] Do not use 'ls' to list IDL files in EXTRA_DIST
16361         https://bugs.webkit.org/show_bug.cgi?id=101581
16362
16363         Reviewed by Martin Robinson.
16364
16365         Use normal GNU Make wildcards instead of 'ls' to list files in
16366         EXTRA_DIST, it's safer and more straightforward.
16367
16368         * GNUmakefile.am: ditto.
16369
16370 2012-11-09  Charles Wei  <charles.wei@torchmobile.com.cn>
16371
16372         Need to clear exception in JSDictionary that might have been caused by previous operation.
16373         https://bugs.webkit.org/show_bug.cgi?id=96614
16374
16375         Reviewed by George Staikos.
16376
16377         IndexedDB IDBDatabase::createObjectStore supports both String type of KeyPath and
16378         String Array type of KeyPath. It will first try to get the keyPath as a String Array,
16379         if fails, it will try to get KeyPath as a String, from the Dictionary. The first get
16380         will leave the internal ExecState of Dictionary in exception state. We need to clear
16381         the exception state before the 2nd query, otherwise the second query will also fail.
16382
16383         No new tests. The existing test case LayoutTests/storage/indexeddb/tutorial.html should
16384         now work with this patch.
16385         * bindings/js/JSDictionary.cpp:
16386         (WebCore::JSDictionary::getWithUndefinedOrNullCheck):
16387
16388 2012-11-09  Keishi Hattori  <keishi@webkit.org>
16389
16390         Month/week picker should submit month/week string
16391         https://bugs.webkit.org/show_bug.cgi?id=101744
16392
16393         Reviewed by Kent Tamura.
16394
16395         Month/week picker should submit month/week string and not yyyy-mm-dd.
16396
16397         No new tests. Test will be added in Bug 101555 and Bug 101556.
16398
16399         * Resources/pagepopups/calendarPicker.js:
16400         (DaysTable.prototype._handleDayClick):
16401
16402 2012-11-07  Pavel Feldman  <pfeldman@chromium.org>
16403
16404         Web Inspector: wrong output for empty object {}
16405         https://bugs.webkit.org/show_bug.cgi?id=101356
16406
16407         Reviewed by Vsevolod Vlasov.
16408
16409         Changed preview formatting to iterate over enumerable properties only + visit the prototypes.
16410
16411         * inspector/InjectedScriptSource.js:
16412         (.):
16413         * inspector/front-end/ConsoleMessage.js:
16414         (WebInspector.ConsoleMessageImpl.prototype._appendObjectPreview):
16415
16416 2012-11-09  Keishi Hattori  <keishi@webkit.org>
16417
16418         Fix annotations in page popup files
16419         https://bugs.webkit.org/show_bug.cgi?id=101736
16420
16421         Reviewed by Kent Tamura.
16422
16423         Add @constructor where needed. Replacing /* with /** for annotations.
16424
16425         No new tests. No behavior change.
16426
16427         * Resources/pagepopups/calendarPicker.js:
16428         * Resources/pagepopups/pickerCommon.js:
16429         * Resources/pagepopups/suggestionPicker.js:
16430
16431 2012-11-09  Huang Dongsung  <luxtella@company100.net>
16432
16433         Coordinated Graphics: Remove a backing store of GraphicsLayer when the layer is far from the viewport.
16434         https://bugs.webkit.org/show_bug.cgi?id=101656
16435
16436         Reviewed by Kenneth Rohde Christiansen.
16437
16438         TiledBackingStore computes cover and keep rects to create, keep or remove tiles
16439         smartly, but currently TiledBackingStore expects a contents rect is big enough
16440         to cover the visibleRect. However, when CoordinatedGraphicsLayer uses TBS, it
16441         is usually wrong expectation.
16442
16443         We must compute cover and keep rects using the visibleRect, instead of
16444         the rect intersecting the visibleRect with m_rect, because TBS can be
16445         used as a backing store of GraphicsLayer and the visible rect usually
16446         does not intersect with m_rect.
16447         In the below case, the intersecting rect is an empty.
16448
16449          +---------------+
16450          |               |
16451          |   m_rect      |
16452          |       +-------|-----------------------+
16453          |       | HERE  |  cover or keep        |
16454          +---------------+      rect             |
16455                  |         +---------+           |
16456                  |         | visible |           |
16457                  |         |  rect   |           |
16458                  |         +---------+           |
16459                  |                               |
16460                  |                               |
16461                  +-------------------------------+
16462
16463         We must create or keep the tiles in the HERE region. Currently in the
16464         case, we do not create or keep tiles on the HERE region. Moreover, in
16465         the case, we early return, which means we don't remove any tiles. It
16466         causes to waste heap and video memory.
16467
16468         This patch changes TiledBackingStore to manage tiles smartly for
16469         Coordinated Graphics.
16470
16471         Changing cache policy is not testable in layout tests.
16472
16473         * platform/graphics/TiledBackingStore.cpp:
16474         (WebCore::TiledBackingStore::visibleRect):
16475         (WebCore::TiledBackingStore::visibleAreaIsCovered):
16476         (WebCore::TiledBackingStore::createTiles):
16477         (WebCore::TiledBackingStore::adjustForContentsRect):
16478         (WebCore::TiledBackingStore::removeAllNonVisibleTiles):
16479         * platform/graphics/TiledBackingStore.h:
16480         (TiledBackingStore):
16481
16482 2012-11-09  Keishi Hattori  <keishi@webkit.org>
16483
16484         Fix undefined variable in Week constructor for calendar picker
16485         https://bugs.webkit.org/show_bug.cgi?id=101734
16486
16487         Reviewed by Kent Tamura.
16488
16489         Closer compiler found an undefined variable in the Week constructor.
16490
16491         No new tests. This code isn't used.
16492
16493         * Resources/pagepopups/calendarPicker.js:
16494         (Week): Used wrong variable name.
16495
16496 2012-11-09  Pavel Feldman  <pfeldman@chromium.org>
16497
16498         Web Inspector: render canvas log as a grid.
16499         https://bugs.webkit.org/show_bug.cgi?id=101732
16500
16501         Reviewed by Vsevolod Vlasov.
16502
16503         * English.lproj/localizedStrings.js:
16504         * inspector/front-end/CanvasProfileView.js:
16505         (WebInspector.CanvasProfileView):
16506         (WebInspector.CanvasProfileView.prototype._onSelectTraceLog):
16507         (WebInspector.CanvasProfileView.prototype._replayTraceLog.didReplayTraceLog):
16508         (WebInspector.CanvasProfileView.prototype._replayTraceLog):
16509         (WebInspector.CanvasProfileHeader.prototype.traceLogId):
16510         (WebInspector.CanvasLogGrid):
16511         (WebInspector.CanvasLogGrid.prototype._didReceiveTraceLog):
16512         (WebInspector.CanvasLogGrid.prototype._createCallNode):
16513         * inspector/front-end/DataGrid.js:
16514         (WebInspector.DataGridNode.prototype.createCell):
16515         * inspector/front-end/canvasProfiler.css:
16516         (#canvas-replay-image-container):
16517
16518 2012-11-09  Allan Sandfeld Jensen  <allan.jensen@digia.com>
16519
16520         Regression(r107593) Crash in ContextMenuController::addInspectElementItem()
16521         https://bugs.webkit.org/show_bug.cgi?id=101595
16522
16523         Reviewed by Simon Hausmann.
16524
16525         If the contextMenu is a null pointer treat it as empty, appendItem will later
16526         create it if necessary.
16527
16528         * page/ContextMenuController.cpp:
16529         (WebCore::ContextMenuController::addInspectElementItem):
16530
16531 2012-11-09  Christophe Dumez  <christophe.dumez@intel.com>
16532
16533         [EFL][WK2] Add support for custom cursors
16534         https://bugs.webkit.org/show_bug.cgi?id=101723
16535
16536         Reviewed by Kenneth Rohde Christiansen.
16537
16538         Add getEvasObject() virtual method to Image class and
16539         provide implementation for BitmapImage.
16540
16541         No new tests, no behavior change.
16542
16543         * platform/efl/CursorEfl.cpp:
16544         (WebCore::cursorString):
16545         * platform/graphics/BitmapImage.h:
16546         (BitmapImage):
16547         * platform/graphics/Image.h:
16548         (Image):
16549         (WebCore::Image::getEvasObject):
16550         * platform/graphics/efl/ImageEfl.cpp:
16551         (WebCore::BitmapImage::getEvasObject):
16552         (WebCore):
16553
16554 2012-11-09  Adam Barth  <abarth@webkit.org>
16555
16556         IndexedDB should use mostly ScriptWrappable DOM objects
16557         https://bugs.webkit.org/show_bug.cgi?id=101694
16558
16559         Reviewed by Kentaro Hara.
16560
16561         These object always have JavaScript wrappers, so we should store the
16562         wrappers inline to use less memory and be faster.
16563
16564         * Modules/indexeddb/IDBAny.h:
16565         * Modules/indexeddb/IDBCursor.h:
16566         * Modules/indexeddb/IDBDatabase.h:
16567         * Modules/indexeddb/IDBFactory.h:
16568         * Modules/indexeddb/IDBIndex.h:
16569         * Modules/indexeddb/IDBKey.h:
16570         * Modules/indexeddb/IDBKeyRange.h:
16571         * Modules/indexeddb/IDBObjectStore.h:
16572         * Modules/indexeddb/IDBRequest.h:
16573         * Modules/indexeddb/IDBTransaction.h:
16574
16575 2012-11-09  Vsevolod Vlasov  <vsevik@chromium.org>
16576
16577         Web Inspector: Add meaningful error message when request content was evicted from inspector cache.
16578         https://bugs.webkit.org/show_bug.cgi?id=101578
16579
16580         Reviewed by Yury Semikhatsky.
16581
16582         Added specific error message when request content was evicted from inspector cache.
16583         Replaced purge with evict in fields/methods names.
16584
16585         * inspector/InspectorResourceAgent.cpp:
16586         (WebCore::InspectorResourceAgent::getResponseBody):
16587         * inspector/NetworkResourcesData.cpp:
16588         (WebCore::NetworkResourcesData::ResourceData::ResourceData):
16589         (WebCore::NetworkResourcesData::ResourceData::evictContent):
16590         (WebCore::NetworkResourcesData::setResourceContent):
16591         (WebCore::NetworkResourcesData::maybeAddResourceData):
16592         (WebCore::NetworkResourcesData::maybeDecodeDataToContent):
16593         (WebCore::NetworkResourcesData::ensureNoDataForRequestId):
16594         (WebCore::NetworkResourcesData::ensureFreeSpace):
16595         * inspector/NetworkResourcesData.h:
16596         (WebCore::NetworkResourcesData::ResourceData::isContentEvicted):
16597         (ResourceData):
16598
16599 2012-11-09  Kent Tamura  <tkent@chromium.org>
16600
16601         Don't use RenderTextControlSingleLine for date/time input types without the multiple-fields UI
16602         https://bugs.webkit.org/show_bug.cgi?id=101722
16603
16604         Reviewed by Hajime Morita.
16605
16606         Because the date/time input types are not textfields, we should not use
16607         RenderTextControlSingleLine, and don't need to create shadow trees for
16608         RenderTextControlSingleLine.
16609
16610         No new tests. Covered by fast/forms/*/*-appearance-*.html.
16611
16612         * css/html.css:
16613         (input[type="date"]):
16614         It has menulist appeanrace by default, and should be a flexible box to
16615         center the inner text. 10em width is almost same as the default width of
16616         text fields.
16617         (input[type="datetime"]): Ditto.
16618         (input[type="datetime-local"]): Ditto.
16619         (input[type="month"]): Ditto.
16620         (input[type="time"]): Ditto.
16621         (input[type="week"]): Ditto.
16622         (input::-webkit-date-and-time-value):
16623         Added. A style for the inner text block.
16624         * html/BaseChooserOnlyDateAndTimeInputType.cpp:
16625         (WebCore::BaseChooserOnlyDateAndTimeInputType::createRenderer):
16626         Don't create RenderTextControlSingleLine.
16627         (WebCore::BaseChooserOnlyDateAndTimeInputType::updateInnerTextValue):
16628         Skip TextFieldInputType::updateInnerTextValue.
16629         (WebCore::BaseChooserOnlyDateAndTimeInputType::forwardEvent):
16630         Skip TextFieldInputType::forwardEvent.
16631         (WebCore::BaseChooserOnlyDateAndTimeInputType::createShadowSubtree):
16632         Just add one element to the shadow root.
16633         (WebCore::BaseChooserOnlyDateAndTimeInputType::updateAppearance):
16634         Sets a localized value to the inner text block.
16635         (WebCore::BaseChooserOnlyDateAndTimeInputType::setValue):
16636         Calls updateAppearance if the value is updated.
16637         * html/BaseChooserOnlyDateAndTimeInputType.h:
16638         (BaseChooserOnlyDateAndTimeInputType): Declare updateAppearance,
16639         createRenderer, updateInnerTextValue, forwardEvent, createShadowSubtree,
16640         and setValue.
16641         * html/BaseDateAndTimeInputType.h:
16642         (WebCore): Add a FIXME comment.
16643         (BaseDateAndTimeInputType):
16644         Make visibleValue protected. It is used by BaseChooserOnlyDateAndTimeInputType.
16645         * html/TextFieldInputType.h:
16646         (TextFieldInputType):
16647         Make setValue protected. It is used by BaseChooserOnlyDateAndTimeInputType.
16648
16649 2012-11-09  Vsevolod Vlasov  <vsevik@chromium.org>
16650
16651         Web Inspector: Clarify meaning of different urls in protocol.
16652         https://bugs.webkit.org/show_bug.cgi?id=101582
16653
16654         Reviewed by Yury Semikhatsky.
16655
16656         * inspector/Inspector.json:
16657
16658 2012-11-09  Keishi Hattori  <keishi@webkit.org>
16659
16660         Month picker should select the current month when navigating while keeping selection position.
16661         https://bugs.webkit.org/show_bug.cgi?id=101724
16662
16663         Reviewed by Kent Tamura.
16664
16665         Month picker needs to behave differently because selection won't be in the same position when changing current month.
16666
16667         No new tests. Test will be added in Bug 101556.
16668
16669         * Resources/pagepopups/calendarPicker.js:
16670         (DaysTable.prototype.navigateToMonth): Date/Week picker should keep selection position for first selected date node.
16671         (DaysTable.prototype._startMoveInAnimation): Moving shared code to separate function.
16672         (MonthPickerDaysTable.prototype.navigateToMonth): Month picker should just select the month.
16673
16674 2012-11-09  Alexei Filippov  <alph@chromium.org>
16675
16676         Web Inspector: Fix heap snapshots counted several times by NMI
16677         https://bugs.webkit.org/show_bug.cgi?id=101085
16678
16679         The fix moves snapshots size counting to V8PerIsolateData class. As long
16680         as it has one instance per isolate its reportMemoryUsage should be
16681         called once per isolate.
16682
16683         Reviewed by Yury Semikhatsky.
16684
16685         * bindings/v8/V8PerIsolateData.cpp:
16686         (WebCore::V8PerIsolateData::reportMemoryUsage):
16687         * inspector/InspectorProfilerAgent.cpp:
16688         (WebCore::InspectorProfilerAgent::reportMemoryUsage):
16689
16690 2012-11-08  Pavel Feldman  <pfeldman@chromium.org>
16691
16692         Web Inspector: split SplitView into SplitView and SidebarView
16693         https://bugs.webkit.org/show_bug.cgi?id=101612
16694
16695         Reviewed by Vsevolod Vlasov.
16696
16697         Currently, SplitView is rather a sidebar view. I'm extracting the reusable split component from it.
16698
16699         * WebCore.gypi:
16700         * WebCore.vcproj/WebCore.vcproj:
16701         * inspector/compile-front-end.py:
16702         * inspector/front-end/AuditsPanel.js:
16703         (WebInspector.AuditsPanel):
16704         * inspector/front-end/CSSNamedFlowCollectionsView.js:
16705         (WebInspector.CSSNamedFlowCollectionsView):
16706         (WebInspector.CSSNamedFlowCollectionsView.prototype.wasShown):
16707         * inspector/front-end/ElementsPanel.js:
16708         * inspector/front-end/FileSystemView.js:
16709         (WebInspector.FileSystemView):
16710         * inspector/front-end/MemoryStatistics.js:
16711         (WebInspector.CounterUI):
16712         (WebInspector.MemoryStatistics.prototype.setTopPosition):
16713         (WebInspector.MemoryStatistics.prototype.setSidebarWidth):
16714         (WebInspector.MemoryStatistics.prototype.visible):
16715         (WebInspector.MemoryStatistics.prototype.show):
16716         (WebInspector.MemoryStatistics.prototype.hide):
16717         * inspector/front-end/NavigatorOverlayController.js:
16718         (WebInspector.NavigatorOverlayController.prototype.set _pinNavigator):
16719         (WebInspector.NavigatorOverlayController.prototype.set showNavigatorOverlay):
16720         (WebInspector.NavigatorOverlayController.prototype.hideNavigatorOverlay):
16721         (WebInspector.NavigatorOverlayController.prototype._innerHideNavigatorOverlay):
16722         * inspector/front-end/NetworkPanel.js:
16723         * inspector/front-end/Panel.js:
16724         (WebInspector.Panel.prototype.createSidebarView):
16725         (WebInspector.Panel.prototype.createSidebarViewWithTree):
16726         * inspector/front-end/ProfilesPanel.js:
16727         (WebInspector.ProfilesPanel):
16728         * inspector/front-end/ResourcesPanel.js:
16729         * inspector/front-end/ScriptsPanel.js:
16730         (WebInspector.ScriptsPanel):
16731         * inspector/front-end/SidebarView.js: Added.
16732         (WebInspector.SidebarView):
16733         (WebInspector.SidebarView.prototype._hasLeftSidebar):
16734         (WebInspector.SidebarView.prototype.get mainElement):
16735         (WebInspector.SidebarView.prototype.get sidebarElement):
16736         (WebInspector.SidebarView.prototype._innerSetSidebarPosition):
16737         (WebInspector.SidebarView.prototype.setMinimalSidebarWidth):
16738         (WebInspector.SidebarView.prototype.setMinimalMainWidthPercent):
16739         (WebInspector.SidebarView.prototype.setSidebarWidth):
16740         (WebInspector.SidebarView.prototype.sidebarWidth):
16741         (WebInspector.SidebarView.prototype.onResize):
16742         (WebInspector.SidebarView.prototype.applyConstraints):
16743         (WebInspector.SidebarView.prototype.hideMainElement):
16744         (WebInspector.SidebarView.prototype.showMainElement):
16745         (WebInspector.SidebarView.prototype.hideSidebarElement):
16746         (WebInspector.SidebarView.prototype.showSidebarElement):
16747         (WebInspector.SidebarView.prototype.elementsToRestoreScrollPositionsFor):
16748         * inspector/front-end/SplitView.js:
16749         (WebInspector.SplitView):
16750         (WebInspector.SplitView.prototype.firstElement):
16751         (WebInspector.SplitView.prototype.secondElement):
16752         (WebInspector.SplitView.prototype.setChangeFirstOnResize):
16753         (WebInspector.SplitView.prototype.resizerElement):
16754         (WebInspector.SplitView.prototype.showOnlyFirst):
16755         (WebInspector.SplitView.prototype.showOnlySecond):
16756         (WebInspector.SplitView.prototype._showOnly):
16757         (WebInspector.SplitView.prototype._removeAllLayoutProperties):
16758         (WebInspector.SplitView.prototype.showBoth):
16759         (WebInspector.SplitView.prototype.setResizable):
16760         (WebInspector.SplitView.prototype.setSplitOffset):
16761         (WebInspector.SplitView.prototype.splitOffset):
16762         (WebInspector.SplitView.prototype._innerSetSplitOffset):
16763         (WebInspector.SplitView.prototype._startResizerDragging):
16764         * inspector/front-end/TimelinePanel.js:
16765         * inspector/front-end/WebKit.qrc:
16766         * inspector/front-end/inspector.html:
16767         * inspector/front-end/splitView.css:
16768
16769 2012-11-09  Andrey Lushnikov  <lushnikov@google.com>
16770
16771         Web Inspector: Ctrl+A in the network panel should select resource content, not the entire panel
16772         https://bugs.webkit.org/show_bug.cgi?id=101591
16773
16774         Reviewed by Vsevolod Vlasov.
16775
16776         Intercept Ctrl+A event in DefaultTextEditor to select resource content
16777
16778         * inspector/front-end/DefaultTextEditor.js:
16779         (WebInspector.DefaultTextEditor.prototype._registerShortcuts): Added Ctrl+A
16780         (WebInspector.DefaultTextEditor.prototype._handleKeyDown): Intercept Ctrl+A even for readonly fields
16781         (WebInspector.TextEditorMainPanel.prototype.handleSelectAll):
16782         * inspector/front-end/KeyboardShortcut.js: Added SelectAll constant for Ctrl+A combination
16783
16784 2012-11-09  Dan Carney  <dcarney@google.com>
16785
16786         [V8] Main world should have one DOMDataStore
16787         https://bugs.webkit.org/show_bug.cgi?id=101470
16788
16789         Reviewed by Kentaro Hara.
16790
16791         The main world DOMWrapperWorld held onto a DOMDataStore that should
16792         never be used, as there is a static one optimized for speed in
16793         DOMDataStore.
16794
16795         No new tests. No change in functionality.
16796
16797         * bindings/v8/DOMDataStore.cpp:
16798         (WebCore::DOMDataStore::current):
16799         * bindings/v8/DOMWrapperWorld.h:
16800         (WebCore::DOMWrapperWorld::isolatedWorldDomDataStore):
16801         (WebCore::DOMWrapperWorld::DOMWrapperWorld):
16802         * bindings/v8/V8DOMWrapper.h:
16803         (WebCore::V8DOMWrapper::getCachedWrapper):
16804
16805 2012-11-09  Alexei Filippov  <alph@chromium.org>
16806
16807         Web Inspector: Navigating around NMI snapshot grid with keys breaks the grid
16808         https://bugs.webkit.org/show_bug.cgi?id=101611
16809
16810         Reviewed by Yury Semikhatsky.
16811
16812         Keys navigation cause populate message sent to the node. The node should
16813         not react on populate messages but the first one.
16814
16815         * inspector/front-end/NativeMemorySnapshotView.js:
16816
16817 2012-11-08  Eugene Klyuchnikov  <eustas.bug@gmail.com>
16818
16819         Web Inspector: Timeline: "Send Request" events are shown out of order.
16820         https://bugs.webkit.org/show_bug.cgi?id=101544
16821
16822         Reviewed by Yury Semikhatsky.
16823
16824         Solution: replace obsolete out-of-order record pushing with frontend
16825         record reparenting.
16826
16827         * inspector/InspectorTimelineAgent.cpp:
16828         (WebCore::InspectorTimelineAgent::willSendResourceRequest): Replaced
16829         direct record pushing with standard appendRecord invokation.
16830         * inspector/front-end/TimelinePresentationModel.js:
16831         (WebInspector.TimelinePresentationModel.prototype._findParentRecord):
16832         Made "Send Request" records top-level if gluing is on.
16833
16834 2012-11-08  Sheriff Bot  <webkit.review.bot@gmail.com>
16835
16836         Unreviewed, rolling out r134010.
16837         http://trac.webkit.org/changeset/134010
16838         https://bugs.webkit.org/show_bug.cgi?id=101716
16839
16840         Broke the chromium windows build. (Requested by noel_ on
16841         #webkit).
16842
16843         * Modules/indexeddb/IDBAny.cpp:
16844         * Modules/indexeddb/IDBCallbacks.h:
16845         * Modules/indexeddb/IDBDatabase.cpp:
16846         (WebCore::IDBDatabase::createObjectStore):
16847         (WebCore::IDBDatabase::deleteObjectStore):
16848         (WebCore::IDBDatabase::transaction):
16849         * Modules/indexeddb/IDBDatabase.h:
16850         (IDBDatabase):
16851         * Modules/indexeddb/IDBDatabaseBackendImpl.cpp:
16852         (WebCore::IDBDatabaseBackendImpl::getObjectStoreId):
16853         (WebCore):
16854         (WebCore::IDBDatabaseBackendImpl::setVersion):
16855         (WebCore::IDBDatabaseBackendImpl::transaction):
16856         (WebCore::IDBDatabaseBackendImpl::runIntVersionChangeTransaction):
16857         * Modules/indexeddb/IDBDatabaseBackendImpl.h:
16858         (WebCore::IDBDatabaseBackendImpl::deleteObjectStore):
16859         (IDBDatabaseBackendImpl):
16860         * Modules/indexeddb/IDBDatabaseBackendInterface.h:
16861         (WebCore):
16862         (IDBDatabaseBackendInterface):
16863         * Modules/indexeddb/IDBMetadata.h:
16864         (WebCore::IDBObjectStoreMetadata::containsIndex):
16865         (WebCore::IDBDatabaseMetadata::findObjectStore):
16866         (IDBDatabaseMetadata):
16867         (WebCore::IDBDatabaseMetadata::containsObjectStore):
16868         * Modules/indexeddb/IDBObjectStore.cpp:
16869         (WebCore::IDBObjectStore::put):
16870         (WebCore):
16871         (WebCore::IDBObjectStore::createIndex):
16872         (WebCore::IDBObjectStore::index):
16873         (WebCore::IDBObjectStore::deleteIndex):
16874         * Modules/indexeddb/IDBObjectStore.h:
16875         (WebCore::IDBObjectStore::openCursor):
16876         (IDBObjectStore):
16877         * Modules/indexeddb/IDBObjectStoreBackendImpl.cpp:
16878         (WebCore::IDBObjectStoreBackendImpl::put):
16879         (WebCore::IDBObjectStoreBackendImpl::putWithIndexKeys):
16880         (WebCore):
16881         (WebCore::IDBObjectStoreBackendImpl::setIndexKeys):
16882         (WebCore::IDBObjectStoreBackendImpl::setIndexesReady):
16883         (WebCore::IDBObjectStoreBackendImpl::index):
16884         (WebCore::IDBObjectStoreBackendImpl::getIndexId):
16885         (WebCore::IDBObjectStoreBackendImpl::getIndexIds):
16886         (WebCore::IDBObjectStoreBackendImpl::deleteIndex):
16887         * Modules/indexeddb/IDBObjectStoreBackendImpl.h:
16888         (IDBObjectStoreBackendImpl):
16889         * Modules/indexeddb/IDBObjectStoreBackendInterface.h:
16890         (WebCore):
16891         * Modules/indexeddb/IDBTransaction.cpp:
16892         (WebCore::IDBTransaction::objectStore):
16893         * Modules/indexeddb/IDBTransactionBackendImpl.cpp:
16894         (WebCore::IDBTransactionBackendImpl::objectStore):
16895         (WebCore):
16896         * Modules/indexeddb/IDBTransactionBackendImpl.h:
16897         (IDBTransactionBackendImpl):
16898         * Modules/indexeddb/IDBTransactionBackendInterface.h:
16899
16900 2012-11-08  Grzegorz Czajkowski  <g.czajkowski@samsung.com>
16901
16902         [EFL] Add a method to the TextCheckerEnchant class to check whether any dictionary is loaded
16903         https://bugs.webkit.org/show_bug.cgi?id=101570
16904
16905         Reviewed by Gustavo Noronha Silva.
16906
16907         Expose a new method to check whether a vector of loaded languages is empty.
16908         WK2-EFL needs it to set the default language (if the client didn't set any) when
16909         spelling setting is being enabled. This change makes it more convenient to check
16910         whether the dictionaries vector is empty.
16911
16912         No new tests, no behavior change.
16913
16914         * platform/text/enchant/TextCheckerEnchant.cpp:
16915         (TextCheckerEnchant::checkSpellingOfString):
16916         (TextCheckerEnchant::getGuessesForWord):
16917         (TextCheckerEnchant::loadedSpellCheckingLanguages):
16918         A newly exposed method is used internally too.
16919
16920         * platform/text/enchant/TextCheckerEnchant.h:
16921         (WebCore::TextCheckerEnchant::hasDictionary):
16922         Add an inline hasDictionary() method.
16923
16924 2012-11-08  Shinya Kawanaka  <shinyak@chromium.org>
16925
16926         [Refactoring] Remove shadowPseudoId() and use pseudo() instead in TextTrackCue
16927         https://bugs.webkit.org/show_bug.cgi?id=101702
16928
16929         Reviewed by Hajime Morita.
16930
16931         We're migrating shadowPseudoId() to pseudo(). We remove shadowPseudoId() from TextTrackCue and use
16932         setPseudo()/pseudo() instead.
16933
16934         No new tests, simple refactoring.
16935
16936         * html/track/TextTrackCue.cpp:
16937         (WebCore::TextTrackCueBox::TextTrackCueBox):
16938         * html/track/TextTrackCue.h:
16939         (TextTrackCueBox):
16940
16941 2012-11-08  Arpita Bahuguna  <arpitabahuguna@gmail.com>
16942
16943         table not aligned in center column and seems shrunk because of float:right (table-layout: fixed and width: 100%)
16944         https://bugs.webkit.org/show_bug.cgi?id=18153
16945
16946         Reviewed by Beth Dakin.
16947
16948         Preferred logical width is computed incorrectly for fixed layout tables
16949         with 100% percent width, in standards mode.
16950
16951         According to our fixed table layout algorithm (CSS2 specification - 17.5.2.1)
16952         the ultimate width of the table is the greater of the value of the
16953         'width' property for the table elements and the sum of the column
16954         widths.
16955
16956         For our specific scenario we have a fixed layout table with 100% width
16957         consisting of columns with fixed widths, the sum of which is less than
16958         the specified width of the table (i.e. 100% of the containing block).
16959         Even then the applied width is the cummulative of the width of the
16960         columns.
16961
16962         This happens because of the quirks mode check added in
16963         FixedTableLayout::computePreferredLogicalWidths(), which prohibits the
16964         setting of maxWidth to our fixed layout table with percent width, and
16965         which perhaps is not required anymore.
16966
16967         Test: fast/table/fixed-table-layout/table-with-percent-width.html
16968
16969         * rendering/FixedTableLayout.cpp:
16970         (WebCore::FixedTableLayout::computePreferredLogicalWidths):
16971         Removed the quirks mode check.
16972
16973 2012-11-08  Sheriff Bot  <webkit.review.bot@gmail.com>
16974
16975         Unreviewed, rolling out r134004.
16976         http://trac.webkit.org/changeset/134004
16977         https://bugs.webkit.org/show_bug.cgi?id=101713
16978
16979         multiple crashes (Requested by hayato on #webkit).
16980
16981         * rendering/RenderThemeMac.mm:
16982         (WebCore::RenderThemeMac::adjustMediaSliderThumbSize):
16983         (WebCore::RenderThemeMac::paintMediaFullscreenButton):
16984         (WebCore::RenderThemeMac::paintMediaMuteButton):
16985         (WebCore::RenderThemeMac::paintMediaPlayButton):
16986         (WebCore::RenderThemeMac::paintMediaSeekBackButton):
16987         (WebCore::RenderThemeMac::paintMediaSeekForwardButton):
16988         (WebCore::RenderThemeMac::paintMediaSliderTrack):
16989         (WebCore::RenderThemeMac::paintMediaSliderThumb):
16990         (WebCore::RenderThemeMac::paintMediaRewindButton):
16991         (WebCore::RenderThemeMac::paintMediaReturnToRealtimeButton):
16992         (WebCore::RenderThemeMac::paintMediaToggleClosedCaptionsButton):
16993         (WebCore::RenderThemeMac::paintMediaControlsBackground):
16994         (WebCore::RenderThemeMac::paintMediaCurrentTime):
16995         (WebCore::RenderThemeMac::paintMediaTimeRemaining):
16996         (WebCore::RenderThemeMac::paintMediaVolumeSliderContainer):
16997         (WebCore::RenderThemeMac::paintMediaVolumeSliderTrack):
16998         (WebCore::RenderThemeMac::paintMediaVolumeSliderThumb):
16999         (WebCore::RenderThemeMac::paintMediaFullScreenVolumeSliderTrack):
17000         (WebCore::RenderThemeMac::paintMediaFullScreenVolumeSliderThumb):
17001
17002 2012-11-08  Jan Keromnes  <janx@linux.com>
17003
17004         Web Inspector: stop using cursorCoords in CodeMirrorTextEditor
17005         https://bugs.webkit.org/show_bug.cgi?id=101607
17006
17007         Reviewed by Vsevolod Vlasov.
17008
17009         API changes completing migration to v3.
17010
17011         * inspector/front-end/CodeMirrorTextEditor.js:
17012         (WebInspector.CodeMirrorTextEditor):
17013         (WebInspector.CodeMirrorTextEditor.prototype.revealLine):
17014         (WebInspector.CodeMirrorTextEditor.prototype.selection):
17015
17016 2012-11-08  Alexei Filippov  <alph@chromium.org>
17017
17018         Web Inspector: make "Other" bar color darker in NMI snapshot.
17019         https://bugs.webkit.org/show_bug.cgi?id=101602
17020
17021         Reviewed by Vsevolod Vlasov.
17022
17023         * inspector/front-end/NativeMemorySnapshotView.js:
17024         (WebInspector.MemoryBlockViewProperties._initialize):
17025
17026 2012-11-08  Alec Flett  <alecflett@chromium.org>
17027
17028         IndexedDB: switch frontend to use int64_t-based references
17029         https://bugs.webkit.org/show_bug.cgi?id=100426
17030
17031         Reviewed by Tony Chang.
17032
17033         Remove String-based objectStore/index references, obsoleted by
17034         https://bugs.webkit.org/show_bug.cgi?id=100425.
17035
17036         No new tests as this is the second half of a refactor.
17037
17038         * Modules/indexeddb/IDBCallbacks.h:
17039         * Modules/indexeddb/IDBDatabase.cpp:
17040         (WebCore::IDBDatabase::deleteObjectStore):
17041         (WebCore::IDBDatabase::transaction):
17042         * Modules/indexeddb/IDBDatabaseBackendImpl.cpp:
17043         (WebCore::IDBDatabaseBackendImpl::setVersion):
17044         (WebCore::IDBDatabaseBackendImpl::transaction):
17045         (WebCore::IDBDatabaseBackendImpl::runIntVersionChangeTransaction):
17046         * Modules/indexeddb/IDBDatabaseBackendImpl.h:
17047         (IDBDatabaseBackendImpl):
17048         * Modules/indexeddb/IDBDatabaseBackendInterface.h:
17049         (IDBDatabaseBackendInterface):
17050         * Modules/indexeddb/IDBMetadata.h:
17051         (WebCore::IDBObjectStoreMetadata::findIndex):
17052         (IDBObjectStoreMetadata):
17053         (WebCore::IDBObjectStoreMetadata::containsIndex):
17054         * Modules/indexeddb/IDBObjectStore.cpp:
17055         (WebCore::IDBObjectStore::put):
17056         (WebCore):
17057         (WebCore::IDBObjectStore::index):
17058         (WebCore::IDBObjectStore::deleteIndex):
17059         * Modules/indexeddb/IDBObjectStoreBackendImpl.cpp:
17060         (WebCore::IDBObjectStoreBackendImpl::put):
17061         (WebCore):
17062         * Modules/indexeddb/IDBObjectStoreBackendImpl.h:
17063         (IDBObjectStoreBackendImpl):
17064         * Modules/indexeddb/IDBObjectStoreBackendInterface.h:
17065         * inspector/Inspector-1.0.json:
17066         * inspector/Inspector.json:
17067         * inspector/InspectorIndexedDBAgent.cpp:
17068         (WebCore):
17069         (WebCore::InspectorIndexedDBAgent::requestData):
17070         * inspector/InspectorIndexedDBAgent.h:
17071         (InspectorIndexedDBAgent):
17072
17073 2012-11-08  Shinya Kawanaka  <shinyak@chromium.org>
17074
17075         [Refactoring] Expose collectFeaturesFromSelector from RuleSet.cpp
17076         https://bugs.webkit.org/show_bug.cgi?id=101692
17077
17078         Reviewed by Dimitri Glazkov.
17079
17080         We expose collectFeaturesFromSelector in RuleSet.cpp to use it for collecting ShadowDOM select attribute features.
17081
17082         No new tests, simple refactoring.
17083
17084         * css/RuleFeature.cpp:
17085         (WebCore::RuleFeatureSet::collectFeaturesFromSelector): Moved from RuleSet.cpp.
17086         (WebCore):
17087         * css/RuleFeature.h:
17088         (WebCore):
17089         (RuleFeatureSet):
17090         * css/RuleSet.cpp:
17091         (WebCore::collectFeaturesFromRuleData):
17092
17093 2012-11-08  Robert Sesek  <rsesek@chromium.org>
17094
17095         Guard calls to WebKitSystemInterface media control drawing functions in RenderThemeMac with PLATFORM(MAC)
17096         https://bugs.webkit.org/show_bug.cgi?id=101634
17097
17098         Reviewed by Adam Barth.
17099
17100         No new tests, just disabling unused code in Chromium port.
17101
17102         * rendering/RenderThemeMac.mm:
17103         (WebCore::RenderThemeMac::adjustMediaSliderThumbSize):
17104         (WebCore::RenderThemeMac::paintMediaFullscreenButton):
17105         (WebCore::RenderThemeMac::paintMediaMuteButton):
17106         (WebCore::RenderThemeMac::paintMediaPlayButton):
17107         (WebCore::RenderThemeMac::paintMediaSeekBackButton):
17108         (WebCore::RenderThemeMac::paintMediaSeekForwardButton):
17109         (WebCore::RenderThemeMac::paintMediaSliderTrack):
17110         (WebCore::RenderThemeMac::paintMediaSliderThumb):
17111         (WebCore::RenderThemeMac::paintMediaRewindButton):
17112         (WebCore::RenderThemeMac::paintMediaReturnToRealtimeButton):
17113         (WebCore::RenderThemeMac::paintMediaToggleClosedCaptionsButton):
17114         (WebCore::RenderThemeMac::paintMediaControlsBackground):
17115         (WebCore::RenderThemeMac::paintMediaCurrentTime):
17116         (WebCore::RenderThemeMac::paintMediaTimeRemaining):
17117         (WebCore::RenderThemeMac::paintMediaVolumeSliderContainer):
17118         (WebCore::RenderThemeMac::paintMediaVolumeSliderTrack):
17119         (WebCore::RenderThemeMac::paintMediaVolumeSliderThumb):
17120         (WebCore::RenderThemeMac::paintMediaFullScreenVolumeSliderTrack):
17121         (WebCore::RenderThemeMac::paintMediaFullScreenVolumeSliderThumb):
17122
17123 2012-11-08  Keishi Hattori  <keishi@webkit.org>
17124
17125         Enable calendar picker for input types week/month
17126         https://bugs.webkit.org/show_bug.cgi?id=101553
17127
17128         Reviewed by Kent Tamura.
17129
17130         Enabling calendar picker for <input type=week/month>
17131
17132         No new tests. Tests will be added later in Bug 101556 and Bug 101555.
17133
17134         * rendering/RenderThemeChromiumCommon.cpp:
17135         (WebCore::RenderThemeChromiumCommon::supportsCalendarPicker):
17136
17137 2012-11-08  Robin Cao  <robin.cao@torchmobile.com.cn>
17138
17139         [BlackBerry] Change the default return value of MediaPlayerPrivate::hasSingleSecurityOrigin
17140         https://bugs.webkit.org/show_bug.cgi?id=101681
17141
17142         Reviewed by George Staikos.
17143
17144         Since the platform player in BlackBerry disallows resources that come from different origins,
17145         so it's safe to directly returns true here.
17146
17147         * platform/graphics/blackberry/MediaPlayerPrivateBlackBerry.cpp:
17148         (WebCore::MediaPlayerPrivate::hasSingleSecurityOrigin):
17149
17150 2012-11-08  Mark Lam  <mark.lam@apple.com>
17151
17152         Renamed ...InlineMethods.h files to ...Inlines.h.
17153         https://bugs.webkit.org/show_bug.cgi?id=101145.
17154
17155         Reviewed by Geoffrey Garen.
17156
17157         This is only a refactoring effort to rename the files. There are no
17158         functionality changes.
17159
17160         No new tests.
17161
17162         * GNUmakefile.list.am:
17163         * Target.pri:
17164         * WebCore.gypi:
17165         * WebCore.vcproj/WebCore.vcproj:
17166         * WebCore.xcodeproj/project.pbxproj:
17167         * html/parser/HTMLEntityParser.cpp:
17168         * html/parser/HTMLTokenizer.cpp:
17169         * html/track/WebVTTTokenizer.cpp:
17170         * xml/parser/CharacterReferenceParserInlineMethods.h: Removed.
17171         * xml/parser/CharacterReferenceParserInlines.h: Copied from Source/WebCore/xml/parser/CharacterReferenceParserInlineMethods.h.
17172         * xml/parser/MarkupTokenizerInlineMethods.h: Removed.
17173         * xml/parser/MarkupTokenizerInlines.h: Copied from Source/WebCore/xml/parser/MarkupTokenizerInlineMethods.h.
17174         * xml/parser/XMLCharacterReferenceParser.cpp:
17175         * xml/parser/XMLTokenizer.cpp:
17176
17177 2012-11-08  Sheriff Bot  <webkit.review.bot@gmail.com>
17178
17179         Unreviewed, rolling out r133984.
17180         http://trac.webkit.org/changeset/133984
17181         https://bugs.webkit.org/show_bug.cgi?id=101684
17182
17183         windows build error. (Requested by hayato on #webkit).
17184
17185         * Modules/indexeddb/IDBCallbacks.h:
17186         * Modules/indexeddb/IDBDatabase.cpp:
17187         (WebCore::IDBDatabase::createObjectStore):
17188         (WebCore::IDBDatabase::deleteObjectStore):
17189         (WebCore::IDBDatabase::transaction):
17190         * Modules/indexeddb/IDBDatabase.h:
17191         (IDBDatabase):
17192         * Modules/indexeddb/IDBDatabaseBackendImpl.cpp:
17193         (WebCore::IDBDatabaseBackendImpl::getObjectStoreId):
17194         (WebCore):
17195         (WebCore::IDBDatabaseBackendImpl::setVersion):
17196         (WebCore::IDBDatabaseBackendImpl::transaction):
17197         (WebCore::IDBDatabaseBackendImpl::runIntVersionChangeTransaction):
17198         * Modules/indexeddb/IDBDatabaseBackendImpl.h:
17199         (WebCore::IDBDatabaseBackendImpl::deleteObjectStore):
17200         (IDBDatabaseBackendImpl):
17201         * Modules/indexeddb/IDBDatabaseBackendInterface.h:
17202         (IDBDatabaseBackendInterface):
17203         * Modules/indexeddb/IDBMetadata.h:
17204         (WebCore::IDBObjectStoreMetadata::containsIndex):
17205         (WebCore::IDBDatabaseMetadata::findObjectStore):
17206         (IDBDatabaseMetadata):
17207         (WebCore::IDBDatabaseMetadata::containsObjectStore):
17208         * Modules/indexeddb/IDBObjectStore.cpp:
17209         (WebCore::IDBObjectStore::put):
17210         (WebCore):
17211         (WebCore::IDBObjectStore::createIndex):
17212         (WebCore::IDBObjectStore::index):
17213         (WebCore::IDBObjectStore::deleteIndex):
17214         * Modules/indexeddb/IDBObjectStore.h:
17215         (WebCore::IDBObjectStore::openCursor):
17216         (IDBObjectStore):
17217         * Modules/indexeddb/IDBObjectStoreBackendImpl.cpp:
17218         (WebCore::IDBObjectStoreBackendImpl::put):
17219         (WebCore::IDBObjectStoreBackendImpl::putWithIndexKeys):
17220         (WebCore):
17221         (WebCore::IDBObjectStoreBackendImpl::setIndexKeys):
17222         (WebCore::IDBObjectStoreBackendImpl::setIndexesReady):
17223         (WebCore::IDBObjectStoreBackendImpl::index):
17224         (WebCore::IDBObjectStoreBackendImpl::getIndexId):
17225         (WebCore::IDBObjectStoreBackendImpl::getIndexIds):
17226         (WebCore::IDBObjectStoreBackendImpl::deleteIndex):
17227         * Modules/indexeddb/IDBObjectStoreBackendImpl.h:
17228         (IDBObjectStoreBackendImpl):
17229         * Modules/indexeddb/IDBObjectStoreBackendInterface.h:
17230         * Modules/indexeddb/IDBTransaction.cpp:
17231         (WebCore::IDBTransaction::objectStore):
17232         * Modules/indexeddb/IDBTransactionBackendImpl.cpp:
17233         (WebCore::IDBTransactionBackendImpl::objectStore):
17234         (WebCore):
17235         * Modules/indexeddb/IDBTransactionBackendImpl.h:
17236         (IDBTransactionBackendImpl):
17237         * Modules/indexeddb/IDBTransactionBackendInterface.h:
17238
17239 2012-11-08  Shinya Kawanaka  <shinyak@chromium.org>
17240
17241         HTMLContentElement should preserve parsed CSSSelectorList
17242         https://bugs.webkit.org/show_bug.cgi?id=101543
17243
17244         Reviewed by Dimitri Glazkov.
17245
17246         We would like to preserve CSSSelectorList for select attribute of HTMLContentElement.
17247
17248         Before, we parsed and validated select attribute every time distribution happens. If we preserve the parsed
17249         CSSSelectorList, we can reduce distribution time.
17250
17251         This is also a prepration patch for Bug 101180. It also needs the parsed CSSSelectorList. We don't want to
17252         parse and validate it again.
17253
17254         No new tests, covered by exising tests.
17255
17256         * html/shadow/ContentSelectorQuery.cpp:
17257         (WebCore::ContentSelectorQuery::ContentSelectorQuery): We don't parse select attribute here anymore.
17258         if it's already parsed.
17259         (WebCore::ContentSelectorQuery::matches):
17260         * html/shadow/ContentSelectorQuery.h:
17261         (ContentSelectorQuery):
17262         * html/shadow/HTMLContentElement.cpp:
17263         (WebCore::HTMLContentElement::HTMLContentElement):
17264         (WebCore::HTMLContentElement::isSelectValid):
17265         (WebCore::HTMLContentElement::ensureSelectParsed): If we don't have parsed the current select attribute,
17266         we parse and validate it.
17267         (WebCore::HTMLContentElement::parseAttribute): When select attribute is changed, we have to have a flag enabled
17268         to parse select attrite again.
17269         (WebCore::validateSubSelector): Moved from ContentSelectorQuery.
17270         (WebCore):
17271         (WebCore::validateSelector): Moved from ContentSelectorQuery.
17272         (WebCore::HTMLContentElement::validateSelect):
17273         * html/shadow/HTMLContentElement.h:
17274         (HTMLContentElement):
17275         (WebCore::HTMLContentElement::setSelect):
17276         (WebCore):
17277         (WebCore::HTMLContentElement::selectorList):
17278         * html/shadow/HTMLShadowElement.cpp:
17279         (WebCore::HTMLShadowElement::emptySelectorList):
17280         (WebCore):
17281         * html/shadow/HTMLShadowElement.h:
17282         (HTMLShadowElement):
17283         (WebCore::HTMLShadowElement::selectorList):
17284         * html/shadow/InsertionPoint.h:
17285         (InsertionPoint):
17286
17287 2012-11-08  Alec Flett  <alecflett@chromium.org>
17288
17289         IndexedDB: switch frontend to use int64_t-based references
17290         https://bugs.webkit.org/show_bug.cgi?id=100426
17291
17292         Reviewed by Tony Chang.
17293
17294         Remove String-based objectStore/index references, obsoleted by
17295         https://bugs.webkit.org/show_bug.cgi?id=100425.
17296
17297         No new tests as this is the second half of a refactor.
17298
17299         * Modules/indexeddb/IDBCallbacks.h:
17300         * Modules/indexeddb/IDBDatabase.cpp:
17301         (WebCore::IDBDatabase::deleteObjectStore):
17302         (WebCore::IDBDatabase::transaction):
17303         * Modules/indexeddb/IDBDatabaseBackendImpl.cpp:
17304         (WebCore::IDBDatabaseBackendImpl::setVersion):
17305         (WebCore::IDBDatabaseBackendImpl::transaction):
17306         (WebCore::IDBDatabaseBackendImpl::runIntVersionChangeTransaction):
17307         * Modules/indexeddb/IDBDatabaseBackendImpl.h:
17308         (IDBDatabaseBackendImpl):
17309         * Modules/indexeddb/IDBDatabaseBackendInterface.h:
17310         (IDBDatabaseBackendInterface):
17311         * Modules/indexeddb/IDBMetadata.h:
17312         (WebCore::IDBObjectStoreMetadata::findIndex):
17313         (IDBObjectStoreMetadata):
17314         (WebCore::IDBObjectStoreMetadata::containsIndex):
17315         * Modules/indexeddb/IDBObjectStore.cpp:
17316         (WebCore::IDBObjectStore::put):
17317         (WebCore):
17318         (WebCore::IDBObjectStore::index):
17319         (WebCore::IDBObjectStore::deleteIndex):
17320         * Modules/indexeddb/IDBObjectStoreBackendImpl.cpp:
17321         (WebCore::IDBObjectStoreBackendImpl::put):
17322         (WebCore):
17323         * Modules/indexeddb/IDBObjectStoreBackendImpl.h:
17324         (IDBObjectStoreBackendImpl):
17325         * Modules/indexeddb/IDBObjectStoreBackendInterface.h:
17326         * inspector/Inspector-1.0.json:
17327         * inspector/Inspector.json:
17328         * inspector/InspectorIndexedDBAgent.cpp:
17329         (WebCore):
17330         (WebCore::InspectorIndexedDBAgent::requestData):
17331         * inspector/InspectorIndexedDBAgent.h:
17332         (InspectorIndexedDBAgent):
17333
17334 2012-11-08  Kenichi Ishibashi  <bashi@chromium.org>
17335
17336         [Chromium] Arabic digits should appear left-to-right
17337         https://bugs.webkit.org/show_bug.cgi?id=101440
17338
17339         Reviewed by Tony Chang.
17340
17341         Call hb_buffer_set_direction() to set direction when drawing glyphs or
17342         direction should be overridden. Leave direction setting to HarfBuzz when
17343         WebKit is calculating widths because the direction is LTR by default while
17344         calculating widths.  Set script before shaping so that HarfBuzz can estimate
17345         appropriate direction.
17346
17347         Test: fast/text/international/arabic-digits.html
17348
17349         * platform/graphics/harfbuzz/ng/HarfBuzzShaper.cpp:
17350         (WebCore::HarfBuzzShaper::HarfBuzzRun::HarfBuzzRun):
17351         Add m_script. This holds the script of the run.
17352         (WebCore::HarfBuzzShaper::shape):
17353         Tell shapeHarfBuzzRuns() to set direction when drawing glyphs or
17354         direction should be overridden.
17355         (WebCore::HarfBuzzShaper::collectHarfBuzzRuns):
17356         Set script of HarfBuzzRuns.
17357         (WebCore::HarfBuzzShaper::shapeHarfBuzzRuns):
17358         Add an argument that indicates it should set direction.
17359         * platform/graphics/harfbuzz/ng/HarfBuzzShaper.h:
17360         (WebCore::HarfBuzzShaper::HarfBuzzRun::create):
17361         (WebCore::HarfBuzzShaper::HarfBuzzRun::rtl):
17362         (WebCore::HarfBuzzShaper::HarfBuzzRun::script):
17363         (HarfBuzzRun):
17364         (HarfBuzzShaper):
17365
17366 2012-11-08  Huang Dongsung  <luxtella@company100.net>
17367
17368         [TexMap] Remove contentsLayer() in GraphicsLayerTextureMapper.
17369         https://bugs.webkit.org/show_bug.cgi?id=101658
17370
17371         Reviewed by Noam Rosenthal.
17372
17373         GraphicsLayerTextureMapper::contentsLayer() is duplicated to
17374         GraphicsLayer::platformLayer(), so we remove it.
17375
17376         No new tests, this is just a refactor.
17377
17378         * platform/graphics/texmap/GraphicsLayerTextureMapper.h:
17379         (WebCore::GraphicsLayerTextureMapper::platformLayer):
17380         * platform/graphics/texmap/TextureMapperLayer.cpp:
17381         (WebCore::TextureMapperLayer::flushCompositingStateSelf):
17382
17383 2012-11-08  Benjamin Poulain  <benjamin@webkit.org>
17384
17385         Improve the use of AtomicString with literals
17386         https://bugs.webkit.org/show_bug.cgi?id=101298
17387
17388         Reviewed by Darin Adler.
17389
17390         Fix a bunch of cases of AtomicString with literals:
17391         -Do not create temporary AtomicString to perform a comparison, that is very wasteful.
17392         -Use the ConstructFromLiteral constructor whenever it makes sense.
17393         -Make "x-frame-options" static instead of creating it for each response.
17394         -Use ASCIILiteral() instead of AtomicString() in EventHandler, the function takes a String,
17395          not an AtomicString.
17396
17397         * Modules/battery/BatteryController.cpp:
17398         (WebCore::BatteryController::supplementName):
17399         * Modules/battery/NavigatorBattery.cpp:
17400         (WebCore::NavigatorBattery::from):
17401         * Modules/filesystem/chromium/DraggedIsolatedFileSystem.cpp:
17402         (WebCore::DraggedIsolatedFileSystem::supplementName):
17403         * Modules/gamepad/NavigatorGamepad.cpp:
17404         (WebCore::NavigatorGamepad::from):
17405         * Modules/geolocation/GeolocationController.cpp:
17406         (WebCore::GeolocationController::supplementName):
17407         * Modules/geolocation/NavigatorGeolocation.cpp:
17408         (WebCore::NavigatorGeolocation::from):
17409         * Modules/indexeddb/DOMWindowIndexedDatabase.cpp:
17410         (WebCore::DOMWindowIndexedDatabase::from):
17411         * Modules/indexeddb/IDBCursor.cpp:
17412         (WebCore::IDBCursor::directionNext):
17413         (WebCore::IDBCursor::directionNextUnique):
17414         (WebCore::IDBCursor::directionPrev):
17415         (WebCore::IDBCursor::directionPrevUnique):
17416         * Modules/indexeddb/IDBRequest.cpp:
17417         (WebCore::IDBRequest::readyState):
17418         * Modules/indexeddb/IDBTransaction.cpp:
17419         (WebCore::IDBTransaction::modeReadOnly):
17420         (WebCore::IDBTransaction::modeReadWrite):
17421         (WebCore::IDBTransaction::modeVersionChange):
17422         (WebCore::IDBTransaction::modeReadOnlyLegacy):
17423         (WebCore::IDBTransaction::modeReadWriteLegacy):
17424         * Modules/indexeddb/PageGroupIndexedDatabase.cpp:
17425         (WebCore::PageGroupIndexedDatabase::from):
17426         * Modules/intents/DOMWindowIntents.cpp:
17427         (WebCore::DOMWindowIntents::from):
17428         * Modules/mediastream/UserMediaController.cpp:
17429         (WebCore::UserMediaController::supplementName):
17430         * Modules/navigatorcontentutils/NavigatorContentUtils.cpp:
17431         (WebCore::NavigatorContentUtils::supplementName):
17432         * Modules/networkinfo/NavigatorNetworkInfoConnection.cpp:
17433         (WebCore::NavigatorNetworkInfoConnection::from):
17434         * Modules/networkinfo/NetworkInfoController.cpp:
17435         (WebCore::NetworkInfoController::supplementName):
17436         * Modules/notifications/DOMWindowNotifications.cpp:
17437         (WebCore::DOMWindowNotifications::from):
17438         * Modules/notifications/NotificationController.cpp:
17439         (WebCore::NotificationController::supplementName):
17440         * Modules/quota/DOMWindowQuota.cpp:
17441         (WebCore::DOMWindowQuota::from):
17442         * Modules/speech/SpeechRecognitionController.cpp:
17443         (WebCore::SpeechRecognitionController::supplementName):
17444         * Modules/vibration/Vibration.cpp:
17445         (WebCore::Vibration::supplementName):
17446         * accessibility/AccessibilityObject.cpp:
17447         (WebCore::AccessibilityObject::invalidStatus):
17448         * accessibility/AccessibilityRenderObject.cpp:
17449         (WebCore::AccessibilityRenderObject::ariaLiveRegionStatus):
17450         (WebCore::AccessibilityRenderObject::ariaLiveRegionRelevant):
17451         * bindings/v8/custom/V8DOMWindowCustom.cpp:
17452         (WebCore::V8DOMWindow::namedSecurityCheck):
17453         * bindings/v8/custom/V8NodeListCustom.cpp:
17454         (WebCore::V8NodeList::namedPropertyGetter):
17455         * dom/ContextFeatures.cpp:
17456         (WebCore::ContextFeatures::supplementName):
17457         * dom/DeviceMotionController.cpp:
17458         (WebCore::DeviceMotionController::supplementName):
17459         * dom/DeviceOrientationController.cpp:
17460         (WebCore::DeviceOrientationController::supplementName):
17461         * dom/Element.cpp:
17462         (WebCore::Element::webkitRegionOverset):
17463         * dom/MutationRecord.cpp:
17464         * html/FileInputType.cpp:
17465         (WebCore::UploadButtonElement::shadowPseudoId):
17466         * html/FormController.cpp:
17467         (WebCore::SavedFormState::getReferencedFilePaths):
17468         (WebCore::FormKeyGenerator::formKey):
17469         * html/HTMLButtonElement.cpp:
17470         (WebCore::HTMLButtonElement::formControlType):
17471         * html/HTMLDetailsElement.cpp:
17472         (WebCore::summaryQuerySelector):
17473         * html/HTMLFieldSetElement.cpp:
17474         (WebCore::HTMLFieldSetElement::formControlType):
17475         * html/HTMLKeygenElement.cpp:
17476         (WebCore::KeygenSelectElement::shadowPseudoId):
17477         (WebCore::HTMLKeygenElement::formControlType):
17478         * html/HTMLOptGroupElement.cpp:
17479         (WebCore::HTMLOptGroupElement::formControlType):
17480         * html/HTMLOutputElement.cpp:
17481         (WebCore::HTMLOutputElement::formControlType):
17482         * html/HTMLSelectElement.cpp:
17483         (WebCore::HTMLSelectElement::formControlType):
17484         * html/HTMLTextAreaElement.cpp:
17485         (WebCore::HTMLTextAreaElement::formControlType):
17486         * html/HTMLTextFormControlElement.cpp:
17487         (WebCore::directionString):
17488         * html/shadow/DateTimeEditElement.cpp:
17489         (WebCore::DateTimeEditElement::DateTimeEditElement):
17490         * html/shadow/DateTimeFieldElements.cpp:
17491         (WebCore::DateTimeAMPMFieldElement::create):
17492         (WebCore::DateTimeDayFieldElement::create):
17493         (WebCore::DateTimeHourFieldElement::create):
17494         (WebCore::DateTimeMillisecondFieldElement::create):
17495         (WebCore::DateTimeMinuteFieldElement::create):
17496         (WebCore::DateTimeMonthFieldElement::create):
17497         (WebCore::DateTimeSecondFieldElement::create):
17498         (WebCore::DateTimeSymbolicMonthFieldElement::create):
17499         (WebCore::DateTimeWeekFieldElement::create):
17500         (WebCore::DateTimeYearFieldElement::create):
17501         * html/shadow/DetailsMarkerControl.cpp:
17502         (WebCore::DetailsMarkerControl::shadowPseudoId):
17503         * html/shadow/ImageInnerElement.cpp:
17504         (WebCore::ImageInnerElement::shadowPseudoId):
17505         * html/shadow/MediaControlElements.cpp:
17506         (WebCore::MediaControlPanelElement::shadowPseudoId):
17507         (WebCore::MediaControlTimelineContainerElement::shadowPseudoId):
17508         (WebCore::MediaControlVolumeSliderContainerElement::shadowPseudoId):
17509         (WebCore::MediaControlStatusDisplayElement::shadowPseudoId):
17510         (WebCore::MediaControlPanelMuteButtonElement::shadowPseudoId):
17511         (WebCore::MediaControlVolumeSliderMuteButtonElement::shadowPseudoId):
17512         (WebCore::MediaControlPlayButtonElement::shadowPseudoId):
17513         (WebCore::MediaControlOverlayPlayButtonElement::shadowPseudoId):
17514         (WebCore::MediaControlSeekForwardButtonElement::shadowPseudoId):
17515         (WebCore::MediaControlSeekBackButtonElement::shadowPseudoId):
17516         (WebCore::MediaControlRewindButtonElement::shadowPseudoId):
17517         (WebCore::MediaControlReturnToRealtimeButtonElement::shadowPseudoId):
17518         (WebCore::MediaControlToggleClosedCaptionsButtonElement::shadowPseudoId):
17519         (WebCore::MediaControlTimelineElement::shadowPseudoId):
17520         (WebCore::MediaControlVolumeSliderElement::shadowPseudoId):
17521         (WebCore::MediaControlFullscreenVolumeSliderElement::shadowPseudoId):
17522         (WebCore::MediaControlFullscreenButtonElement::shadowPseudoId):
17523         (WebCore::MediaControlFullscreenVolumeMinButtonElement::shadowPseudoId):
17524         (WebCore::MediaControlFullscreenVolumeMaxButtonElement::shadowPseudoId):
17525         (WebCore::MediaControlTimeRemainingDisplayElement::shadowPseudoId):
17526         (WebCore::MediaControlCurrentTimeDisplayElement::shadowPseudoId):
17527         (WebCore::MediaControlTextTrackContainerElement::shadowPseudoId):
17528         * html/shadow/MediaControlRootElement.cpp:
17529         (WebCore::MediaControlRootElement::shadowPseudoId):
17530         * html/shadow/MediaControlRootElementChromium.cpp:
17531         (WebCore::MediaControlPanelEnclosureElement::shadowPseudoId):
17532         (WebCore::MediaControlRootElementChromium::shadowPseudoId):
17533         * html/shadow/MediaControlRootElementChromiumAndroid.cpp:
17534         (WebCore::MediaControlOverlayEnclosureElement::shadowPseudoId):
17535         * html/shadow/MeterShadowElement.cpp:
17536         (WebCore::MeterInnerElement::shadowPseudoId):
17537         (WebCore::MeterBarElement::shadowPseudoId):
17538         (WebCore::MeterValueElement::shadowPseudoId):
17539         * html/shadow/ProgressShadowElement.cpp:
17540         (WebCore::ProgressInnerElement::shadowPseudoId):
17541         (WebCore::ProgressBarElement::shadowPseudoId):
17542         (WebCore::ProgressValueElement::shadowPseudoId):
17543         * html/shadow/SliderThumbElement.cpp:
17544         (WebCore::sliderThumbShadowPseudoId):
17545         (WebCore::mediaSliderThumbShadowPseudoId):
17546         (WebCore::SliderContainerElement::shadowPseudoId):
17547         * html/shadow/SpinButtonElement.cpp:
17548         (WebCore::SpinButtonElement::shadowPseudoId):
17549         * html/shadow/TextControlInnerElements.cpp:
17550         (WebCore::SearchFieldResultsButtonElement::shadowPseudoId):
17551         (WebCore::SearchFieldCancelButtonElement::shadowPseudoId):
17552         (WebCore::InputFieldSpeechButtonElement::shadowPseudoId):
17553         * html/track/TextTrackCue.cpp:
17554         (WebCore::TextTrackCueBox::textTrackCueBoxShadowPseudoId):
17555         * loader/CrossOriginAccessControl.cpp:
17556         (WebCore::passesAccessControlCheck):
17557         * loader/MainResourceLoader.cpp:
17558         (WebCore::MainResourceLoader::didReceiveResponse):
17559         * loader/PrerendererClient.cpp:
17560         (WebCore::PrerendererClient::supplementName):
17561         * loader/cache/CachedResource.cpp:
17562         (WebCore::CachedResource::updateResponseAfterRevalidation):
17563         * page/DOMWindowPagePopup.cpp:
17564         (WebCore::DOMWindowPagePopup::supplementName):
17565         * page/EventHandler.cpp:
17566         (WebCore::EventHandler::handlePasteGlobalSelection):
17567         (WebCore::focusDirectionForKey):
17568         * page/SpeechInput.cpp:
17569         (WebCore::SpeechInput::supplementName):
17570         * page/animation/CompositeAnimation.cpp:
17571         (WebCore::CompositeAnimation::updateKeyframeAnimations):
17572         * platform/graphics/FontCache.cpp:
17573         (WebCore::alternateFamilyName):
17574         * platform/graphics/MediaPlayer.cpp:
17575         (WebCore::applicationOctetStream):
17576         (WebCore::textPlain):
17577         (WebCore::codecs):
17578         * platform/graphics/chromium/FontCacheAndroid.cpp:
17579         (WebCore::FontCache::getLastResortFallbackFont):
17580         * platform/graphics/filters/SourceAlpha.cpp:
17581         (WebCore::SourceAlpha::effectName):
17582         * platform/graphics/filters/SourceGraphic.cpp:
17583         (WebCore::SourceGraphic::effectName):
17584         * platform/graphics/mac/FontCacheMac.mm:
17585         (WebCore::FontCache::getSimilarFontPlatformData):
17586         (WebCore::FontCache::getLastResortFallbackFont):
17587         * platform/graphics/skia/FontCacheSkia.cpp:
17588         (WebCore::FontCache::getLastResortFallbackFont):
17589         * platform/graphics/win/FontCacheWin.cpp:
17590         (WebCore::FontCache::getLastResortFallbackFont):
17591         * platform/graphics/wx/FontCacheWx.cpp:
17592         (WebCore::FontCache::getSimilarFontPlatformData):
17593         * platform/network/ResourceResponseBase.cpp:
17594         (WebCore::ResourceResponseBase::setHTTPHeaderField):
17595         (WebCore::ResourceResponseBase::parseCacheControlDirectives):
17596         (WebCore::ResourceResponseBase::hasCacheValidatorFields):
17597         (WebCore::ResourceResponseBase::date):
17598         (WebCore::ResourceResponseBase::age):
17599         (WebCore::ResourceResponseBase::expires):
17600         (WebCore::ResourceResponseBase::lastModified):
17601         (WebCore::ResourceResponseBase::isAttachment):
17602         * rendering/RenderTextControlMultiLine.cpp:
17603         (WebCore::RenderTextControlMultiLine::getAvgCharWidth):
17604         * rendering/RenderTextControlSingleLine.cpp:
17605         (WebCore::RenderTextControlSingleLine::getAvgCharWidth):
17606         (WebCore::RenderTextControlSingleLine::preferredContentWidth):
17607         * svg/SVGAnimateColorElement.cpp:
17608         (WebCore::attributeValueIsCurrentColor):
17609         * svg/SVGAnimateMotionElement.cpp:
17610         (WebCore::SVGAnimateMotionElement::rotateMode):
17611         * svg/SVGAnimationElement.cpp:
17612         (WebCore::SVGAnimationElement::setCalcMode):
17613         (WebCore::SVGAnimationElement::setAttributeType):
17614         (WebCore::SVGAnimationElement::isAdditive):
17615         (WebCore::SVGAnimationElement::isAccumulated):
17616         (WebCore::inheritsFromProperty):
17617         * svg/SVGFEConvolveMatrixElement.cpp:
17618         (WebCore::SVGFEConvolveMatrixElement::kernelUnitLengthXIdentifier):
17619         (WebCore::SVGFEConvolveMatrixElement::kernelUnitLengthYIdentifier):
17620         (WebCore::SVGFEConvolveMatrixElement::orderXIdentifier):
17621         (WebCore::SVGFEConvolveMatrixElement::orderYIdentifier):
17622         * svg/SVGFEDiffuseLightingElement.cpp:
17623         (WebCore::SVGFEDiffuseLightingElement::kernelUnitLengthXIdentifier):
17624         (WebCore::SVGFEDiffuseLightingElement::kernelUnitLengthYIdentifier):
17625         * svg/SVGFEDropShadowElement.cpp:
17626         (WebCore::SVGFEDropShadowElement::stdDeviationXIdentifier):
17627         (WebCore::SVGFEDropShadowElement::stdDeviationYIdentifier):
17628         * svg/SVGFEGaussianBlurElement.cpp:
17629         (WebCore::SVGFEGaussianBlurElement::stdDeviationXIdentifier):
17630         (WebCore::SVGFEGaussianBlurElement::stdDeviationYIdentifier):
17631         * svg/SVGFEMorphologyElement.cpp:
17632         (WebCore::SVGFEMorphologyElement::radiusXIdentifier):
17633         (WebCore::SVGFEMorphologyElement::radiusYIdentifier):
17634         * svg/SVGFESpecularLightingElement.cpp:
17635         (WebCore::SVGFESpecularLightingElement::kernelUnitLengthXIdentifier):
17636         (WebCore::SVGFESpecularLightingElement::kernelUnitLengthYIdentifier):
17637         * svg/SVGFETurbulenceElement.cpp:
17638         (WebCore::SVGFETurbulenceElement::baseFrequencyXIdentifier):
17639         (WebCore::SVGFETurbulenceElement::baseFrequencyYIdentifier):
17640         * svg/SVGFilterElement.cpp:
17641         (WebCore::SVGFilterElement::filterResXIdentifier):
17642         (WebCore::SVGFilterElement::filterResYIdentifier):
17643         * svg/SVGLangSpace.cpp:
17644         (WebCore::SVGLangSpace::xmlspace):
17645         (WebCore::SVGLangSpace::addSupportedAttributes):
17646         * svg/SVGMarkerElement.cpp:
17647         (WebCore::SVGMarkerElement::orientTypeIdentifier):
17648         (WebCore::SVGMarkerElement::orientAngleIdentifier):
17649         (WebCore::SVGMarkerElement::synchronizeOrientType):
17650         * svg/SVGSVGElement.cpp:
17651         (WebCore::SVGSVGElement::contentScriptType):
17652         (WebCore::SVGSVGElement::contentStyleType):
17653         * svg/SVGStyleElement.cpp:
17654         (WebCore::SVGStyleElement::type):
17655         (WebCore::SVGStyleElement::media):
17656         * svg/SVGTextContentElement.cpp:
17657         (WebCore::SVGTextContentElement::collectStyleForAttribute):
17658         * svg/SVGViewSpec.cpp:
17659         (WebCore::SVGViewSpec::viewBoxIdentifier):
17660         (WebCore::SVGViewSpec::preserveAspectRatioIdentifier):
17661         (WebCore::SVGViewSpec::transformIdentifier):
17662         * svg/animation/SVGSMILElement.cpp:
17663         (WebCore::SVGSMILElement::parseClockValue):
17664         (WebCore::SVGSMILElement::restart):
17665         (WebCore::SVGSMILElement::fill):
17666         (WebCore::SVGSMILElement::repeatCount):
17667         * testing/InternalSettings.cpp:
17668         (WebCore::InternalSettings::from):
17669         * xml/parser/XMLTreeBuilder.cpp:
17670         (WebCore::XMLTreeBuilder::processDOCTYPE):
17671         (WebCore::XMLTreeBuilder::processXMLEntity):
17672
17673 2012-11-08  Beth Dakin  <bdakin@apple.com>
17674
17675         https://bugs.webkit.org/show_bug.cgi?id=101644
17676         Fixed header on Facebook news feed becomes detached from top of 
17677         viewport after rubber band scrolling
17678         -and corresponding-
17679         <rdar://problem/12651944>
17680
17681         Reviewed by Simon Fraser.
17682
17683         There is code to handle this for non-threaded scrolling on FrameView. 
17684         This patch moves most of that code into a convenience function on 
17685         ScrollingCoordinator.
17686
17687         Have FrameView::scrollOffsetForFixedPosition() call 
17688         WebCore::scrollOffsetForFixedPosition() with all the right 
17689         parameters.
17690         * page/FrameView.cpp:
17691         (WebCore::FrameView::scrollOffsetForFixedPosition):
17692
17693         Here's where all the math happens.
17694         * page/scrolling/ScrollingCoordinator.cpp:
17695         (WebCore::fixedPositionScrollOffset):
17696         (WebCore::scrollOffsetForFixedPosition):
17697
17698         The viewportRect in these three places needs to have the 
17699         adjusted-for-fixed offset.
17700         (WebCore::ScrollingCoordinator::updateMainFrameScrollPosition):
17701         * page/scrolling/mac/ScrollingTreeScrollingNodeMac.mm:
17702         (WebCore::ScrollingTreeScrollingNodeMac::setScrollLayerPosition):
17703         * rendering/RenderLayerCompositor.cpp:
17704         (WebCore::RenderLayerCompositor::computeFixedViewportConstraints):
17705
17706 2012-11-08  Alpha Lam  <hclam@chromium.org>
17707
17708         [chromium] Deferred image decoding fails with image orientation
17709         https://bugs.webkit.org/show_bug.cgi?id=101648
17710
17711         Reviewed by Stephen White.
17712
17713         When an image is deferred save the orientation state. Once this state
17714         is cached it can be used to reply future queries since this state is
17715         static.
17716
17717         No new tests but platform/chromium/virtual/deferred/fast/images/image-orientation.html is passing now.
17718
17719         * platform/graphics/chromium/DeferredImageDecoder.cpp:
17720         (WebCore::DeferredImageDecoder::DeferredImageDecoder):
17721         (WebCore::DeferredImageDecoder::frameBufferAtIndex):
17722         (WebCore::DeferredImageDecoder::orientation):
17723         * platform/graphics/chromium/DeferredImageDecoder.h:
17724         (DeferredImageDecoder):
17725
17726 2012-11-08  Andreas Kling  <kling@webkit.org>
17727
17728         DocumentLoader: Shrink-to-fit the ResourceResponse vector after loading completes.
17729         <http://webkit.org/b/101657>
17730
17731         Reviewed by Anders Carlsson.
17732
17733         Shrink DocumentLoader::m_responses to exact size when we stop adding responses to it,
17734         as we know it won't grow after that.
17735
17736         520kB progression on Membuster3.
17737
17738         * loader/DocumentLoader.cpp:
17739         (WebCore::DocumentLoader::stopRecordingResponses):
17740
17741 2012-11-08  Hans Muller  <hmuller@adobe.com>
17742
17743         [CSS Exclusions] Polygon with horizontal bottom edges returns incorrect segments
17744         https://bugs.webkit.org/show_bug.cgi?id=100874
17745
17746         Reviewed by Dirk Schulze.
17747
17748         Revised the way that computeXIntersections() handles intersections with horizotal polygon edges.
17749         Deciding if a vertex intersection corresponds to a polygon "edge crossing", i.e. a change from inside
17750         to outside or outside to inside, now depends on which side of the horizontal line the function's
17751         y parameter corresponds to. If the y corresponds to the top of the line, then isaMinY the parameter
17752         is true, and an intersection with a horizontal edge is only considered to be an edge crossing if
17753         if the inside of the polygon is just below the horizontal edge.  When isMinY is false then the inside
17754         of the polygon must be just above the horizontal edge.
17755
17756         Tests: fast/exclusions/shape-inside/shape-inside-rectilinear-polygon-003.html
17757                fast/exclusions/shape-inside/shape-inside-rectilinear-polygon-004.html
17758
17759         * rendering/ExclusionPolygon.cpp:
17760         (WebCore::getVertexIntersectionVertices): Corrected two cases where the next/previous vertex was determined incorrectly.
17761         (WebCore::ExclusionPolygon::computeXIntersections): Added a bool isMinY parameter which specifies if the y parameter corresponds to the top or bottom a horizontal line.
17762         (WebCore::ExclusionPolygon::getExcludedIntervals): Added the new computeXIntersections() parameter.
17763         (WebCore::ExclusionPolygon::getIncludedIntervals): Ditto.
17764         * rendering/ExclusionPolygon.h:
17765         (WebCore::ExclusionPolygonEdge::previousEdge): Corrected the previousEdge() function.
17766
17767 2012-11-08  Otto Derek Cheung  <otcheung@rim.com>
17768
17769         [BlackBerry] Disable cookies on file://
17770         https://bugs.webkit.org/show_bug.cgi?id=101646
17771
17772         Reviewed by Rob Buis.
17773
17774         Disabling cookies on file and local in the browser app.
17775
17776         PR 239779
17777
17778         Tested by trying to set and retrieve cookies on WI while browsing
17779         files on the file scheme.
17780
17781         * platform/blackberry/CookieManager.cpp:
17782         (WebCore):
17783         (WebCore::shouldIgnoreScheme):
17784         (WebCore::CookieManager::getRawCookies):
17785         (WebCore::CookieManager::checkAndTreatCookie):
17786
17787 2012-11-08  Joshua Bell  <jsbell@chromium.org>
17788
17789         Expose snapshots in platform/leveldb wrapper API
17790         https://bugs.webkit.org/show_bug.cgi?id=100786
17791
17792         Reviewed by Tony Chang.
17793
17794         Expose leveldb "snapshots" in the LevelDB API. A snapshot lets you observe the database
17795         as it was when the snapshot was taken. This can be used to implement parallel transactions,
17796         e.g. where a read transaction won't see updates made by a later write transaction.
17797
17798         Tests: webkit_unit_tests --gtest_filter='LevelDBDatabaseTest.Transaction*'
17799
17800         * platform/leveldb/LevelDBDatabase.cpp:
17801         (WebCore::LevelDBSnapshot::LevelDBSnapshot): New (but for now internal-only) wrapper type.
17802         (WebCore):
17803         (WebCore::LevelDBSnapshot::~LevelDBSnapshot): Release the leveldb::Snapshot.
17804         (WebCore::LevelDBDatabase::get): Optional snapshot argument, for use by transactions.
17805         (WebCore::LevelDBDatabase::createIterator): Ditto.
17806         * platform/leveldb/LevelDBDatabase.h:
17807         (leveldb):
17808         (WebCore):
17809         (LevelDBSnapshot):
17810         (LevelDBDatabase):
17811         * platform/leveldb/LevelDBTransaction.cpp:
17812         (WebCore::LevelDBTransaction::LevelDBTransaction): Initialize a snapshot.
17813         (WebCore::LevelDBTransaction::get):
17814         (WebCore::LevelDBTransaction::TransactionIterator::TransactionIterator):
17815         * platform/leveldb/LevelDBTransaction.h:
17816         (LevelDBTransaction):
17817
17818 2012-11-08  Brady Eidson  <beidson@apple.com>
17819
17820         Have NetworkProcess do the actual loading of subresources.
17821         https://bugs.webkit.org/show_bug.cgi?id=101640
17822
17823         Reviewed by Alexey Proskuryakov.
17824
17825         No new tests (No change in behavior in any configuration we test.)
17826
17827         * WebCore.exp.in:
17828         * loader/ResourceBuffer.h: Virtualize a few methods for ports to override.
17829
17830 2012-11-08  Huang Dongsung  <luxtella@company100.net>
17831
17832         Coordinated Graphics: Remove an invisible TiledBackingStore of CoordinatedGraphicsLayer.
17833         https://bugs.webkit.org/show_bug.cgi?id=101424
17834
17835         Reviewed by Noam Rosenthal.
17836
17837         This patch adds ASSERT to TextureMapperLayer while fixing this bug in
17838         WebKit2.
17839
17840         * platform/graphics/texmap/TextureMapperLayer.cpp:
17841         (WebCore::TextureMapperLayer::paintSelf):
17842
17843 2012-11-08  Sheriff Bot  <webkit.review.bot@gmail.com>
17844
17845         Unreviewed, rolling out r133945.
17846         http://trac.webkit.org/changeset/133945
17847         https://bugs.webkit.org/show_bug.cgi?id=101645
17848
17849         Numerous layout and unit test failures (Requested by
17850         jsbell|gardener on #webkit).
17851
17852         * bindings/scripts/CodeGeneratorV8.pm:
17853         (GenerateHeader):
17854         * bindings/scripts/test/V8/V8Float64Array.h:
17855         (WebCore::V8Float64Array::toNative):
17856         * bindings/scripts/test/V8/V8TestActiveDOMObject.h:
17857         (WebCore::V8TestActiveDOMObject::toNative):
17858         * bindings/scripts/test/V8/V8TestCustomNamedGetter.h:
17859         (WebCore::V8TestCustomNamedGetter::toNative):
17860         * bindings/scripts/test/V8/V8TestEventConstructor.h:
17861         (WebCore::V8TestEventConstructor::toNative):
17862         * bindings/scripts/test/V8/V8TestEventTarget.h:
17863         (WebCore::V8TestEventTarget::toNative):
17864         * bindings/scripts/test/V8/V8TestException.h:
17865         (WebCore::V8TestException::toNative):
17866         * bindings/scripts/test/V8/V8TestInterface.h:
17867         (WebCore::V8TestInterface::toNative):
17868         * bindings/scripts/test/V8/V8TestMediaQueryListListener.h:
17869         (WebCore::V8TestMediaQueryListListener::toNative):
17870         * bindings/scripts/test/V8/V8TestNamedConstructor.h:
17871         (WebCore::V8TestNamedConstructor::toNative):
17872         * bindings/scripts/test/V8/V8TestNode.h:
17873         (WebCore::V8TestNode::toNative):
17874         * bindings/scripts/test/V8/V8TestObj.h:
17875         (WebCore::V8TestObj::toNative):
17876         * bindings/scripts/test/V8/V8TestSerializedScriptValueInterface.h:
17877         (WebCore::V8TestSerializedScriptValueInterface::toNative):
17878         * bindings/v8/NPV8Object.cpp:
17879         (WebCore::v8ObjectToNPObject):
17880         (WebCore::npCreateV8ScriptObject):
17881         * bindings/v8/V8Collection.h:
17882         (WebCore::toNativeCollection):
17883         * bindings/v8/V8DOMWindowShell.cpp:
17884         (WebCore::setIsolatedWorldField):
17885         (WebCore::V8DOMWindowShell::enteredIsolatedWorldContext):
17886         * bindings/v8/V8DOMWrapper.cpp:
17887         (WebCore::V8DOMWrapper::isWrapperOfType):
17888         * bindings/v8/V8DOMWrapper.h:
17889         (WebCore::V8DOMWrapper::setDOMWrapper):
17890         (WebCore::V8DOMWrapper::clearDOMWrapper):
17891         * bindings/v8/WrapperTypeInfo.h:
17892         (WebCore::toNative):
17893         (WebCore::toWrapperTypeInfo):
17894
17895 2012-11-01  Filip Pizlo  <fpizlo@apple.com>
17896
17897         JSC should infer when indexed storage contains only integers or doubles
17898         https://bugs.webkit.org/show_bug.cgi?id=98606
17899
17900         Reviewed by Oliver Hunt.
17901
17902         Just refactoring WebCore to pass 0 for the ArrayAllocationProfile*.
17903
17904         * bindings/js/JSCanvasRenderingContext2DCustom.cpp:
17905         (WebCore::JSCanvasRenderingContext2D::webkitLineDash):
17906         * bindings/js/JSClipboardCustom.cpp:
17907         (WebCore::JSClipboard::types):
17908         * bindings/js/JSDOMBinding.cpp:
17909         (WebCore::jsArray):
17910         * bindings/js/JSDOMBinding.h:
17911         (WebCore::jsArray):
17912         * bindings/js/JSInjectedScriptHostCustom.cpp:
17913         (WebCore::getJSListenerFunctions):
17914         * bindings/js/JSJavaScriptCallFrameCustom.cpp:
17915         (WebCore::JSJavaScriptCallFrame::scopeChain):
17916         * bindings/js/JSMessageEventCustom.cpp:
17917         (WebCore::JSMessageEvent::ports):
17918         * bindings/js/JSMutationCallbackCustom.cpp:
17919         (WebCore::JSMutationCallback::handleEvent):
17920         * bindings/js/JSWebGLRenderingContextCustom.cpp:
17921         (WebCore::toJS):
17922         (WebCore::JSWebGLRenderingContext::getAttachedShaders):
17923         (WebCore::JSWebGLRenderingContext::getSupportedExtensions):
17924         * bindings/js/SerializedScriptValue.cpp:
17925         (WebCore::CloneDeserializer::deserialize):
17926
17927 2012-11-08  Tiancheng Jiang  <tijiang@rim.com>
17928
17929         [BlackBerry] Update BB10 date input form.
17930         https://bugs.webkit.org/show_bug.cgi?id=101075
17931
17932         Reviewed by Rob Buis.
17933
17934         RIM PR 234531
17935         Internally Reviewed by Mike Fenton.
17936         Change date input appearance to button and hide caret when click on them.
17937
17938         * css/themeBlackBerry.css:
17939         (input[type="date"], input[type="datetime"], input[type="datetime-local"], input[type="time"], input[type="month"]):
17940
17941 2012-11-08  Adam Barth  <abarth@webkit.org>
17942
17943         [V8] Update callers to use the aligned pointer API rather than the deprecated unaligned pointer API
17944         https://bugs.webkit.org/show_bug.cgi?id=101519
17945
17946         Reviewed by Ojan Vafai.
17947
17948         There should be no change in behavior.  The new API is slightly faster
17949         than the old API (and apparently works correctly internally in V8).
17950
17951         * bindings/scripts/CodeGeneratorV8.pm:
17952         (GenerateHeader):
17953         * bindings/scripts/test/V8/V8Float64Array.h:
17954         (WebCore::V8Float64Array::toNative):
17955         * bindings/scripts/test/V8/V8TestActiveDOMObject.h:
17956         (WebCore::V8TestActiveDOMObject::toNative):
17957         * bindings/scripts/test/V8/V8TestCustomNamedGetter.h:
17958         (WebCore::V8TestCustomNamedGetter::toNative):
17959         * bindings/scripts/test/V8/V8TestEventConstructor.h:
17960         (WebCore::V8TestEventConstructor::toNative):
17961         * bindings/scripts/test/V8/V8TestEventTarget.h:
17962         (WebCore::V8TestEventTarget::toNative):
17963         * bindings/scripts/test/V8/V8TestException.h:
17964         (WebCore::V8TestException::toNative):
17965         * bindings/scripts/test/V8/V8TestInterface.h:
17966         (WebCore::V8TestInterface::toNative):
17967         * bindings/scripts/test/V8/V8TestMediaQueryListListener.h:
17968         (WebCore::V8TestMediaQueryListListener::toNative):
17969         * bindings/scripts/test/V8/V8TestNamedConstructor.h:
17970         (WebCore::V8TestNamedConstructor::toNative):
17971         * bindings/scripts/test/V8/V8TestNode.h:
17972         (WebCore::V8TestNode::toNative):
17973         * bindings/scripts/test/V8/V8TestObj.h:
17974         (WebCore::V8TestObj::toNative):
17975         * bindings/scripts/test/V8/V8TestSerializedScriptValueInterface.h:
17976         (WebCore::V8TestSerializedScriptValueInterface::toNative):
17977         * bindings/v8/NPV8Object.cpp:
17978         (WebCore::v8ObjectToNPObject):
17979         (WebCore::npCreateV8ScriptObject):
17980         * bindings/v8/V8Collection.h:
17981         (WebCore::toNativeCollection):
17982         * bindings/v8/V8DOMWindowShell.cpp:
17983         (WebCore::setIsolatedWorldField):
17984         (WebCore::V8DOMWindowShell::enteredIsolatedWorldContext):
17985         * bindings/v8/V8DOMWrapper.cpp:
17986         (WebCore::V8DOMWrapper::isWrapperOfType):
17987         * bindings/v8/V8DOMWrapper.h:
17988         (WebCore::V8DOMWrapper::setDOMWrapper):
17989         (WebCore::V8DOMWrapper::clearDOMWrapper):
17990         * bindings/v8/WrapperTypeInfo.h:
17991         (WebCore::toNative):
17992         (WebCore::toWrapperTypeInfo):
17993
17994 2012-11-08  Erik Arvidsson  <arv@chromium.org>
17995
17996         setAttributeNode and friends should not have optional argument
17997         https://bugs.webkit.org/show_bug.cgi?id=101631
17998
17999         Reviewed by Ojan Vafai.
18000
18001         http://www.w3.org/TR/DOM-Level-3-Core/core.html#ID-887236154
18002
18003         Fix getAttributeNode, getAttributeNodeNS and removeAttributeNode to make the Attr
18004         argument mandatory.
18005
18006         These used to throw DOMExceptions when an invalid type was passed instead of
18007         TypeError which is also a spec violation.
18008
18009         Updated existing tests.
18010
18011         * bindings/scripts/CodeGeneratorV8.pm:
18012         * dom/Element.cpp:
18013         * dom/Element.idl:
18014
18015 2012-11-08  Joshua Bell  <jsbell@chromium.org>
18016
18017         IndexedDB: Remove unused error handling clauses when writing to transaction
18018         https://bugs.webkit.org/show_bug.cgi?id=100700
18019
18020         Reviewed by Tony Chang.
18021
18022         Transactions are written into in-memory data structures. This can only fail if allocation
18023         fails, so "success" results are always returned. Change the return types to void, and delete
18024         all of the unreachable error handling code.
18025
18026         No new tests - just refactoring/dead code removal.
18027
18028         * Modules/indexeddb/IDBLevelDBBackingStore.cpp:
18029         (WebCore::putBool): Only write to transactions.
18030         (WebCore):
18031         (WebCore::putInt): Ditto.
18032         (WebCore::putVarInt): Ditto.
18033         (WebCore::putString): Ditto.
18034         (WebCore::putIDBKeyPath): Ditto.
18035         (WebCore::IDBLevelDBBackingStore::updateIDBDatabaseIntVersion):
18036         (WebCore::IDBLevelDBBackingStore::updateIDBDatabaseMetaData):
18037         (WebCore::deleteRange): Writes only to transaction, so can't fail.
18038         (WebCore::setMaxObjectStoreId):
18039         (WebCore::IDBLevelDBBackingStore::createObjectStore):
18040         (WebCore::getNewVersionNumber):
18041         (WebCore::IDBLevelDBBackingStore::putObjectStoreRecord):
18042         (WebCore::IDBLevelDBBackingStore::maybeUpdateKeyGeneratorCurrentNumber):
18043         (WebCore::setMaxIndexId):
18044         (WebCore::IDBLevelDBBackingStore::createIndex):
18045         (WebCore::IDBLevelDBBackingStore::putIndexDataForRecord):
18046         * platform/leveldb/LevelDBTransaction.cpp:
18047         (WebCore::LevelDBTransaction::set): Return type is void.
18048         (WebCore::LevelDBTransaction::put): Ditto.
18049         (WebCore::LevelDBTransaction::remove): Ditto.
18050         * platform/leveldb/LevelDBTransaction.h:
18051         (LevelDBTransaction):
18052
18053 2012-11-08  Ryosuke Niwa  <rniwa@webkit.org>
18054
18055         On Chromium, click-after-nested-block.html, focus_editable_html.html, and autoscroll.html
18056         hit assertion added in r133840
18057         https://bugs.webkit.org/show_bug.cgi?id=101576
18058
18059         Reviewed by Abhishek Arya.
18060
18061         Update layout before invalidating caret rect as needed.
18062         Existing tests cover this.
18063
18064         * editing/FrameSelection.cpp:
18065         (WebCore::FrameSelection::setCaretVisibility): Merged clearCaretRectIfNeeded.
18066         * editing/FrameSelection.h:
18067
18068 2012-11-08  Elliott Sprehn  <esprehn@chromium.org>
18069
18070         Skip frame owner disconnect when there's no frames
18071         https://bugs.webkit.org/show_bug.cgi?id=101619
18072
18073         Reviewed by Ojan Vafai.
18074
18075         Even when there's no subframes in the document we traverse down every
18076         subtree on Node removal looking for frames to disconnect. This patch
18077         checks document()->frame()->tree()->firstChild() to skip this traversal
18078         if there's no subframes.
18079
18080         No new tests, this just short circuits code for speed.
18081
18082         * dom/ContainerNodeAlgorithms.h:
18083         (WebCore::ChildFrameDisconnector::ChildFrameDisconnector):
18084
18085 2012-11-08  Erik Arvidsson  <arv@chromium.org>
18086
18087         Wrong error type is thrown for type errors in callbacks
18088         https://bugs.webkit.org/show_bug.cgi?id=101502
18089
18090         Reviewed by Adam Barth.
18091
18092         We should be throwing a TypeError and not a DOMException with code TYPE_MISMATCH_ERR.
18093
18094         http://www.w3.org/TR/WebIDL/#es-callback-function
18095
18096         Updated existing tests.
18097
18098         * bindings/scripts/CodeGeneratorJS.pm:
18099         * bindings/scripts/CodeGeneratorV8.pm:
18100         * bindings/scripts/test/JS/JSTestObj.cpp:
18101         * bindings/scripts/test/V8/V8TestObj.cpp:
18102
18103 2012-11-08  Andreas Kling  <kling@webkit.org>
18104
18105         4.68MB below RenderStyle::filter() on Membuster3.
18106         <http://webkit.org/b/101624>
18107         <rdar://problem/12663822>
18108
18109         Reviewed by Darin Adler.
18110
18111         Rename the non-const RenderStyle::filter() to mutableFilter() since using it causes us to detach
18112         from the rare non-inherited data (copy-on-write.)
18113         Most call sites were calling filter() on a RenderStyle* which was causing the bloat.
18114
18115         4.68MB progression on Membuster3.
18116
18117         * css/StyleResolver.cpp:
18118         (WebCore::StyleResolver::loadPendingSVGDocuments):
18119         (WebCore::StyleResolver::loadPendingShaders):
18120         * rendering/style/RenderStyle.h:
18121
18122 2012-11-08  Alexey Proskuryakov  <ap@apple.com>
18123
18124         Create loader/blackberry directory, because svn-apply cannot apply a patch that
18125         creates a directory and moves a file into it.
18126
18127         * loader/blackberry: Added.
18128
18129 2012-11-08  Geoffrey Garen  <ggaren@apple.com>
18130
18131         Mac build fix: Mark WidthCache.h 'private' so WebKit can use it.
18132
18133         Not reviewed.
18134
18135         * WebCore.xcodeproj/project.pbxproj:
18136
18137 2012-11-05  Geoffrey Garen  <ggaren@apple.com>
18138
18139         Optimized kerning and ligatures using caching
18140         https://bugs.webkit.org/show_bug.cgi?id=101269
18141
18142         Reviewed by Dan Bernstein.
18143
18144         Consider three kinds of text layout, and the value of caching for each:
18145
18146             (1) 1 layout of 100% unique words: small negative value.
18147
18148             (2) 1 layout of English prose: medium positive value.
18149
18150             (3) Many layouts of anything: extra-extra-large positive value.
18151
18152         Since we can't distinguish betwen these workflows a priori, we use statistical
18153         sampling. To minimize cost in (1) and maximize benefit in (2) and (3), we treat
18154         each cache access as a statistical sample, and use the cache in proportion to
18155         the observed probability of duplicate text measurement.
18156
18157         Benchmark results:
18158             plt3: 1% faster
18159             chapter-reflow-once-random: No change [*]
18160             chapter-reflow-once: 23% faster
18161             chapter-reflow-twice: 52% faster
18162             chapter-reflow-thrice: 68% faster
18163             chapter-reflow: 263% faster
18164             line-layout: 270% faster
18165
18166             [*] This is a stress test designed to make everything go wrong for
18167             caching. It does not represent real world content.
18168
18169         * GNUmakefile.list.am:
18170         * Target.pri:
18171         * WebCore.vcproj/WebCore.vcproj:
18172         * WebCore.xcodeproj/project.pbxproj:
18173         * platform/graphics/WidthCache.h: Added.
18174
18175         (WidthCache): Added a class that caches common word widths. This cache
18176         could cache more things or more cases in future -- but for now it seems
18177         to cover the common cases.
18178
18179         (SmallStringKey): Early profiling showed that allocating an AtomicString
18180         or String measurably added to the cost of the cache, so I added a custom
18181         string key that can be stored directly inside the table by value --
18182         empirically answering an age-old question with which Apple WebKit engineers
18183         seem to be obsessed.
18184
18185         (WebCore::WidthCache::SmallStringKey::capacity):
18186         (WebCore::WidthCache::SmallStringKey::SmallStringKey):
18187         (WebCore::WidthCache::SmallStringKey::characters):
18188         (WebCore::WidthCache::SmallStringKey::length):
18189         (WebCore::WidthCache::SmallStringKey::hash):
18190         (WebCore::WidthCache::SmallStringKey::isHashTableDeletedValue):
18191         (WebCore::WidthCache::SmallStringKey::isHashTableEmptyValue):
18192         (WebCore::WidthCache::SmallStringKeyHash::hash):
18193         (WebCore::WidthCache::SmallStringKeyHash::equal):
18194         (SmallStringKeyHash):
18195         (SmallStringKeyHashTraits):
18196         (WebCore::WidthCache::SmallStringKeyHashTraits::isEmptyValue): Ditto.
18197
18198         (WebCore::WidthCache::WidthCache):
18199         (WebCore::WidthCache::add): Separate out the "don't use the cache" case
18200         so the compiler can inline it separate, hopefully further reducing cases
18201         of (1).
18202
18203         (WebCore::WidthCache::addSlowCase): There's a little subtlety to the
18204         sampling policy here. Lots of different approaches are possible, and I
18205         just picked a simple one that seemed to work based on benchmarking. I'll
18206         point out some interesting sublteties I'm aware of here:
18207
18208             (*) Since we start at the min sampling rate, a font used for 20 words
18209             or fewer never allocates a cache. Anecdotally, some fonts seem to
18210             be used this way.
18211
18212             (*) When the sampling rate is x / y, sampling all x words in a row
18213             seems smart because some words may occur more commonly in relation to
18214             each other (such as 'each' and 'other'), and repeat workloads will
18215             lay out the same words in order. Intuitively, these are both reasons
18216             this policy may ramp up more effectively under load.
18217
18218             (*) I opted for linear back-off instead of, say, exponential back-off
18219             because we're not trying to back off to infinity -- just to our min
18220             sampling rate. Since we don't expect the cache to hit for every word,
18221             my guess is that exponential back-off would be too aggressive.
18222
18223             (*) Our "eviction" policy has an IQ of 1. I expect this is sufficient
18224             because it would be surprising to see a million unique words all used
18225             in the same document. (I would not like to play a Letterpress game
18226             against such a document.)
18227
18228         (WebCore::WidthCache::clear): Needed because a font can change, in which
18229         case we need to ditch its cache.
18230
18231         (WebCore::operator==): Needed for hashing.
18232
18233 2012-11-08  Andrey Kosyakov  <caseq@chromium.org>
18234
18235         Web Inspector: show statistics over selected frame range in Timeline's Frame mode
18236         https://bugs.webkit.org/show_bug.cgi?id=101593
18237
18238         Reviewed by Pavel Feldman.
18239
18240         - change status bar records counter wording to "N of M frames|records shown" depending on mode;
18241         - append average frame length and & stddev in frame mode;
18242         - expand the above to a popover that includes frame count, range duration and min/avg/max/stddev on frame length;
18243         - show frame bars & dividers iff selection range includes < 30 frames (drive-by)
18244
18245         * English.lproj/localizedStrings.js:
18246         * inspector/front-end/TimelineFrameController.js:
18247         (WebInspector.FrameStatistics):
18248         * inspector/front-end/TimelineModel.js:
18249         (WebInspector.TimelineModel.aggregateTimeByCategory):
18250         * inspector/front-end/TimelinePanel.js:
18251         (WebInspector.TimelinePanel.prototype.get statusBarItems):
18252         (WebInspector.TimelinePanel.prototype._createStatusBarItems.getAnchor):
18253         (WebInspector.TimelinePanel.prototype._createStatusBarItems):
18254         (WebInspector.TimelinePanel.prototype._updateRecordsCounter):
18255         (WebInspector.TimelinePanel.prototype._updateFrameStatistics):
18256         (WebInspector.TimelinePanel.prototype._showFrameStatistics):
18257         (WebInspector.TimelinePanel.prototype._updateFrameBars):
18258         (WebInspector.TimelinePanel.prototype._overviewModeChanged.set if):
18259         (WebInspector.TimelinePanel.prototype._overviewModeChanged):
18260         (WebInspector.TimelinePanel.prototype._refresh):
18261         * inspector/front-end/TimelinePresentationModel.js:
18262         (WebInspector.TimelinePresentationModel.prototype.):
18263         (WebInspector.TimelinePresentationModel.prototype.compareEndTime):
18264         (WebInspector.TimelinePresentationModel.prototype.filteredFrames):
18265         (WebInspector.TimelinePresentationModel.generatePopupContentForFrameStatistics):
18266         * inspector/front-end/timelinePanel.css:
18267         (.timeline-records-stats, .storage-application-cache-status, .storage-application-cache-connectivity):
18268         (.timeline-records-stats):
18269         (.timeline-frames-stats):
18270
18271 2012-11-08  Jakob Petsovits  <jpetsovits@rim.com>
18272
18273         [BlackBerry] Rework the API to use document coordinates
18274         https://bugs.webkit.org/show_bug.cgi?id=101608
18275         RIM PR 173292
18276
18277         Reviewed by Adam Treat.
18278
18279         Provide a better API for WebPage to relay.
18280         See Source/WebKit/blackberry/ChangeLog for details.
18281
18282         * platform/graphics/blackberry/MediaPlayerPrivateBlackBerry.cpp:
18283         (WebCore::MediaPlayerPrivate::getWindowScreenRect):
18284         * platform/graphics/blackberry/MediaPlayerPrivateBlackBerry.h:
18285         (Platform):
18286         (BlackBerry):
18287         (MediaPlayerPrivate):
18288
18289 2012-11-08  Sheriff Bot  <webkit.review.bot@gmail.com>
18290
18291         Unreviewed, rolling out r133892.
18292         http://trac.webkit.org/changeset/133892
18293         https://bugs.webkit.org/show_bug.cgi?id=101617
18294
18295         Compile failures on mac, android, linux (Requested by
18296         jsbell|gardener on #webkit).
18297
18298         * bindings/v8/DOMDataStore.cpp:
18299         (WebCore::DOMDataStore::current):
18300         * bindings/v8/DOMWrapperWorld.h:
18301         (WebCore::DOMWrapperWorld::domDataStore):
18302         (WebCore::DOMWrapperWorld::DOMWrapperWorld):
18303         * bindings/v8/V8DOMWrapper.h:
18304         (WebCore::V8DOMWrapper::getCachedWrapper):
18305
18306 2012-11-08  Andrey Adaikin  <aandrey@chromium.org>
18307
18308         Web Inspector: [Canvas] UI iterations: image on the top, auto replay
18309         https://bugs.webkit.org/show_bug.cgi?id=101584
18310
18311         Reviewed by Pavel Feldman.
18312
18313         * inspector/front-end/CanvasProfileView.js:
18314         (WebInspector.CanvasProfileView):
18315         (WebInspector.CanvasProfileView.prototype._showTraceLog):
18316         (WebInspector.CanvasProfileView.prototype._onTraceLogItemClick):
18317         (WebInspector.CanvasProfileView.prototype._replayTraceLog.didReplayTraceLog):
18318         (WebInspector.CanvasProfileView.prototype._replayTraceLog):
18319         * inspector/front-end/canvasProfiler.css:
18320         (.canvas-trace-log):
18321         (#canvas-replay-image-container):
18322         (#canvas-replay-image):
18323
18324 2012-11-08  Wei Fanzhe  <whyer1@gmail.com>
18325
18326         While absolute positioning is put before the first flexitem, flexitems will move to a new line.
18327         https://bugs.webkit.org/show_bug.cgi?id=101294
18328
18329         Reviewed by Ojan Vafai.
18330
18331         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.  
18332
18333         * rendering/RenderFlexibleBox.cpp:
18334         (WebCore::RenderFlexibleBox::computeNextFlexLine):
18335
18336 2012-11-08  Dimitri Glazkov  <dglazkov@chromium.org>
18337
18338         Unreviewed, rolling out r133429.
18339         http://trac.webkit.org/changeset/133429
18340         https://bugs.webkit.org/show_bug.cgi?id=101173
18341
18342         Speculative roll out, investigating perf regression.
18343
18344         * dom/ContextFeatures.cpp:
18345         * dom/ContextFeatures.h:
18346         * dom/Position.cpp:
18347         (WebCore::Position::Position):
18348         (WebCore::Position::findParent):
18349         * dom/TreeScope.cpp:
18350         (WebCore::TreeScope::getSelection):
18351         * html/HTMLTagNames.in:
18352         * html/shadow/HTMLContentElement.cpp:
18353         (WebCore::HTMLContentElement::contentTagName):
18354         * page/DOMWindow.idl:
18355
18356 2012-11-07  Emil A Eklund  <eae@chromium.org>
18357
18358         Fix enclosingLayoutRect calls in InlineFlowBox.h
18359         https://bugs.webkit.org/show_bug.cgi?id=101497
18360
18361         Reviewed by Levi Weintraub.
18362
18363         InlineFlowBox.h used to include LayoutTypesInlineMethods.h which
18364         overrid enclosingLayoutRect to call closingIntRect. When we
18365         removed the LayoutTypes abstraction we switched these to
18366         enclosingIntRect to preserve the behavior.
18367         This patch changes these back to enclosingLayoutRect which is
18368         the desired behavior.
18369
18370         Covered by existing tests.
18371
18372         * rendering/InlineFlowBox.h:
18373         (WebCore::InlineFlowBox::layoutOverflowRect):
18374         (WebCore::InlineFlowBox::visualOverflowRect):
18375
18376 2012-11-08  Philip Rogers  <pdr@google.com>
18377
18378         Remove unnecessary save/restore in SVGTextRunRenderingContext
18379         https://bugs.webkit.org/show_bug.cgi?id=101546
18380
18381         Reviewed by Andreas Kling.
18382
18383         This patch removes an unnecessary context save/restore SVGTextRunRenderingContext by
18384         refactoring the code to save off the stroke thickness.
18385
18386         No new tests as this is heavily covered by existing tests.
18387
18388         * rendering/svg/SVGTextRunRenderingContext.cpp:
18389         (WebCore::SVGTextRunRenderingContext::drawSVGGlyphs):
18390
18391 2012-11-08  Carlos Garcia Campos  <cgarcia@igalia.com>
18392
18393         [GTK] Clean up includes in GObject DOM bindings code
18394         https://bugs.webkit.org/show_bug.cgi?id=101077
18395
18396         Reviewed by Kentaro Hara.
18397
18398         Remove some headers included multiple times for the same file and
18399         fix consistency in the includes style.
18400
18401         * bindings/gobject/DOMObjectCache.cpp:
18402         * bindings/gobject/GObjectEventListener.cpp:
18403         * bindings/gobject/GObjectEventListener.h:
18404         * bindings/gobject/WebKitDOMBinding.cpp:
18405         * bindings/gobject/WebKitDOMBinding.h:
18406         * bindings/gobject/WebKitDOMEventTarget.cpp:
18407         * bindings/gobject/WebKitDOMEventTarget.h:
18408         * bindings/gobject/WebKitDOMEventTargetPrivate.h:
18409         (WebKit):
18410         * bindings/gobject/WebKitDOMObject.cpp:
18411         * bindings/gobject/WebKitDOMObject.h:
18412         * bindings/gobject/WebKitHTMLElementWrapperFactory.cpp:
18413         * bindings/gobject/WebKitHTMLElementWrapperFactory.h:
18414         * bindings/scripts/CodeGeneratorGObject.pm:
18415         (GenerateHeader):
18416         (GenerateFunction):
18417         (Generate):
18418         (WriteData):
18419         * bindings/scripts/test/GObject/WebKitDOMFloat64Array.cpp:
18420         * bindings/scripts/test/GObject/WebKitDOMFloat64Array.h:
18421         * bindings/scripts/test/GObject/WebKitDOMFloat64ArrayPrivate.h:
18422         * bindings/scripts/test/GObject/WebKitDOMTestActiveDOMObject.cpp:
18423         * bindings/scripts/test/GObject/WebKitDOMTestActiveDOMObject.h:
18424         * bindings/scripts/test/GObject/WebKitDOMTestActiveDOMObjectPrivate.h:
18425         * bindings/scripts/test/GObject/WebKitDOMTestCallback.cpp:
18426         * bindings/scripts/test/GObject/WebKitDOMTestCallback.h:
18427         * bindings/scripts/test/GObject/WebKitDOMTestCallbackPrivate.h:
18428         * bindings/scripts/test/GObject/WebKitDOMTestCustomNamedGetter.cpp:
18429         * bindings/scripts/test/GObject/WebKitDOMTestCustomNamedGetter.h:
18430         * bindings/scripts/test/GObject/WebKitDOMTestCustomNamedGetterPrivate.h:
18431         * bindings/scripts/test/GObject/WebKitDOMTestEventConstructor.cpp:
18432         * bindings/scripts/test/GObject/WebKitDOMTestEventConstructor.h:
18433         * bindings/scripts/test/GObject/WebKitDOMTestEventConstructorPrivate.h:
18434         * bindings/scripts/test/GObject/WebKitDOMTestEventTarget.cpp:
18435         * bindings/scripts/test/GObject/WebKitDOMTestEventTarget.h:
18436         * bindings/scripts/test/GObject/WebKitDOMTestEventTargetPrivate.h:
18437         * bindings/scripts/test/GObject/WebKitDOMTestException.cpp:
18438         * bindings/scripts/test/GObject/WebKitDOMTestException.h:
18439         * bindings/scripts/test/GObject/WebKitDOMTestExceptionPrivate.h:
18440         * bindings/scripts/test/GObject/WebKitDOMTestInterface.cpp:
18441         * bindings/scripts/test/GObject/WebKitDOMTestInterface.h:
18442         * bindings/scripts/test/GObject/WebKitDOMTestInterfacePrivate.h:
18443         * bindings/scripts/test/GObject/WebKitDOMTestMediaQueryListListener.cpp:
18444         * bindings/scripts/test/GObject/WebKitDOMTestMediaQueryListListener.h:
18445         * bindings/scripts/test/GObject/WebKitDOMTestMediaQueryListListenerPrivate.h:
18446         * bindings/scripts/test/GObject/WebKitDOMTestNamedConstructor.cpp:
18447         * bindings/scripts/test/GObject/WebKitDOMTestNamedConstructor.h:
18448         * bindings/scripts/test/GObject/WebKitDOMTestNamedConstructorPrivate.h:
18449         * bindings/scripts/test/GObject/WebKitDOMTestNode.cpp:
18450         * bindings/scripts/test/GObject/WebKitDOMTestNode.h:
18451         * bindings/scripts/test/GObject/WebKitDOMTestNodePrivate.h:
18452         * bindings/scripts/test/GObject/WebKitDOMTestObj.cpp:
18453         * bindings/scripts/test/GObject/WebKitDOMTestObj.h:
18454         * bindings/scripts/test/GObject/WebKitDOMTestObjPrivate.h:
18455         * bindings/scripts/test/GObject/WebKitDOMTestSerializedScriptValueInterface.cpp:
18456         * bindings/scripts/test/GObject/WebKitDOMTestSerializedScriptValueInterface.h:
18457         * bindings/scripts/test/GObject/WebKitDOMTestSerializedScriptValueInterfacePrivate.h:
18458
18459 2012-11-08  Dan Carney  <dcarney@google.com>
18460
18461         [V8] Main world should have one DOMDataStore
18462         https://bugs.webkit.org/show_bug.cgi?id=101470
18463
18464         Reviewed by Kentaro Hara.
18465
18466         The main world DOMWrapperWorld held onto a DOMDataStore that should
18467         never be used, as there is a static one optimized for speed in
18468         DOMDataStore.
18469
18470         No new tests. No change in functionality.
18471
18472         * bindings/v8/DOMDataStore.cpp:
18473         (WebCore::DOMDataStore::current):
18474         * bindings/v8/DOMWrapperWorld.h:
18475         (WebCore::DOMWrapperWorld::isolatedWorldDomDataStore):
18476         (WebCore::DOMWrapperWorld::DOMWrapperWorld):
18477         * bindings/v8/V8DOMWrapper.h:
18478         (WebCore::V8DOMWrapper::getCachedWrapper):
18479
18480 2012-11-08  Laszlo Gombos  <l.gombos@samsung.com>
18481
18482         [EFL] Remove non-variable options from the build system
18483         https://bugs.webkit.org/show_bug.cgi?id=101506
18484
18485         Reviewed by Kenneth Rohde Christiansen.
18486
18487         Remove WTF_USE_ICU_UNICODE, WTF_USE_CAIRO and WTF_USE_FREETYPE cmake variables
18488         as these are always set to const 1 and not really configurable.
18489
18490         Remove duplicate platform/graphics/cairo include path from
18491         PlatformEfl.cmake.
18492
18493         No new tests as there is no new functionality.
18494
18495         * PlatformEfl.cmake:
18496
18497 2012-11-08  KyungTae Kim  <ktf.kim@samsung.com>
18498
18499         Unused parameters on GraphicsLayerUpdater.cpp
18500         https://bugs.webkit.org/show_bug.cgi?id=101577
18501
18502         Reviewed by Kentaro Hara.
18503
18504         The parameter 'displayID' is not used when !USE(REQUEST_ANIMATION_FRAME_DISPLAY_MONITOR)
18505         Use UNUSED_PARAM macro for removing -Wunused-parameter warnings
18506
18507         * platform/graphics/GraphicsLayerUpdater.cpp:
18508         (WebCore::GraphicsLayerUpdater::GraphicsLayerUpdater):
18509         (WebCore::GraphicsLayerUpdater::screenDidChange):
18510
18511 2012-11-08  Alexander Pavlov  <apavlov@chromium.org>
18512
18513         Web Inspector: Add option to disable rulers (Elements panel)
18514         https://bugs.webkit.org/show_bug.cgi?id=101554
18515
18516         Reviewed by Pavel Feldman.
18517
18518         A new setting, showMetricsRulers, has been introduced (off by default, so users need to opt in to see the rulers).
18519         The setting value is passed into InspectorDOMAgent, down to the InspectorOverlayPage, which affects the drawGrid() and
18520         drawRulers() calls. As a side effect, the issue when the rulers were painted for elements having no renderers has been fixed.
18521
18522         No new tests, a UI change.
18523
18524         * English.lproj/localizedStrings.js: Add "Show rulers" string.
18525         * inspector/InspectorDOMAgent.cpp:
18526         (WebCore::InspectorDOMAgent::highlightConfigFromInspectorObject): Copy over the showRulers value.
18527         * inspector/InspectorOverlay.cpp:
18528         (WebCore::buildObjectForHighlight): Copy over the showRulers value.
18529         * inspector/InspectorOverlay.h:
18530         (HighlightConfig): Add |bool showRulers|.
18531         (WebCore::Highlight::Highlight): Initialize fields.
18532         (Highlight): Add |bool showRulers|.
18533         (WebCore::Highlight::setDataFromConfig):
18534         * inspector/InspectorOverlayPage.html:
18535         * inspector/front-end/DOMAgent.js: Make use of WebInspector.settings.showMetricsRulers when building the highlight DTO.
18536         * inspector/front-end/Settings.js: Add showMetricsRulers.
18537         * inspector/front-end/SettingsScreen.js:
18538         (WebInspector.GenericSettingsTab): Add "Show rulers" checkbox in the Elements panel section.
18539
18540 2012-11-08  Alexander Shalamov  <alexander.shalamov@intel.com>
18541
18542         Warn in the inspector console when using dpi and dpcm units outside of media="print"
18543         https://bugs.webkit.org/show_bug.cgi?id=100865
18544
18545         Reviewed by Kenneth Rohde Christiansen.
18546
18547         Added function that prints warning to inspector console whenever dpi or dpcm CSS units
18548         are used for screen media.
18549
18550         Test: fast/media/mq-resolution-dpi-dpcm-warning.html
18551
18552         * css/CSSStyleSheet.cpp:
18553         (WebCore::CSSStyleSheet::setMediaQueries):
18554         * css/MediaList.cpp:
18555         (WebCore):
18556         (WebCore::addResolutionWarningMessageToConsole):
18557         (WebCore::reportMediaQueryWarningIfNeeded):
18558         * css/MediaList.h:
18559         (WebCore):
18560         * css/MediaQueryMatcher.cpp:
18561         (WebCore::MediaQueryMatcher::matchMedia):
18562         * css/StyleSheetContents.cpp:
18563         (WebCore::StyleSheetContents::parserAppendRule):
18564
18565 2012-11-08  Eugene Klyuchnikov  <eustas.bug@gmail.com>
18566
18567         Web Inspector: Console: "time" and "timeEnd" should have same number of required arguments
18568         https://bugs.webkit.org/show_bug.cgi?id=101451
18569
18570         Reviewed by Yury Semikhatsky.
18571
18572         Solution: make console.time "title" parameter mandatory.
18573
18574         * page/Console.idl: Changed parameter specification.
18575
18576 2012-11-08  Vsevolod Vlasov  <vsevik@chromium.org>
18577
18578         Unreviewed fixed inspector frontend compilation
18579
18580         * inspector/front-end/DataGrid.js:
18581
18582 2012-11-08  Zeno Albisser  <zeno@webkit.org>
18583
18584         GraphicsSurfaceGLX needs to query the drawable for YInversion.
18585         https://bugs.webkit.org/show_bug.cgi?id=101472
18586
18587         After r133049 the WebGL content is now displayed upside down
18588         for the Qt port. We cannot just apply a generic rule, that
18589         the content needs to be flipped upside down.
18590         Instead we have to query GLX to tell us, if the drawable's
18591         framebuffer is y-inverted.
18592
18593         Reviewed by Kenneth Rohde Christiansen.
18594
18595         * platform/graphics/surfaces/qt/GraphicsSurfaceGLX.cpp:
18596         (WebCore::GraphicsSurfacePrivate::textureIsYInverted):
18597         (GraphicsSurfacePrivate):
18598         (WebCore::GraphicsSurface::platformPaintToTextureMapper):
18599
18600 2012-11-08  Mike West  <mkwst@chromium.org>
18601
18602         Warn when parsing an invalid X-Frame-Options header.
18603         https://bugs.webkit.org/show_bug.cgi?id=101447
18604
18605         Reviewed by Adam Barth.
18606
18607         An 'X-Frame-Options' header that contains an invalid option (that is,
18608         neither 'DENY' nor 'SAMEORIGIN') is ignored. This patch adds a console
18609         warning to notify developers that they've made a mistake.
18610
18611         Test: http/tests/security/XFrameOptions/x-frame-options-invalid.html
18612
18613         * dom/Document.cpp:
18614         (WebCore::Document::processHttpEquiv):
18615             Move the request identifier generation out of the failure block in
18616             order to pass it into 'shouldInterruptLoadForXFrameOptions'. This
18617             ensures that the console message is properly tied to a request.
18618         * loader/FrameLoader.cpp:
18619         (WebCore::FrameLoader::shouldInterruptLoadForXFrameOptions):
18620         * loader/FrameLoader.h:
18621         (FrameLoader):
18622             'shouldInterruptLoadForXFrameOptions' now accepts a request
18623             identifier as a parameter, and generates a console message if the
18624             load is blocked.
18625         * loader/MainResourceLoader.cpp:
18626         (WebCore::MainResourceLoader::didReceiveResponse):
18627             Pass the request identifier into 'shouldInterruptLoadForXFrameOptions'.
18628
18629 2012-11-08  Eugene Klyuchnikov  <eustas.bug@gmail.com>
18630
18631         Web Inspector: Timeline: Improve time/timeEnd appearance.
18632         https://bugs.webkit.org/show_bug.cgi?id=100936
18633
18634         Reviewed by Yury Semikhatsky.
18635
18636         Changes:
18637         - time/timeEnd records should be top level records only in "glue" mode
18638         - time/timeEnd records should display "message" in record list / popover
18639         - glued records add aggregated statistics to root record
18640         - glued records do not reduce their origin self time
18641
18642         Test: inspector/timeline/timeline-time.html
18643
18644         * English.lproj/localizedStrings.js: Added "Message" string.
18645         * inspector/front-end/TimelinePresentationModel.js:
18646         (WebInspector.TimelinePresentationModel.Record): Added "origin" field.
18647
18648 2012-11-08  Yury Semikhatsky  <yurys@chromium.org>
18649
18650         Web Inspector: move front-end methods called from native part to InspectorFrontendAPI
18651         https://bugs.webkit.org/show_bug.cgi?id=101463
18652
18653         Reviewed by Vsevolod Vlasov.
18654
18655         Moved Web Inspector methods called from native code to InspectorFrontendAPI.
18656
18657         * inspector/InspectorClient.cpp:
18658         (WebCore::InspectorClient::doDispatchMessageOnFrontendPage):
18659         * inspector/InspectorFrontendHost.cpp:
18660         (WebCore::FrontendMenuProvider::create):
18661         (WebCore::FrontendMenuProvider::disconnect):
18662         (WebCore::FrontendMenuProvider::FrontendMenuProvider):
18663         (WebCore::FrontendMenuProvider::contextMenuItemSelected):
18664         (WebCore::FrontendMenuProvider::contextMenuCleared):
18665         (FrontendMenuProvider):
18666         (WebCore::InspectorFrontendHost::showContextMenu):
18667         * inspector/front-end/InspectorFrontendAPI.js:
18668         (InspectorFrontendAPI.loadCompleted):
18669         (InspectorFrontendAPI.contextMenuItemSelected):
18670         (InspectorFrontendAPI.contextMenuCleared):
18671         (InspectorFrontendAPI.dispatchMessageAsync):
18672         (InspectorFrontendAPI.dispatchMessage):
18673         * inspector/front-end/inspector.js:
18674
18675 2012-11-08  Kunihiko Sakamoto  <ksakamoto@chromium.org>
18676
18677         User can change a disabled select (drop down box)
18678         https://bugs.webkit.org/show_bug.cgi?id=100932
18679
18680         Reviewed by Kent Tamura.
18681
18682         <select> should not handle events if it's disabled.
18683
18684         Test: fast/forms/select/select-disabled.html
18685
18686         * html/HTMLSelectElement.cpp:
18687         (WebCore::HTMLSelectElement::defaultEventHandler):
18688
18689 2012-11-08  Alec Flett  <alecflett@chromium.org>
18690
18691         IndexedDB: Rename methods and remove dead code from IDBBackingStore
18692         https://bugs.webkit.org/show_bug.cgi?id=101488
18693
18694         Reviewed by Ojan Vafai.
18695
18696         In preparation for merging IDBBackingStore and IDBLevelDBBackingStore:
18697
18698         1) rename ObjectStoreRecordIdentifier to RecordIdentifier
18699         2) remove IDBBackingStore::forEachRecord and friends
18700         3) remove IDBBackingStore::Cursor::close, since it was an empty method.
18701
18702         No new tests as this is purely code cleanup.
18703
18704         * Modules/indexeddb/IDBBackingStore.cpp:
18705         (WebCore::IDBLevelDBBackingStore::getRecord):
18706         (WebCore):
18707         (WebCore::IDBLevelDBBackingStore::putRecord):
18708         (WebCore::IDBLevelDBBackingStore::createInvalidRecordIdentifier):
18709         (WebCore::IDBLevelDBBackingStore::deleteRecord):
18710         (WebCore::IDBLevelDBBackingStore::keyExistsInObjectStore):
18711         (WebCore::IDBLevelDBBackingStore::putIndexDataForRecord):
18712         (WebCore::IDBLevelDBBackingStore::deleteIndexDataForRecord):
18713         * Modules/indexeddb/IDBBackingStore.h:
18714         (WebCore::IDBBackingStore::RecordIdentifier::~RecordIdentifier):
18715         (IDBBackingStore):
18716         * Modules/indexeddb/IDBCursorBackendImpl.cpp:
18717         (WebCore::IDBCursorBackendImpl::close):
18718         * Modules/indexeddb/IDBIndexBackendImpl.cpp:
18719         (WebCore::IDBIndexBackendImpl::countInternal):
18720         (WebCore::IDBIndexBackendImpl::getInternal):
18721         (WebCore::IDBIndexBackendImpl::getKeyInternal):
18722         * Modules/indexeddb/IDBLevelDBBackingStore.h:
18723         (IDBLevelDBBackingStore):
18724         * Modules/indexeddb/IDBObjectStoreBackendImpl.cpp:
18725         (WebCore::IDBObjectStoreBackendImpl::getInternal):
18726         (WebCore):
18727         (WebCore::IDBObjectStoreBackendImpl::setIndexKeys):
18728         (WebCore::IDBObjectStoreBackendImpl::putInternal):
18729         (WebCore::IDBObjectStoreBackendImpl::deleteInternal):
18730         (WebCore::IDBObjectStoreBackendImpl::countInternal):
18731
18732 2012-11-07  Vsevolod Vlasov  <vsevik@chromium.org>
18733
18734         Web Inspector: console error after inspecting IndexedDB
18735         https://bugs.webkit.org/show_bug.cgi?id=101481
18736
18737         Reviewed by Pavel Feldman.
18738
18739         Added objectId nullity check to RemoteOBject::release.
18740         Drive-by added release for entry key and primaryKey.
18741
18742         * inspector/front-end/IndexedDBViews.js:
18743         (WebInspector.IDBDataView.prototype.clear):
18744         * inspector/front-end/RemoteObject.js:
18745         (WebInspector.RemoteObject.prototype.release):
18746
18747 2012-11-07  Vsevolod Vlasov  <vsevik@chromium.org>
18748
18749         Web Inspector: Migrate inspector IndexedDB support to frontend API.
18750         https://bugs.webkit.org/show_bug.cgi?id=101457
18751
18752         Reviewed by Pavel Feldman.
18753
18754         Migrated IndexedDB support to web facing IndexedDB API.
18755
18756         * inspector/Inspector.json:
18757         * inspector/InspectorIndexedDBAgent.cpp:
18758         (WebCore):
18759         (WebCore::assertIDBFactory):
18760         (WebCore::InspectorIndexedDBAgent::requestDatabaseNamesForFrame):
18761         (WebCore::InspectorIndexedDBAgent::requestDatabase):
18762         (WebCore::InspectorIndexedDBAgent::requestData):
18763         * inspector/front-end/IndexedDBModel.js:
18764         (WebInspector.IndexedDBModel.prototype.innerCallback):
18765         (WebInspector.IndexedDBModel.prototype._requestData):
18766         * inspector/front-end/IndexedDBViews.js:
18767         (WebInspector.IDBDataView.prototype._updateData.callback):
18768         (WebInspector.IDBDataView.prototype._updateData):
18769         (WebInspector.IDBDataGridNode):
18770         (WebInspector.IDBDataGridNode.prototype.createCell):
18771
18772 2012-08-20  Taiju Tsuiki  <tzik@chromium.org>
18773
18774         Web Inspector: Drop dimmed crumb handling
18775         https://bugs.webkit.org/show_bug.cgi?id=94457
18776
18777         Reviewed by Vsevolod Vlasov.
18778
18779         No new tests. Existing inspector test should work.
18780
18781         * inspector/front-end/ElementsPanel.js:
18782         (WebInspector.ElementsPanel.prototype.updateBreadcrumb):
18783         (WebInspector.ElementsPanel.prototype.updateBreadcrumbSizes):
18784         * inspector/front-end/breadcrumbList.css:
18785
18786 2012-11-07  Vsevolod Vlasov  <vsevik@chromium.org>
18787
18788         Web Inspector: Infinite loop in DataGrid::autoSizeColumn
18789         https://bugs.webkit.org/show_bug.cgi?id=101363
18790
18791         Reviewed by Pavel Feldman.
18792
18793         Test: inspector/datagrid-autosize.html
18794
18795         * inspector/front-end/DataGrid.js:
18796         (WebInspector.DataGrid.prototype._autoSizeWidths):
18797         (WebInspector.DataGrid.prototype.autoSizeColumns):
18798
18799 2012-11-07  Keishi Hattori  <keishi@webkit.org>
18800
18801         Implement week picking to calendar picker
18802         https://bugs.webkit.org/show_bug.cgi?id=101449
18803
18804         Reviewed by Kent Tamura.
18805
18806         This adds week picker mode to CalendarPicker.
18807
18808         No new tests. Tests will be added later when this feature is enabled in DRT.
18809
18810         * Resources/pagepopups/calendarPicker.css:
18811         (.month-mode .day):
18812         (.week-mode .available.day-selected.monday): Rounded corners around week selection.
18813         (.week-mode .available.day-selected.sunday): Ditto.
18814         (.week-mode .unavailable.day-selected):
18815         (.week-mode .unavailable.day-selected.monday):
18816         (.week-mode .unavailable.day-selected.sunday):
18817         (.week-mode .week-column.unavailable.day-selected):
18818         (.week-column): Hide week column unless in week mode.
18819         (.week-mode .week-column):
18820         * Resources/pagepopups/calendarPicker.js:
18821         (parseDateString): Support week string.
18822         (Week):
18823         (Week.parse): Parses "yyyy-Www" string.
18824         (Week.createFromDate): Creates Week containing datetime.
18825         (Week.createFromToday): Creates Week containing today.
18826         (Week.weekOneStartDateForYear): Returns the start date for the first week of year.
18827         (Week.numberOfWeeksInYear): Returns the number of weeks in year.
18828         (Week._numberOfWeeksSinceDate): Returns number of weeks since a date.
18829         (Week.prototype.equals): Returns true if the Weeks are the same.
18830         (Week.prototype.previous): Returns the previous Week.
18831         (Week.prototype.next): Returns the next Week.
18832         (Week.prototype.startDate): Returns start datetime of Week.
18833         (Week.prototype.endDate): Returns end datetime of Week.
18834         (Week.prototype.valueOf): Returns the milliseconds since epoch.
18835         (Week.prototype.toString): Returns ISO week string.
18836         (CalendarPicker): Add week picker mode.
18837         (CalendarPicker.prototype.showMonth): Use NavigationBehaviour instead of bools.
18838         (YearMonthController.prototype.attachTo): Fix bug.
18839         (YearMonthController.prototype.moveRelatively): Use new showMonth.
18840         (DaysTable.prototype.attachTo): Add week number column.
18841         (DaysTable.prototype._renderMonth): Render week numbers.
18842         (DaysTable.prototype.navigateToMonth): Render week numbers.
18843         (DaysTable.prototype.selectRange):
18844         (DaysTable.prototype._selectRangeAtPosition): Week number nodes have an positionX of -1.
18845         (DaysTable.prototype._maybeSetPreviousMonth):
18846         (DaysTable.prototype._maybeSetNextMonth):
18847         (MonthPickerDaysTable.prototype.selectRange):
18848         (MonthPickerDaysTable.prototype.selectRangeAndShowEntireRange):
18849         (MonthPickerDaysTable.prototype._handleKey):
18850         (WeekPickerDaysTable): Added.
18851         (WeekPickerDaysTable.prototype._markRangeAsSelected): Marks week as selected.
18852         (WeekPickerDaysTable.prototype.selectRange): Selects week.
18853         (WeekPickerDaysTable.prototype.selectRangeAndShowEntireRange): Selects week and navigate to show entire selection.
18854         (WeekPickerDaysTable.prototype._rangeForNode): Returns Week for node.
18855         (WeekPickerDaysTable.prototype._handleKey):
18856
18857 2012-11-07  Sheriff Bot  <webkit.review.bot@gmail.com>
18858
18859         Unreviewed, rolling out r133841.
18860         http://trac.webkit.org/changeset/133841
18861         https://bugs.webkit.org/show_bug.cgi?id=101542
18862
18863         Reverted patches were innocent (Requested by shinyak on
18864         #webkit).
18865
18866         * WebCore.exp.in:
18867         * dom/Element.cpp:
18868         (WebCore::Element::shadowPseudoId):
18869         * dom/Element.h:
18870         (Element):
18871         * dom/ElementRareData.cpp:
18872         (WebCore::ElementRareData::reportMemoryUsage):
18873         * dom/ElementRareData.h:
18874         (ElementRareData):
18875         * html/BaseMultipleFieldsDateAndTimeInputType.cpp:
18876         (WebCore::BaseMultipleFieldsDateAndTimeInputType::createShadowSubtree):
18877         * html/ColorInputType.cpp:
18878         (WebCore::ColorInputType::createShadowSubtree):
18879         * html/HTMLTextAreaElement.cpp:
18880         (WebCore::HTMLTextAreaElement::updatePlaceholderText):
18881         * html/RangeInputType.cpp:
18882         (WebCore::RangeInputType::createShadowSubtree):
18883         * html/TextFieldInputType.cpp:
18884         (WebCore::TextFieldInputType::createShadowSubtree):
18885         (WebCore::TextFieldInputType::updatePlaceholderText):
18886         * html/ValidationMessage.cpp:
18887         (WebCore::ValidationMessage::buildBubbleTree):
18888         * html/shadow/DateTimeEditElement.cpp:
18889         (WebCore::DateTimeEditBuilder::visitLiteral):
18890         (WebCore::DateTimeEditElement::DateTimeEditElement):
18891         * html/shadow/DateTimeFieldElement.cpp:
18892         (WebCore::DateTimeFieldElement::initialize):
18893         * html/shadow/DateTimeFieldElement.h:
18894         (DateTimeFieldElement):
18895         * html/shadow/PickerIndicatorElement.cpp:
18896         (WebCore::PickerIndicatorElement::PickerIndicatorElement):
18897         * html/track/TextTrackCue.cpp:
18898         (WebCore::TextTrackCueBox::TextTrackCueBox):
18899         (WebCore::TextTrackCue::updateDisplayTree):
18900         * testing/Internals.cpp:
18901         (WebCore::Internals::setShadowPseudoId):
18902
18903 2012-11-07  Simon Fraser  <simon.fraser@apple.com>
18904
18905         Fix EFL build, which has accelerated compositing disabled, by making
18906         repaintViewRectangle() const.
18907
18908         * rendering/RenderView.cpp:
18909         (WebCore::RenderView::repaintViewRectangle):
18910         * rendering/RenderView.h:
18911         (RenderView):
18912
18913 2012-11-07  Simon Fraser  <simon.fraser@apple.com>
18914
18915         constify ALL the repaint containers
18916         https://bugs.webkit.org/show_bug.cgi?id=101541
18917
18918         Reviewed by Beth Dakin.
18919
18920         Make all the RenderLayerModelObject* repaintContainer arguments const, since
18921         these member functions should have no need to mutate this object.
18922
18923         * WebCore.exp.in:
18924         * rendering/RenderBR.h:
18925         * rendering/RenderBlock.cpp:
18926         (WebCore::RenderBlock::selectionGapRectsForRepaint):
18927         (WebCore::RenderBlock::rectWithOutlineForRepaint):
18928         * rendering/RenderBlock.h:
18929         * rendering/RenderBox.cpp:
18930         (WebCore::RenderBox::outlineBoundsForRepaint):
18931         (WebCore::RenderBox::mapLocalToContainer):
18932         (WebCore::RenderBox::clippedOverflowRectForRepaint):
18933         (WebCore::RenderBox::computeRectForRepaint):
18934         * rendering/RenderBox.h:
18935         * rendering/RenderFlowThread.cpp:
18936         (WebCore::RenderFlowThread::repaintRectangleInRegions): Need to use a const_iterator.
18937         * rendering/RenderFlowThread.h:
18938         * rendering/RenderInline.cpp:
18939         (WebCore::RenderInline::clippedOverflowRectForRepaint):
18940         (WebCore::RenderInline::rectWithOutlineForRepaint):
18941         (WebCore::RenderInline::computeRectForRepaint):
18942         (WebCore::RenderInline::mapLocalToContainer):
18943         * rendering/RenderInline.h:
18944         * rendering/RenderListMarker.cpp:
18945         (WebCore::RenderListMarker::selectionRectForRepaint):
18946         * rendering/RenderListMarker.h:
18947         * rendering/RenderObject.cpp:
18948         (WebCore::RenderObject::repaintUsingContainer):
18949         (WebCore::RenderObject::repaintAfterLayoutIfNeeded):
18950         (WebCore::RenderObject::rectWithOutlineForRepaint):
18951         (WebCore::RenderObject::clippedOverflowRectForRepaint):
18952         (WebCore::RenderObject::computeRectForRepaint):
18953         (WebCore::RenderObject::computeFloatRectForRepaint):
18954         (WebCore::RenderObject::mapLocalToContainer):
18955         (WebCore::RenderObject::localToContainerQuad):
18956         (WebCore::RenderObject::localToContainerPoint):
18957         * rendering/RenderObject.h:
18958         (WebCore::RenderObject::selectionRectForRepaint):
18959         (WebCore::RenderObject::outlineBoundsForRepaint):
18960         * rendering/RenderReplaced.cpp:
18961         (WebCore::RenderReplaced::selectionRectForRepaint):
18962         (WebCore::RenderReplaced::clippedOverflowRectForRepaint):
18963         * rendering/RenderReplaced.h:
18964         * rendering/RenderTableCell.cpp:
18965         (WebCore::RenderTableCell::clippedOverflowRectForRepaint):
18966         (WebCore::RenderTableCell::computeRectForRepaint):
18967         * rendering/RenderTableCell.h:
18968         * rendering/RenderTableCol.cpp:
18969         (WebCore::RenderTableCol::clippedOverflowRectForRepaint):
18970         * rendering/RenderTableCol.h:
18971         * rendering/RenderTableRow.cpp:
18972         (WebCore::RenderTableRow::clippedOverflowRectForRepaint):
18973         * rendering/RenderTableRow.h:
18974         * rendering/RenderText.cpp:
18975         (WebCore::RenderText::clippedOverflowRectForRepaint):
18976         (WebCore::RenderText::selectionRectForRepaint):
18977         * rendering/RenderText.h:
18978         * rendering/RenderView.cpp:
18979         (WebCore::RenderView::mapLocalToContainer):
18980         (WebCore::RenderView::computeRectForRepaint):
18981         * rendering/RenderView.h:
18982         * rendering/svg/RenderSVGForeignObject.cpp:
18983         (WebCore::RenderSVGForeignObject::clippedOverflowRectForRepaint):
18984         (WebCore::RenderSVGForeignObject::computeFloatRectForRepaint):
18985         (WebCore::RenderSVGForeignObject::mapLocalToContainer):
18986         * rendering/svg/RenderSVGForeignObject.h:
18987         * rendering/svg/RenderSVGGradientStop.h:
18988         * rendering/svg/RenderSVGHiddenContainer.h:
18989         * rendering/svg/RenderSVGInline.cpp:
18990         (WebCore::RenderSVGInline::clippedOverflowRectForRepaint):
18991         (WebCore::RenderSVGInline::computeFloatRectForRepaint):
18992         (WebCore::RenderSVGInline::mapLocalToContainer):
18993         * rendering/svg/RenderSVGInline.h:
18994         * rendering/svg/RenderSVGModelObject.cpp:
18995         (WebCore::RenderSVGModelObject::clippedOverflowRectForRepaint):
18996         (WebCore::RenderSVGModelObject::computeFloatRectForRepaint):
18997         (WebCore::RenderSVGModelObject::mapLocalToContainer):
18998         (WebCore::RenderSVGModelObject::outlineBoundsForRepaint):
18999         * rendering/svg/RenderSVGModelObject.h:
19000         * rendering/svg/RenderSVGRoot.cpp:
19001         (WebCore::RenderSVGRoot::clippedOverflowRectForRepaint):
19002         (WebCore::RenderSVGRoot::computeFloatRectForRepaint):
19003         (WebCore::RenderSVGRoot::mapLocalToContainer):
19004         * rendering/svg/RenderSVGRoot.h:
19005         * rendering/svg/RenderSVGText.cpp:
19006         (WebCore::RenderSVGText::clippedOverflowRectForRepaint):
19007         (WebCore::RenderSVGText::computeRectForRepaint):
19008         (WebCore::RenderSVGText::computeFloatRectForRepaint):
19009         (WebCore::RenderSVGText::mapLocalToContainer):
19010         * rendering/svg/RenderSVGText.h:
19011         * rendering/svg/SVGRenderSupport.cpp:
19012         (WebCore::SVGRenderSupport::clippedOverflowRectForRepaint):
19013         (WebCore::SVGRenderSupport::computeFloatRectForRepaint):
19014         (WebCore::SVGRenderSupport::mapLocalToContainer):
19015         * rendering/svg/SVGRenderSupport.h:
19016         (SVGRenderSupport):
19017
19018 2012-11-07  Kent Tamura  <tkent@chromium.org>
19019
19020         [Chromium-win] Refactor date/time format conversion code in LocaleWin
19021         https://bugs.webkit.org/show_bug.cgi?id=101329
19022
19023         Reviewed by Kentaro Hara.
19024
19025         convertWindowsDateFormatToLDML and convertWindowsTimeFormatToLDML did
19026         similar jobs with different code. We can merge them into one function.
19027
19028         As for the date format conversion, we have tokenized a format string and
19029         stored token objects into a vector. We skip token object generation and
19030         generate a LDML-compliant pattern string during parsing.
19031
19032         No new tests. This should make no behavior changes and
19033         WebKit/chromium/tests/LocaleWinTest.cpp has test cases.
19034
19035         * platform/text/win/LocaleWin.cpp:
19036         (WebCore): Remove DateFormatToken, isFooSymbol, ensureShortDateTokens,
19037         convertWindowsDateFormatToLDML, mapCharacterToDateTimeFieldType, and
19038         convertWindowsTimeFormatToLDML.
19039         (WebCore::commitLiteralToken): Store the result to the specified StringBuilder.
19040         (WebCore::convertWindowsDateTimeFormat):
19041         Renamed from parseDateFormat, and supports time format symbols.
19042         (WebCore::LocaleWin::dateFormat): Use convertWindowsDateTimeFormat.
19043         (WebCore::LocaleWin::monthFormat): Ditto.
19044         (WebCore::LocaleWin::timeFormat): Ditto.
19045         (WebCore::LocaleWin::shortTimeFormat): Ditto.
19046         * platform/text/win/LocaleWin.h:
19047         (LocaleWin): Remove ensureShortDateTokens and m_shortDateTokens.
19048
19049 2012-11-07  Shinya Kawanaka  <shinyak@chromium.org>
19050
19051         Unreviewed, rolling out r133428 and r133749
19052         https://bugs.webkit.org/show_bug.cgi?id=101533
19053
19054         These patches might cause memory regression.
19055
19056         * WebCore.exp.in:
19057         * dom/Element.cpp:
19058         (WebCore::Element::shadowPseudoId):
19059         (WebCore):
19060         (WebCore::Element::setShadowPseudoId):
19061         * dom/Element.h:
19062         (Element):
19063         * dom/ElementRareData.cpp:
19064         (WebCore::ElementRareData::reportMemoryUsage):
19065         * dom/ElementRareData.h:
19066         (ElementRareData):
19067         * html/BaseMultipleFieldsDateAndTimeInputType.cpp:
19068         (WebCore::BaseMultipleFieldsDateAndTimeInputType::createShadowSubtree):
19069         * html/ColorInputType.cpp:
19070         (WebCore::ColorInputType::createShadowSubtree):
19071         * html/HTMLTextAreaElement.cpp:
19072         (WebCore::HTMLTextAreaElement::updatePlaceholderText):
19073         * html/RangeInputType.cpp:
19074         (WebCore::RangeInputType::createShadowSubtree):
19075         * html/TextFieldInputType.cpp:
19076         (WebCore::TextFieldInputType::createShadowSubtree):
19077         (WebCore::TextFieldInputType::updatePlaceholderText):
19078         * html/ValidationMessage.cpp:
19079         (WebCore::ValidationMessage::buildBubbleTree):
19080         * html/shadow/DateTimeEditElement.cpp:
19081         (WebCore::DateTimeEditBuilder::visitLiteral):
19082         (WebCore::DateTimeEditElement::DateTimeEditElement):
19083         * html/shadow/DateTimeFieldElement.cpp:
19084         (WebCore::DateTimeFieldElement::initialize):
19085         * html/shadow/DateTimeFieldElement.h:
19086         (DateTimeFieldElement):
19087         * html/shadow/PickerIndicatorElement.cpp:
19088         (WebCore::PickerIndicatorElement::PickerIndicatorElement):
19089         * html/track/TextTrackCue.cpp:
19090         (WebCore::TextTrackCueBox::TextTrackCueBox):
19091         (WebCore::TextTrackCue::updateDisplayTree):
19092         * testing/Internals.cpp:
19093         (WebCore::Internals::setShadowPseudoId):
19094
19095 2012-11-07  Ryosuke Niwa  <rniwa@webkit.org>
19096
19097         Crash in WebCore::RenderLayer::normalFlowList
19098         https://bugs.webkit.org/show_bug.cgi?id=101528
19099
19100         Reviewed by Simon Fraser.
19101
19102         Make sure the layout is up to date before re-computing the caret rect.
19103         Avoid doing the layout when the selection is cleared since we can always stop
19104         the blink timer in that case.
19105
19106         Unfortunately, we haven't found any reproduction of this crash yet.
19107
19108         * editing/FrameSelection.cpp:
19109         (WebCore::isNonOrphanedCaret):
19110         (WebCore::FrameSelection::localCaretRect):
19111         (WebCore::FrameSelection::updateAppearance):
19112
19113 2012-11-07  Adam Barth  <abarth@webkit.org>
19114
19115         [V8] IntrusiveDOMWrapperMap should be usable for more than just Nodes
19116         https://bugs.webkit.org/show_bug.cgi?id=101110
19117
19118         Reviewed by Kentaro Hara.
19119
19120         Hopefully the memory issues with this patch have been resolved by
19121         fixing bug 101525. This patch re-lands this patch again, hopefully for
19122         the last time.
19123
19124         * bindings/v8/DOMDataStore.cpp:
19125         (WebCore::DOMDataStore::weakCallback):
19126         * bindings/v8/DOMDataStore.h:
19127         (WebCore::DOMDataStore::wrapperIsStoredInObject):
19128         (WebCore::DOMDataStore::getWrapperFromObject):
19129         (WebCore::DOMDataStore::setWrapperInObject):
19130
19131 2012-11-07  KyungTae Kim  <ktf.kim@samsung.com>
19132
19133         Seam occurred between pieces of ShadowBlur on floating point zoom
19134         https://bugs.webkit.org/show_bug.cgi?id=101435
19135
19136         Reviewed by Simon Fraser.
19137
19138         When paint Shadow that doesn't have blurred edge on floating point zoom,
19139         pixel seam (pixel cracks) occurred between pieces of the ShadowBlur because of unaligned clip rect.
19140         So, enlarge the clipping area 1 pixel so that the fill does not bleed (due to antialiasing)
19141         even if the unaligned clip rect occurred.
19142
19143
19144         * platform/graphics/ShadowBlur.cpp:
19145         (WebCore::ShadowBlur::calculateLayerBoundingRect):
19146
19147 2012-11-07  Tim Horton  <timothy_horton@apple.com>
19148
19149         Repaint issues with -webkit-svg-shadow used on a container
19150         https://bugs.webkit.org/show_bug.cgi?id=65643
19151         <rdar://problem/7600532>
19152
19153         Reviewed by Simon Fraser.
19154
19155         SVG renderer repaint rects are currently expanded only by the shadow of
19156         the renderer itself; however, the area they need to repaint can be larger
19157         than that, if their parents also have shadows. We need to take into account
19158         parent's shadows (respecting transforms, as well).
19159
19160         clippedOverflowRectForRepaint already recurses upwards through the render tree,
19161         and ends up with a rect in layout coordinates, so we manually apply the shadow
19162         at each step (repaintRectInLocalCoordinatesExcludingSVGShadow was added to allow
19163         us to get the raw repaint rect without the shadow baked-in).
19164
19165         repaintRectInLocalCoordinates now includes shadows from all parents.
19166
19167         Also, RenderSVGRoot was clipping repaint rects to the viewport before applying
19168         shadows, so offscreen elements with on-screen shadows (applied by the root) would not paint the shadows.
19169         We can just swap the order of these things to correct this.
19170
19171         Tests: svg/css/parent-shadow-offscreen.svg, svg/css/root-shadow-offscreen.svg, svg/repaint/repaint-webkit-svg-shadow.svg
19172
19173         * rendering/RenderObject.cpp:
19174         (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.
19175         (WebCore::RenderObject::styleDidChange): Mark the child being added as having an SVG shadow if its new style has a shadow.
19176         * rendering/svg/RenderSVGImage.cpp:
19177         (WebCore::RenderSVGImage::layout): Cache the repaint rect before intersecting it with the shadow.
19178         * rendering/svg/RenderSVGImage.h:
19179         (WebCore::RenderSVGImage::repaintRectInLocalCoordinatesExcludingSVGShadow): Return the cached repaint rect for the renderer without the shadow included.
19180         * rendering/svg/RenderSVGModelObject.cpp:
19181         (WebCore::RenderSVGModelObject::RenderSVGModelObject): Renderers do not have a shadow by default.
19182         * rendering/svg/RenderSVGModelObject.h:
19183         (WebCore::RenderSVGModelObject::repaintRectInLocalCoordinatesExcludingSVGShadow): Return the cached repaint rect for the renderer without the shadow included.
19184         (WebCore::RenderSVGModelObject::hasSVGShadow): Return whether or not the renderer has a shadow.
19185         (WebCore::RenderSVGModelObject::setHasSVGShadow): Set whether or not the renderer has a shadow.
19186         * rendering/svg/RenderSVGRoot.cpp:
19187         (WebCore::RenderSVGRoot::RenderSVGRoot):
19188         (WebCore::RenderSVGRoot::computeFloatRectForRepaint): Apply the shadow before clipping to the viewport, so we draw shadows for elements outside the viewport.
19189         (WebCore::RenderSVGRoot::updateCachedBoundaries): Cache the repaint rect before intersecting it with the shadow.
19190         * rendering/svg/RenderSVGRoot.h:
19191         (WebCore::RenderSVGRoot::hasSVGShadow): Return whether or not the renderer has a shadow.
19192         (WebCore::RenderSVGRoot::setHasSVGShadow): Set whether or not the renderer has a shadow.
19193         (WebCore::RenderSVGRoot::repaintRectInLocalCoordinatesExcludingSVGShadow): Return the cached repaint rect for the renderer without the shadow included.
19194         * rendering/svg/RenderSVGShape.cpp:
19195         (WebCore::RenderSVGShape::updateRepaintBoundingBox): Cache the repaint rect before intersecting it with the shadow.
19196         * rendering/svg/RenderSVGShape.h:
19197         (WebCore::RenderSVGShape::repaintRectInLocalCoordinatesExcludingSVGShadow): Return the cached repaint rect for the renderer without the shadow included.
19198         * rendering/svg/SVGRenderSupport.cpp:
19199         (WebCore::SVGRenderSupport::repaintRectForRendererInLocalCoordinatesExcludingSVGShadow): Return the cached repaint rect for the renderer without the shadow included.
19200         (WebCore::SVGRenderSupport::clippedOverflowRectForRepaint): Apply shadows as we walk through our parents, instead of only applying the renderer's own shadow.
19201         (WebCore::SVGRenderSupport::rendererHasSVGShadow): Return whether or not the renderer has a shadow.
19202         (WebCore::SVGRenderSupport::setRendererHasSVGShadow): Set whether or not the renderer has a shadow.
19203         (WebCore::SVGRenderSupport::intersectRepaintRectWithShadows): Walk through the element's parents, adding shadows to the repaint rect as we go, eventually
19204         transforming the repaint rect back into local coordinates.
19205         (WebCore::SVGRenderSupport::intersectRepaintRectWithResources): Don't add shadows by default, just other resources, so that we can cache repaint rects with and without shadows.
19206         * rendering/svg/SVGRenderSupport.h:
19207
19208 2012-11-07  Anders Carlsson  <andersca@apple.com>
19209
19210         Add RemoteGraphicsLayer class
19211         https://bugs.webkit.org/show_bug.cgi?id=101535
19212
19213         Reviewed by Simon Fraser.
19214
19215         * WebCore.exp.in:
19216         Export GraphicsLayer symbols required by WebKit2.
19217
19218         * WebCore.xcodeproj/project.pbxproj:
19219         Make GraphicsLayerFactory.h a private header.
19220
19221 2012-11-07  Adam Barth  <abarth@webkit.org>
19222
19223         [V8] Don't leak <img> elements in content scripts
19224         https://bugs.webkit.org/show_bug.cgi?id=101525
19225
19226         Reviewed by Ojan Vafai.
19227
19228         I found the leak that was causing a problem for bug 101110. We weren't
19229         filling in the derefObjectFunction for HTMLImageElements (and
19230         potentially some other types of elements). That manifests today as a
19231         memory leak in content scripts (which use the derefObjectFunction for
19232         nodes) and caused a memory leak after bug 101110 because we started
19233         using the derefObjectFunction in the main world as well.
19234
19235         This patch adds ASSERTs so that we won't make this mistake in the future.
19236
19237         * bindings/scripts/CodeGeneratorV8.pm:
19238         (GenerateNamedConstructorCallback):
19239         * bindings/v8/DOMDataStore.cpp:
19240         (WebCore::DOMDataStore::weakCallback):
19241         * bindings/v8/DOMWrapperMap.h:
19242         (WebCore::DOMWrapperMap::defaultWeakCallback):
19243         * bindings/v8/custom/V8HTMLImageElementConstructor.cpp:
19244         (WebCore):
19245
19246 2012-11-07  Alec Flett  <alecflett@chromium.org>
19247
19248         IndexedDB: Prepare for IDBBackingStore merge by renaming IDBLevelDBBackingStore.cpp
19249         https://bugs.webkit.org/show_bug.cgi?id=101486
19250
19251         Reviewed by Ojan Vafai.
19252
19253         Rename IDBLevelDBBackingStore.cpp to IDBBackingStore.cpp in
19254         preparation for merging these classes. This will make the merge
19255         diffs sane. See https://bugs.webkit.org/show_bug.cgi?id=101415
19256         for the final goal.
19257
19258         No new tests, this is is just a rename and minor style fix.
19259
19260         * CMakeLists.txt:
19261         * GNUmakefile.list.am:
19262         * Modules/indexeddb/IDBBackingStore.cpp: Renamed from Source/WebCore/Modules/indexeddb/IDBLevelDBBackingStore.cpp.
19263         * WebCore.gypi:
19264         * WebCore.xcodeproj/project.pbxproj:
19265
19266 2012-11-07  Adam Barth  <abarth@webkit.org>
19267
19268         [V8] Prepare DOMDataStore to be able to store ScriptWrappable wrappers inline
19269         https://bugs.webkit.org/show_bug.cgi?id=101523
19270
19271         Unreviewed. Technically this patch hasn't been reviewed, but it is part
19272         of a patch that was reviewed by Kentaro Hara.
19273
19274         Sadly, my patch for bug 101110 triggered the regression again. This
19275         patch is a smaller incremental step towards the patch in bug 101110. It
19276         doesn't make that much sense on its own, but it will help me isolate
19277         the source of the regression.
19278
19279         * bindings/v8/DOMDataStore.h:
19280         (WebCore::DOMDataStore::get):
19281         (DOMDataStore):
19282         (WebCore::DOMDataStore::set):
19283         (WebCore::DOMDataStore::wrapperIsStoredInObject):
19284         (WebCore::DOMDataStore::getWrapperFromObject):
19285         (WebCore::DOMDataStore::setWrapperInObject):
19286
19287 2012-11-05  Ryosuke Niwa  <rniwa@webkit.org>
19288
19289         SimplifyMarkupCommand takes a disproportionally long time to run when there are many nodes to remove
19290         https://bugs.webkit.org/show_bug.cgi?id=101144
19291
19292         Reviewed by Enrica Casucci.
19293
19294         The bug was caused by attach() happening between each node removal. Since the command was trying
19295         to remove millions of node in some cases, attach()ing render objects for each node being reinserted
19296         imposed a huge runtime cost.
19297
19298         Fixed the bug by using lazy attach when removing nodes and avoiding calls to isContentEditable.
19299         Also remove all ancestors at once when they are direct child/parent of each other so that we don't
19300         remove an ancestor and then insert its child back only to remove it again in the next iteration.
19301
19302         No new tests since it doesn't change the asymptotic performance, and adding a new performance test for
19303         this specific case is not the worth the increase in the bot cycle time. I'll note that the email
19304         attached in the original radar bug (<rdar://problem/12179712>) took 100 seconds to open now only takes
19305         7 seconds to open on my MacPro.
19306
19307         * editing/AppendNodeCommand.cpp:
19308         (WebCore::AppendNodeCommand::doApply): Takes a flag indicating whether we should assume nodes are editable
19309         without calling isContentEditable or not.
19310         * editing/ApplyStyleCommand.cpp:
19311         (WebCore::ApplyStyleCommand::applyInlineStyleToPushDown): Update the style as later code requires render
19312         object.
19313         * editing/CompositeEditCommand.cpp:
19314         (WebCore::CompositeEditCommand::insertNodeBefore): Passes a flag to the command.
19315         (WebCore::CompositeEditCommand::removeNode): Ditto.
19316         (WebCore::CompositeEditCommand::removeNodePreservingChildren): Ditto.
19317         * editing/CompositeEditCommand.h:
19318         (CompositeEditCommand):
19319         * editing/DeleteSelectionCommand.cpp:
19320         (WebCore::DeleteSelectionCommand::removeNode): Takes a flag indicating whether we should assume nodes are
19321         editable without calling isContentEditable or not.
19322         * editing/DeleteSelectionCommand.h:
19323         (DeleteSelectionCommand):
19324         * editing/EditCommand.h:
19325         * editing/InsertIntoTextNodeCommand.cpp:
19326         (WebCore::InsertIntoTextNodeCommand::doApply): Update the layout when password echo is enabled since
19327         we need to have render objects for echoing.
19328         * editing/InsertNodeBeforeCommand.cpp:
19329         (WebCore::InsertNodeBeforeCommand::InsertNodeBeforeCommand): Ditto.
19330         (WebCore::InsertNodeBeforeCommand::doApply): Ditto; also always use lazy attach.
19331         (WebCore::InsertNodeBeforeCommand::doUnapply):
19332         * editing/InsertNodeBeforeCommand.h:
19333         (WebCore::InsertNodeBeforeCommand::create):
19334         (InsertNodeBeforeCommand):
19335         * editing/RemoveNodeCommand.cpp:
19336         (WebCore::RemoveNodeCommand::RemoveNodeCommand): Ditto about the flag.
19337         (WebCore::RemoveNodeCommand::doApply):
19338         * editing/RemoveNodeCommand.h:
19339         (WebCore::RemoveNodeCommand::create):
19340         (RemoveNodeCommand):
19341         * editing/RemoveNodePreservingChildrenCommand.cpp:
19342         (WebCore::RemoveNodePreservingChildrenCommand::RemoveNodePreservingChildrenCommand): Ditto.
19343         (WebCore::RemoveNodePreservingChildrenCommand::doApply):
19344         * editing/RemoveNodePreservingChildrenCommand.h:
19345         (WebCore::RemoveNodePreservingChildrenCommand::create):
19346         (RemoveNodePreservingChildrenCommand):
19347         * editing/SimplifyMarkupCommand.cpp:
19348         (WebCore::SimplifyMarkupCommand::doApply):
19349         (WebCore::SimplifyMarkupCommand::pruneSubsequentAncestorsToRemove): Added to optimize removals of multiple
19350         ancestors.
19351         * editing/SimplifyMarkupCommand.h:
19352         (SimplifyMarkupCommand):
19353
19354 2012-11-07  Sheriff Bot  <webkit.review.bot@gmail.com>
19355
19356         Unreviewed, rolling out r133810.
19357         http://trac.webkit.org/changeset/133810
19358         https://bugs.webkit.org/show_bug.cgi?id=101520
19359
19360         This patch made ws_single_peak_r regress by 15% (Requested by
19361         abarth on #webkit).
19362
19363         * bindings/v8/DOMDataStore.cpp:
19364         (WebCore::DOMDataStore::weakCallback):
19365         * bindings/v8/DOMDataStore.h:
19366         (WebCore::DOMDataStore::get):
19367         (WebCore::DOMDataStore::set):
19368         (DOMDataStore):
19369
19370 2012-11-07  Elliott Sprehn  <esprehn@chromium.org>
19371
19372         Clean up confused use of Document::renderer and renderView
19373         https://bugs.webkit.org/show_bug.cgi?id=101484
19374
19375         Reviewed by Ojan Vafai.
19376
19377         Document::renderer and Document::renderView are the same thing, but it seems
19378         people don't always realize it and check if document()->renderer() is a RenderView.
19379
19380         This patch cleans up usage of document()->renderer() and document()->renderView() and
19381         simplifies the code that was written without realizing they were the same thing.
19382
19383         No new tests, this is just a refactor.
19384
19385         * accessibility/AccessibilityRenderObject.cpp:
19386         (WebCore::AccessibilityRenderObject::visiblePositionForPoint): Lots of simplification.
19387         * dom/Element.cpp:
19388         (WebCore::Element::screenRect):
19389         (WebCore::Element::unregisterNamedFlowContentNode): Remove unneeded conditional.
19390         * editing/FrameSelection.cpp: Remove verbose casts.
19391         (WebCore::clearRenderViewSelection):
19392         (WebCore::FrameSelection::recomputeCaretRect):
19393         (WebCore::CaretBase::invalidateCaretRect):
19394         (WebCore::FrameSelection::focusedOrActiveStateChanged):
19395         * page/Frame.cpp:
19396         (WebCore::Frame::contentRenderer): Vastly simplified.
19397         * page/PrintContext.cpp: Remove verbose casts.
19398         (WebCore::PrintContext::computePageRects):
19399         (WebCore::PrintContext::computePageRectsWithPageSizeInternal):
19400         * page/wince/FrameWinCE.cpp:
19401         (WebCore::computePageRectsForFrame): Remove unreachable code.
19402         * rendering/RenderObject.cpp:
19403         (WebCore::RenderObject::maximalOutlineSize): Remove verbose cast.
19404
19405 2012-11-07  Adam Barth  <abarth@webkit.org>
19406
19407         [V8] IntrusiveDOMWrapperMap should be usable for more than just Nodes
19408         https://bugs.webkit.org/show_bug.cgi?id=101110
19409
19410         Reviewed by Kentaro Hara.
19411
19412         This patch generalizes our support for storing wrappers in DOM objects
19413         to be usable for more than just nodes. After this patch, any object
19414         with a ScriptWrappable base class will have its wrapper stored inline
19415         in the object in the main world.
19416
19417         * bindings/v8/DOMDataStore.cpp:
19418         (WebCore::DOMDataStore::weakCallback):
19419         * bindings/v8/DOMDataStore.h:
19420         (WebCore::DOMDataStore::get):
19421         (WebCore::DOMDataStore::set):
19422
19423 2012-11-07  Tiancheng Jiang  <tijiang@rim.com>
19424
19425         [BlackBerry] Update BB10 form theme.
19426         https://bugs.webkit.org/show_bug.cgi?id=100760
19427
19428         Reviewed by Rob Buis.
19429
19430         RIM PR 236997
19431         Internally Reviewed by Jakob Petsovits.
19432
19433         Set font family to fix DRT test fast/forms/input-type-text-min-width.html
19434
19435         * platform/blackberry/RenderThemeBlackBerry.cpp:
19436         (WebCore::RenderThemeBlackBerry::defaultGUIFont):
19437         (WebCore):
19438         (WebCore::RenderThemeBlackBerry::systemFont):
19439
19440 2012-11-07  Beth Dakin  <bdakin@apple.com>
19441
19442         https://bugs.webkit.org/show_bug.cgi?id=101303
19443         Fixed position elements that are out of view still end up forcing 
19444         non-threaded scrolling
19445         -and corresponding-
19446         <rdar://problem/12642222>
19447
19448         Reviewed by Simon Fraser.
19449
19450         Re-name hasNonLayerFixedObjects() to 
19451         hasVisibleSlowRepaintFixedObjects() and make it virtual. 
19452         * page/scrolling/ScrollingCoordinator.cpp:
19453         (WebCore::ScrollingCoordinator::hasVisibleSlowRepaintFixedObjects):
19454         (WebCore::ScrollingCoordinator::mainThreadScrollingReasons):
19455         * page/scrolling/ScrollingCoordinator.h:
19456         (ScrollingCoordinator):
19457
19458         Override hasVisibleSlowRepaintFixedObjects() to always return false. 
19459         We don't want to bother with the extra computation in the 
19460         ScrollingCoordinator implementation, though other ports might still 
19461         want it.
19462         * page/scrolling/mac/ScrollingCoordinatorMac.h:
19463         (WebCore::ScrollingCoordinatorMac::hasVisibleSlowRepaintFixedObjects):
19464         (ScrollingCoordinatorMac):
19465
19466         Make this function const so that we can call it from 
19467         requiresCompositingForPosition().
19468         * rendering/RenderLayerCompositor.cpp:
19469         (WebCore::RenderLayerCompositor::calculateCompositedBounds):
19470
19471         Actually be thorough here and check if the fixed object has any 
19472         descendants that are visible in the view. If it does, then we do 
19473         want to composite the fixed object.
19474         (WebCore::RenderLayerCompositor::requiresCompositingForPosition):
19475         * rendering/RenderLayerCompositor.h:
19476
19477 2012-11-07  Roger Fong  <roger_fong@apple.com>
19478
19479         Unreviewed. Style fix following r133262.
19480
19481         * html/HTMLMediaElement.cpp:
19482         (WebCore::HTMLMediaElement::clearMediaPlayer):
19483         * html/HTMLMediaElement.h:
19484         (HTMLMediaElement):
19485
19486 2012-11-07  Adam Barth  <abarth@webkit.org>
19487
19488         [V8] DOMWrapperMap doesn't need to use virtual functions
19489         https://bugs.webkit.org/show_bug.cgi?id=101494
19490
19491         Reviewed by Kentaro Hara.
19492
19493         DOMWrapperMap has only one subclass. There's no reason to use virtual functions.
19494
19495         * bindings/v8/DOMDataStore.cpp:
19496         (WebCore::DOMDataStore::DOMDataStore):
19497         * bindings/v8/DOMWrapperMap.h:
19498         (WebCore::DOMWrapperMap::DOMWrapperMap):
19499         (WebCore::DOMWrapperMap::get):
19500         (WebCore::DOMWrapperMap::set):
19501         (WebCore::DOMWrapperMap::clear):
19502         (WebCore::DOMWrapperMap::reportMemoryUsage):
19503         (WebCore::DOMWrapperMap::remove):
19504         (WebCore::DOMWrapperMap::defaultWeakCallback):
19505         * bindings/v8/V8NPObject.cpp:
19506         (WebCore::staticNPObjectMap):
19507
19508 2012-11-07  Alexandru Chiculita  <achicu@adobe.com>
19509
19510         [CSS Shaders] Remove the dependency on CustomFilterValidatedProgram from CustomFilterRenderer
19511         https://bugs.webkit.org/show_bug.cgi?id=101071
19512
19513         Reviewed by Dean Jackson.
19514
19515         I've removed the need to get a CustomFilterValidatedProgram from FilterEffectRenderer. It was only
19516         used to delay the compilation of the shader until it was really needed. Instead, the FilterEffectRenderer
19517         will directly get the compiled shader in the constructor. The callers that still want to avoid 
19518         compiling the shader until it is really needed can use the setCompiledProgram to inject the shader
19519         at a later time, before painting.
19520
19521         No new tests, the change is covered by the css3/filters/custom/ tests.
19522
19523         * platform/graphics/filters/CustomFilterConstants.h:
19524         * platform/graphics/filters/CustomFilterProgramInfo.h:
19525         * platform/graphics/filters/CustomFilterRenderer.cpp:
19526         (WebCore::CustomFilterRenderer::create):
19527         (WebCore::CustomFilterRenderer::CustomFilterRenderer):
19528         (WebCore::CustomFilterRenderer::premultipliedAlpha):
19529         (WebCore::CustomFilterRenderer::setCompiledProgram):
19530         (WebCore):
19531         (WebCore::CustomFilterRenderer::prepareForDrawing):
19532         (WebCore::CustomFilterRenderer::bindProgramAndBuffers):
19533         * platform/graphics/filters/CustomFilterRenderer.h:
19534         (WebCore):
19535         (CustomFilterRenderer):
19536         (WebCore::CustomFilterRenderer::compiledProgram):
19537         * platform/graphics/filters/FECustomFilter.cpp:
19538         (WebCore::FECustomFilter::FECustomFilter):
19539         (WebCore::FECustomFilter::prepareForDrawing):
19540         * platform/graphics/filters/FECustomFilter.h:
19541         (FECustomFilter):
19542
19543 2012-11-07  Adam Barth  <abarth@webkit.org>
19544
19545         [V8] IntrusiveDOMWrapperMap is no longer needed and can be deleted
19546         https://bugs.webkit.org/show_bug.cgi?id=101493
19547
19548         Reviewed by Kentaro Hara.
19549
19550         This patch is another incremental step towards landing the patch in bug
19551         101110. In this patch, we delete IntrusiveDOMWrapperMap, which is no
19552         longer needed.
19553
19554         * WebCore.gypi:
19555         * bindings/v8/DOMDataStore.cpp:
19556         (WebCore::DOMDataStore::DOMDataStore):
19557         (WebCore::DOMDataStore::~DOMDataStore):
19558         (WebCore::DOMDataStore::reportMemoryUsage):
19559         (WebCore::DOMDataStore::weakCallback):
19560         (WebCore):
19561         * bindings/v8/DOMDataStore.h:
19562         (WebCore::DOMDataStore::get):
19563         (WebCore::DOMDataStore::set):
19564         (DOMDataStore):
19565         * bindings/v8/IntrusiveDOMWrapperMap.h: Removed.
19566         * bindings/v8/V8GCController.cpp:
19567
19568 2012-11-07  Sudarsana Nagineni  <sudarsana.nagineni@intel.com>
19569
19570         [AC] glXChooseFBConfig() and glXGetVisualFromFBConfig() return values are leaking in GraphicsSurface
19571         https://bugs.webkit.org/show_bug.cgi?id=101475
19572
19573         Reviewed by Kenneth Rohde Christiansen.
19574
19575         Free the memory returned by glXChooseFBConfig and glXGetVisualFromFBConfig
19576         using XFree to avoid memory leaks.
19577
19578         No tests. No change in behavior.
19579
19580         * platform/graphics/surfaces/qt/GraphicsSurfaceGLX.cpp:
19581         (WebCore::GraphicsSurfacePrivate::~GraphicsSurfacePrivate):
19582         (WebCore::GraphicsSurfacePrivate::createSurface):
19583
19584 2012-11-07  Fady Samuel  <fsamuel@chromium.org>
19585
19586         Autoresize should work even if turned on while the page is loading.
19587         https://bugs.webkit.org/show_bug.cgi?id=101380
19588
19589         Reviewed by David Levin.
19590
19591         Autoresize does not work in cases where it is turned on while loading.
19592         This patch addresses this by allowing autoSize to complete if it's turned on
19593         while loading and doing a final pass after loading.
19594
19595         * loader/FrameLoader.cpp:
19596         (WebCore::FrameLoader::checkCompleted):
19597         Adjust to call renamed function.
19598         * page/FrameView.cpp:
19599         (WebCore::FrameView::handleLoadCompleted):
19600         Rename function to encompass its expanded responsibilities (which include doing the final auto size after the load is completed).
19601         (WebCore::FrameView::autoSizeIfEnabled):
19602         Allow the size to shrink if autosize is adjusted while the page is loading.
19603         * page/FrameView.h:
19604         (FrameView):
19605         Renamed 'checkFlushDeferredRepaintsAfterLoadComplete' to 'handleLoadComplete'
19606
19607 2012-11-07  Philip Rogers  <pdr@google.com>
19608
19609         Skip SVG repaint tracking when parent container transforms
19610         https://bugs.webkit.org/show_bug.cgi?id=101177
19611
19612         Reviewed by Eric Seidel.
19613
19614         This patch skips child repaint rect checks when a parent container is transformed, leading
19615         to a 75% increase on the RoboHornet SVG benchmark:
19616             http://www.robohornet.org/#et=svg  (average of 2 runs)
19617             Before patch: 161.6ms
19618             After patch: 38.5ms
19619
19620         SVG transforms are relative to the local container which makes calculating an absolute
19621         repaint rect expensive because it requires multiplying the local repaint rect by each
19622         parent container's local transform. See SVGRenderSupport::computeFloatRectForRepaint
19623         as an example of this calculation.
19624
19625         This patch takes advantage of SVG's container rules: when a parent container's transform
19626         changes, all children must be repainted (there is no absolute positioning in SVG).
19627         SVGRenderSupport::checkForSVGRepaintDuringLayout has been added which checks for whether
19628         the parent transform changed before doing child repaint checks. A similar optimization is
19629         used in HTML (see RenderObject::checkForRepaintDuringLayout) where no repaint checking
19630         is done when the view is fully repainted.
19631
19632         This code is tested in existing tests.
19633
19634         * rendering/svg/RenderSVGContainer.cpp:
19635         (WebCore::RenderSVGContainer::layout):
19636         * rendering/svg/RenderSVGForeignObject.cpp:
19637         (WebCore::RenderSVGForeignObject::layout):
19638         * rendering/svg/RenderSVGImage.cpp:
19639         (WebCore::RenderSVGImage::layout):
19640         * rendering/svg/RenderSVGShape.cpp:
19641         (WebCore::RenderSVGShape::layout):
19642         * rendering/svg/RenderSVGText.cpp:
19643         (WebCore::RenderSVGText::layout):
19644         * rendering/svg/SVGRenderSupport.cpp:
19645         (WebCore::SVGRenderSupport::checkForSVGRepaintDuringLayout):
19646         (WebCore):
19647         * rendering/svg/SVGRenderSupport.h:
19648         (SVGRenderSupport):
19649
19650 2012-11-07  Chris Fleizach  <cfleizach@apple.com>
19651
19652         AX: Textfields don't get focus when navigated to from 'show all tabs' button
19653         https://bugs.webkit.org/show_bug.cgi?id=101369
19654
19655         Reviewed by Darin Adler.
19656
19657         When focus leaves a webpage, the webpage does not normally clear its focused node. When focus
19658         returns (through tab, or mouse click), then focus will be cleared and restored.
19659
19660         However, when focus is returned through accessibility means, focus is not cleared first, which
19661         means subsequent focus actions do nothing.
19662
19663         This fix will check if the focused node is the same as the node being focused, and if so, clear the focus first.
19664
19665         Making a layout test for this is not possible because it requires setting focus to something in the chrome, and then
19666         moving focus back to the webpage.
19667       
19668         * accessibility/AccessibilityRenderObject.cpp:
19669         (WebCore::AccessibilityRenderObject::setFocused):
19670
19671 2012-11-07  Adam Barth  <abarth@webkit.org>
19672
19673         [V8] We should hide the DOMWrapperMaps inside DOMDataStore
19674         https://bugs.webkit.org/show_bug.cgi?id=101430
19675
19676         Reviewed by Kentaro Hara.
19677
19678         This is yet another incremental step towards landing the patch in bug
19679         101110. In this patch, we hide the existence of DOMWrapperMaps inside
19680         DOMDataStore. In the process, we can remove V8DOMMap.cpp.
19681
19682         * UseV8.cmake:
19683         * WebCore.gypi:
19684         * bindings/v8/DOMDataStore.h:
19685         (WebCore::DOMDataStore::set):
19686         * bindings/v8/DOMWrapperWorld.h:
19687         * bindings/v8/ScriptProfiler.cpp:
19688         * bindings/v8/SerializedScriptValue.cpp:
19689         (WebCore::neuterBinding):
19690         * bindings/v8/V8DOMMap.cpp: Removed.
19691         * bindings/v8/V8DOMMap.h: Removed.
19692         * bindings/v8/V8DOMWindowShell.cpp:
19693         * bindings/v8/V8DOMWrapper.h:
19694         (WebCore::V8DOMWrapper::getCachedWrapper):
19695         (WebCore::V8DOMWrapper::setWrapperClass):
19696         (WebCore::V8DOMWrapper::setJSWrapperForDOMObject):
19697         * bindings/v8/V8NPObject.cpp:
19698         * bindings/v8/WorkerContextExecutionProxy.cpp:
19699         * bindings/v8/WorkerScriptController.cpp:
19700
19701 2012-11-07  Varun Jain  <varunjain@chromium.org>
19702
19703         Add new gesture type, LongTap, which is basically the completion of a GestureLongPress
19704         https://bugs.webkit.org/show_bug.cgi?id=101385
19705
19706         Reviewed by Adam Barth.
19707
19708         Test: Only creating the new enum. No functionality change, hence no tests required.
19709
19710         * platform/PlatformEvent.h:
19711
19712 2012-11-05  Emil A Eklund  <eae@chromium.org>
19713
19714         Remove LayoutTypes abstraction
19715         https://bugs.webkit.org/show_bug.cgi?id=93050
19716
19717         Reviewed by Levi Weintraub.
19718
19719         Remove LayoutTypes abstraction and rename FractionalLayout* to
19720         Layout* now that all platforms use the FractionalLayout version
19721         (albeit with different fractions).
19722
19723         No new tests, no change in functionality.
19724
19725         * CMakeLists.txt:
19726         * GNUmakefile.list.am:
19727         * Target.pri:
19728         * WebCore.exp.in:
19729         * WebCore.gypi:
19730         * WebCore.vcproj/WebCore.vcproj:
19731         * WebCore.xcodeproj/project.pbxproj:
19732         * accessibility/AccessibilityNodeObject.cpp:
19733         * accessibility/AccessibilityNodeObject.h:
19734         * accessibility/AccessibilityObject.h:
19735         * accessibility/AccessibilityRenderObject.h:
19736         * css/LengthFunctions.cpp:
19737         * css/LengthFunctions.h:
19738         * dom/Document.h:
19739         * dom/DocumentMarkerController.h:
19740         * dom/ElementRareData.h:
19741         * dom/MouseRelatedEvent.h:
19742         * dom/Node.h:
19743         * dom/Touch.h:
19744         * editing/FrameSelection.cpp:
19745         * editing/FrameSelection.h:
19746         * editing/RenderedPosition.h:
19747         * html/HTMLAreaElement.h:
19748         * inspector/InspectorOverlay.h:
19749         * inspector/InspectorTimelineAgent.h:
19750         * inspector/TimelineRecordFactory.cpp:
19751         * inspector/TimelineRecordFactory.h:
19752         * loader/cache/CachedImage.h:
19753         * page/FocusController.h:
19754         * page/FrameView.h:
19755         * page/Page.h:
19756         * page/SpatialNavigation.cpp:
19757         * page/SpatialNavigation.h:
19758         * platform/FractionalLayoutUnit.h: Removed.
19759         * platform/LayoutUnit.h: Copied from Source/WebCore/platform/FractionalLayoutUnit.h.
19760         * platform/Length.h:
19761         * platform/PopupMenuClient.h:
19762         * platform/animation/AnimationUtilities.h:
19763         * platform/graphics/FloatPoint.cpp:
19764         * platform/graphics/FloatPoint.h:
19765         * platform/graphics/FloatRect.cpp:
19766         * platform/graphics/FloatRect.h:
19767         * platform/graphics/FloatSize.cpp:
19768         * platform/graphics/FloatSize.h:
19769         * platform/graphics/FractionalLayoutBoxExtent.cpp: Removed.
19770         * platform/graphics/FractionalLayoutBoxExtent.h: Removed.
19771         * platform/graphics/FractionalLayoutPoint.h: Removed.
19772         * platform/graphics/FractionalLayoutRect.cpp: Removed.
19773         * platform/graphics/FractionalLayoutRect.h: Removed.
19774         * platform/graphics/FractionalLayoutSize.h: Removed.
19775         * platform/graphics/GraphicsLayer.cpp:
19776         * platform/graphics/GraphicsLayerAnimation.cpp:
19777         * platform/graphics/IntRect.cpp:
19778         * platform/graphics/IntRect.h:
19779         * platform/graphics/LayoutBoxExtent.cpp: Copied from Source/WebCore/platform/graphics/FractionalLayoutBoxExtent.cpp.
19780         * platform/graphics/LayoutBoxExtent.h: Copied from Source/WebCore/platform/graphics/FractionalLayoutBoxExtent.h.
19781         * platform/graphics/LayoutPoint.h: Copied from Source/WebCore/platform/graphics/FractionalLayoutPoint.h.
19782         * platform/graphics/LayoutRect.cpp: Copied from Source/WebCore/platform/graphics/FractionalLayoutRect.cpp.
19783         * platform/graphics/LayoutRect.h: Copied from Source/WebCore/platform/graphics/FractionalLayoutRect.h.
19784         * platform/graphics/LayoutSize.h: Copied from Source/WebCore/platform/graphics/FractionalLayoutSize.h.
19785         * platform/graphics/MediaPlayer.h:
19786         * platform/graphics/filters/CustomFilterOperation.h:
19787         * platform/graphics/filters/CustomFilterParameterList.h:
19788         * platform/graphics/filters/FilterOperation.h:
19789         * platform/graphics/filters/FilterOperations.h:
19790         * platform/graphics/filters/ValidatedCustomFilterOperation.cpp:
19791         * platform/graphics/filters/ValidatedCustomFilterOperation.h:
19792         * platform/graphics/qt/FractionalLayoutPointQt.cpp: Removed.
19793         * platform/graphics/qt/FractionalLayoutRectQt.cpp: Removed.
19794         * platform/graphics/qt/FractionalLayoutSizeQt.cpp: Removed.
19795         * platform/graphics/qt/LayoutPointQt.cpp: Copied from Source/WebCore/platform/graphics/qt/FractionalLayoutPointQt.cpp.
19796         * platform/graphics/qt/LayoutRectQt.cpp: Added.
19797         * platform/graphics/qt/LayoutSizeQt.cpp: Copied from Source/WebCore/platform/graphics/qt/FractionalLayoutSizeQt.cpp.
19798         * platform/graphics/transforms/TransformOperations.h:
19799         * platform/graphics/transforms/TransformState.h:
19800         * platform/graphics/transforms/TransformationMatrix.cpp:
19801         * platform/graphics/transforms/TransformationMatrix.h:
19802         * rendering/AutoTableLayout.h:
19803         * rendering/ColumnInfo.h:
19804         * rendering/ExclusionShapeInsideInfo.h:
19805         * rendering/FilterEffectRenderer.h:
19806         * rendering/FixedTableLayout.h:
19807         * rendering/GapRects.h:
19808         * rendering/HitTestResult.h:
19809         * rendering/HitTestingTransformState.cpp:
19810         * rendering/HitTestingTransformState.h:
19811         * rendering/InlineFlowBox.cpp:
19812         * rendering/LayoutRepainter.cpp:
19813         * rendering/LayoutRepainter.h:
19814         * rendering/LayoutState.h:
19815         * rendering/LayoutTypes.h:
19816         * rendering/LayoutTypesInlineMethods.h:
19817         * rendering/PaintInfo.h:
19818         * rendering/RenderBlock.cpp:
19819         * rendering/RenderBlock.h:
19820         * rendering/RenderBlockLineLayout.cpp:
19821         * rendering/RenderBox.cpp:
19822         * rendering/RenderBox.h:
19823         * rendering/RenderBoxModelObject.cpp:
19824         * rendering/RenderBoxModelObject.h:
19825         * rendering/RenderDeprecatedFlexibleBox.cpp:
19826         * rendering/RenderFieldset.cpp:
19827         * rendering/RenderFlexibleBox.cpp:
19828         * rendering/RenderFlowThread.cpp:
19829         * rendering/RenderGeometryMap.h:
19830         * rendering/RenderImageResource.h:
19831         * rendering/RenderInline.cpp:
19832         * rendering/RenderLayer.cpp:
19833         * rendering/RenderLayerFilterInfo.h:
19834         * rendering/RenderLineBoxList.cpp:
19835         * rendering/RenderListMarker.cpp:
19836         * rendering/RenderMarquee.cpp:
19837         * rendering/RenderMenuList.h:
19838         * rendering/RenderMultiColumnBlock.cpp:
19839         * rendering/RenderMultiColumnSet.cpp:
19840         * rendering/RenderNamedFlowThread.cpp:
19841         * rendering/RenderObject.cpp:
19842         * rendering/RenderObject.h:
19843         * rendering/RenderOverflow.h:
19844         * rendering/RenderRegion.cpp:
19845         * rendering/RenderReplaced.cpp:
19846         * rendering/RenderTable.cpp:
19847         * rendering/RenderTable.h:
19848         * rendering/RenderText.cpp:
19849         * rendering/RenderThemeChromiumCommon.cpp:
19850         * rendering/RenderThemeChromiumCommon.h:
19851         * rendering/RenderTreeAsText.cpp:
19852         * rendering/RenderTreeAsText.h:
19853         * rendering/RenderView.h:
19854         * rendering/style/NinePieceImage.h:
19855         * rendering/style/RenderStyle.h:
19856         * rendering/style/ShadowData.cpp:
19857         * rendering/style/ShadowData.h:
19858         * rendering/style/StyleCachedImageSet.h:
19859         * rendering/style/StyleImage.h:
19860         * rendering/svg/SVGRenderSupport.h:
19861
19862 2012-11-07  Alexandru Chiculita  <achicu@adobe.com>
19863
19864         CoordinatedGraphicsArgumentCoders should use ValidatedCustomFitlerOperation instead
19865         https://bugs.webkit.org/show_bug.cgi?id=100905
19866
19867         Reviewed by Noam Rosenthal.
19868
19869         Added getters for the validated shaders, so that platform code could extract them.
19870
19871         No new tests, just added two getters.
19872
19873         * platform/graphics/filters/CustomFilterValidatedProgram.h:
19874         (WebCore::CustomFilterValidatedProgram::validatedVertexShader):
19875         (WebCore::CustomFilterValidatedProgram::validatedFragmentShader):
19876         (CustomFilterValidatedProgram):
19877
19878 2012-11-07  Joshua Bell  <jsbell@chromium.org>
19879
19880         IndexedDB: Assertion failure with open() within upgradeneeded
19881         https://bugs.webkit.org/show_bug.cgi?id=96947
19882
19883         Reviewed by Dimitri Glazkov.
19884
19885         Postpone creation of the "pending second half open" until the version change
19886         transaction has started.
19887
19888         Test: storage/indexeddb/unblocked-version-changes.html
19889
19890         * Modules/indexeddb/IDBDatabaseBackendImpl.cpp:
19891         (WebCore::IDBDatabaseBackendImpl::setIntVersionInternal):
19892         (WebCore::IDBDatabaseBackendImpl::runIntVersionChangeTransaction):
19893         * Modules/indexeddb/IDBDatabaseBackendImpl.h:
19894         (IDBDatabaseBackendImpl):
19895         * Modules/indexeddb/IDBDatabaseCallbacks.h:
19896
19897 2012-11-07  Alexandru Chiculita  <achicu@adobe.com>
19898
19899         [CSS Shaders] Add CustomFilterMeshBoxType to ValidatedCustomFilterOperation
19900         https://bugs.webkit.org/show_bug.cgi?id=100890
19901
19902         Reviewed by Dean Jackson.
19903
19904         Added the CustomFilterMeshBoxType parameter to the ValidatedCustomFilterOperation.
19905
19906         No new tests, this parameter is not used in the implementation yet.
19907
19908         * platform/graphics/filters/ValidatedCustomFilterOperation.cpp:
19909         (WebCore::ValidatedCustomFilterOperation::ValidatedCustomFilterOperation):
19910         * platform/graphics/filters/ValidatedCustomFilterOperation.h:
19911         (WebCore::ValidatedCustomFilterOperation::create):
19912         (WebCore::ValidatedCustomFilterOperation::meshBoxType):
19913         (WebCore::ValidatedCustomFilterOperation::operator==):
19914         (ValidatedCustomFilterOperation):
19915         * rendering/FilterEffectRenderer.cpp:
19916         (WebCore::createCustomFilterEffect):
19917         * rendering/RenderLayer.cpp:
19918         (WebCore::RenderLayer::computeFilterOperations):
19919
19920 2012-11-07  Sergio Villar Senin  <svillar@igalia.com>
19921
19922         [Qt] Implement deleteCookie() for persistent storage
19923         https://bugs.webkit.org/show_bug.cgi?id=101272
19924
19925         Reviewed by Jocelyn Turcotte.
19926
19927         Individual cookies were never persistently cleared as the
19928         deleteCookie() virtual method was not implemented for persistent
19929         storage. That's why cookies were only deleted for the current
19930         session.
19931
19932         * platform/qt/CookieJarQt.cpp:
19933         (WebCore::SharedCookieJarQt::deleteCookie):
19934         (WebCore): added deleteCookie() implementation for persistent
19935         storage.
19936         * platform/qt/CookieJarQt.h:
19937         (SharedCookieJarQt):
19938
19939 2012-11-07  Shinya Kawanaka  <shinyak@chromium.org>
19940
19941         [Shadow] Style should update when 'pseudo' attribute is dynamically updated
19942         https://bugs.webkit.org/show_bug.cgi?id=100918
19943
19944         Reviewed by Dimitri Glazkov.
19945
19946         When 'pseudo' attribute is changed and its element is in ShadowTree, we enable the styleShouldRecalc flag.
19947
19948         It would be fast if we have a set of pseudo attribute style value in RuleFeatureSet,
19949         but it might consume a lot of memory.
19950
19951         Test: fast/dom/shadow/pseudo-attribute-dynamic.html
19952
19953         * dom/Element.cpp:
19954         (WebCore::Element::attributeChanged):
19955
19956 2012-11-07  Ulan Degenbaev  <ulan@chromium.org>
19957
19958         [V8] WebKit sends unnecessary low memory notification when running memory benchmarks
19959         https://bugs.webkit.org/show_bug.cgi?id=101474
19960
19961         Reviewed by Kentaro Hara.
19962
19963         Do not send low memory notification to V8 when most of memory usage
19964         comes from V8 heap and not DOM objects. In this case V8 can schedule GC
19965         itself more optimally.
19966
19967         * bindings/v8/V8GCController.cpp:
19968         (WebCore::V8GCController::checkMemoryUsage):
19969
19970 2012-11-07  Allan Sandfeld Jensen  <allan.jensen@digia.com>
19971
19972         [Qt] Open link in this window action
19973         https://bugs.webkit.org/show_bug.cgi?id=101226
19974
19975         Reviewed by Simon Hausmann.
19976
19977         Adds the action to the WebCore context-menu controller.
19978
19979         * page/ContextMenuController.cpp:
19980         (WebCore::ContextMenuController::contextMenuItemSelected):
19981         (WebCore::ContextMenuController::checkOrEnableIfNeeded):
19982         * platform/ContextMenuItem.h:
19983         * platform/LocalizedStrings.h:
19984         * platform/qt/LocalizedStringsQt.cpp:
19985         (WebCore::contextMenuItemTagOpenLinkInThisWindow):
19986
19987 2012-11-07  Andrey Adaikin  <aandrey@chromium.org>
19988
19989         Web Inspector: [Canvas] closure compiler fixes
19990         https://bugs.webkit.org/show_bug.cgi?id=101459
19991
19992         Reviewed by Pavel Feldman.
19993
19994         * inspector/InjectedScriptCanvasModuleSource.js:
19995         (.):
19996
19997 2012-11-07  Sheriff Bot  <webkit.review.bot@gmail.com>
19998
19999         Unreviewed, rolling out r133712.
20000         http://trac.webkit.org/changeset/133712
20001         https://bugs.webkit.org/show_bug.cgi?id=101461
20002
20003         Broke fast/forms/time* tests on chromium-win. (Requested by
20004         mkwst on #webkit).
20005
20006         * platform/text/win/LocaleWin.cpp:
20007         (WebCore::DateFormatToken::DateFormatToken):
20008         (DateFormatToken):
20009         (WebCore):
20010         (WebCore::isEraSymbol):
20011         (WebCore::isYearSymbol):
20012         (WebCore::isMonthSymbol):
20013         (WebCore::isDaySymbol):
20014         (WebCore::commitLiteralToken):
20015         (WebCore::parseDateFormat):
20016         (WebCore::LocaleWin::ensureShortDateTokens):
20017         (WebCore::convertWindowsDateFormatToLDML):
20018         (WebCore::mapCharacterToDateTimeFieldType):
20019         (WebCore::convertWindowsTimeFormatToLDML):
20020         (WebCore::LocaleWin::dateFormat):
20021         (WebCore::LocaleWin::monthFormat):
20022         (WebCore::LocaleWin::timeFormat):
20023         (WebCore::LocaleWin::shortTimeFormat):
20024         * platform/text/win/LocaleWin.h:
20025         (LocaleWin):
20026
20027 2012-11-07  Vsevolod Vlasov  <vsevik@chromium.org>
20028
20029         Web Inspector: [Regression] Editing formatted source should not be allowed.
20030         https://bugs.webkit.org/show_bug.cgi?id=101355
20031
20032         Reviewed by Pavel Feldman.
20033
20034         * inspector/front-end/JavaScriptSourceFrame.js:
20035         (WebInspector.JavaScriptSourceFrame.prototype._onFormattedChanged):
20036         * inspector/front-end/UISourceCodeFrame.js:
20037         (WebInspector.UISourceCodeFrame.prototype._onFormattedChanged):
20038
20039 2012-11-07  Shinya Kawanaka  <shinyak@chromium.org>
20040
20041         [Shadow] Use setPseudo() instead of setShadowPseudoId().
20042         https://bugs.webkit.org/show_bug.cgi?id=101306
20043
20044         Reviewed by Kent Tamura.
20045
20046         We would like to remove setShadowPseudoId() and use setPseudo() instead, since ShadowDOM spec now has
20047         'pseudo' attribute.
20048
20049         We change all setShadowPseudoId() invocation to setPseudo() invocation. Also, when AtomicString is not
20050         constructed with AtomicStringFromLiteral, we use it.
20051
20052         No new tests, refactoring.
20053
20054         * WebCore.exp.in:
20055         * dom/Element.cpp:
20056         * dom/Element.h:
20057         (Element):
20058         * html/BaseMultipleFieldsDateAndTimeInputType.cpp:
20059         (WebCore::BaseMultipleFieldsDateAndTimeInputType::createShadowSubtree):
20060         * html/ColorInputType.cpp:
20061         (WebCore::ColorInputType::createShadowSubtree):
20062         * html/HTMLTextAreaElement.cpp:
20063         (WebCore::HTMLTextAreaElement::updatePlaceholderText):
20064         * html/RangeInputType.cpp:
20065         (WebCore::RangeInputType::createShadowSubtree):
20066         * html/TextFieldInputType.cpp:
20067         (WebCore::TextFieldInputType::createShadowSubtree):
20068         (WebCore::TextFieldInputType::updatePlaceholderText):
20069         * html/ValidationMessage.cpp:
20070         (WebCore::ValidationMessage::buildBubbleTree):
20071         * html/shadow/DateTimeEditElement.cpp:
20072         (WebCore::DateTimeEditBuilder::visitLiteral):
20073         (WebCore::DateTimeEditElement::DateTimeEditElement):
20074         * html/shadow/DateTimeFieldElement.cpp:
20075         (WebCore::DateTimeFieldElement::initialize):
20076         * html/shadow/DateTimeFieldElement.h:
20077         (DateTimeFieldElement):
20078         * html/shadow/PickerIndicatorElement.cpp:
20079         (WebCore::PickerIndicatorElement::PickerIndicatorElement):
20080         * html/track/TextTrackCue.cpp:
20081         (WebCore::TextTrackCueBox::TextTrackCueBox):
20082         (WebCore::TextTrackCue::updateDisplayTree):
20083         * testing/Internals.cpp:
20084         (WebCore::Internals::setShadowPseudoId):
20085
20086 2012-11-07  Andrey Adaikin  <aandrey@chromium.org>
20087
20088         Web Inspector: [Canvas] Save CanvasGradient objects state for a replay
20089         https://bugs.webkit.org/show_bug.cgi?id=101432
20090
20091         Reviewed by Pavel Feldman.
20092
20093         Save CanvasGradient resource state for a subsequent replay. The gradient's state is modified by the gradient.addColorStop() call.
20094
20095         Test: inspector/profiler/canvas2d/canvas2d-gradient-capturing.html
20096
20097         * inspector/InjectedScriptCanvasModuleSource.js:
20098         (.):
20099
20100 2012-11-07  Vsevolod Vlasov  <vsevik@chromium.org>
20101
20102         Web Inspector: [Regression] Snippets evaluations should not appear in Sources tab of navigator.
20103         https://bugs.webkit.org/show_bug.cgi?id=101354
20104
20105         Reviewed by Pavel Feldman.
20106
20107         * inspector/front-end/DebuggerScriptMapping.js:
20108         * inspector/front-end/NetworkUISourceCodeProvider.js:
20109         (WebInspector.NetworkUISourceCodeProvider.prototype._parsedScriptSource):
20110         * inspector/front-end/Script.js:
20111         (WebInspector.Script.prototype.isSnippet):
20112         * inspector/front-end/ScriptSnippetModel.js:
20113         (WebInspector.ScriptSnippetModel.prototype._snippetIdForSourceURL):
20114
20115 2012-11-07  Dan Carney  <dcarney@google.com>
20116
20117         [V8] Cleanup V8DOMWrapper::getCachedWrapper
20118         https://bugs.webkit.org/show_bug.cgi?id=100853
20119
20120         Reviewed by Adam Barth.
20121
20122         Slight cleanup. Removed redundant branch.
20123
20124         No new tests. No change in functionality.
20125
20126         * bindings/v8/V8DOMWrapper.h:
20127         (WebCore::V8DOMWrapper::getCachedWrapper):
20128
20129 2012-11-07  Simon Hausmann  <simon.hausmann@digia.com>
20130
20131         [Qt] Unreviewed trivial build fix adapting to QtMultimedia API changes
20132
20133         The QtMultimedia namespace is now called QMultimedia and
20134         QtMultimedia::MetaData is now QMediaMetaData.
20135
20136         * platform/graphics/qt/MediaPlayerPrivateQt.cpp:
20137         (WebCore::MediaPlayerPrivateQt::supportsType):
20138         (WebCore::MediaPlayerPrivateQt::totalBytes):
20139
20140 2012-11-07  Christophe Dumez  <christophe.dumez@intel.com>
20141
20142         Add replaceWithLiteral() method to WTF::String
20143         https://bugs.webkit.org/show_bug.cgi?id=101257
20144
20145         Reviewed by Benjamin Poulain.
20146
20147         Substitute String::replace() calls by String::replaceWithLiteral() where
20148         adequate, for efficiency.
20149
20150         No new tests, no behavior change.
20151
20152         * dom/Node.cpp:
20153         (WebCore::Node::showNode):
20154         * editing/EditingStyle.cpp:
20155         (WebCore::StyleChange::extractTextStyles):
20156         * editing/MarkupAccumulator.cpp:
20157         (WebCore::MarkupAccumulator::appendQuotedURLAttributeValue):
20158         * html/HTMLAnchorElement.cpp:
20159         (WebCore::HTMLAnchorElement::setSearch):
20160         * loader/FormSubmission.cpp:
20161         (WebCore::appendMailtoPostFormDataToURL):
20162         * platform/network/soup/ProxyResolverSoup.cpp:
20163         (soupProxyResolverWkSetProperty):
20164         * plugins/PluginView.cpp:
20165         (WebCore::makeURL):
20166         * rendering/InlineTextBox.cpp:
20167         (WebCore::InlineTextBox::showBox):
20168         * xml/XSLTProcessor.cpp:
20169         (WebCore::transformTextStringToXHTMLDocumentString):
20170
20171 2012-11-07  Kenneth Rohde Christiansen  <kenneth@webkit.org>
20172
20173         Remove support for "desktop-width" in the viewport meta tag
20174         https://bugs.webkit.org/show_bug.cgi?id=101217
20175
20176         Reviewed by Gyuyoung Kim.
20177
20178         This has been removed from the CSS Device Adaptation spec, and
20179         should be safe to remove as it is not documented anywhere (neither
20180         in blog posts).
20181
20182         The viewport meta should only support the legacy features.
20183
20184         * dom/ViewportArguments.cpp:
20185         (WebCore::computeViewportAttributes):
20186         (WebCore::findSizeValue):
20187         (WebCore::findScaleValue):
20188         (WebCore::findUserScalableValue):
20189         * dom/ViewportArguments.h:
20190
20191 2012-11-07  Dominik Röttsches  <dominik.rottsches@intel.com>
20192
20193         [EFL] Fix execution of exif-orientation-image-document.html on EFL Wk2 bot
20194         https://bugs.webkit.org/show_bug.cgi?id=101343
20195
20196         Reviewed by Kenneth Rohde Christiansen.
20197
20198         Add Cairo to the list of backends that support shouldRespectImageOrientation.
20199
20200         No new tests, fixes exif-orientation-image-document.html.
20201
20202         * rendering/RenderObject.cpp:
20203         (WebCore::RenderObject::shouldRespectImageOrientation):
20204
20205 2012-11-06  Yury Semikhatsky  <yurys@chromium.org>
20206
20207         Console not displaying all properties of an Object once native Constructor overwritten
20208         https://bugs.webkit.org/show_bug.cgi?id=101320
20209
20210         Reviewed by Pavel Feldman.
20211
20212         Use Object instance from {}.constructor when formatting inspector messages in the
20213         injected script. Otherwise inspected page may overwrite Object value and break inspector.
20214
20215         Test: inspector/console/console-Object-overwritten.html
20216
20217         * inspector/InjectedScriptSource.js:
20218
20219 2012-11-06  Keishi Hattori  <keishi@webkit.org>
20220
20221         Implement month picking to calendar picker
20222         https://bugs.webkit.org/show_bug.cgi?id=101333
20223
20224         Reviewed by Kent Tamura.
20225
20226         This adds month picker mode to CalendarPicker.
20227
20228         No new tests. Tests will be added later when this feature is enabled in DRT.
20229
20230         * Resources/pagepopups/calendarPicker.css:
20231         (.month-mode .day): Remove rounded corners when in month mode.
20232         * Resources/pagepopups/calendarPicker.js:
20233         (Month.createFromToday): Creates month containing today.
20234         (CalendarPicker): Set this.selectionConstructor to Day or Month depending on the mode. Create DayTables or MonthPickerDaysTable depending on the mode.
20235         (CalendarPicker.prototype.handleToday):
20236         (CalendarPicker.prototype._layoutButtons):
20237         (DaysTable.prototype._renderMonth): Set element.dataset.monthValue for all date nodes.
20238         (DaysTable.prototype._markRangeAsSelected): Marks all day nodes in range as selected.
20239         (DaysTable.prototype.selectRange): Selects a day.
20240         (DaysTable.prototype.selectRangeAndShowEntireRange): Same as selectRange.
20241         (DaysTable.prototype._selectRangeContainingNode):
20242         (DaysTable.prototype._rangeForNode): Returns Day for node.
20243         (DaysTable.prototype.startDate): Start datetime of visible date range. This value is inclusive.
20244         (DaysTable.prototype.endDate): End datetime of visible date range. This value is exclusive.
20245         (DaysTable.prototype._handleKey):
20246         (MonthPickerDaysTable):
20247         (MonthPickerDaysTable.prototype._markRangeAsSelected): Marks all day nodes in range as selected.
20248         (MonthPickerDaysTable.prototype.selectRange): Selects month. If month is not visible, navigates to that month.
20249         (MonthPickerDaysTable.prototype.selectRangeAndShowEntireRange): Selects month. Navigates to the month.
20250         (MonthPickerDaysTable.prototype._rangeForNode): Returns Month for node.
20251         (MonthPickerDaysTable.prototype._handleKey): Arrow keys simply move the selection forwards or backwards.
20252
20253 2012-11-06  Dan Beam  <dbeam@chromium.org>
20254
20255         Enable REQUEST_AUTOCOMPLETE for chromium port
20256         https://bugs.webkit.org/show_bug.cgi?id=101376
20257
20258         Reviewed by Adam Barth.
20259
20260         Added a runtime enabled feature to control whether HTMLFormElement#requestAutocomplete is visible from JavaScript.
20261
20262         * bindings/generic/RuntimeEnabledFeatures.cpp:
20263         (WebCore):
20264         * bindings/generic/RuntimeEnabledFeatures.h:
20265         (RuntimeEnabledFeatures):
20266
20267         Added a binding from RuntimeEnabledFeatures that triggers [V8EnabledAtRuntime=requestAutocomplete].
20268
20269         (WebCore::RuntimeEnabledFeatures::requestAutocompleteEnabled):
20270
20271         Added a getter to WebCore to ask whether the runtime flag requestAutocomplete is on.
20272
20273         (WebCore::RuntimeEnabledFeatures::setRequestAutocompleteEnabled):
20274
20275         Added a setter to WebCore to affect the runtime flag requestAutocomplete.
20276
20277         * html/HTMLFormElement.idl:
20278
20279         Wrapped commonly grouped features in an #if defined(ENABLED_REQUEST_AUTOCOMPLETE) block and added [V8EnableAtRuntime]
20280         so these features can be changed with a command line switch in the chromium port.
20281
20282 2012-11-06  Adam Barth  <abarth@webkit.org>
20283
20284         [V8] Unify setJSWrapperForDOMObject and setJSWrapperForDOMNode
20285         https://bugs.webkit.org/show_bug.cgi?id=101422
20286
20287         Reviewed by Kentaro Hara.
20288
20289         This patch is another incremental step towards the patch in Bug 10110.
20290         In this step, we unify setJSWrapperForDOMObject and
20291         setJSWrapperForDOMNode.
20292
20293         * bindings/scripts/CodeGeneratorV8.pm:
20294         (GenerateHeader):
20295         (GenerateNormalAttrGetter):
20296         (GenerateConstructorCallback):
20297         (GenerateNamedConstructorCallback):
20298         (GenerateToV8Converters):
20299         * bindings/scripts/test/V8/V8Float64Array.h:
20300         (WebCore::V8Float64Array::wrap):
20301         * bindings/scripts/test/V8/V8TestActiveDOMObject.h:
20302         (WebCore::V8TestActiveDOMObject::wrap):
20303         * bindings/scripts/test/V8/V8TestCustomNamedGetter.h:
20304         (WebCore::V8TestCustomNamedGetter::wrap):
20305         * bindings/scripts/test/V8/V8TestEventConstructor.h:
20306         (WebCore::V8TestEventConstructor::wrap):
20307         * bindings/scripts/test/V8/V8TestEventTarget.h:
20308         (WebCore::V8TestEventTarget::wrap):
20309         * bindings/scripts/test/V8/V8TestException.h:
20310         (WebCore::V8TestException::wrap):
20311         * bindings/scripts/test/V8/V8TestInterface.h:
20312         (WebCore::V8TestInterface::wrap):
20313         * bindings/scripts/test/V8/V8TestMediaQueryListListener.h:
20314         (WebCore::V8TestMediaQueryListListener::wrap):
20315         * bindings/scripts/test/V8/V8TestNamedConstructor.h:
20316         (WebCore::V8TestNamedConstructor::wrap):
20317         * bindings/scripts/test/V8/V8TestNode.cpp:
20318         (WebCore::V8TestNode::constructorCallback):
20319         (WebCore::V8TestNode::wrapSlow):
20320         * bindings/scripts/test/V8/V8TestObj.cpp:
20321         (WebCore::TestObjV8Internal::readOnlyTestObjAttrAttrGetter):
20322         * bindings/scripts/test/V8/V8TestObj.h:
20323         (WebCore::V8TestObj::wrap):
20324         * bindings/scripts/test/V8/V8TestSerializedScriptValueInterface.h:
20325         (WebCore::V8TestSerializedScriptValueInterface::wrap):
20326         * bindings/v8/DOMDataStore.cpp:
20327         (WebCore::DOMDataStore::current):
20328         * bindings/v8/DOMDataStore.h:
20329         (WebCore::DOMDataStore::get):
20330         (DOMDataStore):
20331         * bindings/v8/V8DOMWrapper.cpp:
20332         * bindings/v8/V8DOMWrapper.h:
20333         (V8DOMWrapper):
20334         (WebCore::V8DOMWrapper::setJSWrapperPrivate):
20335         (WebCore::V8DOMWrapper::setJSWrapperForDOMObject):
20336         * bindings/v8/custom/V8HTMLImageElementConstructor.cpp:
20337         (WebCore::v8HTMLImageElementConstructorCallback):
20338
20339 2012-11-06  Ken Buchanan  <kenrb@chromium.org>
20340
20341         Crash due to column span under button element
20342         https://bugs.webkit.org/show_bug.cgi?id=101402
20343
20344         Reviewed by Abhishek Arya.
20345
20346         When there is a column-spanning child of a RenderButton
20347         splitBlocks() must split the RenderButton as well as its
20348         only permitted direct child, the anonymous block referenced
20349         by m_inner. A crash was occurring because splitBlocks()
20350         calls addChildIgnoringAnonymousColumnBlocks() to add the
20351         cloned m_inner to the cloned RenderButton, which meant the
20352         m_inner for the cloned RenderButton was not being set even
20353         though a child was being added. This violates state
20354         assumptions in the RenderButton code.
20355
20356         This patch prevents any descendants of RenderButton from
20357         spanning columns. Also, it adds a precautionary check in
20358         RenderButton::removeChild() to mitigate problems if similar
20359         state problems are found in future.
20360
20361         * rendering/RenderBlock.cpp:
20362         (WebCore::RenderBlock::containingColumnsBlock):
20363         * rendering/RenderButton.cpp:
20364         (WebCore::RenderButton::removeChild):
20365
20366 2012-11-06  Shinya Kawanaka  <shinyak@chromium.org>
20367
20368         [Shadow] Pseudo custom-elements should start with 'x-'.
20369         https://bugs.webkit.org/show_bug.cgi?id=100919
20370
20371         Reviewed by Dimitri Glazkov.
20372
20373         Pseuco custom-elements should start with 'x-'. 'Pseudo' starting with '-webkit-' should work
20374         only in UserAgent ShadowDOM. If it's used in Author ShadowDOM, it should not work.
20375
20376         Test: fast/dom/shadow/pseudo-attribute-rendering.html
20377
20378         * css/SelectorChecker.cpp:
20379         (WebCore::SelectorChecker::checkSelector): Added ShadowRoot type check.
20380
20381 2012-11-06  Chris Evans  <cevans@google.com>
20382
20383         Re-order variables in BidiRun and LayoutState
20384         https://bugs.webkit.org/show_bug.cgi?id=100173
20385
20386         Reviewed by Eric Seidel.
20387
20388         The variable re-ordering and use of bitfields for bools has two benefits:
20389         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.
20390         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.
20391
20392         This change is exclusively about size savings; it is performance neutral as you would expect, including on Parser/html5-full-render.html
20393
20394         * platform/text/BidiResolver.h:
20395         (WebCore::BidiCharacterRun::BidiCharacterRun): impact from re-ordering members.
20396         (BidiCharacterRun): provide an efficiently packed bit of storage for BidiRun subclass to use, and re-order members to place bools adjacent.
20397         * rendering/BidiRun.h:
20398         (WebCore::BidiRun::BidiRun): use base class' efficiently packed bit storage for m_hasHyphen.
20399         (BidiRun): m_hasHyphen is now stored in the base class.
20400         * rendering/LayoutState.cpp:
20401         (WebCore::LayoutState::LayoutState):
20402         * rendering/LayoutState.h:
20403         (WebCore::LayoutState::LayoutState): impact from re-ordering members.
20404         (LayoutState): re-order members to place bools adjacently.
20405
20406 2012-11-06  Kent Tamura  <tkent@chromium.org>
20407
20408         [Chromium-win] Refactor date/time format conversion code in LocaleWin
20409         https://bugs.webkit.org/show_bug.cgi?id=101329
20410
20411         Reviewed by Kentaro Hara.
20412
20413         convertWindowsDateFormatToLDML and convertWindowsTimeFormatToLDML did
20414         similar jobs with different code. We can merge them into one function.
20415
20416         As for the date format conversion, we have tokenized a format string and
20417         stored token objects into a vector. We skip token object generation and
20418         generate a LDML-compliant pattern string during parsing.
20419
20420         No new tests. This should make no behavior changes and
20421         WebKit/chromium/tests/LocaleWinTest.cpp has test cases.
20422
20423         * platform/text/win/LocaleWin.cpp:
20424         (WebCore): Remove DateFormatToken, isFooSymbol, ensureShortDateTokens,
20425         convertWindowsDateFormatToLDML, mapCharacterToDateTimeFieldType, and
20426         convertWindowsTimeFormatToLDML.
20427         (WebCore::commitLiteralToken): Store the result to the specified StringBuilder.
20428         (WebCore::convertWindowsDateTimeFormat):
20429         Renamed from parseDateFormat, and supports time format symbols.
20430         (WebCore::LocaleWin::dateFormat): Use convertWindowsDateTimeFormat.
20431         (WebCore::LocaleWin::monthFormat): Ditto.
20432         (WebCore::LocaleWin::timeFormat): Ditto.
20433         (WebCore::LocaleWin::shortTimeFormat): Ditto.
20434         * platform/text/win/LocaleWin.h:
20435         (LocaleWin): Remove ensureShortDateTokens and m_shortDateTokens.
20436
20437 2012-11-06  Elliott Sprehn  <esprehn@chromium.org>
20438
20439         Make Document::renderer faster by using the cached ptr for RenderView
20440         https://bugs.webkit.org/show_bug.cgi?id=101409
20441
20442         Reviewed by Eric Seidel.
20443
20444         In Bug 101277 I made Document::renderView() just return m_renderView instead
20445         of casting the result of renderer(). While this made renderView() cheaper it
20446         makes more sense to just make renderer() faster for Document pointers and
20447         go back to the out of line method in RenderView.h because lots of places in
20448         the code do document()->renderer().
20449
20450         No new tests, this is just a refactor.
20451
20452         * dom/Document.h:
20453         (WebCore::Document::renderer):
20454         * rendering/RenderView.h:
20455         (WebCore::Document::renderView):
20456
20457 2012-11-06  Adam Barth  <abarth@webkit.org>
20458
20459         [V8] neuterBinding should remember the type of its argument
20460         https://bugs.webkit.org/show_bug.cgi?id=101413
20461
20462         Reviewed by Kentaro Hara.
20463
20464         This is a small part of the patch in
20465         https://bugs.webkit.org/show_bug.cgi?id=101110 that we can land
20466         separately to try to tease out what is causing the memory regression.
20467
20468         * bindings/v8/SerializedScriptValue.cpp:
20469         (WebCore):
20470         (WebCore::neuterBinding):
20471
20472 2012-11-06  Alexey Proskuryakov  <ap@apple.com>
20473
20474         Clean up which storage cookie jar functions use
20475         https://bugs.webkit.org/show_bug.cgi?id=101395
20476
20477         Reviewed by Brady Eidson.
20478
20479         * WebCore.exp.in:
20480         * platform/mac/WebCoreSystemInterface.h:
20481         * platform/mac/WebCoreSystemInterface.mm:
20482         Updated for two new WKSI functions.
20483
20484         * platform/CookieJar.h: Added explanatory comments.
20485
20486         * platform/mac/CookieJar.mm:
20487         (WebCore::cookies): Removed fallback on NSHTTPCookieStorage, the WKSI function
20488         already implements it.
20489         (WebCore::cookieRequestHeaderFieldValue): Ditto.
20490         (WebCore::setCookies): Ditto.
20491         (WebCore::cookiesEnabled): Ditto.
20492         (WebCore::getRawCookies): Ditto.
20493         (WebCore::deleteCookie): Ditto.
20494         (WebCore::getHostnamesWithCookies): This function used to look at NSHTTPCookieStorage
20495         exclusively. While it makes sense to bypass private storage session, default storage
20496         session (currently only used for testing on Mac) is never OK to bypass. Changed to
20497         use a WKSI function that supports both.
20498         (WebCore::deleteCookiesForHostname): Ditto.
20499         (WebCore::deleteAllCookies): Ditto.
20500
20501         * platform/network/cf/CookieJarCFNet.cpp:
20502         (WebCore::getHostnamesWithCookies):
20503         (WebCore::deleteCookiesForHostname):
20504         (WebCore::deleteAllCookies):
20505         Updated to match Foundation, so now these functions bypass private session.
20506
20507         * platform/network/cf/CookieStorageCFNet.cpp:
20508         (WebCore::currentCFHTTPCookieStorage): Updated a comment.
20509         (WebCore::defaultCFHTTPCookieStorage):  Added a function that returns cookie storage
20510         for non-private session (or null if that would be an NSHTTPCookieStorage).        
20511         (WebCore::startObservingCookieChanges): We do not want to observe private cookies
20512         here, and we certainly don't want a mismatch between start/stop due to private
20513         browsing mode changes.
20514         (WebCore::stopObservingCookieChanges): Ditto.
20515
20516         * platform/network/cf/CookieStorageCFNet.h: Added defaultCFHTTPCookieStorage().
20517
20518 2012-11-06  Huang Dongsung  <luxtella@company100.net>
20519
20520         Build fix. r133601 broke the Windows build.
20521         https://bugs.webkit.org/show_bug.cgi?id=101404
20522
20523         Reviewed by Noam Rosenthal.
20524
20525         Only static const integral data members can be initialized within a class in the
20526         Windows, so we initialize static const double date members out of the class.
20527
20528         * platform/graphics/texmap/TextureMapper.cpp:
20529         (BitmapTexturePool):
20530         (WebCore):
20531
20532 2012-11-06  Simon Fraser  <simon.fraser@apple.com>
20533
20534         -webkit-background-clip:text produces artifacts when applied to the body and the browser is resized
20535         https://bugs.webkit.org/show_bug.cgi?id=89287
20536
20537         Reviewed by Beth Dakin.
20538
20539         If the body had -webkit-background-clip: text, we'd fail to paint
20540         anything behind it, so would see garbage pixels.
20541         
20542         Fix by having RenderView::paintBoxDecorations() check for a background-clip of "text"
20543         on the renderer that paints the root background.
20544         
20545         Added some new pixel tests for combinations of html and body transform
20546         and backgrounds; earlier versions of the patch broke some of these tests.
20547
20548         Tests: fast/backgrounds/background-clip-text-on-body.html
20549                fast/backgrounds/transformed-body-background.html
20550                fast/backgrounds/transformed-body-html-background.html
20551                fast/backgrounds/transformed-html-body-background.html
20552
20553         * rendering/RenderView.cpp:
20554         (WebCore::rendererObscuresBackground): Broke up the single condition
20555         into early 'false' returns when possible. We need to also check whether
20556         the renderer that actually paints the background (which might be the body)
20557         will fill it; background-clip: text does not.
20558         (WebCore::RenderView::paintBoxDecorations): Rather than checking firstChild(),
20559         actually check the root renderer, so that we can reliably get to the renderer
20560         that mains the root background.
20561
20562 2012-11-06  Stephen White  <senorblanco@chromium.org>
20563
20564         Implement save and restore for a bunch of InternalSettings state
20565         https://bugs.webkit.org/show_bug.cgi?id=101394
20566
20567         Reviewed by Dirk Pranke.
20568
20569         In http://trac.webkit.org/changeset/133399, I resolved a bunch of 
20570         flaky tests by saving and restoring the InternalSettings state
20571         EnableCompositingForFixedPosition.  On a hunch, I git grepped for all
20572         internal settings state which is being set by layout tests but not
20573         saved and restored.  It turns out there about 15 calls.
20574
20575         This patch takes care of five of them, mostly compositing-related.
20576         The others I was either not sure about, or were already at least
20577         being reset to known values by the testing harness.
20578
20579         Hopefully this will alleviate some further test flakiness.
20580
20581         * testing/InternalSettings.cpp:
20582         * testing/InternalSettings.h:
20583
20584 2012-11-06  KyungTae Kim  <ktf.kim@samsung.com>
20585
20586         Fix build warning in RenderLayer.cpp caused by r133628
20587         https://bugs.webkit.org/show_bug.cgi?id=101401
20588
20589         Reviewed by Simon Fraser.
20590
20591         The static function WebCore::frameViewFromLayer is only used when USE(ACCELERATED_COMPOSITING),
20592         so define it only that case for removing -Wunused-function warning
20593
20594         * rendering/RenderLayer.cpp:
20595         (WebCore):
20596
20597 2012-11-06  Hans Muller  <hmuller@adobe.com>
20598
20599         [CSS Exclusions] Store ExclusionPolygonEdge vertices in clockwise order
20600         https://bugs.webkit.org/show_bug.cgi?id=100763
20601
20602         Reviewed by Darin Adler.
20603
20604         The ExclusionPolygon's internal logic, notably getVertexIntersectionVertices(),
20605         assumes that ExclusionPolygonEdge vertices are stored in clockwise order.
20606         If this is not true, then we construct the polygon's edges in reverse.
20607
20608         To determine if the vertices are in clockwise order, we compare the slope
20609         of the line between the top,left vertex and its previous vertex, with the
20610         the slope of the line of vertices before and after the top,left vertex.
20611         If the slope of the latter is greater, then top,left vertex is located
20612         to its left, and the vertices are clockwise.
20613
20614         Test: fast/exclusions/shape-inside/shape-inside-counterclockwise-polygon.html
20615
20616         * rendering/ExclusionPolygon.cpp:
20617         (WebCore::determinant): Used to decide if the min vertex is on the left side of the line that passes through its adjacent vertices.
20618         (WebCore::ExclusionPolygon::ExclusionPolygon): If the polygon's vertices are specified in counterclockwise order, construct the edges in reverse.
20619         (WebCore::appendIntervalX): Made this an inline since it was only defined as a function for the sake of clarity.
20620
20621 2012-11-06  Tiancheng Jiang  <tijiang@rim.com>
20622
20623         [BlackBerry] Update BB10 form theme.
20624         https://bugs.webkit.org/show_bug.cgi?id=100760
20625
20626         Reviewed by Rob Buis.
20627
20628         RIM PR 238123
20629         Internal Reviewed by Chris Hutten-Czapski
20630         BB10 selection theme use slice image function to draw selection button,
20631         any border-radius setting other than 0 will make the button corner
20632         clipped. Always set button border-radius: 0 for BB10 theme.
20633
20634         * css/themeBlackBerry.css:
20635         (select[size][multiple]):
20636         (select[size="1"]):
20637
20638 2012-11-06  Elliott Sprehn  <esprehn@chromium.org>
20639
20640         Remove branch from inside RenderObject::view now that renderer() is more expensive
20641         https://bugs.webkit.org/show_bug.cgi?id=101277
20642
20643         Reviewed by Eric Seidel.
20644
20645         It was observed in Bug 100057 that calling renderer() repeatedly now that it has a branch
20646         can be a performance regression. Now that we no longer keep a separate pointer for rare data
20647         in Document, we can use that space for a pointer to the RenderView making RenderObject::view()
20648         faster and removing the branch.
20649
20650         This is a 1% improvement on Parser/html5-full-render.html
20651
20652         This also cleans up the code because it turns out we don't need to have RenderObject::view() in
20653         RenderView.h because we can just call Document::renderView() and not do toRenderView. This makes
20654         it easier to find this method as it exists in the right header file now.
20655
20656         No new tests, this is just a refactor.
20657
20658         * WebCore.exp.in: Remove export of Document::renderView since it's inline now.
20659         * dom/Document.cpp:
20660         (WebCore::Document::Document):
20661         (WebCore::Document::setRenderer):
20662         (WebCore):
20663         * dom/Document.h:
20664         (WebCore::Document::renderView):
20665         (Document):
20666         * rendering/RenderObject.h:
20667         (WebCore::RenderObject::view):
20668         * rendering/RenderView.h:
20669         (WebCore):
20670
20671 2012-11-06  Sheriff Bot  <webkit.review.bot@gmail.com>
20672
20673         Unreviewed, rolling out r133526.
20674         http://trac.webkit.org/changeset/133526
20675         https://bugs.webkit.org/show_bug.cgi?id=101388
20676
20677         May have caused 15% memory regression in Chromium (Requested
20678         by jsbell|gardener on #webkit).
20679
20680         * UseV8.cmake:
20681         * WebCore.gypi:
20682         * bindings/scripts/CodeGeneratorV8.pm:
20683         (GenerateHeader):
20684         (GenerateNormalAttrGetter):
20685         (GenerateConstructorCallback):
20686         (GenerateNamedConstructorCallback):
20687         (GenerateToV8Converters):
20688         (GetDomMapFunction):
20689         (GetDomMapName):
20690         * bindings/scripts/test/V8/V8Float64Array.h:
20691         (WebCore::V8Float64Array::wrap):
20692         * bindings/scripts/test/V8/V8TestActiveDOMObject.h:
20693         (WebCore::V8TestActiveDOMObject::wrap):
20694         * bindings/scripts/test/V8/V8TestCustomNamedGetter.h:
20695         (WebCore::V8TestCustomNamedGetter::wrap):
20696         * bindings/scripts/test/V8/V8TestEventConstructor.h:
20697         (WebCore::V8TestEventConstructor::wrap):
20698         * bindings/scripts/test/V8/V8TestEventTarget.h:
20699         (WebCore::V8TestEventTarget::wrap):
20700         * bindings/scripts/test/V8/V8TestException.h:
20701         (WebCore::V8TestException::wrap):
20702         * bindings/scripts/test/V8/V8TestInterface.h:
20703         (WebCore::V8TestInterface::wrap):
20704         * bindings/scripts/test/V8/V8TestMediaQueryListListener.h:
20705         (WebCore::V8TestMediaQueryListListener::wrap):
20706         * bindings/scripts/test/V8/V8TestNamedConstructor.h:
20707         (WebCore::V8TestNamedConstructor::wrap):
20708         * bindings/scripts/test/V8/V8TestNode.cpp:
20709         (WebCore::V8TestNode::constructorCallback):
20710         (WebCore::V8TestNode::wrapSlow):
20711         * bindings/scripts/test/V8/V8TestObj.cpp:
20712         (WebCore::TestObjV8Internal::readOnlyTestObjAttrAttrGetter):
20713         * bindings/scripts/test/V8/V8TestObj.h:
20714         (WebCore::V8TestObj::wrap):
20715         * bindings/scripts/test/V8/V8TestSerializedScriptValueInterface.h:
20716         (WebCore::V8TestSerializedScriptValueInterface::wrap):
20717         * bindings/v8/DOMDataStore.cpp:
20718         (WebCore::DOMDataStore::DOMDataStore):
20719         (WebCore::DOMDataStore::~DOMDataStore):
20720         (WebCore::DOMDataStore::current):
20721         (WebCore::DOMDataStore::reportMemoryUsage):
20722         * bindings/v8/DOMDataStore.h:
20723         (WebCore::DOMDataStore::domNodeMap):
20724         (WebCore::DOMDataStore::domObjectMap):
20725         (DOMDataStore):
20726         * bindings/v8/DOMWrapperMap.h:
20727         (WebCore):
20728         (DOMWrapperMap):
20729         (WebCore::DOMWrapperMap::~DOMWrapperMap):
20730         (WebCore::DOMWrapperHashMap::remove):
20731         * bindings/v8/DOMWrapperWorld.h:
20732         * bindings/v8/IntrusiveDOMWrapperMap.h: Copied from Source/WebKit/chromium/src/WebScriptController.cpp.
20733         (WebCore):
20734         (IntrusiveDOMWrapperMap):
20735         (WebCore::IntrusiveDOMWrapperMap::weakCallback):
20736         * bindings/v8/ScriptProfiler.cpp:
20737         * bindings/v8/SerializedScriptValue.cpp:
20738         (WebCore::neuterBinding):
20739         * bindings/v8/V8DOMMap.cpp: Copied from Source/WebKit/chromium/src/WebScriptController.cpp.
20740         (WebCore):
20741         (WebCore::getDOMNodeMap):
20742         (WebCore::getDOMObjectMap):
20743         * bindings/v8/V8DOMMap.h: Copied from Source/WebKit/chromium/src/WebScriptController.cpp.
20744         (WebCore):
20745         * bindings/v8/V8DOMWindowShell.cpp:
20746         * bindings/v8/V8DOMWrapper.cpp:
20747         (WebCore::V8DOMWrapper::setJSWrapperForDOMNode):
20748         (WebCore):
20749         * bindings/v8/V8DOMWrapper.h:
20750         (V8DOMWrapper):
20751         (WebCore::V8DOMWrapper::getCachedWrapper):
20752         (WebCore::V8DOMWrapper::setJSWrapperForDOMObject):
20753         * bindings/v8/V8GCController.cpp:
20754         * bindings/v8/V8NPObject.cpp:
20755         * bindings/v8/WorkerContextExecutionProxy.cpp:
20756         * bindings/v8/WorkerScriptController.cpp:
20757         * bindings/v8/custom/V8HTMLImageElementConstructor.cpp:
20758         (WebCore::v8HTMLImageElementConstructorCallback):
20759
20760 2012-11-06  Alexey Proskuryakov  <ap@apple.com>
20761
20762         Some cookie code cleanup
20763         https://bugs.webkit.org/show_bug.cgi?id=101375
20764
20765         Reviewed by Dan Bernstein.
20766
20767         * platform/CookieJar.h: Fixed style. Grouped functions by which storage they operate
20768         on in Mac port, but didn't add explanatory comments yet, because this is different
20769         in some ports.
20770
20771         * platform/mac/CookieJar.mm:
20772         (WebCore): Removed special code for isHTTPOnly, it's present in Foundation in all
20773         supported OS X versions.
20774         (WebCore::filterCookies): Use -isHTTPOnly directly.
20775         (WebCore::cookies): Get rid of a variable for URL, implicit conversion works just as well.
20776         (WebCore::cookieRequestHeaderFieldValue): Ditto.
20777         (WebCore::setCookies): Assert that no more than one cookie was created from one
20778         Set-Cookie header, document.cookie can only be used to set one cookie at a time.
20779         (WebCore::getRawCookies): Removed useless local variables.
20780
20781         * platform/network/CookieStorage.h: Removed an unneeded include, clarified a comment.
20782
20783         * platform/network/HTTPHeaderMap.h: Added a FIXME.
20784
20785 2012-11-06  John Griggs  <jgriggs@rim.com>
20786
20787         Implement MediaPlayerPrivate::didLoadingProgress for BlackBerry platform
20788         https://bugs.webkit.org/show_bug.cgi?id=100378
20789
20790         Reviewed by Eric Carlson.
20791
20792         Implement this method for BlackBerry platform.
20793
20794         New test: LayoutTests/media/progress-events-generated-correctly.html
20795
20796         * platform/graphics/blackberry/MediaPlayerPrivateBlackBerry.cpp:
20797         (WebCore::MediaPlayerPrivate::MediaPlayerPrivate):
20798         (WebCore::MediaPlayerPrivate::didLoadingProgress):
20799         * platform/graphics/blackberry/MediaPlayerPrivateBlackBerry.h:
20800         (MediaPlayerPrivate):
20801
20802 2012-11-06  Adam Barth  <abarth@webkit.org>
20803
20804         DOMImplementation should use ScriptWrappable
20805         https://bugs.webkit.org/show_bug.cgi?id=101279
20806
20807         Reviewed by Eric Seidel.
20808
20809         This patch makes DOMImplementation ScriptWrappable. Both the V8 and JSC
20810         bindings automatically detect the presence of this base class and use
20811         it to optimize getting and setting JavaScript wrappers.
20812
20813         This patch is a 23% progression on Bindings/document-implementation for
20814         the V8 bindings and a 69% progression for the JSC bindings.
20815
20816         * dom/DOMImplementation.h:
20817
20818 2012-11-06  Benjamin Poulain  <benjamin@webkit.org>
20819
20820         Speed up TransformationMatrix::multiply() on modern ARM
20821         https://bugs.webkit.org/show_bug.cgi?id=101084
20822
20823         Reviewed by Gavin Barraclough.
20824
20825         The main improvements are:
20826         -Store the full source matrix in the registers d16 to d31. This way we avoid going
20827          back and forth to memory to use the operands.
20828          Since the full matrix is in register, we can also directly modify the memory of m_matrix,
20829          we no longer need the temporary matrix memcopied at the end.
20830         -Use of LoadMultiple and StoreMultiple to load-store the matrix parameters.
20831         -Use Multiply-Accumulate instead of VMUL followed by VADD. This half the number of instruction.
20832         -On regular ARMv7, using a loop to reuse the same code for each row also improve the performance.
20833
20834         Depending on the hardware, the new code takes 20% to 42% less time than the basic implementation.
20835
20836         * platform/graphics/transforms/TransformationMatrix.cpp:
20837         (WebCore::TransformationMatrix::multiply):
20838         * platform/graphics/transforms/TransformationMatrix.h:
20839         (TransformationMatrix):
20840
20841 2012-11-06  Sheriff Bot  <webkit.review.bot@gmail.com>
20842
20843         Unreviewed, rolling out r133529 and r133562.
20844         http://trac.webkit.org/changeset/133529
20845         http://trac.webkit.org/changeset/133562
20846         https://bugs.webkit.org/show_bug.cgi?id=101371
20847
20848         Caused 15% memory regression on Chromium page cyclers
20849         (Requested by jsbell|gardener on #webkit).
20850
20851         * platform/text/LineBreakIteratorPoolICU.h:
20852         (WebCore::LineBreakIteratorPool::take):
20853         (WebCore::LineBreakIteratorPool::put):
20854         (LineBreakIteratorPool):
20855         * platform/text/TextBreakIterator.cpp:
20856         (WebCore::acquireLineBreakIterator):
20857         * platform/text/TextBreakIterator.h:
20858         (WebCore):
20859         (WebCore::LazyLineBreakIterator::LazyLineBreakIterator):
20860         (WebCore::LazyLineBreakIterator::get):
20861         (WebCore::LazyLineBreakIterator::reset):
20862         (LazyLineBreakIterator):
20863         * platform/text/TextBreakIteratorICU.cpp:
20864         (WebCore::acquireLineBreakIterator):
20865         (WebCore::releaseLineBreakIterator):
20866         * platform/text/gtk/TextBreakIteratorGtk.cpp:
20867         (WebCore::setUpIterator):
20868         (WebCore::acquireLineBreakIterator):
20869         * platform/text/wince/TextBreakIteratorWinCE.cpp:
20870         (WebCore::acquireLineBreakIterator):
20871         * rendering/RenderBlockLineLayout.cpp:
20872         (WebCore::RenderBlock::LineBreaker::nextLineBreak):
20873         * rendering/RenderText.cpp:
20874         (WebCore::RenderText::computePreferredLogicalWidths):
20875         * rendering/RenderText.h:
20876         (WebCore):
20877         * rendering/break_lines.cpp:
20878         (WebCore):
20879         (WebCore::isBreakableSpace):
20880         (WebCore::needsLineBreakIterator):
20881         (WebCore::nextBreakablePosition):
20882         (WebCore::nextBreakablePositionIgnoringNBSP):
20883         * rendering/break_lines.h:
20884         (WebCore):
20885         (WebCore::isBreakable):
20886
20887 2012-11-06  Peter Beverloo  <peter@chromium.org>
20888
20889         [Chromium] Enable the JavaScript i18n API for Android
20890         https://bugs.webkit.org/show_bug.cgi?id=101357
20891
20892         Reviewed by Adam Barth.
20893
20894         Remove the conditional dependency on the v8-i18n API. The library is now
20895         always available in a Chromium for Android checkout.
20896
20897         * WebCore.gyp/WebCore.gyp:
20898
20899 2012-11-06  Adam Barth  <abarth@webkit.org>
20900
20901         ScriptWrappable should work for more than just Node
20902         https://bugs.webkit.org/show_bug.cgi?id=101319
20903
20904         Reviewed by Eric Seidel.
20905
20906         This patch generalizes the inline cached wrapper code path to work with
20907         all subclasses of ScriptWrappable, not just Node.
20908
20909         * bindings/js/JSDOMBinding.h:
20910         (WebCore::setInlineCachedWrapper):
20911         (WebCore::getInlineCachedWrapper):
20912         (WebCore):
20913         (WebCore::clearInlineCachedWrapper):
20914         (WebCore::cacheWrapper):
20915         * bindings/js/JSNodeCustom.h:
20916
20917 2012-11-06  Tiancheng Jiang  <tijiang@rim.com>
20918
20919         [BlackBerry] Update BB10 form theme.
20920         https://bugs.webkit.org/show_bug.cgi?id=100760
20921
20922         Reviewed by Rob Buis.
20923
20924         Revert webkit/ce306dcc698199a6f7ce679daf0a30c25d3a3d43 slider theme
20925         change which break media control and vertical slider.
20926
20927         RIM PR 236993
20928         Internal Reviewed by Jeff Rogers.
20929
20930         * platform/blackberry/RenderThemeBlackBerry.cpp:
20931         (WebCore::RenderThemeBlackBerry::paintSliderTrackRect):
20932         (WebCore::RenderThemeBlackBerry::paintSliderThumb):
20933
20934 2012-11-06  Michael Saboff  <msaboff@apple.com>
20935
20936         canonicalizedTitle() shouldn't convert 8 bit title strings to 16 bit
20937         https://bugs.webkit.org/show_bug.cgi?id=101105
20938
20939         Reviewed by Darin Adler.
20940
20941         Turned canonicalizedTitle() into a templated function based on character type.
20942         Changed call in updateTitle() to check the bitness of the title string to call
20943         the right template flavor of canonicalizedTitle().
20944         Made supporting changes by adding displayBufferModifiedByEncoding(LChar*, ...)
20945         and made TextEncoding::displayBuffer() a templated function as well.
20946
20947         No new tests needed, as functionality is unchanged.
20948
20949         * dom/Document.cpp:
20950         (WebCore::canonicalizedTitle):
20951         (WebCore::Document::updateTitle):
20952         (WebCore::Document::displayBufferModifiedByEncodingInternal):
20953         * dom/Document.h:
20954         (WebCore::Document::displayBufferModifiedByEncoding):
20955         * platform/text/TextEncoding.h:
20956         (TextEncoding):
20957         (WebCore::TextEncoding::displayBuffer):
20958
20959 2012-11-05  Simon Fraser  <simon.fraser@apple.com>
20960
20961         Fix RenderGeometryMap assertion when layers are scrolled during layout
20962         https://bugs.webkit.org/show_bug.cgi?id=101292
20963
20964         Reviewed by Beth Dakin.
20965
20966         When we set RenderLayer scroll positions as part of layout, we don't want
20967         to update compositing layers right away. Updating compositing layers
20968         requires that the entire layer tree has been updated from renderers,
20969         so that the geometry of all RenderLayers can be trusted. When this state
20970         was violated, RenderGeometryMap asserts.
20971         
20972         Fix by bailing from updateCompositingLayersAfterScroll() if FrameView
20973         tells us that we're doing layout. A full update of the compositing layers
20974         will happen later anyway.
20975
20976         Test: compositing/geometry/geometry-map-scroll-during-layout-assertion.html
20977
20978         * rendering/RenderLayer.cpp:
20979         (WebCore::frameViewFromLayer):
20980         (WebCore::RenderLayer::updateCompositingLayersAfterScroll):
20981
20982 2012-11-06  Michael Saboff  <msaboff@apple.com>
20983
20984         quoteCSSString() always creates a 16 bit string
20985         https://bugs.webkit.org/show_bug.cgi?id=101004
20986
20987         Reviewed by Darin Adler.
20988
20989         Added a new templated helper based on character type from the logic of quoteCSSString() to process
20990         the argument string based on its native bitness.
20991
20992         Functionality covered by existing tests.
20993
20994         * css/CSSParser.cpp:
20995         (WebCore::quoteCSSStringInternal):
20996         (WebCore::quoteCSSString):
20997
20998 2012-11-06  Andras Becsi  <andras.becsi@digia.com>
20999
21000         [Qt][WK2] Fit-to-width broken on pages with viewport meta tag
21001         https://bugs.webkit.org/show_bug.cgi?id=99715
21002
21003         Reviewed by Jocelyn Turcotte.
21004
21005         Add a bool that indicates if the content had an explicit
21006         initial-scale in the viewport meta tag.
21007
21008         * dom/ViewportArguments.cpp:
21009         (WebCore::computeViewportAttributes):
21010         * dom/ViewportArguments.h:
21011         (ViewportAttributes):
21012
21013 2012-11-06  Mike West  <mkwst@chromium.org>
21014
21015         CSP 1.1: Tweak the script interface to match the spec.
21016         https://bugs.webkit.org/show_bug.cgi?id=101321
21017
21018         Reviewed by Adam Barth.
21019
21020        This patch brings WebKit in line with the changes made to the spec in
21021        https://dvcs.w3.org/hg/content-security-policy/rev/5a29424a37d4.
21022        Specifically, the following:
21023
21024        - Renamed 'document.SecurityPolicy' to 'document.securityPolicy'
21025        - Converted the following to read-only boolean attributes:
21026          - 'allowsEval'
21027          - 'allowsInlineScript'
21028          - 'allowsInlineStyle'
21029          - 'isActive'
21030
21031         These changes only have effect for ports with CSP_NEXT enabled.
21032
21033         Tests: http/tests/security/contentSecurityPolicy/1.1/securitypolicy-allowinlinescript.html
21034                http/tests/security/contentSecurityPolicy/1.1/securitypolicy-allowinlinestyle.html
21035
21036         * dom/Document.idl:
21037         * page/DOMSecurityPolicy.idl:
21038             Tweaking the IDL files to match the new definition of the
21039             functionlity in the spec.
21040
21041 2012-11-06  Andrey Lushnikov  <lushnikov@google.com>
21042
21043         Added console.clear() method
21044
21045         Web Inspector: add console.clear()
21046         https://bugs.webkit.org/show_bug.cgi?id=101021
21047
21048         Reviewed by Vsevolod Vlasov.
21049
21050         Adds native implementation of console.clear
21051
21052         Test: inspector/console/console-clear-function.html
21053
21054         * English.lproj/localizedStrings.js: Adds 'Console was cleared' string
21055         * inspector/ConsoleMessage.cpp:
21056         (WebCore::messageTypeValue): Adds ClearMessageType
21057         * inspector/Inspector.json:
21058         * inspector/InspectorConsoleAgent.cpp:
21059         (WebCore::InspectorConsoleAgent::addMessageToConsole):
21060         * inspector/front-end/ConsoleMessage.js:
21061         (WebInspector.ConsoleMessageImpl.prototype._formatMessage): Display strategy for "clear" message
21062         * inspector/front-end/ConsoleModel.js:
21063         * inspector/front-end/inspector.css:
21064         (.console-info): Adds style for the 'console was cleared' message
21065         * page/Console.cpp: backend binging for console.clear()
21066         (WebCore::Console::clear):
21067         (WebCore):
21068         * page/Console.h:
21069         (Console):
21070         * page/Console.idl: Adds 'clear' message to protocol
21071         * page/ConsoleTypes.h:
21072
21073 2012-11-06  Aaron Colwell  <acolwell@chromium.org>
21074
21075         Heap-buffer-overflow in WebCore::TextTrackCueList::add
21076         https://bugs.webkit.org/show_bug.cgi?id=101018
21077
21078         Reviewed by Eric Carlson.
21079
21080         Added an extra check to avoid using a negative array index when a cue
21081         is added to the beginning of the list.
21082
21083         Test case added to LayoutTests/media/track/track-add-remove-cue.html.
21084
21085         * html/track/TextTrackCueList.cpp:
21086         (WebCore::TextTrackCueList::add):
21087
21088 2012-11-06  Aaron Colwell  <acolwell@chromium.org>
21089
21090         Regression(r132681): Heap-use-after-free in WebCore::RenderTextTrackCue::layout
21091         https://bugs.webkit.org/show_bug.cgi?id=100981
21092
21093         Reviewed by Eric Carlson.
21094
21095         Fixing a TextTrackCue use after free bug. textTrackRemoveCues() needs to be called when
21096         an HTMLTrackElement is removed from an HTMLMediaElement so that references to
21097         TextTrackCues are removed from m_cueTree.
21098
21099         Test: media/track/track-remove-by-setting-innerHTML.html
21100
21101         * html/HTMLMediaElement.cpp:
21102         (WebCore::HTMLMediaElement::willRemoveTrack):
21103
21104 2012-10-23  Stephen White  <senorblanco@chromium.org>
21105
21106         [skia] Implement reference (url) filters on composited layers.
21107         https://bugs.webkit.org/show_bug.cgi?id=100142
21108
21109         Reviewed by James Robinson.
21110
21111         Covered by css3/filters/effect-reference-hw.html
21112
21113         * WebCore.gyp/WebCore.gyp:
21114         * WebCore.gypi:
21115         Add new files.
21116         * WebCore.xcodeproj/project.pbxproj:
21117         Mark FilterEffect.h as "private".
21118         * platform/graphics/chromium/GraphicsLayerChromium.cpp:
21119         (WebCore::GraphicsLayerChromium::setFilters):
21120         Use the new SkImageFilter builder and setLayer() infrastructure, but
21121         only if there's a reference filter in the chain.
21122         * platform/graphics/filters/FEBlend.h:
21123         * platform/graphics/filters/FEColorMatrix.h:
21124         * platform/graphics/filters/FEGaussianBlur.h:
21125         * platform/graphics/filters/FELighting.h:
21126         * platform/graphics/filters/FEMorphology.h:
21127         * platform/graphics/filters/FilterEffect.h:
21128         (WebCore::FilterEffect::createImageFilter):
21129         Add createImageFilter() factory function for building SkImageFilters.
21130         * platform/graphics/filters/FilterOperation.h:
21131         (WebCore::FilterOperation::ReferenceFilterOperation::filterEffect):
21132         (WebCore::FilterOperation::ReferenceFilterOperation::setFilterEffect):
21133         Add a FilterEffect member to ReferenceFilterOperation, and accessors
21134         for it.
21135         * platform/graphics/filters/skia/FEBlendSkia.cpp:
21136         (WebCore::FEBlend::createImageFilter):
21137         Implement SkImageFilter building for FEBlend filter.
21138         * platform/graphics/filters/skia/FEColorMatrixSkia.cpp:
21139         (WebCore::createColorFilter):
21140         (WebCore::FEColorMatrix::platformApplySkia):
21141         Refactor creation of SkColorFilter from an FEColorMatrix filter.
21142         (WebCore::FEColorMatrix::createImageFilter):
21143         Implement SkImageFilter building for FEColorMatrix filter.
21144         * platform/graphics/filters/skia/FEGaussianBlurSkia.cpp:
21145         (WebCore::FEGaussianBlur::createImageFilter):
21146         Implement SkImageFilter building for FEGaussianBlur filter.
21147         * platform/graphics/filters/skia/FELightingSkia.cpp:
21148         (WebCore::FELighting::createImageFilter):
21149         Implement SkImageFilter building for FELighting filters.
21150         * platform/graphics/filters/skia/FEMorphologySkia.cpp:
21151         (WebCore::FEMorphology::createImageFilter):
21152         Implement SkImageFilter building for FEMorphology filter.
21153         * platform/graphics/filters/skia/SkiaImageFilterBuilder.cpp: Added.
21154         (WebCore::SkiaImageFilterBuilder::SkiaImageFilterBuilder):
21155         (WebCore::SkiaImageFilterBuilder::build):
21156         * platform/graphics/filters/skia/SkiaImageFilterBuilder.h:
21157         Implement new helper class for building an SkImageFilter DAG from
21158         a FilterEffect DAG.  Can also build from FilterOperations list.
21159         * rendering/FilterEffectRenderer.cpp:
21160         (WebCore::FilterEffectRenderer::build):
21161         When building FilterEffects from a reference filter, also store the
21162         generated DAG on the ReferenceFilterOperation itself.
21163         * rendering/RenderLayer.cpp:
21164         (WebCore::RenderLayer::updateOrRemoveFilterEffect):
21165         Even when in composited mode, if there's a reference filter in the 
21166         chain, build the FilterEffect DAG from it.
21167
21168 2012-11-06  Max Feil  <mfeil@rim.com>
21169
21170         [BlackBerry] Automatically go fullscreen on video play
21171         https://bugs.webkit.org/show_bug.cgi?id=101100
21172
21173         Reviewed by Eric Carlson.
21174
21175         There is a requirement to have HTML5 video automatically enter
21176         fullscreen when a video starts playing (PR131774). This change
21177         implements this feature, with restrictions. The main restriction
21178         is adherence to WebKit's philosophy of only entering fullscreen
21179         due to a user gesture. This is important in order to avoid
21180         pop-up advertisements and other unwanted fullscreen content.
21181         One consequence of this is that video elements with the autoplay
21182         attribute will not automatically enter fullscreen.
21183
21184         Other caveats:
21185         - This feature applies only to "small screen" devices where
21186         automatically going fullscreen makes more sense.
21187         - Fullscreen will only be entered automatically when the
21188         video is played from the beginning (current time is zero).
21189         It is assumed that if the user is resuming play from a paused
21190         state and is not in fullscreen mode, then they exited fullscreen
21191         mode intentionally.
21192
21193         Test: platform/blackberry/media/video-automatic-fullscreen.html
21194
21195         * html/HTMLMediaElement.cpp:
21196         (WebCore::HTMLMediaElement::mediaPlayerEnterFullscreen):
21197         (WebCore):
21198         (WebCore::HTMLMediaElement::mediaPlayerIsFullscreen):
21199         (WebCore::HTMLMediaElement::mediaPlayerIsFullscreenPermitted):
21200         * html/HTMLMediaElement.h:
21201         (HTMLMediaElement):
21202         * platform/graphics/MediaPlayer.h:
21203         (WebCore::MediaPlayerClient::mediaPlayerEnterFullscreen):
21204         (WebCore::MediaPlayerClient::mediaPlayerIsFullscreen):
21205         (WebCore::MediaPlayerClient::mediaPlayerIsFullscreenPermitted):
21206         * platform/graphics/blackberry/MediaPlayerPrivateBlackBerry.cpp:
21207         (WebCore::MediaPlayerPrivate::play):
21208         (WebCore::MediaPlayerPrivate::waitMetadataTimerFired):
21209         (WebCore::MediaPlayerPrivate::conditionallyGoFullscreenAfterPlay):
21210         (WebCore):
21211         * platform/graphics/blackberry/MediaPlayerPrivateBlackBerry.h:
21212         (MediaPlayerPrivate):
21213
21214 2012-11-06  Grzegorz Czajkowski  <g.czajkowski@samsung.com>
21215
21216         [WK2][EFL][GTK] early return of checkSpellingOfString treats correct words as misspelled
21217         https://bugs.webkit.org/show_bug.cgi?id=101215
21218
21219         Reviewed by Gustavo Noronha Silva.
21220
21221         Save the misspelled location and length of the string to the default values (-1, 0)
21222         at the beginning of the checkSpellingOfString method.
21223         It assumes that the words are spelled correctly and early return of method doesn't
21224         cause assertions in findFirstMisspelling (WebCore/editing/TextCheckingHelper.cpp).
21225
21226         * platform/text/enchant/TextCheckerEnchant.cpp:
21227         (TextCheckerEnchant::checkSpellingOfString):
21228
21229 2012-11-06  Huang Dongsung  <luxtella@company100.net>
21230
21231         [TexMap] Remove unused textures in the texture pool.
21232         https://bugs.webkit.org/show_bug.cgi?id=100706
21233
21234         Reviewed by Noam Rosenthal.
21235
21236         Currently, we do not remove textures in the texture pool of
21237         TextureMapper. The texture pool is destroyed when TextureMapper is
21238         destroyed. It means the texture pool consumes texture memory until its
21239         destruction. This patch removes textures if the textures have been not
21240         used in 3 seconds as LayerTreeCoordinator manages UpdateAtlases.
21241
21242         Changing cache policy is not testable in layout tests.
21243
21244         * platform/graphics/texmap/TextureMapper.cpp:
21245         (WebCore::BitmapTexturePoolEntry::BitmapTexturePoolEntry):
21246         (WebCore::BitmapTexturePoolEntry::markUsed):
21247         (WebCore::BitmapTexturePoolEntry::compareTimeLastUsed):
21248         (BitmapTexturePoolEntry):
21249         (WebCore):
21250         (BitmapTexturePool):
21251         (WebCore::BitmapTexturePool::BitmapTexturePool):
21252         (WebCore::BitmapTexturePool::scheduleReleaseUnusedTextures):
21253         (WebCore::BitmapTexturePool::releaseUnusedTexturesTimerFired):
21254         (WebCore::BitmapTexturePool::acquireTexture):
21255         (WebCore::TextureMapper::acquireTextureFromPool):
21256         (WebCore::TextureMapper::TextureMapper):
21257         (WebCore::TextureMapper::~TextureMapper):
21258         * platform/graphics/texmap/TextureMapper.h:
21259         (WebCore):
21260         (TextureMapper):
21261
21262 2012-11-02  Ilya Tikhonovsky  <loislo@chromium.org>
21263
21264         Web Inspector: NMI instrument CachedMetadata. It uses ~300k on plus.google.com
21265         https://bugs.webkit.org/show_bug.cgi?id=101067
21266
21267         Reviewed by Yury Semikhatsky.
21268
21269         Plain vanilla instrumentation for CachedMetadata class.
21270
21271         * CMakeLists.txt:
21272         * GNUmakefile.list.am:
21273         * Target.pri:
21274         * WebCore.gypi:
21275         * WebCore.vcproj/WebCore.vcproj:
21276         * WebCore.xcodeproj/project.pbxproj:
21277         * loader/CachedMetadata.cpp: Added.
21278         (WebCore):
21279         (WebCore::CachedMetadata::reportMemoryUsage):
21280         * loader/CachedMetadata.h:
21281         (CachedMetadata):
21282
21283 2012-11-06  Alexei Filippov  <alph@chromium.org>
21284
21285         Web Inspector: report physical memory really committed for JS heap in NMI
21286         https://bugs.webkit.org/show_bug.cgi?id=101335
21287
21288         Some OSes (e.g. Linux) perform lazy commits of requested memory.
21289         Because of that the committed memory may not retain any physical
21290         memory until the very first access to the committed chunk.
21291         That led to JS heap reported more physical memory than was currently
21292         in use.
21293
21294         Reviewed by Vsevolod Vlasov.
21295
21296         * bindings/v8/ScriptGCEvent.cpp:
21297         (WebCore::ScriptGCEvent::getHeapSize):
21298
21299 2012-11-06  Vsevolod Vlasov  <vsevik@chromium.org>
21300
21301         Web Inspector: Breakpoint is not removed when it was set in non-formatted mode and then removed while in formatted mode.
21302         https://bugs.webkit.org/show_bug.cgi?id=100595
21303
21304         Reviewed by Yury Semikhatsky.
21305
21306         Breakpoints in storage are now updated/removed by file name saved from primary location when they were created,
21307         not by the name returned by UISourceCode (as this one could change when UISourceCode is formatted).
21308         SourceFileId is now used across BreakpointManager to specify file name.
21309         And breakpointStorageId is now used to specify (fileName, lineNumber) pair.
21310
21311         * inspector/front-end/BreakpointManager.js:
21312         (WebInspector.BreakpointManager.sourceFileId):
21313         (WebInspector.BreakpointManager.prototype._restoreBreakpoints):
21314         (WebInspector.BreakpointManager.prototype._uiSourceCodeRemoved): Removed redundant check.
21315         (WebInspector.BreakpointManager.prototype.breakpointLocationsForUISourceCode):
21316         (WebInspector.BreakpointManager.Breakpoint):
21317         (WebInspector.BreakpointManager.Breakpoint.prototype._breakpointStorageId):
21318         (WebInspector.BreakpointManager.Storage.prototype._restoreBreakpoints):
21319         (set WebInspector.BreakpointManager.Storage.Item):
21320
21321 2012-11-06  Keishi Hattori  <keishi@webkit.org>
21322
21323         The "Rect" class in WebCore/Resources/pagepopups/pickerCommon.js should be renamed
21324         https://bugs.webkit.org/show_bug.cgi?id=101304
21325
21326         Reviewed by Kent Tamura.
21327
21328         The name Rect conflicts with CSS Rect.
21329
21330         No new tests. Just renaming.
21331
21332         * Resources/pagepopups/pickerCommon.js:
21333         (Rectangle): Renamed from Rect.
21334         (Rectangle.prototype.toString):
21335         (Rectangle.intersection):
21336         (adjustWindowRect):
21337         (hideWindow):
21338
21339 2012-11-06  Kentaro Hara  <haraken@chromium.org>
21340
21341         Replace setDOMWrapper(wrapper, 0) with resetDOMWrapper(wrapper)
21342         https://bugs.webkit.org/show_bug.cgi?id=101190
21343
21344         Reviewed by Adam Barth.
21345
21346         To guarantee that we never stores NULL pointers to V8 internal
21347         fields, we want to insert ASSERT()s to setDOMWrapper().
21348         This patch replaces setDOMWrapper() that intentionally
21349         passes NULL pointers with clearDOMWrapper().
21350
21351         No tests. No change in behavior.
21352
21353         * bindings/v8/V8DOMWrapper.h:
21354         (V8DOMWrapper):
21355         (WebCore::V8DOMWrapper::clearDOMWrapper):
21356         * bindings/v8/V8NPObject.cpp:
21357         (WebCore::forgetV8ObjectForNPObject):
21358
21359 2012-11-06  Vsevolod Vlasov  <vsevik@chromium.org>
21360
21361         Web Inspector: Displayed name/path of urls in network tab of dev tools is inconsistent
21362         https://bugs.webkit.org/show_bug.cgi?id=101064
21363
21364         Reviewed by Yury Semikhatsky.
21365
21366         Extracted some generic methods from ParsedURL displayName getters (about:blank and data url handlers).
21367         Implemented consistent name() and path() method on NetworkRequest based on ParsedURL.
21368         NetworkPanel now uses name() and path() methods on NetworkRequest to show requests and search for them.
21369
21370         Test: http/tests/inspector/network/request-name-path.html
21371
21372         * inspector/front-end/NetworkPanel.js:
21373         (WebInspector.NetworkLogView.prototype._matchRequest):
21374         (WebInspector.NetworkLogView.prototype._highlightMatchedRequests):
21375         (WebInspector.NetworkLogView.prototype.performFilter):
21376         (WebInspector.NetworkDataGridNode.prototype._refreshNameCell):
21377         (WebInspector.NetworkDataGridNode.NameComparator):
21378         * inspector/front-end/NetworkRequest.js:
21379         (WebInspector.NetworkRequest.prototype.set url):
21380         (WebInspector.NetworkRequest.prototype.name):
21381         (WebInspector.NetworkRequest.prototype.path):
21382         (WebInspector.NetworkRequest.prototype._parseNameAndPathFromURL):
21383         * inspector/front-end/ParsedURL.js:
21384         (WebInspector.ParsedURL):
21385         (WebInspector.ParsedURL.prototype.get displayName):
21386         (WebInspector.ParsedURL.prototype.dataURLDisplayName):
21387         (WebInspector.ParsedURL.prototype.isAboutBlank):
21388         (WebInspector.ParsedURL.prototype.isDataURL):
21389
21390 2012-11-05  Pavel Feldman  <pfeldman@chromium.org>
21391
21392         Web Inspector: make Spectrum and Popover WebInspector.Views in order to enable reuse
21393         https://bugs.webkit.org/show_bug.cgi?id=101200
21394
21395         Reviewed by Yury Semikhatsky.
21396
21397         - Split Spectrum and SpectrumPopoverHelper (first is a component, second is controller)
21398         - Made Popover a root view in order to enable lazy style loading for potential subviews (such as Spectrum)
21399         - Extracted spectrum's css into a separate file
21400
21401         * WebCore.gypi:
21402         * WebCore.vcproj/WebCore.vcproj:
21403         * inspector/front-end/DOMExtension.js:
21404         (Element.prototype.positionAt):
21405         (Size):
21406         (Element.prototype.measurePreferredSize):
21407         * inspector/front-end/HeapSnapshotView.js:
21408         (WebInspector.HeapSnapshotView.prototype.willHide):
21409         (WebInspector.HeapSnapshotView.prototype._helpClicked):
21410         * inspector/front-end/Popover.js:
21411         (WebInspector.Popover):
21412         (WebInspector.Popover.prototype.show):
21413         (WebInspector.Popover.prototype.showView):
21414         (WebInspector.Popover.prototype._innerShow):
21415         (WebInspector.Popover.prototype.hide):
21416         (WebInspector.Popover.prototype.dispose):
21417         (WebInspector.Popover.prototype._positionElement):
21418         * inspector/front-end/Spectrum.js:
21419         (WebInspector.Spectrum.alphaDrag):
21420         (WebInspector.Spectrum):
21421         (WebInspector.Spectrum.prototype.wasShown):
21422         (WebInspector.SpectrumPopupHelper):
21423         (WebInspector.SpectrumPopupHelper.prototype.spectrum):
21424         (WebInspector.SpectrumPopupHelper.prototype.toggle):
21425         (WebInspector.SpectrumPopupHelper.prototype.show):
21426         (WebInspector.SpectrumPopupHelper.prototype.reposition):
21427         (WebInspector.SpectrumPopupHelper.prototype.hide):
21428         (WebInspector.ColorSwatch):
21429         (WebInspector.ColorSwatch.prototype.setColorString):
21430         * inspector/front-end/StylesSidebarPane.js:
21431         (WebInspector.StylesSidebarPane):
21432         (WebInspector.StylesSidebarPane.prototype.update):
21433         (WebInspector.StylesSidebarPane.prototype.willHide):
21434         (WebInspector.StylePropertyTreeElement.prototype.updateTitle.):
21435         * inspector/front-end/View.js:
21436         (WebInspector.View.prototype.measurePreferredSize):
21437         * inspector/front-end/WebKit.qrc:
21438         * inspector/front-end/elementsPanel.css:
21439         (.image-preview-container img):
21440         * inspector/front-end/inspector.css:
21441         (.swatch):
21442         (.swatch-inner):
21443         (.swatch-inner:hover):
21444         * inspector/front-end/spectrum.css: Added.
21445         (.spectrum-container):
21446         (.spectrum-top):
21447         (.spectrum-color):
21448         (.spectrum-display-value):
21449         (.spectrum-hue):
21450         (.spectrum-fill):
21451         (.spectrum-range-container):
21452         (.spectrum-range-container *):
21453         (.spectrum-range-container label):
21454         (.spectrum-range-container input):
21455         (.spectrum-dragger, .spectrum-slider):
21456         (.spectrum-sat):
21457         (.spectrum-val):
21458         (.spectrum-dragger):
21459         (.spectrum-slider):
21460         (.spectrum-container .swatch):
21461
21462 2012-11-06  Takashi Sakamoto  <tasak@google.com>
21463
21464         removeAttribute('style') not working in certain circumstances
21465         https://bugs.webkit.org/show_bug.cgi?id=99295
21466
21467         Reviewed by Ryosuke Niwa.
21468
21469         After web developers did style.XXXX=YYYY for some element, the inline
21470         style should be always removable by using "removeAttribute('style')".
21471         Currently it depends on whether web developers invokes
21472         getAttribute('style'), setAttribute('style), and so on. E.g. once they
21473         invoke getAttribute('style'), removeAttribute('style') works. This is
21474         very confusing behavior.
21475         Looking at Firefox browser, removeAttribute('style') always removes
21476         all inline styles.
21477
21478         Test: fast/css/remove-attribute-style.html
21479
21480         * css/StylePropertySet.cpp:
21481         (WebCore::StylePropertySet::clear):
21482         Added a new method to remove all style properties.
21483         (WebCore):
21484         * css/StylePropertySet.h:
21485         (StylePropertySet):
21486         * dom/Element.cpp:
21487         (WebCore::Element::removeAttribute):
21488         If 'style' is given but the element has no style attribute, the old
21489         code did nothing. However, if the element is styled element and has any
21490         inline styles, the inline styles should be removed. So invoke
21491         StyledElement::removeAllInlineStyleProperties and if any inline styles
21492         are removed, invoke style recalc, too.
21493         * dom/StyledElement.cpp:
21494         (WebCore::StyledElement::removeAllInlineStyleProperties):
21495         Added a new method to remove all inline style propeties. If any inline
21496         style is removed, invoke inlineStyleChanged() to force style recalc.
21497         (WebCore):
21498         * dom/StyledElement.h:
21499         (StyledElement):
21500
21501 2012-11-06  Alexei Filippov  <alph@chromium.org>
21502
21503         Web Inspector: dim size bar for expanded item in native memory snapshot grid
21504         https://bugs.webkit.org/show_bug.cgi?id=101062
21505
21506         Reviewed by Yury Semikhatsky.
21507
21508         * inspector/front-end/nativeMemoryProfiler.css:
21509         (.native-snapshot-view .data-grid .expanded div.size-bar):
21510
21511 2012-11-06  Shinya Kawanaka  <shinyak@chromium.org>
21512
21513         [Shadow] Using isUnknownPseudoElement() for shadow pseudo id seems confusing
21514         https://bugs.webkit.org/show_bug.cgi?id=100826
21515
21516         Reviewed by Hajime Morita.
21517
21518         We used isUnknownPseudoElement() for these 3 meanings: 1) the element is a custom pseudo-element (starting with 'x-'),
21519         2) the element is a webkit custom pseudo-element (starting with '-webkit-'), and 3) the element has an unknown type.
21520         We would like to distinguish them when parsing CSSSelector types. Also, we disable using (3) type for using
21521         shadowPseudoId.
21522
21523         In this patch, we allow using WebKitCustomPseudoElement in AuthorShadowRoot, and CustomPseudoElement in
21524         UAShadowRoot. However, we will disable them later.
21525
21526         Test: fast/dom/shadow/shadow-pseudo-id.html
21527
21528         * css/CSSGrammar.y.in: Now we can discard UNKNOWN type. It should not match anything.
21529         * css/CSSParser.cpp:
21530         (WebCore::CSSParser::updateSpecifiersWithElementName):
21531         (WebCore::CSSParser::updateSpecifiers):
21532         * css/CSSParserValues.h:
21533         (WebCore::CSSParserSelector::isCustomPseudoElement):
21534         (CSSParserSelector):
21535         * css/CSSSelector.cpp:
21536         (WebCore::CSSSelector::pseudoId):
21537         (WebCore::CSSSelector::parsePseudoType):
21538         (WebCore::CSSSelector::isCustomPseudoType): Returns true if the type is PseudoUserAgentCustomElement or PseudoWebKitCustomElement.
21539         (WebCore::CSSSelector::extractPseudoType):
21540         * css/CSSSelector.h:
21541         (CSSSelector):
21542         (WebCore::CSSSelector::isCustomPseudoElement):
21543         (WebCore):
21544         * css/CSSSelectorList.cpp:
21545         (WebCore::SelectorHasInvalidSelectorFunctor::operator()): We will reject all selectors which were judged as
21546         UNKNOWN before. i.e. It contians all three types for now.
21547         (WebCore::CSSSelectorList::hasInvalidSelector): Renamed.
21548         * css/CSSSelectorList.h:
21549         (CSSSelectorList):
21550         * css/RuleSet.cpp:
21551         (WebCore::RuleSet::addRule):
21552         * css/SelectorChecker.cpp:
21553         (WebCore::SelectorChecker::checkSelector):
21554         * dom/Element.cpp:
21555         (WebCore::Element::setShadowPseudoId):
21556         * dom/SelectorQuery.cpp:
21557         (WebCore::SelectorQueryCache::add):
21558
21559 2012-11-06  Shinya Kawanaka  <shinyak@chromium.org>
21560
21561         [Shadow] ShadowRoot should know the existence of elements having ElementShadow.
21562         https://bugs.webkit.org/show_bug.cgi?id=100922
21563
21564         Reviewed by Hajime Morita.
21565
21566         We count the elements having ElementShadow in ShadowRoot. This is a prepation patch for to solve Bug 100451.
21567         We have a count-up and count-down login in ShadowRoot::insertedInto and ShadowRoot::removedFrom.
21568
21569         For performance reason, we have a flag that an element should be unregistered in ShadowRoot.
21570
21571         Test: fast/dom/shadow/has-elementshadow.html
21572
21573         * dom/ShadowRoot.cpp:
21574         (WebCore::ShadowRoot::ShadowRoot):
21575         (WebCore::ShadowRoot::insertedInto): Count up the number of elements having ElementShadow. ElementShadow
21576         is created only when the oldest ShadowRoot is created, we only count up only when this ShadowRoot is oldest.
21577         (WebCore):
21578         (WebCore::ShadowRoot::removedFrom): Count down if we used this ShadowRoot for count up.
21579         * dom/ShadowRoot.h:
21580         (ShadowRoot):
21581         (WebCore::ShadowRoot::registerElementShadow):
21582         (WebCore::ShadowRoot::unregisterElementShadow):
21583         (WebCore::ShadowRoot::hasElementShadow):
21584         (WebCore::ShadowRoot::countElementShadow):
21585         * testing/Internals.cpp:
21586         (WebCore::Internals::countElementShadow):
21587         (WebCore):
21588         * testing/Internals.h:
21589         (Internals):
21590         * testing/Internals.idl:
21591
21592 2012-11-06  Pavel Feldman  <pfeldman@chromium.org>
21593
21594         Web Inspector: show "debugging session terminated" message when remote debuggign connection is closed unexpectedly.
21595         https://bugs.webkit.org/show_bug.cgi?id=101030
21596
21597         Reviewed by Vsevolod Vlasov.
21598
21599         * inspector/front-end/inspector.js:
21600         (WebInspector.loaded.WebInspector.socket.onclose):
21601         (WebInspector.loaded):
21602         (WebInspector.detached):
21603
21604 2012-11-06  Alexander Pavlov  <apavlov@chromium.org>
21605
21606         Web Inspector: [Overrides] Add Chrome for Android and Firefox for Android user agent strings
21607         https://bugs.webkit.org/show_bug.cgi?id=100666
21608
21609         Reviewed by Pavel Feldman.
21610
21611         * inspector/front-end/SettingsScreen.js:
21612         (WebInspector.UserAgentSettingsTab.prototype._createUserAgentSelectRowElement.get const):
21613
21614 2012-11-02  Yury Semikhatsky  <yurys@chromium.org>
21615
21616         Web Inspector: JavaScript web workers debugging crashes
21617         https://bugs.webkit.org/show_bug.cgi?id=101065
21618
21619         Reviewed by Alexander Pavlov.
21620
21621         Clear m_pageInspector when page inspector instance is deleted.
21622         Disable worker inspection when front-end disconnects.
21623
21624         Test: inspector-protocol/debugger-terminate-dedicated-worker-while-paused.html
21625
21626         * inspector/InspectorWorkerAgent.cpp:
21627         (WebCore::InspectorWorkerAgent::WorkerFrontendChannel::~WorkerFrontendChannel): notify
21628         WorkerMessagingProxy so that it can clear pointer to the channel.
21629
21630 2012-11-06  Nikita Vasilyev  <me@elv1s.ru>
21631
21632         Web Inspector: Console: wrap long URLs
21633         https://bugs.webkit.org/show_bug.cgi?id=100970
21634
21635         Reviewed by Yury Semikhatsky.
21636
21637         * inspector/front-end/inspector.css:
21638         (.console-message-url):
21639
21640 2012-11-05  Keishi Hattori  <keishi@webkit.org>
21641
21642         Introduce Day class to calendar picker
21643         https://bugs.webkit.org/show_bug.cgi?id=101194
21644
21645         Reviewed by Kent Tamura.
21646
21647         Introducing Day class so day, week, and month can all be abstracted. To
21648         solve some of the complexity around which months to show, I made
21649         CalendarPicker in charge of it. This also made YearMonthController and
21650         DaysTable independent of each other.
21651
21652         No new tests. Covered by existing calendar-picker-*.html tests.
21653
21654         * Resources/pagepopups/calendarPicker.js:
21655         (createUTCDate): Allow negative month or date.
21656         (parseDateString): Will return Day or Month depending on string format.
21657         (Day): Represents a day.
21658         (Day.parse): Parse yyyy-mm-dd.
21659         (Day.createFromDate): Creates a Day that contains a datetime.
21660         (Day.createFromToday): Creates Day for today. A method with the same name will be added to Week and Month in the future.
21661         (Day.prototype.equals): Returns true if they are the same.
21662         (Day.prototype.previous): Returns the previous day.
21663         (Day.prototype.next): Returns the next day.
21664         (Day.prototype.startDate): Returns the datetime that is the start of this day.
21665         (Day.prototype.endDate): Returns the datetime that is the start of this day.
21666         (Day.prototype.valueOf): Returns the milliseconds since epoch.
21667         (Day.prototype.toString): Returns an ISO date string.
21668         (Month): Fix bug in calculating month from value.
21669         (Month.prototype.endDate): Use Day.Maximum.
21670         (CalendarPicker): Added _currentMonth. yearMonthController and daysTable can be private members now.
21671         (CalendarPicker.prototype._layout):
21672         (CalendarPicker.prototype.handleToday): Use Day.createFromToday.
21673         (CalendarPicker.prototype.shouldShowMonth): Returns true if the month should be shown.
21674         (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.
21675         (CalendarPicker.prototype.currentMonth): Returns the current month that is shown.
21676         (YearMonthController): Removed _currentMonth.
21677         (YearMonthController.prototype.attachTo):
21678         (YearMonthController.prototype.setMonth):
21679         (YearMonthController.prototype._handleYearMonthChange): Use CalendarPicker.showMonth
21680         (YearMonthController.prototype.moveRelatively):
21681         (DaysTable):
21682         (CalendarPicker.prototype._stepMismatch): Made private.
21683         (CalendarPicker.prototype._outOfRange): Made private.
21684         (CalendarPicker.prototype.isValidDate): Take Day or Month instead of milliseconds since epoch.
21685         (DaysTable.prototype._renderMonth):
21686         (DaysTable.prototype.navigateToMonth): Shows a given month. Can use animation and leave the selection position as is.
21687         (DaysTable.prototype.selectRange): Select a range.
21688         (DaysTable.prototype._maybeSetPreviousMonth):
21689         (DaysTable.prototype._maybeSetNextMonth):
21690         (DaysTable.prototype._handleKey):
21691         (CalendarPicker.prototype._handleBodyKeyDown):
21692
21693 2012-11-05  Kenichi Ishibashi  <bashi@chromium.org>
21694
21695         Unreviewed, Adding #if PLATFORM(CHROMIUM) for the fix of
21696         https://bugs.webkit.org/show_bug.cgi?id=101009
21697
21698         This fix requires the most recent version of harfbuzz-ng.
21699         EFL port uses version 0.9.2, which doesn't have the fix.
21700
21701         * platform/graphics/harfbuzz/ng/HarfBuzzShaper.cpp:
21702         (WebCore::HarfBuzzShaper::shapeHarfBuzzRuns):
21703
21704 2012-11-05  Glenn Adams  <glenn@skynav.com>
21705
21706         Ensure acquireLineBreakIterator signature consistency on non-ICU ports.
21707         https://bugs.webkit.org/show_bug.cgi?id=101281
21708
21709         Reviewed by Ryosuke Niwa.
21710
21711         Fix (newly) inconsistent signature for acquireLineBreakIterator for non-ICU ports
21712         caused by http://trac.webkit.org/changeset/133529.
21713
21714         See new tests added from https://bugs.webkit.org/show_bug.cgi?id=89235.
21715
21716         * platform/text/TextBreakIterator.cpp:
21717         (WebCore::acquireLineBreakIterator):
21718         * platform/text/gtk/TextBreakIteratorGtk.cpp:
21719         (WebCore::setUpIterator):
21720         (WebCore::acquireLineBreakIterator):
21721         * platform/text/wince/TextBreakIteratorWinCE.cpp:
21722         (WebCore::acquireLineBreakIterator):
21723
21724 2012-11-05  Hayato Ito  <hayato@chromium.org>
21725
21726         Use switch/case statements instead of if/elseif in CSSSelector.cpp
21727         https://bugs.webkit.org/show_bug.cgi?id=100470
21728
21729         Reviewed by Ryosuke Niwa.
21730
21731         Minor clean up. We can get compiler warnings if we use switch/case statements here.
21732
21733         No changes to functionality, so no new tests.
21734
21735         * css/CSSSelector.cpp:
21736         (WebCore::CSSSelector::selectorText):
21737
21738 2012-11-05  Kenichi Ishibashi  <bashi@chromium.org>
21739
21740         [Chromium] Unicode combining diacritical aren't always combined on Linux
21741         https://bugs.webkit.org/show_bug.cgi?id=101009
21742
21743         Reviewed by Kent Tamura.
21744
21745         Add a space character to harfbuzzBuffer as pre-context. This will prevent
21746         harfbuzz from inserting dotted-circle.
21747
21748         Test: fast/text/international/combining-marks-position.html
21749
21750         * platform/graphics/harfbuzz/ng/HarfBuzzShaper.cpp:
21751         (WebCore::HarfBuzzShaper::shapeHarfBuzzRuns):
21752
21753 2012-11-05  Shinya Kawanaka  <shinyak@chromium.org>
21754
21755         LayoutTest fast/dom/shadow/shadowroot-type.html is failing on Windows
21756         https://bugs.webkit.org/show_bug.cgi?id=101201
21757
21758         Reviewed by Hajime Morita.
21759
21760         When we use a bit field for enum, Windows compiler seems returning some wrong value.
21761         We would like to avoid using a bit field for enum value.
21762
21763         * dom/ShadowRoot.cpp:
21764         (WebCore::ShadowRoot::create):
21765         * dom/ShadowRoot.h:
21766         (WebCore::ShadowRoot::type):
21767         (WebCore::ShadowRoot::setType):
21768         (ShadowRoot):
21769
21770 2012-11-05  Benjamin Poulain  <benjamin@webkit.org>
21771
21772         TransformOperationInfo's constructor is really slow
21773         https://bugs.webkit.org/show_bug.cgi?id=101143
21774
21775         Reviewed by Sam Weinig.
21776
21777         TransformOperationInfo() was slow for a few reasons:
21778         -The function used a lot of branches. The basic assumption is that the input
21779          is incorrect, thus every character is an opportunity to fail.
21780         -Every branch had to be tested in order. If the name was matching the last if()
21781          all the previous names had to be tested.
21782         -Since equalIgnoringCase() was used in every branch, it was forcing the case folding
21783          every time.
21784         -When the string is 16bits, the case folding was using ICU, which was incredibly inefficient.
21785
21786         This can be fixed by either
21787         1) Compute the lowercase name, then match it to a HashMap.
21788         2) Write a tree to quickly reduce the number of branch needed.
21789
21790         The first solution is not viable because 16bits strings case folding
21791         remains an important bottleneck.
21792
21793         Instead, the code now splits the names on simple characteristics to
21794         match any name in a limited number of branches.
21795
21796         The assumption is the input is correct, so & is used instead of && to
21797         avoid branches in favor of conditional instructions.
21798
21799         * css/CSSParser.cpp:
21800         (WebCore::TransformOperationInfo::TransformOperationInfo):
21801
21802 2012-11-05  Simon Fraser  <simon.fraser@apple.com>
21803
21804         RenderGeometryMap asserts when loading http://en.softonic.com/mac
21805         https://bugs.webkit.org/show_bug.cgi?id=101284
21806         <rdar://problem/11540560>
21807
21808         Reviewed by Tim Horton.
21809
21810         When FrameView::layout() calls document->updateStyleIfNeeded(), we
21811         can be in a state where FrameView::needsLayout() is false. However,
21812         this is a bad time to update compositing layers, because we're about
21813         to do layout, which will require us to update them again soon anyway,
21814         and some RenderLayers may not have been sized or positioned yet.
21815         
21816         Fix by adding a m_doingPreLayoutStyleUpdate member to FrameView,
21817         and toggling it around this call to updateStyleIfNeeded().
21818         Read this state in updateCompositingLayersAfterStyleChange(), which is
21819         now called unconditionally by recalcStyle(), but returns early
21820         if this flag is set, or layout is pending.
21821
21822         * dom/Document.cpp:
21823         (WebCore::Document::recalcStyle):
21824         * page/FrameView.cpp:
21825         (WebCore::FrameView::reset):
21826         (WebCore::FrameView::updateCompositingLayersAfterStyleChange):
21827         (WebCore::FrameView::layout):
21828         * page/FrameView.h:
21829         (FrameView):
21830
21831 2012-11-05  Beth Dakin  <bdakin@apple.com>
21832
21833         https://bugs.webkit.org/show_bug.cgi?id=101275
21834         Clean up ScrollingConstraints.h
21835
21836         Reviewed by Simon Fraser.
21837
21838         This class cleans up ScrollingConstraints.h by removing the constructors since the 
21839         compiler will generate those constructors for us anyway. The patch also makes the 
21840         two override functions private.
21841         * page/scrolling/ScrollingConstraints.h:
21842         (ViewportConstraints):
21843         (FixedPositionViewportConstraints):
21844         (StickyPositionViewportConstraints):
21845
21846 2012-11-05  Simon Fraser  <simon.fraser@apple.com>
21847
21848         Make Document::updateStyleIfNeeded() non-virtual
21849         https://bugs.webkit.org/show_bug.cgi?id=101273
21850
21851         Reviewed by Eric Seidel.
21852
21853         Document::updateStyleIfNeeded() has been virtual like forever, but
21854         no-one ever overrides it, so make it non-virtual.
21855
21856         * dom/Document.h:
21857         (Document):
21858
21859 2012-11-05  Philip Rogers  <pdr@google.com>
21860
21861         Unblock SVG external references
21862         https://bugs.webkit.org/show_bug.cgi?id=100635
21863
21864         Reviewed by Adam Barth.
21865
21866         This patch reverts r132849 and r132869 because the potential XSS issue
21867         turned out to not be an issue after all.
21868
21869         Covered by existing tests, many of which are re-whitelisted with this patch.
21870
21871         * loader/cache/CachedResourceLoader.cpp:
21872         (WebCore::CachedResourceLoader::canRequest):
21873
21874 2012-11-05  Beth Dakin  <bdakin@apple.com>
21875
21876         https://bugs.webkit.org/show_bug.cgi?id=101001
21877         Pages with position:fixed elements should still be able to scroll on 
21878         the scrolling thread
21879         -and corresponding-
21880         <rdar://problem/10857315>
21881
21882         Reviewed by Simon Fraser.
21883
21884         This patch adds two new classes. ScrollingStateFixedNode is a class 
21885         to represent fixed nodes in the state tree, and 
21886         ScrollingTreeFixedNode represents fixed node in the scrolling tree 
21887         over on the scrolling thread.
21888         * WebCore.xcodeproj/project.pbxproj:
21889
21890         When we are (non-programatically) scrolling fixed objects on the 
21891         scrolling thread, we do not want to do any work here. 
21892         * page/FrameView.cpp:
21893         (WebCore::FrameView::updateFixedElementsAfterScrolling):
21894
21895         Whenever we sync the position of the main frame's layer, we have to 
21896         do the same for scrolling tree children.
21897         * page/scrolling/ScrollingCoordinator.cpp:
21898         (WebCore::ScrollingCoordinator::updateMainFrameScrollPosition):
21899
21900         New ScrollingNodeType -- FixedNode, yay! And two new functions 
21901         specific to dealing with FixedNodes.
21902         * page/scrolling/ScrollingCoordinator.h:
21903         (WebCore::ScrollingCoordinator::updateViewportConstrainedNode):
21904         (WebCore::ScrollingCoordinator::syncChildPositions):
21905
21906         This is the new class that represents fixed nodes in the state tree. 
21907         All of the changed properties are stored within 
21908         FixedPositionViewportConstraints.
21909         * page/scrolling/ScrollingStateFixedNode.cpp: Added.
21910         (WebCore):
21911         (WebCore::ScrollingStateFixedNode::create):
21912         (WebCore::ScrollingStateFixedNode::ScrollingStateFixedNode):
21913         (WebCore::ScrollingStateFixedNode::~ScrollingStateFixedNode):
21914         (WebCore::ScrollingStateFixedNode::updateConstraints):
21915         (WebCore::ScrollingStateFixedNode::dumpProperties):
21916         * page/scrolling/ScrollingStateFixedNode.h: Added.
21917         (WebCore):
21918         (ScrollingStateFixedNode):
21919         (WebCore::ScrollingStateFixedNode::viewportConstraints):
21920         (WebCore::toScrollingStateFixedNode):
21921
21922         Make sure to create the right type of clone for each node.
21923         * page/scrolling/ScrollingStateNode.cpp:
21924         (WebCore::ScrollingStateNode::cloneAndReset):
21925
21926         Now that m_children may be anything other than null, I found this 
21927         bug. We encounter it when the parameter to removeChild is this and we 
21928         want to remove all of our children. In that case, this is obviously 
21929         not found in its own child array.
21930         (WebCore::ScrollingStateNode::removeChild):
21931
21932         ScrollingStateNode now caches the GraphicsLayer in addition to the 
21933         PlatformLayer. This will allow us to sync the GraphicsLayer position 
21934         at the appropriate times.
21935         * page/scrolling/ScrollingStateNode.h:
21936         (WebCore::ScrollingStateNode::isScrollingStateFixedNode):
21937         (WebCore::ScrollingStateNode::graphicsLayer):
21938         (ScrollingStateNode):
21939
21940         Handle fixed nodes.
21941         * page/scrolling/ScrollingTree.cpp:
21942         (WebCore::ScrollingTree::updateTreeFromStateNode):
21943
21944         New function parentScrollPositionDidChange() is called on children 
21945         when the parent has scrolled.
21946         * page/scrolling/ScrollingTreeNode.h:
21947         (ScrollingTreeNode):
21948         * page/scrolling/ScrollingTreeScrollingNode.h:
21949         (ScrollingTreeScrollingNode):
21950
21951         Return true for supportsFixedPositionLayers(). 
21952         * page/scrolling/mac/ScrollingCoordinatorMac.h:
21953         (ScrollingCoordinatorMac):
21954
21955         Handle fixed nodes.
21956         * page/scrolling/mac/ScrollingCoordinatorMac.mm:
21957         (WebCore::ScrollingCoordinatorMac::attachToStateTree):
21958
21959         Now that m_children can be non-null I caught this pre-existing bug 
21960         where we would come times remove a node without updating the HashMap. 
21961         This patch fixes that by consolidating the removal into one function.
21962         (WebCore::ScrollingCoordinatorMac::removeNode):
21963         (WebCore::ScrollingCoordinatorMac::detachFromStateTree):
21964         (WebCore::ScrollingCoordinatorMac::clearStateTree):
21965
21966         Update the GraphicsLayers to reflect the new position that the 
21967         Scrolling thread has moved the underlying CALayer to already.
21968         (WebCore::ScrollingCoordinatorMac::syncChildPositions):
21969
21970         Pass new constraints over to the appropriate state node.
21971         (WebCore::ScrollingCoordinatorMac::updateViewportConstrainedNode):
21972
21973         Cache the GraphicsLayer in addition to the PlatformLayer.
21974         * page/scrolling/mac/ScrollingStateNodeMac.mm:
21975         (WebCore::ScrollingStateNode::setScrollLayer):
21976
21977         Here is the new class that represents fixed nodes over on the 
21978         scrolling thread. 
21979         * page/scrolling/mac/ScrollingTreeFixedNode.h: Added.
21980         (WebCore):
21981         (ScrollingTreeFixedNode):
21982         * page/scrolling/mac/ScrollingTreeFixedNode.mm: Added.
21983         (WebCore):
21984         (WebCore::ScrollingTreeFixedNode::create):
21985         (WebCore::ScrollingTreeFixedNode::ScrollingTreeFixedNode):
21986         (WebCore::ScrollingTreeFixedNode::~ScrollingTreeFixedNode):
21987         (WebCore::ScrollingTreeFixedNode::update):
21988
21989         This is where the magic happens. re-position the fixed object when 
21990         its parent has scrolled so that it appears to have not moved at all.
21991         (WebCore::ScrollingTreeFixedNode::parentScrollPositionDidChange):
21992
21993         Whenever we change the position of a scrolling layer, tell our 
21994         children.
21995         * page/scrolling/mac/ScrollingTreeScrollingNodeMac.mm:
21996         (WebCore::ScrollingTreeScrollingNodeMac::setScrollLayerPosition):
21997
21998         Handle fixed nodes.
21999         * rendering/RenderLayerBacking.cpp:
22000         (WebCore::RenderLayerBacking::attachToScrollingCoordinator):
22001
22002         detachFromScrollingCoordinator() needs to be public so that it can be 
22003         called from RenderLayerCompositor for fixed nodes.
22004         * rendering/RenderLayerBacking.h:
22005         (RenderLayerBacking):
22006
22007         RenderLayerCompositor takes control of attaching and detaching fixed 
22008         nodes to/from the ScrollingCoordinator. 
22009         * rendering/RenderLayerCompositor.cpp:
22010         (WebCore::RenderLayerCompositor::flushPendingLayerChanges):
22011         (WebCore::RenderLayerCompositor::didFlushChangesForLayer):
22012         (WebCore::RenderLayerCompositor::updateBacking):
22013         (WebCore::RenderLayerCompositor::layerWillBeRemoved):
22014         (WebCore::RenderLayerCompositor::didMoveOnscreen):
22015         (WebCore::RenderLayerCompositor::willMoveOffscreen):
22016         (WebCore::RenderLayerCompositor::clearBackingForLayerIncludingDescendants):
22017         (WebCore::isRootmostFixedOrStickyLayer):
22018         (WebCore):
22019         (WebCore::RenderLayerCompositor::updateViewportConstraintStatus):
22020         (WebCore::RenderLayerCompositor::addViewportConstrainedLayer):
22021         (WebCore::RenderLayerCompositor::removeViewportConstrainedLayer):
22022         (WebCore::RenderLayerCompositor::computeViewportConstraints):
22023         (WebCore::nearestScrollingCoordinatorAncestor):
22024         (WebCore::RenderLayerCompositor::registerOrUpdateViewportConstrainedLayer):
22025         (WebCore::RenderLayerCompositor::unregisterViewportConstrainedLayer):
22026         (WebCore::RenderLayerCompositor::registerAllViewportConstrainedLayers):
22027         (WebCore::RenderLayerCompositor::unregisterAllViewportConstrainedLayers):
22028         * rendering/RenderLayerCompositor.h:
22029         (WebCore):
22030         (RenderLayerCompositor):
22031
22032 2012-11-05  Geoffrey Garen  <ggaren@apple.com>
22033
22034         Cleaned up the Font class in preparation for optimizing kerning and ligatures
22035         https://bugs.webkit.org/show_bug.cgi?id=101258
22036
22037         Reviewed by Dan Bernstein.
22038
22039         * platform/graphics/Font.h:
22040         (WebCore::Font::typesettingFeatures):
22041         (WebCore::Font::computeTypesettingFeatures): Compute and cache our
22042         typesetting features instead of recomputing each time a client asks
22043         for them. This makes the class interface easier to use because
22044         "typesettingFeatures()" can appear in more than one expression without
22045         undue performance cost. This may also be a small speedup to code that
22046         calls typesettingFeatures() often for other reasons.
22047
22048         * platform/graphics/Font.cpp:
22049         (WebCore::Font::Font):
22050         (WebCore::Font::operator=):
22051         (WebCore::Font::update): Ditto.
22052
22053         (WebCore::Font::width): Unforked the width() function so all width-related
22054         interfaces can benefit from optimization without duplicate code.
22055
22056 2012-11-05  Peng Huang  <penghuang@google.com>
22057
22058         Webkit does not handle some media keys correctly On Linux gtk platform.
22059         https://bugs.webkit.org/show_bug.cgi?id=101221
22060
22061         Reviewed by Alexey Proskuryakov.
22062
22063         Add media keyboard support on Linux gtk platform.
22064
22065         * platform/chromium/KeyCodeConversionGtk.cpp:
22066         (WebCore::windowsKeyCodeForKeyEvent):
22067
22068 2012-11-05  Glenn Adams  <glenn@skynav.com>
22069
22070         Add support to -webkit-line-break property for CSS3 Text line-break property values and semantics.
22071         https://bugs.webkit.org/show_bug.cgi?id=89235
22072
22073         Reviewed by Eric Seidel.
22074
22075         See also wiki documentation at:
22076         [1] http://trac.webkit.org/wiki/LineBreaking
22077         [2] http://trac.webkit.org/wiki/LineBreakingCSS3Mapping
22078
22079         Web exposed changes include:
22080         (1) The default (initial) value for -webkit-line-break becomes 'auto', instead of 'normal';
22081         (2) The values 'auto', 'loose', 'normal', and 'strict' are added to -webkit-line-break;
22082         (3) See [2] above for details regarding interpretation.
22083
22084         Tests: css3/line-break/line-break-auto-centered.html
22085                css3/line-break/line-break-auto-half-kana.html
22086                css3/line-break/line-break-auto-hyphens.html
22087                css3/line-break/line-break-auto-inseparables.html
22088                css3/line-break/line-break-auto-iteration-marks.html
22089                css3/line-break/line-break-auto-postfixes.html
22090                css3/line-break/line-break-auto-prefixes.html
22091                css3/line-break/line-break-auto-sound-marks.html
22092                css3/line-break/line-break-loose-centered.html
22093                css3/line-break/line-break-loose-half-kana.html
22094                css3/line-break/line-break-loose-hyphens.html
22095                css3/line-break/line-break-loose-inseparables.html
22096                css3/line-break/line-break-loose-iteration-marks.html
22097                css3/line-break/line-break-loose-postfixes.html
22098                css3/line-break/line-break-loose-prefixes.html
22099                css3/line-break/line-break-loose-sound-marks.html
22100                css3/line-break/line-break-normal-centered.html
22101                css3/line-break/line-break-normal-half-kana.html
22102                css3/line-break/line-break-normal-hyphens.html
22103                css3/line-break/line-break-normal-inseparables.html
22104                css3/line-break/line-break-normal-iteration-marks.html
22105                css3/line-break/line-break-normal-postfixes.html
22106                css3/line-break/line-break-normal-prefixes.html
22107                css3/line-break/line-break-normal-sound-marks.html
22108                css3/line-break/line-break-strict-centered.html
22109                css3/line-break/line-break-strict-half-kana.html
22110                css3/line-break/line-break-strict-hyphens.html
22111                css3/line-break/line-break-strict-inseparables.html
22112                css3/line-break/line-break-strict-iteration-marks.html
22113                css3/line-break/line-break-strict-postfixes.html
22114                css3/line-break/line-break-strict-prefixes.html
22115                css3/line-break/line-break-strict-sound-marks.html
22116
22117         * platform/text/LineBreakIteratorPoolICU.h:
22118         (WebCore::LineBreakIteratorPool::makeLocaleWithBreakKeyword):
22119         Add static function to construct ICU locale argument (also used as pool key) with additional
22120         break keyword.
22121         (WebCore::LineBreakIteratorPool::take):
22122         (WebCore::LineBreakIteratorPool::put):
22123         (LineBreakIteratorPool):
22124         Remove direct dependency from ICU library (and types), moving that dependency into
22125         new {open,close}LineBreakIterator() functions (defined in TextBreakIteratorICU.cpp).
22126         Update to take line break mode into account.
22127         Create (and cache) different break iterators depending on line break mode (in addition to locale),
22128         which entails expanding pool entry key format to optionally append "@break=" +
22129         "loose"|"normal"|"strict" keyword to locale string.
22130
22131         * platform/text/TextBreakIterator.h:
22132         (WebCore::LazyLineBreakIterator::LazyLineBreakIterator):
22133         (WebCore::LazyLineBreakIterator::isLooseCJKMode):
22134         (WebCore::LazyLineBreakIterator::get):
22135         (WebCore::LazyLineBreakIterator::reset):
22136         (LazyLineBreakIterator):
22137         Define LineBreakIteratorMode enumeration for use in TextBreakIterator et al.
22138         Add state member to indicate line break mode.
22139
22140         * platform/text/TextBreakIteratorICU.cpp:
22141         (WebCore::acquireLineBreakIterator):
22142         Use new line break mode when making iterator from pool.
22143         Handle change of return type of LineBreakIteratorPool::take() to non-ICU type,
22144         i.e., TextBreakIterator* instead of ICU's UBreakIterator*.
22145         (WebCore::releaseLineBreakIterator):
22146         Handle change of parameter type of LineBreakIteratorPool::put() to non-ICU type,
22147         i.e., TextBreakIterator* instead of ICU's UBreakIterator*.
22148         (WebCore::isCJKLocale):
22149         New functions for determining if CJK rules apply.
22150         (WebCore::openLineBreakIterator):
22151         New function for abstracting opening of ICU style line break iterator. This is now
22152         used in LineBreakIteratorPoolICU.h rather than having direct ICU API dependency there.
22153         This function also takes into account the line break mode.
22154         (WebCore::closeLineBreakIterator):
22155         (WebCore::mapLineIteratorModeToRules):
22156         New function for abstracting closing of ICU style line break iterator. This is now
22157         used in LineBreakIteratorPoolICU.h rather than having direct ICU API dependency there.
22158
22159         * rendering/RenderBlockLineLayout.cpp:
22160         (WebCore::RenderBlock::LineBreaker::nextLineBreak):
22161         Pass line break iterator mode flag when reseting LazyLineBreakIterator.
22162         Add looseMode local variable to prevent need for computing under isBreakable().
22163
22164         * rendering/RenderText.cpp:
22165         (WebCore::mapLineBreakToIteratorMode):
22166         Add implementation for mapLineBreakToIteratorMode(), used by both RenderText::computePreferredLogicalWidths
22167         and RenderBlock::LineBreaker::nextLineBreak.
22168         (WebCore::RenderText::computePreferredLogicalWidths):
22169         Ensure (lazy line) breakIterator is initialized for line break mode.
22170         Ensure isBreakable() is passed loose mode flag to match behavior in RenderBlock::LineBreaker::nextLineBreak.
22171
22172         * rendering/RenderText.h:
22173         (WebCore):
22174         Add declaration for mapLineBreakToIteratorMode(), used by both RenderText::computePreferredLogicalWidths
22175         and RenderBlock::LineBreaker::nextLineBreak.
22176
22177         * rendering/break_lines.cpp:
22178         (WebCore):
22179         Introduce two (local) enums NBSPBehavior and LooseBehavior for expanding template on nextBreakablePosition
22180         to include loose mode parameter.
22181         (WebCore::isBreakableSpace):
22182         Add externally specified loose mode parameter to prevent need to invoke line break iterator
22183         accessor method on each invocation. Use new loose mode flavors off NBP functions.
22184         (WebCore::needsLineBreakIterator):
22185         Introduce loose mode behavior template parameter to optimize loose mode behavior code path in order
22186         to prevent regression to non loose mode path.
22187         (WebCore::nextBreakablePosition):
22188         (WebCore::nextBreakablePositionIgnoringNBSP):
22189         Use new template parameter enums described above.
22190         (WebCore::nextBreakablePositionIgnoringNBSPLoose):
22191         (WebCore::nextBreakablePositionLoose):
22192         Introduce two additional 'loose' mode flavors of NBP template expansions.
22193
22194         * rendering/break_lines.h:
22195         (WebCore):
22196         (WebCore::isBreakable):
22197         Add externally specified loose mode parameter to prevent need to invoke line break iterator
22198         accessor method on each invocation.
22199
22200 2012-11-05  Adam Barth  <abarth@webkit.org>
22201
22202         webkitRegionLayoutUpdate is incorrectly named
22203         https://bugs.webkit.org/show_bug.cgi?id=100335
22204
22205         Reviewed by Ojan Vafai.
22206
22207         DOM event names are supposed to be lower case.
22208
22209         * dom/EventNames.h:
22210         (WebCore):
22211         * dom/WebKitNamedFlow.cpp:
22212         (WebCore::WebKitNamedFlow::dispatchRegionLayoutUpdateEvent):
22213
22214 2012-11-05  Adam Barth  <abarth@webkit.org>
22215
22216         [V8] IntrusiveDOMWrapperMap should be usable for more than just Nodes
22217         https://bugs.webkit.org/show_bug.cgi?id=101110
22218
22219         Reviewed by Kentaro Hara.
22220
22221         This patch generalizes our support for storing wrappers in DOM objects
22222         to be usable for more than just nodes. After this patch, any object
22223         with a ScriptWrappable base class will have its wrapper stored inline
22224         in the object in the main world.
22225
22226         To achieve this goal, this patch hides the details of how we map from
22227         objects to wrappers inside DOMDataStore and then removes the
22228         IntrusiveDOMWrapperMap class entirely. This approach lets us remove the
22229         DOMWrapperMap base class and make all of these functions non-virtual.
22230
22231         * UseV8.cmake:
22232         * WebCore.gypi:
22233             - Remove deleted files.
22234         * bindings/scripts/CodeGeneratorV8.pm:
22235         (GenerateHeader):
22236         (GenerateNormalAttrGetter):
22237         (GenerateConstructorCallback):
22238         (GenerateNamedConstructorCallback):
22239         (GenerateToV8Converters):
22240             - Rather than grabbing at the DOMWrapperMap directly, we now ask
22241               the DOMDataStore to do this work for us.
22242         * bindings/scripts/test/V8/V8Float64Array.h:
22243         (WebCore::V8Float64Array::wrap):
22244         * bindings/scripts/test/V8/V8TestActiveDOMObject.h:
22245         (WebCore::V8TestActiveDOMObject::wrap):
22246         * bindings/scripts/test/V8/V8TestCustomNamedGetter.h:
22247         (WebCore::V8TestCustomNamedGetter::wrap):
22248         * bindings/scripts/test/V8/V8TestEventConstructor.h:
22249         (WebCore::V8TestEventConstructor::wrap):
22250         * bindings/scripts/test/V8/V8TestEventTarget.h:
22251         (WebCore::V8TestEventTarget::wrap):
22252         * bindings/scripts/test/V8/V8TestException.h:
22253         (WebCore::V8TestException::wrap):
22254         * bindings/scripts/test/V8/V8TestInterface.h:
22255         (WebCore::V8TestInterface::wrap):
22256         * bindings/scripts/test/V8/V8TestMediaQueryListListener.h:
22257         (WebCore::V8TestMediaQueryListListener::wrap):
22258         * bindings/scripts/test/V8/V8TestNamedConstructor.h:
22259         (WebCore::V8TestNamedConstructor::wrap):
22260         * bindings/scripts/test/V8/V8TestNode.cpp:
22261         (WebCore::V8TestNode::constructorCallback):
22262         (WebCore::V8TestNode::wrapSlow):
22263         * bindings/scripts/test/V8/V8TestObj.cpp:
22264         (WebCore::TestObjV8Internal::readOnlyTestObjAttrAttrGetter):
22265         * bindings/scripts/test/V8/V8TestObj.h:
22266         (WebCore::V8TestObj::wrap):
22267         * bindings/scripts/test/V8/V8TestSerializedScriptValueInterface.h:
22268         (WebCore::V8TestSerializedScriptValueInterface::wrap):
22269         * bindings/v8/DOMDataStore.cpp:
22270             - Updated run-bindings-test results.
22271         (WebCore::DOMDataStore::DOMDataStore):
22272         (WebCore::DOMDataStore::~DOMDataStore):
22273             - Simplify constructor and destructor now that there is only one
22274               hash map.
22275         (WebCore::DOMDataStore::current):
22276             - Now that V8DOMMap.cpp doesn't handle the null isolate case, we
22277               need to handle it here.
22278         (WebCore::DOMDataStore::reportMemoryUsage):
22279             - Simplfied now that there is only one wrapper map.
22280         (WebCore::DOMDataStore::weakCallback):
22281             - Moved from IntrusiveDOMWrapperMap.h
22282         * bindings/v8/DOMDataStore.h:
22283         (WebCore::DOMDataStore::get):
22284         (WebCore::DOMDataStore::set):
22285             - These functions now handle the intrusive case with a branch
22286               rather than with a virtual function call. In many cases, the
22287               branch can be optimized away by the compiler when the overloaded
22288               inline functions are inlined.
22289         (WebCore::DOMDataStore::wrapperIsStoredInObject):
22290             - Overloaded functions to determine whether to store the wrapper
22291               inside the object or in the hashmap.
22292         (WebCore::DOMDataStore::getWrapperFromObject):
22293         (WebCore::DOMDataStore::storeWrapperInObject):
22294             - Overloaded functions to get/set the wrapper from inside the
22295               object itself.
22296         * bindings/v8/DOMWrapperMap.h:
22297         (WebCore::DOMWrapperHashMap::get):
22298         (WebCore::DOMWrapperHashMap::set):
22299         (WebCore::DOMWrapperHashMap::clear):
22300         (WebCore::DOMWrapperHashMap::reportMemoryUsage):
22301         (WebCore::DOMWrapperHashMap::remove):
22302             - These functions are no longer virtual.
22303         * bindings/v8/DOMWrapperWorld.h:
22304         * bindings/v8/IntrusiveDOMWrapperMap.h: Removed.
22305         * bindings/v8/ScriptProfiler.cpp:
22306         * bindings/v8/SerializedScriptValue.cpp:
22307         (WebCore::neuterBinding):
22308             - We need to keep the type information slightly longer so that we
22309               look in the right wrapper map.
22310         * bindings/v8/V8DOMMap.cpp: Removed.
22311         * bindings/v8/V8DOMMap.h: Removed.
22312         * bindings/v8/V8DOMWindowShell.cpp:
22313         * bindings/v8/V8DOMWrapper.cpp:
22314         * bindings/v8/V8DOMWrapper.h:
22315         (WebCore::V8DOMWrapper::getCachedWrapper):
22316             - Defer this work to the store.
22317         (WebCore::V8DOMWrapper::setWrapperClass):
22318             - An overloaded function to set the right wrapper class.
22319         (WebCore::V8DOMWrapper::setJSWrapperForDOMObject):
22320             - This function is now general enough to handle ever kind of object.
22321         * bindings/v8/V8GCController.cpp:
22322         * bindings/v8/V8NPObject.cpp:
22323         * bindings/v8/WorkerContextExecutionProxy.cpp:
22324         * bindings/v8/WorkerScriptController.cpp:
22325         * bindings/v8/custom/V8HTMLImageElementConstructor.cpp:
22326         (WebCore::v8HTMLImageElementConstructorCallback):
22327             - Call the more general function (instead of the now-deleted specialized function).
22328
22329 2012-11-05  Alexey Proskuryakov  <ap@apple.com>
22330
22331         Get rid of setCookieStoragePrivateBrowsingEnabled.
22332         https://bugs.webkit.org/show_bug.cgi?id=101247
22333
22334         Reviewed by Brady Eidson.
22335
22336         We were only doing anything here on Mac, and only because we couldn't know if
22337         sessions were in use. But sessions are always in use, and those obsolete changing
22338         cookie storage explicitly.
22339
22340         * platform/network/win/CookieStorageWin.cpp: Removed.
22341         * PlatformWinCE.cmake:
22342         * WebCore.gypi:
22343         No more CookieStorageWin.cpp with an empty implementation.
22344     
22345         * WebCore.exp.in:
22346         * platform/mac/WebCoreSystemInterface.h:
22347         * platform/mac/WebCoreSystemInterface.mm:
22348         We no longer need this WKSI function.
22349
22350         * page/Settings.cpp: (WebCore::Settings::setPrivateBrowsingEnabled):
22351         Removed the only call to setCookieStoragePrivateBrowsingEnabled().
22352
22353         * platform/network/CookieStorage.h:
22354         * platform/network/cf/CookieStorageCFNet.cpp:
22355         * platform/network/curl/CookieJarCurl.cpp:
22356         * platform/network/soup/CookieStorageSoup.cpp:
22357         * platform/qt/TemporaryLinkStubsQt.cpp:
22358         Removed empty setCookieStoragePrivateBrowsingEnabled implementations.
22359
22360         * platform/network/mac/CookieStorageMac.mm: This function used to have a FIXME
22361         that we should observe private storage while in private browsing mode. I don't think
22362         that it was correct - Safari doesn't display content of private storage, and thus
22363         doesn't need to know about changes.
22364         The removal of this function has an effect on WebKit1 clients that enable private
22365         browsing. We used to globally change cookie storage, even for loads not initiated
22366         by WebKit. Now we match API description: "If private browsing is enabled, WebKit
22367         will not store information about sites the user visits."
22368
22369 2012-11-05  Florin Malita  <fmalita@chromium.org>
22370
22371         Crash when mixing layers, foreignObjects and SVG hidden containers
22372         https://bugs.webkit.org/show_bug.cgi?id=87297
22373
22374         Reviewed by Dirk Schulze.
22375
22376         Foreign objects may introduce content which requires layers, but layer creation is
22377         suppressed within RenderSVGHiddenContainer subtrees and this yields an inconsistent render
22378         tree state. This patch prevents foreignObject renderer instantiation under
22379         RenderSVGHiddenContainers.
22380
22381         Test: svg/foreignObject/foreign-object-defs-crash.svg
22382
22383         * svg/SVGForeignObjectElement.cpp:
22384         (WebCore::SVGForeignObjectElement::rendererIsNeeded):
22385         (WebCore):
22386         * svg/SVGForeignObjectElement.h:
22387         (SVGForeignObjectElement):
22388
22389 2012-11-05  Simon Fraser  <simon.fraser@apple.com>
22390
22391         Remove the unused m_fixedPositionedElements from RenderView
22392         https://bugs.webkit.org/show_bug.cgi?id=101251
22393
22394         Reviewed by Anders Carlsson.
22395
22396         m_fixedPositionedElements was completely unused. Remove it
22397         and the related typedef.
22398
22399         * rendering/RenderView.h:
22400         (RenderView):
22401
22402 2012-11-05  Simon Fraser  <simon.fraser@apple.com>
22403
22404         Fix layer borders to cleaning appear and disappear on switching
22405         https://bugs.webkit.org/show_bug.cgi?id=101136
22406
22407         Reviewed by Sam Weinig.
22408
22409         GraphicsLayers decided whether to show layer borders based
22410         on a callback through the GraphicsLayerClient. This made it
22411         hard to manage state, resulting in a failure to cleanly
22412         hide layers when toggled off via the preference.
22413         
22414         Changed the layer border and repaint counter visibility to be bits
22415         stored on GraphicsLayer just like other properties, with getters
22416         and setters. RenderLayerBacking now updates these debug
22417         indicators when we update other compositing layer properties.
22418         
22419         In GraphicsLayerCA, avoid calling updateDebugIndicators() explicitly
22420         in several places by setting the change flag DebugIndicatorsChanged
22421         for properties whose values affect the appearance of the debug border.
22422
22423         Removed the GraphicsLayerClient methods showDebugBorders() and
22424         showRepaintCounter() which are no longer required.
22425
22426         * platform/graphics/GraphicsLayer.cpp:
22427         (WebCore::GraphicsLayer::GraphicsLayer):
22428         (WebCore::GraphicsLayer::updateDebugIndicators):
22429         * platform/graphics/GraphicsLayer.h:
22430         (WebCore::GraphicsLayer::setShowDebugBorder):
22431         (WebCore::GraphicsLayer::isShowingDebugBorder):
22432         (WebCore::GraphicsLayer::setShowRepaintCounter):
22433         (WebCore::GraphicsLayer::isShowingRepaintCounter):
22434         (WebCore::GraphicsLayer::repaintCount):
22435         (WebCore::GraphicsLayer::incrementRepaintCount):
22436         * platform/graphics/GraphicsLayerClient.h:
22437         * platform/graphics/ca/GraphicsLayerCA.cpp:
22438         (WebCore::GraphicsLayerCA::GraphicsLayerCA):
22439         (WebCore::GraphicsLayerCA::setMasksToBounds):
22440         (WebCore::GraphicsLayerCA::setDrawsContent):
22441         (WebCore::GraphicsLayerCA::platformCALayerShowRepaintCounter):
22442         (WebCore::GraphicsLayerCA::commitLayerChangesBeforeSublayers):
22443         (WebCore::GraphicsLayerCA::updateMasksToBounds):
22444         (WebCore::GraphicsLayerCA::updateLayerDrawsContent):
22445         (WebCore::GraphicsLayerCA::updateDebugBorder):
22446         (WebCore::GraphicsLayerCA::setShowDebugBorder):
22447         (WebCore::GraphicsLayerCA::setShowRepaintCounter):
22448         (WebCore::GraphicsLayerCA::swapFromOrToTiledLayer):
22449         (WebCore::GraphicsLayerCA::setupContentsLayer):
22450         (WebCore::GraphicsLayerCA::cloneLayer):
22451         * platform/graphics/ca/GraphicsLayerCA.h:
22452         (GraphicsLayerCA):
22453         (WebCore::GraphicsLayerCA::platformCALayerShowDebugBorders):
22454         * rendering/RenderLayerBacking.cpp:
22455         (WebCore::RenderLayerBacking::updateDebugIndicators):
22456         * rendering/RenderLayerBacking.h:
22457         (RenderLayerBacking):
22458         * rendering/RenderLayerCompositor.cpp:
22459         (WebCore::RenderLayerCompositor::updateBacking):
22460         * rendering/RenderLayerCompositor.h:
22461         (RenderLayerCompositor):
22462
22463 2012-11-05  Genevieve Mak  <gmak@rim.com>
22464
22465         [BLACKBERRY] Update touch code to reflect touch refactor
22466         https://bugs.webkit.org/show_bug.cgi?id=101227
22467
22468         Reviewed by Rob Buis.
22469
22470         PR #2706785
22471         Reviewed Internally by: Mike Lattanzio
22472
22473         * platform/blackberry/PlatformTouchEventBlackBerry.cpp:
22474         (WebCore::touchEventType):
22475         (WebCore::PlatformTouchEvent::PlatformTouchEvent):
22476
22477 2012-11-05  Alok Priyadarshi  <alokp@chromium.org>
22478
22479         [chromium] Pass canPaintLCDText to WebContentLayerClient::paintContents
22480         https://bugs.webkit.org/show_bug.cgi?id=99083
22481
22482         Reviewed by Stephen White.
22483
22484         Use LCD text setting passed to WebContentLayerClient::paintContents instead of turning it off for all composited layers.
22485
22486         No new tests needed. This patch does not change anything functionally.
22487
22488         * platform/graphics/chromium/GraphicsLayerChromium.cpp:
22489         (WebCore::GraphicsLayerChromium::setContentsOpaque):
22490         (WebCore::GraphicsLayerChromium::paint):
22491         * platform/graphics/chromium/OpaqueRectTrackingContentLayerDelegate.cpp:
22492         (WebCore::OpaqueRectTrackingContentLayerDelegate::paintContents):
22493         * platform/graphics/chromium/OpaqueRectTrackingContentLayerDelegate.h:
22494         (OpaqueRectTrackingContentLayerDelegate):
22495
22496 2012-11-05  Stephen White  <senorblanco@chromium.org>
22497
22498         [chromium] Build fix after http://trac.webkit.org/changeset/133488.
22499         Removed a deleted file.  Unreviewed.
22500
22501         * WebCore.gypi:
22502
22503 2012-11-05  Kentaro Hara  <haraken@chromium.org>
22504
22505         [V8] toV8(impl) should return null if impl is 0
22506         https://bugs.webkit.org/show_bug.cgi?id=101206
22507
22508         Reviewed by Adam Barth.
22509
22510         toV8(impl) should return null if impl is 0. However,
22511         V8HTMLCollection::toV8() does not have the null check.
22512         All other toV8()s return null.
22513
22514         No tests. I think there will be no call path that hits the change.
22515
22516         * bindings/v8/custom/V8HTMLCollectionCustom.cpp:
22517         (WebCore::toV8):
22518
22519 2012-11-05  David Barton  <dbarton@mathscribe.com>
22520
22521         Implement SimpleFontData::platformBoundsForGlyph on skia
22522         https://bugs.webkit.org/show_bug.cgi?id=101115
22523
22524         Reviewed by Eric Seidel.
22525
22526         The implementation is similar to SimpleFontData::platformWidthForGlyph on skia.
22527
22528         Tested by: fast/block/lineboxcontain/*glyphs*, mathml/presentation/*
22529
22530         * platform/graphics/skia/SimpleFontDataSkia.cpp:
22531         (WebCore::SimpleFontData::platformBoundsForGlyph): Implemented.
22532
22533 2012-11-05  Andreas Kling  <kling@webkit.org>
22534
22535         Decouple Attr logic from ElementAttributeData.
22536         <http://webkit.org/b/101126>
22537
22538         Reviewed by Antti Koivisto.
22539
22540         Move all logic dealing with Attr DOM nodes from ElementAttributeData to Element.
22541         This makes more sense since an Attr is tied to a single Element, but an ElementAttributeData
22542         can be shared by any number of Elements at a given time.
22543
22544         Also updated naming convention from just "Attr" to "Attr node" in the code I was touching.
22545         "Attr" is way too generic, and has been historically confused with WebCore::Attribute a lot.
22546
22547         * dom/Element.h:
22548         * dom/ElementAttributeData.h:
22549         * dom/Element.cpp:
22550         (WebCore::attrNodeListMap):
22551         (WebCore::attrNodeListForElement):
22552         (WebCore::ensureAttrNodeListForElement):
22553         (WebCore::removeAttrNodeListForElement):
22554         (WebCore::findAttrNodeInList):
22555         (WebCore::Element::~Element):
22556         (WebCore::Element::detachAttribute):
22557         (WebCore::Element::setAttributeNode):
22558         (WebCore::Element::removeAttributeInternal):
22559         (WebCore::Element::getAttributeNode):
22560         (WebCore::Element::getAttributeNodeNS):
22561         (WebCore::Element::normalizeAttributes):
22562         (WebCore::Element::attrIfExists):
22563         (WebCore::Element::ensureAttr):
22564         (WebCore::Element::detachAttrNodeFromElementWithValue):
22565         (WebCore::Element::detachAllAttrNodesFromElement):
22566         (WebCore::Element::cloneAttributesFromElement):
22567
22568             Move everything Attr-related into Element.cpp while simplifying some loops and remove
22569             conditions that are no longer needed as they used to depend on having an attributeData().
22570
22571         * dom/Node.h:
22572         (WebCore::Node::hasSyntheticAttrChildNodes):
22573         (WebCore::Node::setHasSyntheticAttrChildNodes):
22574
22575             Renamed the hasAttrList() node flag to hasSyntheticAttrChildNodes().
22576
22577         * dom/Attr.cpp:
22578         (WebCore::Attr::detachFromElementWithValue):
22579
22580             Remove awkward indirection and let the call site deal with removing the Attr node from
22581             the Element's list of Attr nodes.
22582
22583         * dom/ElementAttributeData.cpp:
22584         (WebCore::ElementAttributeData::clearAttributes):
22585
22586             Remove now-unused Element* argument.
22587
22588 2012-11-05  Hans Muller  <hmuller@adobe.com>
22589
22590         [CSS Exclusions] Polygon edges should span colinear vertices
22591         https://bugs.webkit.org/show_bug.cgi?id=99343
22592
22593         Reviewed by Dirk Schulze.
22594
22595         ExclusionPolygonEdges now span coincident and collinear vertices. Currently
22596         pairs of vertices are only considered coincident if their coordinates are exactly
22597         equal. Similarly, a vertex is only considered collinear with an edge if the area
22598         of the triangle defined by the three vertices is exactly zero.  In the future it
22599         may be useful to relax the comparison with zero.
22600
22601         Tests: fast/exclusions/shape-inside/shape-inside-coincident-vertices.html
22602                fast/exclusions/shape-inside/shape-inside-collinear-vertices.html
22603
22604         * rendering/ExclusionPolygon.cpp:
22605         (WebCore::determinant): Used to measure collinearity.
22606         (WebCore):
22607         (WebCore::areCollinearPoints): True if three FloatPoint arguments are collinear per the test outlined above.
22608         (WebCore::areCoincidentPoints): True if the two FloatPoint arguments are equal.
22609         (WebCore::nextVertexIndex): The next vertex index in clockwise or counterclockwise order.
22610         (WebCore::ExclusionPolygon::findNextEdgeVertexIndex): Return the index of the next non-coincident, non-collinear vertex.
22611         (WebCore::ExclusionPolygon::ExclusionPolygon): Skip coincident and collinear vertices when building the list of edges.
22612         * rendering/ExclusionPolygon.h: Added private findNextEdgeVertexIndex() declaration.
22613
22614 2012-11-05  Christophe Dumez  <christophe.dumez@intel.com>
22615
22616         [EFL] Use POSIX implementation of SharedBuffer::createWithContentsOfFile()
22617         https://bugs.webkit.org/show_bug.cgi?id=101228
22618
22619         Reviewed by Kenneth Rohde Christiansen.
22620
22621         Get rid of EFL-specific implementation of SharedBuffer::createWithContentsOfFile()
22622         and reuse the POSIX one since it is pretty much the same.
22623
22624         No new tests, no behavior change.
22625
22626         * PlatformEfl.cmake:
22627         * platform/efl/SharedBufferEfl.cpp: Removed.
22628
22629 2012-11-05  Kentaro Hara  <haraken@chromium.org>
22630
22631         Add a comment about a return value of IDBKey::toV8()
22632         https://bugs.webkit.org/show_bug.cgi?id=101212
22633
22634         Reviewed by Adam Barth.
22635
22636         Although all other toV8(impl) return null when impl is 0,
22637         IDBKey::toV8(impl) is expected to return undefined when impl is 0.
22638         This patch adds a comment about it.
22639
22640         No tests.
22641
22642         * bindings/js/JSIDBKeyCustom.cpp:
22643         (WebCore::toJS):
22644         * bindings/v8/custom/V8IDBKeyCustom.cpp:
22645         (WebCore::toV8):
22646
22647 2012-11-05  Dominik Röttsches  <dominik.rottsches@intel.com>
22648
22649         [Cairo] Make Cairo honor image orientation
22650         https://bugs.webkit.org/show_bug.cgi?id=101207
22651
22652         Reviewed by Kenneth Rohde Christiansen.
22653
22654         Implement transformed image drawing in BitmapImageCairo, similar
22655         as it was done for Skia in bug 100179, r132384.
22656         The image drawing code needs to transform the graphics context
22657         depending on exif orientation in order for this to work.
22658
22659         No new tests, covered by fast/images/exif-* which are passing now.
22660
22661         * platform/graphics/BitmapImage.h: Enable draw function which respects image orientation for Cairo.
22662         * platform/graphics/cairo/BitmapImageCairo.cpp:
22663         (WebCore::BitmapImage::draw): Apply ImageOrientation's transformFromDefault() transformation to context.
22664         (WebCore):
22665
22666 2012-11-05  Kentaro Hara  <haraken@chromium.org>
22667
22668         [V8] Dispose() and Clear() should be always coupled for safety
22669         https://bugs.webkit.org/show_bug.cgi?id=101191
22670
22671         Reviewed by Adam Barth.
22672
22673         Clear() is not mandatory. However, to avoid misusing already
22674         disposed wrappers, Clear() should be always called just
22675         after Dispose().
22676
22677         No tests. No change in behavior.
22678
22679         * bindings/v8/DOMWrapperMap.h:
22680         (WebCore::DOMWrapperHashMap::defaultWeakCallback):
22681         * bindings/v8/IntrusiveDOMWrapperMap.h:
22682         (WebCore::IntrusiveDOMWrapperMap::weakCallback):
22683         * bindings/v8/NPV8Object.cpp:
22684         (WebCore::freeV8NPObject):
22685         * bindings/v8/ScheduledAction.cpp:
22686         (WebCore::ScheduledAction::~ScheduledAction):
22687         * bindings/v8/V8NPObject.cpp:
22688         (WebCore::V8NPTemplateMap::dispose):
22689         (WebCore::weakNPObjectCallback):
22690         (WebCore::forgetV8ObjectForNPObject):
22691         * bindings/v8/V8PerContextData.cpp:
22692         (WebCore::V8PerContextData::dispose):
22693         * bindings/v8/V8ValueCache.cpp:
22694         (WebCore::cachedStringCallback):
22695         (WebCore::IntegerCache::~IntegerCache):
22696         * bindings/v8/custom/V8InjectedScriptManager.cpp:
22697         (WebCore::WeakReferenceCallback):
22698
22699 2012-11-05  Hans Muller  <hmuller@adobe.com>
22700
22701         [CSS Exclusions] Layout of the first shape-inside line can be incorrect
22702         https://bugs.webkit.org/show_bug.cgi?id=100996
22703
22704         Reviewed by Dirk Schulze.
22705
22706         Made the conversion from floating point top/bottom logical shape bounds coordinates
22707         LayoutUnits explicit and corrected the case where the top value was truncated.  A
22708         float logicalTop value is converted to LayoutUnit with fromFloatCeil() to ensure
22709         that the LayoutUnit value is within the shape.
22710         
22711         Test: fast/exclusions/shape-inside/shape-inside-shape-logical-top.html
22712
22713         * rendering/ExclusionShapeInsideInfo.h:
22714         (WebCore::ExclusionShapeInsideInfo::shapeLogicalTop): Redefined this method in terms of shapeLogicalBoundsY,Max().
22715         (WebCore::ExclusionShapeInsideInfo::shapeLogicalBottom):  Ditto.
22716         (WebCore::ExclusionShapeInsideInfo::lineOverlapsShapeBounds):  Ditto.
22717         (ExclusionShapeInsideInfo):
22718         (WebCore::ExclusionShapeInsideInfo::shapeLogicalBoundsY): Explicit conversion from floating point shape coordinates to LayoutUnits.
22719         (WebCore::ExclusionShapeInsideInfo::shapeLogicalBoundsMaxY): Ditto.
22720
22721 2012-11-05  Antti Koivisto  <antti@apple.com>
22722
22723         Protect against resource deletion during iteration in MemoryCache::pruneDeadResourcesToSize
22724         https://bugs.webkit.org/show_bug.cgi?id=101211
22725
22726         Reviewed by Andreas Kling.
22727         
22728         Some crashes have been seen under MemoryCache::pruneDeadResourcesToSize. A possible cause is that
22729         destroyDecodedData() call ends up evicting the resource pointed by 'previous' pointer during iteration
22730         and deleting the object. This looks in principle possible via stylesheets and SVG images.
22731         
22732         Speculative fix, no repro, no obvious way to construct a test.
22733
22734         * loader/cache/MemoryCache.cpp:
22735         (WebCore::MemoryCache::pruneDeadResourcesToSize):
22736         
22737             Use CachedResourceHandle to protect the 'previous' pointer during iteration. Check if the
22738             resource has been kicked out from the cache during destroyDecodedData() and stop iterating
22739             if has (as it may die when CachedResourceHandle releases it).
22740             The 'current' pointer is not protected as the resource it points to is allowed to die.
22741             
22742 2012-11-05  Andrey Adaikin  <aandrey@chromium.org>
22743
22744         Web Inspector: Fix jscompiler cast syntax
22745         https://bugs.webkit.org/show_bug.cgi?id=101066
22746
22747         Reviewed by Pavel Feldman.
22748
22749         Casts should be in the form of "/** @type {TypeName} */ (expr)" instead of "/** @type {TypeName} */ expr".
22750
22751         * inspector/InjectedScriptCanvasModuleSource.js:
22752         (.):
22753         * inspector/InjectedScriptSource.js:
22754         (.):
22755         * inspector/front-end/ApplicationCacheModel.js:
22756         (WebInspector.ApplicationCacheModel.prototype._frameNavigated):
22757         (WebInspector.ApplicationCacheModel.prototype._frameDetached):
22758         * inspector/front-end/AuditLauncherView.js:
22759         (WebInspector.AuditLauncherView.prototype._onRequestStarted):
22760         (WebInspector.AuditLauncherView.prototype._onRequestFinished):
22761         * inspector/front-end/BreakpointManager.js:
22762         (WebInspector.BreakpointManager.prototype._uiSourceCodeAdded):
22763         (WebInspector.BreakpointManager.prototype._uiSourceCodeFormatted):
22764         (WebInspector.BreakpointManager.prototype._uiSourceCodeRemoved):
22765         (WebInspector.BreakpointManager.prototype._breakpointResolved):
22766         (WebInspector.BreakpointManager.Breakpoint.prototype._locationUpdated):
22767         (WebInspector.BreakpointManager.Storage):
22768         * inspector/front-end/BreakpointsSidebarPane.js:
22769         (WebInspector.JavaScriptBreakpointsSidebarPane.prototype._breakpointAdded):
22770         * inspector/front-end/CSSNamedFlowCollectionsView.js:
22771         (WebInspector.CSSNamedFlowCollectionsView.prototype._documentUpdated):
22772         (WebInspector.CSSNamedFlowCollectionsView.prototype._namedFlowCreated):
22773         (WebInspector.CSSNamedFlowCollectionsView.prototype._regionLayoutUpdated):
22774         (WebInspector.CSSNamedFlowCollectionsView.prototype._selectedNodeChanged):
22775         * inspector/front-end/CSSSelectorProfileView.js:
22776         (WebInspector.CSSProfileHeader.prototype.createView):
22777         * inspector/front-end/CSSStyleModel.js:
22778         (WebInspector.CSSStyleModel.LiveLocation.prototype.uiLocation):
22779         (WebInspector.CSSStyleDeclaration.parseComputedStylePayload):
22780         * inspector/front-end/CompilerScriptMapping.js:
22781         (WebInspector.CompilerScriptMapping.prototype.rawLocationToUILocation):
22782         (WebInspector.CompilerScriptMapping.prototype.loadSourceMapForScript):
22783         * inspector/front-end/ConsoleView.js:
22784         (WebInspector.ConsoleView.prototype._frameAdded):
22785         (WebInspector.ConsoleView.prototype._frameRemoved):
22786         * inspector/front-end/DOMAgent.js:
22787         (WebInspector.DOMDocument):
22788         * inspector/front-end/DebuggerModel.js:
22789         (WebInspector.DebuggerModel.prototype.didSetBreakpoint):
22790         (WebInspector.DebuggerModel.prototype.setBreakpointByURL):
22791         (WebInspector.DebuggerModel.prototype.):
22792         (WebInspector.DebuggerModel.prototype.setBreakpointBySourceId):
22793         (WebInspector.DebuggerModel.CallFrame.prototype.get location):
22794         * inspector/front-end/DebuggerScriptMapping.js:
22795         (WebInspector.DebuggerScriptMapping.prototype._parsedScriptSource):
22796         * inspector/front-end/DirectoryContentView.js:
22797         (WebInspector.DirectoryContentView.prototype._sort):
22798         * inspector/front-end/ElementsPanel.js:
22799         (WebInspector.ElementsPanel.prototype._updateBreadcrumbIfNeeded):
22800         * inspector/front-end/ElementsPanelDescriptor.js:
22801         (WebInspector.ElementsPanelDescriptor.prototype.appendApplicableItems):
22802         * inspector/front-end/ElementsTreeOutline.js:
22803         (.get node):
22804         * inspector/front-end/ExtensionServer.js:
22805         (WebInspector.ExtensionServer.prototype._onAddRequestHeaders):
22806         (WebInspector.ExtensionServer.prototype._handleOpenURL):
22807         (WebInspector.ExtensionServer.prototype._onGetResourceContent):
22808         (WebInspector.ExtensionServer.prototype._onSetResourceContent):
22809         (WebInspector.ExtensionServer.prototype._notifyResourceAdded):
22810         (WebInspector.ExtensionServer.prototype._notifyUISourceCodeContentCommitted):
22811         (WebInspector.ExtensionServer.prototype._notifyRequestFinished):
22812         * inspector/front-end/FileContentView.js:
22813         (WebInspector.FileContentView.prototype._metadataReceived):
22814         (WebInspector.FileContentView.FileContentProvider.prototype.requestContent):
22815         * inspector/front-end/FileSystemModel.js:
22816         (WebInspector.FileSystemModel.prototype._frameAdded):
22817         (WebInspector.FileSystemModel.prototype._frameNavigated):
22818         (WebInspector.FileSystemModel.prototype._frameDetached):
22819         * inspector/front-end/FileSystemView.js:
22820         (WebInspector.FileSystemView.EntryTreeElement.prototype.onselect):
22821         (WebInspector.FileSystemView.EntryTreeElement.prototype.refresh):
22822         * inspector/front-end/HandlerRegistry.js:
22823         (WebInspector.HandlerRegistry.prototype._appendHrefItems):
22824         * inspector/front-end/HeapSnapshotLoader.js:
22825         (WebInspector.HeapSnapshotLoader.prototype.write):
22826         * inspector/front-end/HeapSnapshotView.js:
22827         (WebInspector.HeapSnapshotView.prototype._changeBase):
22828         (WebInspector.HeapProfileHeader.prototype.load):
22829         (WebInspector.HeapProfileHeader.prototype._snapshotReceived):
22830         * inspector/front-end/IndexedDBModel.js:
22831         (WebInspector.IndexedDBModel.prototype._frameNavigated):
22832         (WebInspector.IndexedDBModel.prototype._frameDetached):
22833         * inspector/front-end/IndexedDBViews.js:
22834         (WebInspector.IDBDataView.prototype._keyColumnHeaderFragment):
22835         * inspector/front-end/JavaScriptSourceFrame.js:
22836         (WebInspector.JavaScriptSourceFrame.prototype._onFormattedChanged):
22837         (WebInspector.JavaScriptSourceFrame.prototype._breakpointAdded):
22838         (WebInspector.JavaScriptSourceFrame.prototype._breakpointRemoved):
22839         (WebInspector.JavaScriptSourceFrame.prototype._consoleMessageAdded):
22840         (WebInspector.JavaScriptSourceFrame.prototype._consoleMessageRemoved):
22841         (WebInspector.JavaScriptSourceFrame.prototype._handleGutterClick):
22842         (WebInspector.JavaScriptSourceFrame.prototype._continueToLine):
22843         * inspector/front-end/MemoryStatistics.js:
22844         (WebInspector.MemoryStatistics.prototype.show):
22845         * inspector/front-end/NavigatorView.js:
22846         (WebInspector.NavigatorView.prototype._uiSourceCodeTitleChanged):
22847         (WebInspector.NavigatorView.prototype._uiSourceCodeWorkingCopyChanged):
22848         (WebInspector.NavigatorView.prototype._uiSourceCodeWorkingCopyCommitted):
22849         (WebInspector.NavigatorView.prototype._uiSourceCodeFormattedChanged):
22850         * inspector/front-end/NetworkLog.js:
22851         (WebInspector.NetworkLog.prototype._onRequestStarted):
22852         * inspector/front-end/NetworkManager.js:
22853         (WebInspector.NetworkManager.prototype._cacheDisabledSettingChanged):
22854         * inspector/front-end/NetworkPanel.js:
22855         (WebInspector.NetworkLogView.prototype._onRequestUpdated):
22856         (WebInspector.NetworkLogView.prototype._mainFrameNavigated):
22857         (WebInspector.NetworkPanel.prototype.reveal):
22858         (WebInspector.NetworkPanel.prototype.appendApplicableItems):
22859         * inspector/front-end/NetworkUISourceCodeProvider.js:
22860         (WebInspector.NetworkUISourceCodeProvider.prototype._parsedScriptSource):
22861         (WebInspector.NetworkUISourceCodeProvider.prototype._resourceAdded):
22862         * inspector/front-end/ObjectPopoverHelper.js:
22863         (WebInspector.ObjectPopoverHelper.prototype.):
22864         (WebInspector.ObjectPopoverHelper.prototype._showObjectPopover):
22865         * inspector/front-end/PresentationConsoleMessageHelper.js:
22866         (WebInspector.PresentationConsoleMessageHelper.prototype._consoleMessageAdded):
22867         (WebInspector.PresentationConsoleMessageHelper.prototype._parsedScriptSource):
22868         * inspector/front-end/ProfilesPanel.js:
22869         * inspector/front-end/ResourceScriptMapping.js:
22870         (WebInspector.ResourceScriptMapping.prototype.rawLocationToUILocation):
22871         (WebInspector.ResourceScriptMapping.prototype._uiSourceCodeAddedToWorkspace):
22872         (WebInspector.ResourceScriptFile.prototype._workingCopyCommitted):
22873         (WebInspector.ResourceScriptFile.prototype._workingCopyChanged):
22874         * inspector/front-end/ResourceTreeModel.js:
22875         (WebInspector.ResourceTreeModel.prototype._onRequestFinished):
22876         (WebInspector.ResourceTreeModel.prototype._consoleMessageAdded):
22877         * inspector/front-end/ResourcesPanel.js:
22878         (WebInspector.ResourcesPanel.prototype._databaseAdded):
22879         (WebInspector.ResourcesPanel.prototype._domStorageAdded):
22880         (WebInspector.IndexedDBTreeElement.prototype._indexedDBAdded):
22881         (WebInspector.IndexedDBTreeElement.prototype._indexedDBRemoved):
22882         (WebInspector.IndexedDBTreeElement.prototype._indexedDBLoaded):
22883         (WebInspector.FileSystemListTreeElement.prototype._fileSystemAdded):
22884         (WebInspector.FileSystemListTreeElement.prototype._fileSystemRemoved):
22885         (WebInspector.FileSystemListTreeElement.prototype._fileSystemTreeElementByName):
22886         (WebInspector.SearchResultsTreeElementsTraverser.prototype._traverseNext):
22887         (WebInspector.SearchResultsTreeElementsTraverser.prototype._traversePrevious):
22888         * inspector/front-end/RevisionHistoryView.js:
22889         (WebInspector.RevisionHistoryView.prototype._uiSourceCodeRemoved):
22890         * inspector/front-end/SASSSourceMapping.js:
22891         (rawLocationToUILocation):
22892         * inspector/front-end/ScopeChainSidebarPane.js:
22893         (WebInspector.ScopeChainSidebarPane.prototype.update):
22894         * inspector/front-end/Script.js:
22895         (WebInspector.Script.Location.prototype.uiLocation):
22896         * inspector/front-end/ScriptFormatter.js:
22897         (WebInspector.ScriptFormatter.prototype.get _worker):
22898         * inspector/front-end/ScriptsPanel.js:
22899         (WebInspector.ScriptsPanel.prototype._uiSourceCodeAdded):
22900         (WebInspector.ScriptsPanel.prototype._uiSourceCodeRemoved):
22901         (WebInspector.ScriptsPanel.prototype._editorClosed):
22902         (WebInspector.ScriptsPanel.prototype._editorSelected):
22903         (WebInspector.ScriptsPanel.prototype._scriptSelected):
22904         (WebInspector.ScriptsPanel.prototype.canSearchAndReplace):
22905         (WebInspector.ScriptsPanel.prototype.replaceSelectionWith):
22906         (WebInspector.ScriptsPanel.prototype.replaceAllWith):
22907         (WebInspector.ScriptsPanel.prototype._toggleBreakpoint):
22908         (WebInspector.ScriptsPanel.prototype.set _fileRenamed):
22909         (WebInspector.ScriptsPanel.prototype._appendUISourceCodeItems):
22910         * inspector/front-end/ScriptsPanelDescriptor.js:
22911         (WebInspector.ScriptsPanelDescriptor.prototype.appendApplicableItems):
22912         * inspector/front-end/StylesSourceMapping.js:
22913         (WebInspector.StylesSourceMapping.prototype.rawLocationToUILocation):
22914         (WebInspector.StylesSourceMapping.prototype._uiSourceCodeAddedToWorkspace):
22915         * inspector/front-end/TabbedEditorContainer.js:
22916         (WebInspector.TabbedEditorContainer.prototype._scrollChanged):
22917         (WebInspector.TabbedEditorContainer.prototype._selectionChanged):
22918         (WebInspector.TabbedEditorContainer.prototype._tabClosed):
22919         (WebInspector.TabbedEditorContainer.prototype._tabSelected):
22920         (WebInspector.TabbedEditorContainer.prototype._uiSourceCodeTitleChanged):
22921         (WebInspector.TabbedEditorContainer.prototype._uiSourceCodeWorkingCopyChanged):
22922         (WebInspector.TabbedEditorContainer.prototype._uiSourceCodeWorkingCopyCommitted):
22923         (WebInspector.TabbedEditorContainer.prototype._uiSourceCodeFormattedChanged):
22924         * inspector/front-end/TimelineModel.js:
22925         (WebInspector.TimelineModelLoader.prototype.write):
22926         * inspector/front-end/UISourceCodeFrame.js:
22927         (WebInspector.UISourceCodeFrame.prototype._onFormattedChanged):
22928         * inspector/front-end/Workspace.js:
22929         (WebInspector.WorkspaceController.prototype._frameAdded):
22930         (WebInspector.Project.prototype._fileAdded):
22931         (WebInspector.Project.prototype._fileRemoved):
22932
22933 2012-11-05  Pavel Feldman  <pfeldman@chromium.org>
22934
22935         Web Inspector: render message bubbles in CodeMirror experiment.
22936         https://bugs.webkit.org/show_bug.cgi?id=101164
22937
22938         Reviewed by Vsevolod Vlasov.
22939
22940         It sounds like addLineWidget just makes it happen.
22941
22942         * inspector/front-end/CodeMirrorTextEditor.js:
22943         (WebInspector.CodeMirrorTextEditor):
22944         (WebInspector.CodeMirrorTextEditor.prototype.addDecoration):
22945         (WebInspector.CodeMirrorTextEditor.prototype.get if):
22946         (WebInspector.CodeMirrorTextEditor.prototype.removeDecoration):
22947         (WebInspector.CodeMirrorTextEditor.prototype._change):
22948         * inspector/front-end/DefaultTextEditor.js:
22949         (.preventDefaultOnMouseUp):
22950         * inspector/front-end/PresentationConsoleMessageHelper.js:
22951         (WebInspector.PresentationConsoleMessageHelper):
22952         * inspector/front-end/cm/cmdevtools.css:
22953         (.CodeMirror .webkit-html-message-bubble):
22954         (.CodeMirror .webkit-html-message-bubble img):
22955         (.CodeMirror .webkit-html-warning-message):
22956         (.CodeMirror .webkit-html-error-message):
22957
22958 2012-11-05  Thiago Marcos P. Santos  <thiago.santos@intel.com>
22959
22960         Validate CSS Device Adaptation properties and resolve shorthands
22961         https://bugs.webkit.org/show_bug.cgi?id=95962
22962
22963         Reviewed by Alexis Menard.
22964
22965         Add the missing keywords and properties for the viewport at-rule.
22966         Note that we have to mark that we are inside a viewport scope because
22967         some properties are not validated as they would be inside a style
22968         rule. As an example, the semantics of CSSPropertyWidth are completely
22969         different: on a viewport rule, it stands for a shorthand for the
22970         minimum and maximum width.
22971
22972         Test: css3/device-adapt/viewport-properties-validation.html
22973
22974         * css/CSSComputedStyleDeclaration.cpp:
22975         (WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue):
22976         * css/CSSParser.cpp:
22977         (WebCore::CSSParser::parseValue):
22978         (WebCore):
22979         (WebCore::CSSParser::parseViewportProperty):
22980         (WebCore::CSSParser::parseViewportShorthand):
22981         * css/CSSParser.h:
22982         * css/CSSProperty.cpp:
22983         (WebCore::CSSProperty::isInheritedProperty):
22984         * css/CSSPropertyNames.in:
22985         * css/CSSValueKeywords.in:
22986
22987 2012-11-05  Sheriff Bot  <webkit.review.bot@gmail.com>
22988
22989         Unreviewed, rolling out r133286, r133385, and r133394.
22990         http://trac.webkit.org/changeset/133286
22991         http://trac.webkit.org/changeset/133385
22992         http://trac.webkit.org/changeset/133394
22993         https://bugs.webkit.org/show_bug.cgi?id=101198
22994
22995         Broke image placement on some web sites. (Requested by kling
22996         on #webkit).
22997
22998         * css/StyleResolver.cpp:
22999         (WebCore::StyleResolver::sweepMatchedPropertiesCache):
23000         (WebCore::StyleResolver::matchAllRules):
23001         (WebCore::StyleResolver::canShareStyleWithElement):
23002         * dom/Attr.cpp:
23003         (WebCore::Attr::detachFromElementWithValue):
23004         * dom/Element.cpp:
23005         (WebCore::Element::~Element):
23006         (WebCore::Element::detachAttribute):
23007         (WebCore::Element::getAttribute):
23008         (WebCore::Element::setAttributeNode):
23009         (WebCore::Element::removeAttributeInternal):
23010         (WebCore::Element::getAttributeNode):
23011         (WebCore::Element::getAttributeNodeNS):
23012         (WebCore::Element::normalizeAttributes):
23013         (WebCore::Element::attrIfExists):
23014         (WebCore::Element::ensureAttr):
23015         (WebCore::Element::cloneAttributesFromElement):
23016         * dom/Element.h:
23017         (Element):
23018         (WebCore::Element::updateInvalidAttributes):
23019         * dom/ElementAttributeData.cpp:
23020         (WebCore::MutableElementAttributeData::MutableElementAttributeData):
23021         (WebCore):
23022         (WebCore::attrListMap):
23023         (WebCore::attrListForElement):
23024         (WebCore::ensureAttrListForElement):
23025         (WebCore::removeAttrListForElement):
23026         (WebCore::findAttrInList):
23027         (WebCore::ElementAttributeData::attrIfExists):
23028         (WebCore::ElementAttributeData::ensureAttr):
23029         (WebCore::ElementAttributeData::setAttr):
23030         (WebCore::ElementAttributeData::removeAttr):
23031         (WebCore::ElementAttributeData::detachAttrObjectsFromElement):
23032         (WebCore::ElementAttributeData::reportMemoryUsage):
23033         (WebCore::ElementAttributeData::cloneDataFrom):
23034         (WebCore::ElementAttributeData::clearAttributes):
23035         (WebCore::ElementAttributeData::getAttributeNode):
23036         * dom/ElementAttributeData.h:
23037         (WebCore):
23038         (WebCore::ElementAttributeData::attributeStyle):
23039         (WebCore::ElementAttributeData::setAttributeStyle):
23040         (ElementAttributeData):
23041         (WebCore::ElementAttributeData::ElementAttributeData):
23042         * dom/Node.h:
23043         (WebCore):
23044         (WebCore::Node::hasAttrList):
23045         (WebCore::Node::attributeStyleDirty):
23046         (WebCore::Node::setAttributeStyleDirty):
23047         (WebCore::Node::clearAttributeStyleDirty):
23048         (Node):
23049         (WebCore::Node::setHasAttrList):
23050         (WebCore::Node::clearHasAttrList):
23051         (WebCore::Node::isStyleAttributeValid):
23052         (WebCore::Node::setIsStyleAttributeValid):
23053         (WebCore::Node::clearIsStyleAttributeValid):
23054         * dom/StyledElement.cpp:
23055         (WebCore::StyledElement::updateStyleAttribute):
23056         (WebCore::StyledElement::attributeChanged):
23057         (WebCore::StyledElement::styleAttributeChanged):
23058         (WebCore::StyledElement::inlineStyleChanged):
23059         (WebCore::StyledElement::updateAttributeStyle):
23060         * dom/StyledElement.h:
23061         (StyledElement):
23062         (WebCore::StyledElement::invalidateStyleAttribute):
23063         (WebCore::StyledElement::attributeStyle):
23064         * inspector/InspectorCSSAgent.cpp:
23065         (WebCore::InspectorCSSAgent::buildObjectForAttributesStyle):
23066
23067 2012-11-05  Simon Hausmann  <simon.hausmann@digia.com>
23068
23069         Unreviewed trivial Qt build fix.
23070
23071         Surround imports from QtGui by QT_{BEGIN,END}_NAMESPACE to fix namespaced
23072         builds.
23073
23074         * platform/graphics/qt/GraphicsContextQt.cpp:
23075         * platform/graphics/qt/ImageQt.cpp:
23076
23077 2012-11-05  Shinya Kawanaka  <shinyak@chromium.org>
23078
23079         [Shadow] ShadowRoot type is not set correctly.
23080         https://bugs.webkit.org/show_bug.cgi?id=101188
23081
23082         Reviewed by Hajime Morita.
23083
23084         ShadowRoot type is not set correctly in Release build. We have had to remove #ifndef block.
23085
23086         Test: fast/dom/shadow/shadowroot-type.html
23087
23088         * dom/ShadowRoot.cpp:
23089         (WebCore::ShadowRoot::create):
23090         * testing/Internals.cpp:
23091         (WebCore::Internals::shadowRootType):
23092         (WebCore):
23093         * testing/Internals.h:
23094         (Internals):
23095         * testing/Internals.idl:
23096
23097 2012-11-05  Kent Tamura  <tkent@chromium.org>
23098
23099         BaseChooserOnlyDateAndTimeInputType should implement DateTimeChooserClient
23100         https://bugs.webkit.org/show_bug.cgi?id=101038
23101
23102         Reviewed by Hajime Morita.
23103
23104         Add DateTimeChooserClient behavior to BaseChooserOnlyDateAndTimeInputType.
23105         It means that date/time input elements without
23106         ENABLE_INPUT_MULTIPLE_FIELDS_UI can open date/time choosers by
23107         DOMActivate event.
23108
23109         This patch doesn't change behavior yet because Chromimum-Android port
23110         intercepts user events and doesn't deliver them to date/time input
23111         elements. <http://crbug.com/159381>
23112
23113         * html/BaseChooserOnlyDateAndTimeInputType.cpp:
23114         Add DateTimeChooserClient behavior. The code is similar to
23115         PickerIndicatorElement.
23116         (WebCore::BaseChooserOnlyDateAndTimeInputType::~BaseChooserOnlyDateAndTimeInputType):
23117         Closes DateTimeChooser.
23118         (WebCore::BaseChooserOnlyDateAndTimeInputType::handleDOMActivateEvent):
23119         Open DateTimeChooser if
23120          - The element is not disabled,
23121          - The element is not read-only,
23122          - The element has a renderer,
23123          - This event is created by a user gesture, and
23124          - The element has no DateTimeChooser.
23125         (WebCore::BaseChooserOnlyDateAndTimeInputType::detach):
23126         Closes DateTimeChooser.
23127         (WebCore::BaseChooserOnlyDateAndTimeInputType::didChooseValue):
23128         Set a string value coming from a chooser to the input element.
23129         (WebCore::BaseChooserOnlyDateAndTimeInputType::didEndChooser):
23130         Clear m_dateTimeChooser when the chooser was closed.
23131         (WebCore::BaseChooserOnlyDateAndTimeInputType::closeDateTimeChooser):
23132         Requests to close the chooser.
23133         * html/BaseChooserOnlyDateAndTimeInputType.h:
23134         (BaseChooserOnlyDateAndTimeInputType):
23135          - Implement DateTimeChooserClient
23136          - Add closeDateTimeChooser helper function.
23137          - Add detach override.
23138          - Add m_dateTimeChooser.
23139         * html/HTMLInputElement.cpp:
23140         (WebCore::HTMLInputElement::setupDateTimeChooserParameters):
23141         Added. The code is moved from PickerIndicatorElement.cpp in order to
23142         share it with BaseChooserOnlyDateAndTimeInputType.
23143         * html/HTMLInputElement.h:
23144         (HTMLInputElement): Declare setupDateTimeChooserParameters.
23145         * html/shadow/PickerIndicatorElement.cpp:
23146         (WebCore::PickerIndicatorElement::openPopup):
23147         Move some code to HTMLInputElement::setupDateTimeChooserParameters.
23148
23149 2012-11-04  Julien Chaffraix  <jchaffraix@webkit.org>
23150
23151         Fix the collapsing border code to handle mixed directionality at the row level
23152         https://bugs.webkit.org/show_bug.cgi?id=101060
23153
23154         Reviewed by Ojan Vafai.
23155
23156         After bug 87900, we support mixed directionality at the row-group level. For coherency
23157         - as the underlying code didn't support it - we were artificially ignoring 'direction'
23158         below the row-group. This change relaxes the restriction and patches the collapsing
23159         borders code to query the right style and border.
23160
23161         Tests: fast/table/border-collapsing/table-ltr-rows-mixed-direction.html
23162                fast/table/border-collapsing/table-rtl-row-mixed-direction.html
23163
23164         * rendering/RenderTable.cpp:
23165         (WebCore::RenderTable::tableStartBorderAdjoiningCell):
23166         (WebCore::RenderTable::tableEndBorderAdjoiningCell):
23167         Changed to query the row's direction.
23168
23169         * rendering/RenderTableCell.cpp:
23170         (WebCore::RenderTableCell::hasStartBorderAdjoiningTable):
23171         (WebCore::RenderTableCell::hasEndBorderAdjoiningTable):
23172         Added 2 helper functions. They determine if a specific cell's border
23173         adjoins the table. This code is required as the last cell's end border
23174         can be resolved against the start border.
23175
23176         (WebCore::RenderTableCell::computeCollapsedStartBorder):
23177         (WebCore::RenderTableCell::computeCollapsedEndBorder):
23178         Updated these functions now that being the start / end column doesn't mean
23179         that we have to resolve against the row / row-group / table's border.
23180
23181         * rendering/RenderTableCell.h:
23182         (WebCore::RenderTableCell::styleForCellFlow):
23183         Updated to return the row's style.
23184
23185         * rendering/RenderTableRow.cpp:
23186         (WebCore::RenderTableRow::borderAdjoiningStartCell):
23187         (WebCore::RenderTableRow::borderAdjoiningEndCell):
23188         * rendering/RenderTableSection.cpp:
23189         (WebCore::RenderTableSection::borderAdjoiningStartCell):
23190         (WebCore::RenderTableSection::borderAdjoiningEndCell):
23191         Updated these functions to work with mixed directionality.
23192
23193         * rendering/RenderTableSection.cpp:
23194         (WebCore::RenderTableSection::setLogicalPositionForCell):
23195         Changed this function to use the section's direction. This is wrong and should be changed
23196         once we properly fix the collapsing border code.
23197
23198         (WebCore::RenderTableSection::logicalRectForWritingModeAndDirection):
23199         Added a FIXME.
23200
23201         * rendering/style/CollapsedBorderValue.h:
23202         (WebCore::CollapsedBorderValue::width):
23203         This is a bug in our implementation: we used to return a non-zero width for inexistant borders (per CSS 2.1,
23204         'border-style: off | hidden' should have a 0 width). This is covered by our existing tests (among others by
23205         fast/table/border-collapsing/last-cell-left-border-hidden-table-ltr-section-rtl.html).
23206
23207 2012-11-04  Andrey Adaikin  <aandrey@chromium.org>
23208
23209         Web Inspector: [Canvas] do not blow up the capturing log
23210         https://bugs.webkit.org/show_bug.cgi?id=100752
23211
23212         Reviewed by Pavel Feldman.
23213
23214         Clear obsolete calls in the canvas 2D capturing log in runtime.
23215         Now we store in the log only minimum number of calls that are necessary to replay a
23216         canvas 2D context. To achieve that we find in runtime those calls in the log that no
23217         longer contribute to the final context state and remove them.
23218         These are the rules according which we find and remove such calls:
23219         - all PATH methods between a clip() call and beginPath() call can be removed
23220         - all MATRIX methods before a restore() or setTransform() call but after any PATH or corresponding save() method
23221         - all consecutive save() + restore() calls
23222
23223         Tests: inspector/profiler/canvas2d/canvas2d-api-changes.html
23224                inspector/profiler/canvas2d/canvas2d-profiler-capturing-basics.html
23225
23226         * inspector/InjectedScriptCanvasModuleSource.js:
23227         (.):
23228
23229 2012-11-04  Shinya Kawanaka  <shinyak@chromium.org>
23230
23231         [Shadow] ShadowRoot should have a method to return ShadowRootType.
23232         https://bugs.webkit.org/show_bug.cgi?id=101178
23233
23234         Reviewed by Hajime Morita.
23235
23236         When we style PseudoCustomElement, we have to know ShadowRootType.
23237         We would like to expose a method to get ShadowRootType also in Release mode.
23238
23239         This is a preparation patch for Bug 101170.
23240
23241         * dom/ShadowRoot.h:
23242         (ShadowRoot):
23243
23244 2012-11-04  Keishi Hattori  <keishi@webkit.org>
23245
23246         Introduce Month class to calendar picker
23247         https://bugs.webkit.org/show_bug.cgi?id=101024
23248
23249         Reviewed by Kent Tamura.
23250
23251         Month class needs to be introduced to implement a month picker. This
23252         patch just introduces the Month class into the calendar picker without
23253         changing the current behavior.
23254
23255         No new tests. Covered by existing calendar-picker-*.html tests.
23256
23257         * Resources/pagepopups/calendarPicker.js:
23258         (Month.prototype.toLocaleString): Returns a localized month string.
23259         (Month): Takes a Month object, number representing the month, or year and month numbers.
23260         (Month.parse): Returns a new Month from an ISO month string.
23261         (Month.createFromDate): Returns a new Month containing the given datetime.
23262         (Month.prototype.equals): Returns true if the given month is the same.
23263         (Month.prototype.previous): Returns the previous month.
23264         (Month.prototype.next): Returns the next month.
23265         (Month.prototype.startDate): Returns a datetime that is the start of this month. The value is inclusive.
23266         (Month.prototype.endDate): Returns a datetime that is the end of this month. The value is exclusive.
23267         (Month.prototype.valueOf): Returns a number representing the month.
23268         (Month.prototype.toString): Returns an ISO month string.
23269         (YearMonthController): Use Month object.
23270         (YearMonthController.prototype.attachTo): Year 275760 ends in September so use the year before to measure the label width.
23271         (YearMonthController.prototype.setMonth): Take a month object.
23272         (YearMonthController.prototype._redraw): Use ISO month string for element.dataset.value.
23273         (YearMonthController.prototype._handleYearMonthChange):
23274         (YearMonthController.prototype.moveRelatively):
23275         (DaysTable): Use Month object.
23276         (DaysTable.prototype._renderMonth): Take a month object. Testing for isNaN is moved up to fix a bug when showing September, 275760.
23277         (DaysTable.prototype._navigateToMonth): Take a month object.
23278         (DaysTable.prototype._navigateToMonthWithAnimation): Take a month object.
23279         (DaysTable.prototype.navigateToMonthAndKeepSelectionPosition): Take a month object.
23280         (DaysTable.prototype.selectDate):
23281         (DaysTable.prototype._maybeSetPreviousMonth): Use Month object to calculate the previous month.
23282         (DaysTable.prototype._maybeSetNextMonth): Use Month object to calculate the next month.
23283
23284 2012-11-04  Halton Huo  <halton.huo@intel.com>
23285
23286         [EFL] Use _LIBRARIES instead of _LIBRARY
23287         https://bugs.webkit.org/show_bug.cgi?id=101042
23288
23289         Reviewed by Gyuyoung Kim.
23290
23291         In CMake Find files, _LIBRARY is intended for internal use, should
23292         use _LIBRARIES instead.
23293
23294         * PlatformEfl.cmake: s/_LIBRARY}/_LIBRARIES}
23295
23296 2012-11-04  MORITA Hajime  <morrita@google.com>
23297
23298         Shadow DOM should be able to be disabled per context.
23299         https://bugs.webkit.org/show_bug.cgi?id=101173
23300
23301         Reviewed by Dimitri Glazkov.
23302
23303         This change pulls back relevant bits from r131549. Note that if
23304         the the port enables runtime Shadow DOM flag, this can cause slow
23305         down on some Chromium page cycler test cases (which r131549
23306         attempted to fix).
23307
23308         This change is temporal and the flags should be switched back from
23309         ContextFeatures to RuntimeEnabledFeatures once it gains sufficent
23310         stability.
23311
23312         * dom/ContextFeatures.cpp:
23313         (WebCore::ContextFeatures::shadowDOMEnabled):
23314         (WebCore):
23315         * dom/ContextFeatures.h:
23316         * dom/Position.cpp:
23317         (WebCore::Position::Position):
23318         (WebCore::Position::findParent):
23319         * dom/TreeScope.cpp:
23320         (WebCore::TreeScope::getSelection):
23321         * html/HTMLTagNames.in:
23322         * html/shadow/HTMLContentElement.cpp:
23323         (WebCore::HTMLContentElement::contentTagName):
23324         * page/DOMWindow.idl:
23325
23326 2012-11-04  Shinya Kawanaka  <shinyak@chromium.org>
23327
23328         [Shadow] Implement custom pseudo-elements styling
23329         https://bugs.webkit.org/show_bug.cgi?id=100812
23330
23331         Reviewed by Hajime Morita.
23332
23333         Instead of using ElementRareData::m_shadowPseudoId, we use 'pseudo' attribute.
23334
23335         Later we would like to remove Element::shadowPseudoId and Element::setShadowPseudoId
23336         and use pseudo()/setPseudo() instead (Bug 101171).
23337
23338         Test: fast/dom/shadow/styling-pseudo-attribute.html
23339
23340         * dom/Element.cpp:
23341         (WebCore::Element::shadowPseudoId):
23342         (WebCore::Element::setShadowPseudoId):
23343         * dom/ElementRareData.cpp:
23344         (WebCore::ElementRareData::reportMemoryUsage):
23345         * dom/ElementRareData.h:
23346         (ElementRareData):
23347
23348 2012-11-04  Kent Tamura  <tkent@chromium.org>
23349
23350         BaseChooserOnlyDateAndTimeInputType should have BaseClickableWithKeyInputType behavior
23351         https://bugs.webkit.org/show_bug.cgi?id=101039
23352
23353         Reviewed by Hajime Morita.
23354
23355         Add BaseClickableWithKeyInputType behavior to
23356         BaseChooserOnlyDateAndTimeInputType. It means date/time input types
23357         without ENABLE_INPUT_MULTIPLE_FIELDS_UI receive DOMActivate events by
23358         pressing space or enter key. They're going to open a date/time chooser
23359         by DOMActive event.
23360
23361         Because BaseChooserOnlyDateAndTimeInputType inherits from
23362         BaseDateAndTimeInputType, it can't inherit
23363         BaseClickableWithKeyInputType. So, this patch adds static helper
23364         functions to BaseClickableWithKeyInputType, and
23365         BaseChooserOnlyDateAndTimeInputType uses them.
23366
23367         This patch doesn't change behavior yet because Chromimum-Android port
23368         intercepts user events and doesn't deliver them to date/time input
23369         elements.
23370
23371         * html/BaseChooserOnlyDateAndTimeInputType.cpp:
23372         (WebCore::BaseChooserOnlyDateAndTimeInputType::handleDOMActivateEvent):
23373         Add an empty implementation with a FIXME comment.
23374         (WebCore::BaseChooserOnlyDateAndTimeInputType::handleKeydownEvent):
23375         Add BaseClickableWithKeyInputType behavior by a helper function.
23376         (WebCore::BaseChooserOnlyDateAndTimeInputType::handleKeypressEvent): Ditto.
23377         (WebCore::BaseChooserOnlyDateAndTimeInputType::handleKeyupEvent): Ditto.
23378         (WebCore::BaseChooserOnlyDateAndTimeInputType::accessKeyAction): Ditto.
23379         * html/BaseChooserOnlyDateAndTimeInputType.h:
23380         (BaseChooserOnlyDateAndTimeInputType): Add function declarations.
23381         * html/BaseClickableWithKeyInputType.cpp:
23382         Add static helper functions, and existing member functions use them.
23383         * html/BaseClickableWithKeyInputType.h:
23384         (BaseClickableWithKeyInputType): Add declarations of the helper functions.
23385         * html/InputType.h:
23386         (InputType): Make dispatchSimulatedClickIfActive public because it is
23387         called from a helper function.
23388
23389 2012-11-04  Sheriff Bot  <webkit.review.bot@gmail.com>
23390
23391         Unreviewed, rolling out r133416.
23392         http://trac.webkit.org/changeset/133416
23393         https://bugs.webkit.org/show_bug.cgi?id=101169
23394
23395         Broke world selection by right click (Requested by rniwa on
23396         #webkit).
23397
23398         * page/EventHandler.cpp:
23399         (WebCore::EventHandler::handleGestureForTextSelectionOrContextMenu):
23400         (WebCore::EventHandler::sendContextMenuEvent):
23401
23402 2012-11-04  Gyuyoung Kim  <gyuyoung.kim@samsung.com>
23403
23404         Missing ASCIILiteral in a place of accessibility
23405         https://bugs.webkit.org/show_bug.cgi?id=101160
23406
23407         Reviewed by Darin Adler.
23408
23409         ASCIILiteral usage is being missed in a spot of accessibliity.
23410
23411         * accessibility/AccessibilityMediaControls.cpp:
23412         (WebCore::AccessibilityMediaTimeDisplay::accessibilityDescription):
23413
23414 2012-11-03  Balazs Kelemen  <kbalazs@webkit.org>
23415
23416         [Qt][WK2] setPlatformStrategies always asserts after r132744
23417         https://bugs.webkit.org/show_bug.cgi?id=100838
23418
23419         Reviewed by Simon Hausmann.
23420
23421         Reland with build fixes.
23422
23423         The problem here is that we use QWebSettings::clearMemoryCaches, a WebKit1 API
23424         from the injected bundle, which calls initializeWebCoreQt and it sets the platform
23425         strategies to the one for WebKit1. We should stop using WebKit1 API's from WebKit2
23426         code. In order to keep the behavior, this patch adds exported helpers to WebCore
23427         that can be used from DumpRenderTree and WebKitTestRunner. This is the same idea
23428         as WebCoreTestSupport but these helpers are specific to Qt. Technically we could
23429         add it to the WebKit1 API for the time being, but my goal was to move in the direction
23430         of removing the WebKit1 dependency from WebKitTestRunner. We only build the file
23431         in non production mode.
23432
23433         Basically covered by all tests.
23434
23435         * Target.pri:
23436         * WebCore.pri: We need to link against fontconfig (only in non-production mode) since
23437         initializeTestFonts uses it.
23438         * platform/qt/QtTestSupport.cpp: Added. I choose GPL license because code from qwebsettings.cpp
23439         is also under that.
23440         (WebKit):
23441         (WebKit::QtTestSupport::clearMemoryCaches): This is basically a copy of QWebSettings::clearMemoryCaches
23442         without calling initializeWebCoreQt.
23443         (WebKit::QtTestSupport::initializeTestFonts): I moved this code here as well now that we have to expose
23444         symbols from WebCore anyway. The advantage is that now we don't have to build it twice and we don't need
23445         additional files to forward it from the directory of DumpRenderTree for WebKitTestRunner.
23446         I added a call to FontCace::invalidate in the case when the font set has been changed so that it will do
23447         the job even if we would stop clearing all caches between tests. Also moved the call to
23448         QFontDatabase::removeAllApplicationFonts from callers to here.
23449         * platform/qt/QtTestSupport.h:
23450         (WebKit):
23451         (QtTestSupport):
23452
23453 2012-11-04  Florin Malita  <fmalita@chromium.org>
23454
23455         Color-profile property triggers assert
23456         https://bugs.webkit.org/show_bug.cgi?id=101080
23457
23458         Reviewed by Dirk Schulze.
23459
23460         CSSPropertyColorProfile is not handled in StyleResolver::applySVGProperty(), triggering the
23461         unimplemented property assert. Adding a stub entry to avoid that.
23462
23463         Test: svg/css/color-profile-crash.html
23464
23465         * css/SVGCSSStyleSelector.cpp:
23466         (WebCore::StyleResolver::applySVGProperty):
23467
23468 2012-11-04  Kaustubh Atrawalkar  <kaustubh@motorola.com>
23469
23470         Unable to copy text on disabled input fields on long press gesture
23471         https://bugs.webkit.org/show_bug.cgi?id=99698
23472
23473         Reviewed by Ryosuke Niwa.
23474
23475         Text from disabled input/text should be allowed to select. Replaced isContentEditable()
23476         with canStartSelection()
23477
23478         Test: fast/events/touch/gesture/disabled-input-text-selection.html
23479
23480         * page/EventHandler.cpp:
23481         (WebCore::EventHandler::handleGestureLongPress):
23482
23483 2012-11-03  Sheriff Bot  <webkit.review.bot@gmail.com>
23484
23485         Unreviewed, rolling out r133403, r133404, and r133409.
23486         http://trac.webkit.org/changeset/133403
23487         http://trac.webkit.org/changeset/133404
23488         http://trac.webkit.org/changeset/133409
23489         https://bugs.webkit.org/show_bug.cgi?id=101158
23490
23491         "Broke tests" (Requested by kbalazs on #webkit).
23492
23493         * Target.pri:
23494         * WebCore.pri:
23495         * platform/qt/QtTestSupport.h: Removed.
23496
23497 2012-11-03  Alexey Proskuryakov  <ap@apple.com>
23498
23499         Get rid of USE(CFURLSTORAGESESSIONS)
23500         https://bugs.webkit.org/show_bug.cgi?id=101131
23501
23502         Reviewed by Sam Weinig.
23503
23504         This is always enabled on CFNetwork based platforms.
23505
23506         * WebCore.exp.in:
23507         * page/Settings.cpp:
23508         (WebCore::Settings::setPrivateBrowsingEnabled):
23509         * platform/mac/CookieJar.mm:
23510         (WebCore::cookies):
23511         (WebCore::cookieRequestHeaderFieldValue):
23512         (WebCore::setCookies):
23513         (WebCore::cookiesEnabled):
23514         (WebCore::getRawCookies):
23515         (WebCore::deleteCookie):
23516         * platform/network/ResourceHandle.h:
23517         (ResourceHandle):
23518         * platform/network/cf/CookieStorageCFNet.cpp:
23519         (WebCore):
23520         (WebCore::currentCFHTTPCookieStorage):
23521         * platform/network/cf/CookieStorageCFNet.h:
23522         * platform/network/cf/ResourceHandleCFNet.cpp:
23523         (WebCore::willSendRequest):
23524         (WebCore::makeFinalRequest):
23525         (WebCore::ResourceHandle::willSendRequest):
23526         (WebCore):
23527         * platform/network/cf/ResourceRequest.h:
23528         (ResourceRequest):
23529         * platform/network/cf/ResourceRequestCFNet.cpp:
23530         (WebCore::ResourceRequest::doUpdatePlatformRequest):
23531         (WebCore):
23532         * platform/network/mac/CookieStorageMac.mm:
23533         (WebCore::setCookieStoragePrivateBrowsingEnabled):
23534         * platform/network/mac/ResourceHandleMac.mm:
23535         (WebCore::shouldRelaxThirdPartyCookiePolicy):
23536         (WebCore::ResourceHandle::createNSURLConnection):
23537         (WebCore::ResourceHandle::willSendRequest):
23538         (WebCore):
23539         * platform/network/mac/ResourceRequestMac.mm:
23540         (WebCore):
23541         (WebCore::ResourceRequest::setStorageSession):
23542
23543 2012-11-03  Balazs Kelemen  <kbalazs@webkit.org>
23544
23545         [Qt][WK2] setPlatformStrategies always asserts after r132744
23546         https://bugs.webkit.org/show_bug.cgi?id=100838
23547
23548         Reviewed by Simon Hausmann.
23549
23550         Reland with build fix.
23551
23552         The problem here is that we use QWebSettings::clearMemoryCaches, a WebKit1 API
23553         from the injected bundle, which calls initializeWebCoreQt and it sets the platform
23554         strategies to the one for WebKit1. We should stop using WebKit1 API's from WebKit2
23555         code. In order to keep the behavior, this patch adds exported helpers to WebCore
23556         that can be used from DumpRenderTree and WebKitTestRunner. This is the same idea
23557         as WebCoreTestSupport but these helpers are specific to Qt. Technically we could
23558         add it to the WebKit1 API for the time being, but my goal was to move in the direction
23559         of removing the WebKit1 dependency from WebKitTestRunner. We only build the file
23560         in non production mode.
23561
23562         Basically covered by all tests.
23563
23564         * Target.pri:
23565         * WebCore.pri: We need to link against fontconfig (only in non-production mode) since
23566         initializeTestFonts uses it.
23567         * platform/qt/QtTestSupport.cpp: Added. I choose GPL license because code from qwebsettings.cpp
23568         is also under that.
23569         (WebKit):
23570         (WebKit::QtTestSupport::clearMemoryCaches): This is basically a copy of QWebSettings::clearMemoryCaches
23571         without calling initializeWebCoreQt.
23572         (WebKit::QtTestSupport::initializeTestFonts): I moved this code here as well now that we have to expose
23573         symbols from WebCore anyway. The advantage is that now we don't have to build it twice and we don't need
23574         additional files to forward it from the directory of DumpRenderTree for WebKitTestRunner.
23575         I added a call to FontCace::invalidate in the case when the font set has been changed so that it will do
23576         the job even if we would stop clearing all caches between tests. Also moved the call to
23577         QFontDatabase::removeAllApplicationFonts from callers to here.
23578         * platform/qt/QtTestSupport.h:
23579         (WebKit):
23580         (QtTestSupport):
23581
23582 2012-11-03  Sheriff Bot  <webkit.review.bot@gmail.com>
23583
23584         Unreviewed, rolling out r133397.
23585         http://trac.webkit.org/changeset/133397
23586         https://bugs.webkit.org/show_bug.cgi?id=101155
23587
23588         "Broke Qt. No way to force the damn bots to do a clean build.
23589         I'm giving up." (Requested by kbalazs on #webkit).
23590
23591         * Target.pri:
23592         * WebCore.pri:
23593         * platform/qt/QtTestSupport.h: Removed.
23594
23595 2012-11-03  Stephen White  <senorblanco@chromium.org>
23596
23597         Speculative fix to eliminate flakiness in
23598         css3/filters/blur-filter-page-scroll-self.html
23599         https://bugs.webkit.org/show_bug.cgi?id=91620.
23600         Suspicion is that a prior test is setting
23601         window.internals.settings.setEnableCompositingForFixedPosition(true),
23602         causing this test to be intermittely run on the GPU, giving different
23603         pixel results depending on test order.
23604
23605         Reviewed by Jochen Eisinger.
23606
23607         Covered by css3/filters/blur-filter-page-scroll-self.html
23608
23609         * testing/InternalSettings.cpp:
23610         (WebCore::InternalSettings::Backup::Backup):
23611         (WebCore::InternalSettings::Backup::restoreTo):
23612         * testing/InternalSettings.h:
23613         (Backup):
23614
23615 2012-11-03  Mark Rowe  <mrowe@apple.com>
23616
23617         REGRESSION (r132858): Crash below -[DOMElement setClassName:] when called with a nil string
23618
23619         Reviewed by Anders Carlsson.
23620
23621         The changes in r132858 introduced an overload of AtomicString::add for CFStrings. However, the overload
23622         that was introduced is not null safe.
23623
23624         * platform/text/cf/AtomicStringCF.cpp:
23625         (WTF::AtomicString::add): Handle a null string by returning a null StringImpl.
23626
23627 2012-11-03  Balazs Kelemen  <kbalazs@webkit.org>
23628
23629         [Qt][WK2] setPlatformStrategies always asserts after r132744
23630         https://bugs.webkit.org/show_bug.cgi?id=100838
23631
23632         Reviewed by Simon Hausmann.
23633
23634         The problem here is that we use QWebSettings::clearMemoryCaches, a WebKit1 API
23635         from the injected bundle, which calls initializeWebCoreQt and it sets the platform
23636         strategies to the one for WebKit1. We should stop using WebKit1 API's from WebKit2
23637         code. In order to keep the behavior, this patch adds exported helpers to WebCore
23638         that can be used from DumpRenderTree and WebKitTestRunner. This is the same idea
23639         as WebCoreTestSupport but these helpers are specific to Qt. Technically we could
23640         add it to the WebKit1 API for the time being, but my goal was to move in the direction
23641         of removing the WebKit1 dependency from WebKitTestRunner. We only build the file
23642         in non production mode.
23643
23644         Basically covered by all tests.
23645
23646         * Target.pri:
23647         * WebCore.pri: We need to link against fontconfig (only in non-production mode) since
23648         initializeTestFonts uses it.
23649         * platform/qt/QtTestSupport.cpp: Added. I choose GPL license because code from qwebsettings.cpp
23650         is also under that.
23651         (WebKit):
23652         (WebKit::QtTestSupport::clearMemoryCaches): This is basically a copy of QWebSettings::clearMemoryCaches
23653         without calling initializeWebCoreQt.
23654         (WebKit::QtTestSupport::initializeTestFonts): I moved this code here as well now that we have to expose
23655         symbols from WebCore anyway. The advantage is that now we don't have to build it twice and we don't need
23656         additional files to forward it from the directory of DumpRenderTree for WebKitTestRunner.
23657         I added a call to FontCace::invalidate in the case when the font set has been changed so that it will do
23658         the job even if we would stop clearing all caches between tests. Also moved the call to
23659         QFontDatabase::removeAllApplicationFonts from callers to here.
23660         * platform/qt/QtTestSupport.h:
23661         (WebKit):
23662         (QtTestSupport):
23663
23664 2012-11-03  Dan Beam  <dbeam@chromium.org>
23665
23666         Implement HTMLFormElement#requestAutocomplete and associated events
23667         https://bugs.webkit.org/show_bug.cgi?id=100557
23668
23669         Reviewed by Adam Barth.
23670
23671         Implements an initial version of the proposal for interactive autocomplete outlined in this email:
23672         http://lists.whatwg.org/htdig.cgi/whatwg-whatwg.org/2012-October/037711.html
23673
23674         The goal of this patch is to allow web authors to call formElement.requestAutocomplete(); after subscribing for
23675         autocomplete/autocompleteerror events on formElement. If the form's [autocomplete] attribute is "off" an
23676         error will be dispatched. Otherwise, a request will be issued to the FrameLoaderClient.  At the moment, the
23677         implementation in Chrome (https://codereview.chromium.org/11270018/) will simply dispatch an error until the
23678         UI on Chrome's side is built. Both autocomplete and autocompleteerror events will be dispatched asynchronously
23679         after a small delay to behave consistently in all situations and implementations.
23680
23681         Currently this is behind the feature flag REQUEST_AUTOCOMPLETE, which is disabled.
23682
23683         Test: fast/forms/form-request-autocomplete.html
23684
23685         * dom/EventNames.h:
23686         (WebCore):
23687
23688         Added autocomplete and autocompleteerror events. The autocomplete event is dispatched after a user adds more
23689         information to a form using the future UI. This is not currently dispatched in any implementation (including Chrome)
23690         but will be in the future. The autocompleteerror event is dispatched when the form has [autocomplete="off"] on the
23691         node being asked for an interactive autocomplete. The user agent may also dispatch this event if it doesn't implement
23692         this API but has turned on the feature flag, can't currently show an autocomplete UI (e.g. running headlessly or in
23693         an HTML notification, security concerns, or any other reason it desires).
23694
23695         * html/HTMLAttributeNames.in:
23696
23697         Added onautocomplete and onautocompleteerror attributes so they can be parsed when creating form elements and used
23698         as event listeners. For example:
23699
23700           <form onautocomplete="/* when autocomplete succeeds */" autocompleteerror="/* when autocomplete fails */">
23701
23702         * html/HTMLFormElement.cpp:
23703         (WebCore::HTMLFormElement::HTMLFormElement):
23704         (WebCore):
23705
23706         Added m_requestAutocompleteTimer (a timer that's used to dispatch events asynchronously) to the initializer list that
23707         triggers requestAutocompleteTimerFired when it times out.
23708
23709         (WebCore::HTMLFormElement::requestAutocomplete):
23710
23711         Called when HTMLFormElement#requestAutocomplete is called from JS (also see HTMLFormElement.idl) and decides whether
23712         to dispatch an error and exit early (in the case where autocomplete="off") or pass the request on to the
23713         FrameLoaderClient.
23714
23715         (WebCore::HTMLFormElement::finishRequestAutocomplete):
23716
23717         Called when the request for an interactive autocomplete is finished with either a success or error result. This
23718         causes an event to queue and fired after a 0 second delay. Events are owned by HTMLFormElement and reference the
23719         target element (this) until fired.
23720
23721         (WebCore::HTMLFormElement::requestAutocompleteTimerFired):
23722
23723         Called when the event timer runs out to pump the queue of current events. Events are released on dispatch.
23724
23725         (WebCore::HTMLFormElement::parseAttribute):
23726
23727         Encountering onautocomplete or onautocompleteerror attributes while parsing HTMLFormElements now adds event listeners
23728         for autocomplete an autocompleteerror events (respectively) to dispatch the value of the attribute as a script.
23729
23730         * html/HTMLFormElement.h:
23731         (HTMLFormElement):
23732
23733         Added various methods and data members as required by the implementation.
23734
23735         * html/HTMLFormElement.idl:
23736
23737         Added the method requestAutocomplete and associated DOM event handler attributes (onautocomplete/onautocompleteerror)
23738         to HTMLFormElement's public DOM API (unprefixed, as per Ian Hickson's advice). All are require the Conditional
23739         REQUEST_AUTOCOMPLETE to be enabled to be activated.
23740
23741         * loader/EmptyClients.cpp:
23742         (WebCore):
23743         (WebCore::EmptyFrameLoaderClient::didRequestAutocomplete):
23744
23745         Added noop implementation for FrameLoader::didRequestAutocomplete.
23746
23747         * loader/EmptyClients.h:
23748         (EmptyFrameLoaderClient):
23749
23750         Added FrameLoader::didRequestAutocomplete to EmptyFrameLoaderClient interface.
23751
23752         * loader/FrameLoaderClient.h:
23753         (FrameLoaderClient):
23754
23755         Added noop implementation to FrameLoaderClient interface (which is implemented chromium's FrameLoaderLoaderImpl.cpp).
23756
23757 2012-11-03  Pavel Feldman  <pfeldman@chromium.org>
23758
23759         Web Inspector: %d, %i, and %f log formatters have same result
23760         https://bugs.webkit.org/show_bug.cgi?id=101148
23761
23762         Reviewed by Alexander Pavlov.
23763
23764         Added separate formatters for %f, %i, %d and %s.
23765
23766         Test: inspector/console/console-message-format.html
23767
23768         * inspector/front-end/ConsoleMessage.js:
23769         (WebInspector.ConsoleMessageImpl.prototype.stringFormatter):
23770         (WebInspector.ConsoleMessageImpl.prototype.floatFormatter):
23771         (WebInspector.ConsoleMessageImpl.prototype.integerFormatter):
23772
23773 2012-11-03  Andreas Kling  <kling@webkit.org>
23774
23775         Decouple Attr logic from ElementAttributeData.
23776         <http://webkit.org/b/101126>
23777
23778         Reviewed by Antti Koivisto.
23779
23780         Move all logic dealing with Attr DOM nodes from ElementAttributeData to Element.
23781         This makes more sense since an Attr is tied to a single Element, but an ElementAttributeData
23782         can be shared by any number of Elements at a given time.
23783
23784         Also updated naming convention from just "Attr" to "Attr node" in the code I was touching.
23785         "Attr" is way too generic, and has been historically confused with WebCore::Attribute a lot.
23786
23787         * dom/Element.h:
23788         * dom/ElementAttributeData.h:
23789         * dom/Element.cpp:
23790         (WebCore::attrNodeListMap):
23791         (WebCore::attrNodeListForElement):
23792         (WebCore::ensureAttrNodeListForElement):
23793         (WebCore::removeAttrNodeListForElement):
23794         (WebCore::findAttrNodeInList):
23795         (WebCore::Element::~Element):
23796         (WebCore::Element::detachAttribute):
23797         (WebCore::Element::setAttributeNode):
23798         (WebCore::Element::removeAttributeInternal):
23799         (WebCore::Element::getAttributeNode):
23800         (WebCore::Element::getAttributeNodeNS):
23801         (WebCore::Element::normalizeAttributes):
23802         (WebCore::Element::attrIfExists):
23803         (WebCore::Element::ensureAttr):
23804         (WebCore::Element::detachAttrNodeFromElementWithValue):
23805         (WebCore::Element::detachAllAttrNodesFromElement):
23806         (WebCore::Element::cloneAttributesFromElement):
23807
23808             Move everything Attr-related into Element.cpp while simplifying some loops and remove
23809             conditions that are no longer needed as they used to depend on having an attributeData().
23810
23811         * dom/Node.h:
23812         (WebCore::Node::hasSyntheticAttrChildNodes):
23813         (WebCore::Node::setHasSyntheticAttrChildNodes):
23814
23815             Renamed the hasAttrList() node flag to hasSyntheticAttrChildNodes().
23816
23817         * dom/Attr.cpp:
23818         (WebCore::Attr::detachFromElementWithValue):
23819
23820             Remove awkward indirection and let the call site deal with removing the Attr node from
23821             the Element's list of Attr nodes.
23822
23823         * dom/ElementAttributeData.cpp:
23824         (WebCore::ElementAttributeData::clearAttributes):
23825
23826             Remove now-unused Element* argument.
23827
23828 2012-11-03  Pavel Feldman  <pfeldman@chromium.org>
23829
23830         REGRESSION (r132014-r132047): Webkit Inspector Window docking broken
23831         https://bugs.webkit.org/show_bug.cgi?id=101125
23832
23833         Reviewed by Vsevolod Vlasov.
23834
23835         Added "bottom" as default docked state.
23836
23837         * inspector/front-end/DockController.js:
23838         (WebInspector.DockController):
23839
23840 2012-11-02  Shinya Kawanaka  <shinyak@chromium.org>
23841
23842         [Shadow] ShadowRoot should be able to know the existence of <content>
23843         https://bugs.webkit.org/show_bug.cgi?id=100921
23844
23845         Reviewed by Dimitri Glazkov.
23846
23847         When <content> is inserted into or removed from a shadow subtree, ShadowRoot counts the number of <content>.
23848         It provides O(1) method to check the existence of <content>.
23849
23850         This is necessary when we implement a fast checking path for distribution invalidation when an element attribute
23851         is changed. Larger context is explained in Bug 100451.
23852
23853         Test: fast/dom/shadow/has-content-elements.html
23854
23855         * dom/ShadowRoot.cpp:
23856         (WebCore::ShadowRoot::ShadowRoot):
23857         (WebCore::ShadowRoot::hasInsertionPoint): Since we track both <content> and <shadow>, we don't need to traverse
23858         all the descendants of ShadowRoot anymore.
23859         * dom/ShadowRoot.h:
23860         (WebCore::ShadowRoot::registerContentElement):
23861         (WebCore::ShadowRoot::unregisterContentElement):
23862         (WebCore::ShadowRoot::hasContentElement):
23863         (ShadowRoot):
23864         * html/shadow/HTMLContentElement.cpp:
23865         (WebCore::HTMLContentElement::HTMLContentElement):
23866         (WebCore::HTMLContentElement::insertedInto): When <content> is inserted into ShadowDOM subtree,
23867         we notify it to the ShadowRoot. Note that only active <content> element is counted.
23868         (WebCore):
23869         (WebCore::HTMLContentElement::removedFrom):
23870         * html/shadow/HTMLContentElement.h:
23871         (HTMLContentElement):
23872         * testing/Internals.cpp:
23873         (WebCore::Internals::hasContentElement):
23874         (WebCore):
23875         * testing/Internals.h:
23876         (Internals):
23877         * testing/Internals.idl:
23878
23879 2012-11-02  KyungTae Kim  <ktf.kim@samsung.com>
23880
23881         sCurrentPaintTimeStamp is not initialized when FrameView::paintContents returns in the middle
23882         https://bugs.webkit.org/show_bug.cgi?id=99990
23883
23884         Reviewed by Darin Adler.
23885
23886         Move initialization code for sCurrentPaintTimeStamp to the below of early returns,
23887         because it was not reset after early return.
23888
23889         * page/FrameView.cpp:
23890         (WebCore::FrameView::paintContents):
23891
23892 2012-11-02  KyungTae Kim  <ktf.kim@samsung.com>
23893
23894         Fix build warning in PluginView.cpp on release build
23895         https://bugs.webkit.org/show_bug.cgi?id=101049
23896
23897         Reviewed by Kentaro Hara.
23898
23899         The protocol, host, port parameters are not used when LOG_DISABLED
23900         Use UNUSED_PARAM macro for removing -Wunused-parameter warning
23901
23902         * plugins/PluginView.cpp:
23903         (WebCore::PluginView::getAuthenticationInfo):
23904
23905 2012-10-25  Martin Robinson  <mrobinson@igalia.com>
23906
23907         [GTK] Move soup authentication from GtkAuthenticationDialog to WebCore
23908         https://bugs.webkit.org/show_bug.cgi?id=99914
23909
23910         Reviewed by Carlos Garcia Campos.
23911
23912         Move the actual soup authentication code from the GtkAuthenticationDialog to ResourceHandleSoup.
23913         This allows a more generic implementation of authentication, for example, one where a WebKit2
23914         client can completely handle authentication.
23915
23916         No new tests. This does not change behavior.
23917
23918         * platform/gtk/GtkAuthenticationDialog.cpp: Remove references to the SoupPasswordManager, which
23919         is going away in the next release of Gnome. Instead we always assume that the authentication backend has
23920         support for remembering passwords and pass that information along with the answer to the authentication
23921         request.
23922
23923         The rest of the changes to this class can be summarized as:
23924         1. Getting the information from the AuthenticationChallenge instead of directly from the libsoup
23925            objects.
23926         2. Using the AuthenticationClient to accomplish the authentication instead of talking to libsoup
23927            directly.
23928         * platform/gtk/GtkAuthenticationDialog.h:
23929         (GtkAuthenticationDialog): Remove members which are no longer used.
23930         * platform/network/ResourceHandle.h:
23931         (ResourceHandle): ResourceHandleSoup now implements the entire AuthenticationClient interface.
23932         * platform/network/soup/ResourceHandleSoup.cpp:
23933         (WebCore::WebCoreSynchronousLoader::didReceiveAuthenticationChallenge): Don't handle authentication
23934         for synchronous handles.
23935         (WebCore::ResourceHandle::didReceiveAuthenticationChallenge): Now set the current challenge on
23936         the internal data structure.
23937         (WebCore::ResourceHandle::receivedRequestToContinueWithoutCredential): Added.
23938         (WebCore::ResourceHandle::receivedCredential): Added.
23939         (WebCore::ResourceHandle::receivedCancellation): Added.
23940         (WebCore::authenicateCallback): Pass the handle as the authentication client.
23941
23942 2012-11-02  Benjamin Poulain  <bpoulain@apple.com>
23943
23944         Improve CSSParser::setupParser() since the prefix/suffix are literals
23945         https://bugs.webkit.org/show_bug.cgi?id=101107
23946
23947         Reviewed by Andreas Kling.
23948
23949         * css/CSSParser.cpp:
23950         (WebCore::CSSParser::setupParser):
23951         * css/CSSParser.h:
23952         (CSSParser):
23953         (WebCore::CSSParser::setupParser):
23954         CSSParser::setupParser() is only used with literals prefix and suffix. We do not have
23955         to compute the length at runtime, we can direclty encode it in the binary.
23956
23957 2012-11-02  Sheriff Bot  <webkit.review.bot@gmail.com>
23958
23959         Unreviewed, rolling out r133375.
23960         http://trac.webkit.org/changeset/133375
23961         https://bugs.webkit.org/show_bug.cgi?id=101138
23962
23963         Caused 3 tests to fail on Mac (Requested by aboxhall-laptop on
23964         #webkit).
23965
23966         * platform/text/LineBreakIteratorPoolICU.h:
23967         (WebCore::LineBreakIteratorPool::take):
23968         (WebCore::LineBreakIteratorPool::put):
23969         (LineBreakIteratorPool):
23970         * platform/text/TextBreakIterator.h:
23971         (WebCore):
23972         (WebCore::LazyLineBreakIterator::LazyLineBreakIterator):
23973         (WebCore::LazyLineBreakIterator::get):
23974         (WebCore::LazyLineBreakIterator::reset):
23975         (LazyLineBreakIterator):
23976         * platform/text/TextBreakIteratorICU.cpp:
23977         (WebCore::acquireLineBreakIterator):
23978         (WebCore::releaseLineBreakIterator):
23979         * rendering/RenderBlockLineLayout.cpp:
23980         (WebCore::RenderBlock::LineBreaker::nextLineBreak):
23981         * rendering/RenderText.cpp:
23982         (WebCore::RenderText::computePreferredLogicalWidths):
23983         * rendering/RenderText.h:
23984         (WebCore):
23985         * rendering/break_lines.cpp:
23986         (WebCore):
23987         (WebCore::isBreakableSpace):
23988         (WebCore::needsLineBreakIterator):
23989         (WebCore::nextBreakablePosition):
23990         (WebCore::nextBreakablePositionIgnoringNBSP):
23991         * rendering/break_lines.h:
23992         (WebCore):
23993         (WebCore::isBreakable):
23994
23995 2012-11-02  Andreas Kling  <kling@webkit.org>
23996
23997         Cut overgrown ElementAttributeData bitfield.
23998         <http://webkit.org/b/101129>
23999
24000         Reviewed by Anders Carlsson.
24001
24002         Make sure the ElementAttributeData bitfield fits into 32 bits. Added a compile-time assertion
24003         to guard against future bloatage.
24004
24005         * dom/ElementAttributeData.cpp:
24006         (SameSizeAsElementAttributeData):
24007         * dom/ElementAttributeData.h:
24008         (ElementAttributeData):
24009
24010 2012-11-02  Michael Saboff  <msaboff@apple.com>
24011
24012         Crash calling is8Bit() in visitedLinkHash()
24013         https://bugs.webkit.org/show_bug.cgi?id=101119
24014
24015         Reviewed by Filip Pizlo.
24016
24017         Added an isEmpty() check to AttributeURL and KURL.
24018
24019         * platform/LinkHash.cpp:
24020         (WebCore::visitedLinkHash):
24021
24022 2012-11-02  Glenn Adams  <glenn@skynav.com>
24023
24024         Add support to -webkit-line-break property for CSS3 Text line-break property values and semantics.
24025         https://bugs.webkit.org/show_bug.cgi?id=89235
24026
24027         Reviewed by Eric Seidel.
24028
24029         See also wiki documentation at:
24030         [1] http://trac.webkit.org/wiki/LineBreaking
24031         [2] http://trac.webkit.org/wiki/LineBreakingCSS3Mapping
24032
24033         Web exposed changes include:
24034         (1) The default (initial) value for -webkit-line-break becomes 'auto', instead of 'normal';
24035         (2) The values 'auto', 'loose', 'normal', and 'strict' are added to -webkit-line-break;
24036         (3) See [2] above for details regarding interpretation.
24037
24038         Tests: css3/line-break/line-break-auto-centered.html
24039                css3/line-break/line-break-auto-half-kana.html
24040                css3/line-break/line-break-auto-hyphens.html
24041                css3/line-break/line-break-auto-inseparables.html
24042                css3/line-break/line-break-auto-iteration-marks.html
24043                css3/line-break/line-break-auto-postfixes.html
24044                css3/line-break/line-break-auto-prefixes.html
24045                css3/line-break/line-break-auto-sound-marks.html
24046                css3/line-break/line-break-loose-centered.html
24047                css3/line-break/line-break-loose-half-kana.html
24048                css3/line-break/line-break-loose-hyphens.html
24049                css3/line-break/line-break-loose-inseparables.html
24050                css3/line-break/line-break-loose-iteration-marks.html
24051                css3/line-break/line-break-loose-postfixes.html
24052                css3/line-break/line-break-loose-prefixes.html
24053                css3/line-break/line-break-loose-sound-marks.html
24054                css3/line-break/line-break-normal-centered.html
24055                css3/line-break/line-break-normal-half-kana.html
24056                css3/line-break/line-break-normal-hyphens.html
24057                css3/line-break/line-break-normal-inseparables.html
24058                css3/line-break/line-break-normal-iteration-marks.html
24059                css3/line-break/line-break-normal-postfixes.html
24060                css3/line-break/line-break-normal-prefixes.html
24061                css3/line-break/line-break-normal-sound-marks.html
24062                css3/line-break/line-break-strict-centered.html
24063                css3/line-break/line-break-strict-half-kana.html
24064                css3/line-break/line-break-strict-hyphens.html
24065                css3/line-break/line-break-strict-inseparables.html
24066                css3/line-break/line-break-strict-iteration-marks.html
24067                css3/line-break/line-break-strict-postfixes.html
24068                css3/line-break/line-break-strict-prefixes.html
24069                css3/line-break/line-break-strict-sound-marks.html
24070
24071         * platform/text/LineBreakIteratorPoolICU.h:
24072         (WebCore::LineBreakIteratorPool::makeLocaleWithBreakKeyword):
24073         Add static function to construct ICU locale argument (also used as pool key) with additional
24074         break keyword.
24075         (WebCore::LineBreakIteratorPool::take):
24076         (WebCore::LineBreakIteratorPool::put):
24077         (LineBreakIteratorPool):
24078         Remove direct dependency from ICU library (and types), moving that dependency into
24079         new {open,close}LineBreakIterator() functions (defined in TextBreakIteratorICU.cpp).
24080         Update to take line break mode into account.
24081         Create (and cache) different break iterators depending on line break mode (in addition to locale),
24082         which entails expanding pool entry key format to optionally append "@break=" +
24083         "loose"|"normal"|"strict" keyword to locale string.
24084
24085         * platform/text/TextBreakIterator.h:
24086         (WebCore::LazyLineBreakIterator::LazyLineBreakIterator):
24087         (WebCore::LazyLineBreakIterator::isLooseCJKMode):
24088         (WebCore::LazyLineBreakIterator::get):
24089         (WebCore::LazyLineBreakIterator::reset):
24090         (LazyLineBreakIterator):
24091         Define LineBreakIteratorMode enumeration for use in TextBreakIterator et al.
24092         Add state member to indicate line break mode.
24093
24094         * platform/text/TextBreakIteratorICU.cpp:
24095         (WebCore::acquireLineBreakIterator):
24096         Use new line break mode when making iterator from pool.
24097         Handle change of return type of LineBreakIteratorPool::take() to non-ICU type,
24098         i.e., TextBreakIterator* instead of ICU's UBreakIterator*.
24099         (WebCore::releaseLineBreakIterator):
24100         Handle change of parameter type of LineBreakIteratorPool::put() to non-ICU type,
24101         i.e., TextBreakIterator* instead of ICU's UBreakIterator*.
24102         (WebCore::isCJKLocale):
24103         New functions for determining if CJK rules apply.
24104         (WebCore::openLineBreakIterator):
24105         New function for abstracting opening of ICU style line break iterator. This is now
24106         used in LineBreakIteratorPoolICU.h rather than having direct ICU API dependency there.
24107         This function also takes into account the line break mode.
24108         (WebCore::closeLineBreakIterator):
24109         (WebCore::mapLineIteratorModeToRules):
24110         New function for abstracting closing of ICU style line break iterator. This is now
24111         used in LineBreakIteratorPoolICU.h rather than having direct ICU API dependency there.
24112
24113         * rendering/RenderBlockLineLayout.cpp:
24114         (WebCore::RenderBlock::LineBreaker::nextLineBreak):
24115         Pass line break iterator mode flag when reseting LazyLineBreakIterator.
24116         Add looseMode local variable to prevent need for computing under isBreakable().
24117
24118         * rendering/RenderText.cpp:
24119         (WebCore::mapLineBreakToIteratorMode):
24120         Add implementation for mapLineBreakToIteratorMode(), used by both RenderText::computePreferredLogicalWidths
24121         and RenderBlock::LineBreaker::nextLineBreak.
24122         (WebCore::RenderText::computePreferredLogicalWidths):
24123         Ensure (lazy line) breakIterator is initialized for line break mode.
24124         Ensure isBreakable() is passed loose mode flag to match behavior in RenderBlock::LineBreaker::nextLineBreak.
24125
24126         * rendering/RenderText.h:
24127         (WebCore):
24128         Add declaration for mapLineBreakToIteratorMode(), used by both RenderText::computePreferredLogicalWidths
24129         and RenderBlock::LineBreaker::nextLineBreak.
24130
24131         * rendering/break_lines.cpp:
24132         (WebCore):
24133         Introduce two (local) enums NBSPBehavior and LooseBehavior for expanding template on nextBreakablePosition
24134         to include loose mode parameter.
24135         (WebCore::isBreakableSpace):
24136         Add externally specified loose mode parameter to prevent need to invoke line break iterator
24137         accessor method on each invocation. Use new loose mode flavors off NBP functions.
24138         (WebCore::needsLineBreakIterator):
24139         Introduce loose mode behavior template parameter to optimize loose mode behavior code path in order
24140         to prevent regression to non loose mode path.
24141         (WebCore::nextBreakablePosition):
24142         (WebCore::nextBreakablePositionIgnoringNBSP):
24143         Use new template parameter enums described above.
24144         (WebCore::nextBreakablePositionIgnoringNBSPLoose):
24145         (WebCore::nextBreakablePositionLoose):
24146         Introduce two additional 'loose' mode flavors of NBP template expansions.
24147
24148         * rendering/break_lines.h:
24149         (WebCore):
24150         (WebCore::isBreakable):
24151         Add externally specified loose mode parameter to prevent need to invoke line break iterator
24152         accessor method on each invocation.
24153
24154 2012-11-02  Elliott Sprehn  <esprehn@chromium.org>
24155
24156         Replace NodeRareData hash map with a union on m_renderer
24157         https://bugs.webkit.org/show_bug.cgi?id=100057
24158
24159         Reviewed by Eric Seidel.
24160
24161         Use a union on Node::m_renderer between NodeRareData* and RenderObject*. This removes
24162         the overhead of accessing rare data and the memory from the map.
24163
24164         This is an 8% improvement on Bindings/get-elements-by-tag-name.html which tested
24165         document.getElementsByTagName and was previously optimized in Bug 90059 for a 5% 
24166         improvement. As this is better than even the special casing for document that was
24167         done in that bug, general node list access should see an even greater win.
24168
24169         This reduces the memory usage on nytimes.com by 250k per Bug 101052 by
24170         removing the rare data map overhead.
24171
24172         This is also a 15% improvement on Parser/textarea-parsing.html
24173
24174         By removing the performance overhead of rareData() this patch addresses the performance
24175         issues raised in Bugs 73853, 87034 and 89635.
24176
24177         I ran Parser/html5-full-render.html and there was no performance regression after
24178         tuning Text::recalcTextStyle and the refactor that was done in r132684.
24179
24180         No new tests, this is just a refactor.
24181
24182         * dom/Document.cpp:
24183         (WebCore::Document::Document):
24184         * dom/Document.h:
24185         (WebCore::Node::Node):
24186         * dom/Element.cpp:
24187         (WebCore::Element::elementRareData):
24188         * dom/Node.cpp:
24189         (WebCore::Node::rareData):
24190         (WebCore::Node::ensureRareData):
24191         (WebCore::Node::clearRareData):
24192         (WebCore::Node::renderBox):
24193         (WebCore::Node::renderBoxModelObject):
24194         (WebCore::Node::reportMemoryUsage):
24195         * dom/Node.h:
24196         (NodeRareDataBase):
24197           Base class for NodeRareData that knows about the renderer so we can
24198           inline the accesses in Node.h
24199         (WebCore::NodeRareDataBase::renderer):
24200         (WebCore::NodeRareDataBase::setRenderer):
24201         (WebCore::NodeRareDataBase::~NodeRareDataBase):
24202         (WebCore::NodeRareDataBase::NodeRareDataBase):
24203         (WebCore):
24204         (WebCore::Node::renderer):
24205         (WebCore::Node::setRenderer):
24206         (Node):
24207         * dom/NodeRareData.h:
24208         * dom/NodeRenderStyle.h:
24209         (WebCore::Node::renderStyle):
24210         * dom/Text.cpp:
24211         (WebCore::Text::recalcTextStyle):
24212           This method appears very hot in html5-full-render.html and accessing the
24213           renderer 4 times caused a 2% performance regression with this patch. I
24214           reduced it to 1 access and there's no longer any performance regression.
24215         * dom/WebCoreMemoryInstrumentation.cpp:
24216           Removed tracking of the rare data map memory usage as there is no longer
24217           a map to track.
24218         * dom/WebCoreMemoryInstrumentation.h:
24219         * inspector/InspectorMemoryAgent.cpp:
24220         (WebCore::InspectorMemoryAgent::getProcessMemoryDistribution):
24221
24222 2012-11-02  Alexey Proskuryakov  <ap@apple.com>
24223
24224         [Mac] ResourceHandle changes for network process
24225         https://bugs.webkit.org/show_bug.cgi?id=101111
24226
24227         Reviewed by Jessie Berlin.
24228
24229         With NSOperationQueue, we'll be getting NetworkProcess delegate method calls
24230         on secondary threads, and so we won't block other requests while consulting with WebProcess.
24231
24232         * platform/network/NetworkingContext.h:
24233         (WebCore::NetworkingContext::scheduledRunLoopPairs):
24234         (WebCore::NetworkingContext::scheduledOperationQueue):
24235         Add an ability to schedule on an NSOperationQueue. Now that scheduling on run loop
24236         is not a must, give scheduledRunLoopPairs() a default implementation.
24237
24238         * platform/network/mac/ResourceHandleMac.mm: Removed isInitializingConnection
24239         static. It was only used to catch a long obsolete bug with debug logging, and
24240         cannot work with multiple threads.
24241         (WebCore::ResourceHandle::start): Scedule on a operation queue if applicable.
24242         (-[WebCoreResourceHandleAsDelegate connection:willCacheResponse:]): Removed a
24243         check that used isInitializingConnection.
24244
24245 2012-11-02  Chris Rogers  <crogers@google.com>
24246
24247         Automating gain AudioParam with linearRampToValueAtTime introduces buzzing distortion
24248         https://bugs.webkit.org/show_bug.cgi?id=100885
24249
24250         Reviewed by Kenneth Russell.
24251
24252         AudioParamTimeline needs to use double-precision for time-values to avoid drift and precision issues.
24253
24254         Covered by existing tests.
24255
24256         * Modules/webaudio/AudioParam.cpp:
24257         (WebCore::AudioParam::calculateTimelineValues):
24258         * Modules/webaudio/AudioParamTimeline.cpp:
24259         (WebCore::AudioParamTimeline::valueForContextTime):
24260         (WebCore::AudioParamTimeline::valuesForTimeRange):
24261         (WebCore::AudioParamTimeline::valuesForTimeRangeImpl):
24262         * Modules/webaudio/AudioParamTimeline.h:
24263         (AudioParamTimeline):
24264
24265 2012-11-02  Stephen Chenney  <schenney@chromium.org>
24266
24267         Reduce redundant code in SimpleFontData[platform]
24268         https://bugs.webkit.org/show_bug.cgi?id=97245
24269
24270         Reviewed by Eric Seidel.
24271
24272         Move duplicated code out of platform specific files and into the common file.
24273         This represents all of the methods in SimpleFontData that do not have genuine
24274         platform specific code.
24275
24276         No new tests because there is no change at all in the functionality.
24277
24278         * platform/graphics/SimpleFontData.cpp:
24279         (WebCore):
24280         (WebCore::SimpleFontData::smallCapsFontData): Implementation from platform files.
24281         (WebCore::SimpleFontData::emphasisMarkFontData): Implementation from platform files.
24282         * platform/graphics/chromium/SimpleFontDataChromiumWin.cpp:
24283         (WebCore): Removed common code.
24284         * platform/graphics/freetype/SimpleFontDataFreeType.cpp:
24285         (WebCore): Removed common code.
24286         * platform/graphics/mac/SimpleFontDataMac.mm:
24287         (WebCore): Removed common code.
24288         * platform/graphics/pango/SimpleFontDataPango.cpp:
24289         (WebCore): Removed common code.
24290         * platform/graphics/qt/SimpleFontDataQt.cpp:
24291         (WebCore): Removed common code.
24292         * platform/graphics/skia/SimpleFontDataSkia.cpp:
24293         (WebCore): Removed common code.
24294         * platform/graphics/win/SimpleFontDataWin.cpp:
24295         (WebCore): Removed common code.
24296         * platform/graphics/wince/SimpleFontDataWinCE.cpp:
24297         (WebCore): Removed common code.
24298         * platform/graphics/wx/SimpleFontDataWx.cpp:
24299         (WebCore): Removed common code.
24300
24301 2012-11-02  Adam Barth  <abarth@webkit.org>
24302
24303         memory-instrumentation-cached-images.html is crashing
24304         https://bugs.webkit.org/show_bug.cgi?id=101103
24305
24306         Unreviewed.
24307
24308         Restore code deleted in http://trac.webkit.org/changeset/133331.
24309
24310         * bindings/v8/IntrusiveDOMWrapperMap.h:
24311
24312 2012-11-02  Simon Fraser  <simon.fraser@apple.com>
24313
24314         Enable SUBPIXEL_LAYOUT on Mac
24315         https://bugs.webkit.org/show_bug.cgi?id=101076
24316
24317         Reviewed by Dave Hyatt.
24318
24319         Define ENABLE_SUBPIXEL_LAYOUT and include it in FEATURE_DEFINES.
24320
24321         * Configurations/FeatureDefines.xcconfig:
24322
24323 2012-11-02  Lianghui Chen  <liachen@rim.com>
24324
24325         [BlackBerry] ResourceHandle::cancel() in ResourceHandleBlackBerry should setClient to null.
24326         https://bugs.webkit.org/show_bug.cgi?id=101082
24327
24328         Internal PR: 235410.
24329         Patch suggested by George Staikos, prepared by Lyon Chen.
24330         Reviewed by Yong Li.
24331
24332         ResourceHandle::cancel() should call setClient(0) to close the window
24333         during which it has been cancelled but its client is still there and can
24334         be called.
24335
24336         No new tests as it's a code improvement without obvious bug.
24337
24338         * platform/network/blackberry/ResourceHandleBlackBerry.cpp:
24339         (WebCore::ResourceHandle::cancel):
24340
24341 2012-11-02  Anders Carlsson  <andersca@apple.com>
24342
24343         Add a PluginInactive plug-in unavailability reason
24344         https://bugs.webkit.org/show_bug.cgi?id=101089
24345
24346         Reviewed by Sam Weinig.
24347
24348         This is to be used by Mac WebKit and WebKit2 shortly.
24349
24350         * English.lproj/Localizable.strings:
24351         * platform/LocalizedStrings.cpp:
24352         (WebCore::inactivePluginText):
24353         (WebCore):
24354         * platform/LocalizedStrings.h:
24355         (WebCore):
24356         * platform/blackberry/LocalizedStringsBlackBerry.cpp:
24357         (WebCore::inactivePluginText):
24358         (WebCore):
24359         * platform/efl/LocalizedStringsEfl.cpp:
24360         (WebCore::inactivePluginText):
24361         (WebCore):
24362         * platform/gtk/LocalizedStringsGtk.cpp:
24363         (WebCore::inactivePluginText):
24364         (WebCore):
24365         * platform/qt/LocalizedStringsQt.cpp:
24366         (WebCore::inactivePluginText):
24367         (WebCore):
24368         * rendering/RenderEmbeddedObject.cpp:
24369         (WebCore::unavailablePluginReplacementText):
24370         * rendering/RenderEmbeddedObject.h:
24371
24372 2012-11-02  Rob Buis  <rbuis@rim.com>
24373
24374         [CMAKE] Remove QNX specific section
24375         https://bugs.webkit.org/show_bug.cgi?id=101063
24376
24377         Reviewed by Daniel Bates.
24378
24379         We do not need the QNX section anymore, so also remove the FEATURE_DEFINES_CSS variable as it
24380         equals FEATURE_DEFINES_WITH_SPACE_SEPARATOR.
24381
24382         * CMakeLists.txt:
24383
24384 2012-11-02  Michael Saboff  <msaboff@apple.com>
24385
24386         visitedHashLink() converts 8 bit URLs and attributes to 16 bits.
24387         https://bugs.webkit.org/show_bug.cgi?id=101014
24388
24389         Reviewed by Geoffrey Garen.
24390
24391         Converted most of the static methods to templated based on character type.  Changed visitedHashLink to 
24392         check bitness of both the base URL and attribute.  If both are 8 bit, then we process using the LChar
24393         version of the templated methods.  Otherwise we use the 16 bit flavor.
24394
24395         Changes covered by existing tests.
24396
24397         * platform/LinkHash.cpp:
24398         (WebCore::findSlashDotDotSlash):
24399         (WebCore::findSlashSlash):
24400         (WebCore::findSlashDotSlash):
24401         (WebCore::containsColonSlashSlash):
24402         (WebCore::squeezeOutNullCharacters):
24403         (WebCore::cleanSlashDotDotSlashes):
24404         (WebCore::mergeDoubleSlashes):
24405         (WebCore::cleanSlashDotSlashes):
24406         (WebCore::cleanPath):
24407         (WebCore::matchLetter):
24408         (WebCore::needsTrailingSlash):
24409         (WebCore::visitedURLInline):
24410         (WebCore::visitedURL):
24411         (WebCore::visitedLinkHash):
24412
24413 2012-11-02  Ian Vollick  <vollick@chromium.org>
24414
24415         Support invalidation tracking for composited layers
24416         https://bugs.webkit.org/show_bug.cgi?id=97801
24417
24418         Reviewed by Simon Fraser.
24419
24420         GraphicsLayers now store invalidated rects and can include them in
24421         the layer tree dump.
24422
24423         Test: compositing/repaint/invalidations-on-composited-layers.html
24424
24425         * WebCore.exp.in:
24426           Exports FrameView::resetTrackedRepaints()
24427         * page/FrameView.cpp:
24428         (WebCore::FrameView::setTracksRepaints):
24429           Notifies each compositor that we are starting/stopping repaints.
24430         (WebCore::FrameView::resetTrackedRepaints):
24431           Moved implementation to the cpp file.
24432         * platform/graphics/GraphicsLayer.cpp:
24433         (WebCore::GraphicsLayer::~GraphicsLayer):
24434           Clears the repaint rects associated with this layer.
24435         (WebCore::GraphicsLayer::resetTrackedRepaints):
24436           Clears the repaint rects associated with this layer.
24437           Note that the repaint rects are stored in a statically allocated
24438           HashMap to avoid using space on the graphics layers.
24439         (WebCore::GraphicsLayer::addRepaintRect):
24440           Adds a repaint rect to list associated with this layer in the
24441           hash map mentioned above.
24442         (WebCore::GraphicsLayer::dumpProperties):
24443           This has been modified to include the repaint rects in the dump
24444           if they've been requested.
24445         * platform/graphics/GraphicsLayerClient.h:
24446         (WebCore::GraphicsLayerClient::isTrackingRepaints):
24447           This is how graphics layers check if repaint tracking is happening.
24448           Returns false by default.
24449         * platform/graphics/blackberry/GraphicsLayerBlackBerry.cpp:
24450         (WebCore::GraphicsLayerBlackBerry::setContentsNeedsDisplay):
24451         (WebCore::GraphicsLayerBlackBerry::setNeedsDisplay):
24452         (WebCore::GraphicsLayerBlackBerry::setNeedsDisplayInRect):
24453           These now call GraphicsLayer::addRepaintRect as necessary.
24454         * platform/graphics/ca/GraphicsLayerCA.cpp:
24455         (WebCore::GraphicsLayerCA::setNeedsDisplayInRect):
24456           Now calls GraphicsLayer::addRepaintRect as necessary.
24457         * platform/graphics/chromium/GraphicsLayerChromium.cpp:
24458         (WebCore::GraphicsLayerChromium::setContentsNeedsDisplay):
24459         (WebCore::GraphicsLayerChromium::setNeedsDisplay):
24460         (WebCore::GraphicsLayerChromium::setNeedsDisplayInRect):
24461           These now call GraphicsLayer::addRepaintRect as necessary.
24462         * platform/graphics/clutter/GraphicsLayerClutter.cpp:
24463         (WebCore::GraphicsLayerClutter::setNeedsDisplay):
24464         (WebCore::GraphicsLayerClutter::setNeedsDisplayInRect):
24465           These now call GraphicsLayer::addRepaintRect as necessary.
24466         * platform/graphics/texmap/GraphicsLayerTextureMapper.cpp:
24467         (WebCore::GraphicsLayerTextureMapper::setNeedsDisplay):
24468         (WebCore::GraphicsLayerTextureMapper::setContentsNeedsDisplay):
24469         (WebCore::GraphicsLayerTextureMapper::setNeedsDisplayInRect):
24470           These now call GraphicsLayer::addRepaintRect as necessary.
24471         * rendering/RenderLayerBacking.cpp:
24472         (WebCore::RenderLayerBacking::isTrackingRepaints):
24473           Required since this is a GraphicsLayerClient.
24474         * rendering/RenderLayerCompositor.cpp:
24475         (WebCore::RenderLayerCompositor::layerTreeAsText):
24476           Now accepts a flag to include the repaint rects in the layer tree
24477           dump.
24478         (WebCore::resetTrackedRepaintRectsRecursive):
24479           Clears the repaint rects on all graphics layers.
24480         (WebCore::RenderLayerCompositor::resetTrackedRepaintRects):
24481           Clears the repaint rects on all graphics layers.
24482         (WebCore::RenderLayerCompositor::isTrackingRepaints):
24483           Required since this is a GraphicsLayerClient.
24484         * testing/Internals.cpp:
24485         (WebCore::Internals::layerTreeAsText):
24486         * testing/Internals.h:
24487         * testing/Internals.idl:
24488           The internals changes plumb the new flag for including the repaint
24489           rects in the layer tree dump.
24490
24491 2012-11-02  Adam Barth  <abarth@webkit.org>
24492
24493         [V8] Generalize NodeWrapperMap to be able to handle other sorts of keys
24494         https://bugs.webkit.org/show_bug.cgi?id=100973
24495
24496         Reviewed by Stephen White.
24497
24498         This is the first step towards using intrusive DOM wrapper maps more
24499         widely in WebCore (see
24500         http://lists.webkit.org/pipermail/webkit-dev/2012-November/022686.html
24501         for more context).
24502
24503         * bindings/v8/DOMDataStore.cpp:
24504         (WebCore::DOMDataStore::DOMDataStore):
24505         * bindings/v8/IntrusiveDOMWrapperMap.h:
24506         (WebCore):
24507         (WebCore::IntrusiveDOMWrapperMap::weakCallback):
24508
24509 2012-11-02  Adam Barth  <abarth@webkit.org>
24510
24511         ASSERT in RenderLayer::hitTestContents can fire
24512         https://bugs.webkit.org/show_bug.cgi?id=99656
24513
24514         Reviewed by Eric Seidel.
24515
24516         The issue is that updateHitTestResult and addNodeToRectBasedTestResult
24517         are using two different nodes. Since they aren't consistent, we violate
24518         assertions about only setting the inner node if we're doing a
24519         rect-based hit test. This patch makes the two consistent.
24520
24521         Test: fast/dom/nodesFromRect/nodesFromRect-continuation-crash.html
24522
24523         * rendering/RenderBlock.cpp:
24524         (WebCore::RenderBlock::nodeForHitTest):
24525         (WebCore):
24526         (WebCore::RenderBlock::nodeAtPoint):
24527         (WebCore::RenderBlock::updateHitTestResult):
24528         * rendering/RenderBlock.h:
24529         (RenderBlock):
24530
24531 2012-11-02  Mike West  <mkwst@chromium.org>
24532
24533         Prefer 'Content-Security-Policy' to 'X-WebKit-CSP'.
24534         https://bugs.webkit.org/show_bug.cgi?id=101043
24535
24536         Reviewed by Adam Barth.
24537
24538         The canonical 'Content-Security-Policy' header landed in 133095, but we
24539         missed a few tests while updating to the new hotness. We also should
24540         start using the canonical header for the inspector.
24541
24542         This patch should have no visible change; tests should continue to pass
24543         with the new header, just as they did with the old header.
24544
24545         * inspector/front-end/inspector.html:
24546
24547 2012-11-02  Adam Barth  <abarth@webkit.org>
24548
24549         ENABLE(UNDO_MANAGER) is disabled everywhere and is not under active development
24550         https://bugs.webkit.org/show_bug.cgi?id=100711
24551
24552         Reviewed by Eric Seidel.
24553
24554         No one is actively working on ENABLE(UNDO_MANAGER). There are some
24555         tricky lifetime issues in the UndoManager API that are complicating
24556         ongoing work to improve the interaction between WebCore and the garbage
24557         collector. Rather than leave this code in a broken state, we should
24558         remove it for the time being. We can always restore it from the svn
24559         history when there is an active owner for this code.
24560
24561         * CMakeLists.txt:
24562         * Configurations/FeatureDefines.xcconfig:
24563         * DerivedSources.cpp:
24564         * DerivedSources.make:
24565         * DerivedSources.pri:
24566         * GNUmakefile.features.am:
24567         * GNUmakefile.list.am:
24568         * Target.pri:
24569         * UseJSC.cmake:
24570         * UseV8.cmake:
24571         * WebCore.gypi:
24572         * WebCore.vcproj/WebCore.vcproj:
24573         * WebCore.xcodeproj/project.pbxproj:
24574         * bindings/js/DOMTransaction.cpp: Removed.
24575         * bindings/js/DOMTransaction.h: Removed.
24576         * bindings/js/JSBindingsAllInOne.cpp:
24577         * bindings/js/JSUndoManagerCustom.cpp: Removed.
24578         * bindings/v8/DOMTransaction.cpp: Removed.
24579         * bindings/v8/DOMTransaction.h: Removed.
24580         * bindings/v8/V8HiddenPropertyName.h:
24581         (WebCore):
24582         * bindings/v8/custom/V8DOMTransactionCustom.cpp: Removed.
24583         * bindings/v8/custom/V8UndoManagerCustom.cpp: Removed.
24584         * css/PropertySetCSSStyleDeclaration.cpp:
24585         (WebCore::PropertySetCSSStyleDeclaration::setCssText):
24586         (WebCore::PropertySetCSSStyleDeclaration::setProperty):
24587         (WebCore::PropertySetCSSStyleDeclaration::removeProperty):
24588         (WebCore::PropertySetCSSStyleDeclaration::setPropertyInternal):
24589         * dom/CharacterData.cpp:
24590         (WebCore::CharacterData::setDataAndUpdate):
24591         * dom/ContainerNode.cpp:
24592         (WebCore::willRemoveChild):
24593         (WebCore::willRemoveChildren):
24594         (WebCore::updateTreeAfterInsertion):
24595         * dom/Document.cpp:
24596         (WebCore::Document::Document):
24597         * dom/Document.h:
24598         (WebCore):
24599         (Document):
24600         * dom/Document.idl:
24601         * dom/Element.cpp:
24602         (WebCore::Element::willModifyAttribute):
24603         * editing/CompositeEditCommand.h:
24604         * editing/DOMTransaction.idl: Removed.
24605         * editing/DOMTransactionStep.cpp: Removed.
24606         * editing/DOMTransactionStep.h: Removed.
24607         * editing/Editor.cpp:
24608         (WebCore::Editor::appliedEditing):
24609         (WebCore::Editor::unappliedEditing):
24610         (WebCore::Editor::reappliedEditing):
24611         (WebCore::Editor::canUndo):
24612         (WebCore::Editor::undo):
24613         (WebCore::Editor::canRedo):
24614         (WebCore::Editor::redo):
24615         * editing/UndoManager.cpp: Removed.
24616         * editing/UndoManager.h: Removed.
24617         * editing/UndoManager.idl: Removed.
24618         * editing/UndoStep.h:
24619         (UndoStep):
24620
24621 2012-11-02  Mike West  <mkwst@chromium.org>
24622
24623         Measure the usage of the various CSP headers.
24624         https://bugs.webkit.org/show_bug.cgi?id=100974
24625
24626         Reviewed by Adam Barth.
24627
24628         Currently, we're collecting metrics regarding usage of the
24629         'X-WebKit-CSP' and 'X-WebKit-CSP-Report-Only' HTTP headers. We've
24630         recently added support for the canonical 'Content-Security-Policy'
24631         and 'Content-Security-Policy-Report-Only' headers. This patch adds
24632         those headers explicitly into the metrics, giving insight into uptake
24633         of the unprefixed header, and into usage of pure reporting vs.
24634         enforcement.
24635
24636         No visible functionality should change; all Content Security Policy
24637         tests should continue to pass.
24638
24639         * page/ContentSecurityPolicy.cpp:
24640         (WebCore::ContentSecurityPolicy::didReceiveHeader):
24641             Convert the CSP header type into a FeatureObserver::Feature, and
24642             observe it.
24643         * page/FeatureObserver.h:
24644             Add three new values to the enum to cover the new header types.
24645
24646 2012-11-02  Ojan Vafai  <ojan@chromium.org>
24647
24648         Fix silly mistake from http://trac.webkit.org/changeset/133315.
24649         Forgot to remove the "!".
24650
24651         * css/StyleResolver.cpp:
24652         (WebCore::StyleResolver::canShareStyleWithElement):
24653
24654 2012-11-02  Tom Sepez  <tsepez@chromium.org>
24655
24656         Support X-XSS-Protection: report=URL header syntax in XSSAuditor.
24657         https://bugs.webkit.org/show_bug.cgi?id=100892
24658
24659         Reviewed by Adam Barth.
24660
24661         This patch adds a security feature which allows a violation report to be sent back
24662         to a site when the XSSAuditor detects a reflected XSS against it.  It uses the same
24663         reporting mechanism as for CSP violation reports.
24664
24665         Tests: http/tests/security/xssAuditor/malformed-xss-protection-header-5.html
24666                http/tests/security/xssAuditor/malformed-xss-protection-header-6.html
24667                http/tests/security/xssAuditor/malformed-xss-protection-header-7.html
24668                http/tests/security/xssAuditor/malformed-xss-protection-header-8.html
24669                http/tests/security/xssAuditor/malformed-xss-protection-header-9.html
24670                http/tests/security/xssAuditor/report-script-tag.html
24671                http/tests/security/xssAuditor/xss-protection-parsing-03.html
24672                http/tests/security/xssAuditor/xss-protection-parsing-04.html
24673
24674         * html/parser/XSSAuditor.cpp:
24675         (WebCore::XSSAuditor::XSSAuditor):
24676         (WebCore::XSSAuditor::init):
24677         (WebCore::XSSAuditor::filterToken):
24678         Invoke Ping loader's violation reporting, if requested, when a reflected
24679         XSS is detected.
24680         
24681         * html/parser/XSSAuditor.h:
24682         XSSAuditor class need to store the report URL as well as the undigested versions
24683         of the request URL and request body for reporting.
24684
24685         * loader/MixedContentChecker.cpp:
24686         (WebCore):
24687         * loader/MixedContentChecker.h:
24688         (MixedContentChecker):
24689         Make isMixedContent() method public.
24690
24691         * loader/PingLoader.cpp:
24692         (WebCore::PingLoader::sendViolationReport):
24693         * loader/PingLoader.h:
24694         (PingLoader):
24695         * page/ContentSecurityPolicy.cpp:
24696         (WebCore::ContentSecurityPolicy::reportViolation):
24697         Renamed reportContentSecurityPolicyViolation() method to sendViolationReport(),
24698         since this is now used to send more than just CSP violations.
24699         
24700         * platform/network/HTTPParsers.cpp:
24701         (WebCore):
24702         (WebCore::skipEquals):
24703         (WebCore::skipValue):
24704         (WebCore::parseXSSProtectionHeader):
24705         * platform/network/HTTPParsers.h:
24706         Parse and return report= directive in X-XSS-Protection header.
24707         
24708 2012-11-02  Sheriff Bot  <webkit.review.bot@gmail.com>
24709
24710         Unreviewed, rolling out r133313.
24711         http://trac.webkit.org/changeset/133313
24712         https://bugs.webkit.org/show_bug.cgi?id=101078
24713
24714         "A lot of tests hit the ASSERTs introduced by this patch"
24715         (Requested by haraken on #webkit).
24716
24717         * bindings/v8/V8DOMWrapper.h:
24718         (WebCore::V8DOMWrapper::setDOMWrapper):
24719
24720 2012-11-02  Ojan Vafai  <ojan@chromium.org>
24721
24722         Unreviewed, rolling out r132913.
24723         http://trac.webkit.org/changeset/132913
24724         https://bugs.webkit.org/show_bug.cgi?id=91850
24725
24726         Caused performance regressions.
24727         See https://bugs.webkit.org/show_bug.cgi?id=100872 for details.
24728
24729         * bindings/v8/V8PerIsolateData.cpp:
24730         (WebCore::V8PerIsolateData::visitExternalStrings):
24731         * bindings/v8/V8StringResource.cpp:
24732         (StringTraits):
24733         (WebCore::v8StringToWebCoreString):
24734         * bindings/v8/V8ValueCache.cpp:
24735         (WebCore::makeExternalString):
24736         (WebCore::WebCoreStringResource::visitStrings):
24737         * bindings/v8/V8ValueCache.h:
24738         (WebCore::WebCoreStringResource::WebCoreStringResource):
24739         (WebCore::WebCoreStringResource::~WebCoreStringResource):
24740         (WebCore::WebCoreStringResource::data):
24741         (WebCoreStringResource):
24742         (WebCore::WebCoreStringResource::length):
24743         (WebCore::WebCoreStringResource::atomicString):
24744         (WebCore::WebCoreStringResource::toStringResource):
24745
24746 2012-11-02  Martin Robinson  <mrobinson@igalia.com>
24747
24748         [GTK] Remove dependency on SoupPasswordManager
24749         https://bugs.webkit.org/show_bug.cgi?id=100775
24750
24751         Reviewed by Carlos Garcia Campos.
24752
24753         Remember passwords using libsecret instead of SoupPasswordManager. We accomplish this using
24754         a new class, CredentialBackingStore. CredentialBackingStore will soon be the thing that backs
24755         CredentialStoreGtk. The name is based on the name of a similar class from the BlackBerry port.
24756
24757         No new tests. This does not change behavior.
24758
24759         * GNUmakefile.am: Add libsecret flags to the build and the new directory to the include list.
24760         * GNUmakefile.list.am: Add new files to the source list.
24761         * platform/gtk/GRefPtrGtk.cpp: Add support for SecretValue to GRefPtrGtk.
24762         * platform/gtk/GtkAuthenticationDialog.cpp: Replace interaction with SoupPasswordManger with
24763         interaction with the CredentialBackingStore. Remove all conditional SoupPasswordManager guards.
24764         * platform/gtk/GtkAuthenticationDialog.h: Ditto.
24765         * platform/network/gtk/CredentialBackingStore.cpp: Added.
24766         * platform/network/gtk/CredentialBackingStore.h: Added.
24767
24768 2012-11-02  Jinwoo Song  <jinwoo7.song@samsung.com>
24769
24770         Fix build warning [-Wswitch]
24771         https://bugs.webkit.org/show_bug.cgi?id=101029
24772
24773         Reviewed by Alexey Proskuryakov.
24774
24775         Fix build warning message: enumeration value ‘Viewport’ not handled in switch [-Wswitch]
24776         in Source/WebCore/css/StyleSheetContents.cpp.
24777         Add case statement for 'Viewport' with the CSS_DEVICE_ADAPTATION macro.
24778
24779         * css/StyleSheetContents.cpp:
24780         (WebCore::childRulesHaveFailedOrCanceledSubresources):
24781
24782 2012-11-02  Ojan Vafai  <ojan@chromium.org>
24783
24784         Move m_element checks out of canShareStyle into locateSharedStyle
24785         https://bugs.webkit.org/show_bug.cgi?id=101070
24786
24787         Reviewed by Darin Adler.
24788
24789         Can shareStyleWithElement is called for each sibling as we look for a
24790         shareElement. locateSharedStyle is called once for the element we're
24791         trying to find a style for. Checks that only depend on the latter
24792         element should, thus be in locateSharedStyle.
24793
24794         No new tests. There should be no change in behavior, except possibly
24795         a performance improvement in some cases.
24796
24797         * css/StyleResolver.cpp:
24798         (WebCore::StyleResolver::canShareStyleWithElement):
24799         (WebCore::StyleResolver::locateSharedStyle):
24800
24801 2012-11-02  Kentaro Hara  <haraken@chromium.org>
24802
24803         [V8] Add ASSERT() to guarantee that we don't store NULL pointers to V8 internal fields
24804         https://bugs.webkit.org/show_bug.cgi?id=101054
24805
24806         Reviewed by Adam Barth.
24807
24808         I'm investigating a Chromium crash bug:
24809         http://code.google.com/p/chromium/issues/detail?id=155942
24810
24811         I've not yet identified the root cause (because I can't reproduce
24812         the crash), but it looks like we are storing NULL pointers to
24813         V8 internal fields. Just in case, we can add an ASSERT() to
24814         guarantee that NULL pointers are never stored. (Also I'm hoping
24815         that this ASSERT() will give me more debug information.)
24816
24817         No tests. No change in behavior.
24818
24819         * bindings/v8/V8DOMWrapper.h:
24820         (WebCore::V8DOMWrapper::setDOMWrapper):
24821
24822 2012-11-02  Kevin Ellis  <kevers@chromium.org>
24823
24824         Imrpove scoring in touch adjustment to address bias towards smaller targets.
24825         https://bugs.webkit.org/show_bug.cgi?id=101046
24826
24827         Reviewed by Antonio Gomes.
24828
24829         Update the touch overlap score for touch adjustmetn to normalize
24830         with respect to the maximum possible overlap rather than the size
24831         of the target element.  This change enables good overlap scores for
24832         small and large targets alike.  Prior to the patch it was not possible
24833         to get a good overlap score for a sufficiently larget target.
24834
24835         Covered by existing tests, which have been updated to reflect the
24836         intended behavior.
24837
24838         * page/TouchAdjustment.cpp:
24839         (WebCore::TouchAdjustment::hybridDistanceFunction):
24840
24841 2012-11-02  Mike West  <mkwst@chromium.org>
24842
24843         Web Inspector: Repeated errors are rendered incorrectly: link is not floating to the right.
24844         https://bugs.webkit.org/show_bug.cgi?id=101032
24845
24846         Reviewed by Yury Semikhatsky.
24847
24848         https://bugs.webkit.org/show_bug.cgi?id=100525 incorrectly added
24849         '-webkit-flex: 1' only to the list generated for errors in the console.
24850         It should have been added to normal warning text as well. This patch
24851         fixes the problem.
24852
24853         * inspector/front-end/inspector.css:
24854         (.repeated-message .outline-disclosure, .repeated-message > .console-message-text):
24855
24856 2012-11-02  Eugene Klyuchnikov  <eustas.bug@gmail.com>
24857
24858         Web Inspector: Timeline: show popup for CPU bars.
24859         https://bugs.webkit.org/show_bug.cgi?id=100951
24860
24861         Reviewed by Pavel Feldman.
24862
24863         Each CPU bar can represent a combination of several shorter messages.
24864         We should show information about combined messages - start time,
24865         total duration, CPU time, message count.
24866
24867         * English.lproj/localizedStrings.js: Added "Message Count" string.
24868         * inspector/front-end/TimelinePanel.js:
24869         (WebInspector.TimelinePanel.prototype._refreshMainThreadBars):
24870         Supply elements with underlying info.
24871         * inspector/front-end/TimelinePresentationModel.js:
24872         (WebInspector.TimelinePresentationModel.prototype.generateMainThreadBarPopupContent):
24873         Added.
24874
24875 2012-11-02  Alexei Filippov  <alph@chromium.org>
24876
24877         Web Inspector: Network panel grid UI is misaligned after r132888
24878         https://bugs.webkit.org/show_bug.cgi?id=101050
24879
24880         Rollback the change to basic data grid css and move it to the native memory
24881         snapshot datagrid css.
24882
24883         Reviewed by Alexander Pavlov.
24884
24885         * inspector/front-end/dataGrid.css:
24886         (.data-grid td):
24887         * inspector/front-end/nativeMemoryProfiler.css:
24888         (.native-snapshot-view .data-grid td):
24889
24890 2012-11-02  Sheriff Bot  <webkit.review.bot@gmail.com>
24891
24892         Unreviewed, rolling out r133303.
24893         http://trac.webkit.org/changeset/133303
24894         https://bugs.webkit.org/show_bug.cgi?id=101068
24895
24896         "Broke qt wk2 build (seems like bots fails to rerun qmake if
24897         needed)" (Requested by kbalazs on #webkit).
24898
24899         * Target.pri:
24900         * WebCore.pri:
24901         * platform/PlatformStrategies.cpp:
24902         (WebCore):
24903         * platform/qt/QtTestSupport.h: Removed.
24904
24905 2012-11-02  Balazs Kelemen  <kbalazs@webkit.org>
24906
24907         [Qt][WK2] setPlatformStrategies always asserts after r132744
24908         https://bugs.webkit.org/show_bug.cgi?id=100838
24909
24910         Reviewed by Simon Hausmann.
24911
24912         The problem here is that we use QWebSettings::clearMemoryCaches, a WebKit1 API
24913         from the injected bundle, which calls initializeWebCoreQt and it sets the platform
24914         strategies to the one for WebKit1. We should stop using WebKit1 API's from WebKit2
24915         code. In order to keep the behavior, this patch adds exported helpers to WebCore
24916         that can be used from DumpRenderTree and WebKitTestRunner. This is the same idea
24917         as WebCoreTestSupport but these helpers are specific to Qt. Technically we could
24918         add it to the WebKit1 API for the time being, but my goal was to move in the direction
24919         of removing the WebKit1 dependency from WebKitTestRunner. We only build the file
24920         in non production mode.
24921
24922         Basically covered by all tests.
24923
24924         * Target.pri:
24925         * WebCore.pri: We need to link against fontconfig (only in non-production mode) since
24926         initializeTestFonts uses it.
24927         * platform/PlatformStrategies.cpp:
24928         (WebCore): Zero initialize the global static variable as it is expected by the functions
24929         below. It is a side fix. It seems like it has not been shown on debug WebKit2 bots because
24930         common runtime environments tend to zero initialize statics by default - but I don't think
24931         we should rely on that.
24932         * platform/qt/QtTestSupport.cpp: Added. I choose GPL license because code from qwebsettings.cpp
24933         is also under that.
24934         (WebKit):
24935         (WebKit::QtTestSupport::clearMemoryCaches): This is basically a copy of QWebSettings::clearMemoryCaches
24936         without calling initializeWebCoreQt.
24937         (WebKit::QtTestSupport::initializeTestFonts): I moved this code here as well now that we have to expose
24938         symbols from WebCore anyway. The advantage is that now we don't have to build it twice and we don't need
24939         additional files to forward it from the directory of DumpRenderTree for WebKitTestRunner.
24940         I added a call to FontCace::invalidate in the case when the font set has been changed so that it will do
24941         the job even if we would stop clearing all caches between tests. Also moved the call to
24942         QFontDatabase::removeAllApplicationFonts from callers to here.
24943         * platform/qt/QtTestSupport.h:
24944         (WebKit):
24945         (QtTestSupport):
24946
24947 2012-11-02  Kent Tamura  <tkent@chromium.org>
24948
24949         Optimize DateTimeFormat::quoteAndAppendLiteral output
24950         https://bugs.webkit.org/show_bug.cgi?id=101040
24951
24952         Reviewed by Kentaro Hara.
24953
24954         In LDML date format pattern, only ASCII alphabet and quote have special
24955         roles. So we don't need to quote the input string if it doesn't contain
24956         them.
24957
24958         No new tests. Updated WebKit/chromium/tests/LocaleWinTest.cpp
24959
24960         * platform/text/DateTimeFormat.cpp:
24961         (WebCore::isASCIIAlphabetOrQuote): A helper to check special characters.
24962         (WebCore::DateTimeFormat::quoteAndAppendLiteral):
24963         Append the input string as is if it has no special character.
24964
24965 2012-11-02  Ilya Tikhonovsky  <loislo@chromium.org>
24966
24967         Web Inspector: NMI instrument NodeRareData::Map. It uses ~250k on nytimes.com
24968         https://bugs.webkit.org/show_bug.cgi?id=101052
24969
24970         Reviewed by Yury Semikhatsky.
24971
24972         I noticed that in many cases cache structures are plain static HashMap, HashSet etc.
24973         MemoryAgent can visit it but instrumentation for these containers report no objectType.
24974         It means that addRootObject method needs to accept objectType property as an argument.
24975         Otherwise I would have had to create a proxy class with proper objectType.
24976
24977         * dom/WebCoreMemoryInstrumentation.cpp:
24978         (WebCore::WebCoreMemoryInstrumentation::reportMemoryUsage):
24979         (WebCore):
24980         * dom/WebCoreMemoryInstrumentation.h:
24981         (WebCoreMemoryInstrumentation):
24982         (WebCore):
24983         * inspector/InspectorMemoryAgent.cpp:
24984         (WebCore::InspectorMemoryAgent::getProcessMemoryDistribution):
24985
24986 2012-11-02  Michael Brüning  <michael.bruning@digia.com>
24987
24988         [Qt][WK2] ASSERT hit for every mouse click
24989         https://bugs.webkit.org/show_bug.cgi?id=100607
24990
24991         Reviewed by Jocelyn Turcotte.
24992
24993         Changed the logic of absolutePathForRenderer to use the first highlight box as the mid box 
24994         by uniting the two in case the mid box is empty. This allows the first box to be merged with
24995         the last box should they intersect, and thereby prevents an ASSERT in addHighlightRect that is
24996         triggered by two intersecting boxes being passed to addHighlightRect as separate ones.
24997
24998         Also, this patch removes some superfluous checks for LayoutRect::isEmpty, which is being checked
24999         in LayoutRect::intersects already.
25000
25001         No new tests, but added manual test: ManualTests/tap-gesture-on-em-link-tap-highlight-assert.html
25002
25003         * page/GestureTapHighlighter.cpp:
25004
25005 2012-11-02  Arpita Bahuguna  <arpitabahuguna@gmail.com>
25006
25007         Regression r130057: Improper preferred width calculation when an inline replaced object, wrapped in an inline flow, follows some text.
25008         https://bugs.webkit.org/show_bug.cgi?id=99442
25009
25010         Reviewed by Levi Weintraub.
25011
25012         Extra width is displayed after an inline replaced object that follows some
25013         text (not ending in a whitespace) within an inline-block. This is due to
25014         the end width (endMin) of the text object being carried forward (via inlineMin)
25015         and added onto the next line containing the inline replaced object.
25016
25017         This was caused as a regression to, or rather became apparent post the fix
25018         http://trac.webkit.org/changeset/130057 which fixed the block's preferred
25019         width when a renderInline with width contained an inline replaced object.
25020
25021         Test: fast/block/block-with-inline-replaced-child-following-text.html
25022
25023         * rendering/RenderBlock.cpp:
25024         (WebCore::RenderBlock::computeInlinePreferredLogicalWidths):
25025         Introduced another flag (shouldBreakLineAfterText) which is set when
25026         our current Text line (object) does not end in a whitespace, thereby
25027         implying that there could be more text following, for which the end width
25028         needs to be carried forward onto the next line.
25029
25030         In case the following object instead turns out to be an Inline Replaced
25031         object, we should terminate our previous line and reset this extra width.
25032         This is now being handled by checking for the shouldBreakLineAfterText
25033         flag while processing Inline Replaced objects.
25034
25035         Once set, shouldBreakLineAfterText shall be reset only if we get another
25036         Text object that ends in a whitespace, signifying the termination of
25037         that text line. For all other cases, we persist with this flag through
25038         the block's inline contents.
25039
25040 2012-11-02  Eugene Klyuchnikov  <eustas.bug@gmail.com>
25041
25042         Web Inspector: Console: remove obsolete ctrl-shift-m shortcut
25043         https://bugs.webkit.org/show_bug.cgi?id=101036
25044
25045         Reviewed by Pavel Feldman.
25046
25047         Ctrl-shift-m on console dumps MemoryAgent.getDOMNodeCount
25048         This functionality seems to be obsolete.
25049
25050         * inspector/front-end/ConsoleView.js: Removed shortcut and function.
25051
25052 2012-11-02  Stephen Chenney  <schenney@chromium.org>
25053
25054         SVG classes cause layering violations in platform Font code
25055         https://bugs.webkit.org/show_bug.cgi?id=98513
25056
25057         Reviewed by Eric Seidel.
25058
25059         Add a contained class to save and restore GlpyhPage state in FontFallbackList.
25060         This allows us to remove the layering violation, and several methods, that
25061         previously existed to support SVGTextRunRenderingContext.
25062
25063         No new tests because no change at all in functionality.
25064
25065         * platform/graphics/FontFallbackList.h:
25066         (FontFallbackList):
25067         (GlyphPagesStateSaver): New state save and restore class
25068         (WebCore::FontFallbackList::GlyphPagesStateSaver::GlyphPagesStateSaver): Save GlyphPage state
25069         (WebCore::FontFallbackList::GlyphPagesStateSaver::~GlyphPagesStateSaver): Restore GlyphPage state
25070         * rendering/svg/SVGTextRunRenderingContext.cpp:
25071         (WebCore::SVGTextRunRenderingContext::glyphDataForCharacter): Shift to usage of the new class.
25072
25073 2012-11-02  Vsevolod Vlasov  <vsevik@chromium.org>
25074
25075         Web Inspector: Fix compilation errors
25076         https://bugs.webkit.org/show_bug.cgi?id=101027
25077
25078         Reviewed by Yury Semikhatsky.
25079
25080         * inspector/InjectedScriptSource.js:
25081         (.):
25082         * inspector/front-end/NativeMemorySnapshotView.js:
25083         (WebInspector.NativeSnapshotNode.prototype._createSizeCell):
25084
25085 2012-11-02  Andreas Kling  <kling@webkit.org>
25086
25087         Only resolve attribute-derived style once per shared ElementAttributeData.
25088         <http://webkit.org/b/100990>
25089
25090         Reviewed by Antti Koivisto.
25091
25092         Track the serialization of the "style" attribute, and the dirtiness of the presentation attribute style
25093         on ElementAttributeData instead of in Node flags.
25094
25095         This allows us to avoid duplicate work for ElementAttributeData that are shared between multiple elements,
25096         since the state is no longer per-Element.
25097
25098         I've left the presentation attribute cache in there for now, since it covers two additional cases:
25099
25100             - Elements with the same attributes in different order.
25101             - Elements with the same presentation attributes, but with differing non-presentation attributes.
25102
25103         It's likely that we're not gaining much from it anymore, but that's a topic for another patch.
25104
25105         * dom/Node.h:
25106         * dom/ElementAttributeData.h:
25107         (WebCore::ElementAttributeData::presentationAttributeStyle):
25108         (WebCore::ElementAttributeData::setPresentationAttributeStyle):
25109         (WebCore::ElementAttributeData::styleAttributeIsDirty):
25110         (WebCore::ElementAttributeData::setStyleAttributeIsDirty):
25111         (WebCore::ElementAttributeData::presentationAttributeStyleIsDirty):
25112         (WebCore::ElementAttributeData::setPresentationAttributeStyleIsDirty):
25113         (ElementAttributeData):
25114         (WebCore::ElementAttributeData::ElementAttributeData):
25115         * dom/Element.cpp:
25116         (WebCore::Element::getAttribute):
25117         * dom/Element.h:
25118         (WebCore::Element::styleAttributeIsDirty):
25119         (WebCore::Element::updateInvalidAttributes):
25120         * dom/StyledElement.cpp:
25121         (WebCore::StyledElement::updateStyleAttribute):
25122         (WebCore::StyledElement::attributeChanged):
25123         (WebCore::StyledElement::styleAttributeChanged):
25124         (WebCore::StyledElement::inlineStyleChanged):
25125         * dom/StyledElement.h:
25126         (WebCore::StyledElement::invalidateStyleAttribute):
25127
25128             Move the "attribute style dirty" and "style attribute valid" node flags to ElementAttributeData
25129             and change them to both use dirty semantics.
25130
25131         * dom/ElementAttributeData.cpp:
25132         (WebCore::ElementAttributeData::cloneDataFrom):
25133
25134             Share the presentation attribute style between cloned elements initially.
25135
25136         * dom/StyledElement.h:
25137         (WebCore::StyledElement::presentationAttributeStyle):
25138         * css/StyleResolver.cpp:
25139         (WebCore::StyleResolver::sweepMatchedPropertiesCache):
25140         (WebCore::StyleResolver::matchAllRules):
25141         (WebCore::StyleResolver::canShareStyleWithElement):
25142         * dom/ElementAttributeData.cpp:
25143         (WebCore::MutableElementAttributeData::MutableElementAttributeData):
25144         (WebCore::ElementAttributeData::reportMemoryUsage):
25145         * inspector/InspectorCSSAgent.cpp:
25146         (WebCore::InspectorCSSAgent::buildObjectForAttributesStyle):
25147
25148             Renamed StyledElement::attributeStyle() to presentationAttributeStyle(). The old name was too
25149             easily confused with "style attribute".
25150
25151         * dom/StyledElement.cpp:
25152         (WebCore::StyledElement::rebuildPresentationAttributeStyle):
25153
25154             Renamed from updateAttributeStyle().
25155
25156 2012-11-01  Kent Tamura  <tkent@chromium.org>
25157
25158         Introduce ENABLE_DATE_AND_TIME_INPUT_TYPES, and clarify usage of other related flags
25159         https://bugs.webkit.org/show_bug.cgi?id=101007
25160
25161         Reviewed by Kentaro Hara.
25162
25163         ChromeClient::openDateTimeChooser and Locale::formatDateTime are
25164         necessary if one of date/time input types is enabled and even if
25165         ENABLE_INPUT_MULTIPLE_FIELDS_UI is disabled. So they should be wrapped
25166         with ENABLE(DATE_AND_TIME_INPUT_TYPES).
25167
25168         The following clases are used only for ChromeClient::openDateTimeChooser.
25169         They should be wrapped with the same flag.
25170           - class DateTimeChooser
25171           - class DateTiemChooserClient
25172
25173         The following classes/functions are used for
25174         Locale::formatDateTime. They should be wrapped with the same flag.
25175           - Locale::dateFormat
25176           - Locale::monthFormat
25177           - Locale::timeFormat
25178           - Locale::shortTimeFormat
25179           - Locale::monthLabels
25180           - Locale::shortMonthLabels
25181           - Locale::standAloneMonthLabels
25182           - Locale::shortStandAloneMonthLabels
25183           - class DateTimeFormat
25184
25185         Also, we change the meaning of ENABLE_CALENDAR_PICKER. It meant
25186          1) <input> supports calendar picker UI, and
25187          2) WebCore/Resources/pagepopups/ is used for the calendar UI implementation.
25188         Now ENABLE_CALENDAR_PICKER means only 2.
25189
25190         No new tests because of no behavior changes.
25191
25192         * html/BaseDateAndTimeInputType.h: This is necessary only if date/time
25193         input types are enabled because this is a common super class of
25194         date/time InputType classes.
25195         * html/BaseDateAndTimeInputType.cpp: Ditto.
25196         * html/BaseChooserOnlyDateAndTimeInputType.cpp: Ditto.
25197         * html/BaseChooserOnlyDateAndTimeInputType.h: Ditto.
25198
25199         * page/ChromeClient.h: Change the flag for openDateTimeChooser, and add a comment.
25200         * loader/EmptyClients.cpp: Follow the openDateTimeChooser flag change.
25201         * loader/EmptyClients.h: Ditto.
25202         * platform/DateTimeChooser.h:
25203         This is needed only if ChromeClient::openDateTimeChooser is available.
25204         * platform/DateTimeChooserClient.h: Ditto.
25205
25206         * platform/LocalizedStrings.h:
25207         weekFormatInLDML is necessary if ENABLE(INPUT_TYPE_WEEK) regardless of
25208         ENABLE(INPUT_MULTIPLE_FIELDS_UI).
25209
25210         * platform/text/PlatformLocale.h:
25211         Change the condition for Locale::formatDateTime and the code used by
25212         Locale::formatDateTime.
25213         * platform/text/PlatformLocale.cpp:
25214         (WebCore::Locale::formatDateTime):
25215         This is necessary even if !ENABLE(INPUT_MULTIPLE_FIELDS_UI), to produce
25216         localized representations of date/time values.
25217         * platform/text/LocaleICU.cpp:
25218         Change the condition for the code used by Locale::formatDateTime.
25219         * platform/text/LocaleICU.h: Ditto.
25220         * platform/text/LocaleNone.cpp: Ditto.
25221         * platform/text/mac/LocaleMac.h: Ditto.
25222         * platform/text/mac/LocaleMac.mm: Ditto.
25223         * platform/text/win/LocaleWin.cpp: Ditto.
25224         * platform/text/win/LocaleWin.h: Ditto.
25225         * platform/text/DateTimeFormat.cpp: Ditto.
25226         * platform/text/DateTimeFormat.h: Ditto.
25227
25228         * html/BaseMultipleFieldsDateAndTimeInputType.h:
25229         Remove some #if-#endif for a picker indicator element because
25230         ENABLE_CALENDAR_PICKER meaning is changed.
25231         * html/BaseMultipleFieldsDateAndTimeInputType.cpp: Ditto.
25232
25233         * html/shadow/PickerIndicatorElement.cpp: CALENDAR_PICKER ->
25234         INPUT_MULTIPLE_FIELDS_UI because ENABLE_CALENDAR_PICKER meaning is changed.
25235         * html/shadow/PickerIndicatorElement.h: Ditto.
25236         * rendering/RenderDetailsMarker.cpp: Ditto.
25237         * rendering/RenderDetailsMarker.h: Ditto.
25238         * rendering/RenderTheme.h: Ditto.
25239         * rendering/RenderThemeChromiumCommon.cpp: Ditto.
25240         * rendering/RenderThemeChromiumCommon.h: Ditto.
25241         * rendering/RenderThemeChromiumMac.h: Ditto.
25242         * rendering/RenderThemeChromiumSkia.h: Ditto.
25243
25244 2012-11-02  Zeno Albisser  <zeno@webkit.org>
25245
25246         [Qt] Revert QCocoaNativeInterface workaround from r131720.
25247         https://bugs.webkit.org/show_bug.cgi?id=100842
25248
25249         Reviewed by Simon Hausmann.
25250
25251         After updating Qt5 on the buildbots, the workaround
25252         introduced in r131720 is not needed anymore.
25253
25254         * platform/graphics/surfaces/mac/GraphicsSurfaceMac.cpp:
25255         (WebCore::GraphicsSurfacePrivate::GraphicsSurfacePrivate):
25256
25257 2012-11-02  Kent Tamura  <tkent@chromium.org>
25258
25259         Add a common base class for date/time input types without inline editing behavior
25260         https://bugs.webkit.org/show_bug.cgi?id=101031
25261
25262         Reviewed by Hajime Morita.
25263
25264         Add BaseChooserOnlyDateAndTimeInputType class, which will support
25265         DateTimeChooserClient, and date/time input types inherit it if
25266         !ENABLE(INPUT_MULTIPLE_FIELDS_UI).
25267
25268         No new tests. This doesn't change any behavior.
25269
25270         * CMakeLists.txt: Add BaseChooserOnlyDateAndTimeInputType.{cpp,h}.
25271         * GNUmakefile.list.am: Ditto.
25272         * Target.pri: Ditto.
25273         * WebCore.gypi: Ditto.
25274         * WebCore.xcodeproj/project.pbxproj: Ditto.
25275         * html/BaseChooserOnlyDateAndTimeInputType.cpp: Added.
25276         * html/BaseChooserOnlyDateAndTimeInputType.h: Added.
25277
25278         * html/DateInputType.h: Inherit BaseChooserOnlyDateAndTimeInputType if
25279         !ENABLE(INPUT_MULTIPLE_FIELDS_UI).
25280         * html/DateTimeInputType.h: Ditto.
25281         * html/DateTimeLocalInputType.h: Ditto.
25282         * html/MonthInputType.h: Ditto.
25283         * html/TimeInputType.h: Ditto.
25284         * html/WeekInputType.h: Ditto.
25285
25286 2012-11-02  Peter Wang  <peter.wang@torchmobile.com.cn>
25287
25288         Web Inspector: [JSC] implement WorkerScriptDebugServer
25289         https://bugs.webkit.org/show_bug.cgi?id=99801
25290
25291         Reviewed by Yury Semikhatsky.
25292
25293         To implement Worker Inspector for JSC.
25294         The virtual function "runEventLoopWhilePaused" is defined, since there are different ways to block
25295         the JS running in worker-context and normal page-context.
25296         The function "isContentScript" now is virtual because the original invoked functions are useless
25297         and cause problem in worker-context.
25298         In function "WebCore::WorkerScriptController::attachDebugger", we invoke "initScriptIfNeeded" to
25299         ensure the JSGloblalObject exist in the case of attaching Debugger before executing the worker
25300         JS code (Pause on start).
25301
25302         No new test case.
25303
25304         * bindings/js/PageScriptDebugServer.cpp:
25305         (WebCore::PageScriptDebugServer::runEventLoopWhilePaused):
25306         (WebCore):
25307         * bindings/js/PageScriptDebugServer.h:
25308         (PageScriptDebugServer):
25309         * bindings/js/ScriptDebugServer.cpp:
25310         (WebCore::ScriptDebugServer::isContentScript):
25311         (WebCore::ScriptDebugServer::pauseIfNeeded):
25312         * bindings/js/ScriptDebugServer.h:
25313         (JSC):
25314         (ScriptDebugServer):
25315         * bindings/js/WorkerScriptController.cpp:
25316         (WebCore::WorkerScriptController::attachDebugger):
25317         (WebCore):
25318         (WebCore::WorkerScriptController::detachDebugger):
25319         * bindings/js/WorkerScriptController.h:
25320         (WorkerScriptController):
25321         * bindings/js/WorkerScriptDebugServer.cpp:
25322         (WebCore::WorkerScriptDebugServer::WorkerScriptDebugServer):
25323         (WebCore):
25324         (WebCore::WorkerScriptDebugServer::addListener):
25325         (WebCore::WorkerScriptDebugServer::recompileAllJSFunctions):
25326         (WebCore::WorkerScriptDebugServer::removeListener):
25327         (WebCore::WorkerScriptDebugServer::runEventLoopWhilePaused):
25328         * bindings/js/WorkerScriptDebugServer.h:
25329         (WorkerScriptDebugServer):
25330         (WebCore::WorkerScriptDebugServer::getListenersForGlobalObject):
25331         (WebCore::WorkerScriptDebugServer::isContentScript):
25332
25333 2012-11-02  KyungTae Kim  <ktf.kim@samsung.com>
25334
25335         Compilation warning in Node.cpp when USERSELECT_ALL is disabled
25336         https://bugs.webkit.org/show_bug.cgi?id=101025
25337
25338         Reviewed by Ryosuke Niwa.
25339
25340         The parameter 'treatment' is not used when USERSELECT_ALL is disabled. 
25341
25342         * dom/Node.cpp:
25343         (WebCore::Node::rendererIsEditable):
25344
25345 2012-11-01  Vsevolod Vlasov  <vsevik@chromium.org>
25346
25347         Web Inspector: Middle click closes an editor and pastes selection into current editor on Linux
25348         https://bugs.webkit.org/show_bug.cgi?id=100743
25349
25350         Reviewed by Alexander Pavlov.
25351
25352         Editor now consumes all middle mouse button mouse ups except for the ones in the main panel.
25353         TabbedPane now consumes all middle mouse button mouse ups as well.
25354         Navigator view does not pass focus anymore if element was selected with middle mouse button.
25355
25356         * inspector/front-end/DefaultTextEditor.js:
25357         (.preventDefaultOnMouseUp):
25358         (.consumeMouseUp):
25359         * inspector/front-end/NavigatorView.js:
25360         (WebInspector.NavigatorSourceTreeElement.prototype.ondblclick):
25361         * inspector/front-end/TabbedPane.js:
25362         (WebInspector.TabbedPane):
25363         (WebInspector.TabbedPane.prototype.onMouseUp):
25364         (WebInspector.TabbedPane.prototype.onMouseClick):
25365
25366 2012-11-01  Ilya Tikhonovsky  <loislo@chromium.org>
25367
25368         Web Inspector: NMI instrument ShadowRoot. It gives us ~400k on plus.google.com
25369         https://bugs.webkit.org/show_bug.cgi?id=100866
25370
25371         Reviewed by Yury Semikhatsky.
25372
25373         Plain vanilla memory instrumentation code for HTMLInputElement which has a ElementShadow.
25374
25375         * CMakeLists.txt:
25376         * GNUmakefile.list.am:
25377         * Target.pri:
25378         * WebCore.gypi:
25379         * WebCore.vcproj/WebCore.vcproj:
25380         * dom/DocumentOrderedMap.cpp:
25381         (WebCore::DocumentOrderedMap::reportMemoryUsage):
25382         (WebCore):
25383         * dom/DocumentOrderedMap.h:
25384         (DocumentOrderedMap):
25385         * dom/Element.cpp:
25386         (WebCore::Element::reportMemoryUsage):
25387         (WebCore):
25388         * dom/Element.h:
25389         * dom/ElementRareData.cpp: Added.
25390         (WebCore):
25391         (WebCore::ElementRareData::reportMemoryUsage):
25392         * dom/ElementRareData.h:
25393         (ElementRareData):
25394         * dom/ElementShadow.cpp:
25395         (WebCore::ElementShadow::reportMemoryUsage):
25396         (WebCore):
25397         * dom/ElementShadow.h:
25398         (ElementShadow):
25399         * dom/Node.cpp:
25400         (WebCore::Node::reportMemoryUsage):
25401         * dom/NodeRareData.cpp: Added.
25402         (WebCore):
25403         (WebCore::NodeListsNodeData::reportMemoryUsage):
25404         (WebCore::NodeRareData::reportMemoryUsage):
25405         * dom/NodeRareData.h:
25406         (NodeListsNodeData):
25407         (NodeRareData):
25408         * dom/ShadowRoot.cpp:
25409         (WebCore):
25410         (WebCore::ShadowRoot::reportMemoryUsage):
25411         * dom/ShadowRoot.h:
25412         (ShadowRoot):
25413         * dom/TreeScope.cpp:
25414         (WebCore::TreeScope::reportMemoryUsage):
25415         (WebCore):
25416         * dom/TreeScope.h:
25417         (TreeScope):
25418         * html/HTMLFormControlElement.cpp:
25419         (WebCore::HTMLFormControlElement::reportMemoryUsage):
25420         (WebCore):
25421         * html/HTMLFormControlElement.h:
25422         (HTMLFormControlElement):
25423         * html/HTMLInputElement.cpp:
25424         (WebCore::HTMLInputElement::reportMemoryUsage):
25425         (WebCore):
25426         * html/HTMLInputElement.h:
25427         (HTMLInputElement):
25428         * html/HTMLTextFormControlElement.cpp:
25429         (WebCore::HTMLTextFormControlElement::reportMemoryUsage):
25430         (WebCore):
25431         * html/HTMLTextFormControlElement.h:
25432         (HTMLTextFormControlElement):
25433
25434 2012-11-02  Vsevolod Vlasov  <vsevik@chromium.org>
25435
25436         Web Inspector: Cookie info in Network Resources Cookies tab shows "Invalid Date"
25437         https://bugs.webkit.org/show_bug.cgi?id=97471
25438
25439         Reviewed by Pavel Feldman.
25440
25441         This patch is partly based on patch by Otto Derek Cheung <otcheung@rim.com>.
25442         Refactored CookieParser so that all cookies in front-end were WebInspector.Cookie object.
25443         Cookie table can now show Max-Age as well as Expires attribute of a cookie.
25444         Fixed expiresDate calculation.
25445         Removed getters from CookieParser for better compilation.
25446
25447         * English.lproj/localizedStrings.js:
25448         * inspector/front-end/AuditRules.js:
25449         (WebInspector.AuditRules.CookieRuleBase.prototype.mapResourceCookies):
25450         (WebInspector.AuditRules.CookieSizeRule.prototype._average):
25451         (WebInspector.AuditRules.CookieSizeRule.prototype._max):
25452         (WebInspector.AuditRules.StaticCookielessRule.prototype._collectorCallback):
25453         * inspector/front-end/CookieItemsView.js:
25454         (WebInspector.CookieItemsView.prototype._filterCookiesForDomain):
25455         * inspector/front-end/CookieParser.js:
25456         (WebInspector.CookieParser.prototype.cookies):
25457         (WebInspector.CookieParser.prototype._flushCookie):
25458         (WebInspector.CookieParser.prototype._addCookie):
25459         (WebInspector.Cookie.prototype.httpOnly):
25460         (WebInspector.Cookie.prototype.secure):
25461         (WebInspector.Cookie.prototype.session):
25462         (WebInspector.Cookie.prototype.path):
25463         (WebInspector.Cookie.prototype.domain):
25464         (WebInspector.Cookie.prototype.expires):
25465         (WebInspector.Cookie.prototype.maxAge):
25466         (WebInspector.Cookie.prototype.size):
25467         (WebInspector.Cookie.prototype.setSize):
25468         (WebInspector.Cookie.prototype.expiresDate):
25469         (WebInspector.Cookie.prototype.attributes):
25470         (WebInspector.Cookies.getCookiesAsync):
25471         (WebInspector.Cookies.buildCookiesFromString):
25472         (WebInspector.Cookies.buildCookieProtocolObject):
25473         (WebInspector.Cookies.cookieMatchesResourceURL):
25474         (WebInspector.Cookies.cookieDomainMatchesResourceDomain):
25475         * inspector/front-end/CookiesTable.js:
25476         (WebInspector.CookiesTable):
25477         (WebInspector.CookiesTable.prototype._totalSize):
25478         (WebInspector.CookiesTable.prototype._sortCookies.expiresCompare):
25479         (WebInspector.CookiesTable.prototype._sortCookies):
25480         (WebInspector.CookiesTable.prototype._createGridNode):
25481         * inspector/front-end/HAREntry.js:
25482         (WebInspector.HAREntry.prototype._buildCookie):
25483
25484 2012-11-01  Yury Semikhatsky  <yurys@chromium.org>
25485
25486         Memory instrumentation: do not call checkCountedObject with wrong pointers
25487         https://bugs.webkit.org/show_bug.cgi?id=100958
25488
25489         Reviewed by Alexander Pavlov.
25490
25491         Removed redundant call to checkCountedObject.
25492
25493         * inspector/MemoryInstrumentationImpl.cpp:
25494         (WebCore::MemoryInstrumentationClientImpl::countObjectSize):
25495
25496 2012-11-02  Peter Wang  <peter.wang@torchmobile.com.cn>
25497
25498         Web Inspector: a small defect in "WorkersSidebarPanel.js"
25499         https://bugs.webkit.org/show_bug.cgi?id=101022
25500
25501         Reviewed by Yury Semikhatsky.
25502
25503         In "autoattachToWorkersClicked", the "event.target.checked" doesn't alwyas valid, since the
25504         "event.target" might be a label.
25505
25506         The problem just causes an error report, doesn't effect function, so no new test case.
25507
25508         * inspector/front-end/WorkersSidebarPane.js:
25509         (WebInspector.WorkersSidebarPane.prototype._autoattachToWorkersClicked):
25510
25511 2012-11-01  Shinya Kawanaka  <shinyak@chromium.org>
25512
25513         [Shadow] Element should have getter and setter of attribute 'pseudo'
25514         https://bugs.webkit.org/show_bug.cgi?id=100831
25515
25516         Reviewed by Hajime Morita.
25517
25518         We expose 'pseudo' attribute in Element. When nothing is assigned to 'pseudo', it should return null.
25519
25520         Test: fast/dom/shadow/pseudo-attribute.html
25521
25522         * dom/Element.cpp:
25523         (WebCore::Element::pseudo):
25524         (WebCore):
25525         (WebCore::Element::setPseudo):
25526         * dom/Element.h:
25527         (Element):
25528         * dom/Element.idl:
25529         * html/HTMLAttributeNames.in:
25530
25531 2012-11-01  Roger Fong  <roger_fong@apple.com>
25532
25533         Build fix. http://trac.webkit.org/changeset/133252 broke the Windows build.
25534         https://bugs.webkit.org/show_bug.cgi?id=101008
25535
25536         Reviewed by fischman@chromium.org.
25537
25538         * html/HTMLMediaElement.cpp:
25539         (WebCore::HTMLMediaElement::clearMediaPlayer):
25540         * html/HTMLMediaElement.h:
25541         (HTMLMediaElement):
25542
25543 2012-11-01  Stephen White  <senorblanco@chromium.org>
25544
25545         Unreviewed, rolling out r133244.
25546         http://trac.webkit.org/changeset/133244
25547         https://bugs.webkit.org/show_bug.cgi?id=100973
25548
25549         Broke Chromium Mac (clang) builds.
25550
25551         * bindings/v8/DOMDataStore.cpp:
25552         (WebCore::DOMDataStore::DOMDataStore):
25553         * bindings/v8/IntrusiveDOMWrapperMap.h:
25554         (WebCore::DOMNodeWrapperMap::weakCallback):
25555
25556 2012-11-01  Ami Fischman  <fischman@chromium.org>
25557
25558         HTMLMediaPlayer should free m_player when src is set/changed
25559         https://bugs.webkit.org/show_bug.cgi?id=99647
25560
25561         Reviewed by Eric Carlson.
25562
25563         New ManualTest added; manual since leaking media players doesn't have layoutTestController-visible effects.
25564
25565         * html/HTMLMediaElement.cpp:
25566         (WebCore::HTMLMediaElement::parseAttribute): clearMediaPlayer() when src is set/changed
25567         (WebCore::HTMLMediaElement::userCancelledLoad): use new clearMediaPlayer() helper
25568         (WebCore::HTMLMediaElement::clearMediaPlayer): clear m_player and associated timers/flags
25569         (WebCore):
25570         (WebCore::HTMLMediaElement::createMediaPlayer): whitespace-only change
25571         * html/HTMLMediaElement.h: new method: createMediaPlayer().
25572         (HTMLMediaElement):
25573
25574 2012-11-01  Tom Sepez  <tsepez@chromium.org>
25575
25576         XSS blocker false positive when page contains <iframe src="">
25577         https://bugs.webkit.org/show_bug.cgi?id=93416
25578
25579         Reviewed by Adam Barth.
25580
25581         Treat src="" and src="about:blank" as safe resources even if they appear
25582         in the query parameters.
25583
25584         Tests: http/tests/security/xssAuditor/iframe-injection-allowed-2.html
25585                http/tests/security/xssAuditor/iframe-injection-allowed-3.html
25586                http/tests/security/xssAuditor/iframe-injection-allowed.html
25587
25588         * html/parser/XSSAuditor.cpp:
25589         (WebCore::XSSAuditor::isLikelySafeResource):
25590
25591 2012-11-01  Tien-Ren Chen  <trchen@chromium.org>
25592
25593         Fix assertion failure in RenderGeometryMap::absoluteRect when frame scale != 1.0
25594         https://bugs.webkit.org/show_bug.cgi?id=100912
25595
25596         Reviewed by Simon Fraser.
25597
25598         Frame scale will add transformation to RenderView, so fixed position doesn't
25599         get propagated up to the viewport by RenderGeometryMap. This is handled
25600         correctly in RenderView::mapLocalToContainer, causing the assertion to fail.
25601         This patch corrects RenderGeometryMap::mapToAbsolute to handle the RenderView
25602         transformation case.
25603
25604         A layout test is added to catch this issue. The test will crash debug build
25605         without this patch.
25606
25607         Test: compositing/geometry/fixed-position-composited-page-scale-scroll.html
25608
25609         * rendering/RenderGeometryMap.cpp:
25610         (WebCore::RenderGeometryMap::mapToAbsolute):
25611
25612 2012-11-01  Adam Barth  <abarth@webkit.org>
25613
25614         [V8] Generalize NodeWrapperMap to be able to handle other sorts of keys
25615         https://bugs.webkit.org/show_bug.cgi?id=100973
25616
25617         Reviewed by Kentaro Hara.
25618
25619         This is the first step towards using intrusive DOM wrapper maps more
25620         widely in WebCore (see
25621         http://lists.webkit.org/pipermail/webkit-dev/2012-November/022686.html
25622         for more context).
25623
25624         * bindings/v8/DOMDataStore.cpp:
25625         (WebCore::DOMDataStore::DOMDataStore):
25626         * bindings/v8/IntrusiveDOMWrapperMap.h:
25627         (WebCore):
25628         (WebCore::IntrusiveDOMWrapperMap::weakCallback):
25629
25630 2012-11-01  Alexandru Chiculita  <achicu@adobe.com>
25631
25632         [CSS Shaders] CustomFilterOperation should be converted to ValidatedCustomFilterOperation before using it
25633         https://bugs.webkit.org/show_bug.cgi?id=100533
25634
25635         Reviewed by Dean Jackson.
25636
25637         Added the code that converts a CustomFilterOperation to a ValidatedCustomFilterOperation.
25638         Both the software path and the composited one will use this operation instead. There will be
25639         no need to check the shader in platform code anymore.
25640
25641         No new tests, already covered by existing custom filter tests.
25642
25643         * platform/graphics/filters/ValidatedCustomFilterOperation.cpp:
25644         (WebCore::ValidatedCustomFilterOperation::ValidatedCustomFilterOperation):
25645         * platform/graphics/filters/ValidatedCustomFilterOperation.h:
25646         (WebCore):
25647         (WebCore::ValidatedCustomFilterOperation::create):
25648         (ValidatedCustomFilterOperation):
25649         (WebCore::ValidatedCustomFilterOperation::validatedProgram):
25650         (WebCore::ValidatedCustomFilterOperation::parameters):
25651         (WebCore::ValidatedCustomFilterOperation::meshRows):
25652         (WebCore::ValidatedCustomFilterOperation::meshColumns):
25653         (WebCore::ValidatedCustomFilterOperation::meshType):
25654         (WebCore::ValidatedCustomFilterOperation::operator==):
25655         * rendering/FilterEffectRenderer.cpp:
25656         (WebCore::createCustomFilterEffect):
25657         (WebCore::FilterEffectRenderer::build):
25658         * rendering/RenderLayer.cpp:
25659         (WebCore::RenderLayer::ensureBacking):
25660         (WebCore::RenderLayer::clearBacking):
25661         (WebCore::RenderLayer::styleChanged): updateOrRemoveFilterClients needs to be called before the composited
25662         layer is updated. Otherwise the composited layer will never see a loaded filter in the first call.
25663         (WebCore):
25664         (WebCore::RenderLayer::isCSSCustomFilterEnabled):
25665         (WebCore::RenderLayer::computeFilterOperations):
25666         (WebCore::RenderLayer::updateOrRemoveFilterClients): Split updateOrRemoveFilterEffect into 2 functions.
25667         This one is supposed to add the clients needed to load network resources.
25668         (WebCore::RenderLayer::updateOrRemoveFilterEffectRenderer): Figures out if a software fallback is needed 
25669         and creates a FilterEffectRenderer.
25670         * rendering/RenderLayer.h:
25671         (RenderLayer):
25672
25673 2012-11-01  Max Vujovic  <mvujovic@adobe.com>
25674
25675         [CSS Shaders] Get rid of internal tex coord attribute
25676         https://bugs.webkit.org/show_bug.cgi?id=94358
25677
25678         Reviewed by Dean Jackson.
25679
25680         Remove the internal css_a_texCoord attribute that WebKit added to shaders in order to
25681         sample the element texture by texture coordinate.
25682
25683         Now, the WebKit-added sampling code can leverage a_texCoord if the author defined it, or
25684         WebKit can add its own a_texCoord definition to the author's shader.
25685
25686         Note that vertex attributes are read-only in GLSL. Also, note that we already reject the
25687         shader if the author did not define a_texCoord with the correct type. Essentially, if
25688         a_texCoord exists in the author's validated shader, we are guaranteed that it's the correct
25689         type and that its value is unmodified.
25690
25691         Test: css3/filters/custom/custom-filter-a-tex-coord-optional.html
25692
25693         * platform/graphics/filters/CustomFilterCompiledProgram.cpp:
25694         (WebCore::CustomFilterCompiledProgram::CustomFilterCompiledProgram):
25695             Remove the references to m_internalTexCoordAttribLocation.
25696         (WebCore::CustomFilterCompiledProgram::initializeParameterLocations): Ditto.
25697         * platform/graphics/filters/CustomFilterCompiledProgram.h: Ditto.
25698         * platform/graphics/filters/CustomFilterRenderer.cpp:
25699         (WebCore::CustomFilterRenderer::bindProgramAndBuffers): Ditto.
25700         (WebCore::CustomFilterRenderer::unbindVertexAttributes): Ditto.
25701         * platform/graphics/filters/CustomFilterValidatedProgram.cpp:
25702         (WebCore::CustomFilterValidatedProgram::CustomFilterValidatedProgram):
25703             Pass the set of symbols found in the author's shaders to the rewriteMixVertexShader
25704             method.
25705         (WebCore::CustomFilterValidatedProgram::rewriteMixVertexShader):
25706             If the author didn't define a_texCoord, add it to the end of the author's vertex 
25707             shader, but before the shader's new main function. As before, the new main function
25708             will pass the texture coordinate to the fragment shader via the css_v_texCoord varying.
25709         * platform/graphics/filters/CustomFilterValidatedProgram.h:
25710         (WebCore):
25711             Add a forward declaration for ANGLEShaderSymbol.
25712         (CustomFilterValidatedProgram):
25713             Update the method prototype for rewriteMixVertexShader.
25714
25715 2012-11-01  Chris Rogers  <crogers@google.com>
25716
25717         Ensure that AudioNode deletion is synchronized with a stable state of the rendering graph
25718         https://bugs.webkit.org/show_bug.cgi?id=100994
25719
25720         Reviewed by Kenneth Russell.
25721
25722         In some rare cases it has been observed that nodes are getting deleted in the main thread
25723         during an audio rendering quantum where the dirty inputs and outputs have not yet been cleaned
25724         via calls to handleDirtyAudioSummingJunctions() and handleDirtyAudioNodeOutputs().
25725         This was possible because nodes marked for deletion with markForDeletion() could be picked
25726         up in a subsequent call to deleteMarkedNodes() before the render quantum has finished and
25727         handlePostRenderTasks() has had a chance to reconcile these marked nodes and clean the dirty state.
25728         The solution is to manage the marked nodes in a separate vector which only gets copied to another
25729         vector truly eligible for deletion which is synchronized in handlePostRenderTasks().
25730
25731         * Modules/webaudio/AudioContext.cpp:
25732         (WebCore::AudioContext::markForDeletion):
25733         (WebCore::AudioContext::scheduleNodeDeletion):
25734         (WebCore::AudioContext::deleteMarkedNodes):
25735         * Modules/webaudio/AudioContext.h:
25736         (AudioContext):
25737
25738 2012-11-01  Ryosuke Niwa  <rniwa@webkit.org>
25739
25740         Build fix after r133224 as suggested by Enrica.
25741         Confirmed the test failures go away on Chromium Mac locally.
25742
25743         * page/EventHandler.cpp:
25744         (WebCore::EventHandler::updateSelectionForMouseDrag):
25745
25746 2012-11-01  Alexey Proskuryakov  <ap@apple.com>
25747
25748         Rename HAVE(NETWORK_CFDATA_ARRAY_CALLBACK) to USE(NETWORK_CFDATA_ARRAY_CALLBACK)
25749
25750         Rubber-stamped by Joe Pecoraro.
25751
25752         All CFNetwork based platforms have this now, but not all use it at the moment.
25753
25754         * loader/ResourceLoader.h:
25755         * loader/SubresourceLoader.h:
25756         * loader/cf/SubresourceLoaderCF.cpp:
25757         * loader/mac/ResourceLoaderMac.mm:
25758         * platform/SharedBuffer.cpp:
25759         (WebCore::SharedBuffer::clear):
25760         (WebCore::SharedBuffer::buffer):
25761         (WebCore::SharedBuffer::getSomeData):
25762         * platform/SharedBuffer.h:
25763         * platform/cf/SharedBufferCF.cpp:
25764         * platform/network/ResourceHandle.h:
25765         * platform/network/ResourceHandleClient.h:
25766         (ResourceHandleClient):
25767         * platform/network/cf/ResourceHandleCFNet.cpp:
25768         (WebCore::willCacheResponse):
25769         (WebCore::ResourceHandle::createCFURLConnection):
25770         * platform/network/mac/ResourceHandleMac.mm:
25771
25772 2012-11-01  Alexey Proskuryakov  <ap@apple.com>
25773
25774         Fix HAVE(NETWORK_CFDATA_ARRAY_CALLBACK) build
25775         https://bugs.webkit.org/show_bug.cgi?id=100979
25776
25777         Reviewed by Joseph Pecoraro.
25778
25779         * loader/ResourceBuffer.cpp: (WebCore::ResourceBuffer::append):
25780         * loader/ResourceBuffer.h:
25781         Added a version of append() that takes CFDataRef, passing it directly to SharedBuffer.
25782
25783         * loader/mac/ResourceLoaderMac.mm: (WebCore::ResourceLoader::didReceiveDataArray):
25784         InspectorInstrumentation now takes a length. Unfortunately, we don't have encodedLength
25785         here, meaning that the results will likely be incorrect.
25786
25787         * platform/network/cf/ResourceHandleCFNet.cpp:
25788         (WebCore::willCacheResponse): Removed a version that needlessly used deprecated API.
25789         (WebCore::ResourceHandle::createCFURLConnection): This code assumed that
25790         HAVE(NETWORK_CFDATA_ARRAY_CALLBACK) and USE(PROTECTION_SPACE_AUTH_CALLBACK) always
25791         come together. Changed to check for these separately.
25792
25793 2012-11-01  Rob Buis  <rbuis@rim.com>
25794
25795         [BlackBerry] Add more form validation strings
25796         https://bugs.webkit.org/show_bug.cgi?id=100978
25797
25798         Reviewed by Yong Li.
25799
25800         PR 210072
25801
25802         Implement these two methods properly.
25803
25804         * platform/blackberry/LocalizedStringsBlackBerry.cpp:
25805         (WebCore::validationMessageRangeUnderflowText):
25806         (WebCore::validationMessageRangeOverflowText):
25807
25808 2012-11-01  Alexandru Chiculita  <achicu@adobe.com>
25809
25810         [CSS Shaders] Move MeshBoxType out of CustomFilterOperation
25811         https://bugs.webkit.org/show_bug.cgi?id=100782
25812
25813         Reviewed by Dean Jackson.
25814
25815         Moved CustomFilter::MeshBoxType enum to the CustomFilterConstants.h file and renamed it to CustomFilterMeshBoxType. 
25816         This way we can reuse it without including the CustomFilterOperation file.
25817
25818         No new tests, just refactoring code.
25819
25820         * css/CSSPrimitiveValueMappings.h:
25821         (WebCore::CSSPrimitiveValue::CSSPrimitiveValue):
25822         (WebCore::CSSPrimitiveValue::operator CustomFilterMeshBoxType):
25823         * css/StyleResolver.cpp:
25824         (WebCore::StyleResolver::createCustomFilterOperation):
25825         * platform/graphics/filters/CustomFilterArrayParameter.h: Adding AnimationUtilities.h for WebCore::blend, looks like
25826         CustomFilterOperation already included AnimationsUtilities.h indirectly.
25827         * platform/graphics/filters/CustomFilterConstants.h: Added CustomFilterMeshBoxType.
25828         * platform/graphics/filters/CustomFilterNumberParameter.h:
25829         * platform/graphics/filters/CustomFilterOperation.cpp:
25830         (WebCore::CustomFilterOperation::CustomFilterOperation):
25831         * platform/graphics/filters/CustomFilterOperation.h:
25832         (WebCore::CustomFilterOperation::create):
25833         (WebCore::CustomFilterOperation::meshBoxType):
25834         (CustomFilterOperation):
25835         * platform/graphics/filters/CustomFilterRenderer.cpp:
25836         (WebCore::CustomFilterRenderer::create):
25837         (WebCore::CustomFilterRenderer::CustomFilterRenderer):
25838         * platform/graphics/filters/CustomFilterRenderer.h: Also removed the need to include CustomFilterOperation.h. Some other
25839         headers were needed to replace the files that were automatically incldued because of that file.
25840         (WebCore):
25841         (CustomFilterRenderer):
25842         * platform/graphics/filters/FECustomFilter.cpp:
25843         (WebCore::FECustomFilter::FECustomFilter):
25844         (WebCore::FECustomFilter::create):
25845         * platform/graphics/filters/FECustomFilter.h:
25846         (FECustomFilter):
25847
25848 2012-11-01  Enrica Casucci  <enrica@apple.com>
25849
25850         Part2 of: Extend -webkit-user-select with new value "all"
25851         <rdar://problem/10161404>
25852         https://bugs.webkit.org/show_bug.cgi?id=91912
25853
25854         Reviewed by Ryosuke Niwa.
25855
25856         The new value "all" for -webkit-user-select property gives content none-or-all selection option.
25857         The patch was originally prepared by Alice Cheng but the approach has been changed.
25858         The idea is to treat these elements like non editable, meaning that we should skip over them entirely
25859         when moving the cursor and a deletion should delete the element and all its descentants at once.
25860         The key change is in Node::rendererIsEditable where we now return false if the element style is
25861         userSelect: all. The other change is in the way we create the selection on mouse click and dragging
25862         over the element. In both cases we force the selection to extend over the entire element with
25863         the user-select: all attribute.
25864         This is currently enabled only for the Mac port.
25865
25866         Test: editing/selection/user-select-all-selection.html
25867
25868         * dom/Node.cpp: Added a parameter to isContentEditable to behave differently
25869         when called from JavaScript. Internally isContentEditable returns false on
25870         nodes with user-select: all style.
25871         (WebCore::Node::isContentEditable):
25872         (WebCore::Node::isContentRichlyEditable):
25873         (WebCore::Node::rendererIsEditable):
25874         (WebCore::Node::shouldUseInputMethod):
25875         (WebCore::Node::willRespondToMouseClickEvents):
25876         * dom/Node.h:
25877         (WebCore::Node::rendererIsEditable):
25878         (WebCore::Node::rendererIsRichlyEditable):
25879         * dom/Position.cpp:
25880         (WebCore::Position::nodeIsUserSelectAll): Added.
25881         (WebCore::Position::rootUserSelectAllForNode): Added.
25882         * dom/Position.h: Added static functions described above.
25883         * editing/ApplyStyleCommand.cpp:
25884         (WebCore::ApplyStyleCommand::removeInlineStyleFromElement): Added parameter to
25885         isContentEditable() call.
25886         (WebCore::ApplyStyleCommand::surroundNodeRangeWithElement): Added parameter to
25887         isContentEditable() call.
25888         * editing/DeleteFromTextNodeCommand.cpp:
25889         (WebCore::DeleteFromTextNodeCommand::doApply): Added parameter to
25890         isContentEditable() call.
25891         * editing/FrameSelection.cpp:
25892         (WebCore::adjustForwardPositionForUserSelectAll): New helper function.
25893         (WebCore::adjustBackwardPositionForUserSelectAll): New helper function.
25894         (WebCore::FrameSelection::modifyExtendingRight):
25895         (WebCore::FrameSelection::modifyExtendingForward):
25896         (WebCore::FrameSelection::modifyExtendingLeft):
25897         (WebCore::FrameSelection::modifyExtendingBackward):
25898         (WebCore::FrameSelection::modify):
25899         (WebCore::CaretBase::invalidateCaretRect): Added parameter to
25900         isContentEditable() call.
25901         * editing/InsertNodeBeforeCommand.cpp:
25902         (WebCore::InsertNodeBeforeCommand::doApply): Ditto.
25903         (WebCore::InsertNodeBeforeCommand::doUnapply): Ditto.
25904         * editing/RemoveNodeCommand.cpp:
25905         (WebCore::RemoveNodeCommand::doApply): Ditto.
25906         * editing/visible_units.cpp:
25907         (WebCore::startOfParagraph): We should not consider a paragraph break and element
25908         with user-select: all style, like we do at the border of editability.
25909         (WebCore::endOfParagraph): Ditto.
25910         * page/EventHandler.cpp:
25911         (WebCore::EventHandler::updateSelectionForMouseDownDispatchingSelectStart): Create a selection
25912         around the element whose style is user-select: all.
25913         (WebCore::EventHandler::updateSelectionForMouseDrag): Ditto.
25914         * rendering/RootInlineBox.cpp:
25915         (WebCore::RootInlineBox::selectionState): Fixed a bug uncovered during this work.
25916         If the selection starts in one of the leaf boxes and after we encounter one with SelectionNone,
25917         we should return the selection state as SelectionBoth, assuming we went past the end selection.
25918         This avoids doing an incorrect gap filling for the selection highlighting.
25919
25920 2012-11-01  Alec Flett  <alecflett@chromium.org>
25921
25922         IndexedDB: Fix Windows build by re-adding a #include
25923         https://bugs.webkit.org/show_bug.cgi?id=100986
25924
25925         Reviewed by Stephen White.
25926
25927         Fix #include that broke windows.
25928
25929         * Modules/indexeddb/IDBCallbacks.h:
25930
25931 2012-11-01  David Barton  <dbarton@mathscribe.com>
25932
25933         REGRESSION (r128837): mathml/presentation/subsup.xhtml became flaky
25934         https://bugs.webkit.org/show_bug.cgi?id=97390
25935
25936         Reviewed by Ojan Vafai.
25937
25938         In a RenderMathMLSubSup, we need to set the base's wrapper's style so that baseHeight
25939         in layout() will be the base's true height, without any flexbox stretching.
25940
25941         Tested by existing tests.
25942
25943         * rendering/mathml/RenderMathMLSubSup.cpp:
25944         (WebCore::RenderMathMLSubSup::fixAnonymousStyles):
25945         (WebCore::RenderMathMLSubSup::addChild):
25946         (WebCore::RenderMathMLSubSup::styleDidChange):
25947         * rendering/mathml/RenderMathMLSubSup.h:
25948         (RenderMathMLSubSup):
25949
25950 2012-11-01  Antti Koivisto  <antti@apple.com>
25951
25952         REGRESSION (r132941): attribute modification 10% performance regression
25953         https://bugs.webkit.org/show_bug.cgi?id=100873
25954
25955         Reviewed by Ojan Vafai.
25956
25957         Don't do the class change finding by mutating SpaceSplitString. It is slow. Instead use a bit vector
25958         to mark the unchanged classes
25959
25960         * css/StyleResolver.cpp:
25961         (WebCore):
25962         * css/StyleResolver.h:
25963         (WebCore::StyleResolver::hasSelectorForAttribute):
25964         (WebCore):
25965         (WebCore::StyleResolver::hasSelectorForClass):
25966         (WebCore::StyleResolver::hasSelectorForId):
25967         
25968             Inlined these and moved value validity testing to clients.
25969
25970         * dom/Element.cpp:
25971         (WebCore::checkNeedsStyleInvalidationForIdChange):
25972         (WebCore):
25973         (WebCore::Element::attributeChanged):
25974     
25975             Clean up id testing too.
25976
25977         (WebCore::checkNeedsStyleInvalidationForClassChange):
25978         
25979             Use bit vector for marking seen values. Avoids allocations and reffing.
25980
25981         (WebCore::Element::classAttributeChanged):
25982         
25983             Don't test if style is already invalid.
25984
25985 2012-11-01  Ryosuke Niwa  <rniwa@webkit.org>
25986
25987         [Mac] Crash in Range::editingStartPosition
25988         https://bugs.webkit.org/show_bug.cgi?id=100972
25989
25990         Reviewed by Enrica Casucci.
25991
25992         Add a missing null pointer check. toNormalizedRange() can return null here, in which case the call to
25993         pastLastNode() will crash.
25994
25995         No new tests since determining the exact condition under which we go through the said code path and
25996         toNormalRange returns null is hard.
25997
25998         * editing/mac/EditorMac.mm:
25999         (WebCore::Editor::fontForSelection):
26000
26001 2012-11-01  Beth Dakin  <bdakin@apple.com>
26002
26003         https://bugs.webkit.org/show_bug.cgi?id=100917
26004         There should be a way to dump the scrolling tree from the layout tests
26005
26006         Reviewed by Simon Fraser.
26007
26008         New Internals call to dump the scrolling state tree as text. Calls through to the 
26009         ScrollingCoordinator.
26010         * testing/Internals.cpp:
26011         (WebCore::Internals::scrollingStateTreeAsText):
26012         (WebCore):
26013         * testing/Internals.h:
26014         * testing/Internals.idl:
26015         * WebCore.exp.in:
26016         * page/Page.cpp:
26017         (WebCore::Page::scrollingStateTreeAsText):
26018         (WebCore):
26019         * page/Page.h:
26020         (Page):
26021
26022         ScrollingCoordinator tells the rootStateNode to dump the tree as text.
26023         * page/scrolling/mac/ScrollingCoordinatorMac.h:
26024         (ScrollingCoordinatorMac):
26025         * page/scrolling/mac/ScrollingCoordinatorMac.mm:
26026         (WebCore::ScrollingCoordinatorMac::scrollingStateTreeAsText):
26027         (WebCore):
26028         * page/scrolling/ScrollingCoordinator.cpp:
26029         (WebCore::ScrollingCoordinator::scrollingStateTreeAsText):
26030         (WebCore):
26031         * page/scrolling/ScrollingCoordinator.h:
26032         (ScrollingCoordinator):
26033
26034         dumpNode() dumps generic stuff for each node, and dumpProperties will dump the 
26035         properties that are specific to different types of nodes.
26036         * page/scrolling/ScrollingStateNode.cpp:
26037         (WebCore::ScrollingStateNode::writeIndent):
26038         (WebCore):
26039         (WebCore::ScrollingStateNode::dumpNode):
26040         (WebCore::ScrollingStateNode::scrollingStateTreeAsText):
26041         * page/scrolling/ScrollingStateNode.h:
26042         (WebCore):
26043         (ScrollingStateNode):
26044         * page/scrolling/ScrollingStateScrollingNode.cpp:
26045         (WebCore::ScrollingStateScrollingNode::dumpProperties):
26046         (WebCore):
26047         * page/scrolling/ScrollingStateScrollingNode.h:
26048         (ScrollingStateScrollingNode):
26049
26050 2012-11-01  Kenneth Russell  <kbr@google.com>
26051
26052         Add RGB to supported destination formats of ImageBuffer::copyToPlatformTexture
26053         https://bugs.webkit.org/show_bug.cgi?id=100971
26054
26055         Reviewed by Stephen White.
26056
26057         The ImageBuffer::copyToPlatformTexture restriction added in
26058         r132965 was too restrictive. Allow RGB textures to prevent
26059         performance regressions.
26060
26061         * html/canvas/WebGLRenderingContext.cpp:
26062         (WebCore):
26063         (WebCore::WebGLRenderingContext::texImage2D):
26064         * platform/graphics/ImageBuffer.h:
26065         (ImageBuffer):
26066
26067 2012-11-01  Michael Matovsky  <mmatovsky@rim.com>
26068
26069         [BlackBerry] Web page view state should be preserved for pages loaded from page cache
26070         https://bugs.webkit.org/show_bug.cgi?id=100694
26071         Internal PR: 220488
26072
26073         Internally reviewed by Lianghui Chen, Joe Mason
26074         Reviewed by Rob Buis.
26075
26076         The web page view specific metadata should be preserved for web pages loaded from page cache (by using back/forward).
26077         This requires web page view state to be saved in and restored from the corresponding page cache history item.
26078
26079         No new tests for platform specific internal change.
26080
26081         * history/blackberry/HistoryItemViewState.h:
26082         (HistoryItemViewState):
26083
26084 2012-11-01  Alec Flett  <alecflett@chromium.org>
26085
26086         IndexedDB: add methods to support id-based backend APIs
26087         https://bugs.webkit.org/show_bug.cgi?id=100425
26088
26089         Reviewed by Tony Chang.
26090
26091         First half of refactor involves adding a number of methods that
26092         are int64_t-based rather than String-based. As a part of this, the
26093         IDB*Metadata structs and the backend objectStore/index maps all
26094         use int64_t as keys, rather than String.
26095
26096         In addition, there were a number of cleanups that came out of the
26097         refactor:
26098
26099         - The list of object stores active in a transaction is now
26100           maintained by the frontend IDBTransaction rather than the backend
26101           IDBTransactionBackendImpl. This also had a simplifying rippling
26102           effect through other call signatures.
26103
26104         - I was able to remove an apparently old FIXME from
26105           IDBTransactionBackendImpl::objectStore and replace it with an ASSERT.
26106
26107         - IDBObjectStoreBackendImpl's IndexWriter class got a little
26108           simpler since the id is now easily available in the
26109           IDBIndexMetadata.
26110
26111         - A number of methods got simpler in their int64_t versions,
26112           specifically dropping a number of ExceptionCodes.
26113
26114         There is also some glue code
26115         (getIndexId/getIndexIds/getObjectStoreId) that will go away with
26116         the 2nd half of this: https://bugs.webkit.org/show_bug.cgi?id=100425
26117
26118         No new tests, no new functionality as this is just a refactor.
26119
26120         * Modules/indexeddb/IDBDatabase.cpp:
26121         (WebCore::IDBDatabase::objectStoreNames):
26122         (WebCore::IDBDatabase::createObjectStore):
26123         (WebCore::IDBDatabase::deleteObjectStore):
26124         (WebCore::IDBDatabase::transaction):
26125         * Modules/indexeddb/IDBDatabaseBackendImpl.cpp:
26126         (WebCore::IDBDatabaseBackendImpl::metadata):
26127         (WebCore::IDBDatabaseBackendImpl::createObjectStore):
26128         (WebCore::IDBDatabaseBackendImpl::objectStore):
26129         (WebCore::IDBDatabaseBackendImpl::getObjectStoreId):
26130         (WebCore):
26131         (WebCore::IDBDatabaseBackendImpl::deleteObjectStore):
26132         (WebCore::IDBDatabaseBackendImpl::transaction):
26133         (WebCore::IDBDatabaseBackendImpl::loadObjectStores):
26134         (WebCore::IDBDatabaseBackendImpl::removeObjectStoreFromMap):
26135         (WebCore::IDBDatabaseBackendImpl::addObjectStoreToMap):
26136         * Modules/indexeddb/IDBDatabaseBackendImpl.h:
26137         (WebCore::IDBDatabaseBackendImpl::deleteObjectStore):
26138         (IDBDatabaseBackendImpl):
26139         * Modules/indexeddb/IDBDatabaseBackendInterface.h:
26140         (IDBDatabaseBackendInterface):
26141         * Modules/indexeddb/IDBIndex.h:
26142         (WebCore::IDBIndex::id):
26143         (WebCore::IDBIndex::openKeyCursor):
26144         * Modules/indexeddb/IDBIndexBackendInterface.h:
26145         * Modules/indexeddb/IDBMetadata.h:
26146         (WebCore::IDBIndexMetadata::IDBIndexMetadata):
26147         (IDBIndexMetadata):
26148         (IDBObjectStoreMetadata):
26149         (WebCore::IDBObjectStoreMetadata::containsIndex):
26150         (IDBDatabaseMetadata):
26151         (WebCore::IDBDatabaseMetadata::IDBDatabaseMetadata):
26152         (WebCore::IDBDatabaseMetadata::containsObjectStore):
26153         * Modules/indexeddb/IDBObjectStore.cpp:
26154         (WebCore::IDBObjectStore::indexNames):
26155         (WebCore::IDBObjectStore::put):
26156         (WebCore::IDBObjectStore::createIndex):
26157         (WebCore::IDBObjectStore::index):
26158         (WebCore::IDBObjectStore::deleteIndex):
26159         * Modules/indexeddb/IDBObjectStoreBackendImpl.cpp:
26160         (WebCore::IDBObjectStoreBackendImpl::put):
26161         (WebCore::IDBObjectStoreBackendImpl::putWithIndexKeys):
26162         (WebCore):
26163         (WebCore::makeIndexWriters):
26164         (WebCore::IDBObjectStoreBackendImpl::setIndexKeys):
26165         (WebCore::IDBObjectStoreBackendImpl::setIndexesReady):
26166         (WebCore::IDBObjectStoreBackendImpl::setIndexesReadyInternal):
26167         (WebCore::IDBObjectStoreBackendImpl::putInternal):
26168         (WebCore::IDBObjectStoreBackendImpl::deleteInternal):
26169         (WebCore::IDBObjectStoreBackendImpl::createIndex):
26170         (WebCore::IDBObjectStoreBackendImpl::index):
26171         (WebCore::IDBObjectStoreBackendImpl::getIndexId):
26172         (WebCore::IDBObjectStoreBackendImpl::getIndexIds):
26173         (WebCore::IDBObjectStoreBackendImpl::deleteIndex):
26174         (WebCore::IDBObjectStoreBackendImpl::loadIndexes):
26175         (WebCore::IDBObjectStoreBackendImpl::removeIndexFromMap):
26176         (WebCore::IDBObjectStoreBackendImpl::addIndexToMap):
26177         * Modules/indexeddb/IDBObjectStoreBackendImpl.h:
26178         (IDBObjectStoreBackendImpl):
26179         * Modules/indexeddb/IDBObjectStoreBackendInterface.h:
26180         * Modules/indexeddb/IDBOpenDBRequest.cpp:
26181         (WebCore::IDBOpenDBRequest::onUpgradeNeeded):
26182         * Modules/indexeddb/IDBRequest.cpp:
26183         (WebCore::IDBRequest::onSuccess):
26184         (WebCore::IDBRequest::uncaughtExceptionInEventHandler):
26185         * Modules/indexeddb/IDBTransaction.cpp:
26186         (WebCore::IDBTransaction::create):
26187         (WebCore::IDBTransaction::IDBTransaction):
26188         (WebCore::IDBTransaction::objectStore):
26189         * Modules/indexeddb/IDBTransaction.h:
26190         (IDBTransaction):
26191         * Modules/indexeddb/IDBTransactionBackendImpl.cpp:
26192         (WebCore::IDBTransactionBackendImpl::create):
26193         (WebCore::IDBTransactionBackendImpl::IDBTransactionBackendImpl):
26194         (WebCore::IDBTransactionBackendImpl::objectStore):
26195         (WebCore):
26196         (WebCore::IDBTransactionBackendImpl::scheduleTask):
26197         * Modules/indexeddb/IDBTransactionBackendImpl.h:
26198         (IDBTransactionBackendImpl):
26199         * Modules/indexeddb/IDBTransactionBackendInterface.h:
26200
26201 2012-11-01  Adam Barth  <abarth@webkit.org>
26202
26203         [V8] The DOMWrapperVisitor abstraction is no longer needed
26204         https://bugs.webkit.org/show_bug.cgi?id=100965
26205
26206         Reviewed by Kentaro Hara.
26207
26208         This patch removes the DOMWrapperVisitor interface because it is no
26209         longer needed. As a consequence, DOMWrapperMaps no longer need to
26210         support enumeration, and we can move more DOM objects to use the faster
26211         intrusive wrappers.
26212
26213         There was one remaining user of DOMWrapperVisitor in the
26214         ScriptProfiler, which I've moved over to enumerating objects directly
26215         from V8, similar to a function above it in the same file.
26216
26217         * bindings/v8/DOMWrapperMap.h:
26218         (WebCore):
26219         (DOMWrapperMap):
26220         * bindings/v8/IntrusiveDOMWrapperMap.h:
26221         * bindings/v8/ScriptProfiler.cpp:
26222         (WebCore::ScriptProfiler::visitNodeWrappers):
26223         (WebCore::ScriptProfiler::visitExternalArrays):
26224
26225 2012-11-01  Mike West  <mkwst@chromium.org>
26226
26227         CSP 1.0: Warn when old-style directives encountered.
26228         https://bugs.webkit.org/show_bug.cgi?id=100883
26229
26230         Reviewed by Adam Barth.
26231
26232         In Mozilla's pre-W3C-spec implementation, a few directives are
26233         implemented that were either renamed, reworked, or removed from CSP 1.0.
26234         This patch adds special warning messages for three of those directives
26235         to set developer expectations correctly.
26236
26237         Test: http/tests/security/contentSecurityPolicy/source-list-parsing-deprecated.html
26238
26239         * page/ContentSecurityPolicy.cpp:
26240         (WebCore::CSPDirectiveList::parseDirective):
26241         (WebCore::CSPDirectiveList::addDirective):
26242         (WebCore::ContentSecurityPolicy::reportUnsupportedDirective):
26243         * page/ContentSecurityPolicy.h:
26244             Rename 'reportUnrecognizedDirectives' to
26245             'reportUnsupportedDirectives', and teach it to give more descriptive
26246             error messages when encountering 'allow', 'options', and
26247             'policy-uri'.
26248
26249 2012-11-01  Pavel Feldman  <pfeldman@chromium.org>
26250
26251         Web Inspector: Update CodeMirror to v3
26252         https://bugs.webkit.org/show_bug.cgi?id=99319
26253
26254         Reviewed by Vsevolod Vlasov.
26255
26256         Updated to ToT v3.
26257
26258         * inspector/front-end/CodeMirrorTextEditor.js:
26259         (WebInspector.CodeMirrorTextEditor):
26260         (WebInspector.CodeMirrorTextEditor.prototype._gutterClick):
26261         (WebInspector.CodeMirrorTextEditor.prototype.addBreakpoint):
26262         (WebInspector.CodeMirrorTextEditor.prototype.removeBreakpoint):
26263         (WebInspector.CodeMirrorTextEditor.prototype.setExecutionLine):
26264         (WebInspector.CodeMirrorTextEditor.prototype.clearExecutionLine):
26265         (WebInspector.CodeMirrorTextEditor.prototype.highlightLine):
26266         (WebInspector.CodeMirrorTextEditor.prototype.clearLineHighlight):
26267         (WebInspector.CodeMirrorTextEditor.prototype._change):
26268         * inspector/front-end/cm/cmdevtools.css:
26269         (.CodeMirror):
26270         (.CodeMirror-linenumber):
26271         (.cm-breakpoint):
26272         * inspector/front-end/cm/codemirror.css:
26273         (.CodeMirror):
26274         (.CodeMirror-scroll):
26275         (.CodeMirror-lines):
26276         (.CodeMirror pre):
26277         (.CodeMirror-scrollbar-filler):
26278         (.CodeMirror-gutters):
26279         (.CodeMirror-linenumbers):
26280         (.CodeMirror-linenumber):
26281         (.CodeMirror pre.CodeMirror-cursor):
26282         (.CodeMirror pre.CodeMirror-secondarycursor):
26283         (.cm-keymap-fat-cursor pre.CodeMirror-cursor):
26284         (.cm-keymap-fat-cursor pre.CodeMirror-cursor:not(#nonsense_id)):
26285         (.CodeMirror pre.CodeMirror-cursor.CodeMirror-overwrite):
26286         (.cm-s-default .cm-keyword):
26287         (.cm-s-default .cm-atom):
26288         (.cm-s-default .cm-number):
26289         (.cm-s-default .cm-def):
26290         (.cm-s-default .cm-variable):
26291         (.cm-s-default .cm-variable-2):
26292         (.cm-s-default .cm-variable-3):
26293         (.cm-s-default .cm-property):
26294         (.cm-s-default .cm-operator):
26295         (.cm-s-default .cm-comment):
26296         (.cm-s-default .cm-string):
26297         (.cm-s-default .cm-string-2):
26298         (.cm-s-default .cm-meta):
26299         (.cm-s-default .cm-error):
26300         (.cm-s-default .cm-qualifier):
26301         (.cm-s-default .cm-builtin):
26302         (.cm-s-default .cm-bracket):
26303         (.cm-s-default .cm-tag):
26304         (.cm-s-default .cm-attribute):
26305         (.cm-s-default .cm-header):
26306         (.cm-s-default .cm-quote):
26307         (.cm-s-default .cm-hr):
26308         (.cm-s-default .cm-link):
26309         (.cm-header, .cm-strong):
26310         (.cm-em):
26311         (.cm-emstrong):
26312         (.cm-link):
26313         (.cm-invalidchar):
26314         (div.CodeMirror span.CodeMirror-matchingbracket):
26315         (div.CodeMirror span.CodeMirror-nonmatchingbracket):
26316         (.CodeMirror-sizer):
26317         (.CodeMirror-vscrollbar, .CodeMirror-hscrollbar, .CodeMirror-scrollbar-filler):
26318         (.CodeMirror-vscrollbar):
26319         (.CodeMirror-hscrollbar):
26320         (.CodeMirror-gutter):
26321         (.CodeMirror-gutter-elt):
26322         (.CodeMirror-linebackground):
26323         (.CodeMirror-linewidget):
26324         (.CodeMirror-measure):
26325         (.CodeMirror-measure pre):
26326         (.CodeMirror-selected):
26327         (.CodeMirror-focused .CodeMirror-selected):
26328         (.CodeMirror span):
26329         * inspector/front-end/cm/codemirror.js:
26330         (window.CodeMirror.):
26331         (window.CodeMirror):
26332         * inspector/front-end/utilities.js:
26333
26334 2012-11-01  Tiancheng Jiang  <tijiang@rim.com>
26335
26336         [BlackBerry] Update BB10 form theme.
26337         https://bugs.webkit.org/show_bug.cgi?id=100760
26338
26339         Reviewed by Rob Buis.
26340
26341         RIM PR 235194.
26342
26343         Check img pointer is null, if so, do early return.
26344
26345         * platform/blackberry/RenderThemeBlackBerry.cpp:
26346         (WebCore::drawControl):
26347         (WebCore::drawThreeSlice):
26348         (WebCore::drawNineSlice):
26349
26350 2012-11-01  Adam Barth  <abarth@webkit.org>
26351
26352         [V8] The V8DOMMap visitors are no longer needed
26353         https://bugs.webkit.org/show_bug.cgi?id=100963
26354
26355         Reviewed by Kentaro Hara.
26356
26357         This patch inlines visitAllDOMNodes into its one caller (and removes
26358         one layer of visitor adaptor abstraction).
26359
26360         * bindings/v8/ScriptProfiler.cpp:
26361         (WebCore::ScriptProfiler::visitNodeWrappers):
26362         * bindings/v8/V8DOMMap.cpp:
26363         * bindings/v8/V8DOMMap.h:
26364         (WebCore):
26365
26366 2012-11-01  Tiancheng Jiang  <tijiang@rim.com>
26367
26368         [BlackBerry] Update BB10 form theme.
26369         https://bugs.webkit.org/show_bug.cgi?id=100760
26370
26371         Reviewed by Rob Buis.
26372
26373         RIM PR 235194.
26374
26375         Check img pointer is null, if so, do early return.
26376
26377         * platform/blackberry/RenderThemeBlackBerry.cpp:
26378         (WebCore::drawControl):
26379         (WebCore::drawThreeSlice):
26380         (WebCore::drawNineSlice):
26381
26382 2012-11-01  Adam Barth  <abarth@webkit.org>
26383
26384         Unreviewed. Build fix.
26385
26386         * bindings/v8/V8GCController.cpp:
26387
26388 2012-11-01  Christophe Dumez  <christophe.dumez@intel.com>
26389
26390         [EFL][WK2] Add Ewk_Auth_Request API
26391         https://bugs.webkit.org/show_bug.cgi?id=100858
26392
26393         Reviewed by Kenneth Rohde Christiansen.
26394
26395         Provide an AuthenticationClient for EFL port in WebCore so
26396         that we can handle authentication similarly to other ports
26397         of WebKit.
26398
26399         No new tests, no behavior change for layout tests.
26400
26401         * PlatformEfl.cmake: Add AuthenticationChallengeSoup.cpp to CMake.
26402         * loader/ResourceLoader.cpp:
26403         (WebCore::ResourceLoader::didReceiveAuthenticationChallenge):
26404         * platform/network/ResourceHandle.h:
26405         (ResourceHandle): Have ResourceHandle subclass AuthenticationClient like
26406         most of the other ports.
26407         * platform/network/soup/AuthenticationChallengeSoup.cpp: Fix initialization
26408         of previousFailureCount member. It should be 1 if we are retrying
26409         authentication and 0 otherwise, not the opposite.
26410         (WebCore::AuthenticationChallenge::AuthenticationChallenge):
26411         * platform/network/soup/ResourceHandleSoup.cpp: Provide implementation for EFL
26412         port of AuthenticationClient methods.
26413         (WebCore::WebCoreSynchronousLoader::didReceiveAuthenticationChallenge):
26414         (WebCoreSynchronousLoader):
26415         (WebCore):
26416         (WebCore::ResourceHandle::didReceiveAuthenticationChallenge):
26417         (WebCore::ResourceHandle::receivedRequestToContinueWithoutCredential):
26418         (WebCore::ResourceHandle::receivedCredential):
26419         (WebCore::ResourceHandle::receivedCancellation):
26420         (WebCore::authenticateCallback):
26421         (WebCore::ResourceHandle::defaultSession):
26422
26423 2012-10-24  Jocelyn Turcotte  <jocelyn.turcotte@digia.com>
26424
26425         WebIconDatabase: Properly clean up on destruction
26426         https://bugs.webkit.org/show_bug.cgi?id=100237
26427
26428         Reviewed by Brady Eidson.
26429
26430         It's now possible that the IconDatabase gets destroyed since WebKit2
26431         isn't using it as a singleton.
26432
26433         Check that the database was properly closed rather than asserting that
26434         it won't get deleted.
26435
26436         * loader/icon/IconDatabase.cpp:
26437         (WebCore::IconDatabase::~IconDatabase):
26438
26439 2012-11-01  Alexei Filippov  <alph@chromium.org>
26440
26441         Web Inspector: make component subitems use parent color in native memory snapshots.
26442         https://bugs.webkit.org/show_bug.cgi?id=100876
26443
26444         A component subitems use the color of the component itself if the color
26445         is not explicitly specified for the subitem.
26446
26447         Reviewed by Yury Semikhatsky.
26448
26449         * inspector/front-end/NativeMemorySnapshotView.js:
26450         (WebInspector.NativeSnapshotNode.prototype._createSizeCell):
26451         (WebInspector.MemoryBlockViewProperties._initialize):
26452         (WebInspector.MemoryBlockViewProperties._forMemoryBlock):
26453
26454 2012-11-01  Emil A Eklund  <eae@chromium.org>
26455
26456         [subpixel] Change intrinsicSize to LayoutUnit
26457         https://bugs.webkit.org/show_bug.cgi?id=99104
26458
26459         Reviewed by Levi Weintraub.
26460
26461         Change RenderReplaced and intrinsicSize to LayoutUnit to avoid
26462         rounding problems when zooming/scaling. Also change imageSize to
26463         LayoutUnit as it can return a scaled size.
26464
26465         Test: fast/sub-pixel/tiled-canvas-elements.html
26466
26467         * html/ImageDocument.cpp:
26468         (WebCore::ImageDocumentParser::finish):
26469         * loader/cache/CachedImage.cpp:
26470         (WebCore::CachedImage::imageSizeForRenderer):
26471         * loader/cache/CachedImage.h:
26472         (CachedImage):
26473         * platform/graphics/FractionalLayoutSize.h:
26474         (FractionalLayoutSize):
26475         (WebCore::FractionalLayoutSize::scale):
26476         (WebCore::FractionalLayoutSize::clampToMinimumSize):
26477         * rendering/RenderBox.h:
26478         (WebCore::RenderBox::intrinsicSize):
26479         * rendering/RenderHTMLCanvas.cpp:
26480         (WebCore::RenderHTMLCanvas::canvasSizeChanged):
26481         * rendering/RenderImage.cpp:
26482         (WebCore::RenderImage::imageChanged):
26483         (WebCore::RenderImage::updateIntrinsicSizeIfNeeded):
26484         (WebCore::RenderImage::paintReplaced):
26485         (WebCore::RenderImage::minimumReplacedHeight):
26486         * rendering/RenderImage.h:
26487         (RenderImage):
26488         * rendering/RenderImageResource.h:
26489         (WebCore::RenderImageResource::imageSize):
26490         * rendering/RenderImageResourceStyleImage.h:
26491         * rendering/RenderReplaced.cpp:
26492         (WebCore::RenderReplaced::RenderReplaced):
26493         (WebCore::RenderReplaced::computeAspectRatioInformationForRenderBox):
26494         (WebCore::RenderReplaced::computeReplacedLogicalWidth):
26495         (WebCore::RenderReplaced::computeReplacedLogicalHeight):
26496         * rendering/RenderReplaced.h:
26497         (RenderReplaced):
26498         (WebCore::RenderReplaced::minimumReplacedHeight):
26499         (WebCore::RenderReplaced::setIntrinsicSize):
26500         * rendering/RenderVideo.cpp:
26501         (WebCore::RenderVideo::updateIntrinsicSize):
26502         (WebCore::RenderVideo::calculateIntrinsicSize):
26503         (WebCore::RenderVideo::videoBox):
26504         (WebCore::RenderVideo::minimumReplacedHeight):
26505         * rendering/RenderVideo.h:
26506         (RenderVideo):
26507         * rendering/style/StyleCachedImage.cpp:
26508         (WebCore::StyleCachedImage::imageSize):
26509         * rendering/style/StyleCachedImage.h:
26510         (StyleCachedImage):
26511         * rendering/style/StyleCachedImageSet.cpp:
26512         (WebCore::StyleCachedImageSet::imageSize):
26513         * rendering/style/StyleCachedImageSet.h:
26514         (StyleCachedImageSet):
26515         * rendering/style/StyleGeneratedImage.cpp:
26516         (WebCore::StyleGeneratedImage::imageSize):
26517         (WebCore::StyleGeneratedImage::computeIntrinsicDimensions):
26518         * rendering/style/StyleGeneratedImage.h:
26519         (StyleGeneratedImage):
26520         * rendering/style/StyleImage.h:
26521         (StyleImage):
26522         * rendering/style/StylePendingImage.h:
26523
26524 2012-11-01  Adam Barth  <abarth@webkit.org>
26525
26526         [V8] Unify the V8GCController visitors
26527         https://bugs.webkit.org/show_bug.cgi?id=100897
26528
26529         Reviewed by Eric Seidel.
26530
26531         After this patch, we use a single visitor for all DOM wrappers,
26532         regardless of type. We also visit all the wrappers in one pass by
26533         calling v8::V8::VisitHandlesWithClassIds directly rather than via
26534         visitAllDOMNodes.
26535
26536         This patch also introduces a wrapper class ID for non-Node DOM objects.
26537         Previously, only DOM nodes had a class ID.
26538
26539         * bindings/v8/IntrusiveDOMWrapperMap.h:
26540         * bindings/v8/ScriptProfiler.cpp:
26541         (WebCore::retainedDOMInfo):
26542         (WebCore::ScriptProfiler::initialize):
26543         * bindings/v8/V8DOMMap.cpp:
26544         (WebCore::visitAllDOMNodes):
26545         * bindings/v8/V8DOMWrapper.cpp:
26546         (WebCore::V8DOMWrapper::setJSWrapperForDOMNode):
26547         * bindings/v8/V8DOMWrapper.h:
26548         (WebCore::V8DOMWrapper::setJSWrapperForDOMObject):
26549         * bindings/v8/V8GCController.cpp:
26550         (WebCore::GCHandleVisitor::notifyFinished):
26551         (GCHandleVisitor):
26552         (WebCore::V8GCController::majorGCPrologue):
26553         * bindings/v8/WrapperTypeInfo.h:
26554         (WebCore):
26555
26556 2012-11-01  Stephen White  <senorblanco@chromium.org>
26557
26558         Unreviewed, rolling out r133143.
26559         http://trac.webkit.org/changeset/133143
26560         https://bugs.webkit.org/show_bug.cgi?id=96894
26561
26562         Causing content_browsertests failures
26563
26564         * CMakeLists.txt:
26565         * GNUmakefile.list.am:
26566         * Target.pri:
26567         * WebCore.gypi:
26568         * WebCore.vcproj/WebCore.vcproj:
26569         * WebCore.xcodeproj/project.pbxproj:
26570         * dom/DeviceOrientationClient.h:
26571         (DeviceOrientationClient):
26572         * dom/DeviceOrientationController.cpp:
26573         (WebCore::DeviceOrientationController::DeviceOrientationController):
26574         (WebCore):
26575         (WebCore::DeviceOrientationController::~DeviceOrientationController):
26576         (WebCore::DeviceOrientationController::timerFired):
26577         (WebCore::DeviceOrientationController::addListener):
26578         (WebCore::DeviceOrientationController::removeListener):
26579         (WebCore::DeviceOrientationController::removeAllListeners):
26580         (WebCore::DeviceOrientationController::suspendEventsForAllListeners):
26581         (WebCore::DeviceOrientationController::resumeEventsForAllListeners):
26582         (WebCore::DeviceOrientationController::didChangeDeviceOrientation):
26583         (WebCore::DeviceOrientationController::supplementName):
26584         * dom/DeviceOrientationController.h:
26585         (WebCore):
26586         (DeviceOrientationController):
26587         (WebCore::DeviceOrientationController::isActive):
26588         (WebCore::DeviceOrientationController::client):
26589         (WebCore::DeviceOrientationController::from):
26590         * dom/Document.cpp:
26591         (WebCore::Document::suspendActiveDOMObjects):
26592         (WebCore::Document::resumeActiveDOMObjects):
26593         * loader/EmptyClients.h:
26594         (WebCore::EmptyDeviceOrientationClient::startUpdating):
26595         (WebCore::EmptyDeviceOrientationClient::stopUpdating):
26596         * page/DOMWindow.cpp:
26597         (WebCore::DOMWindow::addEventListener):
26598         (WebCore::DOMWindow::removeEventListener):
26599         (WebCore::DOMWindow::removeAllEventListeners):
26600         * page/DeviceClient.h: Removed.
26601         * page/DeviceController.cpp: Removed.
26602         * page/DeviceController.h: Removed.
26603
26604 2012-11-01  Kondapally Kalyan  <kalyan.kondapally@intel.com>
26605
26606         [EFL][AC]Free GL resources allocated by GraphicsContext3DEfl.
26607         https://bugs.webkit.org/show_bug.cgi?id=100923.
26608
26609         Reviewed by Kenneth Rohde Christiansen.
26610
26611         GraphicsContext3DEfl creates FBO's, textures and render buffer's, but doesn't free them.
26612         This patch makes sure that GraphicsContext3dEfl frees all the GL resources allocated by it.
26613
26614         * platform/graphics/efl/GraphicsContext3DEfl.cpp:
26615         (WebCore::GraphicsContext3D::~GraphicsContext3D):
26616
26617 2012-11-01  Andreas Kling  <kling@webkit.org>
26618
26619         Fix StylePropertySet/ElementAttributeData custom allocation in debug builds.
26620         <http://webkit.org/b/100753>
26621
26622         Unreviewed debug bot crash fix after r133138.
26623
26624         There's additional padding after StylePropertySet and ElementAttributeData
26625         in 64-bit debug builds since there are additional members in RefCountedBase.
26626         Use 'sizeof(ImmutableFoo) - sizeof(void*)' as the base size of ImmutableFoo.
26627
26628         * css/StylePropertySet.cpp:
26629         (WebCore::sizeForImmutableStylePropertySetWithPropertyCount):
26630         * dom/ElementAttributeData.cpp:
26631         (WebCore::sizeForImmutableElementAttributeDataWithAttributeCount):
26632         (WebCore::ElementAttributeData::createImmutable):
26633         (WebCore::ElementAttributeData::reportMemoryUsage):
26634
26635 2012-11-01  Stephen Chenney  <schenney@chromium.org>
26636
26637         FEImage::m_document is never cleared. Why not?
26638         https://bugs.webkit.org/show_bug.cgi?id=99243
26639
26640         Reviewed by Dirk Schulze.
26641
26642         Adding a comment to explain why the failure to clear m_document is not a problem.
26643
26644         No new tests because no code change at all.
26645
26646         * svg/graphics/filters/SVGFEImage.h:
26647         (FEImage): Add a comment on the lifetime of m_document.
26648
26649 2012-11-01  Eugene Klyuchnikov  <eustas.bug@gmail.com>
26650
26651         Web Inspector: Timeline: make "addRecord" unambiguous
26652         https://bugs.webkit.org/show_bug.cgi?id=100761
26653
26654         Reviewed by Pavel Feldman.
26655
26656         TimelinePresentationModel.addRecord accepts two parameters:
26657         record and parentRecord. parentRecord is always root record.
26658         Make this explicit by removing parentRecord parameter.
26659
26660         * inspector/front-end/TimelinePanel.js: Removed parameter.
26661         * inspector/front-end/TimelinePresentationModel.js:
26662         (WebInspector.TimelinePresentationModel.prototype.addRecord):
26663         Used root recoed instead of parent record.
26664
26665 2012-11-01  Charles Wei  <charles.wei@torchmobile.com.cn>
26666
26667         [BlackBerry] Browser prematurely sends wrong credentials
26668         https://bugs.webkit.org/show_bug.cgi?id=100585
26669
26670         Reviewed by George Staikos.
26671
26672         Don't send credentials to the server before been challenged.
26673
26674         * platform/network/blackberry/NetworkManager.cpp:
26675         (WebCore::NetworkManager::startJob):
26676
26677 2012-11-01  Stephen Chenney  <schenney@chromium.org>
26678
26679         SVG as an image may recreate the renderer on zoom
26680         https://bugs.webkit.org/show_bug.cgi?id=99508
26681
26682         Reviewed by Abhishek Arya.
26683
26684         The SVGImage code, when SVG is used in <img> tags, caches the renderer
26685         at the start of the painting method and re-uses the pointer at the end
26686         of the method. However, when the page is zoomed the renderer may be
26687         detached mid-method, thus leaving a stray pointer. The fix is to
26688         re-fetch the pointer after the zooms.
26689
26690         Test: svg/as-image/img-zoom-svg-stylesheet.html
26691
26692         * svg/graphics/SVGImage.cpp:
26693         (WebCore::SVGImage::drawSVGToImageBuffer): Re-fetch the renderer after
26694         the zoom operations.
26695
26696 2012-11-01  Pavel Feldman  <pfeldman@chromium.org>
26697
26698         Web Inspector: introduce Inspector.detached message containing termination cause.
26699         https://bugs.webkit.org/show_bug.cgi?id=100948
26700
26701         Reviewed by Yury Semikhatsky.
26702
26703         Now protocol clients have more information to process connection termination.
26704
26705         * English.lproj/localizedStrings.js:
26706         * inspector/Inspector.json:
26707         * inspector/front-end/InspectorFrontendHostStub.js:
26708         (WebInspector.RemoteDebuggingTerminatedScreen):
26709         * inspector/front-end/inspector.js:
26710         (WebInspector.loaded.WebInspector.socket.onopen):
26711         (WebInspector.loaded):
26712         (WebInspector.detached):
26713
26714 2012-11-01  Vsevolod Vlasov  <vsevik@chromium.org>
26715
26716         Web Inspector: Restoring breakpoints for formatted UISourceCode should be triggered by BreakpointManager, not ScriptsPanel.
26717         https://bugs.webkit.org/show_bug.cgi?id=100593
26718
26719         Reviewed by Pavel Feldman.
26720
26721         BreakpointManager now listen for FormattedChanged event and restores formatted breakpoints on it.
26722         Removed now redundant callback from UISourceCode.setFormatted().
26723
26724         * inspector/front-end/BreakpointManager.js:
26725         (WebInspector.BreakpointManager.prototype._restoreBreakpoints):
26726         (WebInspector.BreakpointManager.prototype._uiSourceCodeAdded):
26727         (WebInspector.BreakpointManager.prototype._uiSourceCodeFormatted):
26728         (WebInspector.BreakpointManager.prototype._uiSourceCodeRemoved):
26729         * inspector/front-end/ScriptsPanel.js:
26730         (WebInspector.ScriptsPanel.prototype._addUISourceCode):
26731         (WebInspector.ScriptsPanel.prototype._revealExecutionLine):
26732         (WebInspector.ScriptsPanel.prototype._toggleFormatSource):
26733         * inspector/front-end/UISourceCode.js:
26734         (WebInspector.UISourceCode.prototype._fireContentAvailable):
26735         (WebInspector.UISourceCode.prototype.setFormatted.formattedChanged):
26736         (WebInspector.UISourceCode.prototype.setFormatted.didGetContent):
26737         (WebInspector.UISourceCode.prototype.setFormatted):
26738
26739 2012-10-30  Yury Semikhatsky  <yurys@chromium.org>
26740
26741         Web Inspector: Output code evaluated in the console the same as console.log
26742         https://bugs.webkit.org/show_bug.cgi?id=100695
26743
26744         Reviewed by Pavel Feldman.
26745
26746         Added an option to return object preview from evaluation commands in the protocol.
26747         The option is used to generate preview for console eval results.
26748
26749         * inspector/InjectedScript.cpp:
26750         (WebCore::InjectedScript::evaluate):
26751         (WebCore::InjectedScript::callFunctionOn):
26752         (WebCore::InjectedScript::evaluateOnCallFrame):
26753         * inspector/InjectedScript.h:
26754         (InjectedScript):
26755         * inspector/InjectedScriptSource.js:
26756         (.):
26757         * inspector/Inspector.json:
26758         * inspector/InspectorDebuggerAgent.cpp:
26759         (WebCore::InspectorDebuggerAgent::evaluateOnCallFrame):
26760         * inspector/InspectorDebuggerAgent.h:
26761         (InspectorDebuggerAgent):
26762         * inspector/InspectorRuntimeAgent.cpp:
26763         (WebCore::InspectorRuntimeAgent::evaluate):
26764         (WebCore::InspectorRuntimeAgent::callFunctionOn):
26765         * inspector/InspectorRuntimeAgent.h:
26766         (InspectorRuntimeAgent):
26767         * inspector/front-end/ConsoleMessage.js:
26768         (WebInspector.ConsoleMessageImpl.prototype.useArrayPreviewInFormatter):
26769         (WebInspector.ConsoleMessageImpl.prototype._formatParameterAsArray):
26770         * inspector/front-end/ConsoleView.js:
26771         (WebInspector.ConsoleCommandResult.prototype.useArrayPreviewInFormatter):
26772         * inspector/front-end/DebuggerModel.js:
26773         (WebInspector.DebuggerModel.prototype.evaluateOnSelectedCallFrame):
26774         (WebInspector.DebuggerModel.CallFrame.prototype.evaluate):
26775         * inspector/front-end/ExtensionServer.js:
26776         (WebInspector.ExtensionServer.prototype.evaluate):
26777         * inspector/front-end/JavaScriptSourceFrame.js:
26778         (WebInspector.JavaScriptSourceFrame.prototype._resolveObjectForPopover):
26779         * inspector/front-end/RemoteObject.js:
26780         (WebInspector.RemoteObject.prototype.):
26781         (WebInspector.RemoteObject.prototype.callFunction):
26782         (WebInspector.RemoteObject.prototype.callFunctionJSON):
26783         * inspector/front-end/RuntimeModel.js:
26784         (WebInspector.RuntimeModel.prototype.evaluate):
26785         (WebInspector.RuntimeModel.prototype.evaluated):
26786         * inspector/front-end/WatchExpressionsSidebarPane.js:
26787         (WebInspector.WatchExpressionsSection.prototype.update):
26788
26789 2012-11-01  Vsevolod Vlasov  <vsevik@chromium.org>
26790
26791         Web Inspector: Remove obsolete code from JavaScriptSourceFrame
26792         https://bugs.webkit.org/show_bug.cgi?id=100594
26793
26794         Reviewed by Yury Semikhatsky.
26795
26796         Removed obsolete WorkingCopyCommitted listener.
26797         Removed redundant code that removes breakpoints from _innerSetContent.
26798
26799         * inspector/front-end/JavaScriptSourceFrame.js:
26800         (WebInspector.JavaScriptSourceFrame):
26801         (WebInspector.JavaScriptSourceFrame.prototype._innerSetContent):
26802
26803 2012-11-01  Andreas Kling  <kling@webkit.org>
26804
26805         Update average StylePropertySet size estimation.
26806         <http://webkit.org/b/100940>
26807
26808         Reviewed by Antti Koivisto.
26809
26810         Use sizeForImmutableStylePropertySetWithPropertyCount(2) as the average StylePropertySet
26811         size to keep it in sync with the changed object memory layout.
26812
26813         * css/StylePropertySet.cpp:
26814         (WebCore::sizeForImmutableStylePropertySetWithPropertyCount):
26815         (WebCore::StylePropertySet::createImmutable):
26816         (WebCore::StylePropertySet::averageSizeInBytes):
26817         (WebCore::StylePropertySet::reportMemoryUsage):
26818
26819
26820 2012-11-01  Kondapally Kalyan  <kalyan.kondapally@intel.com>
26821
26822         [EFL][Qt][AC] Remove an unnecessary connection to X-Server.
26823         https://bugs.webkit.org/show_bug.cgi?id=100628.
26824
26825         Reviewed by Kenneth Rohde Christiansen.
26826
26827         With Changset: https://bugs.webkit.org/show_bug.cgi?id=100523
26828         GraphicsSurfacePrivate should always use the Display returned by offscreenwindow.
26829         However, in GraphicsSurfacePrivate constructor we call XOpenDisplay before asking
26830         display from offscreenwindow.
26831         This patch removes unnecessary call to XOpenDisplay made in GraphicsSurfacePrivate.
26832
26833         * platform/graphics/surfaces/qt/GraphicsSurfaceGLX.cpp:
26834         (WebCore::GraphicsSurfacePrivate::GraphicsSurfacePrivate):
26835
26836 2012-11-01  Mihnea Ovidenie  <mihnea@adobe.com>
26837
26838         [CSSRegions]Former auto-height regions should not ignore their defined height
26839         https://bugs.webkit.org/show_bug.cgi?id=100749
26840
26841         Reviewed by Julien Chaffraix.
26842
26843         When a region with height auto has its height defined, we should also clear the override logical content height.
26844         Otherwise, the region will use the wrong height when laying out content from the associated render flow thread.
26845
26846         Test: fast/regions/autoheight-definedheight-changenotdetected.html
26847
26848         * rendering/RenderRegion.cpp:
26849         (WebCore::RenderRegion::updateRegionHasAutoLogicalHeightFlag):
26850
26851 2012-11-01  Yury Semikhatsky  <yurys@chromium.org>
26852
26853         Memory instrumentation: do not report memory occupied by RenderObjects referenced from CSSImageGeneratorValue
26854         https://bugs.webkit.org/show_bug.cgi?id=100934
26855
26856         Reviewed by Alexander Pavlov.
26857
26858         * css/CSSImageGeneratorValue.cpp:
26859         (WTF): Skip rederences to RenderObjects from CSSImageGeneratorValue when collecting
26860         memory usage data.
26861
26862 2012-11-01  Kihong Kwon  <kihong.kwon@samsung.com>
26863
26864         Add DeviceController base-class to remove duplication of DeviceXXXControler
26865         https://bugs.webkit.org/show_bug.cgi?id=96894
26866
26867         Reviewed by Hajime Morita.
26868
26869         Add DeviceController which is extracted from DeviceOrientationController to remove duplication.
26870         And soon-to-be-added DeviceMotionController and ProximityController.
26871
26872         Covered by existing tests.
26873
26874         * CMakeLists.txt:
26875         * GNUmakefile.list.am:
26876         * Target.pri:
26877         * WebCore.gypi:
26878         * WebCore.vcproj/WebCore.vcproj:
26879         * WebCore.xcodeproj/project.pbxproj:
26880         * dom/DeviceOrientationClient.h:
26881         * dom/DeviceOrientationController.cpp:
26882         Remove member functions to move to DeviceController.
26883         - addListener(), removeListener(), removeAllListeners(), isActive()
26884         (WebCore::DeviceOrientationController::DeviceOrientationController):
26885         (WebCore::DeviceOrientationController::didChangeDeviceOrientation):
26886         (WebCore::DeviceOrientationController::client):
26887         (WebCore::DeviceOrientationController::hasLastData):
26888         (WebCore::DeviceOrientationController::getLastEvent):
26889         (WebCore::DeviceOrientationController::from):
26890         (WebCore):
26891         * dom/DeviceOrientationController.h:
26892         (WebCore):
26893         (WebCore::DeviceOrientationController::~DeviceOrientationController):
26894         (DeviceOrientationController):
26895         * dom/Document.cpp:
26896         Remove suspendEventsForAllListeners() and resumeEventsForAllListeners() function calls.
26897         These calls can be made by checking activeDOMObjectsAreSuspended() and activeDOMObjectsAreStopped() before dispatchEvent.
26898         (WebCore::Document::suspendActiveDOMObjects):
26899         (WebCore::Document::resumeActiveDOMObjects):
26900         * loader/EmptyClients.h:
26901         (EmptyDeviceClient):
26902         (WebCore::EmptyDeviceClient::startUpdating):
26903         (WebCore::EmptyDeviceClient::stopUpdating):
26904         (WebCore):
26905         * page/DOMWindow.cpp:
26906         (WebCore::DOMWindow::addEventListener):
26907         (WebCore::DOMWindow::removeEventListener):
26908         (WebCore::DOMWindow::removeAllEventListeners):
26909         * page/DeviceClient.h: Added.
26910         (WebCore):
26911         (DeviceClient):
26912         (WebCore::DeviceClient::~DeviceClient):
26913         * page/DeviceController.cpp: Added.
26914         DeviceController has extracted functions from DeviceOrientationController and DeviceMotionController.
26915         - addDeviceEventListener(), removeDeviceEventlistener(), removeAllDeviceEventListeners(), dispatchDeviceEvent()
26916         All kind of device event controller which has DeviceClient can be inherited from DeviceController.
26917         (WebCore):
26918         (WebCore::DeviceController::DeviceController):
26919         (WebCore::DeviceController::addDeviceEventListener):
26920         (WebCore::DeviceController::removeDeviceEventListener):
26921         (WebCore::DeviceController::removeAllDeviceEventListeners):
26922         (WebCore::DeviceController::dispatchDeviceEvent):
26923         (WebCore::DeviceController::fireDeviceEvent):
26924         * page/DeviceController.h: Added.
26925         (WebCore):
26926         (DeviceController):
26927         (WebCore::DeviceController::~DeviceController):
26928         (WebCore::DeviceController::isActive):
26929         (WebCore::DeviceController::client):
26930         (WebCore::DeviceController::hasLastData):
26931         (WebCore::DeviceController::getLastEvent):
26932
26933 2012-11-01  Yury Semikhatsky  <yurys@chromium.org>
26934
26935         Memory instrumentation: report memory occupied by ResourceRequest instead of its base ResourceRequestBase
26936         https://bugs.webkit.org/show_bug.cgi?id=100497
26937
26938         Reviewed by Alexander Pavlov.
26939
26940         Added memory reporting method to chromium implementation of ResourceRequest.
26941
26942         * platform/network/ResourceRequestBase.cpp:
26943         (WebCore::ResourceRequestBase::reportMemoryUsageBase): Renamed reportMemoryUsage
26944         on ResourceRequestBase to reportMemoryUsageBase and made it protected. I'd
26945         rather make ResourceRequestBase::reportMemoryUsage virtual and override it
26946         in the descendant but ResourceRequestBase doesn't have any virtual methods
26947         and shouldn't be used directly(ResourceRequest should be used instead).
26948         * platform/network/ResourceRequestBase.h:
26949         (ResourceRequestBase):
26950         * platform/network/chromium/ResourceRequest.cpp:
26951         (WebCore::ResourceRequest::reportMemoryUsage):
26952         (WebCore):
26953         * platform/network/chromium/ResourceRequest.h:
26954         (ResourceRequest):
26955
26956 2012-11-01  Andreas Kling  <kling@webkit.org>
26957
26958         Pack immutable StylePropertySets harder on 64-bit.
26959         <http://webkit.org/b/100753>
26960         <rdar://problem/12599155>
26961
26962         Reviewed by Antti Koivisto.
26963
26964         Move away from using CSSProperty as internal storage for immutable StylePropertySets.
26965         Instead use two arrays, one for property metadata (ID, shorthand ID, !important, ...)
26966         and one for the CSSValue pointers. This saves 4 bytes per property on 64-bit.
26967
26968         Old object layout:
26969
26970             Ref count                   (4 bytes)
26971             Metadata                    (4 bytes)
26972             CSSProperty [N]             (16 bytes each)
26973
26974         New object layout:
26975
26976             Ref count                   (4 bytes)
26977             Metadata                    (4 bytes)
26978             CSSValue* [N]               (8 bytes each)
26979             StylePropertyMetadata [N]   (4 bytes each)
26980
26981         901kB progress on Membuster3 (22% overall reduction in StylePropertySet memory.)
26982
26983         The CSSProperty class sticks around for now, it's still used in mutable StylePropertySets
26984         and by the StylePropertySet constructors.
26985
26986         * css/CSSProperty.cpp:
26987         * css/CSSProperty.h:
26988         (CSSProperty):
26989         (WebCore::CSSProperty::CSSProperty):
26990         (WebCore::CSSProperty::id):
26991         (WebCore::CSSProperty::shorthandID):
26992         (WebCore::CSSProperty::isImportant):
26993         (WebCore::CSSProperty::metadata):
26994
26995             Break the bitfield from CSSProperty out into a StylePropertyMetadata class (actually a union.)
26996
26997         * css/StylePropertySet.cpp:
26998         (WebCore::immutableStylePropertySetSize):
26999
27000             Updated size calculation for immutable StylePropertySets, 1/4 smaller!
27001
27002         (WebCore::ImmutableStylePropertySet::ImmutableStylePropertySet):
27003         (WebCore::ImmutableStylePropertySet::~ImmutableStylePropertySet):
27004         (WebCore::MutableStylePropertySet::MutableStylePropertySet):
27005         (WebCore::StylePropertySet::mergeAndOverrideOnConflict):
27006         (WebCore::StylePropertySet::reportMemoryUsage):
27007         (WebCore::StylePropertySet::PropertyReference::cssName):
27008         (WebCore::StylePropertySet::PropertyReference::cssText):
27009         * css/StylePropertySet.h:
27010         (WebCore::StylePropertySet::PropertyReference::id):
27011         (WebCore::StylePropertySet::PropertyReference::shorthandID):
27012         (WebCore::StylePropertySet::PropertyReference::isImportant):
27013         (WebCore::StylePropertySet::PropertyReference::isInherited):
27014         (WebCore::StylePropertySet::PropertyReference::isImplicit):
27015         (PropertyReference):
27016         (WebCore::StylePropertySet::PropertyReference::value):
27017         (WebCore::StylePropertySet::PropertyReference::toCSSProperty):
27018         (WebCore::StylePropertySet::PropertyReference::propertyMetadata):
27019         (WebCore::StylePropertySet::PropertyReference::propertyValue):
27020         (StylePropertySet):
27021         (ImmutableStylePropertySet):
27022         (WebCore::StylePropertySet::immutableValueArray):
27023         (WebCore::StylePropertySet::immutableMetadataArray):
27024
27025             Refactored internal storage for StylePropertySet.
27026
27027 2012-11-01  Kent Tamura  <tkent@chromium.org>
27028
27029         Remove unused Locale::parseDateTime
27030         https://bugs.webkit.org/show_bug.cgi?id=100910
27031
27032         Reviewed by Kentaro Hara.
27033
27034         For date/time input types, InputType::convertFromVisibleValue is never
27035         called. convertFromVisibleValue is called when an inner editable node is
27036         updated. However input elements don't have such editable nodes if
27037         ENABLE_INPUT_MULTIPLE_FIELDS_UI is enabled, and a user can't edit the
27038         inner editable node otherwise because we open date/time pickers when a
27039         user try to change the field value.
27040
27041         We had used convertFromVisibleValue for input[type=date] with an old UI.
27042
27043         No new tests because of no behavior changes.
27044
27045         * html/BaseDateAndTimeInputType.cpp:
27046         (WebCore::BaseDateAndTimeInputType::convertFromVisibleValue):
27047         Remove Locale::parseDateTiem and put ASSERT_NOT_REACHED.
27048
27049         * platform/text/PlatformLocale.h: Remove parseDateTime.
27050
27051         * platform/text/LocaleICU.h: Remove parseDateTime and a bogus comment.
27052         * platform/text/LocaleICU.cpp: Remove parseDateTime.
27053
27054         * platform/text/LocaleNone.cpp: Remove parseDateTime.
27055
27056         * platform/text/mac/LocaleMac.h: Remove parseDateTime.
27057         * platform/text/mac/LocaleMac.mm: Ditto.
27058         * platform/text/win/LocaleWin.h:
27059         - Remove parseDateTime, its helpers, and m_baseYear.
27060         - Remove appendNumber, appendTwoDigitsNumber, appendFourDigitsNumber,
27061           and formatDate. They don't exist.
27062         * platform/text/win/LocaleWin.cpp:
27063         Remove the above functions.
27064         (WebCore::LocaleWin::LocaleWin): Remove m_baseYear iniitalization.
27065
27066 2012-10-31  Nate Chapin  <japhet@chromium.org>
27067
27068         Remove some CachedResource::Status's in favor of looking at CachedResource::m_error
27069         https://bugs.webkit.org/show_bug.cgi?id=100901
27070
27071         Reviewed by Adam Barth.
27072
27073         No new tests, refactor only.
27074
27075         * inspector/InspectorPageAgent.cpp:
27076         (WebCore::InspectorPageAgent::buildObjectForFrameTree):
27077         * loader/DocumentThreadableLoader.cpp:
27078         (WebCore::DocumentThreadableLoader::notifyFinished):
27079         * loader/FrameLoader.cpp:
27080         (WebCore::FrameLoader::loadInSameDocument):
27081         * loader/SubresourceLoader.cpp:
27082         (WebCore::SubresourceLoader::didFail):
27083         (WebCore::SubresourceLoader::willCancel):
27084         * loader/cache/CachedResource.cpp:
27085         (WebCore::CachedResource::stopLoading):
27086         * loader/cache/CachedResource.h:
27087         (WebCore::CachedResource::wasCanceled):
27088         (WebCore::CachedResource::errorOccurred):
27089         (WebCore::CachedResource::loadFailedOrCanceled):
27090
27091 2012-10-31  Stephen White  <senorblanco@chromium.org>
27092
27093         Unreviewed, rolling out r133122.
27094         http://trac.webkit.org/changeset/133122
27095         https://bugs.webkit.org/show_bug.cgi?id=99083
27096
27097         Broke Chromium Win, Android, ChromeOS builds
27098
27099         * platform/graphics/chromium/GraphicsLayerChromium.cpp:
27100         (WebCore::GraphicsLayerChromium::setContentsOpaque):
27101         (WebCore::GraphicsLayerChromium::paint):
27102         * platform/graphics/chromium/OpaqueRectTrackingContentLayerDelegate.cpp:
27103         (WebCore::OpaqueRectTrackingContentLayerDelegate::paintContents):
27104         * platform/graphics/chromium/OpaqueRectTrackingContentLayerDelegate.h:
27105         (OpaqueRectTrackingContentLayerDelegate):
27106
27107 2012-10-31  Takashi Sakamoto  <tasak@google.com>
27108
27109         [Refactoring] Move initial style setting for ProgressValueElement from attach method to createShadowSubtree method in HTMLProgressElement.
27110         https://bugs.webkit.org/show_bug.cgi?id=83664
27111
27112         Reviewed by Hajime Morita.
27113
27114         The original code updates inline style during attach(). However,
27115         the attach would be invoked from Element::recalcStyle()'s reattach().
27116         If updating inline styles during the reattach(), style related flags,
27117         i.e. childNeedsStyleRecalc, and needsStyleRecalc are cleared after the
27118         reattach(). So the inline styles are not updated in next
27119         setNeedsStyleRecalc, because ProgressValueElement has already had
27120         InlineStyleChange (existingChanegType == InlineStyleChange) and
27121         markAncestorsWithChildNeedsStyleRecalc is not invoked.
27122
27123         Test: fast/dom/HTMLProgressElement/progress-bar-set-value.html
27124
27125         * html/HTMLProgressElement.cpp:
27126         (WebCore::HTMLProgressElement::attach):
27127         Copied updateFromElement from didElementStateChange. If removing the
27128         update, indeterminate-progress-001.html and progress-element.html
27129         under fast/dom/HTMLProgressElement will fail. We still need attach()
27130         and updateFromElement. To remove the attach(), need more refactoring,
27131         i.e. investigating where attach() is invoked from and modifying all
27132         related codes.
27133         (WebCore::HTMLProgressElement::createShadowSubtree):
27134         Initialize m_value by indeterminate-position. The value is default
27135         value of progress element.
27136
27137 2012-10-31  Hayato Ito  <hayato@chromium.org>
27138
27139         Make resolveReprojection() defined in ComposedShadowTreeWalker.cpp callable from outside.
27140         https://bugs.webkit.org/show_bug.cgi?id=100832
27141
27142         Reviewed by Dimitri Glazkov.
27143
27144         InsertionPoint.h now defines resolveReprojection() so that it can be called from outside.
27145
27146         No new tests as no new functionality.
27147
27148         * dom/ComposedShadowTreeWalker.cpp:
27149         * html/shadow/InsertionPoint.h:
27150         (WebCore::shadowOfParentForDistribution):
27151         (WebCore):
27152         (WebCore::resolveReprojection):
27153
27154 2012-10-31  Alok Priyadarshi  <alokp@chromium.org>
27155
27156         [chromium] Pass canPaintLCDText to WebContentLayerClient::paintContents
27157         https://bugs.webkit.org/show_bug.cgi?id=99083
27158
27159         Reviewed by James Robinson.
27160
27161         Use LCD text setting passed to WebContentLayerClient::paintContents instead of turning it off for all composited layers.
27162
27163         No new tests needed. This patch does not change anything functionally.
27164
27165         * platform/graphics/chromium/GraphicsLayerChromium.cpp:
27166         (WebCore::GraphicsLayerChromium::setContentsOpaque):
27167         (WebCore::GraphicsLayerChromium::paint):
27168         * platform/graphics/chromium/OpaqueRectTrackingContentLayerDelegate.cpp:
27169         (WebCore::OpaqueRectTrackingContentLayerDelegate::paintContents):
27170         * platform/graphics/chromium/OpaqueRectTrackingContentLayerDelegate.h:
27171         (OpaqueRectTrackingContentLayerDelegate):
27172
27173 2012-10-31  Chris Evans  <cevans@google.com>
27174
27175         RenderArena has a memory leak and poor efficiency
27176         https://bugs.webkit.org/show_bug.cgi?id=100893
27177
27178         Reviewed by Eric Seidel.
27179
27180         1) Avoid memory leak that persists for the Document lifetime by
27181         increasing recycled size buckets up to 1024. It was previously 400,
27182         and sizeof(RenderNamedFlowThread) / sizeof(RenderSVGText) both blew this
27183         quota. An assert was added to prevent this happening again.
27184
27185         2) Fix the size of the recyled size bucket array on 64-bit. We only
27186         need 8 byte granularity on 64-bit, but we had 4.
27187
27188         3) Try and pass power-of-two sizes to the underlying malloc() call, so
27189         that we're space efficient. We now take Arena metadata into account.
27190
27191         4) Double the default RenderArena size allocation to 8192 bytes. Even
27192         for a render of a trivial text file, 4096 bytes is not enough to prevent
27193         extra calls into the underlying malloc() for more arena pool.
27194
27195         * rendering/RenderArena.cpp:
27196         (WebCore::RenderArena::RenderArena): Adjust arena size so that we pass on the page-sized multiple to the underlying malloc() implementation.
27197         (WebCore::RenderArena::allocate):
27198         (WebCore::RenderArena::free): Assert that the allocation size is handled by our recycling buckets.
27199         * rendering/RenderArena.h:
27200         (WebCore): Maintain free buckets up to 1024 bytes to avoid memory leak.
27201         (RenderArena): Double the default allocation size and handle 64-bit systems more efficiently.
27202
27203 2012-10-31  Adam Barth  <abarth@webkit.org>
27204
27205         [V8] Garbage collection should use opaque roots rather than implicit references
27206         https://bugs.webkit.org/show_bug.cgi?id=100707
27207
27208         Reviewed by Kentaro Hara.
27209
27210         This patch replaces visitDOMWrapper with opaqueRootForGC. The
27211         former used to inform V8 of implicit relationships between wrapper
27212         objects on a per-wrapper basis. That meant that we needed to know which
27213         DOMDataStore a given wrapper was in during garbage collection.
27214
27215         After this patch, we now use object groups rather than implicit
27216         references to inform V8 of these relationships. That has two benefits:
27217
27218         1) We no longer need to know which DOMDataStore a wrapper belongs
27219            because we don't need to find the exact source wrapper for the
27220            implicit connection.
27221
27222         2) We can now handle more complicated implicit relationships, for
27223            example when some of the intervening objects haven't had their
27224            JavaScript wrappers created yet.
27225
27226         This patch also unlocks to paths of future development:
27227         A) Fixing the remaining failures in fast/dom/gc-9.html
27228         B) Enumerating DOM wrappers entirely from V8 rather than from the
27229            DOMWrapperMaps (so that we can move more object towards using
27230            IntrusiveDOMWrapperMaps, which aren't enumerable from WebCore).
27231
27232         * bindings/scripts/CodeGeneratorV8.pm:
27233         (NeedsCustomOpaqueRootForGC):
27234         (GenerateOpaqueRootForGC):
27235         (GenerateHeader):
27236         (GenerateImplementation):
27237         * bindings/v8/V8GCController.cpp:
27238         (ImplicitConnection):
27239         (WebCore::ImplicitConnection::ImplicitConnection):
27240         (WebCore::ImplicitConnection::root):
27241         (WebCore::ImplicitConnection::wrapper):
27242         (WebCore):
27243         (WebCore::operator<):
27244         (WrapperGrouper):
27245         (WebCore::WrapperGrouper::WrapperGrouper):
27246         (WebCore::WrapperGrouper::addToGroup):
27247         (WebCore::WrapperGrouper::keepAlive):
27248         (WebCore::WrapperGrouper::apply):
27249         (WebCore::ObjectVisitor::ObjectVisitor):
27250         (WebCore::ObjectVisitor::visitDOMWrapper):
27251         (ObjectVisitor):
27252         (WebCore::V8GCController::opaqueRootForGC):
27253         (WebCore::NodeVisitor::NodeVisitor):
27254         (WebCore::NodeVisitor::visitNodeWrapper):
27255         (NodeVisitor):
27256         (WebCore::V8GCController::majorGCPrologue):
27257         * bindings/v8/V8GCController.h:
27258         (WebCore):
27259         (V8GCController):
27260         * bindings/v8/WrapperTypeInfo.h:
27261         (WebCore):
27262         (WebCore::WrapperTypeInfo::opaqueRootForGC):
27263         (WrapperTypeInfo):
27264         * bindings/v8/custom/V8NodeListCustom.cpp:
27265         (WebCore::V8NodeList::opaqueRootForGC):
27266         * bindings/v8/custom/V8SpeechRecognitionResultCustom.cpp:
27267         (WebCore::V8SpeechRecognitionResult::opaqueRootForGC):
27268
27269 2012-10-31  Stephen White  <senorblanco@chromium.org>
27270
27271         Unreviewed, rolling out r133107.
27272         http://trac.webkit.org/changeset/133107
27273         https://bugs.webkit.org/show_bug.cgi?id=100425
27274
27275         Broke compile on Chromium Win.
27276
27277         * Modules/indexeddb/IDBCallbacks.h:
27278         (IDBCallbacks):
27279         * Modules/indexeddb/IDBDatabase.cpp:
27280         (WebCore::IDBDatabase::objectStoreNames):
27281         (WebCore::IDBDatabase::createObjectStore):
27282         (WebCore::IDBDatabase::deleteObjectStore):
27283         (WebCore::IDBDatabase::transaction):
27284         * Modules/indexeddb/IDBDatabaseBackendImpl.cpp:
27285         (WebCore::IDBDatabaseBackendImpl::metadata):
27286         (WebCore::IDBDatabaseBackendImpl::createObjectStore):
27287         (WebCore::IDBDatabaseBackendImpl::objectStore):
27288         (WebCore::IDBDatabaseBackendImpl::deleteObjectStore):
27289         (WebCore::IDBDatabaseBackendImpl::transaction):
27290         (WebCore::IDBDatabaseBackendImpl::loadObjectStores):
27291         (WebCore::IDBDatabaseBackendImpl::removeObjectStoreFromMap):
27292         (WebCore::IDBDatabaseBackendImpl::addObjectStoreToMap):
27293         * Modules/indexeddb/IDBDatabaseBackendImpl.h:
27294         (IDBDatabaseBackendImpl):
27295         * Modules/indexeddb/IDBDatabaseBackendInterface.h:
27296         (IDBDatabaseBackendInterface):
27297         * Modules/indexeddb/IDBFactory.cpp:
27298         * Modules/indexeddb/IDBFactory.h:
27299         * Modules/indexeddb/IDBIndex.h:
27300         (WebCore::IDBIndex::openKeyCursor):
27301         * Modules/indexeddb/IDBIndexBackendInterface.h:
27302         * Modules/indexeddb/IDBKeyPath.cpp:
27303         * Modules/indexeddb/IDBMetadata.h:
27304         (WebCore):
27305         (IDBDatabaseMetadata):
27306         (WebCore::IDBDatabaseMetadata::IDBDatabaseMetadata):
27307         (IDBObjectStoreMetadata):
27308         (WebCore::IDBIndexMetadata::IDBIndexMetadata):
27309         (IDBIndexMetadata):
27310         * Modules/indexeddb/IDBObjectStore.cpp:
27311         (WebCore::IDBObjectStore::indexNames):
27312         (WebCore::IDBObjectStore::put):
27313         (WebCore::IDBObjectStore::createIndex):
27314         (WebCore::IDBObjectStore::index):
27315         (WebCore::IDBObjectStore::deleteIndex):
27316         * Modules/indexeddb/IDBObjectStoreBackendImpl.cpp:
27317         (WebCore::IDBObjectStoreBackendImpl::putWithIndexKeys):
27318         (WebCore):
27319         (WebCore::makeIndexWriters):
27320         (WebCore::IDBObjectStoreBackendImpl::setIndexKeys):
27321         (WebCore::IDBObjectStoreBackendImpl::setIndexesReady):
27322         (WebCore::IDBObjectStoreBackendImpl::setIndexesReadyInternal):
27323         (WebCore::IDBObjectStoreBackendImpl::putInternal):
27324         (WebCore::IDBObjectStoreBackendImpl::deleteInternal):
27325         (WebCore::IDBObjectStoreBackendImpl::createIndex):
27326         (WebCore::IDBObjectStoreBackendImpl::index):
27327         (WebCore::IDBObjectStoreBackendImpl::deleteIndex):
27328         (WebCore::IDBObjectStoreBackendImpl::loadIndexes):
27329         (WebCore::IDBObjectStoreBackendImpl::removeIndexFromMap):
27330         (WebCore::IDBObjectStoreBackendImpl::addIndexToMap):
27331         * Modules/indexeddb/IDBObjectStoreBackendImpl.h:
27332         (IDBObjectStoreBackendImpl):
27333         * Modules/indexeddb/IDBObjectStoreBackendInterface.h:
27334         * Modules/indexeddb/IDBOpenDBRequest.cpp:
27335         (WebCore::IDBOpenDBRequest::onUpgradeNeeded):
27336         * Modules/indexeddb/IDBRequest.cpp:
27337         (WebCore::IDBRequest::onSuccess):
27338         (WebCore::IDBRequest::uncaughtExceptionInEventHandler):
27339         * Modules/indexeddb/IDBTransaction.cpp:
27340         (WebCore::IDBTransaction::create):
27341         (WebCore::IDBTransaction::IDBTransaction):
27342         (WebCore::IDBTransaction::objectStore):
27343         * Modules/indexeddb/IDBTransaction.h:
27344         (IDBTransaction):
27345         * Modules/indexeddb/IDBTransactionBackendImpl.cpp:
27346         (WebCore::IDBTransactionBackendImpl::create):
27347         (WebCore::IDBTransactionBackendImpl::IDBTransactionBackendImpl):
27348         (WebCore::IDBTransactionBackendImpl::objectStore):
27349         (WebCore::IDBTransactionBackendImpl::scheduleTask):
27350         * Modules/indexeddb/IDBTransactionBackendImpl.h:
27351         (IDBTransactionBackendImpl):
27352         * Modules/indexeddb/IDBTransactionBackendInterface.h:
27353         * Modules/indexeddb/IDBTransactionCoordinator.h:
27354
27355 2012-10-31  Alec Flett  <alecflett@chromium.org>
27356
27357         IndexedDB: add methods to support id-based backend APIs
27358         https://bugs.webkit.org/show_bug.cgi?id=100425
27359
27360         Reviewed by Tony Chang.
27361
27362         First half of refactor involves adding a number of methods that
27363         are int64_t-based rather than String-based. As a part of this, the
27364         IDB*Metadata structs and the backend objectStore/index maps all
27365         use int64_t as keys, rather than String.
27366
27367         In addition, there were a number of cleanups that came out of the
27368         refactor:
27369
27370         - The list of object stores active in a transaction is now
27371           maintained by the frontend IDBTransaction rather than the backend
27372           IDBTransactionBackendImpl. This also had a simplifying rippling
27373           effect through other call signatures.
27374
27375         - I was able to remove an apparently old FIXME from
27376           IDBTransactionBackendImpl::objectStore and replace it with an ASSERT.
27377
27378         - IDBObjectStoreBackendImpl's IndexWriter class got a little
27379           simpler since the id is now easily available in the
27380           IDBIndexMetadata.
27381
27382         - A number of methods got simpler in their int64_t versions,
27383           specifically dropping a number of ExceptionCodes.
27384
27385         There is also some glue code
27386         (getIndexId/getIndexIds/getObjectStoreId) that will go away with
27387         the 2nd half of this: https://bugs.webkit.org/show_bug.cgi?id=100425
27388
27389         No new tests, no new functionality as this is just a refactor.
27390
27391         * Modules/indexeddb/IDBDatabase.cpp:
27392         (WebCore::IDBDatabase::objectStoreNames):
27393         (WebCore::IDBDatabase::createObjectStore):
27394         (WebCore::IDBDatabase::deleteObjectStore):
27395         (WebCore::IDBDatabase::transaction):
27396         * Modules/indexeddb/IDBDatabaseBackendImpl.cpp:
27397         (WebCore::IDBDatabaseBackendImpl::metadata):
27398         (WebCore::IDBDatabaseBackendImpl::createObjectStore):
27399         (WebCore::IDBDatabaseBackendImpl::objectStore):
27400         (WebCore::IDBDatabaseBackendImpl::getObjectStoreId):
27401         (WebCore):
27402         (WebCore::IDBDatabaseBackendImpl::deleteObjectStore):
27403         (WebCore::IDBDatabaseBackendImpl::transaction):
27404         (WebCore::IDBDatabaseBackendImpl::loadObjectStores):
27405         (WebCore::IDBDatabaseBackendImpl::removeObjectStoreFromMap):
27406         (WebCore::IDBDatabaseBackendImpl::addObjectStoreToMap):
27407         * Modules/indexeddb/IDBDatabaseBackendImpl.h:
27408         (WebCore::IDBDatabaseBackendImpl::deleteObjectStore):
27409         (IDBDatabaseBackendImpl):
27410         * Modules/indexeddb/IDBDatabaseBackendInterface.h:
27411         (IDBDatabaseBackendInterface):
27412         * Modules/indexeddb/IDBIndex.h:
27413         (WebCore::IDBIndex::id):
27414         (WebCore::IDBIndex::openKeyCursor):
27415         * Modules/indexeddb/IDBIndexBackendInterface.h:
27416         * Modules/indexeddb/IDBMetadata.h:
27417         (WebCore::IDBIndexMetadata::IDBIndexMetadata):
27418         (IDBIndexMetadata):
27419         (IDBObjectStoreMetadata):
27420         (WebCore::IDBObjectStoreMetadata::containsIndex):
27421         (IDBDatabaseMetadata):
27422         (WebCore::IDBDatabaseMetadata::IDBDatabaseMetadata):
27423         (WebCore::IDBDatabaseMetadata::containsObjectStore):
27424         * Modules/indexeddb/IDBObjectStore.cpp:
27425         (WebCore::IDBObjectStore::indexNames):
27426         (WebCore::IDBObjectStore::put):
27427         (WebCore::IDBObjectStore::createIndex):
27428         (WebCore::IDBObjectStore::index):
27429         (WebCore::IDBObjectStore::deleteIndex):
27430         * Modules/indexeddb/IDBObjectStoreBackendImpl.cpp:
27431         (WebCore::IDBObjectStoreBackendImpl::put):
27432         (WebCore::IDBObjectStoreBackendImpl::putWithIndexKeys):
27433         (WebCore):
27434         (WebCore::makeIndexWriters):
27435         (WebCore::IDBObjectStoreBackendImpl::setIndexKeys):
27436         (WebCore::IDBObjectStoreBackendImpl::setIndexesReady):
27437         (WebCore::IDBObjectStoreBackendImpl::setIndexesReadyInternal):
27438         (WebCore::IDBObjectStoreBackendImpl::putInternal):
27439         (WebCore::IDBObjectStoreBackendImpl::deleteInternal):
27440         (WebCore::IDBObjectStoreBackendImpl::createIndex):
27441         (WebCore::IDBObjectStoreBackendImpl::index):
27442         (WebCore::IDBObjectStoreBackendImpl::getIndexId):
27443         (WebCore::IDBObjectStoreBackendImpl::getIndexIds):
27444         (WebCore::IDBObjectStoreBackendImpl::deleteIndex):
27445         (WebCore::IDBObjectStoreBackendImpl::loadIndexes):
27446         (WebCore::IDBObjectStoreBackendImpl::removeIndexFromMap):
27447         (WebCore::IDBObjectStoreBackendImpl::addIndexToMap):
27448         * Modules/indexeddb/IDBObjectStoreBackendImpl.h:
27449         (IDBObjectStoreBackendImpl):
27450         * Modules/indexeddb/IDBObjectStoreBackendInterface.h:
27451         * Modules/indexeddb/IDBOpenDBRequest.cpp:
27452         (WebCore::IDBOpenDBRequest::onUpgradeNeeded):
27453         * Modules/indexeddb/IDBRequest.cpp:
27454         (WebCore::IDBRequest::onSuccess):
27455         (WebCore::IDBRequest::uncaughtExceptionInEventHandler):
27456         * Modules/indexeddb/IDBTransaction.cpp:
27457         (WebCore::IDBTransaction::create):
27458         (WebCore::IDBTransaction::IDBTransaction):
27459         (WebCore::IDBTransaction::objectStore):
27460         * Modules/indexeddb/IDBTransaction.h:
27461         (IDBTransaction):
27462         * Modules/indexeddb/IDBTransactionBackendImpl.cpp:
27463         (WebCore::IDBTransactionBackendImpl::create):
27464         (WebCore::IDBTransactionBackendImpl::IDBTransactionBackendImpl):
27465         (WebCore::IDBTransactionBackendImpl::objectStore):
27466         (WebCore):
27467         (WebCore::IDBTransactionBackendImpl::scheduleTask):
27468         * Modules/indexeddb/IDBTransactionBackendImpl.h:
27469         (IDBTransactionBackendImpl):
27470         * Modules/indexeddb/IDBTransactionBackendInterface.h:
27471
27472 2012-10-30  Mark Lam  <mark.lam@apple.com>
27473
27474         A JSC printf (support for %J+s and %b).
27475         https://bugs.webkit.org/show_bug.cgi?id=100566.
27476
27477         Reviewed by Michael Saboff.
27478
27479         Added forwarding header for VMInspector.h.
27480
27481         No new tests needed for this.
27482
27483         * ForwardingHeaders/interpreter/VMInspector.h: Added.
27484
27485 2012-10-31  Chris Rogers  <crogers@google.com>
27486
27487         Implement optional arguments in AudioBufferSourceNode start() method
27488         https://bugs.webkit.org/show_bug.cgi?id=100894
27489
27490         Reviewed by Kenneth Russell.
27491
27492         The start() method should be able to take 1, 2, or 3 arguments, optionally supporting
27493         offset and duration.  Currently, only 1 and 3 arguments are supported.
27494
27495         Test: webaudio/audiobuffersource-start.html
27496
27497         * Modules/webaudio/AudioBufferSourceNode.cpp:
27498         (WebCore::AudioBufferSourceNode::renderFromBuffer):
27499         (WebCore::AudioBufferSourceNode::startGrain):
27500         (WebCore):
27501         * Modules/webaudio/AudioBufferSourceNode.h:
27502         (AudioBufferSourceNode):
27503         * Modules/webaudio/AudioBufferSourceNode.idl:
27504
27505 2012-10-31  Mike West  <mkwst@chromium.org>
27506
27507         Implement the canonical "Content-Security-Policy" header.
27508         https://bugs.webkit.org/show_bug.cgi?id=96765
27509
27510         Reviewed by Adam Barth.
27511
27512         The CSP 1.0 specification defines the "Content-Security-Policy" header
27513         as the canonical mechanism of defining a resource's security policy. Up
27514         through this patch, we've implemented the functionality behind a prefix
27515         in order to ensure compatibility with the standard once it's released as
27516         a recommendation. Both the specification and WebKit's implementation are
27517         far enough along in that process that it makes sense to support the
27518         unprefixed header for sites that wish to opt-in to CSP 1.0.
27519
27520         As discussed on public-webappsec[1], we'll keep the experimental 1.1
27521         features behind the prefixed header ('X-WebKit-CSP') until that standard
27522         is far enough along to justify moving them out to the canonical header.
27523
27524         This patch defines the 'Content-Security-Policy' header for all ports,
27525         just as the 'X-WebKit-CSP' header is currently supported on all ports.
27526         Ports that have not opted-in to the CSP_NEXT flag will see exactly the
27527         same behavior with both headers. Ports that have opted-in will see much
27528         of CSP 1.1's current definition on the prefixed header, and CSP 1.0 on
27529         the canonical header.
27530
27531         The functionality in this change is covered by the changes made to
27532         existing tests. No expectations changed, only the headers that are sent.
27533
27534         * dom/Document.cpp:
27535         (WebCore::Document::processHttpEquiv):
27536             Add canonical header support to 'meta' element definitions.
27537         * loader/FrameLoader.cpp:
27538         (WebCore::FrameLoader::didBeginDocument):
27539             Add canonical header support to FrameLoader.
27540         * page/ContentSecurityPolicy.cpp:
27541         (WebCore::CSPDirectiveList::headerType):
27542             The ContentSecurityPolicy::HeaderType enum now has four values:
27543             prefixed/report-only, unprefixed/report-only, prefixed/enforce, and
27544             unprefixed/enforce. Instead of creating logic to output the proper
27545             type based on internal flags, CSPDirectiveList now saves the value
27546             provided at creation time, and returns it via this method.
27547         (CSPDirectiveList):
27548         (WebCore::CSPDirectiveList::CSPDirectiveList):
27549             The constructor now accepts a type, which is stored on the object.
27550             It also stores a new internal variable, 'm_experimental', which
27551             defines whether or not experimental features ought to be available.
27552             These features are still locked behind the CSP_NEXT flag, but that
27553             might not be the case forever.
27554         (WebCore::CSPDirectiveList::create):
27555             The static constructor wrapper now passes the type into the real
27556             constructor, which also now handles setting its internal variables.
27557         (WebCore::CSPDirectiveList::parse):
27558             'parse()' is given the header, so it makes sense to store it here as
27559             well, rather than in the create wrapper.
27560         (WebCore::CSPDirectiveList::addDirective):
27561             1.1 directives remain locked behind CSP_NEXT, but now also require
27562             that 'm_experimental' is set, signaling usage of the prefixed header
27563             and an implicit opt-in to 1.1.
27564         * page/ContentSecurityPolicy.h:
27565             Added two new types to the HeaderTypes enum: PrefixedReportOnly, and
27566             PrefixedEnforcePolicy. These map to 'X-WebKitCSP-Report-Only' and
27567             'X-WebKit-CSP', respectively.
27568
27569 2012-10-31  Roger Fong  <roger_fong@apple.com>
27570
27571         Change PopupMenu positioning on Windows such that behaviour on multiple monitors matches Windows standards.
27572         https://bugs.webkit.org/show_bug.cgi?id=100317
27573
27574         Reviewed by Sam Weinig.
27575
27576         The existing code determines which screen the popup menu "belongs" to by determining which screen the owning application's hwnd belongs to,
27577         where ownership is determined by how much of the hwnd is on which screen.
27578         To match what most Windows applications do, the owning screen should be whichever screen the drop down button belongs to.
27579         To determine which screen an element belongs to in Windows we need to pass in an hwnd for that element.
27580         However, since the drop down button is something that WebKit renders there is no hwnd.
27581
27582         To remedy this issue, we can temporarily move the popup menu's hwnd to match the position and size of the button,
27583         determine the correct screen, and then eventually move it back to the correct final position after the rest of 
27584         the calculations have been completed. This is all done in the same function call so no rendering of the popup menu occurs
27585         between the temporary and final positionings.
27586
27587         There's not really a good way of testing popup menus except manually, they're separate hwnds created outside of the WebView.
27588
27589         * platform/win/PopupMenuWin.cpp:
27590         (WebCore::monitorFromHwnd):
27591         (WebCore):
27592         (WebCore::PopupMenuWin::show):
27593         (WebCore::PopupMenuWin::calculatePositionAndSize):
27594
27595 2012-10-31  Thiago Marcos P. Santos  <thiago.santos@intel.com>
27596
27597         Added viewport at-rule to the CSS parser and tokenizer
27598         https://bugs.webkit.org/show_bug.cgi?id=95961
27599
27600         Reviewed by Kenneth Rohde Christiansen.
27601
27602         Add tokens and grammar rules to parse @-webkit-viewport blocks. Also add
27603         the newly parsed rule to the rule list.
27604
27605         This parser now implements the following part of the CSS Device Adaptation
27606         specification: http://www.w3.org/TR/css-device-adapt/#syntax
27607
27608         Test: css3/device-adapt/viewport-at-rule-parsing.html
27609
27610         * CMakeLists.txt:
27611         * GNUmakefile.list.am:
27612         * Target.pri:
27613         * WebCore.gypi:
27614         * WebCore.vcproj/WebCore.vcproj:
27615         * WebCore.xcodeproj/project.pbxproj:
27616         * css/CSSGrammar.y.in:
27617         * css/CSSParser.cpp:
27618         (WebCore::CSSParser::CSSParser):
27619         (WebCore::CSSParser::detectAtToken):
27620         (WebCore):
27621         (WebCore::CSSParser::createViewportRule):
27622         * css/CSSParser.h:
27623         (CSSParser):
27624         (WebCore::CSSParser::markViewportRuleBodyStart):
27625         (WebCore::CSSParser::markViewportRuleBodyEnd):
27626         (WebCore::CSSParser::inViewport):
27627
27628             These methods are needed by the next patch validating the properties.
27629             Some viewport properties are common to other rules but have different
27630             semantics, and accepts different keywords. The validation needs to be
27631             done in a different code path.
27632
27633         * css/CSSPropertySourceData.h:
27634         * css/CSSRule.cpp:
27635         (WebCore):
27636         (WebCore::CSSRule::cssText):
27637         (WebCore::CSSRule::destroy):
27638         (WebCore::CSSRule::reattach):
27639         (WebCore::CSSRule::reportMemoryUsage):
27640         * css/CSSRule.h:
27641         (CSSRule):
27642         (WebCore::CSSRule::isViewportRule):
27643         * css/StyleRule.cpp:
27644         (WebCore::StyleRuleBase::reportMemoryUsage):
27645         (WebCore::StyleRuleBase::destroy):
27646         (WebCore::StyleRuleBase::copy):
27647         (WebCore::StyleRuleBase::createCSSOMWrapper):
27648         (WebCore):
27649         (WebCore::StyleRuleViewport::StyleRuleViewport):
27650         (WebCore::StyleRuleViewport::~StyleRuleViewport):
27651         (WebCore::StyleRuleViewport::mutableProperties):
27652         (WebCore::StyleRuleViewport::setProperties):
27653         (WebCore::StyleRuleViewport::reportDescendantMemoryUsage):
27654         * css/StyleRule.h:
27655         (StyleRuleBase):
27656         (WebCore::StyleRuleBase::isViewportRule):
27657         (WebCore):
27658         (StyleRuleViewport):
27659         (WebCore::StyleRuleViewport::create):
27660         (WebCore::StyleRuleViewport::properties):
27661         (WebCore::StyleRuleViewport::copy):
27662         * css/WebKitCSSViewportRule.cpp: Added.
27663         (WebCore):
27664         (WebCore::WebKitCSSViewportRule::WebKitCSSViewportRule):
27665         (WebCore::WebKitCSSViewportRule::~WebKitCSSViewportRule):
27666         (WebCore::WebKitCSSViewportRule::style):
27667         (WebCore::WebKitCSSViewportRule::cssText):
27668         (WebCore::WebKitCSSViewportRule::reattach):
27669         (WebCore::WebKitCSSViewportRule::reportDescendantMemoryUsage):
27670         * css/WebKitCSSViewportRule.h: Added.
27671         (WebCore):
27672
27673 2012-10-31  Max Vujovic  <mvujovic@adobe.com>
27674
27675         [CSS Shaders] Validate types of built-in uniforms
27676         https://bugs.webkit.org/show_bug.cgi?id=98974
27677
27678         Reviewed by Dean Jackson.
27679
27680         Reject shaders which define built-in uniforms with the wrong type. For example, we reject a
27681         shader with the GLSL code "uniform float u_textureSize;" because u_textureSize should be a
27682         vec2, not a float.
27683
27684         Relevant Spec Section:
27685         https://dvcs.w3.org/hg/FXTF/raw-file/tip/filters/index.html#shader-uniform-variables
27686
27687         Test: css3/filters/custom/invalid-custom-filter-uniform-types.html
27688
27689         * platform/graphics/filters/CustomFilterValidatedProgram.cpp:
27690         (WebCore):
27691         (WebCore::builtInUniformNameToTypeMap):
27692         (WebCore::validateSymbols):
27693
27694 2012-10-31  Sheriff Bot  <webkit.review.bot@gmail.com>
27695
27696         Unreviewed, rolling out r133044.
27697         http://trac.webkit.org/changeset/133044
27698         https://bugs.webkit.org/show_bug.cgi?id=100888
27699
27700         Hits an ASSERT in the isolatedWorlds tests (Requested by
27701         abarth on #webkit).
27702
27703         * bindings/scripts/CodeGeneratorV8.pm:
27704         (NeedsToVisitDOMWrapper):
27705         (GenerateVisitDOMWrapper):
27706         (GenerateHeader):
27707         (GenerateImplementation):
27708         * bindings/v8/V8GCController.cpp:
27709         (WebCore::ObjectVisitor::ObjectVisitor):
27710         (WebCore::ObjectVisitor::visitDOMWrapper):
27711         (ObjectVisitor):
27712         (WebCore::rootForGC):
27713         (ImplicitConnection):
27714         (WebCore::ImplicitConnection::ImplicitConnection):
27715         (WebCore::ImplicitConnection::root):
27716         (WebCore::ImplicitConnection::wrapper):
27717         (WebCore):
27718         (WebCore::operator<):
27719         (WebCore::NodeVisitor::NodeVisitor):
27720         (WebCore::NodeVisitor::visitNodeWrapper):
27721         (NodeVisitor):
27722         (WebCore::NodeVisitor::applyGrouping):
27723         (WebCore::V8GCController::majorGCPrologue):
27724         * bindings/v8/V8GCController.h:
27725         (V8GCController):
27726         * bindings/v8/WrapperTypeInfo.h:
27727         (WebCore):
27728         (WebCore::WrapperTypeInfo::visitDOMWrapper):
27729         (WrapperTypeInfo):
27730         * bindings/v8/custom/V8NodeListCustom.cpp:
27731         (WebCore::V8NodeList::visitDOMWrapper):
27732         * bindings/v8/custom/V8SpeechRecognitionResultCustom.cpp:
27733         (WebCore::V8SpeechRecognitionResult::visitDOMWrapper):
27734
27735 2012-10-31  Philip Rogers  <pdr@google.com>
27736
27737         Cache animationMode() in SVG animations.
27738         https://bugs.webkit.org/show_bug.cgi?id=99694
27739
27740         Reviewed by Eric Seidel.
27741
27742         This patch caches animationMode() which accounted for 25% of the CPU time of a simple
27743         animation benchmark! This is the 3rd patch for WK99694.
27744
27745         Background: SVGAnimationElement contains most of the shared animation logic for <animate>,
27746         <set>, <animateColor>, <animateTransform>, and <animateMotion>. <animateMotion> is the only
27747         animation element that can depend on other elements in the page. For example:
27748         <path id="mypath" d="M0 0 L 100 100Z"/> <!-- note, can be animated! -->
27749         <rect x="0" y="0" width="100" height="100" fill="green">
27750             <animateMotion dur="6s" repeatCount="indefinite">
27751                 <mpath xlink:href="#mypath"/>
27752             </animateMotion>
27753         </rect>
27754         See: http://www.w3.org/TR/SVG/single-page.html#animate-AnimateMotionElement
27755
27756         animationMode depends on several properties of an animation element: the set tag, whether
27757         the animation has a path, and the "values", "to", and "by" attributes. animationMode() was
27758         a hot function for two reasons:
27759         1) hasAttribute(SVGNames::valuesAttr) is expensive because we are unable to use
27760            fastHasAttribute. This is cacheable by simply calculating the animationMode when the
27761            "values" attribute changes.
27762         2) In the <animateMotion> case, determining if a path is empty or changed is expensive.
27763            AnimateMotion can have a path attribute, or it can have <mpath> children that reference
27764            a (possibly non-existent) <path> element elsewhere in the page. Before this patch we did
27765            this path lookup on every animation loop in case something changed. After this patch we
27766            only update AnimateMotion's path when it changes.
27767
27768         A previous patch, http://trac.webkit.org/changeset/132847, laid the groundwork for tracking
27769         <path> changes in <mpath>. This patch adds <mpath> to our resource tracking infrastructure
27770         to track when target <path>s change, instead of looking this up every time.
27771
27772         This refactoring is covered by existing tests.
27773         svg/animations/mozilla/animateMotion-mpath-targetChange-1.svg fails after this patch
27774         because our element dependency tracking has a bug with duplicate ids; see WK99893.
27775
27776         * svg/SVGAnimateMotionElement.cpp:
27777         (WebCore::SVGAnimateMotionElement::parseAttribute):
27778         (WebCore::SVGAnimateMotionElement::updateAnimationPath):
27779
27780             animationPath() has been changed to updateAnimationPath() and should only be called
27781             when the animation path (path attribute, or mpath's referenced path) has changed.
27782
27783         (WebCore::SVGAnimateMotionElement::buildTransformForProgress):
27784         (WebCore::SVGAnimateMotionElement::updateAnimationMode):
27785
27786             If an animationPath exists, we use PathAnimation, otherwise we fall back to the normal
27787             updateAnimationMode() codepath.
27788
27789         (WebCore):
27790         * svg/SVGAnimateMotionElement.h:
27791         (SVGAnimateMotionElement):
27792         * svg/SVGAnimationElement.cpp:
27793         (WebCore::SVGAnimationElement::SVGAnimationElement):
27794         (WebCore::SVGAnimationElement::isSupportedAttribute):
27795         (WebCore::SVGAnimationElement::parseAttribute):
27796
27797             The from, by, and to attributes have been added so that we can track when they change
27798             and update the animation mode. Similarly for when the values attribute changes.
27799
27800         (WebCore::SVGAnimationElement::updateAnimationMode):
27801         * svg/SVGAnimationElement.h:
27802         (WebCore::SVGAnimationElement::animationMode):
27803         (SVGAnimationElement):
27804         (WebCore::SVGAnimationElement::setAnimationMode):
27805         (WebCore::SVGAnimationElement::calculateDistance):
27806         * svg/SVGMPathElement.cpp:
27807         (WebCore::SVGMPathElement::buildPendingResource):
27808
27809             It would be nice to move all the duplicated buildPendingResource() logic into a central
27810             place (SVGURIReference?) but for now it is copied. This function is nearly identical to
27811             SVGFEImageElement::buildPendingResource.
27812
27813         (WebCore):
27814         (WebCore::SVGMPathElement::clearResourceReferences):
27815         (WebCore::SVGMPathElement::insertedInto):
27816         (WebCore::SVGMPathElement::removedFrom):
27817         (WebCore::SVGMPathElement::svgAttributeChanged):
27818         (WebCore::SVGMPathElement::targetPathChanged):
27819         (WebCore::SVGMPathElement::notifyParentOfPathChange):
27820         * svg/SVGMPathElement.h:
27821         (SVGMPathElement):
27822         * svg/SVGPathElement.cpp:
27823
27824             When a <path>'s path changes, we need to notify any dependent <mpath> elements. This is
27825             typically handled with RenderSVGResource::markForLayoutAndParentResourceInvalidation
27826             but for the special-case of <mpath> we only need to track when the path's "d" attribute
27827             changes so invalidateMPathDependencies() has been added.
27828
27829         (WebCore::SVGPathElement::svgAttributeChanged):
27830         (WebCore::SVGPathElement::invalidateMPathDependencies):
27831         (WebCore):
27832         (WebCore::SVGPathElement::insertedInto):
27833         (WebCore::SVGPathElement::removedFrom):
27834         * svg/SVGPathElement.h:
27835         (SVGPathElement):
27836         * svg/SVGSetElement.cpp:
27837         (WebCore::SVGSetElement::SVGSetElement):
27838         (WebCore::SVGSetElement::updateAnimationMode):
27839         (WebCore):
27840         * svg/SVGSetElement.h:
27841         (SVGSetElement):
27842         * svg/animation/SVGSMILElement.cpp:
27843         (WebCore::SVGSMILElement::isSupportedAttribute):
27844
27845 2012-10-31  Beth Dakin  <bdakin@apple.com>
27846
27847         https://bugs.webkit.org/show_bug.cgi?id=100879
27848         ScrollingStateNode::cloneAndResetNode() should not be virtual
27849
27850         Reviewed by Simon Fraser.
27851
27852         cloneAndResetNode() is currently pure virtual and implemented only 
27853         in ScrollingStateScrollingNode. However, all of the work that it 
27854         does at this time is stuff that a generic ScrollingStateNode could 
27855         do. We should move this implementation to the base class so that it 
27856         does not need to be duplicated for future node types.
27857
27858         This patch also re-names cloneAndResetNode() to cloneAndReset()
27859         and correspondingly re-names cloneAndResetChildNodes() to 
27860         cloneAndResetChildren(). 
27861
27862         Finally the patch also changes the copy constructors of both of these 
27863         classes to take a const reference instead of a pointer.
27864
27865         * page/scrolling/ScrollingStateNode.cpp:
27866         (WebCore::ScrollingStateNode::ScrollingStateNode):
27867         (WebCore::ScrollingStateNode::cloneAndReset):
27868         (WebCore):
27869         (WebCore::ScrollingStateNode::cloneAndResetChildren):
27870         * page/scrolling/ScrollingStateNode.h:
27871         (ScrollingStateNode):
27872         * page/scrolling/ScrollingStateScrollingNode.cpp:
27873         (WebCore::ScrollingStateScrollingNode::ScrollingStateScrollingNode):
27874         (WebCore):
27875         * page/scrolling/ScrollingStateScrollingNode.h:
27876         (ScrollingStateScrollingNode):
27877         * page/scrolling/ScrollingStateTree.cpp:
27878         (WebCore::ScrollingStateTree::commit):
27879
27880 2012-10-31  Tom Sepez  <tsepez@chromium.org>
27881         
27882         Malformed X-XSS-Protection headers not reported.
27883         https://bugs.webkit.org/show_bug.cgi?id=100538
27884
27885         Reviewed by Adam Barth.
27886
27887         Re-writes X-XSS-Protection header parser to be more particular, and to
27888         return better information on error.
27889
27890         Tests: http/tests/security/xssAuditor/malformed-xss-protection-header-1.html
27891                http/tests/security/xssAuditor/malformed-xss-protection-header-2.html
27892                http/tests/security/xssAuditor/malformed-xss-protection-header-4.html
27893                http/tests/security/xssAuditor/xss-protection-parsing-02.html
27894
27895         * html/parser/XSSAuditor.cpp:
27896         (WebCore::XSSAuditor::init):
27897         Detect error return code and log console message with details
27898         * platform/network/HTTPParsers.cpp:
27899         (WebCore):
27900         (WebCore::skipWhiteSpace):
27901         Use safe less-than comparsion in case called with pos already out of range.
27902         (WebCore::skipToken):
27903         Fix comparison to properly reject substrings at end of input.  Prevent advancing
27904         returned position when match fails, so that this may someday be used to match
27905         optional tokens.
27906         (WebCore::parseXSSProtectionHeader):
27907         Return detailled error status. Avoid needless string copy.
27908         * platform/network/HTTPParsers.h:
27909         Add new error returns for x-xss-protection header parser.
27910         
27911 2012-10-31  Simon Fraser  <simon.fraser@apple.com>
27912
27913         REGRESSION (tile cache layers): bits of tiled layers are missing with certain 3D transforms
27914         https://bugs.webkit.org/show_bug.cgi?id=100808
27915         <rdar://problem/12562541>
27916
27917         Reviewed by Dean Jackson.
27918
27919         When projecting rects down into transformed layers, the projection can fail with severe
27920         3D rotations if the computed w component in TransformationMatrix::projectPoint() is negative.
27921         In this case we already clamp, but the fact that we clamped doesn't make it out to
27922         GraphicsLayerCA::computeVisibleRect() which resulted in incorrect visible rects being
27923         computed.
27924         
27925         Fix by propagating the fact that clamping occurred out of the TransformState functions
27926         which can clamp. In computeVisibleRect(), simply consider the entire layer bounds
27927         to be visible if clamping occurred.
27928
27929         Tests: compositing/tiling/rotated-tiled-clamped.html
27930                compositing/tiling/rotated-tiled-preserve3d-clamped.html
27931
27932         * platform/graphics/ca/GraphicsLayerCA.cpp:
27933         (WebCore::GraphicsLayerCA::computeVisibleRect): If either the applyTransform()
27934         or the state.mappedQuad() clamped, use our bounds as the visible rect.
27935         * platform/graphics/transforms/TransformState.cpp:
27936         (WebCore::TransformState::applyTransform): Pass out clamping state.
27937         (WebCore::TransformState::flatten): Ditto.
27938         (WebCore::TransformState::mappedPoint): Ditto.
27939         (WebCore::TransformState::mappedQuad): Ditto.
27940         (WebCore::TransformState::flattenWithTransform): Ditto. No need to initialize
27941         wasClamped, since this function is internal.
27942         * platform/graphics/transforms/TransformState.h:
27943         (TransformState):
27944         * platform/graphics/transforms/TransformationMatrix.cpp:
27945         (WebCore::TransformationMatrix::projectQuad): If any point projection clamped,
27946         set the flag to say we clamped.
27947         * platform/graphics/transforms/TransformationMatrix.h:
27948         (TransformationMatrix):
27949
27950 2012-10-31  Tiancheng Jiang  <tijiang@rim.com>
27951
27952         Change bubble message style to BB10 UX spec.
27953         https://bugs.webkit.org/show_bug.cgi?id=100862
27954
27955         Reviewed by Rob Buis.
27956
27957         RIM PR 198108
27958         Internal Reviewed by Otto Cheung.
27959         No new tests.
27960
27961         * css/themeBlackBerry.css:
27962         (::-webkit-validation-bubble-message): Added.
27963         (::-webkit-validation-bubble-arrow): Added.
27964         (::-webkit-validation-bubble-heading): Added.
27965
27966 2012-10-31  Mike West  <mkwst@chromium.org>
27967
27968         Prefer document->addConsoleMessage to document->domWindow->console->addMessage.
27969         https://bugs.webkit.org/show_bug.cgi?id=100850
27970
27971         Reviewed by Adam Barth.
27972
27973         For historical reasons, a few places in WebCore talk to Console directly
27974         via 'document()->domWindow()->console()->addMessage(...)'. This is more
27975         safely wrapped by calling 'addConsoleMessage' on the Document itself.
27976
27977         No visible functionality should change; we'll simply avoid potential
27978         null dereferences in the future.
27979
27980         * html/HTMLFormElement.cpp:
27981         (WebCore::HTMLFormElement::validateInteractively):
27982         * html/canvas/WebGLRenderingContext.cpp:
27983         (WebCore):
27984         (WebCore::WebGLRenderingContext::printWarningToConsole):
27985         * loader/FrameLoader.cpp:
27986         (WebCore::FrameLoader::reportLocalLoadFailed):
27987         * loader/MixedContentChecker.cpp:
27988         (WebCore::MixedContentChecker::logWarning):
27989         * loader/appcache/ApplicationCacheGroup.cpp:
27990         (WebCore::ApplicationCacheGroup::abort):
27991         (WebCore::ApplicationCacheGroup::didReceiveResponse):
27992         (WebCore::ApplicationCacheGroup::didFinishLoading):
27993         (WebCore::ApplicationCacheGroup::didFail):
27994         (WebCore::ApplicationCacheGroup::didReceiveManifestResponse):
27995         (WebCore::ApplicationCacheGroup::didFinishLoadingManifest):
27996         (WebCore::ApplicationCacheGroup::checkIfLoadIsComplete):
27997         * loader/cache/CachedResourceLoader.cpp:
27998         (WebCore::CachedResourceLoader::printAccessDeniedMessage):
27999
28000 2012-10-31  Pavel Feldman  <pfeldman@chromium.org>
28001
28002         Web Inspector: frame chooser does not work on subsequent inspector open.
28003         https://bugs.webkit.org/show_bug.cgi?id=100771
28004
28005         Reviewed by Yury Semikhatsky.
28006
28007         - Make WorkerRuntimeAgent and PageRuntimeAgent register themselves in the instrumenting agents independently
28008         - Move pause / run worker handling from InspectorRuntimeAgent into WorkerRuntimeAgent
28009         - Remove remains of the front-end reused signal from InspectorAgent
28010         - Send execution contexts post clear window object instead of post commit load.
28011
28012         * inspector/InspectorAgent.cpp:
28013         (WebCore::InspectorAgent::InspectorAgent):
28014         (WebCore::InspectorAgent::clearFrontend):
28015         (WebCore::InspectorAgent::didCommitLoad):
28016         * inspector/InspectorAgent.h:
28017         (InspectorAgent):
28018         * inspector/InspectorInstrumentation.cpp:
28019         (WebCore):
28020         (WebCore::InspectorInstrumentation::didClearWindowObjectInWorldImpl):
28021         (WebCore::InspectorInstrumentation::willEvaluateWorkerScript):
28022         * inspector/InspectorInstrumentation.h:
28023         (InspectorInstrumentation):
28024         * inspector/InspectorPageAgent.cpp:
28025         (WebCore::InspectorPageAgent::restore):
28026         * inspector/InspectorRuntimeAgent.cpp:
28027         (WebCore::InspectorRuntimeAgent::InspectorRuntimeAgent):
28028         (WebCore::InspectorRuntimeAgent::~InspectorRuntimeAgent):
28029         (WebCore::InspectorRuntimeAgent::run):
28030         (WebCore::InspectorRuntimeAgent::setScriptDebugServer):
28031         * inspector/InspectorRuntimeAgent.h:
28032         (InspectorRuntimeAgent):
28033         * inspector/InstrumentingAgents.h:
28034         (WebCore):
28035         (WebCore::InstrumentingAgents::InstrumentingAgents):
28036         (WebCore::InstrumentingAgents::workerRuntimeAgent):
28037         (WebCore::InstrumentingAgents::setWorkerRuntimeAgent):
28038         (InstrumentingAgents):
28039         * inspector/PageRuntimeAgent.cpp:
28040         (WebCore::PageRuntimeAgent::PageRuntimeAgent):
28041         (WebCore::PageRuntimeAgent::~PageRuntimeAgent):
28042         (WebCore::PageRuntimeAgent::setFrontend):
28043         (WebCore::PageRuntimeAgent::clearFrontend):
28044         (WebCore::PageRuntimeAgent::enable):
28045         (WebCore::PageRuntimeAgent::didCreateMainWorldContext):
28046         * inspector/PageRuntimeAgent.h:
28047         (PageRuntimeAgent):
28048         * inspector/WorkerRuntimeAgent.cpp:
28049         (WebCore::WorkerRuntimeAgent::WorkerRuntimeAgent):
28050         (WebCore::WorkerRuntimeAgent::~WorkerRuntimeAgent):
28051         (WebCore::WorkerRuntimeAgent::run):
28052         (WebCore):
28053         (WebCore::WorkerRuntimeAgent::pauseWorkerContext):
28054         * inspector/WorkerRuntimeAgent.h:
28055         (WorkerRuntimeAgent):
28056
28057 2012-10-31  Kondapally Kalyan  <kalyan.kondapally@intel.com>
28058
28059         [Qt][EFL][AC][WK2]TextureMapperLayer backing store contents are drawn upside down on screen.
28060         https://bugs.webkit.org/show_bug.cgi?id=100845.
28061
28062         Reviewed by Noam Rosenthal.
28063
28064         WebGL displays the Canvas with (0,0) being the bottom left corner.
28065         In GraphicsSurface::platformPaintToTextureMapper we don't set ShouldFlipTexture
28066         flag before painting to TextureMapper.
28067         It results in backing store contents being drawn upside down on screen.
28068         This patch enables ShouldFlipTexture flag when TextureMapperLayer renders 
28069         it's backing store contents into a TextureMapper.
28070
28071         * platform/graphics/surfaces/qt/GraphicsSurfaceGLX.cpp:
28072         (WebCore::GraphicsSurface::platformPaintToTextureMapper):
28073
28074 2012-10-31  Noam Rosenthal  <noam.rosenthal@nokia.com>
28075
28076         [Texmap] Enable filter animations in GraphicsLayerAnimation
28077         https://bugs.webkit.org/show_bug.cgi?id=100318
28078
28079         Reviewed by Kenneth Rohde Christiansen.
28080
28081         Use the same method of animating filters in WebCore to animate filters for TextureMapper.
28082         Added the appropriate methods to GraphicsLayerAnimation and TextureMapperLayer.
28083
28084         Tested by LayoutTests/css3/filters/filter-animation-hw.html and other tests.
28085
28086         * platform/graphics/GraphicsLayerAnimation.cpp:
28087         (WebCore):
28088         (WebCore::blendFunc):
28089         (WebCore::applyFilterAnimation):
28090         (WebCore::GraphicsLayerAnimation::applyInternal):
28091         * platform/graphics/GraphicsLayerAnimation.h:
28092         (Client):
28093         * platform/graphics/texmap/TextureMapperLayer.cpp:
28094         (WebCore::TextureMapperLayer::intermediateSurfaceRect):
28095         (WebCore::TextureMapperLayer::shouldPaintToIntermediateSurface):
28096         (WebCore::TextureMapperLayer::paintRecursive):
28097         (WebCore::TextureMapperLayer::syncAnimations):
28098         * platform/graphics/texmap/TextureMapperLayer.h:
28099         (TextureMapperLayer):
28100         (WebCore::TextureMapperLayer::setFilters):
28101         (WebCore::TextureMapperLayer::setAnimatedFilters):
28102
28103 2012-10-31  Adam Barth  <abarth@webkit.org>
28104
28105         [V8] Garbage collection should use opaque roots rather than implicit references
28106         https://bugs.webkit.org/show_bug.cgi?id=100707
28107
28108         Reviewed by Kentaro Hara.
28109
28110         This patch replaces visitDOMWrapper with opaqueRootForGC. The
28111         former used to inform V8 of implicit relationships between wrapper
28112         objects on a per-wrapper basis. That meant that we needed to know which
28113         DOMDataStore a given wrapper was in during garbage collection.
28114
28115         After this patch, we now use object groups rather than implicit
28116         references to inform V8 of these relationships. That has two benefits:
28117
28118         1) We no longer need to know which DOMDataStore a wrapper belongs
28119            because we don't need to find the exact source wrapper for the
28120            implicit connection.
28121
28122         2) We can now handle more complicated implicit relationships, for
28123            example when some of the intervening objects haven't had their
28124            JavaScript wrappers created yet.
28125
28126         This patch also unlocks to paths of future development:
28127         A) Fixing the remaining failures in fast/dom/gc-9.html
28128         B) Enumerating DOM wrappers entirely from V8 rather than from the
28129            DOMWrapperMaps (so that we can move more object towards using
28130            IntrusiveDOMWrapperMaps, which aren't enumerable from WebCore).
28131
28132         * bindings/scripts/CodeGeneratorV8.pm:
28133         (NeedsCustomOpaqueRootForGC):
28134         (GenerateOpaqueRootForGC):
28135         (GenerateHeader):
28136         (GenerateImplementation):
28137         * bindings/v8/V8GCController.cpp:
28138         (ImplicitConnection):
28139         (WebCore::ImplicitConnection::ImplicitConnection):
28140         (WebCore::ImplicitConnection::root):
28141         (WebCore::ImplicitConnection::wrapper):
28142         (WebCore):
28143         (WebCore::operator<):
28144         (WrapperGrouper):
28145         (WebCore::WrapperGrouper::WrapperGrouper):
28146         (WebCore::WrapperGrouper::addToGroup):
28147         (WebCore::WrapperGrouper::keepAlive):
28148         (WebCore::WrapperGrouper::apply):
28149         (WebCore::ObjectVisitor::ObjectVisitor):
28150         (WebCore::ObjectVisitor::visitDOMWrapper):
28151         (ObjectVisitor):
28152         (WebCore::V8GCController::opaqueRootForGC):
28153         (WebCore::NodeVisitor::NodeVisitor):
28154         (WebCore::NodeVisitor::visitNodeWrapper):
28155         (NodeVisitor):
28156         (WebCore::V8GCController::majorGCPrologue):
28157         * bindings/v8/V8GCController.h:
28158         (WebCore):
28159         (V8GCController):
28160         * bindings/v8/WrapperTypeInfo.h:
28161         (WebCore):
28162         (WebCore::WrapperTypeInfo::opaqueRootForGC):
28163         (WrapperTypeInfo):
28164         * bindings/v8/custom/V8NodeListCustom.cpp:
28165         (WebCore::V8NodeList::opaqueRootForGC):
28166         * bindings/v8/custom/V8SpeechRecognitionResultCustom.cpp:
28167         (WebCore::V8SpeechRecognitionResult::opaqueRootForGC):
28168
28169 2012-10-31  Alexei Filippov  <alph@chromium.org>
28170
28171         Web Inspector: Add total node to native memory snapshot tree
28172         https://bugs.webkit.org/show_bug.cgi?id=100843
28173
28174         Reviewed by Yury Semikhatsky.
28175
28176         * inspector/front-end/NativeMemorySnapshotView.js:
28177         (WebInspector.NativeSnapshotDataGrid):
28178         (WebInspector.NativeSnapshotNode):
28179         (WebInspector.MemoryBlockViewProperties._initialize):
28180
28181 2012-10-31  Arpita Bahuguna  <arpitabahuguna@gmail.com>
28182
28183         Table with percentage column widths doesn't scale to fill the entire width of a table containing it
28184         https://bugs.webkit.org/show_bug.cgi?id=11645
28185
28186         Reviewed by Julien Chaffraix.
28187
28188         When the inner (or nested) table has auto width and column(s) with
28189         percent width, we should scale our column(s) to the width of the
28190         containing table (unless it has auto width).
28191
28192         Test: fast/table/scale-nested-percent-width-cols.html
28193
28194         * rendering/AutoTableLayout.cpp:
28195         (WebCore::shouldScaleColumns):
28196         If the containing table width was of percent type, we were disallowing
28197         our inner or nested table's column from scaling to the size of the parent
28198         table. We should prohibit the scaling of the nested table columns only
28199         if the parent table has auto width.
28200
28201 2012-10-31  Ian Vollick  <vollick@chromium.org>
28202
28203         Add support for text-based repaint testing
28204         https://bugs.webkit.org/show_bug.cgi?id=100584
28205
28206         Reviewed by Simon Fraser.
28207
28208         Allows tracked repaint rects to be dumped as text.
28209
28210         The following layout tests have been converted:
28211           fast/repaint/layer-full-repaint.html
28212           fast/repaint/overflow-flipped-writing-mode-table.html
28213
28214         * WebCore.exp.in:
28215           Exports for:
28216             FrameView::setTracksRepaints(bool)
28217             Frame::trackedRepaintRectsAsText() const
28218         * page/Frame.cpp:
28219         (WebCore::Frame::trackedRepaintRectsAsText):
28220           Returns a string containing information on all tracked repaint rects.
28221         * page/FrameView.cpp:
28222         (WebCore::FrameView::setTracksRepaints):
28223           Rather than calling m_trackedRepaintRects.clear() directly, I've
28224           called resetTrackedRepaints(). This will allow us to do more
28225           sophisticated resetting when we start tracking repaint rects for
28226           composited layers.
28227         (WebCore::FrameView::trackedRepaintRectsAsText):
28228           Provides the string returned by Frame::trackedRepaintRectsAsText.
28229         * testing/Internals.cpp:
28230         (WebCore::Internals::repaintRectsAsText):
28231           Returns Frame::trackedRepaintRectsAsText.
28232         (WebCore):
28233         (WebCore::Internals::startTrackingRepaints):
28234           Calls FrameView::setTracksRepaints(true)
28235         (WebCore::Internals::stopTrackingRepaints):
28236           Calls FrameView::setTracksRepaints(false)
28237         * testing/Internals.h:
28238         * testing/Internals.idl:
28239           Declarations for:
28240             repaintRectsAsText
28241             startTrackingRepaints
28242             stopTrackingRepaints
28243
28244 2012-10-31  Yury Semikhatsky  <yurys@chromium.org>
28245
28246         Web Inspector: page crash when pausing in dedicated worker
28247         https://bugs.webkit.org/show_bug.cgi?id=100837
28248
28249         Reviewed by Pavel Feldman.
28250
28251         Pass debugger agent to InjectedScriptHost::init in case of workers.
28252
28253         Test: inspector-protocol/debugger-pause-dedicated-worker.html
28254
28255         * inspector/WorkerInspectorController.cpp:
28256         (WebCore::WorkerInspectorController::WorkerInspectorController):
28257
28258 2012-10-31  Zoltan Nyul  <zoltan.nyul@intel.com>
28259
28260         perspective-origin should ignore values with more then two lengths and use the default values
28261         https://bugs.webkit.org/show_bug.cgi?id=100835
28262
28263         Reviewed by Kenneth Rohde Christiansen.
28264
28265         Perspective-origin should ignore values with more then two lengths
28266         (http://www.w3.org/TR/css3-transforms/#perspective-origin) and use
28267         the default values instead of parsing it as an unlimited-length list,
28268         of which all but the first two values are ignored. This makes perspective-origin 
28269         behave similar to transform-origin which uses default value in this case,
28270         as well as firefox does the same.
28271
28272         Test: transforms/2d/computed-style-origin.html
28273
28274         * css/CSSParser.cpp:
28275         (WebCore::CSSParser::parsePerspectiveOrigin):
28276
28277 2012-10-31  Sheriff Bot  <webkit.review.bot@gmail.com>
28278
28279         Unreviewed, rolling out r133016.
28280         http://trac.webkit.org/changeset/133016
28281         https://bugs.webkit.org/show_bug.cgi?id=100856
28282
28283         broke compile-webkit on several bots (Requested by podivilov
28284         on #webkit).
28285
28286         * CMakeLists.txt:
28287         * GNUmakefile.list.am:
28288         * Target.pri:
28289         * WebCore.gypi:
28290         * WebCore.vcproj/WebCore.vcproj:
28291         * WebCore.xcodeproj/project.pbxproj:
28292         * dom/DeviceOrientationClient.h:
28293         (DeviceOrientationClient):
28294         * dom/DeviceOrientationController.cpp:
28295         (WebCore::DeviceOrientationController::DeviceOrientationController):
28296         (WebCore):
28297         (WebCore::DeviceOrientationController::~DeviceOrientationController):
28298         (WebCore::DeviceOrientationController::timerFired):
28299         (WebCore::DeviceOrientationController::addListener):
28300         (WebCore::DeviceOrientationController::removeListener):
28301         (WebCore::DeviceOrientationController::removeAllListeners):
28302         (WebCore::DeviceOrientationController::suspendEventsForAllListeners):
28303         (WebCore::DeviceOrientationController::resumeEventsForAllListeners):
28304         (WebCore::DeviceOrientationController::didChangeDeviceOrientation):
28305         (WebCore::DeviceOrientationController::supplementName):
28306         * dom/DeviceOrientationController.h:
28307         (WebCore):
28308         (DeviceOrientationController):
28309         (WebCore::DeviceOrientationController::isActive):
28310         (WebCore::DeviceOrientationController::client):
28311         (WebCore::DeviceOrientationController::from):
28312         * dom/Document.cpp:
28313         (WebCore::Document::suspendActiveDOMObjects):
28314         (WebCore::Document::resumeActiveDOMObjects):
28315         * loader/EmptyClients.h:
28316         (WebCore::EmptyDeviceOrientationClient::startUpdating):
28317         (WebCore::EmptyDeviceOrientationClient::stopUpdating):
28318         * page/DOMWindow.cpp:
28319         (WebCore::DOMWindow::addEventListener):
28320         (WebCore::DOMWindow::removeEventListener):
28321         (WebCore::DOMWindow::removeAllEventListeners):
28322         * page/DeviceClient.h: Removed.
28323         * page/DeviceController.cpp: Removed.
28324         * page/DeviceController.h: Removed.
28325
28326 2012-10-31  Antti Koivisto  <antti@apple.com>
28327
28328         Remove stray calls to mutableAttributeData()
28329         https://bugs.webkit.org/show_bug.cgi?id=100849
28330
28331         Reviewed by Andreas Kling.
28332
28333         Changing the cached class attribute value does not require mutable attribute data.
28334
28335         * dom/Element.cpp:
28336         (WebCore::Element::classAttributeChanged):
28337         * dom/ElementAttributeData.h:
28338         (WebCore::ElementAttributeData::clearClass):
28339         
28340             Make const like setClass().
28341
28342 2012-10-31  Mike West  <mkwst@chromium.org>
28343
28344         X-Frame-Options console message should be associated with a request.
28345         https://bugs.webkit.org/show_bug.cgi?id=100735
28346
28347         Reviewed by Pavel Feldman.
28348
28349         In 99941, we added the possibility to tie console messages to requests,
28350         which enables automatic generation of stack traces, line numbers, etc.
28351         making the error simpler to diagnose for web developers. This patch
28352         uses the piping laid in that patch to improve the console message
28353         generated when a document is blocked by X-Frame-Options.
28354
28355         No new tests; the functionality is covered by changes to existing tests.
28356
28357         * dom/Document.cpp:
28358         (WebCore::Document::processHttpEquiv):
28359             Grab the request identifier from the currently active DocumentLoader
28360             and pass it into the console message.
28361         * loader/MainResourceLoader.cpp:
28362         (WebCore::MainResourceLoader::didReceiveResponse):
28363             Grab the request identifier from the MainResourceLoader, and pass it
28364             into the console message.
28365
28366 2012-10-31  Sheriff Bot  <webkit.review.bot@gmail.com>
28367
28368         Unreviewed, rolling out r133015.
28369         http://trac.webkit.org/changeset/133015
28370         https://bugs.webkit.org/show_bug.cgi?id=100847
28371
28372         broke Apple Win Debug compilation (Requested by podivilov on
28373         #webkit).
28374
28375         * inspector/InspectorAgent.cpp:
28376         (WebCore::InspectorAgent::InspectorAgent):
28377         (WebCore::InspectorAgent::clearFrontend):
28378         (WebCore::InspectorAgent::didCommitLoad):
28379         * inspector/InspectorAgent.h:
28380         (WebCore::InspectorAgent::didCommitLoadFired):
28381         (InspectorAgent):
28382         * inspector/InspectorInstrumentation.cpp:
28383         (WebCore):
28384         (WebCore::InspectorInstrumentation::didClearWindowObjectInWorldImpl):
28385         (WebCore::InspectorInstrumentation::willEvaluateWorkerScript):
28386         (WebCore::InspectorInstrumentation::runtimeAgentEnabled):
28387         * inspector/InspectorInstrumentation.h:
28388         (InspectorInstrumentation):
28389         * inspector/InspectorPageAgent.cpp:
28390         (WebCore::InspectorPageAgent::restore):
28391         * inspector/InspectorRuntimeAgent.cpp:
28392         (WebCore::InspectorRuntimeAgent::InspectorRuntimeAgent):
28393         (WebCore::InspectorRuntimeAgent::~InspectorRuntimeAgent):
28394         (WebCore::InspectorRuntimeAgent::run):
28395         (WebCore):
28396         (WebCore::InspectorRuntimeAgent::pauseWorkerContext):
28397         * inspector/InspectorRuntimeAgent.h:
28398         (InspectorRuntimeAgent):
28399         * inspector/InstrumentingAgents.h:
28400         (WebCore):
28401         (WebCore::InstrumentingAgents::InstrumentingAgents):
28402         (WebCore::InstrumentingAgents::inspectorRuntimeAgent):
28403         (WebCore::InstrumentingAgents::setInspectorRuntimeAgent):
28404         (InstrumentingAgents):
28405         * inspector/PageRuntimeAgent.cpp:
28406         (WebCore::PageRuntimeAgent::PageRuntimeAgent):
28407         (WebCore::PageRuntimeAgent::~PageRuntimeAgent):
28408         (WebCore::PageRuntimeAgent::setFrontend):
28409         (WebCore::PageRuntimeAgent::clearFrontend):
28410         (WebCore::PageRuntimeAgent::enable):
28411         (WebCore::PageRuntimeAgent::didClearWindowObject):
28412         * inspector/PageRuntimeAgent.h:
28413         (PageRuntimeAgent):
28414         * inspector/WorkerRuntimeAgent.cpp:
28415         (WebCore::WorkerRuntimeAgent::WorkerRuntimeAgent):
28416         (WebCore::WorkerRuntimeAgent::~WorkerRuntimeAgent):
28417         * inspector/WorkerRuntimeAgent.h:
28418         (WorkerRuntimeAgent):
28419
28420 2012-10-31  Kihong Kwon  <kihong.kwon@samsung.com>
28421
28422         Add DeviceController base-class to remove duplication of DeviceXXXControler
28423         https://bugs.webkit.org/show_bug.cgi?id=96894
28424
28425         Reviewed by Hajime Morita.
28426
28427         Add DeviceController which is extracted from DeviceOrientationController to remove duplication.
28428         And soon-to-be-added DeviceMotionController and ProximityController.
28429
28430         Covered by existing tests.
28431
28432         * CMakeLists.txt:
28433         * GNUmakefile.list.am:
28434         * Target.pri:
28435         * WebCore.gypi:
28436         * WebCore.vcproj/WebCore.vcproj:
28437         * WebCore.xcodeproj/project.pbxproj:
28438         * dom/DeviceOrientationClient.h:
28439         * dom/DeviceOrientationController.cpp:
28440         Remove member functions to move to DeviceController.
28441         - addListener(), removeListener(), removeAllListeners(), isActive()
28442         (WebCore::DeviceOrientationController::DeviceOrientationController):
28443         (WebCore::DeviceOrientationController::didChangeDeviceOrientation):
28444         (WebCore::DeviceOrientationController::client):
28445         (WebCore::DeviceOrientationController::hasLastData):
28446         (WebCore::DeviceOrientationController::getLastEvent):
28447         (WebCore::DeviceOrientationController::from):
28448         (WebCore):
28449         * dom/DeviceOrientationController.h:
28450         (WebCore):
28451         (WebCore::DeviceOrientationController::~DeviceOrientationController):
28452         (DeviceOrientationController):
28453         * dom/Document.cpp:
28454         Remove suspendEventsForAllListeners() and resumeEventsForAllListeners() function calls.
28455         These calls can be made by checking activeDOMObjectsAreSuspended() and activeDOMObjectsAreStopped() before dispatchEvent.
28456         (WebCore::Document::suspendActiveDOMObjects):
28457         (WebCore::Document::resumeActiveDOMObjects):
28458         * loader/EmptyClients.h:
28459         (EmptyDeviceClient):
28460         (WebCore::EmptyDeviceClient::startUpdating):
28461         (WebCore::EmptyDeviceClient::stopUpdating):
28462         (WebCore):
28463         * page/DOMWindow.cpp:
28464         (WebCore::DOMWindow::addEventListener):
28465         (WebCore::DOMWindow::removeEventListener):
28466         (WebCore::DOMWindow::removeAllEventListeners):
28467         * page/DeviceClient.h: Added.
28468         (WebCore):
28469         (DeviceClient):
28470         (WebCore::DeviceClient::~DeviceClient):
28471         * page/DeviceController.cpp: Added.
28472         DeviceController has extracted functions from DeviceOrientationController and DeviceMotionController.
28473         - addDeviceEventListener(), removeDeviceEventlistener(), removeAllDeviceEventListeners(), dispatchDeviceEvent()
28474         All kind of device event controller which has DeviceClient can be inherited from DeviceController.
28475         (WebCore):
28476         (WebCore::DeviceController::DeviceController):
28477         (WebCore::DeviceController::addDeviceEventListener):
28478         (WebCore::DeviceController::removeDeviceEventListener):
28479         (WebCore::DeviceController::removeAllDeviceEventListeners):
28480         (WebCore::DeviceController::dispatchDeviceEvent):
28481         (WebCore::DeviceController::fireDeviceEvent):
28482         * page/DeviceController.h: Added.
28483         (WebCore):
28484         (DeviceController):
28485         (WebCore::DeviceController::~DeviceController):
28486         (WebCore::DeviceController::isActive):
28487         (WebCore::DeviceController::client):
28488         (WebCore::DeviceController::hasLastData):
28489         (WebCore::DeviceController::getLastEvent):
28490
28491 2012-10-31  Pavel Feldman  <pfeldman@chromium.org>
28492
28493         Web Inspector: frame chooser does not work on subsequent inspector open.
28494         https://bugs.webkit.org/show_bug.cgi?id=100771
28495
28496         Reviewed by Yury Semikhatsky.
28497
28498         - Make WorkerRuntimeAgent and PageRuntimeAgent register themselves in the instrumenting agents independently
28499         - Move pause / run worker handling from InspectorRuntimeAgent into WorkerRuntimeAgent
28500         - Remove remains of the front-end reused signal from InspectorAgent
28501         - Send execution contexts post clear window object instead of post commit load.
28502
28503         * inspector/InspectorAgent.cpp:
28504         (WebCore::InspectorAgent::InspectorAgent):
28505         (WebCore::InspectorAgent::clearFrontend):
28506         (WebCore::InspectorAgent::didCommitLoad):
28507         * inspector/InspectorAgent.h:
28508         (InspectorAgent):
28509         * inspector/InspectorInstrumentation.cpp:
28510         (WebCore):
28511         (WebCore::InspectorInstrumentation::didClearWindowObjectInWorldImpl):
28512         (WebCore::InspectorInstrumentation::willEvaluateWorkerScript):
28513         * inspector/InspectorInstrumentation.h:
28514         (InspectorInstrumentation):
28515         * inspector/InspectorPageAgent.cpp:
28516         (WebCore::InspectorPageAgent::restore):
28517         * inspector/InspectorRuntimeAgent.cpp:
28518         (WebCore::InspectorRuntimeAgent::InspectorRuntimeAgent):
28519         (WebCore::InspectorRuntimeAgent::~InspectorRuntimeAgent):
28520         (WebCore::InspectorRuntimeAgent::run):
28521         (WebCore::InspectorRuntimeAgent::setScriptDebugServer):
28522         * inspector/InspectorRuntimeAgent.h:
28523         (InspectorRuntimeAgent):
28524         * inspector/InstrumentingAgents.h:
28525         (WebCore):
28526         (WebCore::InstrumentingAgents::InstrumentingAgents):
28527         (WebCore::InstrumentingAgents::workerRuntimeAgent):
28528         (WebCore::InstrumentingAgents::setWorkerRuntimeAgent):
28529         (InstrumentingAgents):
28530         * inspector/PageRuntimeAgent.cpp:
28531         (WebCore::PageRuntimeAgent::PageRuntimeAgent):
28532         (WebCore::PageRuntimeAgent::~PageRuntimeAgent):
28533         (WebCore::PageRuntimeAgent::setFrontend):
28534         (WebCore::PageRuntimeAgent::clearFrontend):
28535         (WebCore::PageRuntimeAgent::enable):
28536         (WebCore::PageRuntimeAgent::didCreateMainWorldContext):
28537         * inspector/PageRuntimeAgent.h:
28538         (PageRuntimeAgent):
28539         * inspector/WorkerRuntimeAgent.cpp:
28540         (WebCore::WorkerRuntimeAgent::WorkerRuntimeAgent):
28541         (WebCore::WorkerRuntimeAgent::~WorkerRuntimeAgent):
28542         (WebCore::WorkerRuntimeAgent::run):
28543         (WebCore):
28544         (WebCore::WorkerRuntimeAgent::pauseWorkerContext):
28545         * inspector/WorkerRuntimeAgent.h:
28546         (WorkerRuntimeAgent):
28547
28548 2012-10-31  Keishi Hattori  <keishi@webkit.org>
28549
28550         Calendar picker can flicker when opened from the suggestion picker
28551         https://bugs.webkit.org/show_bug.cgi?id=100816
28552
28553         Reviewed by Kent Tamura.
28554
28555         Calendar picker was opening before the hiding completed.
28556
28557         No new tests. Added test to date-suggestion-picker-key-operations.html.
28558
28559         * Resources/pagepopups/pickerCommon.js: Added didHide event.
28560         * Resources/pagepopups/suggestionPicker.js:
28561         (SuggestionPicker.prototype.selectEntry): Use didHide event so we don't open the calendar picker prematurely.
28562         (SuggestionPicker._handleWindowDidHide): When the window finished hiding, open the calendar picker.
28563
28564 2012-10-31  Allan Sandfeld Jensen  <allan.jensen@digia.com>
28565
28566         Reset binding test result after r132973
28567         https://bugs.webkit.org/show_bug.cgi?id=99178
28568
28569         Unreviewed gardening.
28570
28571         * bindings/scripts/test/JS/JSFloat64Array.cpp:
28572         (WebCore::getJSFloat64ArrayConstructorTable):
28573         (WebCore::JSFloat64ArrayConstructor::getOwnPropertySlot):
28574         (WebCore::JSFloat64ArrayConstructor::getOwnPropertyDescriptor):
28575
28576 2012-10-31  Mike West  <mkwst@chromium.org>
28577
28578         Script run from an isolated world should bypass a page's CSP.
28579         https://bugs.webkit.org/show_bug.cgi?id=97398
28580
28581         Reviewed by Adam Barth.
28582
28583         A page's Content Security Policy currently applies to all resources
28584         loaded, regardless of their source. That generally makes sense, but
28585         proves problematic when considering script run from an isolated
28586         world (Chrome extensions, for instance). These scripts should be allowed
28587         to inject resources into a page's DOM without eiher being restricted by
28588         the page's active CSP, or generating violation reports that spam the
28589         page owner.
28590
28591         Ideally, the isolated world could define its own Content Security Policy
28592         which should be applied to resources it loads. For the moment, this
28593         patch accepts a String that we can parse later on, but only uses it in
28594         a binary way. If a non-empty policy String is provided, we bypass the
28595         main world's CSP checks. If an empty String is provided, the main
28596         world's CSP checks remain active.
28597
28598         Test: http/tests/security/isolatedWorld/bypass-main-world-csp.html
28599
28600         (WebCore::isolatedWorldContentSecurityPolicies):
28601         (WebCore::DOMWrapperWorld::isolatedWorldHasContentSecurityPolicy):
28602         (WebCore::DOMWrapperWorld::setIsolatedWorldContentSecurityPolicy):
28603         (WebCore::DOMWrapperWorld::clearIsolatedWorldContentSecurityPolicy):
28604         * bindings/v8/DOMWrapperWorld.h:
28605         (DOMWrapperWorld):
28606             Mechanisms for setting and clearing Content Security Policies from
28607             isolated worlds; implemented in the same HashMappy way as
28608             SecurityOrigin.
28609         * bindings/v8/ScriptController.cpp:
28610         (WebCore::ScriptController::shouldBypassMainWorldContentSecurityPolicy):
28611         (WebCore):
28612         * bindings/v8/ScriptController.h:
28613         (ScriptController):
28614             Adding a method to ScriptController to query the state of the
28615             current world's Content Security Policy. We'll drop this once we can
28616             apply a policy more directly, but for the moment it's necessary for
28617             the next bit.
28618         * loader/cache/CachedResourceLoader.cpp:
28619         (WebCore::CachedResourceLoader::canRequest):
28620             Check the new ScriptController method, and only perform CSP checks
28621             when loading resources if we're executing code from the main world,
28622             or an isolated world with no Content Security Policy set.
28623
28624 2012-10-31  Tim Horton  <timothy_horton@apple.com>
28625
28626         Unreviewed, attempt to fix the release build by not exporting symbols that aren't defined there.
28627
28628         * WebCore.exp.in:
28629
28630 2012-10-31  Yury Semikhatsky  <yurys@chromium.org>
28631
28632         Memory instrumentation: do not report memory occupied by objects referenced using client interfaces
28633         https://bugs.webkit.org/show_bug.cgi?id=100824
28634
28635         Reviewed by Alexander Pavlov.
28636
28637         In many classes we have pointer to a client object. These references should be
28638         reported as weak pointers and the client's memory usage should be reported when
28639         the client is reached from its instrumented owner where we know exact type of
28640         the client. Otherwise we would need to add reportMemoryUsage to all client
28641         interfaces which places additional burden on the client implementers and blurs
28642         the instrumentation boundaries.
28643
28644         * inspector/InspectorController.cpp:
28645         (WebCore::InspectorController::reportMemoryUsage):
28646         * inspector/InspectorDebuggerAgent.cpp:
28647         (WebCore::InspectorDebuggerAgent::reportMemoryUsage):
28648         * inspector/InspectorMemoryAgent.cpp:
28649         (WebCore::InspectorMemoryAgent::reportMemoryUsage):
28650         * inspector/InspectorOverlay.cpp:
28651         (WebCore::InspectorOverlay::reportMemoryUsage):
28652         * inspector/InspectorResourceAgent.cpp:
28653         (WebCore::InspectorResourceAgent::reportMemoryUsage):
28654         * page/Page.cpp:
28655         (WebCore::Page::reportMemoryUsage):
28656
28657 2012-10-31  Tim Horton  <timothy_horton@apple.com>
28658
28659         Unreviewed, attempt to fix the build by exporting NoExceptionAssertionChecker symbols.
28660
28661         * WebCore.exp.in:
28662
28663 2012-10-31  Eric Seidel  <eric@webkit.org>
28664
28665         Add non-virtual firstChild/lastChild overrides to RenderBlock and RenderTableCol for a > 30% speedup on table from bug 100304
28666         https://bugs.webkit.org/show_bug.cgi?id=100306
28667
28668         Reviewed by Abhishek Arya.
28669
28670         Presumably this is a speedup for other rendering tests as well.  We use firstChild() all over
28671         the rendering code w/o considering that it makes a virtual function call.
28672         Originally I just fixed the one callsite which was showing up on the sample to
28673         use children()->firstChild() directly.  However after further thought, this
28674         broader solution seemed the better way to go.  The first patch was a 15% win for
28675         this large table, this broader solution was a 30%!? win.
28676
28677         The elephant in the room for this table is that we're walking the whole table
28678         for many nextColumn calls.  But that I will solve in a later bug.
28679
28680         * rendering/RenderBlock.h:
28681         (WebCore::RenderBlock::firstChild):
28682         (WebCore::RenderBlock::lastChild):
28683         (RenderBlock):
28684         * rendering/RenderObject.h:
28685         (RenderObject):
28686         * rendering/RenderTableCol.h:
28687         (WebCore::RenderTableCol::firstChild):
28688         (WebCore::RenderTableCol::lastChild):
28689         (RenderTableCol):
28690
28691 2012-10-31  Philippe Normand  <pnormand@igalia.com>
28692
28693         Spatialized panning renders incorrectly with USE_CONCATENATED_IMPULSE_RESPONSES
28694         https://bugs.webkit.org/show_bug.cgi?id=98294
28695
28696         Reviewed by Chris Rogers.
28697
28698         Regenerated the concatenated impulse responses file with
28699         elevations in increasing order per azimuth. In the previous
28700         version of this file the elevations for 315, 330 and 345 were
28701         concatenated at the wrong indexes.
28702
28703         * platform/audio/resources/Composite.wav:
28704
28705 2012-10-31  Tim Horton  <timothy_horton@apple.com>
28706
28707         Full-page PDFPlugin should support inline form editing
28708         https://bugs.webkit.org/show_bug.cgi?id=100155
28709
28710         Reviewed by Dan Bernstein.
28711
28712         Add form controls corresponding to Text and Choice PDF annotations,
28713         allowing for single- and multi-line text input, and <option>-like input.
28714
28715         Currently, forms are only implemented for full-page PDF documents.
28716
28717         * WebCore.exp.in: Expose a variety of additional WebCore functionality to WebKit2.
28718         * WebCore.xcodeproj/project.pbxproj: Expose some more WebCore headers as private headers for use in WebKit2.
28719
28720 2012-10-30  Eric Seidel  <eric@webkit.org>
28721
28722         RoboHornetPro spends ~25% of total test time in WebCore::Region::Shape methods
28723         https://bugs.webkit.org/show_bug.cgi?id=98800
28724
28725         Reviewed by Sam Weinig.
28726
28727         This patch brings our total RoboHornetPro time from 8.2 seconds to 5.3 seconds!
28728
28729         OverlapMap previously used Regions to track Layer bounds rects. 
28730         Unfortunately unioning a list of Regions is O(N^2)
28731         where N is the number of Shapes (in this case rects).
28732         This is because Shapes are immutable, so to union two shapes, we copy
28733         both Shapes' segment/span vectors into a single new Shape.
28734         Thus if we union a set of M Regions, each with 1 Shape, we'll end up copying
28735         the segments of the first Shape N times before we have the final Region/Shape
28736         and the second shape N-1 times. The sum of 1 to N is (N*(N-1))/2 aka order N^2.
28737         Fixing the N^2 algorithm covered by https://bugs.webkit.org/show_bug.cgi?id=100814.
28738
28739         For now we just avoid this O(N^2) by moving away from Region, since OverlapMap
28740         doesn't need it. We just collect a vector of the layer rects and hit-test that directly.
28741         Hit-testing the rect list is O(N), just like hit-testing the same information in a Region would be.
28742
28743         Even better for us is that the OverlapMap is never even used in RoboHornetPro.
28744         We just collect these rects to end up doing nothing with them. :)
28745
28746         * rendering/RenderLayerCompositor.cpp:
28747         (WebCore::RenderLayerCompositor::OverlapMap::add):
28748         (WebCore::RenderLayerCompositor::OverlapMap::overlapsLayers):
28749         (WebCore::RenderLayerCompositor::OverlapMap::pushCompositingContainer):
28750         (WebCore::RenderLayerCompositor::OverlapMap::popCompositingContainer):
28751         (RenderLayerCompositor::OverlapMap):
28752
28753 2012-10-30  Beth Dakin  <bdakin@apple.com>
28754
28755         https://bugs.webkit.org/show_bug.cgi?id=100813
28756         ScrollingCoordinatorMac::stateNodeForID() should return a 
28757         ScrollingStateNode* instead of a ScrollingStateScrollingNode*
28758
28759         Reviewed by Sam Weinig.
28760
28761         ScrollingCoordinatorMac::stateNodeForID() should return a 
28762         ScrollingStateNode* instead of a ScrollingStateScrollingNode* so that 
28763         it can be used for other types of nodes once we add them.
28764         * page/scrolling/mac/ScrollingCoordinatorMac.h:
28765         (ScrollingCoordinatorMac):
28766         * page/scrolling/mac/ScrollingCoordinatorMac.mm:
28767         (WebCore::ScrollingCoordinatorMac::frameViewLayoutUpdated):
28768         (WebCore::ScrollingCoordinatorMac::recomputeWheelEventHandlerCountForFrameView):
28769         (WebCore::ScrollingCoordinatorMac::requestScrollPositionUpdate):
28770         (WebCore::ScrollingCoordinatorMac::stateNodeForID):
28771
28772 2012-10-30  Keishi Hattori  <keishi@webkit.org>
28773
28774         F4 inside <input type=time> should not open calendar picker
28775         https://bugs.webkit.org/show_bug.cgi?id=100730
28776
28777         Reviewed by Kent Tamura.
28778
28779         We lacked the check to see if the picker indicator is visible.
28780
28781         Test: fast/forms/time-multiple-fields/time-multiple-fields-open-picker-key-bindings.html
28782
28783         * html/BaseMultipleFieldsDateAndTimeInputType.cpp:
28784         (WebCore::BaseMultipleFieldsDateAndTimeInputType::handleKeydownEvent): Check if picker indicator is visible.
28785
28786 2012-10-30  Kent Tamura  <tkent@chromium.org>
28787
28788         Delaying 'change' and 'input' event dispatching during HTMLInputElement::setValue
28789         https://bugs.webkit.org/show_bug.cgi?id=100772
28790
28791         Reviewed by Abhishek Arya.
28792
28793         'change' and 'input' events are asynchronous and not
28794         cancelable. We can use ScopedEvent.
28795
28796         Test: fast/forms/range/range-type-change-onchange.html
28797
28798         * dom/Node.cpp:
28799         (WebCore::Node::dispatchChangeEvent): Use dispatchScopedEvent.
28800         (WebCore::Node::dispatchInputEvent): Ditto.
28801         * html/HTMLInputElement.cpp:
28802         (WebCore::HTMLInputElement::setValue):
28803         Make a scope to delay event dispatching.
28804         * html/RangeInputType.cpp:
28805         (WebCore::RangeInputType::handleKeydownEvent): Ditto.
28806
28807 2012-10-30  Simon Fraser  <simon.fraser@apple.com>
28808
28809         Fix issues with filters and reflections
28810         https://bugs.webkit.org/show_bug.cgi?id=100308
28811
28812         Reviewed by Dirk Schulze.
28813
28814         Composited filters were being applied to the wrong CALayer. The code used
28815         primaryLayer(), which may be a CATransformLayer (which filters cannot apply
28816         to; doing so causes console spew), or a CALayer that is used for reflection
28817         flattening, which again is the wrong layer.
28818
28819         Test: css3/filters/composited-reflected.html
28820
28821         * platform/graphics/ca/GraphicsLayerCA.cpp:
28822         (WebCore::GraphicsLayerCA::updateContentsVisibility): Replace .get()-> with ->
28823         (WebCore::GraphicsLayerCA::updateContentsOpaque): Ditto.
28824         (WebCore::GraphicsLayerCA::updateFilters): Apply filters to m_layer, not primaryLayer(),
28825         and use m_layerClones, not primaryLayerClones().
28826         (WebCore::GraphicsLayerCA::cloneLayer): When cloning a layer for reflections, copy filters
28827         from the source layer.
28828         * platform/graphics/ca/PlatformCALayer.h:
28829         (PlatformCALayer): Add a member function to copy filters from a supplied layer.
28830         * platform/graphics/ca/mac/PlatformCALayerMac.mm:
28831         (PlatformCALayer::setFilters): Remove blank line.
28832         (PlatformCALayer::copyFiltersFrom): Copy CAFIlters from the given layer.
28833         * platform/graphics/ca/win/PlatformCALayerWin.cpp:
28834         (PlatformCALayer::copyFiltersFrom): Stub; no filters on Windows.
28835
28836 2012-10-30  Beth Dakin  <bdakin@apple.com>
28837
28838         https://bugs.webkit.org/show_bug.cgi?id=100809
28839         ScrollingCoordinator::attachToStateTree() should take an enum 
28840         indicating what type of node to create
28841
28842         Reviewed by Simon Fraser.
28843
28844         New enum ScrollingNodeType will soon have other values, such as 
28845         FixedNode.
28846         * page/scrolling/ScrollingCoordinator.h:
28847         (WebCore::ScrollingCoordinator::attachToStateTree):
28848         * page/scrolling/mac/ScrollingCoordinatorMac.h:
28849         (ScrollingCoordinatorMac):
28850
28851         This patch generalizes this function so that it can be used to create 
28852         different types of nodes and so that it is actually ready to create 
28853         child nodes. 
28854         * page/scrolling/mac/ScrollingCoordinatorMac.mm:
28855         (WebCore::ScrollingCoordinatorMac::attachToStateTree):
28856
28857         The rootStateNode is always a ScrollingNode.
28858         (WebCore::ScrollingCoordinatorMac::ensureRootStateNodeForFrameView):
28859
28860         For the time being, always create a ScrollingNode.
28861         * rendering/RenderLayerBacking.cpp:
28862         (WebCore::RenderLayerBacking::attachToScrollingCoordinator):
28863
28864 2012-10-30  Gregg Tavares  <gman@google.com>
28865
28866         Set the initial scissor box for WebGL
28867         https://bugs.webkit.org/show_bug.cgi?id=100804
28868
28869         Reviewed by Kenneth Russell.
28870
28871         The initial scissor box needs to be set for WebGL
28872
28873         No new tests as no new functionality.
28874
28875         * html/canvas/WebGLRenderingContext.cpp:
28876         (WebCore):
28877         (WebCore::WebGLRenderingContext::initializeNewContext):
28878
28879 2012-10-30  Charles Wei  <charles.wei@torchmobile.com.cn>
28880
28881         [BlackBerry] PurgeCredential should also purge the persisted credential store
28882         https://bugs.webkit.org/show_bug.cgi?id=100744
28883
28884         Reviewed by George Staikos.
28885
28886         When challenged by the server, we will check the credential in-memory and from the persistent storage.
28887         So the invalid credentials should also be purged from the persistent credential storage; Otherwise,
28888         it will be sent to the server next time been challenged, instead of prompting the user.
28889
28890         * platform/network/blackberry/NetworkJob.cpp:
28891         (WebCore::NetworkJob::purgeCredentials):
28892
28893 2012-10-30  Allan Sandfeld Jensen  <allan.jensen@digia.com>
28894
28895         DOM URL is flaky when workers are used
28896         https://bugs.webkit.org/show_bug.cgi?id=99178
28897
28898         Reviewed by Geoffrey Garen.
28899
28900         Extend JSNoStaticTables to also avoid direct access of static tables in constructor objects.
28901
28902         Test: fast/workers/worker-domurl.html
28903
28904         * bindings/scripts/CodeGeneratorJS.pm:
28905         (constructorHashTableAccessor):
28906         (GenerateConstructorDefinition):
28907
28908 2012-10-30  Jae Hyun Park  <jae.park@company100.net>
28909
28910         Coordinated Graphics: Remove unused methods
28911         https://bugs.webkit.org/show_bug.cgi?id=100799
28912
28913         Reviewed by Noam Rosenthal.
28914
28915         Currently, there are several unused methods regarding Coordinated
28916         Graphics. This patch removes those unused methods.
28917
28918         No new tests (No change in behavior).
28919
28920         * platform/graphics/texmap/TextureMapperGL.cpp:
28921
28922 2012-10-30  Hans Muller  <hmuller@adobe.com>
28923
28924         [CSS Exclusions] Multiple segment polygon layout does not get all segments
28925         https://bugs.webkit.org/show_bug.cgi?id=100039
28926
28927         Reviewed by Dirk Schulze.
28928
28929         Corrected the algorithm for computing included polygon intervals for rectilinear polygons,
28930         and polygons with horizontal edges in general.
28931
28932         Tests: fast/exclusions/shape-inside/shape-inside-rectilinear-polygon-001.html
28933                fast/exclusions/shape-inside/shape-inside-rectilinear-polygon-002.html
28934
28935         * rendering/ExclusionPolygon.cpp: Removed some internal dead code related to the no-longer-used sortedEdgesMinY Vector.
28936         (WebCore::ExclusionPolygon::ExclusionPolygon): Initialize new ExclusionPolygonEdge edgeIndex field.
28937         (WebCore::getVertexIntersectionVertices): Return the previous, next, and target vertex indices for a vertex intersection.
28938         (WebCore::ExclusionPolygon::computeXIntersections): Refactored the core of this method to improve handling of horizontal edges.
28939         (WebCore::ExclusionPolygon::computeEdgeIntersections): Ignore zero-width edges.
28940         * rendering/ExclusionPolygon.h: Removed the rightVertexY() method, since it's no longer used.
28941         (WebCore::ExclusionPolygon::edgeAt): New method.
28942         (WebCore::ExclusionPolygon::numberOfEdges): New method.
28943         (ExclusionPolygon): Added support for retrieving edges.
28944         (WebCore::ExclusionPolygonEdge::vertex1): Use vertex1Index.
28945         (WebCore::ExclusionPolygonEdge::vertex2): Use vertex2Index.
28946         (ExclusionPolygonEdge): Renamed index1, index2 fields to vertex1Index, vertex2Index.
28947         (WebCore::ExclusionPolygonEdge::previousEdge): New method.
28948         (WebCore::ExclusionPolygonEdge::nextEdge): New method.
28949
28950 2012-10-30  Chris Evans  <cevans@google.com>
28951
28952         Improve performance of MaskPtr.
28953         https://bugs.webkit.org/show_bug.cgi?id=100790
28954
28955         Reviewed by Eric Seidel.
28956
28957         Calculate the mask once, and store it as a fast-access member variable.
28958         Also avoid unneccessary integer width expansion in index calculation.
28959         Parser/tiny-innerHTML.html has a high stddev.
28960         Best result I've seen pre-patch is 5.70 runs/s.
28961         Best result I've seen post-patch is 5.72 runs/s, but this is not statistically significant.
28962         MaskPtr is still showing as ~2% in the profile, so we're not sure we trust the profile symbolization at this time.
28963         MaskPtr is now reduced to a single inline instruction (was: 4) so this seems like a strict improvement worth landing.
28964
28965         * rendering/RenderArena.cpp:
28966         (MaskPtr): Use a passed-in mask for the mask operation.
28967         (WebCore::RenderArena::RenderArena): Calculate the mask and store it.
28968         (WebCore::RenderArena::allocate):
28969         (WebCore::RenderArena::free): Use stored mask and avoid unneccessary casts.
28970         * rendering/RenderArena.h:
28971         (RenderArena): Store the freelist mask as a member variable.
28972
28973 2012-10-30  Kenichi Ishibashi  <bashi@chromium.org>
28974
28975         local(Helvetica) in src descriptor prevent fallback
28976         https://bugs.webkit.org/show_bug.cgi?id=100446
28977
28978         Reviewed by Dan Bernstein.
28979
28980         FontCache::getCachedFontData() has a mechanism that aliases a few pairs
28981         of font family names, so that if the family name specified in the font-family
28982         property is not available on the system, but the its alias is available,
28983         it will be used instead. This is appropriate for the font-family property,
28984         but not for font family names specified in the local() function of the src
28985         descriptor in a @font-face rule.
28986
28987         This patch disables the mechanism while checking src descriptor of @font-face.
28988
28989         No new tests. It's difficult to test the change because 'Helvetica' can
28990         be mapped any other font. For example, chromium DRT uses FontConfig to
28991         map Helvetica to Times New Roman. Other ports may map Helvetica to other
28992         fonts. We can't define the expected result.
28993
28994         * css/CSSFontFaceSource.cpp:
28995         (WebCore::CSSFontFaceSource::getFontData):
28996         Call fontCache()->getCachedFontData() with checkingAlternateName = true.
28997         This disables aliasing font family names in FontCache.
28998
28999 2012-10-30  Beth Dakin  <bdakin@apple.com>
29000
29001         https://bugs.webkit.org/show_bug.cgi?id=100796
29002         Should add FixedPositionViewportConstraints to ScrollingConstraints.h
29003
29004         Reviewed by Simon Fraser.
29005
29006         ScrollingConstraints.h currently contains an abstract class called 
29007         ViewportConstraints that is intended to encapsulate data and logic 
29008         required to reposition elements whose layout depends on the viewport 
29009         rect (positions fixed and sticky), when scrolling and zooming. 
29010         However, at this time there is only a subclass for sticky. We should 
29011         add a sub-class for fixed. This is required to get pages with fixed 
29012         position elements scrolling on the scrolling thread.
29013
29014         * page/scrolling/ScrollingConstraints.cpp:
29015         (WebCore::FixedPositionViewportConstraints::layerPositionForViewportRect):
29016         (WebCore):
29017         * page/scrolling/ScrollingConstraints.h:
29018         (WebCore::ViewportConstraints::ViewportConstraints):
29019         (ViewportConstraints):
29020         (WebCore::ViewportConstraints::setAnchorEdges):
29021         (FixedPositionViewportConstraints):
29022         (WebCore::FixedPositionViewportConstraints::FixedPositionViewportConstraints):
29023         (WebCore::FixedPositionViewportConstraints::viewportRectAtLastLayout):
29024         (WebCore::FixedPositionViewportConstraints::setViewportRectAtLastLayout):
29025         (WebCore::FixedPositionViewportConstraints::layerPositionAtLastLayout):
29026         (WebCore::FixedPositionViewportConstraints::setLayerPositionAtLastLayout):
29027         (WebCore):
29028
29029 2012-10-30  Tiancheng Jiang  <tijiang@rim.com>
29030
29031         [BlackBerry] update form theme for BB10.
29032         https://bugs.webkit.org/show_bug.cgi?id=100760
29033
29034         Reviewed by Rob Buis.
29035
29036         RIM PR:222126
29037         Introduce slide function to paint new theme for the form controls.
29038
29039         No new tests.
29040
29041         * css/themeBlackBerry.css:
29042         (select):
29043         * platform/blackberry/RenderThemeBlackBerry.cpp:
29044         (WebCore):
29045         (WebCore::drawControl): Added.
29046         (WebCore::drawThreeSlice): Added.
29047         (WebCore::drawNineSlice): Added.
29048         (WebCore::loadImage): Added.
29049         (WebCore::RenderThemeBlackBerry::systemFont): Modified.
29050         (WebCore::RenderThemeBlackBerry::paintTextFieldOrTextAreaOrSearchField): Modified.
29051         (WebCore::RenderThemeBlackBerry::paintCheckbox): Modified.
29052         (WebCore::RenderThemeBlackBerry::paintRadio): Modified.
29053         (WebCore::RenderThemeBlackBerry::paintButton): Modified.
29054         (WebCore::RenderThemeBlackBerry::paintMenuList): Modified.
29055         (WebCore::RenderThemeBlackBerry::paintMenuListButton): Modified.
29056         (WebCore::RenderThemeBlackBerry::paintSliderTrackRect): Modified.
29057         (WebCore::RenderThemeBlackBerry::paintSliderThumb): Modified.
29058         * platform/blackberry/RenderThemeBlackBerry.h:
29059         (RenderThemeBlackBerry):
29060
29061 2012-10-30  Rick Byers  <rbyers@chromium.org>
29062
29063         cssText for cursor property doesn't include hotspot
29064         https://bugs.webkit.org/show_bug.cgi?id=99530
29065
29066         Reviewed by Darin Adler.
29067
29068         Implement customCssText in CSSCursorImageValue to include the hotspot when present.
29069         Also explicitly track whether or not a hotspot was supplied in the parser,
29070         while still using the existing convention of (-1,-1) to denote no hotspot
29071         in the rest of the system.
29072
29073         Test: fast/css/cursor-parsing.html
29074
29075         * css/CSSCursorImageValue.cpp:
29076         (WebCore::CSSCursorImageValue::customCssText):
29077         * css/CSSCursorImageValue.h:
29078         (CSSCursorImageValue):
29079
29080 2012-10-30  Kenneth Russell  <kbr@google.com>
29081
29082         Temporarily restrict use of ImageBufferSkia::copyToPlatformTexture until bugs resolved
29083         https://bugs.webkit.org/show_bug.cgi?id=100714
29084
29085         Reviewed by Stephen White.
29086
29087         For the moment, only use ImageBuffer::copyToPlatformTexture when
29088         copying to RGBA/UNSIGNED_BYTE textures, and document restriction
29089         in header. Restriction will be lifted once the implementations
29090         (currently only Chromium has one) have been fixed; see bug 100715.
29091
29092         No new tests; manually ran WebGL conformance test
29093         tex-image-and-sub-image-2d-with-canvas-rgba5551.html on NVIDIA
29094         hardware on Mac OS.
29095
29096         * html/canvas/WebGLRenderingContext.cpp:
29097         (WebCore):
29098         (WebCore::WebGLRenderingContext::texImage2D):
29099         * platform/graphics/ImageBuffer.h:
29100         (ImageBuffer):
29101
29102 2012-10-30  Nico Weber  <thakis@chromium.org>
29103
29104         Fix potential overflow in jpeg exif reader. Found by aedla@google.com.
29105         https://bugs.webkit.org/show_bug.cgi?id=100320
29106
29107         Reviewed by Eric Seidel.
29108
29109         Adding more than 1 element past an array is undefined, so don't do it.
29110
29111         No test, since in practice ifd will just overflow and `end - ifd` will
29112         become much larget than 2 and the `if (end - ifd < 2)` a few lines
29113         down will catch that case.
29114
29115         * platform/image-decoders/jpeg/JPEGImageDecoder.cpp:
29116         (WebCore::readImageOrientation):
29117
29118 2012-10-26  Alexandru Chiculita  <achicu@adobe.com>
29119
29120         [CSS Shaders] Add the ValidatedCustomFilterOperation class
29121         https://bugs.webkit.org/show_bug.cgi?id=100558
29122
29123         Reviewed by Dean Jackson.
29124
29125         Added the ValidatedCustomFilterOperation class. The file is now almost empty,
29126         but more is going to come in the following patches.
29127
29128         Added the a filter operation type VALIDATED_CUSTOM and updated the compositors to ignore
29129         such operations for now.
29130         
29131         No new tests, there is no new functionality yet.
29132
29133         * CMakeLists.txt:
29134         * GNUmakefile.list.am:
29135         * Target.pri:
29136         * WebCore.gypi:
29137         * WebCore.vcproj/WebCore.vcproj:
29138         * WebCore.xcodeproj/project.pbxproj:
29139         * css/CSSComputedStyleDeclaration.cpp:
29140         (WebCore::CSSComputedStyleDeclaration::valueForFilter):
29141         * css/StyleResolver.cpp:
29142         (WebCore::StyleResolver::createFilterOperations):
29143         * platform/graphics/blackberry/LayerWebKitThread.cpp:
29144         (WebCore::LayerWebKitThread::filtersCanBeComposited):
29145         * platform/graphics/ca/mac/PlatformCALayerMac.mm:
29146         (PlatformCALayer::filtersCanBeComposited):
29147         * platform/graphics/chromium/GraphicsLayerChromium.cpp:
29148         (WebCore::copyWebCoreFilterOperationsToWebFilterOperations):
29149         * platform/graphics/filters/FilterOperation.h:
29150         * platform/graphics/filters/FilterOperations.cpp:
29151         (WebCore::FilterOperations::hasCustomFilter):
29152         (WebCore::FilterOperations::getOutsets):
29153         * platform/graphics/filters/ValidatedCustomFilterOperation.cpp: Added.
29154         (WebCore):
29155         (WebCore::ValidatedCustomFilterOperation::ValidatedCustomFilterOperation):
29156         (WebCore::ValidatedCustomFilterOperation::~ValidatedCustomFilterOperation):
29157         (WebCore::ValidatedCustomFilterOperation::blend):
29158         * platform/graphics/filters/ValidatedCustomFilterOperation.h: Added.
29159         (WebCore):
29160         (ValidatedCustomFilterOperation):
29161         (WebCore::ValidatedCustomFilterOperation::create):
29162         (WebCore::ValidatedCustomFilterOperation::affectsOpacity):
29163         (WebCore::ValidatedCustomFilterOperation::movesPixels):
29164         (WebCore::ValidatedCustomFilterOperation::blendingNeedsRendererSize):
29165         (WebCore::ValidatedCustomFilterOperation::operator==):
29166
29167 2012-10-30  Joseph Pecoraro  <pecoraro@apple.com>
29168
29169         [Mac] Sync up FeatureDefine Configuration Files
29170         https://bugs.webkit.org/show_bug.cgi?id=100171
29171
29172         Reviewed by David Kilzer.
29173
29174         Follow up to better coordinate with iOS feature defines. Make:
29175
29176           - ENABLE_FILTERS always on
29177           - ENABLE_INPUT_* iphonesimulator values point to the iphoneos values
29178
29179         * Configurations/FeatureDefines.xcconfig:
29180
29181 2012-10-30  Joseph Pecoraro  <pecoraro@apple.com>
29182
29183         [Mac] Sync up FeatureDefine Configuration Files
29184         https://bugs.webkit.org/show_bug.cgi?id=100171
29185
29186         Reviewed by David Kilzer.
29187
29188         Ensure an identical FeatureDefine files across all projects. Changes:
29189
29190           - ENABLE_CSS_BOX_DECORATION_BREAK should be in all
29191           - ENABLE_PDFKIT_PLUGIN should be in all
29192           - ENABLE_RESOLUTION_MEDIA_QUERY should be in all
29193           - ENABLE_ENCRYPTED_MEDIA should be in all
29194           - ENABLE_HIDDEN_PAGE_DOM_TIMER_THROTTLING with corrected value
29195           - Some alphabetical ordering cleanup
29196
29197         * Configurations/FeatureDefines.xcconfig:
29198
29199 2012-10-30  Andreas Kling  <kling@webkit.org>
29200
29201         StylePropertySet: Convert more logic to use PropertyReference.
29202         <http://webkit.org/b/100779>
29203
29204         Reviewed by Antti Koivisto.
29205
29206         Rewrite more of the StylePropertySet logic to use PropertyReference instead of CSSProperty.
29207         This is cleanup before changing the internal storage layout of immutable StylePropertySet.
29208
29209         * css/CSSComputedStyleDeclaration.cpp:
29210         (WebCore::CSSComputedStyleDeclaration::cssPropertyMatches):
29211         * css/CSSComputedStyleDeclaration.h:
29212         * css/CSSStyleDeclaration.h:
29213         * css/PropertySetCSSStyleDeclaration.cpp:
29214         (WebCore::PropertySetCSSStyleDeclaration::cssPropertyMatches):
29215         * css/PropertySetCSSStyleDeclaration.h:
29216         * css/StylePropertySet.cpp:
29217         (WebCore::StylePropertySet::appendFontLonghandValueIfExplicit):
29218         (WebCore::StylePropertySet::fontValue):
29219         (WebCore::StylePropertySet::get4Values):
29220         (WebCore::StylePropertySet::getPropertyCSSValue):
29221         (WebCore::StylePropertySet::removeProperty):
29222         (WebCore::StylePropertySet::propertyIsImportant):
29223         (WebCore::StylePropertySet::getPropertyShorthand):
29224         (WebCore::StylePropertySet::isPropertyImplicit):
29225         (WebCore::StylePropertySet::setProperty):
29226         (WebCore::StylePropertySet::mergeAndOverrideOnConflict):
29227         (WebCore::StylePropertySet::findPropertyIndex):
29228         (WebCore::StylePropertySet::findMutableCSSPropertyWithID):
29229         (WebCore::StylePropertySet::propertyMatches):
29230         (WebCore::StylePropertySet::removeEquivalentProperties):
29231         * css/StylePropertySet.h:
29232         (WebCore::StylePropertySet::PropertyReference::shorthandID):
29233         (WebCore::StylePropertySet::PropertyReference::isImplicit):
29234
29235 2012-10-30  Eric Seidel  <eric@webkit.org>
29236
29237         Teach RenderTable how to use Vector::insert and Vector::append instead of its own custom memmove code
29238         https://bugs.webkit.org/show_bug.cgi?id=100428
29239
29240         Reviewed by Julien Chaffraix.
29241
29242         RenderTable is now like all other clients of Vector instead of being
29243         needlessly different. :)
29244
29245         insert, append and grow all use the same expandCapacity logic under the covers
29246         and Vector::insert uses TypeOperations::moveOverlapping which should use memmove
29247         by default for unknown types.
29248
29249         * rendering/RenderTable.cpp:
29250         (WebCore::RenderTable::splitColumn):
29251         (WebCore::RenderTable::appendColumn):
29252         * rendering/RenderTable.h:
29253         (WebCore::RenderTable::ColumnStruct::ColumnStruct):
29254
29255 2012-10-30  Vincent Scheib  <scheib@chromium.org>
29256
29257         Unreviewed, rolling out r132927.
29258         http://trac.webkit.org/changeset/132927
29259         https://bugs.webkit.org/show_bug.cgi?id=100558
29260
29261         Compile error on Chromium builders
29262
29263         * CMakeLists.txt:
29264         * GNUmakefile.list.am:
29265         * Target.pri:
29266         * WebCore.gypi:
29267         * WebCore.vcproj/WebCore.vcproj:
29268         * WebCore.xcodeproj/project.pbxproj:
29269         * css/CSSComputedStyleDeclaration.cpp:
29270         (WebCore::CSSComputedStyleDeclaration::valueForFilter):
29271         * css/StyleResolver.cpp:
29272         (WebCore::StyleResolver::createFilterOperations):
29273         * platform/graphics/blackberry/LayerWebKitThread.cpp:
29274         (WebCore::LayerWebKitThread::filtersCanBeComposited):
29275         * platform/graphics/ca/mac/PlatformCALayerMac.mm:
29276         (PlatformCALayer::filtersCanBeComposited):
29277         * platform/graphics/chromium/GraphicsLayerChromium.cpp:
29278         (WebCore::copyWebCoreFilterOperationsToWebFilterOperations):
29279         * platform/graphics/filters/FilterOperation.h:
29280         * platform/graphics/filters/FilterOperations.cpp:
29281         (WebCore::FilterOperations::hasCustomFilter):
29282         (WebCore::FilterOperations::getOutsets):
29283         * platform/graphics/filters/ValidatedCustomFilterOperation.cpp: Removed.
29284         * platform/graphics/filters/ValidatedCustomFilterOperation.h: Removed.
29285
29286 2012-10-30  W. James MacLean  <wjmaclean@chromium.org>
29287
29288         [chromium] Restrict link highlights to targets that display a hand-cursor
29289         https://bugs.webkit.org/show_bug.cgi?id=99862
29290
29291         Reviewed by James Robinson.
29292
29293         To avoid applying highlights to inappropriate targets, such as large divs with
29294         click handlers installed, test candidate targets and only highlight them if they
29295         would normally display a hand cursor on mouse over. This is a heuristic, but has
29296         been tested and found effective in practice.
29297
29298         This CL refactors EventHandler::selectCursor() to make the logic for determining
29299         if CURSOR_AUTO should resolve to CURSOR_POINTER available outside EventHandler.
29300
29301         Relies on existing cursor tests.
29302
29303         * page/EventHandler.cpp:
29304         (WebCore::EventHandler::useHandCursor):
29305         (WebCore):
29306         (WebCore::EventHandler::selectCursor):
29307         * page/EventHandler.h:
29308         (EventHandler):
29309
29310 2012-10-30  Rob Buis  <rbuis@rim.com>
29311
29312         [BlackBerry] Remove CookieDatabaseBackingStore::upgradeTableIfNeeded
29313         https://bugs.webkit.org/show_bug.cgi?id=100783
29314
29315         Reviewed by Yong Li.
29316
29317         PR 220513.
29318
29319         Remove CookieDatabaseBackingStore::upgradeTableIfNeeded, it was needed for backwards
29320         compatibility, but not needed anymore.
29321
29322         * platform/blackberry/CookieDatabaseBackingStore/CookieDatabaseBackingStore.cpp:
29323         (WebCore::CookieDatabaseBackingStore::invokeOpen):
29324         * platform/blackberry/CookieDatabaseBackingStore/CookieDatabaseBackingStore.h:
29325
29326 2012-10-30  Glenn Adams  <glenn@skynav.com>
29327
29328         [CSS] Expand -webkit-line-break value space
29329         https://bugs.webkit.org/show_bug.cgi?id=100739
29330
29331         Reviewed by Eric Seidel.
29332
29333         (1) expand -webkit-line-break to include new values defined by CSS3 Text [1], i.e., 'auto', 'strict', 'loose';
29334         (2) change default (initial) value for -webkit-line-break to 'auto' to match CSS3 Text;
29335         (3) rename enum EKHTMLLineBreak to LineBreak, renaming enum values appropriately;
29336
29337         New tests to be added when functionality of new values is added. No rendering behavior change at this time.
29338         Only externally visible change is default (initial) value returning 'auto' rather than 'normal', for which 3 existing
29339         tests that were sensitive to this value have been updated. Note that until the functionality for the new values is
29340         added, any actual use of the new values will be treated as the same as the pre-existing 'normal' value, i.e., the
29341         default semantics.
29342
29343         * css/CSSComputedStyleDeclaration.cpp:
29344         (WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue):
29345         Update from kthmlLineBreak() to lineBreak().
29346
29347         * css/CSSParser.cpp:
29348         (WebCore::isValidKeywordPropertyAndValue):
29349         Update values supported for CSSPropertyWebkitLineBreak.
29350
29351         * css/CSSPrimitiveValueMappings.h:
29352         (WebCore::CSSPrimitiveValue::CSSPrimitiveValue):
29353         (WebCore::CSSPrimitiveValue::operator LineBreak):
29354         Update LineBreak enumeration values (previously EKHTMLLineBreak).
29355
29356         * css/CSSValueKeywords.in:
29357         Update keywords used for -webkit-line-break.
29358
29359         * css/StyleBuilder.cpp:
29360         (WebCore::StyleBuilder::StyleBuilder):
29361         Update names for line break style getter/setter.
29362
29363         * rendering/style/RenderStyle.cpp:
29364         (WebCore::RenderStyle::diff):
29365         Remove khtml prefix on line break related state.
29366
29367         * rendering/style/RenderStyle.h:
29368         Remove khtml prefix on line break related methods. Update to redefined LineBreak
29369         enumeration type.
29370
29371         * rendering/style/RenderStyleConstants.h:
29372         Rename EKHTMLLineBreak enumeration to LineBreak.
29373         Redefine LineBreak enumeration to include new CSS3 Text modes (auto, loose, strict) and
29374         use better names.
29375
29376         * rendering/style/StyleRareInheritedData.cpp:
29377         (WebCore::StyleRareInheritedData::StyleRareInheritedData):
29378         (WebCore::StyleRareInheritedData::operator==):
29379         Remove khtml prefix on line break related state references.
29380
29381         * rendering/style/StyleRareInheritedData.h:
29382         (StyleRareInheritedData):
29383         Remove khtml prefix on line break related state. Widen field to 3 bits to support 8 values,
29384         of which 5 are now used.
29385
29386 2012-10-30  Antti Koivisto  <antti@apple.com>
29387
29388         Avoid unnecessary style recalcs on class attribute mutation
29389         https://bugs.webkit.org/show_bug.cgi?id=100776
29390
29391         Reviewed by Andreas Kling.
29392
29393         There is no need to invalidate element style on class attribute change if neither the added
29394         or removed classes featured in any active stylesheet.
29395
29396         * css/RuleFeature.cpp:
29397         (WebCore::RuleFeatureSet::add):
29398         (WebCore::RuleFeatureSet::clear):
29399         (WebCore::RuleFeatureSet::reportMemoryUsage):
29400         * css/RuleFeature.h:
29401         (RuleFeatureSet):
29402         * css/RuleSet.cpp:
29403         (WebCore::collectFeaturesFromSelector):
29404         
29405             Collect classes mentioned in CSS selectors the same way ids and attribute names are
29406             already collected.
29407
29408         * css/StyleResolver.cpp:
29409         (WebCore::StyleResolver::hasSelectorForClass):
29410         
29411             Add a method to test if a given class name is mentioned anywhere in stylehseets.
29412
29413         (WebCore):
29414         * css/StyleResolver.h:
29415         * css/StyleScopeResolver.h:
29416         (WebCore):
29417         * dom/Element.cpp:
29418         (WebCore::collectAddedAndRemovedClasses):
29419         (WebCore):
29420         (WebCore::Element::classAttributeChanged):
29421         
29422             Figure out which classes were added and removed. Test if they are present in any style
29423             rule and invalidate the style only if they are.
29424
29425         * dom/SpaceSplitString.cpp:
29426         (WebCore::SpaceSplitStringData::add):
29427         (WebCore::SpaceSplitStringData::remove):
29428         (WebCore::SpaceSplitString::add):
29429         (WebCore::SpaceSplitString::remove):
29430         
29431             Added bool return value to indicate if anything was actually removed. Reorganized 
29432             the code a bit to avoid unnecessary uniquing when nothing changes.
29433
29434         * dom/SpaceSplitString.h:
29435         (SpaceSplitStringData):
29436         (SpaceSplitString):
29437
29438 2012-10-30  Robert Hogan  <robert@webkit.org>
29439
29440         white-space: nowrap inline element beside a floated element wraps incorrectly without trailing textnode/newline
29441         https://bugs.webkit.org/show_bug.cgi?id=29648
29442
29443         Reviewed by Levi Weintraub.
29444
29445         A no-wrap child on a line inside an autowrap container should move to the next line if a float doesn't allow
29446         it to fit. This will happen if there is trailing space after the no-wrap child but not if it's the last renderer
29447         on the line. This is because nextLineBreak() is only interested in the white-space style of the current renderer 
29448         and the renderer's next sibling (if there is one) when deciding whether it needs to fit below any floats that
29449         push it beyond the edge of the container. There isn't any situation in which a no-wrap child shouldn't move 
29450         below a float on an auto-wrap line though, so this check always needs to respect the container's white-space style too.
29451
29452         Test: fast/text/whitespace/no-wrap-child-in-auto-wrap-container.html
29453
29454         * rendering/RenderBlockLineLayout.cpp:
29455         (WebCore::RenderBlock::LineBreaker::nextLineBreak):
29456
29457 2012-10-26  Alexandru Chiculita  <achicu@adobe.com>
29458
29459         [CSS Shaders] Add the ValidatedCustomFilterOperation class
29460         https://bugs.webkit.org/show_bug.cgi?id=100558
29461
29462         Reviewed by Dean Jackson.
29463
29464         Added the ValidatedCustomFilterOperation class. The file is now almost empty,
29465         but more is going to come in the following patches.
29466
29467         Added the a filter operation type VALIDATED_CUSTOM and updated the compositors to ignore
29468         such operations for now.
29469         
29470         No new tests, there is no new functionality yet.
29471
29472         * CMakeLists.txt:
29473         * GNUmakefile.list.am:
29474         * Target.pri:
29475         * WebCore.gypi:
29476         * WebCore.vcproj/WebCore.vcproj:
29477         * WebCore.xcodeproj/project.pbxproj:
29478         * css/CSSComputedStyleDeclaration.cpp:
29479         (WebCore::CSSComputedStyleDeclaration::valueForFilter):
29480         * css/StyleResolver.cpp:
29481         (WebCore::StyleResolver::createFilterOperations):
29482         * platform/graphics/blackberry/LayerWebKitThread.cpp:
29483         (WebCore::LayerWebKitThread::filtersCanBeComposited):
29484         * platform/graphics/ca/mac/PlatformCALayerMac.mm:
29485         (PlatformCALayer::filtersCanBeComposited):
29486         * platform/graphics/chromium/GraphicsLayerChromium.cpp:
29487         (WebCore::copyWebCoreFilterOperationsToWebFilterOperations):
29488         * platform/graphics/filters/FilterOperation.h:
29489         * platform/graphics/filters/FilterOperations.cpp:
29490         (WebCore::FilterOperations::hasCustomFilter):
29491         (WebCore::FilterOperations::getOutsets):
29492         * platform/graphics/filters/ValidatedCustomFilterOperation.cpp: Added.
29493         (WebCore):
29494         (WebCore::ValidatedCustomFilterOperation::ValidatedCustomFilterOperation):
29495         (WebCore::ValidatedCustomFilterOperation::~ValidatedCustomFilterOperation):
29496         (WebCore::ValidatedCustomFilterOperation::blend):
29497         * platform/graphics/filters/ValidatedCustomFilterOperation.h: Added.
29498         (WebCore):
29499         (ValidatedCustomFilterOperation):
29500         (WebCore::ValidatedCustomFilterOperation::create):
29501         (WebCore::ValidatedCustomFilterOperation::affectsOpacity):
29502         (WebCore::ValidatedCustomFilterOperation::movesPixels):
29503         (WebCore::ValidatedCustomFilterOperation::blendingNeedsRendererSize):
29504         (WebCore::ValidatedCustomFilterOperation::operator==):
29505
29506 2012-10-29  Anders Carlsson  <andersca@apple.com>
29507
29508         Build WebKit as C++11 on Mac
29509         https://bugs.webkit.org/show_bug.cgi?id=100720
29510
29511         Reviewed by Daniel Bates.
29512
29513         * Configurations/Base.xcconfig:
29514         Add CLANG_CXX_LANGUAGE_STANDARD=gnu++0x.
29515
29516         * platform/graphics/FontPlatformData.h:
29517         (WebCore::FontPlatformData::hash):
29518         * platform/graphics/cg/GraphicsContextCG.cpp:
29519         (WebCore::GraphicsContext::drawLine):
29520         (WebCore::GraphicsContext::strokeArc):
29521         * platform/graphics/filters/CustomFilterProgramInfo.cpp:
29522         (WebCore::CustomFilterProgramInfo::hash):
29523         (WebCore::ProtectionSpaceHash::hash):
29524         * platform/network/cf/FormDataStreamCFNet.cpp:
29525         (WebCore::setHTTPBody):
29526         Add static_casts to prevent implicit type conversions in non-constant initializer lists.
29527         
29528         * platform/mac/ClipboardMac.mm:
29529         (WebCore::ClipboardMac::createDragImage):
29530         * platform/mac/CursorMac.mm:
29531         (WebCore::createNamedCursor):
29532         * platform/mac/ScrollViewMac.mm:
29533         (WebCore::ScrollView::platformSetContentsSize):
29534         Use NSMakePoint to prevent implicit type conversions in non-constant initializer lists.
29535
29536         * platform/mac/CookieJar.mm:
29537         (WebCore::cookiesEnabled):
29538         * platform/network/mac/ResourceHandleMac.mm:
29539         (WebCore::shouldRelaxThirdPartyCookiePolicy):
29540         Add explicit casts to NSHTTPCookieAcceptPolicy.
29541
29542         * platform/mac/WebCoreNSURLExtras.h:
29543         * platform/mac/WebCoreNSURLExtras.mm:
29544         (WebCore::URLByTruncatingOneCharacterBeforeComponent):
29545         (WebCore::dataForURLComponentType):
29546         * platform/network/ProtectionSpaceHash.h:
29547         Use CFIndex instead of CFURLComponentType, the enum can be mangled differently in some cases, and these
29548         functions are exported from WebCore.
29549
29550 2012-10-30  Dan Bernstein  <mitz@apple.com>
29551
29552         <rdar://problem/12395187> REGRESSION (r121299): OS X Text Replacement forces cursor out of text fields
29553         https://bugs.webkit.org/show_bug.cgi?id=100768
29554
29555         Reviewed by Anders Carlsson.
29556
29557         r121299 introduced code to restore the paragraph range by saving its length and start offset
29558         relative to the document. The latter was obtained by iterating over the range starting at
29559         the beginning of the document and ending at the beginning of the paragraph range. However,
29560         such a range could not be constructed if the paragraph range was contained in a shadow DOM,
29561         since a range must have both its endpoints within the same shadow tree (or not in a shadow
29562         tree).
29563
29564         Test: platform/mac/editing/spelling/autocorrection-in-textarea.html
29565
29566         * editing/Editor.cpp:
29567         (WebCore::Editor::markAndReplaceFor): Changed paragraphStartIndex to be relative to the
29568         root container of paragraphRange, using the same logic used by
29569         checkForDifferentRootContainer() in Range.cpp.
29570
29571 2012-10-30  Dan Carney  <dcarney@google.com>
29572
29573         Remove ensureAuxiliaryContext
29574         https://bugs.webkit.org/show_bug.cgi?id=99975
29575
29576         Reviewed by Adam Barth.
29577
29578         Removed auxilliaryContext as use if it is problematic in IDB.
29579
29580         No new tests. No change in functionality.
29581
29582         * Modules/indexeddb/IDBCursor.cpp:
29583         (WebCore::IDBCursor::update):
29584         (WebCore::IDBCursor::setValueReady):
29585         * Modules/indexeddb/IDBCursor.h:
29586         (IDBCursor):
29587         * Modules/indexeddb/IDBObjectStore.cpp:
29588         (WebCore::generateIndexKeysForValue):
29589         (WebCore::IDBObjectStore::put):
29590         (WebCore):
29591         * Modules/indexeddb/IDBRequest.cpp:
29592         (WebCore::IDBRequest::onSuccess):
29593         (WebCore::IDBRequest::dispatchEvent):
29594         * bindings/v8/IDBBindingUtilities.cpp:
29595         (WebCore::createIDBKeyFromScriptValueAndKeyPath):
29596         (WebCore::deserializeIDBValue):
29597         (WebCore::injectIDBKeyIntoScriptValue):
29598         * bindings/v8/IDBBindingUtilities.h:
29599         (WebCore):
29600         * bindings/v8/V8Binding.cpp:
29601         (WebCore::toV8Context):
29602         (WebCore):
29603         * bindings/v8/V8Binding.h:
29604         (WebCore):
29605         * bindings/v8/V8PerIsolateData.cpp:
29606         (WebCore):
29607         * bindings/v8/V8PerIsolateData.h:
29608
29609 2012-10-30  Huang Dongsung  <luxtella@company100.net>
29610
29611         [CSS Shaders] Add CustomFilterRenderer to reuse this class by Accelerated Compositing.
29612         https://bugs.webkit.org/show_bug.cgi?id=98989
29613
29614         Reviewed by Dean Jackson.
29615
29616         Extract CustomFilterRenderer class from the rendering part of FECustomFilter.
29617         FECustomFilter now plays a role in extending FilterEffect and delegates
29618         rendering CSS Shaders to CustomFilterRenderer.
29619
29620         CustomFilterRenderer does not know Filter and FilterEffect. We can
29621         create a CustomFilterRenderer instance with only GraphicsContext3D and
29622         CustomFilterValidatedProgram. It means that Accelerated Compositing can
29623         create the CustomFilterRenderer instance if Accelerated Compositing has
29624         GraphicsContext3D and CustomFilterOperation, and it is already possible.
29625
29626         This patch prepares to enable CSS Shaders on Accelerated Compositing.
29627
29628         No new tests. Covered by css3/filters/custom
29629
29630         * CMakeLists.txt:
29631         * GNUmakefile.list.am:
29632         * Target.pri:
29633         * WebCore.gypi:
29634         * WebCore.vcproj/WebCore.vcproj:
29635         * WebCore.xcodeproj/project.pbxproj:
29636         * platform/graphics/filters/CustomFilterRenderer.cpp: Added.
29637         (WebCore):
29638         (WebCore::orthogonalProjectionMatrix):
29639         (WebCore::CustomFilterRenderer::create):
29640         (WebCore::CustomFilterRenderer::CustomFilterRenderer):
29641         (WebCore::CustomFilterRenderer::~CustomFilterRenderer):
29642         (WebCore::CustomFilterRenderer::premultipliedAlpha):
29643         (WebCore::CustomFilterRenderer::programNeedsInputTexture):
29644         (WebCore::CustomFilterRenderer::draw):
29645         (WebCore::CustomFilterRenderer::prepareForDrawing):
29646         (WebCore::CustomFilterRenderer::initializeCompiledProgramIfNeeded):
29647         (WebCore::CustomFilterRenderer::initializeMeshIfNeeded):
29648         (WebCore::CustomFilterRenderer::bindVertexAttribute):
29649         (WebCore::CustomFilterRenderer::unbindVertexAttribute):
29650         (WebCore::CustomFilterRenderer::bindProgramArrayParameters):
29651         (WebCore::CustomFilterRenderer::bindProgramNumberParameters):
29652         (WebCore::CustomFilterRenderer::bindProgramTransformParameter):
29653         (WebCore::CustomFilterRenderer::bindProgramParameters):
29654         (WebCore::CustomFilterRenderer::bindProgramAndBuffers):
29655         (WebCore::CustomFilterRenderer::unbindVertexAttributes):
29656         * platform/graphics/filters/CustomFilterRenderer.h: Copied from Source/WebCore/platform/graphics/filters/FECustomFilter.h.
29657         (WebCore):
29658         (CustomFilterRenderer):
29659           CustomFilterRenderer renders custom filters in GPU using a
29660           GraphicsContext3D.
29661         * platform/graphics/filters/FECustomFilter.cpp:
29662         (WebCore::FECustomFilter::FECustomFilter):
29663         (WebCore::FECustomFilter::create):
29664         (WebCore::FECustomFilter::deleteRenderBuffers):
29665         (WebCore::FECustomFilter::drawFilterMesh):
29666         (WebCore::FECustomFilter::prepareForDrawing):
29667         (WebCore::FECustomFilter::applyShader):
29668         (WebCore::FECustomFilter::resolveMultisampleBuffer):
29669         (WebCore::FECustomFilter::resizeMultisampleBuffers):
29670         (WebCore::FECustomFilter::resizeContext):
29671         * platform/graphics/filters/FECustomFilter.h:
29672         (WebCore):
29673         (FECustomFilter):
29674         * rendering/FilterEffectRenderer.cpp:
29675         (WebCore::createCustomFilterEffect):
29676
29677 2012-10-30  Mike West  <mkwst@chromium.org>
29678
29679         Web Inspector: Associate console messages with the requests that caused them.
29680         https://bugs.webkit.org/show_bug.cgi?id=99941
29681
29682         Reviewed by Pavel Feldman.
29683
29684         The inspector currently supports the concept of a request's "initiator"
29685         in order to add context to console messages that are generated in
29686         response to a specific request. The initiator is used as the message's
29687         anchor link iff a requestID is present, and no stack trace is present.
29688
29689         Currently, this functionality is only exposed to three specific
29690         callsites: 'InspectorConsoleAgent::didFinishXHRLoading',
29691         'InspectorConsoleAgent::didReceiveResponse', and
29692         'InspectorConsoleAgent::didFailLoading'. This patch adds a generic
29693         mechanism to associate requests with console messages by passing the
29694         request's identifier through 'ScriptExecutionContext::addConsoleMessage'
29695         or 'Console::addMessage' when relevant.
29696
29697         This patch should have no visible changes. It just installs some new
29698         piping, and adjusts the three methods mentioned above to use it.
29699         Existing tests shouldn't break.
29700
29701         * dom/Document.cpp:
29702         (WebCore::Document::addMessage):
29703         * dom/Document.h:
29704         (Document):
29705             Add a 'requestIdentifier' parameter (defaulting to 0), and pipe it
29706             through to Console::addMessage.
29707         * dom/ScriptExecutionContext.cpp:
29708         (WebCore::ScriptExecutionContext::addConsoleMessage):
29709         * dom/ScriptExecutionContext.h:
29710         (ScriptExecutionContext):
29711             Add a 'requestIdentifier' parameter (defaulting to 0), and pipe it
29712             through to the subclass' addMessage method.
29713         * inspector/ConsoleMessage.cpp:
29714         (WebCore::ConsoleMessage::ConsoleMessage):
29715             Accept an unsigned long instead of a string, and move the conversion
29716             from WebCore request identifiers to Inspector request identifiers
29717             into ConsoleMessage.
29718         * inspector/ConsoleMessage.h:
29719         (ConsoleMessage):
29720             Add 'requestIdentifier' (defaulting to 0) to the
29721             ConsoleMessage constructor that accepts a ScriptCallStack (it was
29722             already part of the constructor that accepted a line number).
29723         * inspector/IdentifiersFactory.cpp:
29724         (WebCore::IdentifiersFactory::requestId):
29725             If the provided request identifier is 0, return an empty string.
29726             This simplifies the logic at the callsite.
29727         * inspector/InspectorConsoleAgent.cpp:
29728         (WebCore::InspectorConsoleAgent::addMessageToConsole):
29729             Add a 'requestIdentifier' parameter (defaulting to 0), and pipe it
29730             through to the 'ConsoleMessage' constructor after converting it to
29731             an internal identifier via 'IdentifiersFactor::requestId'.
29732         (WebCore::InspectorConsoleAgent::didFinishXHRLoading):
29733         (WebCore::InspectorConsoleAgent::didReceiveResponse):
29734         (WebCore::InspectorConsoleAgent::didFailLoading):
29735             Use the new 'requestIdentifier' parameter on addMessageToConsole
29736             rather than replicating the behavior in each of these three methods.
29737         * inspector/InspectorConsoleAgent.h:
29738         (InspectorConsoleAgent):
29739             Add a 'requestIdentifier' parameter (defaulting to 0).
29740         * inspector/InspectorConsoleInstrumentation.h:
29741         (WebCore::InspectorInstrumentation::addMessageToConsole):
29742         * inspector/InspectorInstrumentation.cpp:
29743         (WebCore):
29744         (WebCore::InspectorInstrumentation::addMessageToConsoleImpl):
29745         * inspector/InspectorInstrumentation.h:
29746         (InspectorInstrumentation):
29747             Add a 'requestIdentifier' parameter (defaulting to 0), and pipe it
29748             through to lower levels of the stack.
29749         * page/Console.cpp:
29750         (WebCore::Console::addMessage):
29751         * page/Console.h:
29752         (Console):
29753             Add a 'requestIdentifier' parameter (defaulting to 0), and pipe it
29754             through to 'InspectorInstrumentation::addMessageToConsole'.
29755         * workers/WorkerContext.cpp:
29756         (WebCore::WorkerContext::addMessage):
29757         (WebCore::WorkerContext::addMessageToWorkerConsole):
29758         * workers/WorkerContext.h:
29759         (WorkerContext):
29760             Add a 'requestIdentifier' parameter (defaulting to 0), and pipe it
29761             through to 'InspectorInstrumentation::addMessageToConsole'.
29762
29763 2012-10-29  Anders Carlsson  <andersca@apple.com>
29764
29765         String::createCFString should return a RetainPtr
29766         https://bugs.webkit.org/show_bug.cgi?id=100419
29767
29768         Reviewed by Andreas Kling.
29769
29770         Update callers of String::createCFString.
29771
29772         * bridge/objc/objc_runtime.mm:
29773         (JSC::Bindings::callObjCFallbackObject):
29774         * html/HTMLMediaElement.cpp:
29775         (WebCore::createFileURLForApplicationCacheResource):
29776         * loader/archive/cf/LegacyWebArchive.cpp:
29777         (WebCore::LegacyWebArchive::createPropertyListRepresentation):
29778         * platform/LocalizedStrings.cpp:
29779         (WebCore::formatLocalizedString):
29780         (WebCore::contextMenuItemTagLookUpInDictionary):
29781         (WebCore::keygenKeychainItemName):
29782         (WebCore::imageTitle):
29783         * platform/RuntimeApplicationChecks.cpp:
29784         (WebCore::mainBundleIsEqualTo):
29785         * platform/cf/FileSystemCF.cpp:
29786         (WebCore::fileSystemRepresentation):
29787         (WebCore::pathAsURL):
29788         * platform/graphics/ca/win/PlatformCAAnimationWin.cpp:
29789         (PlatformCAAnimation::PlatformCAAnimation):
29790         * platform/graphics/ca/win/PlatformCALayerWin.cpp:
29791         (resubmitAllAnimations):
29792         (PlatformCALayer::addAnimationForKey):
29793         (PlatformCALayer::removeAnimationForKey):
29794         (PlatformCALayer::setName):
29795         * platform/graphics/ca/win/PlatformCALayerWinInternal.cpp:
29796         (PlatformCALayerWinInternal::updateTiles):
29797         * platform/graphics/cg/ImageBufferCG.cpp:
29798         (WebCore::utiFromMIMEType):
29799         * platform/graphics/cg/ImageSourceCGMac.mm:
29800         (WebCore::MIMETypeForImageSourceType):
29801         (WebCore::preferredExtensionForImageSourceType):
29802         * platform/mac/ClipboardMac.mm:
29803         (WebCore::cocoaTypeFromHTMLClipboardType):
29804         (WebCore::utiTypeFromCocoaType):
29805         * platform/mac/SSLKeyGeneratorMac.cpp:
29806         (WebCore::signedPublicKeyAndChallengeString):
29807         * platform/network/cf/AuthenticationCF.cpp:
29808         (WebCore::createCF):
29809         * platform/network/cf/CookieJarCFNet.cpp:
29810         (WebCore::setCookies):
29811         * platform/network/cf/DNSCFNet.cpp:
29812         (WebCore::DNSResolveQueue::platformResolve):
29813         * platform/network/cf/ResourceErrorCF.cpp:
29814         (WebCore::ResourceError::cfError):
29815         * platform/network/cf/ResourceHandleCFNet.cpp:
29816         (WebCore::setDefaultMIMEType):
29817         (WebCore::willSendRequest):
29818         (WebCore::ResourceHandle::didReceiveAuthenticationChallenge):
29819         (WebCore::ResourceHandle::setPrivateBrowsingEnabled):
29820         * platform/network/cf/ResourceRequestCFNet.cpp:
29821         (WebCore::setHeaderFields):
29822         (WebCore::ResourceRequest::doUpdatePlatformRequest):
29823         * platform/network/cf/ResourceResponseCFNet.cpp:
29824         (WebCore::ResourceResponse::cfURLResponse):
29825         * platform/network/cf/SocketStreamHandleCFNet.cpp:
29826         (WebCore::SocketStreamHandle::createStreams):
29827         (WebCore::SocketStreamHandle::addCONNECTCredentials):
29828         (WebCore::SocketStreamHandle::copyCFStreamDescription):
29829         * platform/network/mac/ResourceRequestMac.mm:
29830         (WebCore::ResourceRequest::doUpdatePlatformRequest):
29831         * platform/network/mac/WebCoreURLResponse.mm:
29832         (WebCore::adjustMIMETypeIfNecessary):
29833         * platform/text/cf/HyphenationCF.cpp:
29834         (WebCore::::createValueForKey):
29835         * platform/text/cf/StringCF.cpp:
29836         (WTF::String::createCFString):
29837         * platform/text/cf/StringImplCF.cpp:
29838         (WTF::StringImpl::createCFString):
29839         * platform/text/mac/StringImplMac.mm:
29840         (WTF::StringImpl::operator NSString *):
29841         * platform/text/mac/TextCodecMac.cpp:
29842         (WebCore::TextCodecMac::encode):
29843         * platform/win/SearchPopupMenuWin.cpp:
29844         (WebCore::autosaveKey):
29845         (WebCore::SearchPopupMenuWin::saveRecentSearches):
29846
29847 2012-10-30  Chris Fleizach  <cfleizach@apple.com>
29848
29849         AX: Support embedded SVG objects in AX tree
29850         https://bugs.webkit.org/show_bug.cgi?id=97571
29851
29852         Reviewed by Tim Horton.
29853
29854         This patch allows an SVG image from another resource to be hooked into the AX
29855         hierarchy. This is done by creating an AX wrapper for the root SVG that holds onto
29856         its native parent image. The SVGChromeClient is then used to connect to this SVG resource.
29857
29858         Test: accessibility/svg-remote-element.html
29859
29860         * CMakeLists.txt:
29861         * GNUmakefile.list.am:
29862         * WebCore.gypi:
29863         * WebCore.vcproj/WebCore.vcproj:
29864         * WebCore.xcodeproj/project.pbxproj:
29865         * accessibility/AXObjectCache.cpp:
29866         (WebCore::createFromRenderer):
29867         * accessibility/AccessibilityAllInOne.cpp:
29868         * accessibility/AccessibilityObject.h:
29869         (WebCore::AccessibilityObject::isAccessibilitySVGRoot):
29870         (AccessibilityObject):
29871         * accessibility/AccessibilityRenderObject.cpp:
29872         (WebCore::AccessibilityRenderObject::detach):
29873         (WebCore::AccessibilityRenderObject::offsetBoundingBoxForRemoteSVGElement):
29874         (WebCore::AccessibilityRenderObject::boundingBoxRect):
29875         (WebCore::AccessibilityRenderObject::remoteSVGElementHitTest):
29876         (WebCore::AccessibilityRenderObject::elementAccessibilityHitTest):
29877         (WebCore::AccessibilityRenderObject::determineAccessibilityRole):
29878         (WebCore::AccessibilityRenderObject::isSVGImage):
29879         (WebCore::AccessibilityRenderObject::detachRemoteSVGRoot):
29880         (WebCore::AccessibilityRenderObject::remoteSVGRootElement):
29881         (WebCore::AccessibilityRenderObject::addRemoteSVGChildren):
29882         (WebCore::AccessibilityRenderObject::addChildren):
29883         * accessibility/AccessibilityRenderObject.h:
29884         (AccessibilityRenderObject):
29885         * accessibility/AccessibilitySVGRoot.cpp: Added.
29886         (WebCore::AccessibilitySVGRoot::AccessibilitySVGRoot):
29887         (WebCore::AccessibilitySVGRoot::~AccessibilitySVGRoot):
29888         (WebCore::AccessibilitySVGRoot::create):
29889         (WebCore::AccessibilitySVGRoot::parentObject):
29890         * accessibility/AccessibilitySVGRoot.h: Added.
29891         (AccessibilitySVGRoot): Class provides ability to wrap the SVG root of a remote accessibility element.
29892         (WebCore::AccessibilitySVGRoot::setParent):
29893         (WebCore::AccessibilitySVGRoot::isAccessibilitySVGRoot):
29894         (WebCore::toAccessibilitySVGRoot):
29895         * accessibility/mac/WebAccessibilityObjectWrapper.mm:
29896         (-[WebAccessibilityObjectWrapper position]): The position of AX elements within a remote SVG element needs to be handled 
29897         in a special manner.
29898         (createAccessibilityRoleMap):
29899         * loader/EmptyClients.h:
29900         (EmptyChromeClient): Expose isEmptyChromeClient() so Accessibility will know when to apply different policies for finding
29901         the accessibility bounding rect of elements.
29902         (WebCore::EmptyChromeClient::isEmptyChromeClient):
29903         * page/ChromeClient.h:
29904         (WebCore::ChromeClient::isEmptyChromeClient):
29905         (ChromeClient):
29906         * svg/graphics/SVGImage.cpp:
29907         * svg/graphics/SVGImageChromeClient.h: Added.
29908         (SVGImageChromeClient): Expose the SVGImageChromeClient so that Accessibility can reference its image.
29909         (WebCore::SVGImageChromeClient::SVGImageChromeClient):
29910         (WebCore::SVGImageChromeClient::isSVGImageChromeClient):
29911         (WebCore::SVGImageChromeClient::image):
29912         (WebCore::SVGImageChromeClient::chromeDestroyed):
29913         (WebCore::SVGImageChromeClient::invalidateContentsAndRootView):
29914         (WebCore::toSVGImageChromeClient):
29915
29916 2012-10-30  Dan Carney  <dcarney@google.com>
29917
29918         add 7 bit strings capabilities to the v8 binding layer
29919         https://bugs.webkit.org/show_bug.cgi?id=91850
29920
29921         Reviewed by Adam Barth.
29922
29923         This change enables the v8 binding layer to make use of webkit's
29924         8 bit string capabilities. Using 8 bit strings leads to certain
29925         benchmark performance improvemnts as can be seen in
29926         https://bug-91850-attachments.webkit.org/attachment.cgi?id=163334.
29927
29928         No new tests. Test coverage already extensive.
29929
29930         * bindings/v8/V8PerIsolateData.cpp:
29931         (WebCore::V8PerIsolateData::visitExternalStrings):
29932         * bindings/v8/V8StringResource.cpp:
29933         (StringTraits):
29934         (WebCore::false):
29935         (WebCore):
29936         (WebCore::true):
29937         (WebCore::v8StringToWebCoreString):
29938         * bindings/v8/V8ValueCache.cpp:
29939         (WebCore::makeExternalString):
29940         (WebCore::WebCoreStringResourceBase::visitStrings):
29941         * bindings/v8/V8ValueCache.h:
29942         (WebCore::WebCoreStringResourceBase::WebCoreStringResourceBase):
29943         (WebCore::WebCoreStringResourceBase::~WebCoreStringResourceBase):
29944         (WebCore::WebCoreStringResourceBase::atomicString):
29945         (WebCoreStringResourceBase):
29946         (WebCore::WebCoreStringResourceBase::memoryConsumption):
29947
29948 2012-10-30  Christophe Dumez  <christophe.dumez@intel.com>
29949
29950         [AC] Fix compilation warnings when enabling Accelerated Compositing
29951         https://bugs.webkit.org/show_bug.cgi?id=100741
29952
29953         Reviewed by Kenneth Rohde Christiansen.
29954
29955         Fix a few compilation warnings when building EFL port
29956         with accelerated compositing enabled.
29957
29958         No new tests, no behavior change.
29959
29960         * platform/graphics/surfaces/qt/GraphicsSurfaceGLX.cpp:
29961         (WebCore::GraphicsSurfacePrivate::GraphicsSurfacePrivate):
29962         (WebCore::resolveGLMethods):
29963         (WebCore::GraphicsSurface::platformCopyToGLTexture):
29964         (WebCore::GraphicsSurface::platformLock):
29965         * platform/graphics/texmap/TextureMapperGL.cpp:
29966         (WebCore::BitmapTextureGL::updateContents):
29967
29968 2012-10-30  No'am Rosenthal  <noam.rosenthal@nokia.com>
29969
29970         [Qt] Animations jump when the page is suspended
29971         https://bugs.webkit.org/show_bug.cgi?id=100673
29972
29973         Reviewed by Kenneth Rohde Christiansen.
29974
29975         GraphicsLayerAnimations::pause() should accept time from start and not an offset.
29976
29977         We need to support the "freeze" API before this can be reliably tested.
29978         See https://bugs.webkit.org/show_bug.cgi?id=100703.
29979
29980         * platform/graphics/GraphicsLayerAnimation.cpp:
29981         (WebCore::GraphicsLayerAnimation::pause):
29982
29983 2012-10-30  Kondapally Kalyan  <kalyan.kondapally@intel.com>
29984
29985         [Qt][EFL][AC] While Using WebGL, MiniBrowser segfaults on Refreshing the page.
29986         https://bugs.webkit.org/show_bug.cgi?id=100639.
29987
29988         Reviewed by Kenneth Rohde Christiansen.
29989
29990         TextureMapperSurfaceBackingStore can import textures from a GraphicSurface.
29991         In such cases GraphicsSurfaceGLX creates an XPixmap to read texture content
29992         from a given WindowId, but doesn't create any new window.
29993         However, OffScreenRootWindow always tries to unmap window (in its destructor) resulting in segfault.
29994         With this patch OffScreenRootWindow would check for a valid window before trying to unmap it.
29995
29996         * platform/graphics/surfaces/qt/GraphicsSurfaceGLX.cpp:
29997         (WebCore::OffScreenRootWindow::~OffScreenRootWindow):
29998
29999 2012-10-30  Emil A Eklund  <eae@chromium.org>
30000
30001         [subixel] Change LineWidth::shrinkAvailableWidthForNewFloatIfNeeded to not pixel snap
30002         https://bugs.webkit.org/show_bug.cgi?id=100742
30003
30004         Reviewed by Levi Weintraub.
30005
30006         As we no longer pixel snap values when computing the current width for a
30007         line we should not do it in shrinkAvailableWidthForNewFloatIfNeeded
30008         either.
30009
30010         Test: fast/sub-pixel/float-wrap-zoom.html
30011
30012         * rendering/RenderBlockLineLayout.cpp:
30013         (WebCore::LineWidth::LineWidth): Remove unnecessary ifdef.
30014         (WebCore::LineWidth::shrinkAvailableWidthForNewFloatIfNeeded): Use float values instead of pixel snapped/floored values as the line width calculations uses floats.
30015
30016 2012-10-30  Max Vujovic  <mvujovic@adobe.com>
30017
30018         [CSS Shaders] Reject vertex shaders with custom attributes
30019         https://bugs.webkit.org/show_bug.cgi?id=98973
30020
30021         Reviewed by Dean Jackson.
30022
30023         Improved CSS Custom Filters shader validation. With this patch:
30024         (1) Shaders with custom attributes do not execute (e.g. attribute float my_attribute;).
30025         (2) Shaders with a_triangleCoord defined do not execute with an attached mesh.
30026
30027         Most of the changes are from renaming CustomFilterOperation::MeshType to
30028         CustomFilterMeshType, and moving the enumeration to CustomFilterConstants.h. This avoids
30029         pulling in CustomFilterOperation for classes that only care about the mesh type.
30030
30031         Note that in CSS Custom Filters, the a_triangleCoord attribute is only available in detached
30032         meshes. In detached meshes, no vertices are shared between triangles. Thus, each vertex
30033         belongs to a specific triangle, which a_triangleCoord identifies. In attached meshes,
30034         vertices can belong to many triangles, which a_triangleCoord cannot identify because it's
30035         only a vec3.
30036
30037         Tests:
30038         Add two new checks to the test file:
30039             css3/filters/custom/invalid-custom-filter-attribute-types.html
30040         Add two new shaders:
30041             css3/filters/resources/invalid-custom-attribute.vs
30042             css3/filters/resources/invalid-a-triangle-coord-with-attached-mesh.vs
30043
30044         * WebCore.xcodeproj/project.pbxproj:
30045             Update a broken reference to CustomFilterConstants.h in the Xcode project file.
30046         * css/CSSComputedStyleDeclaration.cpp:
30047         (WebCore::CSSComputedStyleDeclaration::valueForFilter):
30048             Replace CustomFilterOperation::MeshType with CustomFilterMeshType.
30049         * css/StyleResolver.cpp:
30050         (WebCore::StyleResolver::createCustomFilterOperation): Ditto.
30051         * platform/graphics/filters/CustomFilterConstants.h:
30052             Add CustomFilterMeshType enum to share across the Custom Filters codebase, so that we
30053             don't have to include CustomFilterOperation just to access the old
30054             CustomFilterOperation::MeshType enum.
30055         * platform/graphics/filters/CustomFilterMesh.cpp:
30056         (WebCore::CustomFilterMesh::CustomFilterMesh):
30057             Replace CustomFilterOperation::MeshType with CustomFilterMeshType.
30058         * platform/graphics/filters/CustomFilterMesh.h:
30059         (WebCore::CustomFilterMesh::create): Ditto.
30060         (WebCore::CustomFilterMesh::meshType): Ditto.
30061         (CustomFilterMesh): Ditto.
30062         * platform/graphics/filters/CustomFilterMeshGenerator.cpp: Ditto.
30063         (WebCore::CustomFilterMeshGenerator::CustomFilterMeshGenerator): Ditto.
30064         (WebCore::CustomFilterMeshGenerator::dumpBuffers): Ditto.
30065         * platform/graphics/filters/CustomFilterMeshGenerator.h:
30066         (CustomFilterMeshGenerator): Ditto.
30067         (WebCore::CustomFilterMeshGenerator::floatsPerVertex): Ditto.
30068         (WebCore::CustomFilterMeshGenerator::verticesCount): Ditto.
30069         * platform/graphics/filters/CustomFilterOperation.cpp: 
30070         (WebCore::CustomFilterOperation::CustomFilterOperation): Ditto.
30071         * platform/graphics/filters/CustomFilterOperation.h:
30072         (WebCore::CustomFilterOperation::create): Ditto.
30073         (WebCore::CustomFilterOperation::meshType): Ditto.
30074         (CustomFilterOperation): Ditto.
30075         * platform/graphics/filters/CustomFilterProgram.cpp:
30076         (WebCore::CustomFilterProgram::CustomFilterProgram):
30077             Add a meshType constructor parameter because the program now needs to know the meshType
30078             to properly validate.
30079         (WebCore::CustomFilterProgram::programInfo):
30080             Pass meshType to CustomFilterProgram constructor.
30081         (WebCore::CustomFilterProgram::operator==):
30082             Check the meshType in the equals operator.
30083         * platform/graphics/filters/CustomFilterProgram.h:
30084             Make vertexShaderString() and fragmentShaderString() public so that we don't have to ask
30085             for a programInfo object just to get the shader strings in
30086             CoordinatedGraphicsArgumentCoders.cpp.
30087         * platform/graphics/filters/CustomFilterProgramInfo.cpp:
30088         (WebCore::CustomFilterProgramInfo::CustomFilterProgramInfo):
30089             Add a meshType constructor parameter.       
30090         (WebCore::CustomFilterProgramInfo::hash):
30091             Include the meshType in the validated program hash, since the same shader code can pass
30092             or fail validation based on the meshType.
30093         (WebCore::CustomFilterProgramInfo::operator==):
30094             Check the meshType in the equals operator.
30095         * platform/graphics/filters/CustomFilterProgramInfo.h:
30096         (CustomFilterProgramInfo):
30097             Update method prototype.
30098         (WebCore::CustomFilterProgramInfo::meshType):
30099             Add meshType getter.
30100         * platform/graphics/filters/CustomFilterValidatedProgram.cpp:
30101         (WebCore::CustomFilterValidatedProgram::validateSymbols):
30102             If the author defines attribute that is is not found in the built-in attribute map,
30103             reject the shader.
30104             If the author defines a_triangleCoord without a detached mesh type, reject the shader.
30105             Also, make this previously file-static function into a method of
30106             CustomFilterValidatedProgram because it now needs to access the m_meshType.
30107         * platform/graphics/filters/CustomFilterValidatedProgram.h:
30108         (CustomFilterValidatedProgram):
30109             Add a meshType constructor parameter because the program now needs to know the meshType
30110             to properly validate.
30111         * platform/graphics/filters/FECustomFilter.cpp:
30112         (WebCore::FECustomFilter::FECustomFilter):
30113             Replace CustomFilterOperation::MeshType with CustomFilterMeshType.
30114         (WebCore::FECustomFilter::create): Ditto.
30115         (WebCore::FECustomFilter::bindProgramAndBuffers): Ditto.
30116         (WebCore::FECustomFilter::unbindVertexAttributes): Ditto.
30117         * platform/graphics/filters/FECustomFilter.h:
30118         (FECustomFilter): Ditto.
30119         * rendering/style/StyleCustomFilterProgram.h:
30120         (WebCore::StyleCustomFilterProgram::create):
30121             Add a meshType constructor parameter.
30122         (WebCore::StyleCustomFilterProgram::StyleCustomFilterProgram): Ditto.
30123
30124 2012-10-30  Andrey Lushnikov  <lushnikov@google.com>
30125
30126         Web Inspector: adds isOwnProperty to remote protocol
30127         https://bugs.webkit.org/show_bug.cgi?id=100664
30128
30129         Reviewed by Pavel Feldman.
30130
30131         Test: inspector/runtime/runtime-getProperties-isOwnProperty.html
30132
30133         Adds requested 'isOwn' property to the 'PropertyDescriptor' class of the
30134         remote debugging protocol. 
30135
30136         * inspector/InjectedScriptSource.js:
30137         (.):
30138         * inspector/Inspector.json:
30139
30140 2012-10-30  Zeno Albisser  <zeno@webkit.org>
30141
30142         [Qt][Win] BitmapTextureGL::updateContents() broken after r132019.
30143         https://bugs.webkit.org/show_bug.cgi?id=100680
30144
30145         When creating a temporary for swizzling the image data,
30146         the temporary will have the target size.
30147         Therefore no offset within the available image data
30148         shall be applied in this case.
30149
30150         Reviewed by Noam Rosenthal.
30151
30152         * platform/graphics/texmap/TextureMapperGL.cpp:
30153         (WebCore::BitmapTextureGL::updateContents):
30154
30155 2012-10-30  Kent Tamura  <tkent@chromium.org>
30156
30157         Remove unused code for old input[type=date] UI
30158         https://bugs.webkit.org/show_bug.cgi?id=100734
30159
30160         Reviewed by Hajime Morita.
30161
30162         The old input[type=date] UI used in Google Chrome 20-23 (text field with
30163         a fixed placeholder) was replaced with ENABLE_INPUT_MULTIPLE_FIELDS_UI.
30164
30165         No new tests because of no behavior changes.
30166
30167         * html/DateInputType.cpp: Remove ENABLE_INPUT_TYPE_DATE_LEGACY_UI code path.
30168         * html/DateInputType.h: Ditto.
30169
30170         * html/HTMLInputElement.cpp:
30171         (WebCore::HTMLInputElement::supportsPlaceholder):
30172         Remove fixed-placeholder feature.
30173         * html/HTMLInputElement.h:
30174         (HTMLInputElement): Ditto.
30175         * html/HTMLTextFormControlElement.h:
30176         (HTMLTextFormControlElement): isPlaceholderEmpty() is not needed to be virtual
30177         * html/InputType.cpp: Remove fixed-placeholder feature.
30178         * html/InputType.h: Ditto.
30179         * html/TextFieldInputType.cpp:
30180         (WebCore::TextFieldInputType::updatePlaceholderText): Ditto.
30181
30182         * platform/text/PlatformLocale.h:
30183         (Locale): Remove dateFormatText.
30184         * platform/text/LocaleICU.cpp: Ditto.
30185         * platform/text/LocaleICU.h: Ditto.
30186         * platform/text/LocaleNone.cpp: Ditto.
30187         * platform/text/mac/LocaleMac.h: Ditto.
30188         * platform/text/mac/LocaleMac.mm: Ditto.
30189         * platform/text/win/LocaleWin.cpp: Ditto.
30190         * platform/text/win/LocaleWin.h: Ditto.
30191         * platform/LocalizedStrings.h:
30192         (WebCore): Remove unused functions; calendarTodayText,
30193         calendarClearText, dateFormatYearText, dateFormatMonthText,
30194         dateFormatDayInMonthText
30195
30196 2012-10-30  Kent Tamura  <tkent@chromium.org>
30197
30198         Fix crash by calendar picker or suggestion picker
30199         https://bugs.webkit.org/show_bug.cgi?id=100728
30200
30201         Reviewed by Hajime Morita.
30202
30203         Change DateTimeChooser so that it is ref-coutned.
30204
30205         Test: platform/chromium/fast/forms/calendar-picker/calendar-picker-type-change-onchange.html
30206
30207         * platform/DateTimeChooser.h: Made DateTimeChooser RefCounted.
30208         * page/ChromeClient.h:
30209         (ChromeClient): openDateTimeChooser should return PassRefPtr<DateTimeChooser>.
30210         * loader/EmptyClients.h:
30211         (EmptyChromeClient): Follow the above change.
30212         * loader/EmptyClients.cpp:
30213         (WebCore::EmptyChromeClient::openDateTimeChooser): Ditto.
30214
30215         * html/shadow/PickerIndicatorElement.h:
30216         (PickerIndicatorElement): Hold DateTimeChooser in RefPtr<DateTimeChooser>.
30217         * html/shadow/PickerIndicatorElement.cpp:
30218         (WebCore::PickerIndicatorElement::PickerIndicatorElement):
30219         Remove unnecessary initialization.
30220
30221 2012-10-30  Eugene Klyuchnikov  <eustas.bug@gmail.com>
30222
30223         Web Inspector: Timeline: promote "cpu activity" out of experiment
30224         https://bugs.webkit.org/show_bug.cgi?id=100726
30225
30226         Reviewed by Pavel Feldman.
30227
30228         1. CPU actibity bars redesigned
30229         2. Experiment setting removed
30230         3. Feature setting added
30231
30232         * English.lproj/localizedStrings.js: Updated setting label.
30233         * inspector/front-end/Settings.js: Replaced experiment with setting.
30234         * inspector/front-end/SettingsScreen.js: Added new setting.
30235         * inspector/front-end/TimelinePanel.js: Update cpu bars appearance.
30236         * inspector/front-end/timelinePanel.css: Ditto.
30237
30238 2012-10-30  Michelangelo De Simone  <michelangelo@webkit.org>
30239
30240         [CSS Shaders] Change the default compositing mode and the default CSS value for <fragmentShader>
30241         https://bugs.webkit.org/show_bug.cgi?id=94020
30242
30243         Reviewed by Dean Jackson.
30244
30245         The default compositing mode has been changed from "normal source-over" to
30246         "normal source-atop". This applies to the default fragment shader that will
30247         kick in when there is no explicit fragment shader or mix function defined.
30248
30249         This has required to update all the existing tests; the dummy empty fragment
30250         shader has also been removed because not needed.
30251
30252         * css/CSSComputedStyleDeclaration.cpp:
30253         (WebCore::CSSComputedStyleDeclaration::valueForFilter): An existence check
30254         for the fragment shader has been added.
30255         * css/StyleResolver.cpp:
30256         (WebCore::StyleResolver::createCustomFilterOperation): The default program
30257         has been updated: PROGRAM_TYPE_BLENDS_TEXTURE (compositing enabled) now is
30258         the default.
30259         * platform/graphics/filters/CustomFilterProgramInfo.h:
30260         (WebCore::CustomFilterProgramMixSettings::CustomFilterProgramMixSettings):
30261         New CustomFilterProgramMixSettings defaults to "source-atop" composite
30262         operator.
30263
30264 2012-10-30  Ádám Kallai  <kadam@inf.u-szeged.hu>
30265
30266         [Qt][Mac] Unreviewed build fix.
30267         https://bugs.webkit.org/show_bug.cgi?id=100727.
30268
30269         Speculative build fix after 132858. Include missing CoreFoundation/CoreFoundation.h header.
30270
30271         * platform/text/cf/AtomicStringCF.cpp:
30272
30273 2012-10-30  Gabor Rapcsanyi  <rgabor@webkit.org>
30274
30275         Optimize vclip for NEON in VectorMath
30276         https://bugs.webkit.org/show_bug.cgi?id=100737
30277
30278         Reviewed by Zoltan Herczeg.
30279
30280         Speed up vclip in VectorMath with NEON intrinsics.
30281
30282         * platform/audio/VectorMath.cpp:
30283         (WebCore::VectorMath::vclip):
30284
30285 2012-10-30  Alexandru Chiculita  <achicu@adobe.com>
30286
30287         [CSS Shaders] Software and composited filters should have a common path
30288         https://bugs.webkit.org/show_bug.cgi?id=100532
30289
30290         Reviewed by Dean Jackson.
30291
30292         Added computeFilterOperations as a common method between the software filters
30293         and hardware composited ones. The method rejects custom filters that are not
30294         loaded yet. In bug 100533 it will also convert the CustomFilterOperation to a 
30295         ValidatedCustomFilterOperation. That will help us keep the loading and verification 
30296         code for the custom filters common across all the ports.
30297
30298         No new tests, just refactoring existing code.
30299
30300         * rendering/RenderLayer.cpp:
30301         (WebCore::RenderLayer::computeFilterOperations):
30302         (WebCore):
30303         (WebCore::RenderLayer::updateOrRemoveFilterEffect):
30304         * rendering/RenderLayer.h:
30305         (WebCore):
30306         (RenderLayer):
30307         * rendering/RenderLayerBacking.cpp:
30308         (WebCore::RenderLayerBacking::updateFilters):
30309
30310 2012-10-30  Alexei Filippov  <alph@chromium.org>
30311
30312         Web Inspector: Implement native memory snapshot grid view
30313         https://bugs.webkit.org/show_bug.cgi?id=100656
30314
30315         Native memory snapshots are now shown as an expandable tree form
30316         using the grid control.
30317
30318         Reviewed by Yury Semikhatsky.
30319
30320         * inspector/front-end/NativeMemorySnapshotView.js:
30321         (WebInspector.NativeMemorySnapshotView):
30322         (WebInspector.NativeSnapshotDataGrid):
30323         (WebInspector.NativeSnapshotNode):
30324         (WebInspector.NativeSnapshotNode.prototype.createCell):
30325         (WebInspector.NativeSnapshotNode.prototype._createSizeCell):
30326         (WebInspector.NativeSnapshotNode.prototype._populate):
30327         (WebInspector.MemoryBlockViewProperties._initialize):
30328         (WebInspector.MemoryBlockViewProperties._forMemoryBlock):
30329         * inspector/front-end/dataGrid.css:
30330         (.data-grid td):
30331         * inspector/front-end/nativeMemoryProfiler.css:
30332         (.memory-bar-chart-bar):
30333         (.native-snapshot-view):
30334         (.native-snapshot-view.visible):
30335         (.native-snapshot-view .data-grid):
30336         (.native-snapshot-view .data-grid table):
30337         (.native-snapshot-view .data-grid div.size-text):
30338         (.native-snapshot-view .data-grid div.size-bar):
30339         (.native-snapshot-view .data-grid div.percent-text):
30340
30341 2012-10-30  Zoltan Nyul  <zoltan.nyul@intel.com>
30342
30343         3d rotation with [0, 0, 0] direction vector should not be applied
30344         https://bugs.webkit.org/show_bug.cgi?id=100733
30345
30346         Reviewed by Levi Weintraub.
30347
30348         As stated in the specification (http://dev.w3.org/csswg/css3-3d-transforms/#transform-functions),
30349         a direction vector that cannot be normalized, such as [0, 0, 0], will cause the rotation to not be applied,
30350         but webkit applies it with [1, 0, 0] direction vector.
30351
30352         Test: transforms/3d/general/3dtransform-values.html
30353
30354         * platform/graphics/transforms/TransformationMatrix.cpp:
30355         (WebCore::TransformationMatrix::rotate3d):
30356
30357 2012-10-30  Yury Semikhatsky  <yurys@chromium.org>
30358
30359         Memory instrumentation: report actual object address for CachedResourceClients
30360         https://bugs.webkit.org/show_bug.cgi?id=100659
30361
30362         Reviewed by Alexander Pavlov.
30363
30364         Skipped pointers to objects that are not allocated on the heap directly.
30365
30366         To test this we need to compare addresses of objects traversed by the memory
30367         insrumentation with those allocated by the memory allocator. The latter set
30368         should include the former one.
30369
30370         * css/StyleResolver.cpp:
30371         (WTF): skip pointers to RuleData structures as they are stored by value in RuleSet
30372         objects and should not be reported separately.
30373         * loader/cache/CachedResource.cpp:
30374         (WTF): do not report memory occupied by CachedResourceClients as objects implementing
30375         the interface may have address which differ from CachedResourceClient*. The clients
30376         should be reachable from their instrumented owners where we know exact type of the
30377         clients and hence can figure correct address.
30378
30379 2012-10-29  Shinya Kawanaka  <shinyak@chromium.org>
30380
30381         [Refatoring] Remove ElementShadow::insertionPointFor
30382         https://bugs.webkit.org/show_bug.cgi?id=100625
30383
30384         Reviewed by Hajime Morita.
30385
30386         Now that ElementShadow::insertionPointFor does not do any special things, and it's only used in
30387         ComposedShadowTreeWalker. So we can remove it.
30388
30389         No new tests, simple refactoring.
30390
30391         * dom/ComposedShadowTreeWalker.cpp:
30392         (WebCore::resolveReprojection):
30393         (WebCore::AncestorChainWalker::parent):
30394         * dom/ElementShadow.cpp:
30395         * dom/ElementShadow.h:
30396         (ElementShadow):
30397         * dom/ShadowRoot.h: ShadowRoot has insertionPointFor declaration, but we don't have any implementation.
30398         We should remove it.
30399
30400 2012-10-29  Andy Estes  <aestes@apple.com>
30401
30402         Fix a typo that caused SVG external resources to be blocked on
30403         platforms other than Chromium.
30404
30405         * loader/cache/CachedResourceLoader.cpp:
30406         (WebCore::CachedResourceLoader::canRequest):
30407
30408 2012-10-29  Keishi Hattori  <keishi@webkit.org>
30409
30410         NSLocale leaks in LocaleMac
30411         https://bugs.webkit.org/show_bug.cgi?id=97628
30412
30413         Reviewed by Kent Tamura.
30414
30415         We need to adopt the NSLocale object so it doesn't leak and
30416         determineLocale() should return a NSLocale without additional retain.
30417
30418         No new tests.
30419
30420         * platform/text/mac/LocaleMac.mm:
30421         (WebCore::determineLocale): Returns a RetainPtr<NSLocale>.
30422         (WebCore::Locale::create):
30423         (WebCore::LocaleMac::LocaleMac): m_locale should adopt the NSLocale object.
30424         (WebCore::LocaleMac::create): LocaleMac constructor takes NSLocale without additional retain.
30425
30426 2012-10-29  Charles Wei  <charles.wei@torchmobile.com.cn>
30427
30428         [BlackBerry] Disable redirect to data scheme for potential fishing.
30429         https://bugs.webkit.org/show_bug.cgi?id=100713
30430
30431         Reviewed by George Staikos.
30432
30433         We will disable redirect to data scheme to avoid potential security concern, 
30434         described in klevjers.com/papers/phishing.pdf.
30435
30436
30437         * platform/network/blackberry/NetworkJob.cpp:
30438         (WebCore::NetworkJob::handleRedirect):
30439
30440 2012-10-29  Vincent Scheib  <scheib@chromium.org>
30441
30442         Unreviewed, rolling out r132845.
30443         http://trac.webkit.org/changeset/132845
30444         https://bugs.webkit.org/show_bug.cgi?id=99975
30445
30446         Broke chromium builds, linker errors from
30447         IDBBindingUtilitiesTest
30448
30449         * Modules/indexeddb/IDBRequest.cpp:
30450         (WebCore::IDBRequest::IDBRequest):
30451         (WebCore::IDBRequest::onSuccess):
30452         (WebCore::IDBRequest::dispatchEvent):
30453         * Modules/indexeddb/IDBRequest.h:
30454         (IDBRequest):
30455         * bindings/v8/IDBBindingUtilities.cpp:
30456         (WebCore::createIDBKeyFromScriptValueAndKeyPath):
30457         (WebCore):
30458         (WebCore::deserializeIDBValue):
30459         (WebCore::injectIDBKeyIntoScriptValue):
30460         (WebCore::idbKeyToScriptValue):
30461         * bindings/v8/V8PerIsolateData.cpp:
30462         (WebCore::V8PerIsolateData::ensureAuxiliaryContext):
30463         (WebCore):
30464         * bindings/v8/V8PerIsolateData.h:
30465         (V8PerIsolateData):
30466
30467 2012-10-29  Anders Carlsson  <andersca@apple.com>
30468
30469         Fix Windows build.
30470
30471         * platform/network/cf/ResourceRequestCFNet.cpp:
30472         (WebCore::setHeaderFields):
30473
30474 2012-10-28  Mark Rowe  <mrowe@apple.com>
30475
30476         Simplify Xcode configuration settings that used to vary between OS versions.
30477
30478         Reviewed by Dan Bernstein.
30479
30480         * Configurations/Base.xcconfig:
30481         * Configurations/DebugRelease.xcconfig:
30482         * Configurations/WebCore.xcconfig:
30483
30484 2012-10-28  Mark Rowe  <mrowe@apple.com>
30485
30486         Remove references to unsupported OS and Xcode versions.
30487
30488         Reviewed by Anders Carlsson.
30489
30490         * Configurations/Base.xcconfig:
30491         * Configurations/CompilerVersion.xcconfig: Removed.
30492         * Configurations/DebugRelease.xcconfig:
30493         * Configurations/Version.xcconfig:
30494         * Configurations/WebCore.xcconfig:
30495         * DerivedSources.make:
30496         * WebCore.xcodeproj/project.pbxproj:
30497
30498 2012-10-29  Anders Carlsson  <andersca@apple.com>
30499
30500         AtomicString(CFStringRef) shouldn't unconditionally create a StringImpl
30501         https://bugs.webkit.org/show_bug.cgi?id=100701
30502
30503         Reviewed by Dan Bernstein.
30504
30505         * WebCore.exp.in:
30506         Export AtomicString::add(CFStringRef).
30507
30508         * Target.pri:
30509         * WebCore.gypi:
30510         * WebCore.vcproj/WebCore.vcproj:
30511         * WebCore.xcodeproj/project.pbxproj:
30512         Add AtomicStringCF.cpp 
30513
30514         * platform/text/cf/AtomicStringCF.cpp: Added.
30515         (WTF::AtomicString::add):
30516         When trying to add the atomic string to the table, first try to get a Latin-1 pointer
30517         from the string. Second, try to get a Unicode pointer from the string.
30518         If that also fails, copy the string to a temporary unicode buffer and add it from there.
30519
30520         * platform/text/cf/HyphenationCF.cpp:
30521         (WebCore::::createValueForKey):
30522         Update for AtomicString::createCFString being removed.
30523
30524 2012-10-25  Stephen Chenney  <schenney@chromium.org>
30525
30526         feImage should not be allowed to self reference
30527         https://bugs.webkit.org/show_bug.cgi?id=94652
30528
30529         Reviewed by Eric Seidel.
30530
30531         Add cycle detection for SVG filter application, and also fix a problem
30532         with graphics context restore when filters are applied. This also
30533         converts the flags in FilterData to a state tracking system, as the
30534         number of flags was getting messy and only one flag is valid at any given time.
30535
30536         Test: svg/filters/feImage-self-and-other-referencing.html
30537
30538         * rendering/svg/RenderSVGResourceFilter.cpp: Convert to new FilterData
30539         state management and enable cycle detection.
30540         (WebCore):
30541         (WebCore::RenderSVGResourceFilter::removeClientFromCache): Change isBuilt and markedForRemoval flags to state enums.
30542         (WebCore::RenderSVGResourceFilter::applyResource): Change flags to state enums and detect cycles.
30543         (WebCore::RenderSVGResourceFilter::postApplyResource): Change flags to state and add handling
30544         for the various states.
30545         (WebCore::RenderSVGResourceFilter::primitiveAttributeChanged): Change isBuilt flag to state enums.
30546         * rendering/svg/RenderSVGResourceFilter.h:
30547         (WebCore::FilterData::FilterData):
30548         (FilterData): Convert to a state tracking system.
30549         * rendering/svg/RenderSVGRoot.cpp:
30550         (WebCore::RenderSVGRoot::paintReplaced): Add a block around the
30551         SVGRenderingContext so that it applies the filter and reverts the
30552         context before the calling method restores the context.
30553
30554 2012-10-29  Dan Bernstein  <mitz@apple.com>
30555
30556         <rdar://problem/12592716> REGRESSION (r132545): With full-page accelerated drawing, a
30557         reproducible hang occurs at <http://www.cbsnews.com/stories/2010/01/24/ftn/main6136386.shtml>.
30558
30559         Reviewed by Anders Carlsson.
30560
30561         Work around <rdar://problem/12584492> by limiting the scope of the fix for <http://webkit.org/b/100413>.
30562
30563         * platform/graphics/cg/GraphicsContextCG.cpp:
30564         (WebCore::GraphicsContext::clipOut): Reverted to using CGContextGetClipBoundingBox() rather
30565         than CGRectInfinite when the context is accelerated and has a transform that is not just
30566         a translation or a scale.
30567
30568 2012-10-29  Rob Buis  <rbuis@rim.com>
30569
30570         [BlackBerry] Simplify AuthenticationChallengeManager::instance
30571         https://bugs.webkit.org/show_bug.cgi?id=100614
30572
30573         Reviewed by Yong Li.
30574         Internally reviewed by Lyon Chen.
30575
30576         Use a standard Singleton pattern here, this makes sure we create lazily.
30577
30578         * platform/blackberry/AuthenticationChallengeManager.cpp:
30579         (WebCore):
30580         * platform/blackberry/AuthenticationChallengeManager.h:
30581         (AuthenticationChallengeManager):
30582
30583 2012-10-29  Adam Barth  <abarth@webkit.org>
30584
30585         Block SVG external references pending a security review
30586         https://bugs.webkit.org/show_bug.cgi?id=100635
30587
30588         Reviewed by Eric Seidel.
30589
30590         We need to do a security review of loading external SVG references
30591         before we're sure that it is safe.
30592
30593         * css/StyleResolver.cpp:
30594         (WebCore::StyleResolver::createFilterOperations):
30595         * loader/cache/CachedResourceLoader.cpp:
30596         (WebCore::CachedResourceLoader::canRequest):
30597
30598 2012-10-29  Joshua Bell  <jsbell@chromium.org>
30599
30600         IndexedDB: Crash on checking version of corrupt backing store
30601         https://bugs.webkit.org/show_bug.cgi?id=100692
30602
30603         Reviewed by Tony Chang.
30604
30605         If the backing store fails to open (due to corruption, non-writeable disk, etc)
30606         the subsequent schema version check dereferences a null pointer. Fix to only
30607         do the schema check if the database opened.
30608
30609         Chromium tests will be included with crrev.com/11196029
30610
30611         * Modules/indexeddb/IDBLevelDBBackingStore.cpp:
30612         (WebCore::IDBLevelDBBackingStore::open):
30613
30614 2012-10-29  Philip Rogers  <pdr@google.com>
30615
30616         Let SVGElements have pending resources.
30617         https://bugs.webkit.org/show_bug.cgi?id=99694
30618
30619         Reviewed by Eric Seidel.
30620
30621         Our SVG pending resource tracking is used for handling dynamic id changes. For example,
30622         if an SVG element references an id that is not yet in the document (or has been removed),
30623         the SVG element will be 'pending' an id. When styled elements are inserted into
30624         the document, buildPendingResourcesIfNeeded() is called to force any pending elements
30625         to resolve their dependencies. Only SVGStyledElement targets can be referenced using
30626         this infrastructure, and that is not changed with this patch.
30627
30628         Previously, only SVGStyledElements could have pending resources. Some examples of where
30629         this is violated are SVGAnimateElement and SVGMPathElement which are not a styled elements
30630         but which can have pending references (they can reference styled elements and
30631         paths, respectively). This patch changes the pending resource handling to allow
30632         any SVGElement to have pending resources.
30633
30634         This patch is only a refactoring of code in preparation for WK99694 and does not
30635         affect existing functionality or tests.
30636
30637         * svg/SVGDocumentExtensions.cpp:
30638         (WebCore::SVGDocumentExtensions::addPendingResource):
30639         (WebCore::SVGDocumentExtensions::isElementPendingResources):
30640         (WebCore::SVGDocumentExtensions::isElementPendingResource):
30641         (WebCore::SVGDocumentExtensions::removeElementFromPendingResources):
30642         (WebCore::SVGDocumentExtensions::removeElementFromPendingResourcesForRemoval):
30643         * svg/SVGDocumentExtensions.h:
30644         (WebCore):
30645         (SVGDocumentExtensions):
30646         * svg/SVGElement.cpp:
30647         (WebCore::SVGElement::~SVGElement):
30648         (WebCore::SVGElement::removedFrom):
30649         (WebCore::SVGElement::hasPendingResources):
30650         (WebCore):
30651         (WebCore::SVGElement::setHasPendingResources):
30652         (WebCore::SVGElement::clearHasPendingResourcesIfPossible):
30653         * svg/SVGElement.h:
30654         (SVGElement):
30655         (WebCore::SVGElement::buildPendingResource):
30656         * svg/SVGStyledElement.cpp:
30657         (WebCore):
30658         (WebCore::SVGStyledElement::buildPendingResourcesIfNeeded):
30659         (WebCore::SVGStyledElement::removedFrom):
30660         * svg/SVGStyledElement.h:
30661         (SVGStyledElement):
30662         (WebCore::SVGStyledElement::selfHasRelativeLengths):
30663
30664 2012-10-29  Dan Carney  <dcarney@google.com>
30665
30666         Remove ensureAuxiliaryContext
30667         https://bugs.webkit.org/show_bug.cgi?id=99975
30668
30669         Reviewed by Adam Barth.
30670
30671         Removed auxilliaryContext as use if it is problematic in IDB.
30672
30673         No new tests. No change in functionality.
30674
30675         * Modules/indexeddb/IDBCursor.cpp:
30676         (WebCore::IDBCursor::update):
30677         (WebCore::IDBCursor::setValueReady):
30678         * Modules/indexeddb/IDBCursor.h:
30679         (IDBCursor):
30680         * Modules/indexeddb/IDBObjectStore.cpp:
30681         (WebCore::generateIndexKeysForValue):
30682         (WebCore::IDBObjectStore::put):
30683         (WebCore):
30684         * Modules/indexeddb/IDBRequest.cpp:
30685         (WebCore::IDBRequest::onSuccess):
30686         (WebCore::IDBRequest::dispatchEvent):
30687         * bindings/v8/IDBBindingUtilities.cpp:
30688         (WebCore::createIDBKeyFromScriptValueAndKeyPath):
30689         (WebCore::deserializeIDBValue):
30690         (WebCore::injectIDBKeyIntoScriptValue):
30691         * bindings/v8/IDBBindingUtilities.h:
30692         (WebCore):
30693         * bindings/v8/V8Binding.cpp:
30694         (WebCore::toV8Context):
30695         (WebCore):
30696         * bindings/v8/V8Binding.h:
30697         (WebCore):
30698         * bindings/v8/V8PerIsolateData.cpp:
30699         (WebCore):
30700         * bindings/v8/V8PerIsolateData.h:
30701
30702 2012-10-29  Alpha Lam  <hclam@chromium.org>
30703
30704         [skia] Handle mask box image.
30705         https://bugs.webkit.org/show_bug.cgi?id=100570
30706
30707         Reviewed by James Robinson.
30708
30709         When drawing an image with source rectangle it should intersect with image rectangle.
30710         This should be the case for drawing single image and tiling an image.
30711
30712         Test: fast/images/mask-box-image-crash.html
30713
30714         * platform/graphics/skia/ImageSkia.cpp:
30715         (WebCore::Image::drawPattern):
30716         (WebCore::BitmapImage::draw):
30717         (WebCore::BitmapImageSingleFrameSkia::draw):
30718
30719 2012-10-29  Eric Carlson  <eric.carlson@apple.com>
30720
30721         Support captions when PLUGIN_PROXY_FOR_VIDEO
30722         https://bugs.webkit.org/show_bug.cgi?id=100690
30723
30724         Reviewed by Simon Fraser.
30725
30726         When built with PLUGIN_PROXY_FOR_VIDEO, WebCore uses a plug-in for the media element's
30727         platform media engine. Update this code path so the shadow DOM elements used to display
30728         text tracks are created and configured correctly.
30729
30730         * html/HTMLMediaElement.cpp:
30731         (WebCore::HTMLMediaElement::configureMediaControls): Create media controls if necessary.
30732
30733         * rendering/RenderEmbeddedObject.cpp:
30734         (WebCore::RenderEmbeddedObject::layout): Set the position and size of the shadow DOM when the
30735             position of the embedded element changes.
30736         * rendering/RenderEmbeddedObject.h:
30737
30738 2012-10-29  Justin Novosad  <junov@google.com>
30739
30740         [Chromium] flickering observed when copying 2D canvas to webGL texture
30741         https://bugs.webkit.org/show_bug.cgi?id=100691
30742
30743         Reviewed by Stephen White.
30744
30745         Added a flush to the webgl context after texture upload from an image
30746         buffer to ensure proper graphics context synchronization with respect
30747         to subsequent changes to the source image.
30748
30749         Tests: fast/canvas/webgl/canvas-2d-webgl-texture.html
30750
30751         * platform/graphics/skia/ImageBufferSkia.cpp:
30752         (WebCore::ImageBuffer::copyToPlatformTexture):
30753
30754 2012-10-29  Glenn Adams  <glenn@skynav.com>
30755
30756         [CSSOM] Extraneous whitespace in CSSImportRule.cssText
30757         https://bugs.webkit.org/show_bug.cgi?id=100657
30758
30759         Reviewed by Simon Fraser.
30760
30761         Remove extraneous whitespace when serializing CSSImportRule.cssText when
30762         media list is empty.
30763
30764         Test: cssom/cssimportrule-media.html
30765
30766         * css/CSSImportRule.cpp:
30767         (WebCore::CSSImportRule::cssText):
30768         Don't append extra whitespace if mediaText is empty.
30769
30770 2012-10-29  Arnaud Renevier  <a.renevier@sisa.samsung.com>
30771
30772         webview not redrawn as needed when accelerated compositing is enabled.
30773         https://bugs.webkit.org/show_bug.cgi?id=99109
30774
30775         Reviewed by Martin Robinson.
30776
30777         GL shared display is not in the gtk loop and therefore, its events are
30778         not captured by gtk. So, we use gdk default instead.
30779
30780         No new tests, covered by existing tests.
30781
30782         * platform/gtk/RedirectedXCompositeWindow.cpp:
30783         (WebCore::RedirectedXCompositeWindow::RedirectedXCompositeWindow):
30784         (WebCore::RedirectedXCompositeWindow::~RedirectedXCompositeWindow):
30785         (WebCore::RedirectedXCompositeWindow::resize):
30786
30787 2012-10-29  Pavel Feldman  <pfeldman@chromium.org>
30788
30789         Web Inspector: bind redo to Ctrl+Y on non-mac platforms
30790         https://bugs.webkit.org/show_bug.cgi?id=100685
30791
30792         Reviewed by Vsevolod Vlasov.
30793
30794         * inspector/front-end/DefaultTextEditor.js:
30795         (WebInspector.DefaultTextEditor.prototype._registerShortcuts):
30796
30797 2012-10-29  Enrica Casucci  <enrica@apple.com>
30798
30799         Add ENABLE_USERSELECT_ALL feature flag.
30800         https://bugs.webkit.org/show_bug.cgi?id=100559
30801
30802         Reviewed by Eric Seidel.
30803
30804         * Configurations/FeatureDefines.xcconfig:
30805
30806 2012-10-29  Alexandru Chiculita  <achicu@adobe.com>
30807
30808         [CSS Shaders] Extract the CustomFilterParameterList to its own file
30809         https://bugs.webkit.org/show_bug.cgi?id=100548
30810
30811         Reviewed by Dean Jackson.
30812
30813         Moved all the CustomFilterParameterList related methods to their own file.
30814         Also made CustomFilterParameterList inherit from Vector instead of typedefing it,
30815         so that we can add a different operator== and a blend method to it.
30816
30817         No new tests, just refactoring existing code.
30818
30819         * CMakeLists.txt:
30820         * GNUmakefile.list.am:
30821         * Target.pri:
30822         * WebCore.gypi:
30823         * WebCore.xcodeproj/project.pbxproj:
30824         * css/StyleResolver.h:
30825         * platform/graphics/filters/CustomFilterOperation.cpp:
30826         (WebCore::CustomFilterOperation::CustomFilterOperation):
30827         (WebCore::CustomFilterOperation::blend):
30828         * platform/graphics/filters/CustomFilterOperation.h:
30829         (WebCore):
30830         (WebCore::CustomFilterOperation::operator==):
30831         * platform/graphics/filters/CustomFilterParameterList.cpp: Added.
30832         (WebCore):
30833         (WebCore::CustomFilterParameterList::operator==):
30834         (WebCore::CustomFilterParameterList::checkAlphabeticalOrder):
30835         (WebCore::CustomFilterParameterList::blend):
30836         * platform/graphics/filters/CustomFilterParameterList.h: Added.
30837         (WebCore):
30838         (CustomFilterParameterList):
30839
30840 2012-10-29  Brady Eidson  <beidson@apple.com>
30841
30842         Try to fix 32-bit builds after my incompletely tested m_identifier change.
30843
30844         Not reviewed.
30845
30846         * loader/ResourceLoader.h:
30847         (WebCore::ResourceLoader::identifier): Revert my "unsigned long" -> "uint64_t" change in two places.
30848
30849 2012-10-29  Csaba Osztrogonác  <ossy@webkit.org>
30850
30851         [Qt] Text with zero font size renders as X px sometimes, causing fast/text/zero-font-size-2.html to fail
30852         https://bugs.webkit.org/show_bug.cgi?id=100115
30853
30854         Reviewed by Noam Rosenthal.
30855
30856         * platform/graphics/qt/FontQt.cpp:
30857         (WebCore::Font::drawGlyphs):
30858
30859 2012-10-29  Huang Dongsung  <luxtella@company100.net>
30860
30861         [TexMap] Make GraphicsLayerAnimation choose a proper timing function.
30862         https://bugs.webkit.org/show_bug.cgi?id=100623
30863
30864         Reviewed by Noam Rosenthal.
30865
30866         Currently, GraphicsLayerAnimation chooses a timing function in the wrong
30867         way. Other GraphicsLayers choose a timing function in the similar way to
30868         GraphicsLayerCA::timingFunctionForAnimationValue(). The way consists of
30869         the following steps.
30870         1. Try to query the timing function of the current keyframe animation value.
30871         2. If the timing function of #1 is null, try to query the timing function of Animation.
30872         3. If the timing function of #2 is null, return CubicBezierTimingFunction::defaultTimingFunction().
30873
30874         This patch makes GraphicsLayerAnimation choose a timing function in the same way
30875         to other implementations.
30876
30877         Covered by existing animations tests.
30878
30879         * platform/graphics/GraphicsLayerAnimation.cpp:
30880         (WebCore::timingFunctionForAnimationValue):
30881         (WebCore::GraphicsLayerAnimation::apply):
30882
30883 2012-10-29  Patrick Dubroy  <dubroy@chromium.org>
30884
30885         Web Inspector: Toolbar overflow appears outside window
30886         https://bugs.webkit.org/show_bug.cgi?id=100663
30887
30888         Reviewed by Pavel Feldman.
30889
30890         Since the search bar was removed from the toolbar, the overflow menu appears too far
30891         to the right, and is unreadable. Fixed this by aligning it relative to the right side
30892         of the window, rather than the left.
30893
30894         * inspector/front-end/Toolbar.js:
30895         (WebInspector.ToolbarDropdown.prototype.show):
30896         * inspector/front-end/inspector.css:
30897         (#toolbar-dropdown .toolbar-label):
30898
30899 2012-10-29  Michelangelo De Simone  <michelangelo@webkit.org>
30900
30901         [CSS Shaders] Implement CustomFilterArrayParameter::blend
30902         https://bugs.webkit.org/show_bug.cgi?id=96437
30903
30904         Reviewed by Dean Jackson.
30905
30906         This patch adds the missing code to blend values within
30907         an array() when using Custom Filters.
30908
30909         Test: css3/filters/custom/custom-filter-array-blending.html
30910
30911         * platform/graphics/filters/CustomFilterArrayParameter.h:
30912         (WebCore::CustomFilterArrayParameter::blend):
30913
30914 2012-10-29  Alexander Pavlov  <apavlov@chromium.org>
30915
30916         Web Inspector: Drag and drop a URL in inspector is not working as expected
30917         https://bugs.webkit.org/show_bug.cgi?id=100527
30918
30919         Reviewed by Yury Semikhatsky.
30920
30921         Inhibit custom dragstart handling when the active element is A.
30922
30923         * inspector/front-end/ElementsTreeOutline.js:
30924         (WebInspector.ElementsTreeOutline.prototype._ondragstart):
30925
30926 2012-10-29  Mike West  <mkwst@chromium.org>
30927
30928         Web Inspector: Error/warning count is one pixel off.
30929         https://bugs.webkit.org/show_bug.cgi?id=100660
30930
30931         Reviewed by Pavel Feldman.
30932
30933         The error/warning count div had a top padding of 6. That was one pixel
30934         too many.
30935
30936         * inspector/front-end/inspector.css:
30937         (#error-warning-count):
30938
30939 2012-10-29  Shinya Kawanaka  <shinyak@chromium.org> 
30940
30941         [Refactoring] Use isActiveInsertionPoint() instead of isInsertionPoint()
30942         https://bugs.webkit.org/show_bug.cgi?id=100459
30943
30944         Reviewed by Hajime Morita.
30945
30946         Checking InsertionPoint and its activeness with two if-statement is error-prone. We would like to
30947         use a utility function which checks both at once.
30948
30949         We rewrite some lines with such function.
30950
30951         No new tests, simple refactoring.
30952
30953         * dom/ComposedShadowTreeWalker.cpp:
30954         (WebCore::ComposedShadowTreeWalker::traverseNode):
30955         * html/shadow/ContentDistributor.cpp:
30956         (WebCore::ContentDistributor::populate):
30957         (WebCore::ContentDistributor::distribute):
30958         (WebCore::ContentDistributor::distributeNodeChildrenTo):
30959         * html/shadow/InsertionPoint.h:
30960         (WebCore::isInsertionPoint): Since our convention is the argument of this kind of function should not be null,
30961         we would like to make it similar to the other functions.
30962         (WebCore::toInsertionPoint):
30963         (WebCore::isLowerEncapsulationBoundary):
30964
30965 2012-10-29  Patrick Dubroy  <dubroy@chromium.org>
30966
30967         Web Inspector: Fix vertical alignment in toolbar backgrounds and overflow button.
30968         https://bugs.webkit.org/show_bug.cgi?id=100373
30969
30970         Reviewed by Pavel Feldman.
30971
30972         Fix the background image for the selected toolbar item to be vertically centered.
30973         Make close button and toolbar overflow button vertically centered for any toolbar
30974         height.
30975
30976         * inspector/front-end/Toolbar.js: Remove unused variable.
30977         * inspector/front-end/inspector.css:
30978         (.toolbar-item.toggleable):
30979         (body.compact .toolbar-item.toggleable):
30980         (.toolbar-item.toggleable.toggled-on):
30981         (body.compact .toolbar-label):
30982         (#toolbar-dropdown-arrow):
30983         (#close-button-left, #close-button-right):
30984         (.toolbar-item.close-left):
30985         * inspector/front-end/inspector.html:
30986
30987 2012-10-29  Eugene Klyuchnikov  <eustas.bug@gmail.com>
30988
30989         Web Inspector: Timeline: Overview bars do not correspond to timeline bars
30990         https://bugs.webkit.org/show_bug.cgi?id=100500
30991
30992         Reviewed by Yury Semikhatsky.
30993
30994         Fix: do not shorten bars by nested records of the same category.
30995
30996         * inspector/front-end/TimelineOverviewPane.js: Check added.
30997
30998 2012-10-29  Eugene Klyuchnikov  <eustas.bug@gmail.com>
30999
31000         Web Inspector: Timeline: make cpu-monitoring feature available only on capable browsers
31001         https://bugs.webkit.org/show_bug.cgi?id=100530
31002
31003         Reviewed by Yury Semikhatsky.
31004
31005         Motivation: cpu-monitoring feature looks like a glitch,
31006         when it is not supported by browser.
31007
31008         * inspector/Inspector.json: Added capability getter to protocol.
31009         * inspector/InspectorClient.h: Added capability getter.
31010         * inspector/InspectorTimelineAgent.cpp: Proxy to request to client.
31011         * inspector/InspectorTimelineAgent.h: Added capability getter.
31012         * inspector/front-end/Settings.js: Added capability field.
31013         * inspector/front-end/TimelinePanel.js: Check capability.
31014         * inspector/front-end/inspector.js: Forward capability value.
31015
31016 2012-10-29  Antti Koivisto  <antti@apple.com>
31017
31018         Move seamless stylesheet collecting to DocumentStyleSheetCollection
31019         https://bugs.webkit.org/show_bug.cgi?id=100655
31020
31021         Reviewed by Andreas Kling.
31022
31023         Move the code from StyleResolver to DocumentStyleSheetCollection. StyleResolver should focus on resolving style.
31024
31025         * css/StyleResolver.cpp:
31026         (WebCore::StyleResolver::StyleResolver):
31027         
31028             Use standard create() pattern.
31029
31030         (WebCore):
31031         * css/StyleResolver.h:
31032         (StyleResolver):
31033         * dom/Document.cpp:
31034         (WebCore::Document::Document):
31035         * dom/DocumentStyleSheetCollection.cpp:
31036         (WebCore::collectActiveCSSStyleSheetsFromSeamlessParents):
31037         
31038             Since parent activeAuthorStyleSheets() contains all seamlessly inherited sheets too, this does not need to
31039             iterate to ancestors anymore.
31040
31041         (WebCore):
31042         (WebCore::DocumentStyleSheetCollection::updateActiveStyleSheets):
31043         * dom/DocumentStyleSheetCollection.h:
31044         (WebCore::DocumentStyleSheetCollection::create):
31045         (DocumentStyleSheetCollection):
31046         (WebCore::DocumentStyleSheetCollection::styleSheetsForStyleSheetList):
31047         (WebCore::DocumentStyleSheetCollection::activeAuthorStyleSheets):
31048         
31049             activeAuthorStyleSheets() now includes the stylesheets inherited from the seamless parent too.
31050
31051         (WebCore::DocumentStyleSheetCollection::needsUpdateActiveStylesheetsOnStyleRecalc):
31052
31053 2012-10-29  Andreas Kling  <kling@webkit.org>
31054
31055         Don't expose implementation details of StylePropertySet storage.
31056         <http://webkit.org/b/100644>
31057
31058         Reviewed by Antti Koivisto.
31059
31060         Add a StylePropertySet::PropertyReference class, now returned by propertyAt(index).
31061         This will allow us to refactor the internal storage of StylePropertySet without
31062         breaking its API.
31063
31064         A PropertyReference is a simple inlinable wrapper around a StylePropertySet&/index pair.
31065
31066         * css/CSSComputedStyleDeclaration.cpp:
31067         * css/CSSParser.cpp:
31068         * css/CSSParser.h:
31069         * css/SVGCSSParser.cpp:
31070         * css/StylePropertySet.cpp:
31071         (WebCore::StylePropertySet::asText):
31072         (WebCore::StylePropertySet::mergeAndOverrideOnConflict):
31073         (WebCore::StylePropertySet::findPropertyWithId):
31074         (WebCore::StylePropertySet::reportMemoryUsage):
31075         * css/StylePropertySet.h:
31076         (StylePropertySet):
31077         (PropertyReference):
31078         (WebCore::StylePropertySet::PropertyReference::PropertyReference):
31079         (WebCore::StylePropertySet::PropertyReference::id):
31080         (WebCore::StylePropertySet::PropertyReference::isImportant):
31081         (WebCore::StylePropertySet::PropertyReference::isInherited):
31082         (WebCore::StylePropertySet::PropertyReference::cssName):
31083         (WebCore::StylePropertySet::PropertyReference::cssText):
31084         (WebCore::StylePropertySet::PropertyReference::value):
31085         (WebCore::StylePropertySet::PropertyReference::propertyInternal):
31086         (WebCore::StylePropertySet::propertyAt):
31087         (WebCore::StylePropertySet::propertyAtInternal):
31088         (WebCore):
31089         * css/StyleResolver.cpp:
31090         (WebCore::attributeStylesEqual):
31091         (WebCore::StyleResolver::applyProperties):
31092         (WebCore::StyleResolver::resolveVariables):
31093         * editing/ApplyStyleCommand.cpp:
31094         * editing/EditingStyle.cpp:
31095         (WebCore::EditingStyle::mergeStyle):
31096         (WebCore::EditingStyle::mergeStyleFromRulesForSerialization):
31097         * editing/Editor.cpp:
31098         * editing/markup.cpp:
31099         * page/Frame.cpp:
31100         * svg/SVGFontFaceElement.cpp:
31101
31102 2012-10-29  Kent Tamura  <tkent@chromium.org>
31103
31104         Move LocaleWin.{cpp,h} to platform/text/win/
31105         https://bugs.webkit.org/show_bug.cgi?id=100641
31106
31107         Reviewed by Kentaro Hara.
31108
31109         We have platform/text/win/ directory. Windows-specific files should be
31110         in it.
31111         Note that these files are used only in Chromium-win for now.
31112
31113         No new tests. This doesn't change any behavior.
31114
31115         * WebCore.gyp/WebCore.gyp: Fix path names.
31116         * WebCore.gypi: Ditto.
31117         * platform/text/win/LocaleWin.cpp: Renamed from Source/WebCore/platform/text/LocaleWin.cpp.
31118         * platform/text/win/LocaleWin.h: Renamed from Source/WebCore/platform/text/LocaleWin.h.
31119
31120 2012-10-29  Kent Tamura  <tkent@chromium.org>
31121
31122         Rename Localizer to Locale
31123         https://bugs.webkit.org/show_bug.cgi?id=100634
31124
31125         Reviewed by Kentaro Hara.
31126
31127         - Rename Localizer class to Locale
31128         - Rename localizer with locale in variable names
31129         - Rename localizer with locale in function names
31130
31131         No new tests. This doesn't make any behavior changes.
31132
31133         * dom/Document.h:
31134         (WebCore): Declare Locale instead of Localizer.
31135         (Document):
31136         - Rename getCachedLocalizer to getCachedLocale.
31137         - Rename LocaleToLocalizerMap to LocaleIdentifierToLocaleMap.
31138         - Rename m_localizerCache to m_localeCache.
31139         * dom/Document.cpp:
31140         (WebCore::Document::getCachedLocale): Follow renamings.
31141         * dom/Element.h:
31142         (WebCore): Declare Locale instead of Localizer.
31143         (Element): Rename localizer() to locale().
31144         * dom/Element.cpp:
31145         (WebCore::Element::locale): Follow renamings.
31146
31147         * html/BaseDateAndTimeInputType.cpp:
31148         (WebCore::BaseDateAndTimeInputType::localizeValue): Ditto.
31149         (WebCore::BaseDateAndTimeInputType::convertFromVisibleValue): Ditto.
31150         * html/BaseMultipleFieldsDateAndTimeInputType.cpp:
31151         (WebCore::BaseMultipleFieldsDateAndTimeInputType::updateInnerTextValue): Ditto.
31152         * html/DateInputType.cpp:
31153         (WebCore::DateInputType::fixedPlaceholder): Ditto.
31154         (WebCore::DateInputType::setupLayoutParameters): Ditto.
31155         * html/DateTimeInputType.cpp:
31156         (WebCore::DateTimeInputType::setupLayoutParameters): Ditto.
31157         * html/DateTimeLocalInputType.cpp:
31158         (WebCore::DateTimeLocalInputType::setupLayoutParameters): Ditto.
31159         * html/MonthInputType.cpp:
31160         (WebCore::MonthInputType::setupLayoutParameters): Ditto.
31161         * html/NumberInputType.cpp:
31162         (WebCore::NumberInputType::localizeValue): Ditto.
31163         (WebCore::NumberInputType::convertFromVisibleValue): Ditto.
31164         * html/TimeInputType.cpp:
31165         (WebCore::TimeInputType::localizeValue): Ditto.
31166         (WebCore::TimeInputType::setupLayoutParameters): Ditto.
31167
31168         * html/shadow/DateTimeEditElement.h:
31169         (WebCore): Declare Locale instead of Localizer.
31170         (LayoutParameters): Rename localizer data member to locale.
31171         (WebCore::DateTimeEditElement::LayoutParameters::LayoutParameters): Follow renamings.
31172         * html/shadow/DateTimeEditElement.cpp:
31173         (WebCore::DateTimeEditBuilder::visitField): Ditto.
31174         * html/shadow/DateTimeNumericFieldElement.h:
31175         (DateTimeNumericFieldElement): Rename localizerForOwner to localeForOwner.
31176         * html/shadow/DateTimeNumericFieldElement.cpp:
31177         (WebCore::DateTimeNumericFieldElement::formatValue): Follow renamings.
31178         (WebCore::DateTimeNumericFieldElement::handleKeyboardEvent): Ditto.
31179         (WebCore::DateTimeNumericFieldElement::localeForOwner): Ditto.
31180         * page/PagePopupClient.h:
31181         (WebCore): Declare Locale instead of Localizer.
31182         (PagePopupClient): Rename localizer member function to locale.
31183         * page/PagePopupController.cpp:
31184         (WebCore::PagePopupController::localizeNumberString): Follow renamings.
31185
31186         * platform/text/PlatformLocale.cpp: Rename the Localizer class to Locale.
31187         (DateTimeStringBuilder):
31188         (WebCore::DateTimeStringBuilder::DateTimeStringBuilder):
31189         (WebCore::Locale::~Locale):
31190         (WebCore::Locale::setLocaleData): Renamed from setLocalizerData.
31191         (WebCore::Locale::convertToLocalizedNumber):
31192         (WebCore::Locale::detectSignAndGetDigitRange):
31193         (WebCore::Locale::matchedDecimalSymbolIndex):
31194         (WebCore::Locale::convertFromLocalizedNumber):
31195         (WebCore::Locale::localizedDecimalSeparator):
31196         (WebCore::Locale::dateTimeFormatWithSeconds):
31197         (WebCore::Locale::dateTimeFormatWithoutSeconds):
31198         (WebCore::Locale::formatDateTime):
31199         * platform/text/PlatformLocale.h: Update the ifndef macro.
31200         (Locale): Renamed from Localizer. Also, renamed the followings:
31201          - initializeLocalizerData -> initializeLocaleData
31202          - setLocalizerData -> setLocaleData
31203          - m_hasLocalizerData -> m_hasLocaleData
31204         (WebCore::Locale::Locale):
31205         (WebCore::Locale::createDefault):
31206         * platform/text/LocaleICU.cpp: Follow renamings.
31207         * platform/text/LocaleICU.h: Ditto.
31208         * platform/text/LocaleNone.cpp: Ditto.
31209         * platform/text/LocaleWin.cpp: Ditto.
31210         * platform/text/LocaleWin.h: Ditto.
31211         * platform/text/mac/LocaleMac.h: Ditto.
31212         * platform/text/mac/LocaleMac.mm: Ditto.
31213
31214 2012-10-29  Mike West  <mkwst@chromium.org>
31215
31216         Web Inspector: Error messages lines in console are 1px taller than regular messages
31217         https://bugs.webkit.org/show_bug.cgi?id=100521
31218
31219         Reviewed by Pavel Feldman.
31220
31221         The inspector is adding a 1px bottom border to list elements inside
31222         a disclosure list. This is unnecessary in the current layout; it's
31223         causing console messages with stack traces to be one pixel taller than
31224         other console messages, which this patch fixes.
31225
31226         As a drive-by, this patch also adjusts the disclosure triangle's
31227         position to match.
31228
31229         * inspector/front-end/inspector.css:
31230         (.outline-disclosure li):
31231         (.outline-disclosure li.parent::before):
31232
31233 2012-10-29  Mike West  <mkwst@chromium.org>
31234
31235         Web Inspector: The bubble for repeated errors is misplaced.
31236         https://bugs.webkit.org/show_bug.cgi?id=100525
31237
31238         Reviewed by Pavel Feldman.
31239
31240         The repeated-message bubble is displayed as an inline-block element,
31241         which works well as long as no stack trace is present. If present, the
31242         message is wrapped in an 'ol' element displayed as a block, which pushes
31243         itself down to the next line.
31244
31245         To avoid that issue, this patch switches the wrapper element to flexbox,
31246         glorious flexbox.
31247
31248         * inspector/front-end/inspector.css:
31249         (.console-message .bubble):
31250         (.repeated-message .outline-disclosure):
31251         (.filter-all .console-log-level.repeated-message, .filter-logs .console-log-level.repeated-message):
31252
31253 2012-10-29  Alexander Pavlov  <apavlov@chromium.org>
31254
31255         Web Inspector: [Styles] Handle non-parsedOk properties as inactive ones
31256         https://bugs.webkit.org/show_bug.cgi?id=100119
31257
31258         Reviewed by Vsevolod Vlasov.
31259
31260         Test: inspector/styles/inactive-properties.html
31261
31262         * inspector/front-end/StylesSidebarPane.js:
31263         (WebInspector.StylesSidebarPane.createExclamationMark):
31264         (WebInspector.ComputedStylePropertiesSection.prototype.rebuildComputedTrace):
31265         * inspector/front-end/elementsPanel.css:
31266         (.styles-section.computed-style .properties li.not-parsed-ok):
31267         (.styles-section.computed-style .properties li.not-parsed-ok img.exclamation-mark):
31268         (.styles-section .properties .not-parsed-ok):
31269
31270 2012-10-29  Eric Seidel  <eric@webkit.org>
31271
31272         Make rendering tables with <colgroups> twice as fast by avoiding walking the DOM for colgroups 4 times for each cell
31273         https://bugs.webkit.org/show_bug.cgi?id=100630
31274
31275         Reviewed by Ojan Vafai.
31276
31277         This is not a complete fix.  Our rendering of this large tables still takes 7.8 seconds
31278         on my retina MBP (down from 14.3s before this change).
31279         It's very expensive to walk the DOM each time we call RenderTable::colElement
31280         so this caches the RenderTableCol* in a vector for easier walking.
31281         We invalidate the cache any time a RenderTableCol is added or removed from the
31282         rendering sub-tree to avoid holding a bad pointer.
31283
31284         * rendering/RenderTable.cpp:
31285         (WebCore::RenderTable::RenderTable):
31286         (WebCore::RenderTable::invalidateCachedColumns):
31287         (WebCore):
31288         (WebCore::RenderTable::addColumn):
31289         (WebCore::RenderTable::removeColumn):
31290         (WebCore::RenderTable::updateColumnCache):
31291         (WebCore::RenderTable::slowColElement):
31292         * rendering/RenderTable.h:
31293         (RenderTable):
31294         * rendering/RenderTableCol.cpp:
31295         (WebCore::RenderTableCol::insertedIntoTree):
31296         (WebCore):
31297         (WebCore::RenderTableCol::willBeRemovedFromTree):
31298         * rendering/RenderTableCol.h:
31299
31300 2012-10-28  Kent Tamura  <tkent@chromium.org>
31301
31302         Rename Localizer.{cpp,h} to PlatformLocale.{cpp,h}
31303         https://bugs.webkit.org/show_bug.cgi?id=100627
31304
31305         Reviewed by Yuta Kitamura.
31306
31307         We'd like to rename Localizer class to Locale class. However we use
31308         PlatformLocale.cpp and PlatformLocale.h as their file names because
31309         <locale.h> exists in the C standard.  In this patch, we rename only file
31310         names. We're going to rename the class name later.
31311
31312         No new tests. This doesn't make any behavior change.
31313
31314         * platform/text/PlatformLocale.h: Renamed from Source/WebCore/platform/text/Localizer.h.
31315         * platform/text/PlatformLocale.cpp: Renamed from Source/WebCore/platform/text/Localizer.cpp.
31316         Follow the Localizer.h -> PlatformLocale.cpp renaming.
31317
31318         * CMakeLists.txt: Follow the file name renaming.
31319         * GNUmakefile.list.am: Ditto.
31320         * Target.pri: Ditto.
31321         * WebCore.gypi: Ditto.
31322         * WebCore.vcproj/WebCore.vcproj: Ditto.
31323         * WebCore.xcodeproj/project.pbxproj: Ditto.
31324         * dom/Document.cpp: Ditto.
31325         * html/BaseDateAndTimeInputType.cpp: Ditto.
31326         * html/BaseMultipleFieldsDateAndTimeInputType.cpp: Ditto.
31327         * html/DateInputType.cpp: Ditto.
31328         * html/DateTimeInputType.cpp: Ditto.
31329         * html/DateTimeLocalInputType.cpp: Ditto.
31330         * html/MonthInputType.cpp: Ditto.
31331         * html/NumberInputType.cpp: Ditto.
31332         * html/TimeInputType.cpp: Ditto.
31333         * html/shadow/DateTimeEditElement.cpp: Ditto.
31334         * html/shadow/DateTimeNumericFieldElement.cpp: Ditto.
31335         * page/PagePopupController.cpp: Ditto.
31336         * platform/text/LocaleICU.h: Ditto.
31337         * platform/text/LocaleNone.cpp: Ditto.
31338         * platform/text/LocaleWin.h: Ditto.
31339         * platform/text/mac/LocaleMac.h: Ditto.
31340
31341 2012-10-28  Shinya Kawanaka  <shinyak@chromium.org>
31342
31343         The shadow element is not reprojected to a nested ShadowRoot.
31344         https://bugs.webkit.org/show_bug.cgi?id=99228
31345
31346         Reviewed by Dimitri Glazkov.
31347
31348         We support shadow reprojection; elements distributed to <shadow> element can be reprojected to <content> now.
31349
31350         First, we have a distribution vector for each InsertionPoint, even if InsertionPoint is a shadow insertion point.
31351         And we update a node-distribution map. Basically We're creating a map from node to InsertionPoint in ElementShadow.
31352         If a node can be distributed to several InsertionPoint (e.g. in case reprojection happens),
31353         the InsertionPoint in older ShadowDOM is chosen.
31354
31355         We also fix ComposedShadowTreeWalker to consider shadow reprojection.
31356
31357         Tests: fast/dom/shadow/composed-shadow-tree-walker-shadow-reprojection.html
31358                fast/dom/shadow/shadow-reprojection-click.html
31359                fast/dom/shadow/shadow-reprojection-dynamic.html
31360                fast/dom/shadow/shadow-reprojection-fallback.html
31361                fast/dom/shadow/shadow-reprojection.html
31362                fast/dom/shadow/shadow-reprojection2.html
31363
31364         * css/StyleResolver.cpp:
31365         (WebCore::shouldResetStyleInheritance): Now context.insertionPoint() returns the final insertion point where
31366         a node is distributed. So we don't have to trace shadow insertion point anymore here.
31367         (WebCore::StyleResolver::styleForElement): Since a direct child of ShadowRoot can be distributed now. In that case,
31368         we don't have any parentElement. The parent node is a ShadowRoot in that case.
31369         * dom/ComposedShadowTreeWalker.cpp:
31370         (WebCore::nodeCanBeDistributed): If a node can be distributed, returns true.
31371         (WebCore):
31372         (WebCore::resolveReprojection): Resolves content-reprojection and shadow-reprojection both.
31373         (WebCore::ComposedShadowTreeWalker::traverseSiblingOrBackToInsertionPoint):
31374         (WebCore::ComposedShadowTreeWalker::traverseParent):
31375         (WebCore::ComposedShadowTreeWalker::traverseParentBackToYoungerShadowRootOrHost): A case ShadowRoot is assigned
31376         to some InsertionPoint should be handled with in traverseSiblingOrBackToInsertionPoint. So we remove it.
31377         (WebCore::AncestorChainWalker::parent): Now we have a case that a direct child of ShadowRoot can be distributed.
31378         In that case, we should not update m_distributedNode.
31379         * dom/ElementShadow.cpp:
31380         (WebCore::ElementShadow::insertionPointFor): Since we have a distribution vector for each InsertionPoint,
31381         we don't have a special case that a ShadowRoot is assigned to some InsertionPoint. Actually the existing code
31382         is not correct now due to shadow reprojection.
31383         * html/shadow/ContentDistributor.cpp:
31384         (WebCore::ContentDistributor::populate): Populate a POOL. If a node is InsertionPoint, we fill it with the
31385         distributed nodes.
31386         (WebCore):
31387         (WebCore::ContentDistributor::distribute): Since we want to make a distribution vector for each InsertionPoint,
31388         we have to resolve a shadow InsertionPoint
31389         (WebCore::ContentDistributor::distributeNodeChildrenTo):
31390         * html/shadow/ContentDistributor.h:
31391         (ContentDistributor):
31392         * html/shadow/HTMLShadowElement.h:
31393         (WebCore::toHTMLShadowElement):
31394         (WebCore):
31395         * html/shadow/InsertionPoint.h:
31396         (WebCore::parentNodeForDistribution):
31397         (WebCore::parentElementForDistribution):
31398         (WebCore):
31399
31400 2012-10-28  Kunihiko Sakamoto  <ksakamoto@chromium.org>
31401
31402         Webkit adds a boundary to the Content-Type: text/plain POST header
31403         https://bugs.webkit.org/show_bug.cgi?id=100445
31404
31405         Reviewed by Kent Tamura.
31406
31407         Fixed a bug where an empty boundary parameter was added to Content-Type
31408         header when POSTing forms with enctype=text/plain.
31409
31410         Test: http/tests/misc/form-post-textplain.html
31411
31412         * loader/FormSubmission.cpp:
31413         (WebCore::FormSubmission::populateFrameLoadRequest): Add boundary parameter to
31414         Content-Type only when a boundary string is generated.
31415
31416 2012-10-28  Philip Rogers  <pdr@google.com>
31417
31418         Cache calcMode() value for SVG animations.
31419         https://bugs.webkit.org/show_bug.cgi?id=99694
31420
31421         Reviewed by Eric Seidel.
31422
31423         This patch refactors SVGAnimationElement::calcMode() to return a cached value instead
31424         of recalculating its value on every call. On a simple test of 100 rectangles with 100
31425         animations each, calls to calcMode() account for 3% of the total animation. After this
31426         patch, calcMode() no longer appears in animation profiles at all.
31427
31428         No new tests as this functionality is covered by existing tests.
31429
31430         * svg/SVGAnimateMotionElement.cpp:
31431         (WebCore::SVGAnimateMotionElement::SVGAnimateMotionElement):
31432
31433             The default calcMode for all animation types is linear except AnimateMotion,
31434             which defaults to CalcModePaced.
31435             See: http://www.w3.org/TR/SVG/single-page.html#animate-CalcModeAttribute
31436
31437         * svg/SVGAnimationElement.cpp:
31438         (WebCore::SVGAnimationElement::SVGAnimationElement):
31439         (WebCore::SVGAnimationElement::isSupportedAttribute):
31440         (WebCore::SVGAnimationElement::parseAttribute):
31441         (WebCore::SVGAnimationElement::setCalcMode):
31442         * svg/SVGAnimationElement.h:
31443         (WebCore::SVGAnimationElement::calcMode):
31444         (WebCore::SVGAnimationElement::setCalcMode):
31445         (SVGAnimationElement):
31446
31447 2012-10-28  Dimitri Glazkov  <dglazkov@chromium.org>
31448
31449         Get rid of StyleResolver state related to unknown pseudo-elements.
31450         https://bugs.webkit.org/show_bug.cgi?id=100582
31451
31452         Reviewed by Eric Seidel.
31453
31454         All of the state, related to unknown pseudo-elements is already understood at the time of collecting rules.
31455         We can just get rid of most of this code in StyleResolver.
31456
31457         At the time of matching rules, we know for certain that only rules that contain unknown pseudo-elements,
31458         or are UA rules, or are explicitly invited by a TreeScope will match. So we can just return early in many cases.
31459
31460         No change in behavior, covered by existing tests.
31461
31462         * css/SelectorChecker.cpp:
31463         (WebCore::SelectorChecker::checkSelector): Removed now-unnecessary param.
31464         (WebCore::SelectorChecker::checkOneSelector): Ditto.
31465         * css/SelectorChecker.h:
31466         (SelectorChecker): Ditto.
31467         * css/StyleResolver.cpp:
31468         (WebCore::StyleResolver::StyleResolver): Ditto.
31469         (MatchingUARulesScope): Moved class definition here, since we now use it in a different place.
31470         (WebCore::StyleResolver::collectMatchingRules): Changed the logic to stop matching rules that definitely won't match in a different scope.
31471         (WebCore::StyleResolver::collectMatchingRulesForList): Removed code that's now unnecesssary.
31472         (WebCore::StyleResolver::checkSelector): Removed now-unnecessary param.
31473         (WebCore::StyleResolver::checkRegionSelector): Removed weird dead code.
31474         * css/StyleResolver.h:
31475         (StyleResolver): Removed now-unnecessary member.
31476
31477 2012-10-28  Sheriff Bot  <webkit.review.bot@gmail.com>
31478
31479         Unreviewed, rolling out r132696.
31480         http://trac.webkit.org/changeset/132696
31481         https://bugs.webkit.org/show_bug.cgi?id=100609
31482
31483         Needs a bit more clean-up on Chrome Web UI side. (Requested by
31484         dglazkov on #webkit).
31485
31486         * rendering/RenderBlock.cpp:
31487         (WebCore::RenderBlock::updateFirstLetter):
31488         * rendering/RenderListBox.h:
31489         * rendering/RenderObjectChildList.cpp:
31490         (WebCore::RenderObjectChildList::updateBeforeAfterContent):
31491
31492 2012-10-27  Alexey Proskuryakov  <ap@apple.com>
31493
31494         All tests crash in WebKit1 mode
31495         https://bugs.webkit.org/show_bug.cgi?id=100602
31496
31497         Reviewed by Sam Weinig.
31498
31499         * platform/PlatformStrategies.cpp: (WebCore::setPlatformStrategies): Fix an incorrect
31500         assertion - if this function is called twice, it should be with the same strategy.
31501
31502 2012-10-27  Anders Carlsson  <andersca@apple.com>
31503
31504         Fix AVFoundation build.
31505
31506         * platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
31507         (WebCore::MediaPlayerPrivateAVFoundationObjC::addKey):
31508
31509 2012-10-27  David Barton  <dbarton@mathscribe.com>
31510
31511         ASSERTION FAILED: m_next in LayoutState.cpp
31512         https://bugs.webkit.org/show_bug.cgi?id=99796
31513
31514         Reviewed by Eric Seidel.
31515
31516         Before RenderMathMLBlock::computeChildrenPreferredLogicalHeights calls child->layoutIfNeeded(),
31517         it must ensure a layoutState exists. We disable it in any case, since we are just calculating
31518         metrics here, and the final layout may well happen again.
31519
31520         No new tests. I don't know how to create an automated test for this. The crashes users are
31521         seeing are flaky.
31522
31523         * rendering/mathml/RenderMathMLBlock.cpp:
31524         (WebCore::RenderMathMLBlock::computeChildrenPreferredLogicalHeights):
31525
31526 2012-10-27  David Barton  <dbarton@mathscribe.com>
31527
31528         [MathML] Improve some addChild methods
31529         https://bugs.webkit.org/show_bug.cgi?id=98791
31530
31531         Reviewed by Eric Seidel.
31532
31533         MathML addChild methods need to handle any anonymous renderers correctly. Actually, most MathML elements have a fixed
31534         number of children, so conformant javascript won't be doing arbitrary addChild and removeChild calls. However, we don't
31535         want any assertions to fail, and we do want addChild to work correctly when beforeChild == 0, to build up the original
31536         renderer, and then replaceChild at least should work correctly after that. We therefore clean up these routines before
31537         giving them to the chromium fuzzers.
31538         
31539         It's best to build the anonymous wrappers just once initially if possible, so empty wrappers aren't left in the render
31540         tree after later removeChild calls.
31541
31542         Test: mathml/presentation/dynamic.html added for mfrac and msqrt. There are already tests for dynamically changing
31543         msub/sup elements, in mathml/presentation/m*-changed.xhtml.
31544
31545         * rendering/mathml/RenderMathMLFraction.cpp:
31546         (WebCore::RenderMathMLFraction::addChild):
31547             - The two wrappers are built initially. Also, the old RenderMathMLBlock::addChild(row, beforeChild); doesn't really
31548               work because beforeChild is buried inside a wrapper. This new routine allows the numerator and denominator to be
31549               added initially, and then later replaced with replaceChild. It's not clear whether e.g. a plain removeChild of a
31550               numerator should move the remaining child from the denominator to the numerator or not, so we ignore that for now.
31551         * rendering/mathml/RenderMathMLRoot.cpp:
31552         (WebCore::RenderMathMLRoot::addChild):
31553             - A bit of bullet-proofing for the fuzzers.
31554         * rendering/mathml/RenderMathMLSubSup.cpp:
31555         (WebCore::RenderMathMLSubSup::addChild):
31556             - Like RenderMathMLFraction::addChild, we create the wrappers once initially, and then fill them dynamically.
31557
31558 2012-10-27  Levi Weintraub  <leviw@chromium.org>
31559
31560         Background images can incorrectly repeat with sub-pixel layout
31561         https://bugs.webkit.org/show_bug.cgi?id=94622
31562
31563         Reviewed by Emil A Eklund.
31564
31565         Attempting to better match author expectations when painting tiled background images. When under
31566         the effects of zoom with sub-pixel layout enabled, the drawn size of a rendered element can
31567         differ depending on its location. This change looks at the size of the scaled tiled background
31568         image size, and either ceils or floors that value depending on if tiling that value will
31569         result in us being one pixel or less short of covering the background size. This is a heuristic,
31570         as sub-pixel/zooming isn't specced.
31571
31572         Test: fast/sub-pixel/scaled-background-image.html
31573
31574         * rendering/RenderBoxModelObject.cpp:
31575         (WebCore::applySubPixelHeuristicForTileSize):
31576         (WebCore):
31577         (WebCore::RenderBoxModelObject::calculateFillTileSize):
31578
31579 2012-10-27  Sheriff Bot  <webkit.review.bot@gmail.com>
31580
31581         Unreviewed, rolling out r132725.
31582         http://trac.webkit.org/changeset/132725
31583         https://bugs.webkit.org/show_bug.cgi?id=100596
31584
31585         it broke linking on chromium debug bots (Requested by loislo
31586         on #webkit).
31587
31588         * inspector/InspectorMemoryAgent.cpp:
31589         (WebCore::addPlatformComponentsInfo):
31590         (WebCore):
31591         (WebCore::InspectorMemoryAgent::getProcessMemoryDistribution):
31592         * platform/MemoryUsageSupport.cpp:
31593         (WebCore::MemoryUsageSupport::memoryUsageByComponents):
31594         * platform/MemoryUsageSupport.h:
31595         (ComponentInfo):
31596         (WebCore::MemoryUsageSupport::ComponentInfo::ComponentInfo):
31597         (MemoryUsageSupport):
31598         * platform/PlatformMemoryInstrumentation.cpp:
31599         (WebCore):
31600         * platform/PlatformMemoryInstrumentation.h:
31601         (PlatformMemoryTypes):
31602         * platform/chromium/MemoryUsageSupportChromium.cpp:
31603         (WebCore::MemoryUsageSupport::memoryUsageByComponents):
31604         * platform/qt/MemoryUsageSupportQt.cpp:
31605         (WebCore::MemoryUsageSupport::memoryUsageByComponents):
31606
31607 2012-10-27  Dan Bernstein  <mitz@apple.com>
31608
31609         REAL_PLATFORM_NAME build setting is no longer needed
31610         https://bugs.webkit.org/show_bug.cgi?id=100587
31611
31612         Reviewed by Mark Rowe.
31613
31614         Removed the definition of REAL_PLATFORM_NAME and replaced references to it with references
31615         to PLATFORM_NAME.
31616
31617         * Configurations/Base.xcconfig:
31618         * Configurations/CompilerVersion.xcconfig:
31619         * Configurations/DebugRelease.xcconfig:
31620         * Configurations/FeatureDefines.xcconfig:
31621         * Configurations/Version.xcconfig:
31622         * Configurations/WebCore.xcconfig:
31623
31624 2012-10-27  Tony Chang  <tony@chromium.org>
31625
31626         Remove internals shouldDisplayTrackKind methods; these are also on internals.settings
31627         https://bugs.webkit.org/show_bug.cgi?id=100564
31628
31629         Reviewed by Adam Barth.
31630
31631         Remove duplicate methods from internals that was just forwarding on the call to internals.settings.
31632         Also fix a bug where we didn't reset these settings properly.
31633
31634         No new tests, this is covered by existing media/track tests.
31635
31636         * testing/InternalSettings.cpp:
31637         (WebCore::InternalSettings::Backup::Backup): Properly save display track settings.
31638         (WebCore::InternalSettings::Backup::restoreTo): Restore display track settings.
31639         * testing/InternalSettings.h:
31640         * testing/InternalSettings.idl: Use [Conditional=VIDEO_TRACK].
31641         * testing/Internals.cpp: Remove code.
31642         * testing/Internals.h: Remove code.
31643         * testing/Internals.idl: Remove code.
31644
31645 2012-10-26  Ilya Tikhonovsky  <loislo@chromium.org>
31646
31647         Web Inspector: instrument chromium GlyphCache. It keeps ~2mb.
31648         https://bugs.webkit.org/show_bug.cgi?id=100515
31649
31650         Reviewed by Yury Semikhatsky.
31651
31652         I replaced old version with an abstract number with new one which precisely reports allocated SkGlyphCache objects and their sizes.
31653
31654         * inspector/InspectorMemoryAgent.cpp:
31655         (WebCore::InspectorMemoryAgent::getProcessMemoryDistribution):
31656         * platform/MemoryUsageSupport.cpp:
31657         (WebCore::MemoryUsageSupport::reportMemoryUsage):
31658         * platform/MemoryUsageSupport.h:
31659         (MemoryUsageSupport):
31660         * platform/PlatformMemoryInstrumentation.cpp:
31661         (WebCore):
31662         * platform/PlatformMemoryInstrumentation.h:
31663         (PlatformMemoryTypes):
31664         * platform/chromium/MemoryUsageSupportChromium.cpp:
31665         (reportMemoryUsage):
31666         (WebCore::reportGlyphCache):
31667         (WebCore):
31668         (WebCore::MemoryUsageSupport::reportMemoryUsage):
31669         * platform/qt/MemoryUsageSupportQt.cpp:
31670         (WebCore::MemoryUsageSupport::reportMemoryUsage):
31671
31672 2012-10-26  Philip Rogers  <pdr@google.com>
31673
31674         Prevent NaN offset values in ElementTimeControl.
31675         https://bugs.webkit.org/show_bug.cgi?id=100322
31676
31677         Reviewed by Abhishek Arya.
31678
31679         NaN values can cause ElementTimeControl to go back in time!
31680         If a value of NaN is passed to ElementTimeControl::beginElementAt(offset),
31681         subsequent sorting will cause an assert in SVGSMILElement::findInstanceTime
31682         because NaN values are not properly sorted. NaN SMILTime values
31683         should not be allowed at all, so this patch adds a check for them in
31684         ElementTimeControl's setters.
31685  
31686         This patch also adds preventative asserts to catch if SMILTime is ever
31687         initialized with NaN, or if addEndTime/addBeginTime are ever called
31688         with NaN values.
31689
31690         Test: svg/custom/elementTimeControl-nan-crash.html
31691
31692         * svg/SVGAnimationElement.cpp:
31693         (WebCore::SVGAnimationElement::beginElementAt):
31694         (WebCore::SVGAnimationElement::endElementAt):
31695         * svg/animation/SMILTime.h:
31696         (WebCore::SMILTime::SMILTime):
31697         * svg/animation/SVGSMILElement.cpp:
31698         (WebCore::SVGSMILElement::addBeginTime):
31699         (WebCore::SVGSMILElement::addEndTime):
31700
31701 2012-10-26  Charles Wei  <charles.wei@torchmobile.com.cn>
31702
31703         [BlackBerry] Browser prematurely sends wrong credentials
31704         https://bugs.webkit.org/show_bug.cgi?id=100585
31705
31706         Reviewed by Yong Li.
31707
31708         Manually revert the patch for bug 96362, which causes regressions and the right patch has been
31709         submitted with patch for bug 100448. Since the auto-revert fails, we use this patch to manually
31710         revert.
31711
31712         No new tests. The test is coverted by patch for 100448.
31713
31714         * platform/network/blackberry/CredentialBackingStore.cpp:
31715         * platform/network/blackberry/CredentialBackingStore.h:
31716         (CredentialBackingStore):
31717         * platform/network/blackberry/NetworkManager.cpp:
31718         (WebCore::NetworkManager::startJob):
31719
31720 2012-10-26  Brady Eidson  <beidson@apple.com>
31721
31722         Have NetworkProcess manage resource load scheduling.
31723         https://bugs.webkit.org/show_bug.cgi?id=100479
31724
31725         Reviewed by Alexey Proskuryakov.
31726
31727         Down in WebCore we need to virtualize a handful of ResourceLoadScheduler methods
31728         to be overridden by WebKit's implementation.
31729
31730         No new tests (No change in Core behavior).
31731
31732         * WebCore.exp.in:
31733         * WebCore.xcodeproj/project.pbxproj:
31734
31735         * loader/ResourceLoadScheduler.cpp:
31736         (WebCore::resourceLoadScheduler): Gracefully handle LoaderStrategies wanting to return the default scheduler.
31737         (WebCore::ResourceLoadScheduler::scheduleLoad): Call notifyDidScheduleResourceRequest.
31738         (WebCore::ResourceLoadScheduler::notifyDidScheduleResourceRequest): Moved InspectorInstrumentation call
31739           here so derived classes can do it indirectly.
31740         (WebCore::ResourceLoadScheduler::startResourceLoader): To allow derived classes the ability to call
31741           ResourceLoader::start() which only ResourceLoadScheduler can do.
31742
31743         * loader/ResourceLoadScheduler.h:
31744         (ResourceLoadScheduler): Virtualize some core public methods so they can be overridden.
31745         (WebCore::ResourceLoadScheduler::setSerialLoadingEnabled): Make virtual.
31746         (WebCore::ResourceLoadScheduler::isSuspendingPendingRequests): Make private as it's internal only.
31747
31748         * loader/ResourceLoader.cpp:
31749         (WebCore::ResourceLoader::setIdentifier): Add this setter so outside clients can manually change the identifier.
31750
31751         * loader/ResourceLoader.h:
31752         (WebCore::ResourceLoader::identifier): Change identifier to explicitly be uint64_t.
31753         (WebCore::ResourceLoader::request): Make public.
31754         (ResourceLoader):
31755
31756 2012-10-26  Chris Rogers  <crogers@google.com>
31757
31758         Implement AudioBufferSourceNode .loopStart and .loopEnd attributes
31759         https://bugs.webkit.org/show_bug.cgi?id=100170
31760
31761         Reviewed by Kenneth Russell.
31762
31763         AudioBufferSourceNode currently only supports looping of an entire AudioBuffer.
31764         Sample-based synthesis is a very common technique which requires "internal" loop-points.
31765         For example, the first part of the sample data might represent the attack portion of
31766         a synthesized instrument, which then enters a loop portion.
31767
31768         Tests: webaudio/audiobuffersource-loop-comprehensive.html
31769                webaudio/audiobuffersource-loop-points.html
31770
31771         * Modules/webaudio/AudioBufferSourceNode.cpp:
31772         (WebCore::AudioBufferSourceNode::AudioBufferSourceNode):
31773         (WebCore::AudioBufferSourceNode::process):
31774         (WebCore::AudioBufferSourceNode::renderFromBuffer):
31775         * Modules/webaudio/AudioBufferSourceNode.h:
31776         (AudioBufferSourceNode):
31777         (WebCore::AudioBufferSourceNode::loopStart):
31778         (WebCore::AudioBufferSourceNode::loopEnd):
31779         (WebCore::AudioBufferSourceNode::setLoopStart):
31780         (WebCore::AudioBufferSourceNode::setLoopEnd):
31781         * Modules/webaudio/AudioBufferSourceNode.idl:
31782
31783 2012-10-26  Daniel Cheng  <dcheng@chromium.org>
31784
31785         dragover's default action should prevent drop for file drags
31786         https://bugs.webkit.org/show_bug.cgi?id=79173
31787
31788         Reviewed by Tony Chang.
31789
31790         During a file drag, we need to keep track of whether or not the document has cancelled the
31791         dragover action. We should only send a drop event if the dragover event was cancelled; this
31792         matches the behavior of the spec, as well as IE, Gecko, and Opera. The relevant sections
31793         from the spec are the sections pertaining to dragover and drop events at:
31794         http://www.whatwg.org/specs/web-apps/current-work/#drag-and-drop-processing-model
31795
31796         Test: fast/events/only-valid-drop-targets-receive-file-drop.html
31797
31798         * page/DragController.cpp:
31799         (WebCore::DragController::performDrag):
31800         (WebCore::DragController::dragEnteredOrUpdated):
31801         (WebCore::DragController::tryDocumentDrag):
31802         * page/DragController.h:
31803         (DragController): Cleanup to repurpose a variable that doesn't need to be a member anymore
31804                           and remove the corresponding getter/setter.
31805
31806 2012-10-26  Nico Weber  <thakis@chromium.org>
31807
31808         Fix a operator ordering bug in SVGSMILElement::calculateAnimationPercentAndRepeat
31809         https://bugs.webkit.org/show_bug.cgi?id=94756
31810
31811         Reviewed by Dirk Schulze.
31812
31813         The function has an early exit for !simpleDuration.value(), so
31814         !simpleDuration.value() always is 0 when passed as second parameter to
31815         fmod(), which means fmod() always returns NaN, which always evaluates
31816         to true. Simplify the code by removing that explicit check.
31817
31818         No observable behavior change.
31819
31820         Covered by existing svg tests.
31821
31822         * svg/animation/SVGSMILElement.cpp:
31823         (WebCore::SVGSMILElement::calculateAnimationPercentAndRepeat):
31824
31825 2012-10-26  Sheriff Bot  <webkit.review.bot@gmail.com>
31826
31827         Unreviewed, rolling out r132695.
31828         http://trac.webkit.org/changeset/132695
31829         https://bugs.webkit.org/show_bug.cgi?id=100581
31830
31831         caused 20+ test crashes on bots (Requested by estes on
31832         #webkit).
31833
31834         * dom/ContainerNode.cpp:
31835         (WebCore::ContainerNode::suspendPostAttachCallbacks):
31836         (WebCore::ContainerNode::resumePostAttachCallbacks):
31837         * loader/MainResourceLoader.cpp:
31838         (WebCore::MainResourceLoader::loadNow):
31839         * loader/ResourceLoadScheduler.cpp:
31840         (WebCore::resourceLoadScheduler):
31841         * loader/ResourceLoadScheduler.h:
31842         * loader/ResourceLoader.cpp:
31843         (WebCore::ResourceLoader::releaseResources):
31844         (WebCore::ResourceLoader::willSendRequest):
31845         * loader/cache/CachedResource.cpp:
31846         (WebCore::CachedResource::load):
31847         * loader/cache/CachedResourceLoader.cpp:
31848         (WebCore::CachedResourceLoader::performPostLoadActions):
31849
31850 2012-10-26  Vincent Scheib  <scheib@chromium.org>
31851
31852         Unreviewed, rolling out r132702.
31853         http://trac.webkit.org/changeset/132702
31854         https://bugs.webkit.org/show_bug.cgi?id=100322
31855
31856         Compile error on Chromium Linux dbg builder (and others)
31857
31858         * svg/SVGAnimationElement.cpp:
31859         (WebCore::SVGAnimationElement::beginElementAt):
31860         (WebCore::SVGAnimationElement::endElementAt):
31861         * svg/animation/SMILTime.h:
31862         (WebCore::SMILTime::SMILTime):
31863         * svg/animation/SVGSMILElement.cpp:
31864         (WebCore::SVGSMILElement::addBeginTime):
31865         (WebCore::SVGSMILElement::addEndTime):
31866
31867 2012-10-26  Philip Rogers  <pdr@google.com>
31868
31869         Prevent NaN offset values in ElementTimeControl.
31870         https://bugs.webkit.org/show_bug.cgi?id=100322
31871
31872         Reviewed by Abhishek Arya.
31873
31874         NaN values can cause ElementTimeControl to go back in time!
31875         If a value of NaN is passed to ElementTimeControl::beginElementAt(offset),
31876         subsequent sorting will cause an assert in SVGSMILElement::findInstanceTime
31877         because NaN values are not properly sorted. NaN SMILTime values
31878         should not be allowed at all, so this patch adds a check for them in
31879         ElementTimeControl's setters.
31880
31881         This patch also adds preventative asserts to catch if SMILTime is ever
31882         initialized with NaN, or if addEndTime/addBeginTime are ever called
31883         with NaN values.
31884
31885         Test: svg/custom/elementTimeControl-nan-crash.html
31886
31887         * svg/SVGAnimationElement.cpp:
31888         (WebCore::SVGAnimationElement::beginElementAt):
31889         (WebCore::SVGAnimationElement::endElementAt):
31890         * svg/animation/SMILTime.h:
31891         (WebCore::SMILTime::SMILTime):
31892         * svg/animation/SVGSMILElement.cpp:
31893         (WebCore::SVGSMILElement::addBeginTime):
31894         (WebCore::SVGSMILElement::addEndTime):
31895
31896 2012-10-26  Tony Chang  <tony@chromium.org>
31897
31898         Move non-Settings Inspector methods from internals.settings to internals
31899         https://bugs.webkit.org/show_bug.cgi?id=100392
31900
31901         Reviewed by Adam Barth.
31902
31903         These methods don't have to do with the WebCore Settings object, so move them up to internals.
31904         I moved the reset code from InternalSettings to Internals.
31905
31906         No new tests, this is just a rename. Existing tests should pass.
31907
31908         * testing/InternalSettings.cpp:
31909         (WebCore::InternalSettings::Backup::Backup): Remove inspector methods.
31910         (WebCore::InternalSettings::Backup::restoreTo): Remove inspector methods.
31911         * testing/InternalSettings.h:
31912         * testing/InternalSettings.idl:
31913         * testing/Internals.cpp:
31914         (WebCore::Internals::resetToConsistentState): New method for resetting page state. Named after similar
31915         methods in WTR.
31916         (WebCore::Internals::setInspectorResourcesDataSizeLimits): Moved from InspectorSettings.
31917         (WebCore::Internals::setJavaScriptProfilingEnabled): Moved from InspectorSettings.
31918         * testing/Internals.h:
31919         * testing/Internals.idl:
31920         * testing/js/WebCoreTestSupport.cpp:
31921         (WebCoreTestSupport::resetInternalsObject): Reset state in Internals.
31922         * testing/v8/WebCoreTestSupport.cpp:
31923         (WebCoreTestSupport::resetInternalsObject): Reset state in Internals.
31924
31925 2012-10-26  Dominic Mazzoni  <dmazzoni@google.com>
31926
31927         AX: Notification should be sent when accessibilityIsIgnored changes
31928         https://bugs.webkit.org/show_bug.cgi?id=99547
31929
31930         Reviewed by Chris Fleizach.
31931
31932         Adds a new flag in AccessibilityObject that keeps track of the most recent
31933         value of accessibilityIsIgnored(). After certain events such as an ARIA
31934         attribute change or content change, checks the new value of
31935         accessibilityIsIgnored() and posts a "children changed" notification on the
31936         parent node if it changed, making sure the parent recomputes its vector of
31937         (unignored) children.
31938
31939         Also moves handling of attribute changes to AXObjectCache, and sends
31940         notifications for some attribute changes that were previously silent. On
31941         Chromium, all changes to an accessibility object's attributes should
31942         result in some notification.
31943
31944         Some tests would have broken because an AccessibilityScrollView was created
31945         and holding a reference to a ScrollView for an iframe after it was deleted,
31946         so this change switches AccessibilityScrollView to hold a weak reference
31947         to ScrollView instead.
31948
31949         Tests: platform/chromium/accessibility/is-ignored-change-sends-notification.html
31950                platform/chromium/accessibility/other-aria-attribute-change-sends-notification.html
31951                platform/chromium/accessibility/text-change-notification.html
31952
31953         * accessibility/AXObjectCache.cpp:
31954         (WebCore::AXObjectCache::focusedUIElementForPage):
31955         (WebCore::AXObjectCache::getOrCreate):
31956         (WebCore::AXObjectCache::textChanged):
31957         (WebCore):
31958         (WebCore::AXObjectCache::childrenChanged):
31959         (WebCore::AXObjectCache::handleAriaRoleChanged):
31960         (WebCore::AXObjectCache::handleAttributeChanged):
31961         (WebCore::AXObjectCache::labelChanged):
31962         (WebCore::AXObjectCache::recomputeIsIgnored):
31963         * accessibility/AXObjectCache.h:
31964         (AXObjectCache):
31965         (WebCore::AXObjectCache::childrenChanged):
31966         (WebCore::AXObjectCache::textChanged):
31967         (WebCore::AXObjectCache::handleAttributeChanged):
31968         (WebCore::AXObjectCache::recomputeIsIgnored):
31969         * accessibility/AccessibilityNodeObject.cpp:
31970         (WebCore::AccessibilityNodeObject::insertChild):
31971         * accessibility/AccessibilityObject.cpp:
31972         (WebCore::AccessibilityObject::AccessibilityObject):
31973         (WebCore::AccessibilityObject::cachedIsIgnoredValue):
31974         (WebCore):
31975         (WebCore::AccessibilityObject::setCachedIsIgnoredValue):
31976         (WebCore::AccessibilityObject::notifyIfIgnoredValueChanged):
31977         * accessibility/AccessibilityObject.h:
31978         (WebCore::AccessibilityObject::textChanged):
31979         (AccessibilityObject):
31980         * accessibility/AccessibilityRenderObject.cpp:
31981         (WebCore::AccessibilityRenderObject::accessibilityIsIgnored):
31982         (WebCore::AccessibilityRenderObject::correspondingControlForLabelElement):
31983         (WebCore::AccessibilityRenderObject::textChanged):
31984         (WebCore::AccessibilityRenderObject::addHiddenChildren):
31985         (WebCore::AccessibilityRenderObject::addChildren):
31986         * accessibility/AccessibilityRenderObject.h:
31987         (AccessibilityRenderObject):
31988         * accessibility/AccessibilityScrollView.cpp:
31989         (WebCore::AccessibilityScrollView::~AccessibilityScrollView):
31990         (WebCore):
31991         (WebCore::AccessibilityScrollView::detach):
31992         (WebCore::AccessibilityScrollView::isAttachment):
31993         (WebCore::AccessibilityScrollView::widgetForAttachmentView):
31994         (WebCore::AccessibilityScrollView::updateScrollbars):
31995         (WebCore::AccessibilityScrollView::webAreaObject):
31996         (WebCore::AccessibilityScrollView::elementRect):
31997         (WebCore::AccessibilityScrollView::documentFrameView):
31998         (WebCore::AccessibilityScrollView::parentObject):
31999         (WebCore::AccessibilityScrollView::parentObjectIfExists):
32000         (WebCore::AccessibilityScrollView::getScrollableAreaIfScrollable):
32001         (WebCore::AccessibilityScrollView::scrollTo):
32002         * accessibility/AccessibilityScrollView.h:
32003         (WebCore::AccessibilityScrollView::scrollView):
32004         (AccessibilityScrollView):
32005         * accessibility/AccessibilityTable.cpp:
32006         (WebCore::AccessibilityTable::isDataTable):
32007         * accessibility/chromium/AXObjectCacheChromium.cpp:
32008         (WebCore::AXObjectCache::postPlatformNotification):
32009         * dom/Element.cpp:
32010         (WebCore::Element::attributeChanged):
32011         * rendering/RenderBlock.cpp:
32012         (WebCore::RenderBlock::deleteLineBoxTree):
32013         (WebCore::RenderBlock::createAndAppendRootInlineBox):
32014         * rendering/RenderObject.cpp:
32015         (WebCore::RenderObject::styleWillChange):
32016         * rendering/RenderText.cpp:
32017         (WebCore::RenderText::setText):
32018
32019 2012-10-26  Joshua Bell  <jsbell@chromium.org>
32020
32021         [WebKitIDL] Optional dictionary types should have default values of empty dictionary
32022         https://bugs.webkit.org/show_bug.cgi?id=100547
32023
32024         Reviewed by Adam Barth.
32025
32026         Per WebIDL, "Optional dictionary type arguments are always considered to have a default
32027         value of an empty dictionary." WebKitIDL already supported this via the extended attribute
32028         [Optional=DefaultIsUndefined] but make this the default for Dictionary.
32029
32030         Binding test expectations updated.
32031
32032         * Modules/filesystem/DirectoryEntry.h: Remove default parameters.
32033         (DirectoryEntry):
32034         * Modules/indexeddb/IDBDatabase.h: Remove overloads.
32035         (IDBDatabase):
32036         * Modules/indexeddb/IDBObjectStore.h: Remove overloads.
32037         (IDBObjectStore):
32038         * Modules/mediastream/RTCPeerConnection.idl: Remove DefaultIsUndefined annotations.
32039         * bindings/scripts/CodeGeneratorJS.pm: Special case for Optional Dictionary.
32040         (GenerateParametersCheck):
32041         * bindings/scripts/CodeGeneratorV8.pm: Ditto.
32042         (GenerateParametersCheck):
32043         * bindings/scripts/test/JS/JSTestObj.cpp:
32044         (WebCore::jsTestObjPrototypeFunctionOptionsObject): Updated expectation - no early call.
32045         * bindings/scripts/test/V8/V8TestObj.cpp:
32046         (WebCore::TestObjV8Internal::optionsObjectCallback): Ditto.
32047
32048 2012-10-26  Vincent Scheib  <scheib@chromium.org>
32049
32050         Generated should not be supported for things with a shadow
32051         https://bugs.webkit.org/show_bug.cgi?id=98836
32052
32053         Unreviewed rollout of rollout of http://trac.webkit.org/changeset/132269.
32054         Initial rollout was speculative and was shown not to be related to crashes.
32055         Change author: Elliott Sprehn  <esprehn@chromium.org>
32056
32057         As far as CSS is concerned inputs and things with shadow content inside 
32058         shouldn't support pseudo elements like :before, :after or :first-letter.
32059         Neither Gecko or Presto supports it, and we only accidentally supported 
32060         it. 
32061  
32062         Until the spec tells us what to do we should disable support. This is 
32063         also neccesary because the new generated content implementation doesn't 
32064         support shadows. 
32065
32066         Test: fast/forms/pseudo-elements.html
32067
32068         * rendering/RenderBlock.cpp:
32069         (WebCore::RenderBlock::updateFirstLetter):
32070         * rendering/RenderListBox.h:
32071         * rendering/RenderObjectChildList.cpp:
32072         (WebCore::RenderObjectChildList::updateBeforeAfterContent):
32073
32074 2012-10-26  Brady Eidson  <beidson@apple.com>
32075
32076         Crash in WebProces at WebCore::ResourceLoadScheduler::crossOriginRedirectReceived + 78
32077         <rdar://problem/12575514> and https://bugs.webkit.org/show_bug.cgi?id=100554
32078
32079         Reviewed by Alexey Proskuryakov.
32080
32081         This was fallout from http://trac.webkit.org/changeset/132501 where I missed some of the 
32082         spots that call resourceLoadScheduler().
32083
32084         As a result we were creating more than one ResourceLoadScheduler, allowing the host records 
32085         to get out of sync.
32086
32087         The fix that also results in less #ifdefs scattered throughout the code is to use a single 
32088         choke point for all ResourceLoadScheduler access.
32089
32090         No new tests 
32091         (No change of behavior for the default config, not testable at this time in the repro config)
32092
32093         Add a single choke point for accessing the correct ResourceLoadScheduler:
32094         * loader/ResourceLoadScheduler.cpp:
32095         (WebCore::defaultResourceLoadScheduler): New private function that keeps the singleton default ResourceLoadScheduler.
32096         (WebCore::resourceLoadScheduler): Refactor this function to either ask the LoaderStrategy or call through to
32097
32098         Revert back to using that single choke point everywhere:
32099         * dom/ContainerNode.cpp:
32100         (WebCore::ContainerNode::suspendPostAttachCallbacks):
32101         (WebCore::ContainerNode::resumePostAttachCallbacks):
32102
32103         * loader/MainResourceLoader.cpp:
32104         (WebCore::MainResourceLoader::loadNow):
32105
32106         * loader/ResourceLoader.cpp:
32107         (WebCore::ResourceLoader::releaseResources):
32108         (WebCore::ResourceLoader::willSendRequest):
32109
32110         * loader/cache/CachedResource.cpp:
32111         (WebCore::CachedResource::load):
32112
32113         * loader/cache/CachedResourceLoader.cpp:
32114         (WebCore::CachedResourceLoader::performPostLoadActions):
32115
32116 2012-10-26  Elliott Sprehn  <esprehn@chromium.org>
32117
32118         Try to fix the windows build
32119         https://bugs.webkit.org/show_bug.cgi?id=100556
32120
32121         Reviewed by Eric Seidel.
32122
32123         Touch files by adding whitespace to try and make the windows
32124         build bot regenerate files.
32125
32126         No new tests, just kick the bot.
32127
32128         * dom/DOMAllInOne.cpp:
32129         * html/HTMLElementsAllInOne.cpp:
32130         * html/shadow/TextControlInnerElements.cpp:
32131
32132 2012-10-26  Rob Buis  <rbuis@rim.com>
32133
32134         [BlackBerry] Platform Abstraction for WebKit Resource/Image Loading
32135         https://bugs.webkit.org/show_bug.cgi?id=100518
32136
32137         PR 231732
32138
32139         Reviewed by Yong Li.
32140
32141         Use the new resource/image loading abstraction ResourceStore.
32142
32143         * platform/graphics/blackberry/ImageBlackBerry.cpp:
32144         (WebCore::Image::loadPlatformResource):
32145
32146 2012-10-26  Bear Travis  <betravis@adobe.com>
32147
32148         [CSS Exclusions] Block children have incorrect offset when shape-inside element lays out below other elements
32149         https://bugs.webkit.org/show_bug.cgi?id=98189
32150
32151         Reviewed by Dirk Schulze.
32152
32153         The initial code assumed that each block created a new layout state, such that
32154         LayoutState::layoutOffset would be specific to each block child of a shape-inside.
32155         Typically, however, block children of a shape-inside do not create a new layout state,
32156         and therefore we use the current element's offset instead.
32157
32158         Test: fast/exclusions/shape-inside/shape-inside-subsequent-blocks.html
32159
32160         * rendering/RenderBlockLineLayout.cpp:
32161         (WebCore::RenderBlock::layoutRunsAndFloatsInRange): Modified to use only logicalTop
32162         rather than LayoutState::layoutOffset::width/height and logicalTop.
32163
32164 2012-10-26  Elliott Sprehn  <esprehn@chromium.org>
32165
32166         Remove setRenderStyle in favor of callbacks on HTMLOptionElement and HTMLOptGroupElement
32167         https://bugs.webkit.org/show_bug.cgi?id=100397
32168
32169         Reviewed by Ojan Vafai.
32170
32171         Use Node custom callbacks to support the non-renderer style caching for option
32172         and optgroup eliminating the need for setRenderStyle.
32173
32174         setRenderStyle only existed to support HTMLOptionElement and HTMLOptGroupElement
32175         so they could store their RenderStyle even though they have no renderer. This
32176         means all style setting went through the virtual call to setRenderStyle, and it
32177         also hid the if statement protecting against null renderers meaning we end up
32178         checking if the renderer is null repeatedly in recalcStyle. This refactor cleans
32179         up recalcStyle to be more clear about what's going on.
32180
32181         No new tests needed, this is just a refactor.
32182
32183         * dom/Element.cpp:
32184         (WebCore::Element::pseudoStyleCacheIsInvalid):
32185         (WebCore::Element::recalcStyle):
32186         * dom/Node.cpp:
32187         (WebCore::Node::createRenderer):
32188         (WebCore::Node::setRenderStyle):
32189             Removed this method because it was only here to support HTMLOptionElement
32190             and HTMLOptGroupElement. Instead we can use node custom callbacks.
32191         * dom/Node.h:
32192         (WebCore::Node::nonRendererStyle): Renamed from nonRendererRenderStyle to match other style methods.
32193         * dom/NodeRenderStyle.h:
32194         (WebCore::Node::renderStyle):
32195         * html/HTMLOptGroupElement.cpp:
32196         (WebCore::HTMLOptGroupElement::HTMLOptGroupElement):
32197         (WebCore::HTMLOptGroupElement::attach): Reorder the logic to avoid calling styleForRenderer twice.
32198         (WebCore::HTMLOptGroupElement::updateNonRenderStyle): Updates the cached non-renderer style.
32199         (WebCore::HTMLOptGroupElement::nonRendererStyle):
32200         (WebCore::HTMLOptGroupElement::customStyleForRenderer):
32201         * html/HTMLOptGroupElement.h:
32202         * html/HTMLOptionElement.cpp:
32203         (WebCore::HTMLOptionElement::HTMLOptionElement):
32204         (WebCore::HTMLOptionElement::attach): Reorder the logic to avoid calling styleForRenderer twice.
32205         (WebCore::HTMLOptionElement::updateNonRenderStyle): Updates the cached non-renderer style.
32206         (WebCore::HTMLOptionElement::nonRendererStyle):
32207         (WebCore::HTMLOptionElement::customStyleForRenderer):
32208         (WebCore::HTMLOptionElement::didRecalcStyle): Requests the repaint of the select like setRenderStyle used to.
32209         * html/HTMLOptionElement.h:
32210
32211 2012-10-26  Dirk Schulze  <krit@webkit.org>
32212
32213         -webkit-clip-path property should just reference clipPath
32214         https://bugs.webkit.org/show_bug.cgi?id=100531
32215
32216         Reviewed by Eric Seidel.
32217
32218         The -webkit-clip-path property should just reference clipPath. Added a check for that.
32219
32220         Test: css3/masking/clip-path-reference-of-fake-clipPath.html
32221
32222         * rendering/RenderLayer.cpp:
32223         (WebCore::RenderLayer::paintLayerContents):
32224
32225 2012-10-26  Aaron Colwell  <acolwell@chromium.org>
32226
32227         Remove the circular reference between TextTrack and TextTrackCue
32228         https://bugs.webkit.org/show_bug.cgi?id=100300
32229
32230         Reviewed by Eric Carlson.
32231
32232         Changed TextTrackCue.m_track to a normal pointer to break the circular
32233         reference that was keeping both objects from ever getting deleted.
32234
32235         No new tests. This simply fixes a memory leak.
32236
32237         * html/track/TextTrack.cpp:
32238         (WebCore::TextTrack::~TextTrack):
32239         * html/track/TextTrackCue.cpp:
32240         (WebCore::TextTrackCue::TextTrackCue):
32241         (WebCore::TextTrackCue::~TextTrackCue):
32242         (WebCore::TextTrackCue::track):
32243         (WebCore::TextTrackCue::setTrack):
32244         * html/track/TextTrackCue.h:
32245         (TextTrackCue):
32246
32247 2012-10-26  Vsevolod Vlasov  <vsevik@chromium.org>
32248
32249         Web Inspector: Breakpoints are not managed correctly when editing uiSourceCode that was bound to ScriptFile after JavaScriptSourceFrame creation.
32250         https://bugs.webkit.org/show_bug.cgi?id=100535
32251
32252         Reviewed by Pavel Feldman.
32253
32254         Added SourceMappingChanged event to UISourceCode and made
32255         JavaScriptSourceFrame update ScriptFile events listeners on it.
32256
32257         * inspector/front-end/JavaScriptSourceFrame.js:
32258         (WebInspector.JavaScriptSourceFrame):
32259         (WebInspector.JavaScriptSourceFrame.prototype._onSourceMappingChanged):
32260         (WebInspector.JavaScriptSourceFrame.prototype._updateScriptFile):
32261         * inspector/front-end/ResourceScriptMapping.js:
32262         (WebInspector.ResourceScriptMapping.prototype._bindUISourceCodeToScripts):
32263         * inspector/front-end/UISourceCode.js:
32264         (WebInspector.UISourceCode.prototype.setSourceMapping):
32265
32266 2012-10-26  Vincent Scheib  <scheib@chromium.org>
32267
32268         Unreviewed, rolling out r132644.
32269         http://trac.webkit.org/changeset/132644
32270         https://bugs.webkit.org/show_bug.cgi?id=100497
32271
32272         Causes webkit_unit_tests
32273         MemoryInstrumentationTest.ImageObserver to fail.
32274
32275         * platform/network/ResourceRequestBase.cpp:
32276         (WebCore::ResourceRequestBase::reportMemoryUsage):
32277         * platform/network/ResourceRequestBase.h:
32278         (ResourceRequestBase):
32279         * platform/network/chromium/ResourceRequest.cpp:
32280         * platform/network/chromium/ResourceRequest.h:
32281
32282 2012-10-26  Zeno Albisser  <zeno@webkit.org>
32283
32284         [Qt] MiniBrowser segfaults on exit after using WebGL.
32285         https://bugs.webkit.org/show_bug.cgi?id=100523
32286
32287         The display connection must not be closed before
32288         destroying the offscreen window.
32289         Therefore opening the connection is moved to the
32290         getXWindow() function. And closing the connection
32291         is being moved to the destructor of the offscreen window.
32292
32293         Reviewed by Kenneth Rohde Christiansen.
32294
32295
32296         * platform/graphics/surfaces/qt/GraphicsSurfaceGLX.cpp:
32297         (WebCore::OffScreenRootWindow::OffScreenRootWindow):
32298         (WebCore::OffScreenRootWindow::getXWindow):
32299         (OffScreenRootWindow):
32300         (WebCore::OffScreenRootWindow::display):
32301         (WebCore::OffScreenRootWindow::~OffScreenRootWindow):
32302         (WebCore):
32303         (WebCore::GraphicsSurfacePrivate::GraphicsSurfacePrivate):
32304         (WebCore::GraphicsSurfacePrivate::~GraphicsSurfacePrivate):
32305         (WebCore::GraphicsSurfacePrivate::createSurface):
32306
32307 2012-10-26  Parth Patel  <parpatel@rim.com>
32308
32309         [BlackBerry] Extending existing ThreadUnsafe singletons in webkit to
32310         Generic ThreadUnsafe Singleton
32311         https://bugs.webkit.org/show_bug.cgi?id=100529
32312
32313         Reviewed by Yong Li.
32314
32315         No new tests added as there was no behavioural change.
32316
32317         * platform/network/blackberry/NetworkManager.cpp:
32318         (WebCore):
32319         * platform/network/blackberry/NetworkManager.h:
32320         (NetworkManager):
32321
32322 2012-10-26  Mike West  <mkwst@chromium.org>
32323
32324         Web Inspector: Fix log-type icon alignment.
32325         https://bugs.webkit.org/show_bug.cgi?id=100520
32326
32327         Reviewed by Yury Semikhatsky.
32328
32329         The icons are just a pixel or two off, and it's driving me nuts.
32330
32331         * inspector/front-end/inspector.css:
32332         (.console-message::before, .console-user-command::before, #console-prompt::before, .console-group-title::before):
32333         (.console-warning-level::before):
32334
32335 2012-10-26  Erik Arvidsson  <arv@chromium.org>
32336
32337         Replaceable attributes should also have readonly
32338         https://bugs.webkit.org/show_bug.cgi?id=91768
32339
32340         Reviewed by Adam Barth.
32341
32342         This updates the code generators for JSC and V8 to handle this case correctly.
32343
32344         * Modules/intents/DOMWindowIntents.idl:
32345         * bindings/scripts/CodeGeneratorJS.pm:
32346         * bindings/scripts/CodeGeneratorV8.pm:
32347         * bindings/scripts/test/GObject/WebKitDOMTestObj.cpp:
32348         * bindings/scripts/test/ObjC/DOMTestObj.h:
32349         * bindings/scripts/test/ObjC/DOMTestObj.mm:
32350         * bindings/scripts/test/TestObj.idl:
32351         * bindings/scripts/test/V8/V8TestObj.cpp:
32352         * page/DOMWindow.idl:
32353         * workers/WorkerContext.idl:
32354
32355 2012-10-26  Nico Weber  <thakis@chromium.org>
32356
32357         Clear m_orientation in FrameData::clear() for skia
32358         https://bugs.webkit.org/show_bug.cgi?id=100456
32359
32360         Reviewed by Stephen White.
32361
32362         clear() is only called by the FrameData destructor and for multi-image
32363         images in BitmapImage::destroyDecodedData(). Multi-frame images don't
32364         have exif data, so this patch should have no effect in practice. It
32365         makes the skia code match the CG code in BitmapImageCG.cpp though.
32366
32367         * platform/graphics/skia/ImageSkia.cpp:
32368         (WebCore::FrameData::clear):
32369
32370 2012-10-26  Florin Malita  <fmalita@chromium.org>
32371
32372         Crash on loading SVG filter resource on HTML element
32373         https://bugs.webkit.org/show_bug.cgi?id=100491
32374
32375         Reviewed by Dirk Schulze.
32376
32377         Skip non-filter elements referenced via -webkit-filter.
32378
32379         Test: svg/filters/filter-reference-crash.html
32380
32381         * rendering/RenderLayerFilterInfo.cpp:
32382         (WebCore::RenderLayerFilterInfo::updateReferenceFilterClients):
32383
32384 2012-10-26  Antti Koivisto  <antti@apple.com>
32385
32386         Lots of time spent under DNSResolveQueue::platformProxyIsEnabledInSystemPreferences
32387         https://bugs.webkit.org/show_bug.cgi?id=100514
32388
32389         Reviewed by Anders Carlsson.
32390
32391         DNSResolveQueue::platformProxyIsEnabledInSystemPreferences gets called for every link in
32392         the document. The function is relatively slow.
32393         
32394         This patch caches the result of the last check for 5 seconds. Based on code comments
32395         prefetching is disabled with proxies due to regressing performance with some configurations.
32396         Proxy status changes rarely and a slight reaction delay shoudn't cause practical problems.
32397
32398         * platform/network/DNSResolveQueue.cpp:
32399         (WebCore::DNSResolveQueue::DNSResolveQueue):
32400         
32401             Add constructor. Also fixes a bug, m_requestsInFlight was not initialized.
32402             
32403         (WebCore):
32404         (WebCore::DNSResolveQueue::isUsingProxy):
32405         (WebCore::DNSResolveQueue::add):
32406         (WebCore::DNSResolveQueue::fired):
32407         * platform/network/DNSResolveQueue.h:
32408         (DNSResolveQueue):
32409
32410 2012-10-26  Sheriff Bot  <webkit.review.bot@gmail.com>
32411
32412         Unreviewed, rolling out r132662.
32413         http://trac.webkit.org/changeset/132662
32414         https://bugs.webkit.org/show_bug.cgi?id=100528
32415
32416         It is not necessary any more. (Requested by loislo on
32417         #webkit).
32418
32419         * platform/qt/MemoryUsageSupportQt.cpp:
32420         (WebCore::MemoryUsageSupport::memoryUsageByComponents):
32421         (WebCore):
32422
32423 2012-10-26  Ilya Tikhonovsky  <loislo@chromium.org>
32424
32425         Unreviewed build fix for Qt builders.
32426
32427         * platform/qt/MemoryUsageSupportQt.cpp:
32428
32429 2012-10-26  Csaba Osztrogonác  <ossy@webkit.org>
32430
32431         Unreviewed, rolling out r132658.
32432         http://trac.webkit.org/changeset/132658
32433         https://bugs.webkit.org/show_bug.cgi?id=100515
32434
32435         It broke the Qt build
32436
32437         * inspector/InspectorMemoryAgent.cpp:
32438         (WebCore::addPlatformComponentsInfo):
32439         (WebCore):
32440         (WebCore::InspectorMemoryAgent::getProcessMemoryDistribution):
32441         * platform/MemoryUsageSupport.cpp:
32442         (WebCore::MemoryUsageSupport::memoryUsageByComponents):
32443         * platform/MemoryUsageSupport.h:
32444         (ComponentInfo):
32445         (WebCore::MemoryUsageSupport::ComponentInfo::ComponentInfo):
32446         (MemoryUsageSupport):
32447         * platform/PlatformMemoryInstrumentation.cpp:
32448         (WebCore):
32449         * platform/PlatformMemoryInstrumentation.h:
32450         (PlatformMemoryTypes):
32451         * platform/chromium/MemoryUsageSupportChromium.cpp:
32452         (WebCore::MemoryUsageSupport::memoryUsageByComponents):
32453
32454 2012-10-26  Vsevolod Vlasov  <vsevik@chromium.org>
32455
32456         Web Inspector: Some context menu items are duplicated on Resources and Sources panels.
32457         https://bugs.webkit.org/show_bug.cgi?id=100522
32458
32459         Reviewed by Pavel Feldman.
32460
32461         Method appendApplicableItems now receives event as a parameter.
32462         HandlerRegistry now makes sure that it is not called more than once for certain context menu event.
32463
32464         * inspector/front-end/BreakpointsSidebarPane.js:
32465         (WebInspector.JavaScriptBreakpointsSidebarPane.prototype._emptyElementContextMenu):
32466         (WebInspector.JavaScriptBreakpointsSidebarPane.prototype._breakpointContextMenu):
32467         (WebInspector.XHRBreakpointsSidebarPane.prototype._emptyElementContextMenu):
32468         (WebInspector.XHRBreakpointsSidebarPane.prototype._contextMenu):
32469         * inspector/front-end/CallStackSidebarPane.js:
32470         (WebInspector.CallStackSidebarPane.Placard.prototype._placardContextMenu):
32471         * inspector/front-end/ConsoleView.js:
32472         * inspector/front-end/ContextMenu.js:
32473         (WebInspector.ContextMenu):
32474         (WebInspector.ContextMenu.prototype.show):
32475         (WebInspector.ContextMenu.prototype.appendApplicableItems):
32476         (WebInspector.ContextMenu.Provider.prototype.appendApplicableItems):
32477         * inspector/front-end/CookieItemsView.js:
32478         (WebInspector.CookieItemsView.prototype._contextMenu):
32479         * inspector/front-end/DOMBreakpointsSidebarPane.js:
32480         (WebInspector.DOMBreakpointsSidebarPane.prototype._contextMenu):
32481         * inspector/front-end/DataGrid.js:
32482         (WebInspector.DataGrid.prototype._contextMenuInDataTable):
32483         * inspector/front-end/DefaultTextEditor.js:
32484         (WebInspector.DefaultTextEditor.prototype._contextMenu):
32485         * inspector/front-end/ElementsPanel.js:
32486         (WebInspector.ElementsPanel.prototype._contextMenuEventFired.set get var):
32487         * inspector/front-end/ElementsPanelDescriptor.js:
32488         (WebInspector.ElementsPanelDescriptor.prototype.appendApplicableItems):
32489         * inspector/front-end/ElementsTreeOutline.js:
32490         (WebInspector.ElementsTreeOutline.prototype._contextMenuEventFired):
32491         * inspector/front-end/HandlerRegistry.js:
32492         (WebInspector.HandlerRegistry.prototype.appendApplicableItems):
32493         * inspector/front-end/ImageView.js:
32494         (WebInspector.ImageView.prototype._contextMenu):
32495         * inspector/front-end/NavigatorView.js:
32496         (WebInspector.NavigatorView.prototype.handleContextMenu):
32497         * inspector/front-end/NetworkPanel.js:
32498         (WebInspector.NetworkLogView.prototype._contextMenu):
32499         * inspector/front-end/NetworkPanelDescriptor.js:
32500         (WebInspector.NetworkPanelDescriptor.prototype.appendApplicableItems):
32501         * inspector/front-end/ObjectPropertiesSection.js:
32502         (WebInspector.ObjectPropertiesSection.prototype._contextMenuEventFired):
32503         (WebInspector.ObjectPropertyTreeElement.prototype._contextMenuFired):
32504         * inspector/front-end/ProfilesPanel.js:
32505         (WebInspector.ProfilesPanel.prototype._handleContextMenuEvent):
32506         (WebInspector.ProfileSidebarTreeElement.prototype.handleContextMenuEvent):
32507         * inspector/front-end/ResourcesPanel.js:
32508         (WebInspector.FrameResourceTreeElement.prototype._handleContextMenuEvent):
32509         (WebInspector.IndexedDBTreeElement.prototype._handleContextMenuEvent):
32510         (WebInspector.FileSystemListTreeElement.prototype._handleContextMenuEvent):
32511         (WebInspector.IDBDatabaseTreeElement.prototype._handleContextMenuEvent):
32512         * inspector/front-end/ScriptsNavigator.js:
32513         (WebInspector.SnippetsNavigatorView.prototype.handleContextMenu):
32514         * inspector/front-end/ScriptsPanel.js:
32515         (WebInspector.ScriptsPanel.prototype.appendApplicableItems):
32516         * inspector/front-end/ScriptsPanelDescriptor.js:
32517         (WebInspector.ScriptsPanelDescriptor.prototype.appendApplicableItems):
32518         * inspector/front-end/StylesSidebarPane.js:
32519         (WebInspector.StylesSidebarPane.prototype._contextMenuEventFired):
32520         * inspector/front-end/TabbedPane.js:
32521         (WebInspector.TabbedPaneTab.prototype._tabContextMenu):
32522         * inspector/front-end/TimelinePanel.js:
32523         (WebInspector.TimelinePanel.prototype._contextMenu):
32524         * inspector/front-end/WatchExpressionsSidebarPane.js:
32525         (WebInspector.WatchExpressionsSection.prototype._emptyElementContextMenu):
32526         (WebInspector.WatchExpressionTreeElement.prototype._contextMenu):
32527
32528 2012-10-26  Ilya Tikhonovsky  <loislo@chromium.org>
32529
32530         Web Inspector: instrument chromium GlyphCache. It keeps ~2mb data on gmail.
32531         https://bugs.webkit.org/show_bug.cgi?id=100515
32532
32533         Reviewed by Yury Semikhatsky.
32534
32535         I replaced old version with an abstract number with new one which precisely reports allocated SkGlyphCache objects and their sizes.
32536
32537         * inspector/InspectorMemoryAgent.cpp:
32538         (WebCore::InspectorMemoryAgent::getProcessMemoryDistribution):
32539         * platform/MemoryUsageSupport.cpp:
32540         (WebCore::MemoryUsageSupport::reportMemoryUsage):
32541         * platform/MemoryUsageSupport.h:
32542         (MemoryUsageSupport):
32543         * platform/PlatformMemoryInstrumentation.cpp:
32544         (WebCore):
32545         * platform/PlatformMemoryInstrumentation.h:
32546         (PlatformMemoryTypes):
32547         * platform/chromium/MemoryUsageSupportChromium.cpp:
32548         (reportMemoryUsage):
32549         (WebCore::reportGlyphCache):
32550         (WebCore):
32551         (WebCore::MemoryUsageSupport::reportMemoryUsage):
32552
32553 2012-10-26  Kent Tamura  <tkent@chromium.org>
32554
32555         [Chromium] Build fix for r132650.
32556         https://bugs.webkit.org/show_bug.cgi?id=100482
32557
32558         * platform/text/LocaleWin.cpp:
32559         (WebCore::LocaleWin::timeFormat):
32560
32561 2012-10-26  Yury Semikhatsky  <yurys@chromium.org>
32562
32563         [v8] Memory instrumentation: don't count memory of WrapperTypeInfo
32564         https://bugs.webkit.org/show_bug.cgi?id=100517
32565
32566         Reviewed by Alexander Pavlov.
32567
32568         * bindings/v8/V8PerIsolateData.cpp: when estimating bindings memory size skip
32569         pointers to WrapperTypeInfo objects as they are static fields and belong to
32570         the data segment.
32571         (WTF):
32572
32573 2012-10-26  Kent Tamura  <tkent@chromium.org>
32574
32575         Refactor Localizer-related classes.
32576         https://bugs.webkit.org/show_bug.cgi?id=100482
32577
32578         Reviewed by Kentaro Hara.
32579
32580         - Localizer has unused code
32581          Localizer should have function implementations only if they are used in
32582          multiple subclasses.
32583         - Some Localizer subclasses hide Localizer data members
32584         - Should use String::isNull to check initialization-or-not
32585
32586         No new tests. This should not change any behavior.
32587
32588         * platform/text/Localizer.h:
32589         (Localizer):
32590         - timeFormat, shortTimeFormat, and timeAMPMLabels should be pure virtual.
32591         - Remove m_localizedDateFormatText, m_localizedShortTimeFormatText, and
32592           m_timeAMPMLabels
32593         * platform/text/Localizer.cpp:
32594         Remove implementations of timeFormat, shortTimeFormat, and timeAMPMLabels.
32595
32596         * platform/text/LocaleICU.h:
32597         (LocaleICU): Introduce m_timeFormatWithSeconds and m_timeFormatWithoutSeconds.
32598         * platform/text/LocaleICU.cpp:
32599         (WebCore::LocaleICU::initializeDateTimeFormat):
32600         Use new data members instead of Localizer data members.
32601         (WebCore::LocaleICU::dateFormat): Use isNull.
32602
32603         * platform/text/LocaleNone.cpp:
32604         (LocaleNone): Add timeFormat, shortTimeFormat, timeAMPMLabels
32605         implementations, and m_timeAMPMLabels.
32606         (WebCore::LocaleNone::timeFormat): Returns the HTML time format.
32607         (WebCore::LocaleNone::shortTimeFormat): Returns the HTML time format.
32608         (WebCore::LocaleNone::timeAMPMLabels): Returns "AM" and "PM".
32609
32610         * platform/text/LocaleWin.h:
32611         (LocaleWin): Add m_timeFormatWithSeconds.
32612         * platform/text/LocaleWin.cpp:
32613         (WebCore::LocaleWin::dateFormat): Use isNull.
32614         (WebCore::LocaleWin::timeFormat): Use m_timeFormatWithSeconds.
32615
32616         * platform/text/mac/LocaleMac.h:
32617         (LocaleMac): Rename m_localized*TimeFormatText to m_timeFormatWith*Seconds.
32618         * platform/text/mac/LocaleMac.mm:
32619         (WebCore::LocaleMac::timeFormat): Follow the renaming.
32620         (WebCore::LocaleMac::shortTimeFormat): Ditto.
32621
32622 2012-10-26  Kent Tamura  <tkent@chromium.org>
32623
32624         Crash in PagePopupController by events after WebPagePopupImpl::closePopup
32625         https://bugs.webkit.org/show_bug.cgi?id=100454
32626
32627         Reviewed by Hajime Morita.
32628
32629         No new tests. The bug is timing-dependent.
32630
32631         * page/DOMWindowPagePopup.cpp:
32632         (WebCore::DOMWindowPagePopup::~DOMWindowPagePopup):
32633         Calls clearPagePopupClient for the associalated PagePopupController object.
32634         * page/PagePopupController.cpp:
32635         (WebCore::PagePopupController::setValueAndClosePopup):
32636         Do nothing if m_popupClient is 0.
32637         (WebCore::PagePopupController::localizeNumberString): Ditto.
32638         (WebCore::PagePopupController::clearPagePopupClient): Added.
32639         * page/PagePopupController.h:
32640         (PagePopupController): Declare clearPagePopupClient.
32641
32642 2012-10-25  Alexander Pavlov  <apavlov@chromium.org>
32643
32644         Web Inspector: Bring device geolocation and orientation emulation from behind the experiment
32645         https://bugs.webkit.org/show_bug.cgi?id=100220
32646
32647         Reviewed by Yury Semikhatsky.
32648
32649         * inspector/front-end/Settings.js:
32650         (WebInspector.ExperimentsSettings):
32651         * inspector/front-end/SettingsScreen.js:
32652         (WebInspector.UserAgentSettingsTab):
32653
32654 2012-10-26  Yury Semikhatsky  <yurys@chromium.org>
32655
32656         Memory instrumentation: report memory occupied by ResourceRequest instead of its base ResourceRequestBase
32657         https://bugs.webkit.org/show_bug.cgi?id=100497
32658
32659         Reviewed by Alexander Pavlov.
32660
32661         Added memory reporting method to Chromium implementation of ResourceRequest.
32662
32663         * platform/network/ResourceRequestBase.cpp:
32664         (WebCore::ResourceRequestBase::reportMemoryUsageBase): Renamed reportMemoryUsage
32665         on ResourceRequestBase to reportMemoryUsageBase and made it protected. I'd
32666         rather make ResourceRequestBase::reportMemoryUsage virtual and override it
32667         in the descendant but ResourceRequestBase doesn't have any virtual methods
32668         and shouldn't be used directly (ResourceRequest should be used instead).
32669         * platform/network/ResourceRequestBase.h:
32670         (ResourceRequestBase):
32671         * platform/network/chromium/ResourceRequest.cpp:
32672         (WebCore::ResourceRequest::reportMemoryUsage):
32673         (WebCore):
32674         * platform/network/chromium/ResourceRequest.h:
32675         (ResourceRequest):
32676
32677 2012-10-26  Alexander Pavlov  <apavlov@chromium.org>
32678
32679         Web Inspector: Remove the on-hover highlighting of console messages
32680         https://bugs.webkit.org/show_bug.cgi?id=100511
32681
32682         Reviewed by Pavel Feldman.
32683
32684         This clashes with the hovered element highlight in console messages.
32685
32686         * inspector/front-end/inspector.css:
32687         (ol.watch-expressions > li.hovered):
32688
32689 2012-10-26  Sheriff Bot  <webkit.review.bot@gmail.com>
32690
32691         Unreviewed, rolling out r132612.
32692         http://trac.webkit.org/changeset/132612
32693         https://bugs.webkit.org/show_bug.cgi?id=100512
32694
32695         Crashes fast/events/tabindex-focus-blur-all.html in debug mode
32696         (Requested by pfeldman on #webkit).
32697
32698         * rendering/AutoTableLayout.cpp:
32699         (WebCore::AutoTableLayout::recalcColumn):
32700         * rendering/FixedTableLayout.cpp:
32701         (WebCore::FixedTableLayout::calcWidthArray):
32702         * rendering/RenderTable.cpp:
32703         (WebCore::RenderTable::layout):
32704         * rendering/RenderTableCol.cpp:
32705         (WebCore::RenderTableCol::styleDidChange):
32706         (WebCore::RenderTableCol::updateFromElement):
32707         (WebCore::RenderTableCol::computePreferredLogicalWidths):
32708         * rendering/RenderTableCol.h:
32709         (RenderTableCol):
32710
32711 2012-10-26  Pavel Feldman  <pfeldman@chromium.org>
32712
32713         Web Inspector: fast return upon setting the same dock side.
32714         https://bugs.webkit.org/show_bug.cgi?id=100510
32715
32716         Reviewed by Vsevolod Vlasov.
32717
32718         Added fast return.
32719
32720         * inspector/front-end/DockController.js:
32721
32722 2012-10-26  Simon Hausmann  <simon.hausmann@digia.com>
32723
32724         Unreviewed trivial build fix: It's glXGetCurrentContext not glxGetCurrentContext :)
32725
32726         * platform/graphics/surfaces/qt/GraphicsSurfaceGLX.cpp:
32727         (WebCore::GraphicsSurfacePrivate::GraphicsSurfacePrivate):
32728
32729 2012-10-26  Kenneth Rohde Christiansen  <kenneth@webkit.org>
32730
32731         Printing should use use high resolution images when available
32732         https://bugs.webkit.org/show_bug.cgi?id=100488
32733
32734         Reviewed by Antti Koivisto.
32735
32736         The images loaded using -webkit-device-pixel-ratio depends on
32737         the display type (deviceScaleFactor) and thus affects which
32738         images are being used for printing. Printing should always
32739         use the higher resolution images (aka 'retina' images).
32740
32741         Test: fast/media/mq-pixel-ratio-print.html
32742
32743         * css/MediaQueryEvaluator.cpp:
32744         (WebCore::device_pixel_ratioMediaFeatureEval):
32745
32746 2012-10-26  Ilya Tikhonovsky  <loislo@chromium.org>
32747
32748         Web Inspector: NMI instrument InspectorResourceAgent. it caches resources for the front-end.
32749         https://bugs.webkit.org/show_bug.cgi?id=100496
32750
32751         Reviewed by Yury Semikhatsky.
32752
32753         It is plain instrumentation for InspectorResourceAgent and NetworkResourceData which is used by the agent.
32754
32755         * dom/WebCoreMemoryInstrumentation.cpp:
32756         (WebCore):
32757         * dom/WebCoreMemoryInstrumentation.h:
32758         (WebCoreMemoryTypes):
32759         * inspector/InspectorResourceAgent.cpp:
32760         (WebCore::InspectorResourceAgent::reportMemoryUsage):
32761         (WebCore):
32762         * inspector/InspectorResourceAgent.h:
32763         (InspectorResourceAgent):
32764         * inspector/NetworkResourcesData.cpp:
32765         (WebCore::XHRReplayData::reportMemoryUsage):
32766         (WebCore):
32767         (WebCore::NetworkResourcesData::ResourceData::reportMemoryUsage):
32768         (WebCore::NetworkResourcesData::reportMemoryUsage):
32769         * inspector/NetworkResourcesData.h:
32770         (XHRReplayData):
32771         (ResourceData):
32772         (NetworkResourcesData):
32773
32774 2012-10-26  Sheriff Bot  <webkit.review.bot@gmail.com>
32775
32776         Unreviewed, rolling out r132493.
32777         http://trac.webkit.org/changeset/132493
32778         https://bugs.webkit.org/show_bug.cgi?id=100509
32779
32780         It didn't fix the tests on the bot as we had hoped. (Requested
32781         by drott on #webkit).
32782
32783         * platform/network/cf/ResourceErrorCF.cpp:
32784         (WebCore::ResourceError::ResourceError):
32785
32786 2012-10-26  Zeno Albisser  <zeno@webkit.org>
32787
32788         [Qt] Temporarily disable use of QXcbNativeInterface in GraphicsSurfaceGLX.
32789         https://bugs.webkit.org/show_bug.cgi?id=100493
32790
32791         Once QXcbNativeInterface::nativeResourceForContext() can provide the
32792         GLXContext for an existing QOpenGLContext, this patch shall be reverted.
32793
32794         Reviewed by Simon Hausmann.
32795
32796         * platform/graphics/surfaces/qt/GraphicsSurfaceGLX.cpp:
32797         (WebCore::GraphicsSurfacePrivate::GraphicsSurfacePrivate):
32798
32799 2012-10-26  Zeno Albisser  <zeno@webkit.org>
32800
32801         [Qt] Remove QOpenGL specific code from GraphicsSurfaceGLX.
32802         https://bugs.webkit.org/show_bug.cgi?id=100492
32803
32804         This patch removes most of the QOpenGLContext related code
32805         from GraphicsSurfaceGLX. This allows sharing almost all
32806         GraphicsSurfaceGLX code with EFL, by relying on pure GLX.
32807
32808         Reviewed by Kenneth Rohde Christiansen.
32809
32810         * platform/graphics/surfaces/qt/GraphicsSurfaceGLX.cpp:
32811         (WebCore::OffScreenRootWindow::get):
32812         (WebCore::OffScreenRootWindow::~OffScreenRootWindow):
32813         (OffScreenRootWindow):
32814         (WebCore):
32815         (WebCore::GraphicsSurfacePrivate::GraphicsSurfacePrivate):
32816         (WebCore::GraphicsSurfacePrivate::createSurface):
32817         (WebCore::GraphicsSurfacePrivate::makeCurrent):
32818         (WebCore::GraphicsSurfacePrivate::doneCurrent):
32819         (WebCore::GraphicsSurfacePrivate::swapBuffers):
32820         (WebCore::GraphicsSurfacePrivate::copyFromTexture):
32821         (GraphicsSurfacePrivate):
32822         (WebCore::resolveGLMethods):
32823
32824 2012-10-26  Regina Chung  <heejin.r.chung@samsung.com>
32825
32826         [EFL][WK2] Enable WebGL
32827         https://bugs.webkit.org/show_bug.cgi?id=97652
32828
32829         Reviewed by Gyuyoung Kim.
32830
32831         Implemented GraphicsSurface for EFL to enable WebGL for WebKit2.
32832         Depends on GLX since Evas doesn't provide the necessary functionality.
32833
32834         No new tests. Covered by existing tests.
32835
32836         * PlatformEfl.cmake:
32837         * platform/graphics/GraphicsContext3D.h:
32838         * platform/graphics/efl/GraphicsContext3DEfl.cpp:
32839         (WebCore::GraphicsContext3D::createGraphicsSurfaces):
32840         * platform/graphics/efl/GraphicsContext3DPrivate.cpp:
32841         (WebCore::GraphicsContext3DPrivate::GraphicsContext3DPrivate):
32842         (WebCore::GraphicsContext3DPrivate::~GraphicsContext3DPrivate):
32843         (WebCore):
32844         (WebCore::GraphicsContext3DPrivate::createGraphicsSurfaces):
32845         (WebCore::GraphicsContext3DPrivate::copyToGraphicsSurface):
32846         (WebCore::GraphicsContext3DPrivate::graphicsSurfaceToken):
32847         * platform/graphics/efl/GraphicsContext3DPrivate.h:
32848         (GraphicsContext3DPrivate):
32849         * platform/graphics/opengl/GraphicsContext3DOpenGLCommon.cpp:
32850         (WebCore::GraphicsContext3D::reshape):
32851         * platform/graphics/surfaces/efl: Added.
32852         * platform/graphics/surfaces/efl/GraphicsSurfaceEfl.cpp: Added.
32853         (WebCore):
32854         (WebCore::OffScreenRootWindow::get):
32855         (WebCore::OffScreenRootWindow::~OffScreenRootWindow):
32856         (WebCore::GraphicsSurfacePrivate::GraphicsSurfacePrivate):
32857         (WebCore::GraphicsSurfacePrivate::createSurface):
32858         (WebCore::GraphicsSurfacePrivate::makeCurrent):
32859         (WebCore::GraphicsSurfacePrivate::doneCurrent):
32860         (WebCore::GraphicsSurfacePrivate::swapBuffers):
32861         (WebCore::GraphicsSurface::platformBeginPaint):
32862         (WebCore::GraphicsSurface::createReadOnlyImage):
32863         * platform/graphics/surfaces/qt/GraphicsSurfaceGLX.cpp:
32864         * platform/graphics/surfaces/qt/GraphicsSurfaceGLX.h: Added.
32865         (WebCore):
32866         (OffScreenRootWindow):
32867         (WebCore::OffScreenRootWindow::OffScreenRootWindow):
32868         (GraphicsSurfacePrivate):
32869         (WebCore::GraphicsSurfacePrivate::~GraphicsSurfacePrivate):
32870         (WebCore::GraphicsSurfacePrivate::createPixmap):
32871         (WebCore::GraphicsSurfacePrivate::copyFromTexture):
32872         (WebCore::GraphicsSurfacePrivate::display):
32873         (WebCore::GraphicsSurfacePrivate::glxPixmap):
32874         (WebCore::GraphicsSurfacePrivate::size):
32875         (WebCore::GraphicsSurfacePrivate::glContext):
32876         (WebCore::resolveGLMethods):
32877         * platform/graphics/surfaces/qt/GraphicsSurfaceQt.cpp:
32878         (WebCore):
32879         (WebCore::OffScreenRootWindow::OffScreenRootWindow::get):
32880         (WebCore::OffScreenRootWindow::~OffScreenRootWindow):
32881         (WebCore::GraphicsSurfacePrivate::GraphicsSurfacePrivate):
32882         (WebCore::GraphicsSurfacePrivate::createSurface):
32883         (WebCore::GraphicsSurfacePrivate::makeCurrent):
32884         (WebCore::GraphicsSurfacePrivate::doneCurrent):
32885         (WebCore::GraphicsSurfacePrivate::swapBuffers):
32886
32887 2012-10-26  Alexander Pavlov  <apavlov@chromium.org>
32888
32889         Web Inspector: [Overrides] Do not persist the User Agent "master switch"
32890         https://bugs.webkit.org/show_bug.cgi?id=100484
32891
32892         Reviewed by Yury Semikhatsky.
32893
32894         The User Agent override state is managed in the front-end, just like for other override-able parameters.
32895
32896         * inspector/InspectorResourceAgent.cpp:
32897         (WebCore::InspectorResourceAgent::disable):
32898         * inspector/front-end/NetworkManager.js:
32899         (WebInspector.NetworkManager.get NetworkAgent):
32900         (WebInspector.NetworkManager):
32901         * inspector/front-end/SettingsScreen.js:
32902         (WebInspector.UserAgentSettingsTab.prototype._createUserAgentSelectRowElement.set checkboxClicked):
32903         (WebInspector.UserAgentSettingsTab.prototype._createUserAgentSelectRowElement):
32904         * inspector/front-end/UserAgentSupport.js:
32905         (WebInspector.UserAgentSupport):
32906         (WebInspector.UserAgentSupport.prototype.toggleUserAgentOverride):
32907         (WebInspector.UserAgentSupport.prototype._userAgentChanged):
32908
32909 2012-10-26  Takashi Sakamoto  <tasak@google.com>
32910
32911         [Shadow]: removing styles in shadow dom subtree causes crash.
32912         https://bugs.webkit.org/show_bug.cgi?id=100455
32913
32914         Reviewed by Hajime Morita.
32915
32916         To quickly check whether shadow roots or elements have any scoped
32917         styles or not, elements have hasStyleScoped flag. If elements have
32918         any scoped styles, the styles are direct children of the element.
32919         The original code just sees how many chilren are scoped style or not.
32920         However styles in shadow dom subtree are registered with the shadow
32921         root but are not always direct children of shadow roots. So to check
32922         whether shadow roots have any scoped styles, modified to count
32923         number of styles registered with the shadow root.
32924
32925         Test: fast/dom/shadow/remove-styles-in-shadow-crash.html
32926
32927         * dom/Node.cpp:
32928         (WebCore::Node::registerScopedHTMLStyleChild):
32929         (WebCore::Node::unregisterScopedHTMLStyleChild):
32930         Made the above two method virtual. class ShadowRoot overrides these
32931         methods.
32932         (WebCore::Node::numberOfScopedHTMLStyleChildren):
32933         Moved HTMLStyleElement.cpp to Node.cpp, because the above two methods
32934         are moved into Node.cpp.
32935         * dom/Node.h:
32936         (Node):
32937         * dom/ShadowRoot.cpp:
32938         (WebCore::ShadowRoot::ShadowRoot):
32939         (WebCore::ShadowRoot::registerScopedHTMLStyleChild):
32940         (WebCore::ShadowRoot::unregisterScopedHTMLStyleChild):
32941         Modify to count how many styles are registered with the shadow root.
32942         The "counting" is done when styles are registered and unregistered
32943         with the shadow root, i.e. style element is inserted into document or
32944         removed from document. When unregister some style, there are no more
32945         styles registered with the shadow root. Set style scoped flag false.
32946         * dom/ShadowRoot.h:
32947         (ShadowRoot):
32948         * html/HTMLStyleElement.cpp:
32949         * html/HTMLStyleElement.h:
32950         (WebCore::HTMLStyleElement::isRegisteredAsScoped):
32951         Now isRegisteredAsScoped is used in Node.cpp, so removed inline and
32952         moved .cpp to .h.
32953
32954 2012-10-26  Sheriff Bot  <webkit.review.bot@gmail.com>
32955
32956         Unreviewed, rolling out r132589.
32957         http://trac.webkit.org/changeset/132589
32958         https://bugs.webkit.org/show_bug.cgi?id=100498
32959
32960         Breaks font-face layout tests (Requested by pfeldman on
32961         #webkit).
32962
32963         * css/CSSFontFaceSource.cpp:
32964         (WebCore::CSSFontFaceSource::getFontData):
32965
32966 2012-10-26  Takashi Sakamoto  <tasak@google.com>
32967
32968         [Shadow DOM] Needs @host rule for ShadowDOM styling
32969         https://bugs.webkit.org/show_bug.cgi?id=88606
32970
32971         Reviewed by Hajime Morita.
32972
32973         Implemented @host-@rules according to the shadow dom spec:
32974         http://dvcs.w3.org/hg/webcomponents/raw-file/tip/spec/shadow/index.html#host-at-rule
32975         The design doc is:
32976         https://docs.google.com/document/d/1P2yorchF8lci2sccr-mVSRf2dtvjKeiuyQWzCB2bEA8/edit
32977
32978         Test: fast/dom/shadow/athost-atrules.html
32979
32980         * css/CSSGrammar.y.in:
32981         Added rules for parsing @host @-rules.
32982         * css/CSSParser.cpp:
32983         (WebCore::CSSParser::detectAtToken):
32984         Added a new token "@host".
32985         (WebCore::CSSParser::createHostRule):
32986         Added a new method to create an @host @-rule, which is invoked from
32987         (WebCore):
32988         * css/CSSParser.h:
32989         Added a declaration of the above new method: createHostRule.
32990         * css/CSSPropertySourceData.h:
32991         Added HOST_RULE to enum Type.
32992         * css/RuleSet.cpp:
32993         (WebCore::RuleData::RuleData):
32994         Modified multiple bool arguments into one argument. Now it
32995         uses combinations of values from enum AddRuleFlags.
32996         (WebCore::RuleSet::addRule):
32997         (WebCore::RuleSet::addRegionRule):
32998         (WebCore::RuleSet::addStyleRule):
32999         Updated according to the RuleData's change.
33000         Modified to Invoke increaseSpecificity if the given rule is @host
33001         @-rule.
33002         (WebCore::RuleSet::addRulesFromSheet):
33003         Invoked addHostRule if the given rule is @host @-rule.
33004         * css/RuleSet.h:
33005         (RuleData):
33006         (WebCore::RuleData::increaseSpecificity):
33007         Added a new method to increase selector's specificity. This method is
33008         used to make @host @-rules' specificity larger than normal author
33009         rules' specificity.
33010         (RuleSet):
33011         * css/StyleResolver.cpp:
33012         (WebCore::makeRuleSet):
33013         (WebCore::StyleResolver::addHostRule):
33014         A wrapper method to invoke StyleScopeResolver::addHostRule. The method
33015         is used to make only StyleResolver know an implementation detail about
33016         class StyleScopeResolver.
33017         (WebCore::StyleResolver::appendAuthorStylesheets):
33018         Updated according to the RuleData's change.
33019         (WebCore::StyleResolver::styleSharingCandidateMatchesHostRules):
33020         A new method to find matched host rules when an element is given.
33021         This method invokes
33022         StyleScopeResolver::styleSharingCandidateMatchesHostRules to find
33023         matched host rules.
33024         (WebCore):
33025         (WebCore::StyleResolver::matchHostRules):
33026         A new method to find matched host rules when an element is given.
33027         This method invokes StyleScopeResolver::matchHostRules to find
33028         matched host rules.
33029         (WebCore::StyleResolver::matchScopedAuthorRules):
33030         Modified to invoke matchHostRules.
33031         (WebCore::StyleResolver::locateSharedStyle):
33032         Disable sibling style cache if the given element is a shadow host and
33033         any @host @-rules are applied to the element.
33034         * css/StyleResolver.h:
33035         (WebCore::StyleResolver::ensureScopeResolver):
33036         If no scopeResolver is created, create and return the instance.
33037         If created, just return the instance.
33038         (StyleResolver):
33039         * css/StyleRule.cpp:
33040         (WebCore::StyleRuleBase::reportMemoryUsage):
33041         (WebCore::StyleRuleBase::destroy):
33042         (WebCore::StyleRuleBase::copy):
33043         (WebCore::StyleRuleBase::createCSSOMWrapper):
33044         (WebCore::StyleRuleHost::StyleRuleHost):
33045         Implemented class StyleRuleHost. The class is almost the same as
33046         StyleRuleBlock except type.
33047         (WebCore):
33048         * css/StyleRule.h:
33049         (WebCore::StyleRuleBase::isHostRule):
33050         (StyleRuleHost):
33051         (WebCore::StyleRuleHost::create):
33052         (WebCore::StyleRuleHost::copy):
33053         (WebCore):
33054         * css/StyleScopeResolver.cpp:
33055         (WebCore::StyleScopeResolver::ensureAtHostRuleSetFor):
33056         A new method to create a new RuleSet for the given shadow root.
33057         (WebCore):
33058         (WebCore::StyleScopeResolver::atHostRuleSetFor):
33059         A new private inline method to obtain @host @-rules declared in
33060         the given shadow root.
33061         (WebCore::StyleScopeResolver::addHostRule):
33062         Added a new method to register @host @-rules with shadow roots.
33063         (WebCore::StyleScopeResolver::styleSharingCandidateMatchesHostRules):
33064         A new method to find whether any @host @-rules are applied to
33065         the given host element.
33066         (WebCore::StyleScopeResolver::matchHostRules):
33067         A new method to find matched rules for the given host element.
33068         (WebCore::StyleScopeResolver::reportMemoryUsage):
33069         * css/StyleScopeResolver.h:
33070         (WebCore):
33071         (StyleScopeResolver):
33072         * css/StyleSheetContents.cpp:
33073         (WebCore::childRulesHaveFailedOrCanceledSubresources):
33074
33075 2012-10-26  Jaehun Lim  <ljaehun.lim@samsung.com>
33076
33077         [CMAKE] Add TextAutosizer.cpp in WebCore/CMakeLists.txt
33078         https://bugs.webkit.org/show_bug.cgi?id=100476
33079
33080         Reviewed by Kentaro Hara.
33081
33082         ENABLE_TEXT_AUTOSIZING option is added in CMAKE,
33083         but the source file for that feature is omitted.
33084
33085         No new tests. Covered by existing tests.
33086
33087         * CMakeLists.txt:
33088
33089 2012-10-26  Julien Chaffraix  <jchaffraix@webkit.org>
33090
33091         RenderTableCol::computePreferredLogicalWidths and RenderTableCol::layout should never be called
33092         https://bugs.webkit.org/show_bug.cgi?id=99861
33093
33094         Reviewed by Ojan Vafai.
33095
33096         RenderTableCol's computePreferredLogicalWidths and layout's only purpose were to clear the preferred logical
33097         widths dirty / layout flag so that we would properly propagate the information to our containing table. This
33098         led to clunky code where the table layout code had to forcefully call RenderTableCol::computePreferredLogicalWidths
33099         or else we would ignore the next layout hint on the <col> or <colgroup>.
33100
33101         Tests: fast/table/col-span-change-relayout.html
33102                fast/table/simplified-layout-table.html
33103
33104         * rendering/AutoTableLayout.cpp:
33105         (WebCore::AutoTableLayout::recalcColumn):
33106         * rendering/RenderTable.cpp:
33107         (WebCore::RenderTable::layout):
33108         Simplified the code now that we only need to iterate over the sections.
33109
33110         * rendering/FixedTableLayout.cpp:
33111         (WebCore::FixedTableLayout::calcWidthArray):
33112         Removed call to computePreferredLogicalWidths.
33113
33114         * rendering/RenderTableCol.cpp:
33115         (WebCore::RenderTableCol::styleDidChange):
33116         (WebCore::RenderTableCol::updateFromElement):
33117         Forward a layout hint to the table so that we properly recompute the cell's logical withs.
33118
33119         (WebCore::RenderTableCol::computePreferredLogicalWidths):
33120         (WebCore::RenderTableCol::layout):
33121         Change our implementations of those 2 methods to be no-ops, while enforcing that they are
33122         never called when it was possible.
33123
33124         (WebCore::RenderTableCol::propagateLayoutCueToTable):
33125         New helper function that forward any layout cue to the containing table, this works around
33126         us not clearing the flags which confuses RenderObject markContainingBlocksForLayout and
33127         invalidateContainerPreferredLogicalWidths.
33128
33129         * rendering/RenderTableCol.h:
33130         Made the function that we are not expected to be called private.
33131
33132 2012-10-26  Sheriff Bot  <webkit.review.bot@gmail.com>
33133
33134         Unreviewed, rolling out r132601.
33135         http://trac.webkit.org/changeset/132601
33136         https://bugs.webkit.org/show_bug.cgi?id=100494
33137
33138         It broke the Qt build (Requested by Ossy on #webkit).
33139
33140         * PlatformEfl.cmake:
33141         * platform/graphics/GraphicsContext3D.h:
33142         * platform/graphics/efl/GraphicsContext3DEfl.cpp:
33143         (WebCore::GraphicsContext3D::createGraphicsSurfaces):
33144         * platform/graphics/efl/GraphicsContext3DPrivate.cpp:
33145         (WebCore::GraphicsContext3DPrivate::GraphicsContext3DPrivate):
33146         (WebCore::GraphicsContext3DPrivate::~GraphicsContext3DPrivate):
33147         (WebCore):
33148         * platform/graphics/efl/GraphicsContext3DPrivate.h:
33149         (GraphicsContext3DPrivate):
33150         * platform/graphics/opengl/GraphicsContext3DOpenGLCommon.cpp:
33151         (WebCore::GraphicsContext3D::reshape):
33152         * platform/graphics/surfaces/qt/GraphicsSurfaceGLX.cpp:
33153         (WebCore::OffScreenRootWindow::get):
33154         (WebCore::OffScreenRootWindow::~OffScreenRootWindow):
33155         (OffScreenRootWindow):
33156         (WebCore):
33157         (WebCore::GraphicsSurfacePrivate::GraphicsSurfacePrivate):
33158         (WebCore::GraphicsSurfacePrivate::createSurface):
33159         (WebCore::GraphicsSurfacePrivate::makeCurrent):
33160         (WebCore::GraphicsSurfacePrivate::doneCurrent):
33161         (WebCore::GraphicsSurfacePrivate::swapBuffers):
33162         (WebCore::GraphicsSurfacePrivate::copyFromTexture):
33163         (GraphicsSurfacePrivate):
33164         (WebCore::resolveGLMethods):
33165
33166 2012-10-26  Yury Semikhatsky  <yurys@chromium.org>
33167
33168         Memory instrumentation: do not report memory occupied by v8::String
33169         https://bugs.webkit.org/show_bug.cgi?id=100487
33170
33171         Reviewed by Alexander Pavlov.
33172
33173         Pointers to v8::String are skipped when reporting memory usage of V8 bindings'
33174         string cache.
33175
33176         * bindings/v8/V8Binding.cpp:
33177         (WTF):
33178
33179 2012-10-26  Mihnea Ovidenie  <mihnea@adobe.com>
33180
33181         [CSSRegions] Add support for auto-height regions with region-breaks
33182         https://bugs.webkit.org/show_bug.cgi?id=99952
33183
33184         Reviewed by David Hyatt.
33185
33186         This patch takes region breaks into account when computing the height for auto logical height regions.
33187         When a region break is encountered before/after an element from within a flow thread and we are in the layout
33188         phase in which we lay out the flow threads in regions unconstrained, we use the region break to
33189         compute the region override logical content height if the region break fits inside an auto logical height region.
33190         A region break inside an auto logical height region determines the region override logical content height, taking
33191         min/max height into account.
33192
33193         Tests: fast/regions/autoheight-allregions-nobreaks.html
33194                fast/regions/autoheight-allregions.html
33195                fast/regions/autoheight-breakafteralways-maxheight.html
33196                fast/regions/autoheight-breakbeforealways.html
33197                fast/regions/autoheight-firstregion-breakalways.html
33198                fast/regions/autoheight-lastregion-overflowauto-breaksignored.html
33199                fast/regions/autoheight-lastregion-overflowauto.html
33200                fast/regions/autoheight-middleregion.html
33201                fast/regions/autoheight-secondregion-breakoutside.html
33202                fast/regions/autoheight-secondregion.html
33203                fast/regions/autoheight-singleregion-breakafteralways-maxheight.html
33204                fast/regions/autoheight-singleregion-breakafteralways.html
33205                fast/regions/autoheight-singleregion-breakaftermargin.html
33206                fast/regions/autoheight-singleregion-breakbeforealways-minheight.html
33207                fast/regions/autoheight-singleregion-breakbeforealways.html
33208                fast/regions/autoheight-singleregion-multiplebreaks.html
33209                fast/regions/autoheight-singleregion-overflowauto-breaksignored.html
33210                fast/regions/autoheight-singleregion-overflowauto.html
33211
33212         * rendering/RenderBlock.cpp: When encounter a region break before/after an element inside a flow thread,
33213         try to use it to determine the override logical content height for auto logical height regions.
33214         (WebCore::RenderBlock::applyBeforeBreak):
33215         (WebCore::RenderBlock::applyAfterBreak):
33216         * rendering/RenderFlowThread.cpp:
33217         (WebCore::RenderFlowThread::layout):
33218         (WebCore::RenderFlowThread::computeOverflowStateForRegions):
33219         Simulate a region break at the end of the flow thread content.
33220         (WebCore::RenderFlowThread::updateRegionsFlowThreadPortionRect):
33221         (WebCore::RenderFlowThread::clearOverrideLogicalContentHeightInRegions):
33222         Helper method used to clear the overrideLogicalContentHeight for auto logical height regions.
33223         (WebCore::RenderFlowThread::addForcedRegionBreak):
33224         Extend the method to process region breaks. The method returns true if at least one auto logical height region
33225         has its override logical content height computed.        
33226         * rendering/RenderFlowThread.h:
33227         * rendering/RenderRegion.cpp: Make these methods work with auto logical height regions.
33228         (WebCore::RenderRegion::pageLogicalHeight):
33229         (WebCore::RenderRegion::logicalHeightOfAllFlowThreadContent):
33230
33231 2012-10-26  Regina Chung  <heejin.r.chung@samsung.com>
33232
33233         [EFL][WK2] Enable WebGL
33234         https://bugs.webkit.org/show_bug.cgi?id=97652
33235
33236         Reviewed by Gyuyoung Kim.
33237
33238         Implemented GraphicsSurface for EFL to enable WebGL for WebKit2.
33239         Depends on GLX since Evas doesn't provide the necessary functionality.
33240
33241         No new tests. Covered by existing tests.
33242
33243         * PlatformEfl.cmake:
33244         * platform/graphics/GraphicsContext3D.h:
33245         * platform/graphics/efl/GraphicsContext3DEfl.cpp:
33246         (WebCore::GraphicsContext3D::createGraphicsSurfaces):
33247         * platform/graphics/efl/GraphicsContext3DPrivate.cpp:
33248         (WebCore::GraphicsContext3DPrivate::GraphicsContext3DPrivate):
33249         (WebCore::GraphicsContext3DPrivate::~GraphicsContext3DPrivate):
33250         (WebCore):
33251         (WebCore::GraphicsContext3DPrivate::createGraphicsSurfaces):
33252         (WebCore::GraphicsContext3DPrivate::copyToGraphicsSurface):
33253         (WebCore::GraphicsContext3DPrivate::graphicsSurfaceToken):
33254         * platform/graphics/efl/GraphicsContext3DPrivate.h:
33255         (GraphicsContext3DPrivate):
33256         * platform/graphics/opengl/GraphicsContext3DOpenGLCommon.cpp:
33257         (WebCore::GraphicsContext3D::reshape):
33258         * platform/graphics/surfaces/efl: Added.
33259         * platform/graphics/surfaces/efl/GraphicsSurfaceEfl.cpp: Added.
33260         (WebCore):
33261         (WebCore::OffScreenRootWindow::get):
33262         (WebCore::OffScreenRootWindow::~OffScreenRootWindow):
33263         (WebCore::GraphicsSurfacePrivate::GraphicsSurfacePrivate):
33264         (WebCore::GraphicsSurfacePrivate::createSurface):
33265         (WebCore::GraphicsSurfacePrivate::makeCurrent):
33266         (WebCore::GraphicsSurfacePrivate::doneCurrent):
33267         (WebCore::GraphicsSurfacePrivate::swapBuffers):
33268         (WebCore::GraphicsSurface::platformBeginPaint):
33269         (WebCore::GraphicsSurface::createReadOnlyImage):
33270         * platform/graphics/surfaces/qt/GraphicsSurfaceGLX.cpp:
33271         * platform/graphics/surfaces/qt/GraphicsSurfaceGLX.h: Added.
33272         (WebCore):
33273         (OffScreenRootWindow):
33274         (WebCore::OffScreenRootWindow::OffScreenRootWindow):
33275         (GraphicsSurfacePrivate):
33276         (WebCore::GraphicsSurfacePrivate::~GraphicsSurfacePrivate):
33277         (WebCore::GraphicsSurfacePrivate::createPixmap):
33278         (WebCore::GraphicsSurfacePrivate::copyFromTexture):
33279         (WebCore::GraphicsSurfacePrivate::display):
33280         (WebCore::GraphicsSurfacePrivate::glxPixmap):
33281         (WebCore::GraphicsSurfacePrivate::size):
33282         (WebCore::GraphicsSurfacePrivate::glContext):
33283         (WebCore::resolveGLMethods):
33284         * platform/graphics/surfaces/qt/GraphicsSurfaceQt.cpp:
33285         (WebCore):
33286         (WebCore::OffScreenRootWindow::OffScreenRootWindow::get):
33287         (WebCore::OffScreenRootWindow::~OffScreenRootWindow):
33288         (WebCore::GraphicsSurfacePrivate::GraphicsSurfacePrivate):
33289         (WebCore::GraphicsSurfacePrivate::createSurface):
33290         (WebCore::GraphicsSurfacePrivate::makeCurrent):
33291         (WebCore::GraphicsSurfacePrivate::doneCurrent):
33292         (WebCore::GraphicsSurfacePrivate::swapBuffers):
33293
33294 2012-10-26  Thiago Marcos P. Santos  <thiago.santos@intel.com>
33295
33296         Add feature flags for CSS Device Adaptation
33297         https://bugs.webkit.org/show_bug.cgi?id=95960
33298
33299         Reviewed by Kenneth Rohde Christiansen.
33300
33301         * Configurations/FeatureDefines.xcconfig:
33302         * GNUmakefile.am:
33303         * GNUmakefile.features.am:
33304
33305 2012-10-26  Li Yin  <li.yin@intel.com>
33306
33307         fast/forms/file/input-file-write-files.html should cover correct setting value
33308         https://bugs.webkit.org/show_bug.cgi?id=100085
33309
33310         Reviewed by Kentaro Hara.
33311
33312         From Spec: http://dev.w3.org/html5/spec/single-page.html#dom-input-value-filename
33313         On setting, if the new value is the empty string, it must empty the list of selected
33314         files; otherwise, it must throw an InvalidStateError exception.
33315
33316         Test: fast/forms/file/input-file-value.html
33317
33318         * html/HTMLInputElement.cpp:
33319         (WebCore::HTMLInputElement::setValue):
33320         (WebCore):
33321         * html/HTMLInputElement.h:
33322         (HTMLInputElement):
33323         * html/HTMLInputElement.idl:
33324
33325 2012-10-26  Keishi Hattori  <keishi@webkit.org>
33326
33327         Refactor calendar picker to remove _x/_y from DaysTable
33328         https://bugs.webkit.org/show_bug.cgi?id=100460
33329
33330         Reviewed by Kent Tamura.
33331
33332         _x/_y properties keep the coordinates for the selection but when we add
33333         week and month picking capabilities, the selection can't be expressed as
33334         a set of coordinates. This change will remove it.
33335
33336         No new tests. Covered by calendar-picker-*.html tests.
33337
33338         * Resources/pagepopups/calendarPicker.js:
33339         (DaysTable): Removed _x/_y properties.
33340         (DaysTable.prototype._hasSelection): Changed to refer to the DOM to see if we have a selection.
33341         (DaysTable.prototype.navigateToMonthAndKeepSelectionPosition): Lookup the selection position.
33342         (DaysTable.prototype.selectDate): Deselect first so we don't have two selections.
33343         (DaysTable.prototype._selectRangeContainingNode): Selects date/week/month containing the given day node.
33344         (DaysTable.prototype._selectRangeAtPosition): Selects date/week/month at the given position.
33345         (DaysTable.prototype._firstNodeInSelectedRange): Returns first selected day node.
33346         (DaysTable.prototype._deselect): Deselects all selections.
33347         (DaysTable.prototype._handleMouseOver): Use _selectRangeContainingNode so we don't have many places handling the selection.
33348         (DaysTable.prototype._handleMouseOut): Use _deselect.
33349         (DaysTable.prototype._handleKey): Lookup the selection position.
33350         (DaysTable.prototype.updateSelection): Use _selectRangeAtPosition.
33351
33352 2012-10-26  Ningxin Hu  <ningxin.hu@intel.com>
33353
33354         FileReader abort case causes Chromium renderer crash
33355         https://bugs.webkit.org/show_bug.cgi?id=99142
33356
33357         Reviewed by Kentaro Hara.
33358
33359         Before dispatching load event, FileReader should check if it is
33360         in aborting.
33361
33362         Test: manually launch fast/files/file-reader-abort.html in Chromium
33363         browser and compare the result with
33364         fast/files/file-reader-abort-expected.txt.
33365
33366         * fileapi/FileReader.cpp:
33367         (WebCore::FileReader::didFinishLoading):
33368
33369 2012-10-26  Julien Chaffraix  <jchaffraix@webkit.org>
33370
33371         Generate less repaint calls during subtree detaching
33372         https://bugs.webkit.org/show_bug.cgi?id=99741
33373
33374         Reviewed by Eric Seidel.
33375
33376         Following bug 98336, detach is now a subtree top-down operation. Because we
33377         track visual overflow from our children during layout for most cases, we can
33378         generate a repaint only on the subtree root.
33379
33380         On http://dglazkov.github.com/performance-tests/redraw.html, this ups the FPS to
33381         26 fps from 22 fps on my MBP (+ 15%). On PerformanceTests/layout/subtree-detach.html,
33382         it decreases the time by 35%. This is due to being the best case and we now generate
33383         only one repaint per detach phase.
33384
33385         Covered by existing pixels tests (including but not limited to repaint ones).
33386
33387         * rendering/RenderObject.cpp:
33388         (WebCore::RenderObject::destroyAndCleanupAnonymousWrappers):
33389         Changed the function not to be recursive anymore to generate one painting for
33390         our root only. Added a FIXME about using our RenderLayer for repainting to avoid
33391         the cost of computing our absolute repaint rectangle.
33392
33393         * rendering/RenderObjectChildList.cpp:
33394         (WebCore::RenderObjectChildList::removeChildNode):
33395         Removed the logic for repainting in the general case. However we still force a repaint
33396         if we have a RenderLayer as we don't track their overflow in some cases (e.g. positioned
33397         objects). This check is conservative and could be narrowed down (e.g overflow RenderLayers
33398         are properly accounted for in our clipppedOverflowRectForRepaint).
33399
33400 2012-10-26  Kenichi Ishibashi  <bashi@chromium.org>
33401
33402         local(Helvetica) in src descriptor prevent fallback
33403         https://bugs.webkit.org/show_bug.cgi?id=100446
33404
33405         Reviewed by Dan Bernstein.
33406
33407         FontCache::getCachedFontData() has a mechanism that aliases a few pairs
33408         of font family names, so that if the family name specified in the font-family
33409         property is not available on the system, but the its alias is available,
33410         it will be used instead. This is appropriate for the font-family property,
33411         but not for font family names specified in the local() function of the src
33412         descriptor in a @font-face rule.
33413
33414         This patch disables the mechanism while checking src descriptor of @font-face.
33415
33416         No new tests. It's difficult to test the change because 'Helvetica' can
33417         be mapped any other font. For example, chromium DRT uses FontConfig to
33418         map Helvetica to Times New Roman. Other ports may map Helvetica to other
33419         fonts. We can't define the expected result.
33420
33421         * css/CSSFontFaceSource.cpp:
33422         (WebCore::CSSFontFaceSource::getFontData):
33423         Call fontCache()->getCachedFontData() with checkingAlternateName = true.
33424         This disables aliasing font family names in FontCache.
33425
33426 2012-10-26  Eugene Klyuchnikov  <eustas.bug@gmail.com>
33427
33428         Web Inspector: Doctype Audits panel code
33429         https://bugs.webkit.org/show_bug.cgi?id=100371
33430
33431         Reviewed by Alexander Pavlov.
33432
33433         This is a preparation step for ongoing refactoring.
33434         It is much easier to read doctyped code.
33435
33436         * inspector/front-end/AuditRules.js:
33437         (WebInspector.AuditRules.MinimizeDnsLookupsRule.prototype.doRun):
33438         Replaced "undefined" with "null"
33439         * inspector/front-end/AuditsPanel.js:
33440         (WebInspector.AuditCategory.prototype.callbackWrapper):
33441         Removed callback parameter indirection.        
33442         (WebInspector.AuditRuleResult.prototype.addFormatted):
33443         Converted private instance function to scoped function.
33444
33445 2012-10-26  János Badics  <jbadics@inf.u-szeged.hu>
33446
33447         [Qt]REGRESSION(r131428): cookies.db created on wrong place
33448         https://bugs.webkit.org/show_bug.cgi?id=99445
33449
33450         Reviewed by Simon Hausmann.
33451
33452         Added a slash to the path of cookies.db in CookieJarQt.cpp.
33453
33454         * platform/qt/CookieJarQt.cpp:
33455         (WebCore::SharedCookieJarQt::SharedCookieJarQt):
33456
33457 2012-10-26  Adam Barth  <abarth@webkit.org>
33458
33459         Unreviewed. This ASSERT is no longer correct (and fires on many tests.)
33460
33461         * bindings/v8/V8DOMWrapper.h:
33462         (WebCore::V8DOMWrapper::setJSWrapperForDOMObject):
33463
33464 2012-10-26  Kent Tamura  <tkent@chromium.org>
33465
33466         [Chromium-Win] Support shortTimeFormat
33467         https://bugs.webkit.org/show_bug.cgi?id=100471
33468
33469         Reviewed by Kentaro Hara.
33470
33471         No new tests. Covered by fast/forms/time-multiple-fields/ and
33472         WebKit/chromium/tests/LocaleWinTest.
33473
33474         * platform/text/LocaleWin.cpp:
33475         (WebCore::LocaleWin::shortTimeFormat):
33476         Gets a format by LOCALE_SSHORTTIME. If it fails, remove "<delimiter>ss"
33477         from the format by LOCALE_STIMEFORMAT.
33478         * platform/text/LocaleWin.h:
33479         (LocaleWin): Declare m_timeFormatWithoutSeconds.
33480
33481 2012-10-26  Adam Barth  <abarth@webkit.org>
33482
33483         Unreviewed. Update run-bindings-tests results after recent active DOM
33484         object changes.
33485
33486         * bindings/scripts/test/V8/V8TestInterface.cpp:
33487         (WebCore::V8TestInterface::constructorCallback):
33488         (WebCore::V8TestInterface::wrapSlow):
33489         * bindings/scripts/test/V8/V8TestInterface.h:
33490         (WebCore::V8TestInterface::wrap):
33491         * bindings/scripts/test/V8/V8TestNamedConstructor.cpp:
33492         (WebCore::V8TestNamedConstructorConstructorCallback):
33493         (WebCore::V8TestNamedConstructor::wrapSlow):
33494         * bindings/scripts/test/V8/V8TestNamedConstructor.h:
33495         (WebCore::V8TestNamedConstructor::wrap):
33496
33497 2012-10-26  MORITA Hajime  <morrita@google.com>
33498
33499         [V8] REGRESSION(132540) Assertion failure on V8DOMWrapper::setJSWrapperForDOMNode()
33500         https://bugs.webkit.org/show_bug.cgi?id=100462
33501
33502         Reviewed by Adam Barth.
33503
33504         Removed the no longer correct assertion statement.
33505
33506         No new tests. Covered by breaking tests.
33507
33508         * bindings/v8/V8DOMWrapper.cpp:
33509         (WebCore::V8DOMWrapper::setJSWrapperForDOMNode):
33510
33511 2012-10-25  Adam Barth  <abarth@webkit.org>
33512
33513         [V8] WorkerContextExecutionProxy should use ScopedPersistent
33514         https://bugs.webkit.org/show_bug.cgi?id=100443
33515
33516         Reviewed by Eric Seidel.
33517
33518         This class was manually re-implementing the ScopedPersistent pattern.
33519
33520         * bindings/v8/WorkerContextExecutionProxy.cpp:
33521         (WebCore::WorkerContextExecutionProxy::dispose):
33522         (WebCore::WorkerContextExecutionProxy::initializeIfNeeded):
33523         (WebCore::WorkerContextExecutionProxy::evaluate):
33524         * bindings/v8/WorkerContextExecutionProxy.h:
33525         (WebCore::WorkerContextExecutionProxy::context):
33526         (WorkerContextExecutionProxy):
33527
33528 2012-10-25  Peter Wang  <peter.wang@torchmobile.com.cn>
33529
33530         A mistake in WebCore::JavaScriptCallFrame::evaluate which will cause assert failed
33531         https://bugs.webkit.org/show_bug.cgi?id=100347
33532
33533         Reviewed by Mark Lam and Filip Pizlo.
33534
33535         In worker context, calling "JSDOMWindowBase::commonJSGlobalData" will cause assert,
33536         since there is "ASSERT(isMainThread())" in "JSDOMWindowBase::commonJSGlobalData".
33537
33538         No new test case, since no behaviour changed.
33539
33540         * bindings/js/JavaScriptCallFrame.cpp:
33541         (WebCore::JavaScriptCallFrame::evaluate):
33542
33543 2012-10-25  Adam Barth  <abarth@webkit.org>
33544
33545         [V8] We can merge the wrapper maps for DOM objects and active DOM objects
33546         https://bugs.webkit.org/show_bug.cgi?id=100432
33547
33548         Reviewed by Eric Seidel.
33549
33550         Now that we use the same object to visit both DOM objects and active
33551         DOM objects, there's no reason to keep them in separate hash maps.
33552
33553         * bindings/scripts/CodeGeneratorV8.pm:
33554         (GetDomMapName):
33555         * bindings/v8/DOMDataStore.cpp:
33556         (WebCore::DOMDataStore::DOMDataStore):
33557         (WebCore::DOMDataStore::~DOMDataStore):
33558         (WebCore::DOMDataStore::reportMemoryUsage):
33559         * bindings/v8/DOMDataStore.h:
33560         (DOMDataStore):
33561         * bindings/v8/V8DOMMap.cpp:
33562         * bindings/v8/V8DOMMap.h:
33563         (NodeWrapperVisitor):
33564         (WebCore):
33565         * bindings/v8/V8DOMWrapper.h:
33566         (V8DOMWrapper):
33567         * bindings/v8/V8GCController.cpp:
33568         (WebCore::V8GCController::majorGCPrologue):
33569         * bindings/v8/custom/V8WebSocketCustom.cpp:
33570         (WebCore::V8WebSocket::constructorCallback):
33571         * bindings/v8/custom/V8XMLHttpRequestConstructor.cpp:
33572         (WebCore::V8XMLHttpRequest::constructorCallback):
33573
33574 2012-10-25  Charles Wei  <charles.wei@torchmobile.com.cn>
33575
33576         [BlackBerry] User Challenged again after browser restart for HTTP/FTP sites already successfully authenticated.
33577         https://bugs.webkit.org/show_bug.cgi?id=100448
33578
33579         Reviewed by George Staikos.
33580
33581         Internally reviewed by Joe Mason.
33582
33583         We didn't check the persistent Credential Storage for Credentials when challenged by the server.
33584
33585         Manual Test: login to ftp://localhost on BlackBerry device, and restart the browser to login again.
33586
33587         * platform/network/blackberry/NetworkJob.cpp:
33588         (WebCore::NetworkJob::sendRequestWithCredentials):
33589
33590 2012-10-25  Joshua Bell  <jsbell@chromium.org>
33591
33592         IndexedDB: Add histogram statistics for backing store errors
33593         https://bugs.webkit.org/show_bug.cgi?id=98465
33594
33595         Reviewed by Adam Barth.
33596
33597         Define a macro for consistent asserting (during development), logging, and recording
33598         internal backing store errors via histograms. Define specific histogram values to
33599         track issues with opening backing stores to gather stats on corruption.
33600
33601         No new tests - just the stats, ma'am, just the stats.
33602
33603         * Modules/indexeddb/IDBLevelDBBackingStore.cpp:
33604         (WebCore):
33605         (WebCore::setUpMetadata):
33606         (WebCore::IDBLevelDBBackingStore::open):
33607         (WebCore::IDBLevelDBBackingStore::getIDBDatabaseMetaData):
33608         (WebCore::IDBLevelDBBackingStore::createIDBDatabaseMetaData):
33609         (WebCore::IDBLevelDBBackingStore::updateIDBDatabaseIntVersion):
33610         (WebCore::IDBLevelDBBackingStore::updateIDBDatabaseMetaData):
33611         (WebCore::deleteRange):
33612         (WebCore::IDBLevelDBBackingStore::getObjectStores):
33613         (WebCore::IDBLevelDBBackingStore::createObjectStore):
33614         (WebCore::IDBLevelDBBackingStore::putObjectStoreRecord):
33615         (WebCore::IDBLevelDBBackingStore::maybeUpdateKeyGeneratorCurrentNumber):
33616         (WebCore::IDBLevelDBBackingStore::forEachObjectStoreRecord):
33617         (WebCore::IDBLevelDBBackingStore::getIndexes):
33618         (WebCore::IDBLevelDBBackingStore::createIndex):
33619         (WebCore::IDBLevelDBBackingStore::deleteIndex):
33620         (WebCore::IDBLevelDBBackingStore::findKeyInIndex):
33621
33622 2012-10-25  Adam Barth  <abarth@webkit.org>
33623
33624         [V8] We can merge ActiveDOMObjectPrologueVisitor with ObjectVisitor
33625         https://bugs.webkit.org/show_bug.cgi?id=100430
33626
33627         Reviewed by Eric Seidel.
33628
33629         There's no reason for these visitors to be separate objects anymore.
33630
33631         * bindings/v8/V8GCController.cpp:
33632         (WebCore::ObjectVisitor::ObjectVisitor):
33633         (WebCore::ObjectVisitor::visitDOMWrapper):
33634         (WebCore::V8GCController::majorGCPrologue):
33635
33636 2012-10-25  Tony Chang  <tony@chromium.org>
33637
33638         Remove unused static methods from DOMTimer.h
33639         https://bugs.webkit.org/show_bug.cgi?id=100427
33640
33641         Reviewed by Kenneth Russell.
33642
33643         Since these values got moved into Settings, these methods are no longer called.
33644
33645         No new tests, removing dead code.
33646
33647         * page/DOMTimer.h:
33648         (DOMTimer): Remove unused getters.
33649
33650 2012-10-25  Leo Yang  <leoyang@rim.com>
33651
33652         [BlackBerry] Infinite redirect loop is not displayed to user
33653         https://bugs.webkit.org/show_bug.cgi?id=100420
33654
33655         Reviewed by George Staikos.
33656
33657         CNN.com is redirecting us infinitely with 302 http code and response body. We catch
33658         it my setting our extended error code as we defined. But we were not trying to notify
33659         error because we have received body. This was wrong. For extended http status code
33660         which is less than 0 we should display our own error page regardless there was data
33661         received from the server or not.
33662
33663         Tested by manually loading CNN.com.
33664
33665         * platform/network/blackberry/NetworkJob.cpp:
33666         (WebCore::NetworkJob::shouldNotifyClientFailed):
33667
33668 2012-10-25  Nico Weber  <thakis@chromium.org>
33669
33670         Flip ImageOrientation coordinate system from lefthanded to righthanded
33671         https://bugs.webkit.org/show_bug.cgi?id=100414
33672
33673         Reviewed by Eric Seidel.
33674
33675         platform/graphics, noteably GraphicsContext uses a right-handed
33676         coordinate system (origin in the top left corner, x growing to the
33677         right, y to the bottom).  ImageOrientation was an outlier from
33678         and used a left-handed coordinate system.  This patch makes
33679         ImageOrientation match the rest of platform/graphics.
33680
33681         This is a pure refactoring and has no observable effects.
33682
33683         * platform/chromium/DragImageChromiumSkia.cpp:
33684         (WebCore::createDragImageFromImage):
33685         * platform/graphics/ImageOrientation.cpp:
33686         (WebCore::ImageOrientation::transformFromDefault):
33687         * platform/graphics/cg/GraphicsContextCG.cpp:
33688         (WebCore::GraphicsContext::drawNativeImage):
33689         * platform/graphics/skia/ImageSkia.cpp:
33690         (WebCore::BitmapImage::draw):
33691         * platform/mac/DragImageMac.mm:
33692         (WebCore::createDragImageFromImage):
33693         * rendering/RenderObject.cpp:
33694         (WebCore::RenderObject::shouldRespectImageOrientation):
33695
33696 2012-10-25  Keishi Hattori  <keishi@webkit.org>
33697
33698         Hide popup while transitioning from the suggestion picker to the calendar picker
33699         https://bugs.webkit.org/show_bug.cgi?id=99537
33700
33701         Reviewed by Kent Tamura.
33702
33703         Right now you can see a squished calendar picker while transitioning
33704         from suggestion picker from calendar picker. This change will hide the
33705         popup before opening the calendar picker.
33706
33707         No new tests.
33708
33709         * Resources/pagepopups/pickerCommon.js: Hiding the window will also trigger a resize event so I created a separate event, didOpenPicker.
33710         (hideWindow): Resize the window to 1x1 because we can't resize to 0x0.
33711         * Resources/pagepopups/suggestionPicker.js:
33712         (SuggestionPicker.prototype.selectEntry): Hide the window first and then open the calendar picker.
33713
33714 2012-10-25  Anders Carlsson  <andersca@apple.com>
33715
33716         Fix build.
33717
33718         * page/mac/EventHandlerMac.mm:
33719         (WebCore::EventHandler::needsKeyboardEventDisambiguationQuirks):
33720
33721 2012-10-25  Anders Carlsson  <andersca@apple.com>
33722
33723         Remove feed and feeds URL scheme workarounds
33724         https://bugs.webkit.org/show_bug.cgi?id=100442
33725
33726         Reviewed by Dan Bernstein.
33727
33728         * dom/DocumentEventQueue.cpp:
33729         (WebCore::DocumentEventQueue::enqueueOrDispatchScrollEvent):
33730         * page/mac/EventHandlerMac.mm:
33731         (WebCore::EventHandler::needsKeyboardEventDisambiguationQuirks):
33732
33733 2012-10-25  Sheriff Bot  <webkit.review.bot@gmail.com>
33734
33735         Unreviewed, rolling out r132514.
33736         http://trac.webkit.org/changeset/132514
33737         https://bugs.webkit.org/show_bug.cgi?id=100440
33738
33739         "Broke chromium content_browsertests AccessibilityAriaMenu
33740         AccessibilityInputRange AccessibilityListMarkers" (Requested
33741         by scheib on #webkit).
33742
33743         * accessibility/AXObjectCache.cpp:
33744         (WebCore::AXObjectCache::getOrCreate):
33745         (WebCore::AXObjectCache::contentChanged):
33746         (WebCore::AXObjectCache::childrenChanged):
33747         (WebCore::AXObjectCache::handleAriaRoleChanged):
33748         * accessibility/AXObjectCache.h:
33749         (AXObjectCache):
33750         (WebCore::AXObjectCache::contentChanged):
33751         * accessibility/AccessibilityObject.cpp:
33752         (WebCore::AccessibilityObject::AccessibilityObject):
33753         * accessibility/AccessibilityObject.h:
33754         (WebCore::AccessibilityObject::contentChanged):
33755         (AccessibilityObject):
33756         * accessibility/AccessibilityRenderObject.cpp:
33757         (WebCore::AccessibilityRenderObject::accessibilityIsIgnored):
33758         (WebCore::AccessibilityRenderObject::correspondingControlForLabelElement):
33759         (WebCore::AccessibilityRenderObject::contentChanged):
33760         * accessibility/AccessibilityRenderObject.h:
33761         (AccessibilityRenderObject):
33762         * accessibility/AccessibilityScrollView.cpp:
33763         (WebCore::AccessibilityScrollView::isAttachment):
33764         (WebCore::AccessibilityScrollView::widgetForAttachmentView):
33765         (WebCore::AccessibilityScrollView::updateScrollbars):
33766         (WebCore::AccessibilityScrollView::webAreaObject):
33767         (WebCore::AccessibilityScrollView::elementRect):
33768         (WebCore::AccessibilityScrollView::documentFrameView):
33769         (WebCore::AccessibilityScrollView::parentObject):
33770         (WebCore::AccessibilityScrollView::parentObjectIfExists):
33771         (WebCore::AccessibilityScrollView::getScrollableAreaIfScrollable):
33772         (WebCore::AccessibilityScrollView::scrollTo):
33773         * accessibility/AccessibilityScrollView.h:
33774         (WebCore::AccessibilityScrollView::scrollView):
33775         (AccessibilityScrollView):
33776         * accessibility/AccessibilityTable.cpp:
33777         (WebCore::AccessibilityTable::isDataTable):
33778         * accessibility/chromium/AXObjectCacheChromium.cpp:
33779         (WebCore::AXObjectCache::postPlatformNotification):
33780         * dom/Element.cpp:
33781         (WebCore::Element::attributeChanged):
33782         * rendering/RenderBlock.cpp:
33783         (WebCore::RenderBlock::deleteLineBoxTree):
33784         (WebCore::RenderBlock::createAndAppendRootInlineBox):
33785         * rendering/RenderObject.cpp:
33786         (WebCore::RenderObject::styleWillChange):
33787         * rendering/RenderText.cpp:
33788         (WebCore::RenderText::setText):
33789
33790 2012-10-25  Dan Bernstein  <mitz@apple.com>
33791
33792         <rdar://problem/12544626> [cg] RenderBlock::selectionGaps() is extremely slow when there are many floats
33793         https://bugs.webkit.org/show_bug.cgi?id=100413
33794
33795         Reviewed by Anders Carlsson.
33796
33797         RenderBlock::selectionGaps() calls GraphicsContext::clipOut(const IntRect&) for each float.
33798         Sped up the Core Graphics implementation of this function considerably by removing an
33799         unnecessary call to CGContextGetClipBoundingBox.
33800
33801         * platform/graphics/cg/GraphicsContextCG.cpp:
33802         (WebCore::GraphicsContext::clipOut): Changed to use CGRectInfinite rather than the bounding
33803         box of the current clip.
33804
33805 2012-10-25  Tim Horton  <timothy_horton@apple.com>
33806
33807         REGRESSION (132422): Tiles don't move when the Find dialog causes programmatic scrolls
33808         https://bugs.webkit.org/show_bug.cgi?id=100433
33809         <rdar://problem/12575582>
33810
33811         Reviewed by Simon Fraser.
33812
33813         Actually update GraphicsLayer positions from updateMainFrameScrollPosition if
33814         we're doing a programmatic scroll; otherwise programmatic scrolls while scrolling
33815         on the main thread will short-circuit and end up only updating the GraphicsLayer's
33816         notion of its current position, but never synchronizing that to the layer itself.
33817
33818         No new tests, as this is currently untestable.
33819
33820         * page/scrolling/ScrollingCoordinator.cpp:
33821         (WebCore::ScrollingCoordinator::updateMainFrameScrollPosition):
33822
33823 2012-10-25  Simon Fraser  <simon.fraser@apple.com>
33824
33825         Tiled layers are missing content on zooming
33826         https://bugs.webkit.org/show_bug.cgi?id=100422
33827
33828         Reviewed by Beth Dakin.
33829
33830         Tiled layers using TileCaches were missing content after
33831         zooming. TileCache was confused in the presence of scaling;
33832         it unapplies the scale on the layer above the tiles (so the tiles
33833         live in screen space), and computed the tile coverage rect
33834         in these tile coordinates. This worked for the page tile cache,
33835         because its visibleRect was sent in pre-scaled. However, for
33836         tiled layer TileCaches this was wrong.
33837         
33838         Fix by scaling the tile coverage rect by m_scale before
33839         using it to compute which tiles to throw away and bring in.
33840         
33841         To fix the problem of the visibleRect being pre-scaled
33842         for the page tile cache, remove the setting of the visibleRect
33843         in RenderLayerCompositor::frameViewDidScroll(), and rely on 
33844         GraphicsLayerCA::updateVisibleRect() which computes the
33845         visible rect in the correct, layer coordinates.
33846
33847         Test: compositing/tiling/tile-cache-zoomed.html
33848
33849         * platform/graphics/ca/GraphicsLayerCA.cpp:
33850         (WebCore::GraphicsLayerCA::updateVisibleRect): Call setVisibleRect()
33851         for all tile cache layers, not just tiled layer ones, but only do
33852         the visible rect adjustment for those that are not the page tile cache.
33853         * platform/graphics/ca/mac/TileCache.mm:
33854         (WebCore::TileCache::revalidateTiles): Use a coverageRectInTileCoords rect,
33855         which is scaled to be in the same coordinate space as the tile grid.
33856         * rendering/RenderLayerCompositor.cpp:
33857         (WebCore::RenderLayerCompositor::frameViewDidScroll): Remove the code
33858         that sets the setVisibleRect() on the TiledBacking.
33859
33860 2012-10-25  Adam Barth  <abarth@webkit.org>
33861
33862         [V8] ActiveDOMNodes no longer require a separate wrapper map
33863         https://bugs.webkit.org/show_bug.cgi?id=100352
33864
33865         Reviewed by Eric Seidel.
33866
33867         There is no longer any reason to keep a separate DOM wrapper map for
33868         active DOM nodes. We can simply store them in the normal DOM node
33869         wrapper map (which is more efficient because it doesn't use a HashMap).
33870
33871         * bindings/scripts/CodeGeneratorV8.pm:
33872         (GetDomMapName):
33873         * bindings/v8/DOMDataStore.cpp:
33874         (WebCore::DOMDataStore::DOMDataStore):
33875         (WebCore::DOMDataStore::~DOMDataStore):
33876         (WebCore::DOMDataStore::reportMemoryUsage):
33877         * bindings/v8/DOMDataStore.h:
33878         (DOMDataStore):
33879         * bindings/v8/IntrusiveDOMWrapperMap.h:
33880         * bindings/v8/V8DOMMap.cpp:
33881         * bindings/v8/V8DOMMap.h:
33882         (WebCore):
33883         * bindings/v8/V8DOMWrapper.cpp:
33884         * bindings/v8/V8DOMWrapper.h:
33885         (V8DOMWrapper):
33886         (WebCore::V8DOMWrapper::getCachedWrapper):
33887
33888 2012-10-25  Tony Chang  <tony@chromium.org>
33889
33890         Unreviewed, fix the build on Mac.
33891
33892         Putting the getter in the Settings.h caused the global variable to be inlined and needing it to be exported.
33893         Instead, put the implementation in the cpp file.
33894
33895         * page/Settings.cpp:
33896         (WebCore::Settings::defaultMinDOMTimerInterval):
33897         (WebCore):
33898         (WebCore::Settings::defaultDOMTimerAlignmentInterval):
33899         * page/Settings.h:
33900         (Settings):
33901
33902 2012-10-25  Tony Chang  <tony@chromium.org>
33903
33904         Move default DOM Timer values into Settings
33905         https://bugs.webkit.org/show_bug.cgi?id=100405
33906
33907         Reviewed by Kenneth Russell.
33908
33909         Move the global values for defaultMinDOMTimerInterval and defaultDOMTimerAlignmentInterval into
33910         the Settings object. This is more consistent with other global settings and allows us to remove
33911         the setters on the DOMTimer object.
33912
33913         No new tests, this is a refactor.
33914
33915         * page/DOMTimer.cpp: Remove globals.
33916         * page/DOMTimer.h:
33917         (WebCore::DOMTimer::defaultMinTimerInterval): Call through to Settings
33918         (WebCore::DOMTimer::defaultTimerAlignmentInterval): Call through to Settings.
33919         (DOMTimer): Remove setters.
33920         * page/Settings.cpp:
33921         (WebCore::Settings::setDefaultMinDOMTimerInterval): Use a global in Settings.
33922         (WebCore::Settings::setDefaultDOMTimerAlignmentInterval): Use a global in Settings.
33923         * page/Settings.h:
33924         (WebCore::Settings::defaultMinDOMTimerInterval): Inline the getter.
33925         (WebCore::Settings::defaultDOMTimerAlignmentInterval): Inline the getter.
33926         (Settings): Add globals.
33927
33928 2012-10-25  Simon Fraser  <simon.fraser@apple.com>
33929
33930         Report the tile coverage rect in layer coords, and add some tests for tiled backing and zooming
33931         https://bugs.webkit.org/show_bug.cgi?id=100416
33932
33933         Reviewed by Beth Dakin.
33934
33935         The tileCoverageRect is computed in "tile" coordinates, which don't match
33936         the visibleRect coordinates. It's more useful when testing to see the
33937         tile coverage relative to the view bounds, so unapply the scale whem
33938         reporting tile coverage in tests.
33939
33940         Tests: platform/mac/tiled-drawing/tiled-drawing-zoom-scrolled.html
33941                platform/mac/tiled-drawing/tiled-drawing-zoom.html
33942
33943         * platform/graphics/ca/mac/TileCache.h:
33944         * platform/graphics/ca/mac/TileCache.mm:
33945         (WebCore::TileCache::tileCoverageRect):
33946
33947 2012-10-25  Sheriff Bot  <webkit.review.bot@gmail.com>
33948
33949         Unreviewed, rolling out r132269.
33950         http://trac.webkit.org/changeset/132269
33951         https://bugs.webkit.org/show_bug.cgi?id=100412
33952
33953         "Speculative rollout of r132269 in hopes of fixing a
33954         mysterious recalcStyle crasher" (Requested by eseidel on
33955         #webkit).
33956
33957         * rendering/RenderBlock.cpp:
33958         (WebCore::RenderBlock::updateFirstLetter):
33959         * rendering/RenderListBox.h:
33960         * rendering/RenderObjectChildList.cpp:
33961         (WebCore::RenderObjectChildList::updateBeforeAfterContent):
33962
33963 2012-10-25  Stephen White  <senorblanco@chromium.org>
33964
33965         Change ReferenceFilterOperations to reference (own) the data passed to
33966         them.
33967         https://bugs.webkit.org/show_bug.cgi?id=97715
33968
33969         Reviewed by Nate Chapin.
33970
33971         Covered by css3/filters/reference-filter-update-after-remove.html
33972
33973         * css/CachedSVGDocumentReference.h: Added.
33974         (CachedSVGDocumentReference):
33975         New class which holds a CachedResourceHandle<CachedSVGDocument>, but
33976         can be placed in ReferenceFilterOperation's Data.  It also calls
33977         addClient() / removeClient(), in order to keep the CachedSVGDocument
33978         alive until the FilterEffectRenderer can get it.
33979         (WebCore::CachedSVGDocumentReference::CachedSVGDocumentReference):
33980         (WebCore::CachedSVGDocumentReference::~CachedSVGDocumentReference):
33981         (WebCore::CachedSVGDocumentReference::document):
33982         Accessor for the underlying document.
33983         * css/StyleResolver.cpp:
33984         (WebCore::StyleResolver::loadPendingSVGDocuments):
33985         Wrap the CachedSVGDocument handle in a CachedSVGDocumentReference, and
33986         transfer ownership to the ReferenceFilterOperation.
33987         (WebCore::StyleResolver::createFilterOperations):
33988         Same as above.
33989         * platform/graphics/filters/FilterOperation.h:
33990         (Data):
33991         New base class for generic data which can be deleted polymorphically.
33992         (WebCore::FilterOperation::ReferenceFilterOperation::data):
33993         (WebCore::FilterOperation::ReferenceFilterOperation::setData):
33994         Use the above-mentioned Data class, instead of a void *.
33995         (WebCore::FilterOperation::ReferenceFilterOperation::ReferenceFilterOperation):
33996         Don't initialize data to null; OwnPtr will do that for us.
33997         * rendering/FilterEffectRenderer.cpp:
33998         (WebCore::FilterEffectRenderer::buildReferenceFilter):
33999         Extract the cached SVG document from the reference data.
34000         * rendering/RenderLayerFilterInfo.cpp:
34001         (WebCore::RenderLayerFilterInfo::updateReferenceFilterClients):
34002         Extract the cached SVG document from the reference data.
34003
34004 2012-10-25  Simon Fraser  <simon.fraser@apple.com>
34005
34006         Incorrect tile size in the slow scrolling case
34007         https://bugs.webkit.org/show_bug.cgi?id=100411
34008
34009         Reviewed by Beth Dakin.
34010
34011         If we're in slow scrolling mode, we don't want to inflate the
34012         coverage rect based on scrollability. This ensures that the few
34013         big tiles we create have the correct size.
34014
34015         * platform/graphics/ca/mac/TileCache.mm:
34016         (WebCore::TileCache::computeTileCoverageRect):
34017
34018 2012-10-25  Nico Weber  <thakis@chromium.org>
34019
34020         Move ImageOrientation transform back in CG space (lower-left origin), adapt the skia code to work with that, turn on feature for chromium
34021         https://bugs.webkit.org/show_bug.cgi?id=100401
34022
34023         Reviewed by Eric Seidel.
34024
34025         This is an alternative fix for the regression caused by r132384 / bug
34026         100179. The bug exists because different pieces of code didn't agree
34027         which space the transformation returned by ImageOrientation was in.
34028
34029         r132384 moved it from CG coordinates to skia coordinates, but didn't
34030         do it completetely. This CL reverts this part of r132384 so that the
34031         transformation is in CG coordinates again, and adapts the skia code to
34032         work in that space.
34033
34034         Alternatively, https://bugs.webkit.org/show_bug.cgi?id=100319 woudl
34035         make the cg code work with the transform in skia coordinates.
34036
34037         Covered by fast/images/exif-orientation.html
34038
34039         * platform/chromium/DragImageChromiumSkia.cpp:
34040         (WebCore::createDragImageFromImage):
34041         * platform/graphics/ImageOrientation.cpp:
34042         (WebCore::ImageOrientation::transformFromDefault):
34043         * platform/graphics/ImageOrientation.h:
34044         (WebCore):
34045         (WebCore::ImageOrientation::usesWidthAsHeight):
34046         (WebCore::ImageOrientation::fromEXIFValue):
34047         (ImageOrientation):
34048         * platform/graphics/cg/GraphicsContextCG.cpp:
34049         (WebCore::GraphicsContext::drawNativeImage):
34050         * platform/graphics/skia/ImageSkia.cpp:
34051         (WebCore::BitmapImage::draw):
34052         * platform/mac/DragImageMac.mm:
34053         (WebCore::createDragImageFromImage):
34054         * rendering/RenderObject.cpp:
34055         (WebCore::RenderObject::shouldRespectImageOrientation):
34056
34057 2012-10-25  Simon Fraser  <simon.fraser@apple.com>
34058
34059         Log the tile cache tile size in test output
34060         https://bugs.webkit.org/show_bug.cgi?id=100409
34061
34062         Reviewed by Beth Dakin.
34063
34064         When dumping tile cache information in tests, also dump the tile size.
34065
34066         * platform/graphics/TiledBacking.h:
34067         * platform/graphics/ca/GraphicsLayerCA.cpp:
34068         (WebCore::GraphicsLayerCA::dumpAdditionalProperties):
34069         * platform/graphics/ca/mac/TileCache.h:
34070
34071 2012-10-25  Arnaud Renevier  <a.renevier@sisa.samsung.com>
34072
34073         do not multiply/demultiply colors when alpha is 255
34074         https://bugs.webkit.org/show_bug.cgi?id=89246
34075
34076         Reviewed by Kenneth Rohde Christiansen.
34077
34078         Do not use colorFromPremultipliedARGB in getImageData nor
34079         premultipliedARGBFromColor in putByteArray. Avoiding object creation
34080         and function call make canvas.getImageData about 10% faster and
34081         canvas.putImageData about 30% faster.
34082
34083         Also, we avoid multiplication/demultiplication computation when alpha
34084         is 255. Result is the same, but when there is no transparency,
34085         canvas.getImageData is about 4x faster, and canvas.putImageData is
34086         about 2x faster.
34087
34088         No new tests. No change in behavior.
34089
34090         * platform/graphics/cairo/ImageBufferCairo.cpp:
34091         (WebCore::getImageData):
34092         (WebCore::ImageBuffer::putByteArray):
34093
34094 2012-10-25  Nate Chapin  <japhet@chromium.org>
34095
34096         Add a main resource type to the memory cache
34097         https://bugs.webkit.org/show_bug.cgi?id=99864
34098
34099         Reviewed by Adam Barth.
34100
34101         No new tests, no functionality change.
34102
34103         * inspector/InspectorPageAgent.cpp:
34104         (WebCore::hasTextContent):
34105         (WebCore::InspectorPageAgent::cachedResourceType):
34106         * loader/SubresourceLoader.cpp:
34107         (WebCore::SubresourceLoader::willSendRequest):
34108         (WebCore::SubresourceLoader::didReceiveResponse):
34109         (WebCore::SubresourceLoader::didFail):
34110         * loader/cache/CachedRawResource.cpp:
34111         (WebCore::CachedRawResource::CachedRawResource):
34112         (WebCore::CachedRawResource::addAdditionalRequestHeaders):
34113         (WebCore):
34114         (WebCore::CachedRawResource::setShouldBufferData):
34115         (WebCore::CachedRawResource::loader):
34116         (WebCore::CachedRawResource::clear):
34117         * loader/cache/CachedRawResource.h:
34118         (WebCore):
34119         (CachedRawResource):
34120         * loader/cache/CachedResource.cpp:
34121         (WebCore::defaultPriorityForResourceType):
34122         (WebCore::cachedResourceTypeToTargetType):
34123         (WebCore::CachedResource::updateResourceRequest):
34124         (WebCore):
34125         * loader/cache/CachedResource.h:
34126         (WebCore::CachedResource::setResourceError):
34127         (WebCore::CachedResource::resourceError):
34128         (CachedResource):
34129         (WebCore::CachedResource::ignoreForRequestCount):
34130         * loader/cache/CachedResourceLoader.cpp:
34131         (WebCore::createResource):
34132         (WebCore::CachedResourceLoader::requestRawResource):
34133         (WebCore::CachedResourceLoader::checkInsecureContent):
34134         (WebCore::CachedResourceLoader::canRequest):
34135         (WebCore::CachedResourceLoader::determineRevalidationPolicy):
34136         * loader/cache/CachedResourceLoader.h:
34137         (CachedResourceLoader):
34138         * platform/network/ResourceLoadPriority.h:
34139         * platform/network/cf/ResourceRequestCFNet.h:
34140         (WebCore::toResourceLoadPriority):
34141         (WebCore::toHTTPPipeliningPriority):
34142
34143 2012-10-25  Ojan Vafai  <ojan@chromium.org>
34144
34145         [V8] Add histograms to measure V8 work done during window close and navigation
34146         https://bugs.webkit.org/show_bug.cgi?id=100358
34147
34148         Reviewed by Adam Barth.
34149
34150         * bindings/v8/ScriptController.cpp:
34151         (WebCore::ScriptController::clearForClose):
34152         (WebCore::ScriptController::clearWindowShell):
34153
34154 2012-10-25  Antti Koivisto  <antti@apple.com>
34155
34156         Avoid unnecessary style recalcs on id attribute mutation.
34157         https://bugs.webkit.org/show_bug.cgi?id=100395
34158
34159         Reviewed by Andreas Kling.
34160
34161         There is no need to invalidate element style on id attribute change if neither the old nor the new id were 
34162         mentioned in any stylesheet. This is similar to the optimization we already have for class attributes.
34163         
34164         Recalculating element style is expensive. It seems id attribute mutation is often used in scripts for purposes other than styling. 
34165
34166         * css/StyleResolver.cpp:
34167         (WebCore::StyleResolver::hasSelectorForId):
34168         (WebCore):
34169         * css/StyleResolver.h:
34170         * dom/Element.cpp:
34171         (WebCore::makeIdForStyleResolution):
34172         (WebCore):
34173         (WebCore::Element::attributeChanged):
34174
34175 2012-10-25  Dominic Mazzoni  <dmazzoni@google.com>
34176
34177         AX: Notification should be sent when accessibilityIsIgnored changes
34178         https://bugs.webkit.org/show_bug.cgi?id=99547
34179
34180         Reviewed by Chris Fleizach.
34181
34182         Adds a new flag in AccessibilityObject that keeps track of the most recent
34183         value of accessibilityIsIgnored(). After certain events such as an ARIA
34184         attribute change or content change, checks the new value of
34185         accessibilityIsIgnored() and posts a "children changed" notification on the
34186         parent node if it changed, making sure the parent recomputes its vector of
34187         (unignored) children.
34188
34189         Also moves handling of attribute changes to AXObjectCache, and sends
34190         notifications for some attribute changes that were previously silent. On
34191         Chromium, all changes to an accessibility object's attributes should
34192         result in some notification.
34193
34194         Some tests would have broken because an AccessibilityScrollView was created
34195         and holding a reference to a ScrollView for an iframe after it was deleted,
34196         so this change switches AccessibilityScrollView to hold a weak reference
34197         to ScrollView instead.
34198
34199         Tests: platform/chromium/accessibility/is-ignored-change-sends-notification.html
34200                platform/chromium/accessibility/other-aria-attribute-change-sends-notification.html
34201                platform/chromium/accessibility/text-change-notification.html
34202
34203         * accessibility/AXObjectCache.cpp:
34204         (WebCore::AXObjectCache::focusedUIElementForPage):
34205         (WebCore::AXObjectCache::getOrCreate):
34206         (WebCore::AXObjectCache::textChanged):
34207         (WebCore):
34208         (WebCore::AXObjectCache::childrenChanged):
34209         (WebCore::AXObjectCache::handleAriaRoleChanged):
34210         (WebCore::AXObjectCache::handleAttributeChanged):
34211         (WebCore::AXObjectCache::labelChanged):
34212         (WebCore::AXObjectCache::recomputeIsIgnored):
34213         * accessibility/AXObjectCache.h:
34214         (AXObjectCache):
34215         (WebCore::AXObjectCache::childrenChanged):
34216         (WebCore::AXObjectCache::textChanged):
34217         (WebCore::AXObjectCache::handleAttributeChanged):
34218         (WebCore::AXObjectCache::recomputeIsIgnored):
34219         * accessibility/AccessibilityNodeObject.cpp:
34220         (WebCore::AccessibilityNodeObject::insertChild):
34221         * accessibility/AccessibilityObject.cpp:
34222         (WebCore::AccessibilityObject::AccessibilityObject):
34223         (WebCore::AccessibilityObject::cachedIsIgnoredValue):
34224         (WebCore):
34225         (WebCore::AccessibilityObject::setCachedIsIgnoredValue):
34226         (WebCore::AccessibilityObject::notifyIfIgnoredValueChanged):
34227         * accessibility/AccessibilityObject.h:
34228         (WebCore::AccessibilityObject::textChanged):
34229         (AccessibilityObject):
34230         * accessibility/AccessibilityRenderObject.cpp:
34231         (WebCore::AccessibilityRenderObject::accessibilityIsIgnored):
34232         (WebCore::AccessibilityRenderObject::correspondingControlForLabelElement):
34233         (WebCore::AccessibilityRenderObject::textChanged):
34234         (WebCore::AccessibilityRenderObject::addHiddenChildren):
34235         (WebCore::AccessibilityRenderObject::addChildren):
34236         * accessibility/AccessibilityRenderObject.h:
34237         (AccessibilityRenderObject):
34238         * accessibility/AccessibilityScrollView.cpp:
34239         (WebCore::AccessibilityScrollView::~AccessibilityScrollView):
34240         (WebCore):
34241         (WebCore::AccessibilityScrollView::detach):
34242         (WebCore::AccessibilityScrollView::isAttachment):
34243         (WebCore::AccessibilityScrollView::widgetForAttachmentView):
34244         (WebCore::AccessibilityScrollView::updateScrollbars):
34245         (WebCore::AccessibilityScrollView::webAreaObject):
34246         (WebCore::AccessibilityScrollView::elementRect):
34247         (WebCore::AccessibilityScrollView::documentFrameView):
34248         (WebCore::AccessibilityScrollView::parentObject):
34249         (WebCore::AccessibilityScrollView::parentObjectIfExists):
34250         (WebCore::AccessibilityScrollView::getScrollableAreaIfScrollable):
34251         (WebCore::AccessibilityScrollView::scrollTo):
34252         * accessibility/AccessibilityScrollView.h:
34253         (WebCore::AccessibilityScrollView::scrollView):
34254         (AccessibilityScrollView):
34255         * accessibility/AccessibilityTable.cpp:
34256         (WebCore::AccessibilityTable::isDataTable):
34257         * accessibility/chromium/AXObjectCacheChromium.cpp:
34258         (WebCore::AXObjectCache::postPlatformNotification):
34259         * dom/Element.cpp:
34260         (WebCore::Element::attributeChanged):
34261         * rendering/RenderBlock.cpp:
34262         (WebCore::RenderBlock::deleteLineBoxTree):
34263         (WebCore::RenderBlock::createAndAppendRootInlineBox):
34264         * rendering/RenderObject.cpp:
34265         (WebCore::RenderObject::styleWillChange):
34266         * rendering/RenderText.cpp:
34267         (WebCore::RenderText::setText):
34268
34269 2012-10-25  Dominik Röttsches  <dominik.rottsches@intel.com>
34270
34271         Conditionalize XHR timeout support
34272         https://bugs.webkit.org/show_bug.cgi?id=100356
34273
34274         Reviewed by Adam Barth.
34275
34276         Adding feature for XHR_TIMEOUT to disable it on ports that don't have
34277         network backend support for setTimeoutInterval.
34278
34279         No new tests, covered by http/tests/xmlhttprequest/timeout/*
34280
34281         * Configurations/FeatureDefines.xcconfig: Default ON on mac.
34282         * GNUmakefile.am:
34283         * GNUmakefile.features.am:
34284           Autotools support for the flag.
34285         * xml/XMLHttpRequest.cpp: #if ENABLE(XHR_TIMEOUT) wrapping
34286         (WebCore::XMLHttpRequest::XMLHttpRequest):
34287         (WebCore):
34288         (WebCore::XMLHttpRequest::open):
34289         (WebCore::XMLHttpRequest::createRequest):
34290         (WebCore::XMLHttpRequest::didFail):
34291         * xml/XMLHttpRequest.h: #if ENABLE(XHR_TIMEOUT) wrapping
34292         (XMLHttpRequest):
34293         * xml/XMLHttpRequest.idl: Conditional properties timeout and ontimeout (event handler).
34294
34295 2012-10-25  Tom Sepez  <tsepez@chromium.org>
34296
34297         XSSAuditor must replace form action with about:blank when reflected action detected.
34298         https://bugs.webkit.org/show_bug.cgi?id=100280
34299
34300         Reviewed by Daniel Bates.
34301
34302         Changes empty string form-action replacement to about:blank.
34303         Existing form-action.html test modified to check this case.
34304         
34305         * html/parser/XSSAuditor.cpp:
34306         (WebCore::XSSAuditor::filterFormToken):
34307
34308 2012-10-25  Kevin Ellis  <kevers@chromium.org>
34309
34310         Touch adjustment snaps to wrong target at a plugin boundary.
34311         https://bugs.webkit.org/show_bug.cgi?id=99938
34312
34313         Reviewed by Antonio Gomes.
34314
34315         Inidcate that an <embed> element can respond to
34316         mouse click events, since mouse events are forwarded
34317         to the plugin.  Fixes touch adjustment at a plugin
34318         boundary.  Prior to the patch a clickable element 
34319         adjacent to the plugin would capture synthetic mouse
34320         events from tap gestures that spanned the plugin
34321         boundary.
34322
34323         Test: touchadjustment/plugin.html
34324
34325         * html/HTMLEmbedElement.cpp:
34326         (WebCore::HTMLEmbedElement::willRespondToMouseClickEvents):
34327         (WebCore):
34328         * html/HTMLEmbedElement.h:
34329
34330 2012-10-25  Ojan Vafai  <ojan@chromium.org>
34331
34332         Get rid of ScriptController::clearForNavigation
34333         https://bugs.webkit.org/show_bug.cgi?id=100390
34334
34335         Reviewed by Adam Barth.
34336
34337         Get rid of clearForNavigation and change resetIsolatedWorlds
34338         to reset so that it can also do the hintForCollectGarbage call.
34339         No new tests. No behavior change.
34340
34341         * bindings/v8/ScriptController.cpp:
34342         (WebCore::ScriptController::reset):
34343         (WebCore::ScriptController::clearForClose):
34344         (WebCore::ScriptController::clearWindowShell):
34345         * bindings/v8/ScriptController.h:
34346         (ScriptController):
34347
34348 2012-10-25  Simon Fraser  <simon.fraser@apple.com>
34349
34350         r132427 changed the tiling behavior of tiled layer TileCaches as well as the page tile cache
34351         https://bugs.webkit.org/show_bug.cgi?id=100323
34352
34353         Reviewed by Anders Carlsson.
34354
34355         r132427 assumed that TileCaches were only used for the page, and changed the tile
34356         size behavior of all non-page TileCaches.
34357         
34358         Fix by giving TiledBacking a new 'CoverageForSlowScrolling' flag which
34359         affects the tile size behavior.
34360         
34361         Consolidated the two places that set TileCoverage into one, and in the process
34362         reduced FrameView's direct communication with TiledBacking.
34363
34364         No new tests because we can't test tile size via tests.
34365
34366         * page/FrameView.cpp:
34367         (WebCore::FrameView::didMoveOnscreen): Rely on RenderLayerCompositor to
34368         call setIsInWindow() on the main page tile cache.
34369         (WebCore::FrameView::willMoveOffscreen): Ditto.
34370         (WebCore::FrameView::performPostLayoutTasks): Rather than explicitly tell
34371         the TiledBacking that it should do stuff, just tell the compositor that
34372         layout happened.
34373         * platform/graphics/TiledBacking.h: New CoverageForSlowScrolling flag.
34374         * platform/graphics/ca/mac/TileCache.mm:
34375         (WebCore::TileCache::tileSizeForCoverageRect): Only use one big tile
34376         if the CoverageForSlowScrolling flag is set.
34377         * rendering/RenderLayerBacking.cpp:
34378         (WebCore::RenderLayerBacking::RenderLayerBacking): layer->isRootLayer()
34379         is equivalent to renderer()->isRenderView() and clearer.
34380         (WebCore::RenderLayerBacking::tiledBacking): Call adjustTileCacheCoverage().
34381         It would be nice to move the rest of this TiledBacking code from here somehow.
34382         (WebCore::RenderLayerBacking::adjustTileCacheCoverage): Update the TileCoverage
34383         flags, taking into account horizontal and vertical scrollability independently,
34384         and whether we're in slow scrolling mode.
34385         * rendering/RenderLayerBacking.h:
34386         (RenderLayerBacking):
34387         * rendering/RenderLayerCompositor.cpp:
34388         (WebCore::RenderLayerCompositor::frameViewDidLayout): Have the page
34389         tiled backing update it's coverage flags.
34390         (WebCore::RenderLayerCompositor::pageTiledBacking): Utility function.
34391         (WebCore::RenderLayerCompositor::didMoveOnscreen): Moved from FrameView.
34392         (WebCore::RenderLayerCompositor::willMoveOffscreen): Ditto.
34393         * rendering/RenderLayerCompositor.h:
34394         (RenderLayerCompositor):
34395
34396 2012-10-25  Elliott Sprehn  <esprehn@chromium.org>
34397
34398         Everything that sets RenderObject::m_style should go through setStyleInternal
34399         https://bugs.webkit.org/show_bug.cgi?id=100338
34400
34401         Reviewed by Ojan Vafai.
34402
34403         Whenever we set m_style in RenderObject go through setStyleInternal and make
34404         it inline. This gives a common place to put printfs and makes the code cleaner.
34405
34406         No new tests, just a refactor.
34407
34408         * rendering/RenderObject.cpp:
34409         (WebCore::RenderObject::createObject):
34410         (WebCore::RenderObject::setStyle):
34411         * rendering/RenderObject.h:
34412         (WebCore::RenderObject::setStyleInternal):
34413
34414 2012-10-25  Brady Eidson  <beidson@apple.com>
34415
34416         Allow LoaderStrategy to override the ResourceLoadScheduler
34417         https://bugs.webkit.org/show_bug.cgi?id=100355
34418
34419         Reviewed by Anders Carlsson.
34420
34421         Allow LoaderStrategy to override the implementation of the ResourceLoadScheduler.
34422         Add a default implementation that just returns the current ResourceLoadScheduler.
34423
34424         No new tests (No behavior change).
34425
34426         Project file stuff:
34427         * CMakeLists.txt:
34428         * GNUmakefile.list.am:
34429         * Target.pri:
34430         * WebCore.exp.in:
34431         * WebCore.gypi:
34432         * WebCore.vcproj/WebCore.vcproj:
34433         * WebCore.xcodeproj/project.pbxproj:
34434
34435         "Virtualize" ResourceLoadScheduler to expose build issues in preparation for future virtualization:
34436         * loader/ResourceLoadScheduler.cpp:
34437         (WebCore::ResourceLoadScheduler::~ResourceLoadScheduler):
34438         * loader/ResourceLoadScheduler.h:
34439         (ResourceLoadScheduler):
34440
34441         Add the new method plus a default implementation:
34442          * loader/LoaderStrategy.cpp: 
34443         (WebCore::LoaderStrategy::resourceLoadScheduler):
34444         * loader/LoaderStrategy.h:
34445
34446         When strategies are enabled, use the LoaderStrategy for this:
34447         * dom/ContainerNode.cpp:
34448         (WebCore::ContainerNode::suspendPostAttachCallbacks):
34449         (WebCore::ContainerNode::resumePostAttachCallbacks):
34450
34451         * loader/MainResourceLoader.cpp:
34452         (WebCore::MainResourceLoader::loadNow):
34453
34454         * loader/ResourceLoader.cpp:
34455         (WebCore::ResourceLoader::releaseResources):
34456         (WebCore::ResourceLoader::willSendRequest):
34457
34458         * loader/cache/CachedResource.cpp:
34459         (WebCore::CachedResource::load):
34460
34461         * loader/cache/CachedResourceLoader.cpp:
34462         (WebCore::CachedResourceLoader::performPostLoadActions):
34463
34464 2012-10-25  Yury Semikhatsky  <yurys@chromium.org>
34465
34466         Web Inspector: inspector tests failing after r132454
34467         https://bugs.webkit.org/show_bug.cgi?id=100381
34468
34469         Reviewed by Pavel Feldman.
34470
34471         Added implementation for DOMNodeWrapperMap::reportMemoryUsage method,
34472         otherwise no actual pointer is reported which breaks instrumentation.
34473
34474         * bindings/v8/IntrusiveDOMWrapperMap.h:
34475
34476 2012-10-25  Dominik Röttsches  <dominik.rottsches@intel.com>
34477
34478         Init timeout flag in ResourceErrorCF
34479         https://bugs.webkit.org/show_bug.cgi?id=100349
34480
34481         Reviewed by Alexey Proskuryakov.
34482
34483         Initialize the timeout property to true if the network error was a timeout error.
34484         This is a speculative fix for the XHR timeout test cases failing on Apple Win -
34485         I can't verify this on a local machine.
34486
34487         No new tests, covered by
34488         LayoutTests/http/tests/xmlhttprequest/timeout/*
34489
34490         * platform/network/cf/ResourceErrorCF.cpp:
34491         (WebCore::ResourceError::ResourceError): Init m_timeout from error code.
34492
34493 2012-10-25  Kenneth Rohde Christiansen  <kenneth@webkit.org>
34494
34495         'resolution' MQ: Printing should use use high resolution images when available
34496         https://bugs.webkit.org/show_bug.cgi?id=100382
34497
34498         Reviewed by Antti Koivisto.
34499
34500         Special case print to not use the dpi of the screen, but one of 300.
34501
34502         Updated the resolution media query test to cover this.
34503
34504         * css/MediaQueryEvaluator.cpp:
34505         (WebCore::resolutionMediaFeatureEval): Update compared decimal points
34506         to three, due to 300 / 96 being equal to 3.125.
34507
34508 2012-10-25  Kinuko Yasuda  <kinuko@chromium.org>
34509
34510         [chromium] External FileSystem should use the root path returned by requestFileSystem
34511         https://bugs.webkit.org/show_bug.cgi?id=100372
34512
34513         Reviewed by Kentaro Hara.
34514
34515         External FileSystem should use the root path returned by
34516         requestFileSystem as other type is doing. Current implementation
34517         completely ignore the returned path.
34518
34519         New tests are to be added in chromium (as the type is only available in chromeos and chrome extensions)
34520
34521         * Modules/filesystem/chromium/DOMFileSystemChromium.cpp:
34522         (WebCore::DOMFileSystemBase::createFileSystemURL):
34523
34524 2012-10-25  Kevin Ellis  <kevers@chromium.org>
34525
34526         Can't easily position the cursor on an empty line in a textarea with touch if touch adjustment is enabled
34527         https://bugs.webkit.org/show_bug.cgi?id=97576
34528
34529         Reviewed by Antonio Gomes.
34530
34531         Consolidate touch adjustment candidates that are
34532         editable.  Adjustment becomes coarse being based
34533         on the bounds of the outermost editable element.
34534         This fix allows tap positioning of the text caret
34535         on a blank line immediately above or below another
34536         element.
34537
34538         Test: touchadjustment/editable-content.html
34539
34540         * page/TouchAdjustment.cpp:
34541         (WebCore::TouchAdjustment::compileSubtargetList):
34542         (WebCore::TouchAdjustment::hybridDistanceFunction):
34543
34544 2012-10-25  Yury Semikhatsky  <yurys@chromium.org>
34545
34546         Memory instrumentation: add reportMemoryUsage to ImageObserver interface
34547         https://bugs.webkit.org/show_bug.cgi?id=100091
34548
34549         Reviewed by Pavel Feldman.
34550
34551         Added reportMemoryUsage method to ImageObserver to make sure it is reported as
34552         appropriate descendant(with pointer adjusted due to offsets added by inheritance)
34553         rather than as a standalone memory block.
34554
34555         * platform/graphics/ImageObserver.h:
34556         (ImageObserver):
34557
34558 2012-10-25  Alexander Pavlov  <apavlov@chromium.org>
34559
34560         Web Inspector: [Overrides] Add latitude and longitude labels for the geolocation fields
34561         https://bugs.webkit.org/show_bug.cgi?id=100375
34562
34563         Reviewed by Yury Semikhatsky.
34564
34565         No new tests, a UI change.
34566
34567         * English.lproj/localizedStrings.js:
34568         * inspector/front-end/SettingsScreen.js:
34569         (WebInspector.UserAgentSettingsTab.prototype._createGeolocationOverrideElement):
34570
34571 2012-10-25  Mikhail Pozdnyakov  <mikhail.pozdnyakov@intel.com>
34572
34573         Add setMediaTypeOverride to window.internals.settings
34574         https://bugs.webkit.org/show_bug.cgi?id=100249
34575
34576         Reviewed by Kenneth Rohde Christiansen.
34577
34578         Added setMediaTypeOverride to window.internals.settings.
34579
34580         Test: fast/media/print-restores-previous-mediatype.html
34581
34582         * WebCore.exp.in: Exported WebCore::Settings::setMediaTypeOverride(WTF::String const&) for MAC.
34583         * page/Settings.cpp:
34584         (WebCore::Settings::Settings):
34585         (WebCore::Settings::setMediaTypeOverride):
34586         (WebCore):
34587         * page/Settings.h:
34588         (Settings):
34589         (WebCore::Settings::mediaTypeOverride):
34590         * testing/InternalSettings.cpp:
34591         (WebCore::InternalSettings::Backup::Backup):
34592         (WebCore::InternalSettings::Backup::restoreTo):
34593         (WebCore::InternalSettings::setMediaTypeOverride):
34594         (WebCore):
34595         * testing/InternalSettings.h:
34596         (Backup):
34597         (InternalSettings):
34598         * testing/InternalSettings.idl:
34599
34600 2012-10-22  Mikhail Naganov  <mnaganov@chromium.org>
34601
34602         [Chromium] Add supportMultipleWindows setting, needed for Android
34603         https://bugs.webkit.org/show_bug.cgi?id=99716
34604
34605         Reviewed by Adam Barth.
34606
34607         Add supportMultipleWindows settings for reusing the same view when
34608         opening popups. This is required for emulating the behavior of
34609         Android WebView. Adding into WebCore, as other ports might want to
34610         use this setting in the future.
34611
34612         Tests: fast/dom/HTMLAnchorElement/anchor-no-multiple-windows.html
34613                fast/dom/Window/window-open-no-multiple-windows.html
34614                fast/forms/post-popup-no-multiple-windows.html
34615
34616         * loader/FrameLoader.cpp:
34617         (WebCore::createWindow):
34618         * page/ContextMenuController.cpp:
34619         (WebCore::openNewWindow):
34620         * page/Settings.cpp:
34621         (WebCore::Settings::Settings):
34622         (WebCore::Settings::setSupportsMultipleWindows):
34623         (WebCore):
34624         * page/Settings.h:
34625         (Settings):
34626         (WebCore::Settings::supportsMultipleWindows):
34627
34628 2012-10-25  Alexander Pavlov  <apavlov@chromium.org>
34629
34630         Unreviewed, fix Web Inspector frontend compilability
34631
34632         * inspector/front-end/ElementsTreeOutline.js:
34633         (WebInspector.ElementsTreeOutline.prototype._ondragstart):
34634         * inspector/front-end/StylesSidebarPane.js:
34635         (WebInspector.StylePropertiesSection.prototype._handleEmptySpaceClick):
34636         (WebInspector.StylePropertyTreeElement.prototype):
34637
34638 2012-10-23  Alexander Pavlov  <apavlov@chromium.org>
34639
34640         Web Inspector: Drag and drop property value from Inspector is not working as expected
34641         https://bugs.webkit.org/show_bug.cgi?id=100040
34642
34643         Reviewed by Vsevolod Vlasov.
34644
34645         Do not start a custom drag for a tree element if there is a non-collapsed selection in the Inspector.
34646
34647         * inspector/front-end/ElementsTreeOutline.js:
34648         (WebInspector.ElementsTreeOutline.prototype._ondragstart):
34649
34650 2012-10-25  Ilya Tikhonovsky  <loislo@chromium.org>
34651
34652         Web Inspector: NMI instrument InspectorDebuggerAgent. It uses a lot of memory on heavy js sites because it keeps all the scripts in a map.
34653         https://bugs.webkit.org/show_bug.cgi?id=100340
34654
34655         Reviewed by Yury Semikhatsky.
34656
34657         * dom/WebCoreMemoryInstrumentation.cpp:
34658         (WebCore):
34659         * dom/WebCoreMemoryInstrumentation.h:
34660         (WebCoreMemoryTypes):
34661         * inspector/InspectorDebuggerAgent.cpp:
34662         (WebCore::InspectorDebuggerAgent::reportMemoryUsage):
34663         (WebCore):
34664         (WebCore::ScriptDebugListener::Script::reportMemoryUsage):
34665         * inspector/InspectorDebuggerAgent.h:
34666         (InspectorDebuggerAgent):
34667         * inspector/ScriptDebugListener.h:
34668         (Script):
34669
34670 2012-10-25  Adam Barth  <abarth@webkit.org>
34671
34672         [V8] We can handle ActiveDOMNodes and DOMNodes in the same GC visitor
34673         https://bugs.webkit.org/show_bug.cgi?id=100351
34674
34675         Reviewed by Eric Seidel.
34676
34677         There is no reason to handle active DOM nodes in a separate pass from
34678         regular DOM nodes anymore.
34679
34680         * bindings/v8/V8DOMMap.cpp:
34681         * bindings/v8/V8DOMMap.h:
34682         (WebCore):
34683         * bindings/v8/V8GCController.cpp:
34684         (WebCore::ActiveDOMObjectPrologueVisitor::visitDOMWrapper):
34685         (WebCore::NodeVisitor::NodeVisitor):
34686         (NodeVisitor):
34687         (WebCore::NodeVisitor::visitNodeWrapper):
34688         (WebCore::V8GCController::majorGCPrologue):
34689
34690 2012-10-25  Alexander Pavlov  <apavlov@chromium.org>
34691
34692         Web Inspector: Improper out-of-order call on a rule that is being removed from the stylesheet.
34693         https://bugs.webkit.org/show_bug.cgi?id=100357
34694
34695         Reviewed by Vsevolod Vlasov.
34696
34697         * inspector/InspectorStyleSheet.cpp:
34698         (WebCore::InspectorStyleSheet::deleteRule):
34699
34700 2012-10-25  Adam Barth  <abarth@webkit.org>
34701
34702         [V8] DOMDataStoreHandle serves no purpose and can be removed
34703         https://bugs.webkit.org/show_bug.cgi?id=100333
34704
34705         Reviewed by Eric Seidel.
34706
34707         After https://bugs.webkit.org/show_bug.cgi?id=100316,
34708         DOMDataStoreHandle is just a glorified OwnPtr.
34709
34710         * bindings/v8/DOMWrapperWorld.h:
34711         (WebCore::DOMWrapperWorld::domDataStore):
34712         (DOMWrapperWorld):
34713         (WebCore::DOMWrapperWorld::DOMWrapperWorld):
34714         * bindings/v8/V8DOMMap.cpp:
34715         * bindings/v8/V8DOMMap.h:
34716
34717 2012-10-25  Elliott Sprehn  <esprehn@chromium.org>
34718
34719         Remove dead Node::isBlockFlowOrBlockTable
34720         https://bugs.webkit.org/show_bug.cgi?id=100336
34721
34722         Reviewed by Eric Seidel.
34723
34724         Nothing uses Node::isBlockFlowOrBlockTable anymore so remove it.
34725
34726         No new tests needed, just removing dead code.
34727
34728         * dom/Node.cpp:
34729         * dom/Node.h:
34730         (Node):
34731
34732 2012-10-25  Eugene Klyuchnikov  <eustas.bug@gmail.com>
34733
34734         Web Inspector: Fix "check-inspector-strings" script and fix localized strings.
34735         https://bugs.webkit.org/show_bug.cgi?id=100090
34736
34737         Reviewed by Vsevolod Vlasov.
34738
34739         Fixed localized strings table.
34740
34741         * English.lproj/localizedStrings.js: Added missing, removed orhans.
34742         * inspector/front-end/CSSNamedFlowView.js: Removed tailing whitespaces.
34743         * inspector/front-end/NativeMemorySnapshotView.js:
34744         Removed double localization.
34745
34746 2012-10-25  Adam Barth  <abarth@webkit.org>
34747
34748         [V8] We can merge DOMDataStore, ScopedDOMDataStore, and StaticDOMDataStore into one class
34749         https://bugs.webkit.org/show_bug.cgi?id=100316
34750
34751         Reviewed by Eric Seidel.
34752
34753         Prior to this patch, DOMDataStore had two subclasses,
34754         ScopedDOMDataStore and StaticDOMDataStore, which used slighly different
34755         wrapper map base classes and had different lifetimes. This patch
34756         unifies all these classes into DOMDataStore itself. This makes this
34757         code much more straightforward.
34758
34759         * WebCore.gypi:
34760         * bindings/v8/DOMDataStore.cpp:
34761         (WebCore::DOMDataStore::DOMDataStore):
34762         (WebCore::DOMDataStore::~DOMDataStore):
34763         (WebCore::DOMDataStore::current):
34764         (WebCore::DOMDataStore::reportMemoryUsage):
34765         * bindings/v8/DOMDataStore.h:
34766         (DOMDataStore):
34767         (WebCore::DOMDataStore::domNodeMap):
34768         (WebCore::DOMDataStore::activeDomNodeMap):
34769         (WebCore::DOMDataStore::domObjectMap):
34770         (WebCore::DOMDataStore::activeDomObjectMap):
34771         * bindings/v8/ScopedDOMDataStore.cpp: Removed.
34772         * bindings/v8/ScopedDOMDataStore.h: Removed.
34773         * bindings/v8/SerializedScriptValue.cpp:
34774         (WebCore::neuterBinding):
34775         * bindings/v8/StaticDOMDataStore.cpp: Removed.
34776         * bindings/v8/StaticDOMDataStore.h: Removed.
34777         * bindings/v8/V8DOMMap.cpp:
34778         (WebCore::DOMDataStoreHandle::DOMDataStoreHandle):
34779         (WebCore::DOMDataStoreHandle::~DOMDataStoreHandle):
34780         (WebCore::visitActiveDOMNodes):
34781         (WebCore::visitDOMObjects):
34782         (WebCore::visitActiveDOMObjects):
34783         * bindings/v8/V8DOMMap.h:
34784         (WebCore):
34785         * bindings/v8/V8PerIsolateData.h:
34786         (V8PerIsolateData):
34787         * bindings/v8/WorkerScriptController.cpp:
34788         (WebCore::WorkerScriptController::WorkerScriptController):
34789         (WebCore::WorkerScriptController::~WorkerScriptController):
34790         * bindings/v8/WorkerScriptController.h:
34791         (WorkerScriptController):
34792
34793 2012-10-24  Kent Tamura  <tkent@chromium.org>
34794
34795         Minimize CSS rulesets for multiple-fields input
34796         https://bugs.webkit.org/show_bug.cgi?id=100198
34797
34798         Reviewed by Kentaro Hara.
34799
34800         - Unify rulesets for input::-webkit-datetime-edit-*-field.
34801          input::-webkit-datetime-edit-*-field had identical ruleset.
34802
34803         - Move some rulesets near to related rulesets.
34804          Move -webkit-datetime-edit-*-field:focus nearby the new unified ruleset.
34805          Move input::-webkit-datetime-edit-second-field[readonly] nearby
34806         input::-webkit-datetime-edit-minute-field[readonly].
34807
34808         No new tests. This shouldn't make any behavior change.
34809
34810         * css/html.css:
34811         (input::-webkit-datetime-edit-year-field):
34812         (input::-webkit-datetime-edit-year-field:focus):
34813         (input::-webkit-datetime-edit-second-field[readonly]):
34814
34815 2012-10-24  Kent Tamura  <tkent@chromium.org>
34816
34817         REGRESSION(r132291): Crash in BaseMultipleFieldsDateAndTimeInputType
34818         https://bugs.webkit.org/show_bug.cgi?id=100326
34819
34820         Reviewed by Eric Seidel.
34821
34822         Test: fast/forms/time-multiple-fields/time-multiple-fields-change-type.html
34823
34824         * html/BaseMultipleFieldsDateAndTimeInputType.cpp:
34825         (WebCore::BaseMultipleFieldsDateAndTimeInputType::destroyShadowSubtree):
34826         We need to disconnect m_spinButtonElement before destructing the UA shadow tree.
34827
34828 2012-10-24  Adam Barth  <abarth@webkit.org>
34829
34830         [V8] DOMData is no longer needed
34831         https://bugs.webkit.org/show_bug.cgi?id=100313
34832
34833         Reviewed by Eric Seidel.
34834
34835         This class serves no purpose anymore and can be deleted.
34836
34837         * WebCore.gypi:
34838         * bindings/v8/DOMData.cpp: Removed.
34839         * bindings/v8/DOMData.h: Removed.
34840         * bindings/v8/DOMDataStore.cpp:
34841         (WebCore::DOMDataStore::current):
34842         * bindings/v8/DOMDataStore.h:
34843         (WebCore):
34844         (DOMDataStore):
34845         * bindings/v8/SerializedScriptValue.cpp:
34846         (WebCore::neuterBinding):
34847         * bindings/v8/V8DOMMap.cpp:
34848         (WebCore::getDOMNodeMap):
34849         (WebCore::getActiveDOMNodeMap):
34850         (WebCore::getDOMObjectMap):
34851         (WebCore::getActiveDOMObjectMap):
34852         (WebCore::removeAllDOMObjects):
34853         (WebCore::visitActiveDOMNodes):
34854         (WebCore::visitDOMObjects):
34855         (WebCore::visitActiveDOMObjects):
34856
34857 2012-10-24  Kent Tamura  <tkent@chromium.org>
34858
34859         Sort an Xcode project file.
34860
34861         * WebCore.xcodeproj/project.pbxproj: Sorted.
34862
34863 2012-10-24  Adam Barth  <abarth@webkit.org>
34864
34865         [V8] AbstractWeakReferenceMap is unnecessarily general and complex
34866         https://bugs.webkit.org/show_bug.cgi?id=100175
34867
34868         Reviewed by Eric Seidel.
34869
34870         Before this patch, AbstractWeakReferenceMap served two masters:
34871
34872         1) DOM wrappers
34873         2) NPV8 function templates
34874
34875         These two uses cases pushed AbstractWeakReferenceMap to be more general
34876         and complex that needed. This patch separates these two uses cases into
34877         two separate classes. V8NPTemplateMap is all of 40 lines of code. It's
34878         not worth complicating the DOM wrapper code path to share that tiny
34879         amount of code.
34880
34881         The other thing this patch does is store a pointer to the DOM wrapper
34882         map as the weak callback context object. That means we no longer need
34883         to search through all the wrapper maps in order to find the map that
34884         contains this particular DOM wrapper.
34885
34886         * WebCore.gypi:
34887         * bindings/v8/DOMData.cpp:
34888         * bindings/v8/DOMData.h:
34889         (DOMData):
34890         * bindings/v8/DOMDataStore.cpp:
34891             - Delete all these complicated weak callback functions. The weak
34892               callback functions are now an order of magnitude simpler and
34893               declared as private member functions on the wrapper map.
34894         * bindings/v8/DOMDataStore.h:
34895         (WebCore::DOMDataStore::domNodeMap):
34896         (WebCore::DOMDataStore::activeDomNodeMap):
34897         (DOMDataStore):
34898             - We now have a consistent type to use for all these wrapper maps.
34899               Both the hash map and the intrusive map derive from
34900               DOMWrapperMap (with a single template parameter).
34901         * bindings/v8/DOMWrapperMap.h: Added.
34902         (WebCore):
34903         (DOMWrapperVisitor):
34904             - The visitor is no longer an inner class. It's just a top-level
34905               class that does the same thing.
34906         (DOMWrapperMap):
34907             - The abstract interface for DOMWrapperMap has about half as many
34908               functions as the old AbstractWeakReferenceMap because the two use
34909               cases are disentangled.
34910         (WebCore::DOMWrapperMap::~DOMWrapperMap):
34911         (DOMWrapperHashMap):
34912             - This is a concrete instance of DOMWrapperMap that uses a hash map.
34913         (WebCore::DOMWrapperHashMap::DOMWrapperHashMap):
34914         (WebCore::DOMWrapperHashMap::remove):
34915         (WebCore::DOMWrapperHashMap::defaultWeakCallback):
34916             - Notice that the context parameter now points to the hashmap
34917               itself rather than to the native object. Now that we don't need
34918               to handle the NPAPI case, we can recover the native object from
34919               the wrapper using toNative. The assert in set() ensures that this
34920               always works.
34921         * bindings/v8/DOMWrapperWorld.h:
34922         * bindings/v8/IntrusiveDOMWrapperMap.h:
34923             - These classes are now simplified because they need to implement
34924               fewer functions.
34925         (WebCore::DOMNodeWrapperMap::weakCallback):
34926             - For this weak callback, we still use the native object as the
34927               context parameter. We could also recover the native object from
34928               the wrapper, which means this context parameter is available to
34929               do other work.
34930         * bindings/v8/ScopedDOMDataStore.cpp:
34931         (WebCore::ScopedDOMDataStore::ScopedDOMDataStore):
34932             - This code no longer needs to have knowledge of which weak
34933               callbacks these objects use.
34934         (WebCore::ScopedDOMDataStore::~ScopedDOMDataStore):
34935             - We need to clear the maps before deleting them because there are
34936               still JavaScript objects that have references to the map in their
34937               weak callback parameter. Previously, we handled this case because
34938               we would search all the wrapper maps and fail to find the wrapper.
34939         * bindings/v8/ScriptProfiler.cpp:
34940         (WebCore::ScriptProfiler::visitExternalArrays):
34941         * bindings/v8/StaticDOMDataStore.cpp:
34942             - This code no longer needs to have knowledge of which weak
34943               callback these maps use.
34944         * bindings/v8/StaticDOMDataStore.h:
34945         (StaticDOMDataStore):
34946         * bindings/v8/V8DOMMap.cpp:
34947         (WebCore::getDOMNodeMap):
34948         (WebCore::getActiveDOMNodeMap):
34949         (WebCore::removeAllDOMObjects):
34950             - Rather than using some complicated visitor pattern, we can now
34951               just call clear() directly on the maps to remove all the objects.
34952         (WebCore::visitActiveDOMNodes):
34953         (WebCore::visitDOMObjects):
34954         (WebCore::visitActiveDOMObjects):
34955         * bindings/v8/V8DOMMap.h:
34956         (WebCore):
34957             - Delete the old versions of these classes.
34958         (DOMDataStoreHandle):
34959             - Style nit: one-argument constructors should be marked explicit.
34960         * bindings/v8/V8DOMWrapper.cpp:
34961         (WebCore::V8DOMWrapper::domWrapperType):
34962             - I moved this logic into WrapperTypeInfo.h to avoid a circular
34963               header dependency.
34964         * bindings/v8/V8DOMWrapper.h:
34965         (WebCore::V8DOMWrapper::getCachedWrapper):
34966         * bindings/v8/V8GCController.cpp:
34967             - EnsureWeakDOMNodeVisitor is no longer used (or needed since we no
34968               longer clear the weak callbacks in V8GCController).
34969         * bindings/v8/V8NPObject.cpp:
34970         (V8NPTemplateMap):
34971             - staticTemplateMap is no longer an instance of WeakReferenceMap.
34972               Instead, this patch just implements the functionality we need
34973               here directly.
34974         (WebCore::V8NPTemplateMap::get):
34975         (WebCore::V8NPTemplateMap::set):
34976         (WebCore::V8NPTemplateMap::sharedInstance):
34977         (WebCore::V8NPTemplateMap::weakCallback):
34978         (WebCore::V8NPTemplateMap::dispose):
34979         (WebCore::npObjectGetProperty):
34980         (WebCore):
34981         (WebCore::staticNPObjectMap):
34982         (WebCore::weakNPObjectCallback):
34983             - DOMWrapperMap no longer exposes a "forget" function. Instead, we
34984               just use the more basic "remove" and "Dispose" operations to do
34985               the same thing. This is possible now because we no longer have
34986               "removeIfPossible" to support searching all the wrapper maps for
34987               the one that has the right wrapper.
34988         (WebCore::createV8ObjectForNPObject):
34989             - DOMWrapperMap No longer has a "contains" function. Instead, we
34990               use get, which actually makes this code more efficient because we
34991               only do one hash map lookup.
34992         (WebCore::forgetV8ObjectForNPObject):
34993             - The changes here are a combination of the two sorts of changes
34994               above.
34995         * bindings/v8/WrapperTypeInfo.h:
34996         (WebCore::toNative):
34997         (WebCore::toWrapperTypeInfo):
34998             - The patch moves these functions into this header to avoid a
34999               circular header dependency.
35000
35001 2012-10-24  Arnaud Renevier  <a.renevier@sisa.samsung.com>
35002
35003         [cairo] unneeded FloatRect object creation in BitmapImage::draw
35004         https://bugs.webkit.org/show_bug.cgi?id=100298
35005
35006         Reviewed by Martin Robinson.
35007
35008         Do not copy FloatRect arguments src and dst to local variables.
35009         Instead, use src and dst directly.
35010
35011         No new tests. No change in behavior.
35012
35013         * platform/graphics/cairo/BitmapImageCairo.cpp:
35014         (WebCore::BitmapImage::draw):
35015
35016 2012-10-24  Seokju Kwon  <seokju.kwon@samsung.com>
35017
35018         [SOUP] Provide logging for SocketStreamHandleSoup
35019         https://bugs.webkit.org/show_bug.cgi?id=100215
35020
35021         Reviewed by Alexey Proskuryakov.
35022
35023         Add logging to SocketStreamHandleSoup to facilitate debugging.
35024
35025         * platform/network/soup/SocketStreamHandleSoup.cpp:
35026         (WebCore::SocketStreamHandle::SocketStreamHandle):
35027         (WebCore::SocketStreamHandle::~SocketStreamHandle):
35028         (WebCore::SocketStreamHandle::platformSend):
35029         (WebCore::SocketStreamHandle::platformClose):
35030
35031 2012-10-24  Nico Weber  <thakis@chromium.org>
35032
35033         Pass on exif orientation from ImageSource when using the open-source image decoders
35034         https://bugs.webkit.org/show_bug.cgi?id=100164
35035
35036         Reviewed by Eric Seidel.
35037
35038         The orientation is honored always for image documents, and optionally
35039         for <img> elements if shouldRespectImageOrientation is set (off by
35040         default). However, the feature needs port-specific modifications to
35041         GraphicsContext (without this, webcore will use the rotated bounds but
35042         draw the image as if it hadn't be rotated, resulting in squished
35043         pixels), and most ports don't implement these yet -- so put
35044         turning this on for image documents behind a port-specific #ifdef.
35045
35046         No observable behavior change. Once it's hooked up, it will be tested
35047         by fast/images/exif-orientation.html.
35048
35049         * platform/graphics/ImageSource.cpp:
35050         (WebCore::ImageSource::size):
35051         (WebCore::ImageSource::frameSizeAtIndex):
35052         (WebCore::ImageSource::orientationAtIndex):
35053         * platform/graphics/chromium/DeferredImageDecoder.cpp:
35054         (WebCore::DeferredImageDecoder::orientation):
35055         (WebCore):
35056         * platform/graphics/chromium/DeferredImageDecoder.h:
35057         (DeferredImageDecoder):
35058         * platform/image-decoders/jpeg/JPEGImageDecoder.cpp:
35059         (WebCore::readImageOrientation):
35060         * rendering/RenderObject.cpp:
35061         (WebCore::RenderObject::shouldRespectImageOrientation):
35062
35063 2012-10-24  Beth Dakin  <bdakin@apple.com>
35064
35065         https://bugs.webkit.org/show_bug.cgi?id=100169
35066         We should make TileCache tiles the size of the tile coverage rect 
35067         when we can't do fast scrolling
35068         -and-
35069         <rdar://problem/12505021>
35070
35071         Reviewed by Simon Fraser.
35072
35073         Some websites that don't do fast scrolling still scroll slower than 
35074         they do with tiled drawing disabled. 
35075         https://bugs.webkit.org/show_bug.cgi?id=99768 addressed some of this 
35076         performance problem, but there is still more ground to make up. This 
35077         patch addresses the remaining issue by making tiles the size of the 
35078         window when we can't do fast scrolling. 
35079
35080         The constructor and create function no longer take a size parameter. 
35081         That's all fully controlled within TileCache now. m_tileSize is no 
35082         longer const.
35083         * platform/graphics/ca/mac/TileCache.h:
35084
35085         Store the current default size as constants so that we can access it 
35086         in both the constructor and adjustTileSizeForCoverageRect().
35087         * platform/graphics/ca/mac/TileCache.mm:
35088         (WebCore::TileCache::TileCache):
35089
35090         This new function will set m_tileSize to the size of the tile 
35091         coverage rect if the tile coverage is limited to the visible area. 
35092         Otherwise, the tiles are set to be the default size.
35093         (WebCore::TileCache::adjustTileSizeForCoverageRect):
35094         
35095         Call adjustTileSizeForCoverageRect().
35096         (WebCore::TileCache::revalidateTiles):
35097
35098         No need to send in a size anymore.
35099         * platform/graphics/ca/mac/WebTileCacheLayer.h:
35100         (WebCore):
35101
35102 2012-10-24  David Barton  <dbarton@mathscribe.com>
35103
35104         MathML tests trigger font cache assertions in debug bots
35105         https://bugs.webkit.org/show_bug.cgi?id=100268
35106
35107         Reviewed by Eric Seidel.
35108
35109         Add a FontCachePurgePreventer to fix this.
35110
35111         Tested by existing tests.
35112
35113         * rendering/mathml/RenderMathMLOperator.cpp:
35114         (WebCore::RenderMathMLOperator::updateFromElement):
35115
35116 2012-10-24  Tim Horton  <timothy_horton@apple.com>
35117
35118         Update main frame scroll position immediately for programmatic scrolls
35119         https://bugs.webkit.org/show_bug.cgi?id=98074
35120
35121         Reviewed by Simon Fraser.
35122
35123         Immediately update the main frame scroll position after a programmatic scroll,
35124         so that performing a scrollBy or scrollTo will be instantly reflected in
35125         all of the scroll offset accessors.
35126
35127         No new tests; this will be tested by many scrolling tests once WebKitTestRunner
35128         can use threaded scrolling.
35129
35130         * page/scrolling/ScrollingCoordinator.cpp:
35131         (WebCore::ScrollingCoordinator::requestScrollPositionUpdate):
35132
35133 2012-10-24  Mihai Parparita  <mihaip@chromium.org>
35134
35135         [Chromium] Allow pushState and related history APIs to be disabled per context
35136         https://bugs.webkit.org/show_bug.cgi?id=99780
35137
35138         Reviewed by Adam Barth.
35139
35140         Chrome Apps do not support the history API (or navigation in general).
35141         Since pushState is generally feature detected, it's cleanest to disable
35142         it via a V8 per-context feature, so that applications can have the
35143         appropriate fallback behavior (other history APIs are re-mapped to throw
35144         exceptions, since history.back() and the link are not feature detected).
35145
35146         * dom/ContextFeatures.cpp:
35147         (WebCore::ContextFeatures::pushStateEnabled):
35148         (WebCore):
35149         * dom/ContextFeatures.h:
35150         * dom/Document.cpp:
35151         (WebCore::Document::enqueuePopstateEvent):
35152         * page/History.idl:
35153
35154 2012-10-24  Tommy Widenflycht  <tommyw@google.com>
35155
35156         MediaStream API: Make sure all events are dispatched asynchronously
35157         https://bugs.webkit.org/show_bug.cgi?id=100286
35158
35159         Reviewed by Adam Barth.
35160
35161         This is necessary to safeguard against if the UA uses synchronous UA->WebKit calls,
35162         and the web application calls methods on the RTCPeerConnection in the event callbacks.
35163
35164         Test: fast/mediastream/RTCPeerConnection-events.html
35165         Also tested by the chromium webrtc fuzz tests.
35166
35167         * Modules/mediastream/RTCPeerConnection.cpp:
35168         (WebCore::RTCPeerConnection::RTCPeerConnection):
35169         (WebCore::RTCPeerConnection::negotiationNeeded):
35170         (WebCore::RTCPeerConnection::didGenerateIceCandidate):
35171         (WebCore::RTCPeerConnection::didAddRemoteStream):
35172         (WebCore::RTCPeerConnection::didRemoveRemoteStream):
35173         (WebCore::RTCPeerConnection::didAddRemoteDataChannel):
35174         (WebCore::RTCPeerConnection::changeReadyState):
35175         (WebCore::RTCPeerConnection::changeIceState):
35176         (WebCore):
35177         (WebCore::RTCPeerConnection::scheduleDispatchEvent):
35178         (WebCore::RTCPeerConnection::scheduledEventTimerFired):
35179         * Modules/mediastream/RTCPeerConnection.h:
35180         (RTCPeerConnection):
35181
35182 2012-10-24  Mark Pilgrim  <pilgrim@chromium.org>
35183
35184         [Chromium] Remove screen-related functions from PlatformSupport
35185         https://bugs.webkit.org/show_bug.cgi?id=97474
35186
35187         Reviewed by Adam Barth.
35188
35189         Screen-related functions like screenHorizontalDPI that
35190         used to be on PlatformSupport are now accessed through a new
35191         PlatformPageClient attached to Widget in WebCore-land, which is
35192         implemented by ChromeClientImpl in WebKit-land, which proxies
35193         calls to WebWidgetClient, which is actually implemented in
35194         Chromium-land.
35195
35196         * WebCore.gypi:
35197         * platform/Widget.h:
35198         * platform/chromium/PageClientChromium.h: Copied from Source/WebCore/platform/chromium/PlatformWidget.h.
35199         (PageClientChromium):
35200         * platform/chromium/PlatformScreenChromium.cpp:
35201         (WebCore::toPlatformPageClient):
35202         (WebCore):
35203         (WebCore::screenHorizontalDPI):
35204         (WebCore::screenVerticalDPI):
35205         (WebCore::screenDepth):
35206         (WebCore::screenDepthPerComponent):
35207         (WebCore::screenIsMonochrome):
35208         (WebCore::screenRect):
35209         (WebCore::screenAvailableRect):
35210         * platform/chromium/PlatformSupport.h:
35211         (PlatformSupport):
35212
35213 2012-10-24  Adam Barth  <abarth@webkit.org>
35214
35215         [V8] WorkerContextExecutionProxy doesn't need to track events
35216         https://bugs.webkit.org/show_bug.cgi?id=100295
35217
35218         Reviewed by Eric Seidel.
35219
35220         This code was added when this code was originally upstreamed as part of
35221         the Chromium port. There doesn't appear to be any reason why
35222         WorkerContextExecutionProxy needs to keep a Vector of raw event
35223         pointers. Those points are likely to become dangling, making the rest
35224         of what this code does very sketchy.
35225
35226         * bindings/v8/V8WorkerContextEventListener.cpp:
35227         (WebCore::V8WorkerContextEventListener::callListenerFunction):
35228         * bindings/v8/WorkerContextExecutionProxy.cpp:
35229         (WebCore::WorkerContextExecutionProxy::dispose):
35230         * bindings/v8/WorkerContextExecutionProxy.h:
35231         (WebCore::WorkerContextExecutionState::WorkerContextExecutionState):
35232         (WorkerContextExecutionProxy):
35233
35234 2012-10-24  Max Vujovic  <mvujovic@adobe.com>
35235
35236         [CSS Shaders] The mesh should be specified using <column, row> order
35237         https://bugs.webkit.org/show_bug.cgi?id=96285
35238
35239         Reviewed by Dean Jackson.
35240
35241         Change StyleResolver and CSSComputedStyleDeclaration to handle the mesh parameters in
35242         column, row order.
35243
35244         Test: css3/filters/custom/custom-filter-mesh-column-row-order.html
35245
35246         * css/CSSComputedStyleDeclaration.cpp:
35247         (WebCore::CSSComputedStyleDeclaration::valueForFilter):
35248             Append the number of columns before the number of rows in the meshParameters
35249             CSSValueList.
35250         * css/StyleResolver.cpp:
35251         (WebCore::StyleResolver::createCustomFilterOperation):
35252             Store the second mesh parameter in meshRows instead of meshColumns.
35253
35254 2012-10-24  Jae Hyun Park  <jae.park@company100.net>
35255
35256         loaderRunLoop() should use synchronization instead of while loop
35257         https://bugs.webkit.org/show_bug.cgi?id=55402
35258
35259         Reviewed by Alexey Proskuryakov.
35260
35261         Originally, loaderRunLoop() sleeps until a thread has started and set
35262         the loaderRunLoopObject static variable. This patch uses
35263         ThreadCondition to synchronize instead of a while loop.
35264
35265         No new tests (No behavior change).
35266
35267         * platform/network/cf/LoaderRunLoopCF.cpp:
35268         (WebCore::runLoaderThread):
35269         (WebCore::loaderRunLoop):
35270         * platform/network/cf/LoaderRunLoopCF.h:
35271         (WebCore):
35272
35273 2012-10-24  Sailesh Agrawal  <sail@chromium.org>
35274
35275         Incorrect keycodes for numpad /, -, +, .
35276         https://bugs.webkit.org/show_bug.cgi?id=99188
35277
35278         Reviewed by Tony Chang.
35279
35280         In r57951 we switched to mapping keys by character code.
35281         This regressed the numpad keys which no longer match the Windows virtual key codes.
35282         This CL fixes this by never mapping numpad keys by character code.
35283
35284         Test: platform/mac/fast/events/numpad-keycode-mapping.html
35285
35286         * platform/mac/PlatformEventFactoryMac.mm:
35287         (WebCore::windowsKeyCodeForKeyEvent):
35288
35289 2012-10-24  Simon Fraser  <simon.fraser@apple.com>
35290
35291         Null-check the RenderView in ocument::windowScreenDidChange to fix a crash when saving PDFs
35292         https://bugs.webkit.org/show_bug.cgi?id=100141
35293         <rdar://problem/12559147>
35294
35295         Reviewed by Tim Horton.
35296
35297         For PDF documents the RenderView is null, so null-check it to avoid a crash
35298         when saving PDFs.
35299
35300         * dom/Document.cpp:
35301         (WebCore::Document::windowScreenDidChange):
35302
35303 2012-10-24  Terry Anderson  <tdanderson@chromium.org>
35304
35305         Handle two-finger tap gestures in the same way as long-press gestures
35306         https://bugs.webkit.org/show_bug.cgi?id=99947
35307
35308         Reviewed by Adam Barth.
35309
35310         Currently a long-press gesture is used to dispatch a context menu (for platforms 
35311         defining CONTEXT_MENUS) or to select text (for Android). Additionally, for platforms 
35312         defining TOUCH_ADJUSTMENT, gesture target fuzzing is performed on the location and 
35313         touch area of the long-press gesture.
35314
35315         This CL will cause two-finger tap gestures to be handled in the same way as long-press 
35316         gestures. The location and touch area of a two-finger tap gesture will correspond to 
35317         the location and touch area of the first finger down; the location/area of the second 
35318         finger will be ignored.
35319
35320         Test: touchadjustment/touch-links-two-finger-tap.html
35321
35322         * page/EventHandler.cpp:
35323         (WebCore::EventHandler::handleGestureLongPress):
35324         (WebCore):
35325         (WebCore::EventHandler::handleGestureForTextSelectionOrContextMenu):
35326         (WebCore::EventHandler::handleGestureTwoFingerTap):
35327         (WebCore::EventHandler::adjustGesturePosition):
35328         * page/EventHandler.h:
35329         (EventHandler):
35330
35331 2012-10-24  Chris Fleizach  <cfleizach@apple.com>
35332
35333         AX:When aria-label is used, the text under an element is still appearing as the AXTitle
35334         https://bugs.webkit.org/show_bug.cgi?id=98167
35335
35336         Reviewed by Beth Dakin.
35337
35338         According to WAI-ARIA text computation, the presence of aria-label and alternative text
35339         should override the visible text within an element.
35340
35341         Test: platform/mac/accessibility/aria-label-overrides-visible-text.html
35342
35343         * accessibility/mac/WebAccessibilityObjectWrapper.mm:
35344         (-[WebAccessibilityObjectWrapper accessibilityTitle]):
35345
35346 2012-10-24  Sheriff Bot  <webkit.review.bot@gmail.com>
35347
35348         Unreviewed, rolling out r132303 and r132312.
35349         http://trac.webkit.org/changeset/132303
35350         http://trac.webkit.org/changeset/132312
35351         https://bugs.webkit.org/show_bug.cgi?id=100287
35352
35353         Triggering crashes on many popular websites (Requested by
35354         leviw|gardening on #webkit).
35355
35356         * css/CSSGrammar.y.in:
35357         * css/CSSParser.cpp:
35358         (WebCore::CSSParser::detectAtToken):
35359         * css/CSSParser.h:
35360         * css/CSSPropertySourceData.h:
35361         * css/RuleSet.cpp:
35362         (WebCore::RuleData::RuleData):
35363         (WebCore::RuleSet::addRule):
35364         (WebCore::RuleSet::addRegionRule):
35365         (WebCore::RuleSet::addRulesFromSheet):
35366         (WebCore::RuleSet::addStyleRule):
35367         * css/RuleSet.h:
35368         (RuleData):
35369         (RuleSet):
35370         * css/StyleResolver.cpp:
35371         (WebCore::makeRuleSet):
35372         (WebCore::StyleResolver::appendAuthorStyleSheets):
35373         (WebCore::StyleResolver::matchScopedAuthorRules):
35374         (WebCore::StyleResolver::locateSharedStyle):
35375         * css/StyleResolver.h:
35376         (StyleResolver):
35377         * css/StyleRule.cpp:
35378         (WebCore::StyleRuleBase::reportMemoryUsage):
35379         (WebCore::StyleRuleBase::destroy):
35380         (WebCore::StyleRuleBase::copy):
35381         (WebCore::StyleRuleBase::createCSSOMWrapper):
35382         * css/StyleRule.h:
35383         * css/StyleScopeResolver.cpp:
35384         (WebCore::StyleScopeResolver::reportMemoryUsage):
35385         * css/StyleScopeResolver.h:
35386         (WebCore):
35387         (StyleScopeResolver):
35388         * css/StyleSheetContents.cpp:
35389         (WebCore::childRulesHaveFailedOrCanceledSubresources):
35390
35391 2012-10-24  Joshua Bell  <jsbell@chromium.org>
35392
35393         IndexedDB: Cursor property value identities should be preserved
35394         https://bugs.webkit.org/show_bug.cgi?id=100051
35395
35396         Reviewed by Tony Chang.
35397
35398         Some W3C test submissions point out that subsequent accesses to cursor properties should
35399         yield the same value until the cursor advances. We handled this with custom binding code for
35400         IDBCursor.value but not IDBCursor.key or IDBCursor.primaryKey. The custom value code is
35401         being removed in webkit.org/b/100034 in favor of returning ScriptValue and the same fix can
35402         be applied to key/primaryKey.
35403
35404         Test: storage/indexeddb/cursor-properties.html
35405
35406         * Modules/indexeddb/IDBCursor.cpp: Compute/store/serve up ScriptValues instead of IDBKeys
35407         (WebCore::IDBCursor::key):
35408         (WebCore::IDBCursor::primaryKey):
35409         (WebCore::IDBCursor::setValueReady):
35410         * Modules/indexeddb/IDBCursor.h:
35411         (IDBCursor):
35412         (WebCore::IDBCursor::idbPrimaryKey): Expose this for callers that need access to the IDBKey
35413         * Modules/indexeddb/IDBCursor.idl:
35414         * Modules/indexeddb/IDBObjectStore.cpp: ... like this one.
35415         (WebCore):
35416         * Modules/indexeddb/IDBRequest.cpp:
35417         (WebCore::IDBRequest::dispatchEvent): Pass along script context, for the conversion.
35418         * bindings/v8/IDBBindingUtilities.cpp:
35419         (WebCore::idbKeyToScriptValue): New method for explicit conversion.
35420         (WebCore):
35421         * bindings/v8/IDBBindingUtilities.h:
35422         (WebCore):
35423
35424 2012-10-24  Ami Fischman  <fischman@chromium.org>
35425
35426         call to setNeedsLayout during RenderVideo::paintReplaced
35427         https://bugs.webkit.org/show_bug.cgi?id=100265
35428
35429         Reviewed by Eric Carlson.
35430
35431         Removed unnecessary call and added new defensive guards to catch erroneous setNeedsLayout() calls
35432         during paints earlier (so the offending calls are in the emitted stacktrace).
35433
35434         No new tests - new defensive checks are triggered by existing tests.
35435
35436         * page/FrameView.cpp:
35437         (WebCore::FrameView::paintContents): forbid setNeedsLayout() during painting
35438         * rendering/RenderObject.cpp:
35439         (WebCore):
35440         (WebCore::RenderObject::SetLayoutNeededForbiddenScope::SetLayoutNeededForbiddenScope):
35441         (WebCore::RenderObject::SetLayoutNeededForbiddenScope::~SetLayoutNeededForbiddenScope):
35442         * rendering/RenderObject.h:
35443         (RenderObject):
35444         (SetLayoutNeededForbiddenScope): added helper class for forbidding setNeedsLayout() in a scope.
35445         * rendering/RenderVideo.cpp:
35446         (WebCore::RenderVideo::paintReplaced): drop the offending & unnecessary call to updatePlayer().
35447
35448 2012-10-24  Adam Barth  <abarth@webkit.org>
35449
35450         [V8] ActiveDOMObjectEpilogueVisitor is unnecessary and can be deleted
35451         https://bugs.webkit.org/show_bug.cgi?id=100208
35452
35453         Reviewed by Eric Seidel.
35454
35455         Rather than clearing and re-establishing the weak callback for
35456         ActiveDOMObjects during every GC, this patch puts all the
35457         ActiveDOMObjects with pending activity into an object group with a live
35458         object, causing them not to be garbage collected.
35459
35460         In addition to simplifying this code, this patch makes the patch in
35461         https://bugs.webkit.org/show_bug.cgi?id=100175 much easier because
35462         V8GCController no longer needs to know how to configure the weak
35463         callbacks for these objects.
35464
35465         * bindings/v8/V8GCController.cpp:
35466         (WebCore::ActiveDOMObjectPrologueVisitor::ActiveDOMObjectPrologueVisitor):
35467         (ActiveDOMObjectPrologueVisitor):
35468         (WebCore::ActiveDOMObjectPrologueVisitor::visitDOMWrapper):
35469         (WebCore::V8GCController::majorGCPrologue):
35470         (WebCore::V8GCController::majorGCEpilogue):
35471         * bindings/v8/V8PerIsolateData.cpp:
35472         (WebCore::V8PerIsolateData::V8PerIsolateData):
35473         * bindings/v8/V8PerIsolateData.h:
35474         (WebCore::V8PerIsolateData::liveRoot):
35475         (V8PerIsolateData):
35476
35477 2012-10-24  Brady Eidson  <beidson@apple.com>
35478
35479         Add a strategy for loader customization.
35480         https://bugs.webkit.org/show_bug.cgi?id=100278
35481
35482         Reviewed by Alexey Proskuryakov.
35483
35484         It's empty for now and does nothing, just like the goggles.
35485
35486         * WebCore.gypi:
35487         * WebCore.vcproj/WebCore.vcproj:
35488         * WebCore.xcodeproj/project.pbxproj:
35489         * platform/PlatformStrategies.h:
35490         (WebCore::PlatformStrategies::loaderStrategy):
35491         (PlatformStrategies):
35492         (WebCore::PlatformStrategies::PlatformStrategies):
35493
35494 2012-10-24  Tony Chang  <tony@chromium.org>
35495
35496         Setting width of a flexitem causes the adjacent flex item to be displayed poorly.
35497         https://bugs.webkit.org/show_bug.cgi?id=99925
35498
35499         Reviewed by Ojan Vafai.
35500
35501         Make sure that we always repaint when moving a child. This is similar to what RenderDeprecatedFlexibleBox does.
35502
35503         Test: css3/flexbox/repaint-during-resize-no-flex.html
35504
35505         * rendering/RenderFlexibleBox.cpp:
35506         (WebCore::RenderFlexibleBox::setFlowAwareLocationForChild): Move logic for repaining into the helper method
35507         for setting the location of a child.
35508         (WebCore::RenderFlexibleBox::layoutColumnReverse): Remove code for repaint since it's now in setFlowAwareLocationForChild.
35509         (WebCore::RenderFlexibleBox::adjustAlignmentForChild): Remove code for repaint since it's now in setFlowAwareLocationForChild.
35510
35511 2012-10-24  Simon Fraser  <simon.fraser@apple.com>
35512
35513         Fix CALayer hiearchy when combining tiling with preserve-3d
35514         https://bugs.webkit.org/show_bug.cgi?id=100205
35515
35516         Reviewed by Dean Jackson.
35517
35518         When an element has "transform-style: preserve-3d", its GraphicsLayerCA has a
35519         m_structuralLayer which is a CATransformLayer. The primary CALayer which contains rendered
35520         content becomes a sublayer of the CATransformLayer. If the element has backface-visibility:hidden,
35521         it is the primary layer that is set to be single-sided.
35522         
35523         In r131940 we started to use TileCaches in place of CATiledLayer. TileCaches work via
35524         "customSublayers" returned from the PlatformCALayer, where the custom sublayer is 
35525         the tile cache container layer. However, the custom sublayers were being added as
35526         children of the structural (CATransformLayer) layer, not of the primary (CALayer) layer,
35527         thus they were not affected by the doubleSided property.
35528         
35529         This change cleans up the confusing code in GraphicsLayerCA::updateSublayerList()
35530         by maintaining two vectors of PlatformCALayers, one for sublayers of the structural
35531         layer, and one for sublayers of the primary layer. It adds custom sublayers to
35532         the latter list, so now the tile cache container layer becomes a sublayer of
35533         the primary layer, so is affected by that layer's doubleSided property.
35534
35535         Test: compositing/tiling/backface-preserve-3d-tiled.html
35536
35537         * platform/graphics/ca/GraphicsLayerCA.cpp:
35538         (WebCore::GraphicsLayerCA::updateSublayerList):
35539
35540 2012-10-23  Zhenyao Mo  <zmo@google.com>
35541
35542         Update mozilla's CheckedInt.h to the latest version
35543         https://bugs.webkit.org/show_bug.cgi?id=100177
35544
35545         Reviewed by Kenneth Russell.
35546
35547         * html/canvas/CheckedInt.h: Sync with mozilla's copy with minumum modifications.
35548         (detail):
35549         (IsSupportedPass2):
35550         (IsSupported):
35551         (UnsignedType):
35552         (IsSigned):
35553         (TwiceBiggerType):
35554         (PositionOfSignBit):
35555         (MinValue):
35556         (MaxValue):
35557         (WebCore::detail::HasSignBit):
35558         (WebCore::detail::BinaryComplement):
35559         (WebCore::detail::IsInRange):
35560         (WebCore::detail::IsAddValid):
35561         (WebCore::detail::IsSubValid):
35562         (WebCore::detail::IsMulValid):
35563         (WebCore::detail::IsDivValid):
35564         (WebCore::detail::OppositeIfSignedImpl::run):
35565         (WebCore::detail::OppositeIfSigned):
35566         (WebCore):
35567         (CheckedInt):
35568         (WebCore::CheckedInt::CheckedInt):
35569         (WebCore::CheckedInt::value):
35570         (WebCore::CheckedInt::isValid):
35571         (WebCore::CheckedInt::operator -):
35572         (WebCore::CheckedInt::operator ==):
35573         (WebCore::CheckedInt::operator++):
35574         (WebCore::CheckedInt::operator--):
35575         (CastToCheckedIntImpl):
35576         (WebCore::detail::CastToCheckedIntImpl::run):
35577         (WebCore::castToCheckedInt):
35578         (WebCore::operator ==):
35579         * html/canvas/DataView.cpp: change valid() to isValid().
35580         (WebCore::DataView::create):
35581         * html/canvas/WebGLBuffer.cpp: Ditto.
35582         (WebCore::WebGLBuffer::associateBufferDataImpl):
35583         (WebCore::WebGLBuffer::associateBufferSubDataImpl):
35584         * html/canvas/WebGLRenderingContext.cpp: Ditto.
35585         (WebCore):
35586         (WebCore::WebGLRenderingContext::drawArrays):
35587         * platform/graphics/GraphicsContext3D.cpp: Ditto.
35588         (WebCore::GraphicsContext3D::computeImageSizeInBytes):
35589
35590 2012-10-24  Noam Rosenthal  <noam.rosenthal@nokia.com>
35591
35592         [Qt-on-Mac] GraphicsSurfaces should not create a global IOSurface handle
35593         https://bugs.webkit.org/show_bug.cgi?id=89885
35594
35595         Reviewed by Kenneth Rohde Christiansen.
35596
35597         Use mach_port instead of global tokens for IOSurfaces.
35598         Global IOSurfaces are accessible from other processes using their handle, while mach_ports
35599         can only be shared directly via IPC.
35600
35601         Tested by existing WebGL tests.
35602
35603         * platform/graphics/surfaces/GraphicsSurfaceToken.h:
35604         (GraphicsSurfaceToken):
35605         * platform/graphics/surfaces/mac/GraphicsSurfaceMac.cpp:
35606         (WebCore::GraphicsSurfacePrivate::GraphicsSurfacePrivate):
35607         (WebCore::GraphicsSurfacePrivate::~GraphicsSurfacePrivate):
35608
35609 2012-10-24  Rick Byers  <rbyers@chromium.org>
35610
35611         image-set doesn't round-trip properly with cssText
35612         https://bugs.webkit.org/show_bug.cgi?id=99725
35613
35614         Reviewed by Beth Dakin.
35615
35616         Fix serialization of -webkit-image-set rules to use the same format as
35617         is used for parsing.
35618
35619         Test: fast/css/image-set-setting.html
35620
35621         * css/CSSImageSetValue.cpp:
35622         (WebCore::CSSImageSetValue::customCssText):
35623         * css/CSSValueList.h:
35624         (WebCore::CSSValueList::item): Add const overload
35625
35626 2012-10-24  Jonathan Feldstein  <jfeldstein@rim.com>
35627
35628         BlackBerry fix for webgl-depth-texture.html
35629         https://bugs.webkit.org/show_bug.cgi?id=100258
35630
35631         Reviewed by Yong Li.
35632
35633         Removed a platform specific define that is unnecessary.
35634
35635         * platform/graphics/GraphicsContext3D.cpp:
35636         (WebCore::GraphicsContext3D::computeFormatAndTypeParameters):
35637
35638 2012-10-24  Nico Weber  <thakis@chromium.org>
35639
35640         Honor image orientation in GraphicsContextSkia
35641         https://bugs.webkit.org/show_bug.cgi?id=100179
35642
35643         Reviewed by Stephen White.
35644
35645         Also fix a bug in ImageOrientation.h: Some of the values were
35646         switched. They now match the description in the exif spec at
35647         http://www.exif.org/Exif2-2.PDF page 18, and the notes at
35648         http://www.sno.phy.queensu.ca/~phil/exiftool/TagNames/EXIF.html and
35649         the picture at http://www.80sidea.com/archives/2316.
35650
35651         They showed up correctly in Safari because the orientation transform
35652         was done after flipping Y. Let the flipping happen later. I verified
35653         that flipping transformation order and fixing the exif enum cancelled
35654         each other out, so this has no effect on the apple port.
35655
35656         Not hooked up yet, so no observable difference.
35657
35658         * platform/graphics/BitmapImage.h:
35659         * platform/graphics/ImageOrientation.h:
35660         (WebCore::ImageOrientation::usesWidthAsHeight):
35661         (WebCore::ImageOrientation::fromEXIFValue):
35662         * platform/graphics/cg/GraphicsContextCG.cpp:
35663         (WebCore::GraphicsContext::drawNativeImage):
35664         * platform/graphics/skia/ImageSkia.cpp:
35665         (WebCore::paintSkBitmap):
35666         (WebCore::BitmapImage::draw):
35667         (WebCore):
35668
35669 2012-10-24  Alexey Proskuryakov  <ap@apple.com>
35670
35671         Fixed Windows path for SharedWorkerStrategy.h - it's in workers/, not platform/.
35672
35673         * WebCore.vcproj/WebCore.vcproj:
35674
35675 2012-10-24  Chris Fleizach  <cfleizach@apple.com>
35676
35677         AX: WebKit exposes abstract ARIA role range as AXSlider; should be generic AXGroup
35678         https://bugs.webkit.org/show_bug.cgi?id=100204
35679
35680         Reviewed by Beth Dakin.
35681
35682         Remove the "range" role as a valid ARIA role.
35683
35684         Test: platform/mac/accessibility/aria-slider-value.html
35685
35686         * accessibility/AccessibilityObject.cpp:
35687         (WebCore::createARIARoleMap):
35688
35689 2012-10-24  Florin Malita  <fmalita@chromium.org>
35690
35691         [Chromium] SVG repaint issues
35692         https://bugs.webkit.org/show_bug.cgi?id=99874
35693
35694         Reviewed by Levi Weintraub.
35695
35696         RenderSVGRoot::paintReplaced() converts the container offsets to a relative transform,
35697         but in doing so it ends up accumulating subpixel rounding deltas twice: first for 
35698         adjustedPaintOffset and second in localToParentTransform(). If coordinates are on
35699         half-pixel boundaries, the 2x rounding delta yields a full pixel drift and we end up
35700         painting at the wrong location.
35701
35702         This can be avoided by using localToBorderBoxTransform() directly, which (unlike
35703         localToParentTransform()) doesn't perform rounding.
35704
35705         No new tests: existing pixel results cover this change after rebaseline.
35706
35707         * rendering/svg/RenderSVGRoot.cpp:
35708         (WebCore::RenderSVGRoot::paintReplaced):
35709
35710 2012-10-24  Levi Weintraub  <leviw@chromium.org>
35711
35712         Fixing the Chromium build after typo in r132367.
35713
35714         * WebCore.gypi:
35715
35716 2012-10-24  Nico Weber  <thakis@chromium.org>
35717
35718         [chromium] Respect image orientation in image dragging code
35719         https://bugs.webkit.org/show_bug.cgi?id=100200
35720
35721         Reviewed by Tony Chang.
35722
35723         Based on the corresponding code in DragImageMac.mm.  The image
35724         rotation code isn't hooked up yet, so no observable effect for now.
35725
35726         * platform/chromium/DragImageChromiumSkia.cpp:
35727         (WebCore::createDragImageFromImage):
35728
35729 2012-10-24  Michael Saboff  <msaboff@apple.com>
35730
35731         Code cleanup after r132165
35732         https://bugs.webkit.org/show_bug.cgi?id=100135
35733
35734         Reviewed by Geoffrey Garen.
35735
35736         Fixed up some unneccesary and inefficient constructs in MarkupTokenBase.h.
35737
35738         Code clean up without functional changes, therefore no new tests.
35739
35740         * xml/parser/MarkupTokenBase.h:
35741         (WebCore::MarkupTokenBase::beginEndTag): Changed argument to be const Vector<LChar, 32>&.
35742         (WebCore::MarkupTokenBase::appendToCharacter): Changed argument to be const Vector<LChar, 32>&.
35743         (WebCore::MarkupTokenBase::appendToName): Elimintated inline.
35744         (WebCore::MarkupTokenBase::name): Elimintated inline.
35745         (WebCore::MarkupTokenBase::nameString): Elimintated inline.
35746
35747 2012-10-24  Toni Barzic  <tbarzic@chromium.org>
35748
35749         Crash when trying to write exception message to null console
35750         https://bugs.webkit.org/show_bug.cgi?id=99658
35751
35752         Reviewed by Adam Barth.
35753
35754         DOMWindow::console may return NULL, so we should do a NULL check before adding message to it.
35755         This may happen e.g. if a worker throws an exception just as the document is being replaced in the view.
35756         The exception task could be processes after current window in the frame changes, and console in the document window is nulled.
35757
35758         Test: fast/workers/worker-exception-during-navigation.html
35759
35760         * dom/Document.cpp:
35761         (WebCore::Document::addMessage):
35762
35763 2012-10-24  Cosmin Truta  <ctruta@rim.com>
35764
35765         Incorrect conditional use of LogFTP
35766         https://bugs.webkit.org/show_bug.cgi?id=100260
35767
35768         Reviewed by Alexey Proskuryakov.
35769
35770         Use LogFTP if !LOG_DISABLED, to allow toggling ASSERTIONS_DISABLED_DEFAULT
35771         without breaking the build.
35772
35773         * html/FTPDirectoryDocument.cpp:
35774         (WebCore::FTPDirectoryDocument::FTPDirectoryDocument):
35775
35776 2012-10-23  Alexey Proskuryakov  <ap@apple.com>
35777
35778         Add a strategy for shared workers
35779         https://bugs.webkit.org/show_bug.cgi?id=100165
35780
35781         Reviewed by Brady Eidson.
35782
35783         Also a little bit of alphabetization.
35784
35785         * WebCore.gypi:
35786         * WebCore.vcproj/WebCore.vcproj:
35787         * WebCore.xcodeproj/project.pbxproj:
35788         * platform/PlatformStrategies.h:
35789         * workers/SharedWorkerStrategy.h: Added.
35790
35791 2012-10-24  David Barton  <dbarton@mathscribe.com>
35792
35793         [MathML] Timeouts on linux after r132264
35794         https://bugs.webkit.org/show_bug.cgi?id=100202
35795
35796         Reviewed by Eric Seidel.
35797
35798         When building a stretched operator, such as a large parenthesis or bracket, we need to
35799         check that the extension glyph's height is > 0, to avoid an infinite loop. The 0 height
35800         can occur if the glyph is missing on the host system.
35801
35802         Tested by existing tests.
35803
35804         * rendering/mathml/RenderMathMLOperator.cpp:
35805         (WebCore::RenderMathMLOperator::updateFromElement):
35806
35807 2012-10-24  Parth Patel  <parpatel@rim.com>
35808
35809         [BlackBerry] Extending existing ThreadUnsafe singletons in webkit to
35810         Generic ThreadUnsafe Singleton
35811         https://bugs.webkit.org/show_bug.cgi?id=100145
35812
35813         Reviewed by Rob Buis.
35814
35815         Extending the singletons to generic singleton and changing
35816         getInstance() in IconDatabaseClientBlackBerry to instance()
35817         to match the generic singleton template.
35818
35819         Reviewed Internally by Yong Li.
35820
35821         Tests are not modified and added as there was no behavioural change.
35822
35823         * platform/blackberry/SharedTimerBlackBerry.cpp:
35824         (SharedTimerBlackBerry):
35825         (WebCore):
35826
35827 2012-10-24  Ilya Tikhonovsky  <loislo@chromium.org>
35828
35829         Web Inspector: NMI add instrumentation for ResourceBuffer. It gives us 10mb on gmail
35830         https://bugs.webkit.org/show_bug.cgi?id=100254
35831
35832         Reviewed by Yury Semikhatsky.
35833
35834         * loader/ResourceBuffer.cpp:
35835         (WebCore::ResourceBuffer::reportMemoryUsage):
35836         (WebCore):
35837         * loader/ResourceBuffer.h:
35838         (ResourceBuffer):
35839
35840 2012-10-24  Eric Carlson  <eric.carlson@apple.com>
35841
35842         Allow ports to override text track rendering style
35843         https://bugs.webkit.org/show_bug.cgi?id=97800
35844         <rdar://problem/12044964>
35845
35846         Unreviewed Build fix.
35847         
35848         CGFloat is already a float in a 32-bit build so narrowPrecisionToFloat() is unnecessary
35849
35850         * page/CaptionUserPreferencesMac.mm:
35851         (WebCore::CaptionUserPreferencesMac::captionFontSizeScale):
35852
35853 2012-10-24  Eric Carlson  <eric.carlson@apple.com>
35854
35855         Allow ports to override text track rendering style
35856         https://bugs.webkit.org/show_bug.cgi?id=97800
35857         <rdar://problem/12044964>
35858
35859         Reviewed by Maciej Stachowiak.
35860
35861         * WebCore.exp.in: Export new WebkitSystemInterface functions.
35862         * WebCore.xcodeproj/project.pbxproj: Add CaptionUserPreferences.h, CaptionUserPreferencesMac.mm,
35863             and CaptionUserPreferencesMac.h.
35864
35865         * css/mediaControls.css: Rearrange the caption CSS so it is possible to style the cue window,
35866             background, and text independently.
35867
35868         * html/HTMLMediaElement.cpp:
35869         (WebCore::HTMLMediaElement::HTMLMediaElement): Initialize m_disableCaptions with theme->userPrefersCaptions().
35870         (WebCore::HTMLMediaElement::attach): Register for caption preferences change callbacks.
35871         (WebCore::HTMLMediaElement::detach): Unregister for caption preferences change callbacks.
35872         (WebCore::HTMLMediaElement::userPrefersCaptions): Return theme->userPrefersCaptions().
35873         (WebCore::HTMLMediaElement::userIsInterestedInThisTrackKind): Consider userPrefersCaptions().
35874         (WebCore::HTMLMediaElement::setClosedCaptionsVisible): Move the code that marks all tracks as
35875             un-configured to markCaptionAndSubtitleTracksAsUnconfigured so it can be reused.
35876         (WebCore::HTMLMediaElement::captionPreferencesChanged): New, force a reevaluation of all text tracks.
35877         (WebCore::HTMLMediaElement::markCaptionAndSubtitleTracksAsUnconfigured): New, code moved from 
35878             setClosedCaptionsVisible
35879         * html/HTMLMediaElement.h: Inherit from CaptionPreferencesChangedListener.
35880
35881         * html/shadow/MediaControlElements.cpp:
35882         (WebCore::MediaControlTextTrackContainerElement::updateSizes): Get rid of unnecessary member
35883             variable. Get caption font scale from theme instead of hard coding.
35884         * html/shadow/MediaControlElements.h:
35885
35886         * html/track/TextTrack.cpp:
35887         (WebCore::TextTrack::TextTrack): Change attributes from String to AtomicString.
35888         (WebCore::TextTrack::isValidKindKeyword): Ditto.
35889         (WebCore::TextTrack::setKind): Ditto.
35890         (WebCore::TextTrack::setMode): Ditto.
35891         (WebCore::TextTrack::mode): Ditto.
35892         * html/track/TextTrack.h:
35893         (WebCore::TextTrack::create): Ditto.
35894         (WebCore::TextTrack::kind): Ditto.
35895         (WebCore::TextTrack::label): Ditto.
35896         (WebCore::TextTrack::setLabel): Ditto.
35897         (WebCore::TextTrack::language): Ditto.
35898         (WebCore::TextTrack::setLanguage): Ditto.
35899
35900         * html/track/TextTrackCue.cpp:
35901         (WebCore::TextTrackCueBox::TextTrackCueBox): Set the shadow pseudo id.
35902         (WebCore::TextTrackCueBox::textTrackCueBoxShadowPseudoId): New, class method to return the 
35903             shadow pseudo id so it can be used elsewhere.
35904         (WebCore::TextTrackCueBox::shadowPseudoId): Call textTrackCueBoxShadowPseudoId.
35905         (WebCore::TextTrackCue::pastNodesShadowPseudoId): New, class method to return the 
35906             shadow pseudo id so it can be used elsewhere.
35907         (WebCore::TextTrackCue::futureNodesShadowPseudoId): Ditto.
35908         (WebCore::TextTrackCue::updateDisplayTree):
35909         * html/track/TextTrackCue.h:
35910
35911         * page/CaptionUserPreferences.h: Added.
35912         * page/CaptionUserPreferencesMac.h: Added.
35913         * page/CaptionUserPreferencesMac.mm: Added.
35914         (WebCore::userCaptionPreferencesChangedNotificationCallback):
35915         (WebCore::CaptionUserPreferencesMac::CaptionUserPreferencesMac):
35916         (WebCore::CaptionUserPreferencesMac::~CaptionUserPreferencesMac):
35917         (WebCore::CaptionUserPreferencesMac::userHasCaptionPreferences): New, passthrough to WKSI function.
35918         (WebCore::CaptionUserPreferencesMac::userPrefersCaptions): Ditto.
35919         (WebCore::CaptionUserPreferencesMac::captionsWindowColor): Return Color with user's caption window color preference.
35920         (WebCore::CaptionUserPreferencesMac::captionsBackgroundColor): Return Color with user's caption 
35921             background color preference.
35922         (WebCore::CaptionUserPreferencesMac::captionsTextColor): Return Color with user's caption text color preference.
35923         (WebCore::CaptionUserPreferencesMac::captionsEdgeColorForTextColor): Return Color for text edge effect.
35924         (WebCore::CaptionUserPreferencesMac::cssPropertyWithTextEdgeColor): Return String with CSS to set a text-shadow
35925             or webkit-text-stroke property.
35926         (WebCore::CaptionUserPreferencesMac::cssColorProperty): Return a String with css to set a property 
35927             with a color value.
35928         (WebCore::CaptionUserPreferencesMac::captionsTextEdgeStyle): Return a String with css to style caption 
35929             text with the user's preferred text edge stye.
35930         (WebCore::CaptionUserPreferencesMac::captionsDefaultFont): Return a String with css to style caption
35931             text with the user's preferred font.
35932         (WebCore::CaptionUserPreferencesMac::captionsStyleSheetOverride): Return a String with css to style captions
35933             with the user's preferred style.
35934         (WebCore::CaptionUserPreferencesMac::captionFontSizeScale): Return the user's preferred caption font scale.
35935         (WebCore::CaptionUserPreferencesMac::captionPreferencesChanged): Notify listeners of caption preference change.
35936         (WebCore::CaptionUserPreferencesMac::registerForCaptionPreferencesChangedCallbacks): Add a caption preferences 
35937             changes listener.
35938         (WebCore::CaptionUserPreferencesMac::unregisterForCaptionPreferencesChangedCallbacks): Remove a caption preferences
35939             changes listener.
35940         (WebCore::CaptionUserPreferencesMac::updateCaptionStyleSheetOveride): New, if theme has a captions style sheet override,
35941             inject it into the current page group, otherwise remove injected sheet.
35942
35943         * page/PageGroup.cpp:
35944         (WebCore::PageGroup::captionPreferences):
35945         (WebCore::PageGroup::registerForCaptionPreferencesChangedCallbacks): New, passthrough to platform specific function
35946             of the same name.
35947         (WebCore::PageGroup::unregisterForCaptionPreferencesChangedCallbacks): Ditto.
35948         (WebCore::PageGroup::userPrefersCaptions): Ditto.
35949         (WebCore::PageGroup::userHasCaptionPreferences): Ditto.
35950         (WebCore::PageGroup::captionFontSizeScale): Ditto.
35951         * page/PageGroup.h:
35952
35953         * platform/mac/WebCoreSystemInterface.h: Updated.
35954         * platform/mac/WebCoreSystemInterface.mm: Ditto.
35955
35956 2012-10-24  Vsevolod Vlasov  <vsevik@chromium.org>
35957
35958         Web Inspector: Introduce workspace provider as a content providing backend for project.
35959         https://bugs.webkit.org/show_bug.cgi?id=100244
35960
35961         Reviewed by Pavel Feldman.
35962
35963         Introduced WorkspaceProvider interface as a content providing backend for project.
35964         Added NetworkWorkspaceProvider as a network based (default) implementation.
35965
35966         * WebCore.gypi:
35967         * WebCore.vcproj/WebCore.vcproj:
35968         * inspector/compile-front-end.py:
35969         * inspector/front-end/CompilerScriptMapping.js:
35970         (WebInspector.CompilerScriptMapping):
35971         * inspector/front-end/DebuggerScriptMapping.js:
35972         (WebInspector.DebuggerScriptMapping):
35973         * inspector/front-end/NetworkUISourceCodeProvider.js:
35974         (WebInspector.NetworkUISourceCodeProvider):
35975         (WebInspector.NetworkUISourceCodeProvider.prototype._parsedScriptSource):
35976         (WebInspector.NetworkUISourceCodeProvider.prototype._resourceAdded):
35977         (WebInspector.NetworkUISourceCodeProvider.prototype._addFile):
35978         * inspector/front-end/NetworkWorkspaceProvider.js: Added.
35979         (WebInspector.NetworkWorkspaceProvider):
35980         (WebInspector.NetworkWorkspaceProvider.prototype.requestFileContent):
35981         (WebInspector.NetworkWorkspaceProvider.prototype.setFileContent):
35982         (WebInspector.NetworkWorkspaceProvider.prototype.searchInFileContent):
35983         (WebInspector.NetworkWorkspaceProvider.prototype.addFile):
35984         (WebInspector.NetworkWorkspaceProvider.prototype.removeFile):
35985         (WebInspector.NetworkWorkspaceProvider.prototype.reset):
35986         * inspector/front-end/SASSSourceMapping.js:
35987         (WebInspector.SASSSourceMapping):
35988         (_bindUISourceCode):
35989         * inspector/front-end/ScriptSnippetModel.js:
35990         (WebInspector.ScriptSnippetModel):
35991         (WebInspector.ScriptSnippetModel.prototype._addScriptSnippet):
35992         * inspector/front-end/WebKit.qrc:
35993         * inspector/front-end/Workspace.js:
35994         (WebInspector.FileDescriptor):
35995         (WebInspector.WorkspaceProvider):
35996         (WebInspector.WorkspaceProvider.prototype.requestFileContent):
35997         (WebInspector.WorkspaceProvider.prototype.searchInFileContent):
35998         (WebInspector.WorkspaceProvider.prototype.addEventListener):
35999         (WebInspector.WorkspaceProvider.prototype.removeEventListener):
36000         (WebInspector.Project):
36001         (WebInspector.Project.prototype.reset):
36002         (WebInspector.Project.prototype._fileAdded):
36003         (WebInspector.Project.prototype._fileRemoved):
36004         (WebInspector.Project.prototype.requestFileContent):
36005         (WebInspector.Project.prototype.searchInFileContent):
36006         (WebInspector.Workspace):
36007         (WebInspector.Workspace.prototype.addProject):
36008         (WebInspector.Workspace.prototype.project):
36009         * inspector/front-end/inspector.html:
36010         * inspector/front-end/inspector.js:
36011
36012 2012-10-24  Nikita Vasilyev  <me@elv1s.ru>
36013
36014         Web Inspector: Styles pane: Don't select whole value when I select just a part
36015         https://bugs.webkit.org/show_bug.cgi?id=100242
36016
36017         Reviewed by Alexander Pavlov.
36018
36019         * inspector/front-end/StylesSidebarPane.js:
36020         (WebInspector.StylePropertiesSection.prototype._handleEmptySpaceClick):
36021         (WebInspector.StylePropertyTreeElement.prototype):
36022
36023 2012-10-24  Vsevolod Vlasov  <vsevik@chromium.org>
36024
36025         Web Inspector: UiSourceCode should rely on the workspace as a content provider.
36026         https://bugs.webkit.org/show_bug.cgi?id=100216
36027
36028         Reviewed by Pavel Feldman.
36029
36030         Workspace is now passed to UISourceCode to be used as a content provider.
36031         Content providers are now stored in the workspace/project.
36032         Next step would be to move content providers to workspace providers.
36033
36034         * inspector/front-end/BreakpointManager.js:
36035         (WebInspector.BreakpointManager.breakpointStorageId):
36036         * inspector/front-end/UISourceCode.js:
36037         (WebInspector.UISourceCode):
36038         (WebInspector.UISourceCode.prototype.contentType):
36039         (WebInspector.UISourceCode.prototype.requestContent):
36040         (WebInspector.UISourceCode.prototype.requestOriginalContent):
36041         (WebInspector.UISourceCode.prototype._commitContent):
36042         (WebInspector.UISourceCode.prototype.searchInContent):
36043         * inspector/front-end/Workspace.js:
36044         (WebInspector.WorkspaceController.prototype._mainFrameNavigated):
36045         (WebInspector.Project):
36046         (WebInspector.Project.prototype.addUISourceCode):
36047         (WebInspector.Project.prototype.removeUISourceCode):
36048         (WebInspector.Project.prototype.uiSourceCodes):
36049         (WebInspector.Project.prototype.requestFileContent):
36050         (WebInspector.Project.prototype.searchInFileContent):
36051         (WebInspector.Workspace):
36052         (WebInspector.Workspace.prototype.addTemporaryUISourceCode):
36053         (WebInspector.Workspace.prototype.removeTemporaryUISourceCode):
36054         (WebInspector.Workspace.prototype.reset):
36055
36056 2012-10-24  Zeno Albisser  <zeno@webkit.org>
36057
36058         Implement GraphicsSurface for Windows.
36059         https://bugs.webkit.org/show_bug.cgi?id=98147
36060
36061         Reviewed by Kenneth Rohde Christiansen.
36062
36063         * Target.pri:
36064             Include GraphicsSurfaceWin.cpp in SOURCES on Windows.
36065         * platform/graphics/surfaces/GraphicsSurface.h:
36066             Add typedef for PlatformGraphicsSurface on Windows.
36067         * platform/graphics/surfaces/GraphicsSurfaceToken.h:
36068             Add typedef for BufferHandle on Windows.
36069         (GraphicsSurfaceToken):
36070         * platform/graphics/surfaces/win/GraphicsSurfaceWin.cpp: Added.
36071             The GraphicsSurface implementation on Windows relies on the
36072             availability of ANGLE and the EGL_ANGLE_query_surface_pointer extension.
36073             For Qt this requirements are implicitly satisfied, when Qt is built
36074             on Windows and QT_CONFIG contains OpenGLES2.
36075             The GraphicsSurface then renders a given texture onto an offscreen
36076             pixel buffer surface, queries the surface pointer using the
36077             EGL_ANGLE_query_surface_pointer extension, and transmits the received
36078             surface pointer (share handle) over IPC.
36079             On the UIProcess side, the surface pointer can then be resolved
36080             using eglCreatePbufferFromClientBuffer.
36081         (WebCore):
36082         (WebCore::loadShader):
36083             Initialize the shaders needed for drawing onto the GraphicsSurface.
36084         (GraphicsSurfacePrivate):
36085         (WebCore::GraphicsSurfacePrivate::GraphicsSurfacePrivate):
36086             In case of the instance being on the WebProcess side,
36087             create an EGLContext that shares the texture objects with the provided
36088             share context. Also create two pixel buffer surfaces, one as front- and
36089             one as backbuffer.
36090             Query the surface pointers for the pixel buffer surfaces and initialize
36091             the GraphicsSurfaceToken that can be passed over IPC later.
36092         (WebCore::GraphicsSurfacePrivate::~GraphicsSurfacePrivate):
36093             Release all aquired resources and destroy the pixel buffer surfaces.
36094             Also close the EGL-Display connection.
36095         (WebCore::GraphicsSurfacePrivate::copyFromTexture):
36096             Make the belonging context current on the back buffer surface
36097             and use drawTexture() to draw the provided texture onto the GraphicsSurface.
36098         (WebCore::GraphicsSurfacePrivate::makeCurrent):
36099             Save the previously current context, then make the context belonging
36100             to the GraphicsSurface current.
36101         (WebCore::GraphicsSurfacePrivate::doneCurrent):
36102             Restore the context that was current before calling makeCurrent().
36103         (WebCore::GraphicsSurfacePrivate::swapBuffers):
36104             Swap front and back buffer surfaces and handles.
36105         (WebCore::GraphicsSurfacePrivate::token):
36106         (WebCore::GraphicsSurfacePrivate::frontBufferTextureID):
36107             This function is meant to be called from the UIProcess side.
36108             If no front buffer surface has been created before for the current
36109             front buffer handle, one will be created.
36110             Then eglBindTexImage will be used to actually bind the current
36111             front buffer surface to a texture as a source for drawing.
36112         (WebCore::GraphicsSurfacePrivate::initialFrontBufferShareHandle):
36113         (WebCore::GraphicsSurfacePrivate::frontBufferShareHandle):
36114         (WebCore::GraphicsSurfacePrivate::backBufferShareHandle):
36115         (WebCore::GraphicsSurfacePrivate::releaseFrontBufferTexture):
36116             Free the resources related to the front buffer surface.
36117             On the UIProcess side we never actually bind the back buffer.
36118         (WebCore::GraphicsSurfacePrivate::initializeShaderProgram):
36119             Initialize and link the shader programs necessary for drawing
36120             onto the GraphicsSurface.
36121         (WebCore::GraphicsSurfacePrivate::createSurfaceFromShareHandle):
36122             Creates a single pixel buffer surface from a share Handle.
36123             This function will be called on the UIProcess side,
36124             for the front buffer handle, whenever the buffers have been swapped.
36125         (WebCore::GraphicsSurfacePrivate::drawTexture):
36126             The WebProcess uses this function to draw a given
36127             texture onto the GraphicsSurface's back buffer.
36128         (WebCore::GraphicsSurface::platformExport):
36129         (WebCore::GraphicsSurface::platformGetTextureID):
36130         (WebCore::GraphicsSurface::platformCopyToGLTexture):
36131         (WebCore::GraphicsSurface::platformCopyFromTexture):
36132         (WebCore::GraphicsSurface::platformPaintToTextureMapper):
36133             Uses TextureMapperGL::drawTexture() to draw the front buffer texture
36134             to the TextureMapper on the UIProcess side.
36135         (WebCore::GraphicsSurface::platformFrontBuffer):
36136         (WebCore::GraphicsSurface::platformSwapBuffers):
36137         (WebCore::GraphicsSurface::platformCreate):
36138         (WebCore::GraphicsSurface::platformImport):
36139         (WebCore::GraphicsSurface::platformLock):
36140         (WebCore::GraphicsSurface::platformUnlock):
36141         (WebCore::GraphicsSurface::platformDestroy):
36142
36143 2012-09-27  Yury Semikhatsky  <yurys@chromium.org>
36144
36145         Web Inspector: provide memory instrumentation for ListHashSet
36146         https://bugs.webkit.org/show_bug.cgi?id=97786
36147
36148         Reviewed by Vsevolod Vlasov.
36149
36150         Switched existing usages of addListHashSet to the generic instrumentation mechanism
36151         as it should work just just fine now that there is a memory instrumentation of
36152         ListHashSet.
36153
36154         * dom/DocumentEventQueue.cpp:
36155         * dom/DocumentStyleSheetCollection.cpp:
36156         (WebCore::DocumentStyleSheetCollection::reportMemoryUsage):
36157         * loader/cache/CachedResourceLoader.cpp:
36158         (WebCore::CachedResourceLoader::reportMemoryUsage):
36159
36160 2012-10-24  Charles Wei  <charles.wei@torchmobile.com.cn>
36161
36162         [BlackBerry] Credentials not re-used for a redirected request to the same domain
36163         https://bugs.webkit.org/show_bug.cgi?id=100193
36164
36165         Reviewed by George Staikos.
36166
36167         We should store the credentials in the redirection response handler, if the request is challenged.
36168         Because the redirect response suggests the authentication succeeds. 
36169
36170         Test: http://browsertest01.rim.net/authbasic
36171
36172         * platform/network/blackberry/NetworkJob.cpp:
36173         (WebCore::NetworkJob::handleRedirect):
36174
36175 2012-10-24  Alexander Pavlov  <apavlov@chromium.org>
36176
36177         Web Inspector: Implement CSS reload upon related SASS resource saving
36178         https://bugs.webkit.org/show_bug.cgi?id=98024
36179
36180         Reviewed by Vsevolod Vlasov.
36181
36182         SASS-generated debug info in CSS is parsed to find out which SASS files contributed to this stylesheet.
36183         Upon SASS file save in the Sources panel, all affected external CSS stylesheets are reloaded to update
36184         the page styles (presuming that SASS is running in the "watch" mode during the development cycle).
36185
36186         * English.lproj/localizedStrings.js:
36187         * inspector/front-end/SASSSourceMapping.js:
36188         (WebInspector.SASSSourceMapping):
36189         (WebInspector.SASSSourceMapping.prototype._fileSaveFinished.callback):
36190         (WebInspector.SASSSourceMapping.prototype._reloadCSS):
36191         (_bindUISourceCode):
36192         (_addCSSURLforSASSURL):
36193         * inspector/front-end/Settings.js:
36194         * inspector/front-end/SettingsScreen.js:
36195         (WebInspector.GenericSettingsTab):
36196
36197 2012-10-23  Yury Semikhatsky  <yurys@chromium.org>
36198
36199         Memory instrumentation: don't count agent-specific front-ends separately
36200         https://bugs.webkit.org/show_bug.cgi?id=100087
36201
36202         Reviewed by Alexander Pavlov.
36203
36204         Pointers to domain-specific inspector front-end interfaces are reported as
36205         weak pointers instead of members to avoid double-counting.
36206
36207         Test by comparing set of reported instrumented objects with the set of objects
36208         allocated by tcmalloc.
36209
36210         * inspector/InspectorDOMStorageAgent.cpp:
36211         (WebCore::InspectorDOMStorageAgent::reportMemoryUsage):
36212         * inspector/InspectorDOMStorageResource.cpp:
36213         (WebCore::InspectorDOMStorageResource::reportMemoryUsage):
36214         * inspector/InspectorProfilerAgent.cpp:
36215         (WebCore::InspectorProfilerAgent::reportMemoryUsage):
36216
36217 2012-10-23  Christophe Dumez  <christophe.dumez@intel.com>
36218
36219         Regression(r132303) Broke debug build when SHADOW_DOM is enabled but STYLE_SCOPED is disabled
36220         https://bugs.webkit.org/show_bug.cgi?id=100203
36221
36222         Unreviewed Build fix.
36223
36224         Fix compilation error in StyleResolver.h when SHADOW_DOM flag is
36225         set and STYLE_SCOPED is not.
36226
36227         No new tests, no behavior change.
36228
36229         * css/StyleResolver.h:
36230         (WebCore::StyleResolver::ensureScopeResolver):
36231
36232 2012-10-23  Andreas Kling  <kling@webkit.org>
36233
36234         Remove specialized hash traits for GlyphPages.
36235         <http://webkit.org/b/100185>
36236
36237         Reviewed by Dan Bernstein.
36238
36239         Now that the default minimum table size has been lowered for all tables, there's no need
36240         for this specialization anymore.
36241
36242         * platform/graphics/FontFallbackList.h:
36243         (FontFallbackList):
36244
36245 2012-10-23  Kent Tamura  <tkent@chromium.org>
36246
36247         Multiple fields input UI: Don't use CSS properties for physical direction
36248         https://bugs.webkit.org/show_bug.cgi?id=100195
36249
36250         Reviewed by Kentaro Hara.
36251
36252         CSS declarations such as "padding: 0 0 0 1px;" "margin-left: 0.2em;" are
36253         not direction-neutral, and makes unexpected appearance in RTL. We should
36254         use -webkit-padding-start or -webkit-margin-start.
36255
36256         No new tests. Covered by date-multiple-fields-appearance-l10n.html and
36257         month-multiple-fields-appearance-l10n.html
36258
36259         * css/html.css:
36260         (input[type="date"]): Use padding:0 and -webkit-padding-start:1px;
36261         (input[type="datetime"]): Ditto.
36262         (input[type="datetime-local"]): Ditto.
36263         (input[type="month"]): Ditto.
36264         (input[type="time"]): Ditto.
36265         (input[type="week"]): Ditto.
36266         (input[type="week"]::-webkit-inner-spin-button):
36267         Use -webkit-margin-start. Also use an integral pixel size instead of
36268         avoid a fractional relative size to avoid subpixel layout rounding.
36269
36270 2012-10-23  Dan Bernstein  <mitz@apple.com>
36271
36272         The font cache evicts inactive font data too aggressively when not under memory pressure
36273         https://bugs.webkit.org/show_bug.cgi?id=100194
36274
36275         Reviewed by Sam Weinig.
36276
36277         Increasing the number of inactive font data objects the cache may hold increases the hit
36278         rate, leading to improved page load performance. When memory pressure is detected,
36279         MemoryPressureHandler evicts all inactive objects, regardless of the limits we are
36280         increasing here.
36281
36282         * platform/graphics/FontCache.cpp:
36283         (WebCore): Increased the maximum number of inactive font data objects in the cache from 50
36284         to 225, and the number of objects to evict once the limit is met from 20 to 25.
36285
36286 2012-10-23  Takashi Sakamoto  <tasak@google.com>
36287
36288         [Shadow DOM] Needs @host rule for ShadowDOM styling
36289         https://bugs.webkit.org/show_bug.cgi?id=88606
36290
36291         Reviewed by Hajime Morita.
36292
36293         Implemented @host-@rules according to the shadow dom spec:
36294         http://dvcs.w3.org/hg/webcomponents/raw-file/tip/spec/shadow/index.html#host-at-rule
36295         The design doc is:
36296         https://docs.google.com/document/d/1P2yorchF8lci2sccr-mVSRf2dtvjKeiuyQWzCB2bEA8/edit
36297
36298         Test: fast/dom/shadow/athost-atrules.html
36299
36300         * css/CSSGrammar.y.in:
36301         Added rules for parsing @host @-rules.
36302         * css/CSSParser.cpp:
36303         (WebCore::CSSParser::detectAtToken):
36304         Added a new token "@host".
36305         (WebCore::CSSParser::createHostRule):
36306         Added a new method to create an @host @-rule, which is invoked from
36307         (WebCore):
36308         * css/CSSParser.h:
36309         Added a declaration of the above new method: createHostRule.
36310         * css/CSSPropertySourceData.h:
36311         Added HOST_RULE to enum Type.
36312         * css/RuleSet.cpp:
36313         (WebCore::RuleData::RuleData):
36314         Modified multiple bool arguments into one argument. Now it
36315         uses combinations of values from enum AddRuleFlags.
36316         (WebCore::RuleSet::addRule):
36317         (WebCore::RuleSet::addRegionRule):
36318         (WebCore::RuleSet::addStyleRule):
36319         Updated according to the RuleData's change.
36320         Modified to Invoke increaseSpecificity if the given rule is @host
36321         @-rule.
36322         (WebCore::RuleSet::addRulesFromSheet):
36323         Invoked addHostRule if the given rule is @host @-rule.
36324         * css/RuleSet.h:
36325         (RuleData):
36326         (WebCore::RuleData::increaseSpecificity):
36327         Added a new method to increase selector's specificity. This method is
36328         used to make @host @-rules' specificity larger than normal author
36329         rules' specificity.
36330         (RuleSet):
36331         * css/StyleResolver.cpp:
36332         (WebCore::makeRuleSet):
36333         (WebCore::StyleResolver::addHostRule):
36334         A wrapper method to invoke StyleScopeResolver::addHostRule. The method
36335         is used to make only StyleResolver know an implementation detail about
36336         class StyleScopeResolver.
36337         (WebCore::StyleResolver::appendAuthorStylesheets):
36338         Updated according to the RuleData's change.
36339         (WebCore::StyleResolver::styleSharingCandidateMatchesHostRules):
36340         A new method to find matched host rules when an element is given.
36341         This method invokes
36342         StyleScopeResolver::styleSharingCandidateMatchesHostRules to find
36343         matched host rules.
36344         (WebCore):
36345         (WebCore::StyleResolver::matchHostRules):
36346         A new method to find matched host rules when an element is given.
36347         This method invokes StyleScopeResolver::matchHostRules to find
36348         matched host rules.
36349         (WebCore::StyleResolver::matchScopedAuthorRules):
36350         Modified to invoke matchHostRules.
36351         (WebCore::StyleResolver::locateSharedStyle):
36352         Disable sibling style cache if the given element is a shadow host and
36353         any @host @-rules are applied to the element.
36354         * css/StyleResolver.h:
36355         (WebCore::StyleResolver::ensureScopeResolver):
36356         If no scopeResolver is created, create and return the instance.
36357         If created, just return the instance.
36358         (StyleResolver):
36359         * css/StyleRule.cpp:
36360         (WebCore::StyleRuleBase::reportMemoryUsage):
36361         (WebCore::StyleRuleBase::destroy):
36362         (WebCore::StyleRuleBase::copy):
36363         (WebCore::StyleRuleBase::createCSSOMWrapper):
36364         (WebCore::StyleRuleHost::StyleRuleHost):
36365         Implemented class StyleRuleHost. The class is almost the same as
36366         StyleRuleBlock except type.
36367         (WebCore):
36368         * css/StyleRule.h:
36369         (WebCore::StyleRuleBase::isHostRule):
36370         (StyleRuleHost):
36371         (WebCore::StyleRuleHost::create):
36372         (WebCore::StyleRuleHost::copy):
36373         (WebCore):
36374         * css/StyleScopeResolver.cpp:
36375         (WebCore::StyleScopeResolver::ensureAtHostRuleSetFor):
36376         A new method to create a new RuleSet for the given shadow root.
36377         (WebCore):
36378         (WebCore::StyleScopeResolver::atHostRuleSetFor):
36379         A new private inline method to obtain @host @-rules declared in
36380         the given shadow root.
36381         (WebCore::StyleScopeResolver::addHostRule):
36382         Added a new method to register @host @-rules with shadow roots.
36383         (WebCore::StyleScopeResolver::styleSharingCandidateMatchesHostRules):
36384         A new method to find whether any @host @-rules are applied to
36385         the given host element.
36386         (WebCore::StyleScopeResolver::matchHostRules):
36387         A new method to find matched rules for the given host element.
36388         (WebCore::StyleScopeResolver::reportMemoryUsage):
36389         * css/StyleScopeResolver.h:
36390         (WebCore):
36391         (StyleScopeResolver):
36392         * css/StyleSheetContents.cpp:
36393         (WebCore::childRulesHaveFailedOrCanceledSubresources):
36394
36395 2012-10-23  Andreas Kling  <kling@webkit.org>
36396
36397         REGRESSION(r130643): ASSERTION FAILED: result.iterator != end() below PluginDatabase::add
36398         <http://webkit.org/b/100065>
36399
36400         Reviewed by Anders Carlsson.
36401
36402         Restore the pre-r130643 hash table size for PluginDatabase to prevent these easily reproducible
36403         collisions. This will need a proper fix at some point.
36404
36405         * plugins/PluginDatabase.h:
36406         * plugins/PluginPackage.h:
36407         (PluginPackageHashTraits):
36408
36409 2012-10-23  Simon Fraser  <simon.fraser@apple.com>
36410
36411         Allow tests to run with a tile cache, and optionally dump the tile cache via layerTreeAsText()
36412         https://bugs.webkit.org/show_bug.cgi?id=100159
36413
36414         Reviewed by Tim Horton.
36415
36416         Add a LAYER_TREE_INCLUDES_PAGE_TILE_CACHE flag for layerTreeAsText(), and plumb it
36417         through to GraphicsLayerCA, which dumps the TiledBacking tile coverage rect.
36418
36419         Test: platform/mac/tiled-drawing/use-tiled-drawing.html
36420
36421         * page/Frame.h:
36422         * platform/graphics/GraphicsLayer.cpp:
36423         (showGraphicsLayerTree):
36424         * platform/graphics/GraphicsLayer.h:
36425         (WebCore::GraphicsLayer::tiledBacking):
36426         * platform/graphics/TiledBacking.h:
36427         * platform/graphics/ca/GraphicsLayerCA.cpp:
36428         (WebCore::GraphicsLayerCA::tiledBacking):
36429         (WebCore::GraphicsLayerCA::dumpAdditionalProperties):
36430         * platform/graphics/ca/GraphicsLayerCA.h:
36431         (GraphicsLayerCA):
36432         * platform/graphics/ca/mac/TileCache.h:
36433         (WebCore::TileCache::tileCoverageRect):
36434         (TileCache):
36435         * platform/graphics/ca/mac/TileCache.mm:
36436         (WebCore::TileCache::computeTileCoverageRect):
36437         (WebCore::TileCache::revalidateTiles):
36438         * rendering/RenderLayerCompositor.cpp:
36439         (WebCore::RenderLayerCompositor::layerTreeAsText):
36440         * testing/Internals.cpp:
36441         (WebCore::Internals::layerTreeAsText):
36442         * testing/Internals.h:
36443         * testing/Internals.idl:
36444
36445 2012-10-23  Simon Fraser  <simon.fraser@apple.com>
36446
36447         Flush pending GraphicsLayer changes when reattaching compositing layers if necessary
36448         https://bugs.webkit.org/show_bug.cgi?id=100187
36449         <rdar://problem/12546770>
36450
36451         Reviewed by Dan Bernstein.
36452
36453         Fix a regression from r131940. That revision changed RenderLayerCompositor::flushPendingLayerChanges()
36454         to bail if the root layer is unattached, which indicates that we're in the page cache, or in a
36455         background tab. However, that dropped the layer flush on the floor, so that any subsequent changes
36456         to GraphicsLayerCAs would just pile up and never get flushed. This was most evident on pages
36457         that require frequent flushing, such as those running animated GIFs.
36458         
36459         Fix by setting a flag in flushPendingLayerChanges() if we're unattached. Consult the flag
36460         when re-attaching the root layer, and if it's set, flush the GraphicsLayers.
36461         
36462         Not testable because we can't test detaching and re-adding web views in DRT/WTR.
36463
36464         * rendering/RenderLayerCompositor.cpp:
36465         (WebCore::RenderLayerCompositor::RenderLayerCompositor): Initialize m_shouldFlushOnReattach to false.
36466         (WebCore::RenderLayerCompositor::flushPendingLayerChanges): If the root layer attachment
36467         is RootLayerUnattached, set the m_shouldFlushOnReattach flag before returning.
36468         (WebCore::RenderLayerCompositor::attachRootLayer): If m_shouldFlushOnReattach, flush the layers,
36469         saying that we're the flush root.
36470         * rendering/RenderLayerCompositor.h:
36471         (RenderLayerCompositor): Add m_shouldFlushOnReattach flag.
36472
36473 2012-10-23  Sheriff Bot  <webkit.review.bot@gmail.com>
36474
36475         Unreviewed, rolling out r132276.
36476         http://trac.webkit.org/changeset/132276
36477         https://bugs.webkit.org/show_bug.cgi?id=100189
36478
36479         It broke the Qt-WK2 build intentionally (Requested by
36480         Ossy_night on #webkit).
36481
36482         * page/Frame.h:
36483         * platform/graphics/GraphicsLayer.cpp:
36484         (showGraphicsLayerTree):
36485         * platform/graphics/GraphicsLayer.h:
36486         (WebCore::GraphicsLayer::tiledBacking):
36487         * platform/graphics/TiledBacking.h:
36488         * platform/graphics/ca/GraphicsLayerCA.cpp:
36489         (WebCore::GraphicsLayerCA::tiledBacking):
36490         (WebCore::GraphicsLayerCA::dumpAdditionalProperties):
36491         * platform/graphics/ca/GraphicsLayerCA.h:
36492         (GraphicsLayerCA):
36493         * platform/graphics/ca/mac/TileCache.h:
36494         * platform/graphics/ca/mac/TileCache.mm:
36495         (WebCore::TileCache::tileCoverageRect):
36496         (WebCore::TileCache::revalidateTiles):
36497         * rendering/RenderLayerCompositor.cpp:
36498         (WebCore::RenderLayerCompositor::layerTreeAsText):
36499         * testing/Internals.cpp:
36500         (WebCore::Internals::layerTreeAsText):
36501         * testing/Internals.h:
36502         * testing/Internals.idl:
36503
36504 2012-10-23  Philip Rogers  <pdr@google.com>
36505
36506         Add extra check for data() in PageSerializer.
36507         https://bugs.webkit.org/show_bug.cgi?id=99102
36508
36509         Reviewed by Eric Seidel.
36510
36511         The image returned from imageForRenderer() does not contain the raw SVG data
36512         so this patch adds a check for image->image()->data() before writing SVG
36513         in PageSerializer::addImageToResources.
36514
36515         Covered by existing test WebPageNewSerializeTest.SVGImageDontCrash.
36516
36517         * page/PageSerializer.cpp:
36518         (WebCore::PageSerializer::addImageToResources):
36519
36520 2012-10-23  Kent Tamura  <tkent@chromium.org>
36521
36522         Move appendAsLDMLLiteral in LocaleWin.cpp to a common place
36523         https://bugs.webkit.org/show_bug.cgi?id=100129
36524
36525         Reviewed by Kentaro Hara.
36526
36527         We're going to use appendAsLDMLLiteral in other code, and it is
36528         related to DateTimeFormat class.  So we move it to DateTimeFormat
36529         class as quoteAndAppendLiteral.
36530
36531         No new tests because of no behavior change.
36532
36533         * platform/text/DateTimeFormat.cpp:
36534         (WebCore::DateTimeFormat::quoteAndAppendLiteral):
36535         Moved from LocaleWin.cpp
36536         * platform/text/DateTimeFormat.h:
36537         Declare StringBuilder by wtf/Forward.h. It also declares String.
36538         (DateTimeFormat): Declare quoteAndAppendLiteral.
36539         * platform/text/LocaleWin.cpp:
36540         (WebCore): Move appendLDMLLiteral to DateTimeFormat.
36541         (WebCore::convertWindowsDateFormatToLDML):
36542         Follow the moving.
36543
36544 2012-10-23  Kent Tamura  <tkent@chromium.org>
36545
36546         REGRESSION(r131421): Text baseline is not aligned in some locales
36547         https://bugs.webkit.org/show_bug.cgi?id=100088
36548
36549         Reviewed by Hajime Morita.
36550
36551         Before this patch, the element with ::-webkit-datetime-edit had
36552         -webkit-align-items:center. It was incorrect at all because it
36553         ignores baselines of each of inner fields. We need to change it to
36554         -webkit-align-items:baseline, or stop using -webkit-flex.
36555
36556         However -webkit-align-items:baseline doesn't work because a spin
36557         button element in the element doesn't have the baseline. If we
36558         specified -webkit-align-items:baseline, the spin button would
36559         shift up.
36560
36561         So, we change the element structure for multiple fields input
36562         elements. Before this patch, the structure was:
36563
36564         input
36565           |
36566            - ::-webkit-date-and-time-container (flex cotainer)
36567              |
36568              |- ::-webkit-datetime-edit (has flexibility in date-and-time-container, also this is a flex container)
36569              |  |- ::-webkit-datetime-edit-foo
36570              |  |      :
36571              |  |
36572              |  |- ::-webkit-date-time-edit-gap  (has flexibility in datetime-edit)
36573              |   - ::-webkit-inne-spin-button
36574               - ::-webkit-calendar-picker-indicator
36575
36576         After the patch, the structure will be:
36577
36578         input
36579           |
36580            - ::-webkit-date-and-time-container (flexible box)
36581              |
36582              |- ::-webkit-datetime-edit (has flexibility in date-and-time-container)
36583              |  |- ::-webkit-datetime-edit-foo
36584              |  |      :
36585              |  |
36586              |
36587              |- ::-webkit-inne-spin-button
36588               - ::-webkit-calendar-picker-indicator
36589
36590         Because the spin button owner is date-and-time-container, we don't
36591         need to make the datetime-edit element a flex container.
36592
36593         Also, we had rounding error by subpixel layout. To avoid it, we
36594         stop using fractional paddings.
36595
36596         In order to implement this, we need to change the SpinButtonOwner
36597         interface provider from DateTimeEditElement to
36598         BaseMultipleFieldsDateAndTimeInputType.
36599
36600         No new tests. Covered by month-multiple-fields-appearance-l10n.html.
36601
36602         * css/html.css:
36603         (input::-webkit-datetime-edit): Stop making this a flex
36604         container. Inner fields in this use the single baseline.
36605         (input::-webkit-datetime-edit-ampm-field):
36606         Don't use fractional paddings to avoid rounding erros of subpixel
36607         layout.  Use integral margin instead to avoid overwrap of focus
36608         ring and background-color of the field.
36609         (input::-webkit-datetime-edit-day-field): Ditto.
36610         (input::-webkit-datetime-edit-hour-field): Ditto.
36611         (input::-webkit-datetime-edit-millisecond-field): Ditto.
36612         (input::-webkit-datetime-edit-minute-field): Ditto.
36613         (input::-webkit-datetime-edit-month-field): Ditto.
36614         (input::-webkit-datetime-edit-second-field): Ditto.
36615         (input::-webkit-datetime-edit-week-field): Ditto.
36616         (input::-webkit-datetime-edit-year-field): Ditto.
36617         (input::-webkit-date-and-time-container): Ditto.
36618
36619         * html/BaseMultipleFieldsDateAndTimeInputType.h:
36620         (BaseMultipleFieldsDateAndTimeInputType): Overrides
36621         SpinButtonOwner functions, and add m_spinButtonElement.
36622         * html/BaseMultipleFieldsDateAndTimeInputType.cpp:
36623         (WebCore::BaseMultipleFieldsDateAndTimeInputType::focusAndSelectSpinButtonOwner):
36624         Just delegate to DateTimeEditElement::focusIfNoFocus.
36625         (WebCore::BaseMultipleFieldsDateAndTimeInputType::shouldSpinButtonRespondToMouseEvents):
36626         Moved from DateTimeEditElement::shouldSpinButtonRespondToMouseEvents.
36627         (WebCore::BaseMultipleFieldsDateAndTimeInputType::shouldSpinButtonRespondToWheelEvents):
36628         Moved from DateTimeEditElement::shouldSpinButtonRespondToWheelEvents.
36629         (WebCore::BaseMultipleFieldsDateAndTimeInputType::spinButtonStepDown):
36630         Delegate to DateTimeEditElement::stepDown.
36631         (WebCore::BaseMultipleFieldsDateAndTimeInputType::spinButtonStepUp):
36632         Delegate to DateTimeEditElement::stepUp.
36633         (WebCore::BaseMultipleFieldsDateAndTimeInputType::BaseMultipleFieldsDateAndTimeInputType):
36634         Initialize m_spinButtonElement.
36635         (WebCore::BaseMultipleFieldsDateAndTimeInputType::~BaseMultipleFieldsDateAndTimeInputType):
36636         Reset SpinButtonOwner for m_spinButtonElement like the old code of ~DateTimeEditElement.
36637         (WebCore::BaseMultipleFieldsDateAndTimeInputType::createShadowSubtree):
36638         Put a SpinButtonElement between the DateTimeEditElement and the PickerIndicatorElement.
36639         (WebCore::BaseMultipleFieldsDateAndTimeInputType::forwardEvent):
36640         Take care of SpinButtonElement.
36641         (WebCore::BaseMultipleFieldsDateAndTimeInputType::disabledAttributeChanged):
36642         Release capture of SpinButtonElement. This corresponds to the old
36643         code of DateTimeEditElement::updateUIState.
36644         (WebCore::BaseMultipleFieldsDateAndTimeInputType::readonlyAttributeChanged): Ditto.
36645
36646         * html/TextFieldInputType.h:
36647         Make SpinButtonElement::SpinButtonOwner protected to allow overriding.
36648
36649         * html/shadow/DateTimeEditElement.h:
36650         (DateTimeEditElement): Remove SpniButtonOwner implementation,
36651         m_spinButton, and rename some functions.
36652         * html/shadow/DateTimeEditElement.cpp:
36653         (WebCore::DateTimeEditElement::DateTimeEditElement):
36654         Remove m_spinButton.
36655         (WebCore::DateTimeEditElement::~DateTimeEditElement): Ditto.
36656         (WebCore::DateTimeEditElement::focusIfNoFocus):
36657         Renamed from focusAndSelectSpinButtonOwner. This is called
36658         BaseMultipleFieldsDateAndTimeInputType::focusAndSelectSpinButtonOwner.
36659         (WebCore::DateTimeEditElement::layout):
36660         Remove creation code for -webkit-datetime-edit-gap and SpinButtonElement.
36661         (WebCore::DateTimeEditElement::defaultEventHandler):
36662         Move the code for m_spinButton to
36663         BaseMultipleFieldsDateAndTimeInputType::forwardEvent.
36664         (WebCore::DateTimeEditElement::hasFocusedField): A helper for
36665         BaseMultipleFieldsDateAndTimeInputType::shouldSpinButtonRespondToWheelEvents.
36666         (WebCore::DateTimeEditElement::stepDown): A helper for
36667         BaseMultipleFieldsDateAndTimeInputType::spinButtonStepDown.
36668         (WebCore::DateTimeEditElement::stepUp): A helper for
36669         BaseMultipleFieldsDateAndTimeInputType::spinButtonStepUp.
36670         (WebCore::DateTimeEditElement::updateUIState): Move the code to
36671         BaseMultipleFieldsDateAndTimeInputType::disabledAttributeChanged
36672         and readonlyAttributeChanged.
36673
36674 2012-10-23  Andreas Kling  <kling@webkit.org>
36675
36676         Shrink immutable ElementAttributeData and StylePropertySet by one pointer each.
36677         <http://webkit.org/b/100123>
36678
36679         Reviewed by Anders Carlsson.
36680
36681         Remove one pointer of unintentional padding in the immutable versions of these objects.
36682         583kB progression on Membuster3.
36683
36684         * css/StylePropertySet.cpp:
36685         (WebCore::immutableStylePropertySetSize):
36686         * dom/ElementAttributeData.cpp:
36687         (WebCore::immutableElementAttributeDataSize):
36688
36689 2012-10-23  Nate Chapin  <japhet@chromium.org>
36690
36691         Crash in WebCore::SubresourceLoader::willSendRequest.
36692         https://bugs.webkit.org/show_bug.cgi?id=100147
36693
36694         Reviewed by Abhishek Arya.
36695
36696         No new tests. There is a test case that should cover this, but it doesn't
36697         work correctly on many platforms due to its use of testRunner.addURLToRedirect().
36698         See http/tests/loading/cross-origin-XHR-willLoadRequest.html.
36699         Tested manually on http://www.nick.co.uk/shows/spongebob
36700
36701         * loader/SubresourceLoader.cpp:
36702         (WebCore::SubresourceLoader::willSendRequest):
36703
36704 2012-10-23  Martin Robinson  <mrobinson@igalia.com>
36705
36706         [GTK][Soup] Implement the default authentication dialog via WebCoreSupport
36707         https://bugs.webkit.org/show_bug.cgi?id=99351
36708
36709         Reviewed by Carlos Garcia Campos.
36710
36711         Instead of connecting to the SoupSession::authenticate signal in the API layer
36712         via a SoupSessionFeature, route the message through the typical WebCore authentication
36713         mechanism. This is a step on the path to having full-blown support for authentication
36714         in the API allowing for custom authentication dialogs and behavior in clients.
36715
36716         No new tests. This should not change behavior.
36717
36718         * GNUmakefile.list.am: Add the new implementation file for the AuthenticationChallenge.
36719         * loader/ResourceLoader.cpp:
36720         (WebCore::ResourceLoader::didReceiveAuthenticationChallenge): Include GTK+ here as well.
36721         * platform/gtk/GtkAuthenticationDialog.cpp: Instead of carrying a raw pointer to a SoupAuth
36722         carry a GRefPtr which will allow the dialog to be used even after the AuthenticationChallenge
36723         is destroyed.
36724         * platform/gtk/GtkAuthenticationDialog.h: ditto.
36725         * platform/network/ResourceHandle.h: Add a didReceiveAuthenticationChallenge method.
36726         * platform/network/ResourceHandleInternal.h:
36727         (ResourceHandleInternal): Remove the getter for the initiating page ID.
36728         * platform/network/soup/AuthenticationChallenge.h: Added an implementation of AuthenticationChallenge
36729         that takes a bit of data from the handle including SoupMessage, SoupAuth, and SoupSession.
36730         * platform/network/soup/AuthenticationChallengeSoup.cpp: Added. Ditto.
36731         * platform/network/soup/ResourceError.h:
36732         (ResourceError): Added a factory for authentication errors.
36733         * platform/network/soup/ResourceErrorSoup.cpp: Ditto.
36734         * platform/network/soup/ResourceHandleSoup.cpp:
36735         (WebCore::setSoupRequestInitiaingPageID): Just get the page directly from the NetworkingContext.
36736         (WebCore::createSoupMessageForHandleAndRequest): Always set the "handle" data on the message.
36737         It's always used now.
36738         (WebCore::ResourceHandle::start): Get the initiating page ID directly from the NetworkingContext.
36739         (WebCore::ResourceHandle::didReceiveAuthenticationChallenge): Added this method which routes
36740         the authentication challenge to the client.
36741         (WebCore::ResourceHandle::receivedRequestToContinueWithoutCredential): Added a stub for this method.
36742         (WebCore::ResourceHandle::loadResourceSynchronously): Don't pass the session to the loader.
36743         (WebCore::authenicateCallback): Added.
36744         (WebCore::ResourceHandle::defaultSession): Connect the authenticate callback.
36745
36746 2012-10-23  Adam Barth  <abarth@webkit.org>
36747
36748         [V8] Simplify GCEpilogueVisitor along the same lines as GCPrologueVisitor
36749         https://bugs.webkit.org/show_bug.cgi?id=100157
36750
36751         Reviewed by Eric Seidel.
36752
36753         This patch removes the traits template parameter from GCEpilogueVisitor
36754         and makes it mirror GCPrologueVisitor again.
36755
36756         * bindings/v8/V8GCController.cpp:
36757         (WebCore):
36758         (ActiveDOMObjectEpilogueVisitor):
36759         (WebCore::ActiveDOMObjectEpilogueVisitor::ActiveDOMObjectEpilogueVisitor):
36760         (WebCore::ActiveDOMObjectEpilogueVisitor::visitDOMWrapper):
36761         (WebCore::V8GCController::majorGCEpilogue):
36762
36763 2012-10-23  Varun Jain  <varunjain@chromium.org>
36764
36765         Context menu generated from touch gestures on textareas has
36766         context of the cursor position instead of the position where the event occurs.
36767         https://bugs.webkit.org/show_bug.cgi?id=99520
36768
36769         Reviewed by Kenneth Rohde Christiansen.
36770
36771         Send a synthetic mouse down event for context menu-summoning-gesture events so
36772         that textareas can correctly set cursors before receiving the context menu event.
36773
36774         Test: fast/events/touch/gesture/right-click-gestures-set-cursor-at-correct-position.html
36775
36776         * page/EventHandler.cpp:
36777         (WebCore::EventHandler::handleGestureEvent):
36778         (WebCore::EventHandler::handleGestureTwoFingerTap):
36779         (WebCore):
36780         (WebCore::EventHandler::sendContextMenuEventForGesture):
36781         * page/EventHandler.h:
36782         (EventHandler):
36783
36784 2012-10-23  Andy Estes  <aestes@apple.com>
36785
36786         [WebKit2 API] Add properties to get textRects from a WKDOMRange or WKDOMNode
36787         https://bugs.webkit.org/show_bug.cgi?id=100162
36788
36789         Reviewed by Sam Weinig.
36790
36791         * WebCore.exp.in: Exported symbols needed by WebKit2.
36792         * bindings/objc/DOM.mm:
36793         (-[DOMNode textRects]): Moved some logic into Node::textRects()
36794         (everything but the call to updateLayoutIgnorePendingStylesheets()).
36795         * dom/Node.cpp:
36796         (WebCore::Node::textRects):
36797         * dom/Node.h:
36798
36799 2012-10-23  Adam Barth  <abarth@webkit.org>
36800
36801         [V8] Remove unused function from DOM wrapper visitor
36802         https://bugs.webkit.org/show_bug.cgi?id=100163
36803
36804         Reviewed by Eric Seidel.
36805
36806         No one overrides these virtual functions. They were added in
36807         http://trac.webkit.org/changeset/73491, but we don't use them in the GC
36808         controller anymore.
36809
36810         * bindings/v8/V8DOMMap.h:
36811         (WebCore::WeakReferenceMap::visit):
36812
36813 2012-10-23  Aaron Colwell  <acolwell@chromium.org>
36814
36815         Clear m_mediaSource reference when the MediaSource is closed
36816         https://bugs.webkit.org/show_bug.cgi?id=100047
36817
36818         Reviewed by Eric Carlson.
36819
36820         The m_mediaSource object shouldn't be accessed after the object
36821         transitions to closed so this change simply clears the reference
36822         when that transition happens.
36823
36824         No new tests because the change isn't visible to JavaScript.
36825
36826         * html/HTMLMediaElement.cpp:
36827         (WebCore::HTMLMediaElement::loadResource): Removed a closed transition that is actually dead code.
36828         (WebCore::HTMLMediaElement::setSourceState): Clear the m_mediaSource reference on closed transition.
36829
36830 2012-10-23  Simon Fraser  <simon.fraser@apple.com>
36831
36832         Allow tests to run with a tile cache, and optionally dump the tile cache via layerTreeAsText()
36833         https://bugs.webkit.org/show_bug.cgi?id=100159
36834
36835         Reviewed by Tim Horton.
36836
36837         Add a LAYER_TREE_INCLUDES_PAGE_TILE_CACHE flag for layerTreeAsText(), and plumb it
36838         through to GraphicsLayerCA, which dumps the TiledBacking tile coverage rect.
36839
36840         Test: platform/mac/tiled-drawing/use-tiled-drawing.html
36841
36842         * page/Frame.h:
36843         * platform/graphics/GraphicsLayer.cpp:
36844         (showGraphicsLayerTree):
36845         * platform/graphics/GraphicsLayer.h:
36846         (WebCore::GraphicsLayer::tiledBacking):
36847         * platform/graphics/TiledBacking.h:
36848         * platform/graphics/ca/GraphicsLayerCA.cpp:
36849         (WebCore::GraphicsLayerCA::tiledBacking):
36850         (WebCore::GraphicsLayerCA::dumpAdditionalProperties):
36851         * platform/graphics/ca/GraphicsLayerCA.h:
36852         (GraphicsLayerCA):
36853         * platform/graphics/ca/mac/TileCache.h:
36854         (WebCore::TileCache::tileCoverageRect):
36855         (TileCache):
36856         * platform/graphics/ca/mac/TileCache.mm:
36857         (WebCore::TileCache::computeTileCoverageRect):
36858         (WebCore::TileCache::revalidateTiles):
36859         * rendering/RenderLayerCompositor.cpp:
36860         (WebCore::RenderLayerCompositor::layerTreeAsText):
36861         * testing/Internals.cpp:
36862         (WebCore::Internals::layerTreeAsText):
36863         * testing/Internals.h:
36864         * testing/Internals.idl:
36865
36866 2012-10-23  No'am Rosenthal  <noam.rosenthal@nokia.com>
36867
36868         Coordinated Graphics: Enable threaded/IPC animations
36869         https://bugs.webkit.org/show_bug.cgi?id=93146
36870
36871         Reviewed by Kenneth Rohde Christiansen.
36872
36873         Add enablers to TextureMapper and GraphicsLayerAnimation so that they could be used
36874         across processes with IPC. Added some public accessors to GraphicsLayerAnimation,
36875         and allowed a GraphicsLayerTextureMapper to receive a full list of animations.
36876
36877         Covered by existing animation and compositing tests.
36878
36879         * platform/graphics/GraphicsLayerAnimation.cpp:
36880         (WebCore::GraphicsLayerAnimation::GraphicsLayerAnimation):
36881             Initialize the animation with the startTime instead of the offset.
36882
36883         (WebCore::GraphicsLayerAnimations::getActiveAnimations):
36884         * platform/graphics/GraphicsLayerAnimation.h:
36885         (WebCore::GraphicsLayerAnimation::setState):
36886             Allow setting the pause time as well.
36887
36888         (WebCore::GraphicsLayerAnimation::boxSize):
36889         (WebCore::GraphicsLayerAnimation::startTime):
36890         (WebCore::GraphicsLayerAnimation::pauseTime):
36891         (WebCore::GraphicsLayerAnimation::animation):
36892         (WebCore::GraphicsLayerAnimation::keyframes):
36893         (WebCore::GraphicsLayerAnimation::listsMatch):
36894         (WebCore::GraphicsLayerAnimations::size):
36895         (WebCore::GraphicsLayerAnimations::animations):
36896             Add public accessors to GraphicsLayerAnimation properties.
36897
36898         (GraphicsLayerAnimation):
36899         (GraphicsLayerAnimations):
36900         * platform/graphics/texmap/GraphicsLayerTextureMapper.cpp:
36901         (WebCore::GraphicsLayerTextureMapper::addAnimation):
36902         (WebCore::GraphicsLayerTextureMapper::setAnimations):
36903             Allow replacing the entire list of animations.
36904
36905         (WebCore):
36906         * platform/graphics/texmap/GraphicsLayerTextureMapper.h:
36907         (GraphicsLayerTextureMapper):
36908         * platform/graphics/texmap/TextureMapperLayer.cpp:
36909         (WebCore::TextureMapperLayer::applyAnimationsRecursively):
36910         (WebCore):
36911         * platform/graphics/texmap/TextureMapperLayer.h:
36912         (TextureMapperLayer):
36913
36914 2012-10-23  Chris Rogers  <crogers@google.com>
36915
36916         Change setTargetValueAtTime() to setTargetAtTime()
36917         https://bugs.webkit.org/show_bug.cgi?id=100153
36918
36919         Reviewed by Adam Barth.
36920
36921         The AudioParam method name has changed due to Web Audio API spec review.
36922         Keep legacy support for the old name.
36923
36924         Test: webaudio/audioparam-setTargetAtTime.html
36925
36926         * Modules/webaudio/AudioParam.h:
36927         (WebCore::AudioParam::setTargetAtTime):
36928         * Modules/webaudio/AudioParam.idl:
36929         * Modules/webaudio/AudioParamTimeline.cpp:
36930         (WebCore::AudioParamTimeline::setTargetAtTime):
36931         (WebCore::AudioParamTimeline::valuesForTimeRangeImpl):
36932         * Modules/webaudio/AudioParamTimeline.h:
36933         (AudioParamTimeline):
36934
36935 2012-10-23  Benjamin Poulain  <benjamin@webkit.org>
36936
36937         [Mac] Remove extraneous conversion to String->NSString
36938         https://bugs.webkit.org/show_bug.cgi?id=100044
36939
36940         Reviewed by Darin Adler.
36941
36942         Improve some unfortunate use of String->NSString.
36943
36944         * accessibility/mac/AXObjectCacheMac.mm:
36945         (WebCore::AXObjectCache::postPlatformNotification): The variable macNotification is ultimately
36946         needed as NSString, and all its value are or can be NSString.
36947         Convert the last 3 char* values to NSString literal and use NSString* all the way.
36948
36949         * loader/mac/LoaderNSURLExtras.h:
36950         * loader/mac/LoaderNSURLExtras.mm:
36951         (suggestedFilenameWithMIMEType):
36952         We converted the String to NSString to pass to suggestedFilenameWithMIMEType. There is no need
36953         for the string to be a NSSTring there, we can leave it in its original type.
36954
36955         The case checking for a nil MIMEType was dead code because the implicit conversion never returns nil.
36956
36957         * platform/mac/DragImageMac.mm:
36958         (WebCore::createDragImageForLink):
36959         Use String's nsStringNilIfEmpty().
36960
36961         * platform/mac/HTMLConverter.mm:
36962         (-[WebHTMLConverter _addAttachmentForElement:URL:needsParagraph:usePlaceholder:]):
36963         Fix the coding style. Do the conversion to NSString only when needed.
36964
36965 2012-10-23  Roger Fong  <roger_fong@apple.com>
36966
36967         [Win] Popup menus positioning needs to take multiple monitors into account.
36968         https://bugs.webkit.org/show_bug.cgi?id=100158
36969
36970         Reviewed by Timothy Horton.
36971
36972         Add screen.x() to repositioning check to account for position of current monitor.
36973
36974         * platform/win/PopupMenuWin.cpp:
36975         (WebCore::PopupMenuWin::calculatePositionAndSize):
36976
36977 2012-10-23  Huang Dongsung  <luxtella@company100.net>
36978
36979         [CSS Shaders] Set FilterOperations on GraphicsLayer after the program of CSS Shaders is loaded.
36980         https://bugs.webkit.org/show_bug.cgi?id=99908
36981
36982         Reviewed by Dean Jackson.
36983
36984         CSS Shaders can not render anything until the program is loaded. If there is
36985         partial loaded shaders program, whole FilterOperations chain can not render
36986         anything. It occurs a flash. So We have to wait until the program is loaded, to
36987         prevent a flash as RenderLayerBacking::updateImageContents() waits until an
36988         image is fully loaded.
36989
36990         No new tests, CSS Shaders on Accelerated Compositing are not activated yet.
36991
36992         * rendering/RenderLayerBacking.cpp:
36993         (WebCore::RenderLayerBacking::updateFilters):
36994
36995 2012-10-23  Elliott Sprehn  <esprehn@chromium.org>
36996
36997         Generated should not be supported for things with a shadow
36998         https://bugs.webkit.org/show_bug.cgi?id=98836
36999
37000         Reviewed by Dimitri Glazkov.
37001
37002         As far as CSS is concerned inputs and things with shadow content inside
37003         shouldn't support pseudo elements like :before, :after or :first-letter.
37004         Neither Gecko or Presto supports it, and we only accidentally supported
37005         it.
37006
37007         Until the spec tells us what to do we should disable support. This is
37008         also neccesary because the new generated content implementation doesn't
37009         support shadows.
37010
37011         Test: fast/forms/pseudo-elements.html
37012
37013         * rendering/RenderBlock.cpp:
37014         (WebCore::RenderBlock::updateFirstLetter):
37015         * rendering/RenderListBox.h: Added missing canHaveGeneratedChildren() that returns false.
37016         * rendering/RenderObjectChildList.cpp:
37017         (WebCore::RenderObjectChildList::updateBeforeAfterContent):
37018
37019 2012-10-23  Huang Dongsung  <luxtella@company100.net>
37020
37021         [CSS Shaders] Implement overlay, color-dodge, color-burn, hard-light, soft-light blend modes.
37022         https://bugs.webkit.org/show_bug.cgi?id=98504
37023
37024         Reviewed by Dean Jackson.
37025
37026         Add expressions for the aforementioned blend modes. The expressions are lifted
37027         directly from the CSS Compositing and Blending spec [1]. WebKit adds these
37028         blending expressions to the author's shader.
37029
37030         [1]: https://dvcs.w3.org/hg/FXTF/rawfile/tip/compositing/index.html#blendingnormal
37031
37032         Test: css3/filters/custom/custom-filter-blend-modes.html
37033
37034         * platform/graphics/filters/CustomFilterValidatedProgram.cpp:
37035         (WebCore::CustomFilterValidatedProgram::rewriteMixFragmentShader):
37036         (WebCore::CustomFilterValidatedProgram::blendFunctionString):
37037
37038 2012-10-23  Huang Dongsung  <luxtella@company100.net>
37039
37040         [CSS Shaders] Implement all composite operators except destination and lighter.
37041         https://bugs.webkit.org/show_bug.cgi?id=97859
37042
37043         Reviewed by Dean Jackson.
37044
37045         Add expressions for all composite operators except destination and
37046         lighter. The expressions are lifted directly from the CSS Compositing
37047         and Blending spec [1]. WebKit adds these compositing expressions to the
37048         author's shader.
37049
37050         [1]: https://dvcs.w3.org/hg/FXTF/rawfile/tip/compositing/index.html#advancedcompositing
37051
37052         Test: css3/filters/custom/custom-filter-composite-operators.html
37053
37054         * platform/graphics/filters/CustomFilterCompiledProgram.cpp:
37055         (WebCore::CustomFilterCompiledProgram::initializeParameterLocations):
37056             Remove ASSERTION checking if glGetUniformLocation returns negative,
37057             because ASSERTION can fail with clear and copy composite operations.
37058             Clear and copy composite operations do not need "css_u_texture"
37059             representing the DOM element texture. If the driver compiler is
37060             smart, "css_u_texture" is not regarded as an active uniform, so
37061             glGetuniformLocation returns -1. glGetAttribLocation ditto.
37062         * platform/graphics/filters/CustomFilterValidatedProgram.cpp:
37063         (WebCore::CustomFilterValidatedProgram::compiledProgram):
37064             Move the above ASSERTION in CustomFilterCompiledProgram to here.
37065             ASSERTION checks if m_samplerLocation is not -1 when the author
37066             shader needs an input texture.
37067         (WebCore::CustomFilterValidatedProgram::needsInputTexture):
37068         (WebCore):
37069         (WebCore::CustomFilterValidatedProgram::compositeFunctionString):
37070         * platform/graphics/filters/CustomFilterValidatedProgram.h:
37071         (CustomFilterValidatedProgram):
37072
37073 2012-10-23  Max Vujovic  <mvujovic@adobe.com>
37074
37075         [CSS Shaders] Changing the blend mode in CSS doesn't update the custom filter rendering
37076         https://bugs.webkit.org/show_bug.cgi?id=99887
37077
37078         Reviewed by Dirk Schulze.
37079
37080         Before this patch, WebKit would not recompute an element's style when just its custom filter
37081         blend mode changed.
37082
37083         For example, suppose an element initially has the style:
37084         -webkit-filter: custom(none mix(url(shader.fs) multiply source-atop));
37085
37086         Then, we change the blend mode from "multiply" to "normal":
37087         -webkit-filter: custom(none mix(url(shader.fs) normal source-atop));
37088
37089         WebKit now detects this change and recomputes the style.
37090
37091         CustomFilterProgram now has an equals operator that considers the program type and the mix
37092         settings. The mix settings contain the blend mode.
37093
37094         Test: css3/filters/custom/custom-filter-change-blend-mode.html
37095
37096         * platform/graphics/filters/CustomFilterProgram.cpp:
37097         (WebCore::CustomFilterProgram::operator==):
37098             Previously, the equals operator was pure virtual in CustomFilterProgram. Now,
37099             CustomFilterProgram implements it and compares the program type and mix settings, if
37100             appropriate.
37101         (WebCore):
37102         * platform/graphics/filters/CustomFilterProgram.h:
37103         * platform/graphics/filters/CustomFilterProgramInfo.cpp:
37104         (WebCore::CustomFilterProgramInfo::hash):
37105             Refactor a repeated condition into a boolean to improve readability.
37106         (WebCore::CustomFilterProgramInfo::operator==):
37107             Refactor repeated conditions to improve readability. Reorder the conditions so the less
37108             expensive ones occur first.
37109         * rendering/style/StyleCustomFilterProgram.h:
37110         (WebCore::StyleCustomFilterProgram::operator==):
37111             Call the base class's equals operator.
37112
37113 2012-10-23  David Barton  <dbarton@mathscribe.com>
37114
37115         [MathML] Symbol font uses greek letters for roman ones on linux and Windows
37116         https://bugs.webkit.org/show_bug.cgi?id=99921
37117
37118         Reviewed by Eric Seidel.
37119
37120         For parts of stretched parentheses and brackets, mathml.css currently uses the Symbol font,
37121         which on linux and Windows has greek letters at roman code points. To fix this, we switch
37122         to the STIXSizeOneSym font when available. However, this can cause vertical gaps between
37123         glyph parts, because of hard-coded constants in RenderMathMLOperator.cpp. We eliminate all
37124         these constants. We also shift glyphs upward by 1px and truncate them to avoid the gaps.
37125
37126         Tested by existing tests, and one test added to LayoutTests/mathml/presentation/mo.xhtml.
37127
37128         * css/mathml.css:
37129         (math, mfenced > *):
37130             - Set font-family for mn, mi, etc.
37131         (mo, mfenced):
37132             - Set font-family for mo and anonymous operators, including extension glyphs for
37133               stretched operators like parentheses and brackets.
37134         (math):
37135         * rendering/mathml/RenderMathMLOperator.cpp:
37136         (WebCore):
37137             - Change 0x23d0 to 0x23aa for STIX & Cambria Math fonts.
37138         (WebCore::RenderMathMLOperator::glyphHeightForCharacter):
37139         (WebCore::RenderMathMLOperator::updateFromElement):
37140         (WebCore::RenderMathMLOperator::createStackableStyle):
37141             - Eliminate unused lineHeight and topRelative parameters, and the hard-coded font size
37142               of 14.
37143         (WebCore::RenderMathMLOperator::createGlyph):
37144             - Eliminate unused lineHeight and topRelative parameters.
37145         * rendering/mathml/RenderMathMLOperator.h:
37146         (RenderMathMLOperator):
37147
37148 2012-10-23  Benjamin Poulain  <benjamin@webkit.org>
37149
37150         WTFURL: Implement KURL::setPort()
37151         https://bugs.webkit.org/show_bug.cgi?id=99898
37152
37153         Reviewed by Adam Barth.
37154
37155         * platform/KURLWTFURL.cpp:
37156         (WebCore::KURL::setPort):
37157
37158 2012-10-23  Nico Weber  <thakis@chromium.org>
37159
37160         In the open-source jpeg decoder, read image orientation from the exif data
37161         https://bugs.webkit.org/show_bug.cgi?id=100144
37162
37163         Reviewed by Eric Seidel.
37164
37165         This will be used to implement the shouldRespectImageOrientation
37166         setting (see bug 19688). Currently this isn't hooked up anywhere, so
37167         it has no observable effect for now.
37168
37169         Once it's hooked up, it will be tested by
37170         fast/images/exif-orientation.html
37171
37172         * platform/graphics/BitmapImage.h:
37173         * platform/image-decoders/ImageDecoder.h:
37174         (WebCore::ImageDecoder::orientation):
37175         (ImageDecoder):
37176         * platform/image-decoders/jpeg/JPEGImageDecoder.cpp:
37177         (WebCore::readUint16):
37178         (WebCore):
37179         (WebCore::readUint32):
37180         (WebCore::checkExifHeader):
37181         (WebCore::readImageOrientation):
37182         (WebCore::JPEGImageReader::JPEGImageReader):
37183         (WebCore::JPEGImageReader::decode):
37184         * platform/image-decoders/jpeg/JPEGImageDecoder.h:
37185         (WebCore::JPEGImageDecoder::setOrientation):
37186
37187 2012-10-23  Chris Rogers  <crogers@google.com>
37188
37189         Fix thread safety issue in AudioParamTimeline
37190         https://bugs.webkit.org/show_bug.cgi?id=100154
37191
37192         Reviewed by Kenneth Russell.
37193
37194         Add appropriate locking in AudioParamTimeline::valueForContextTime()
37195
37196         * Modules/webaudio/AudioParamTimeline.cpp:
37197         (WebCore::AudioParamTimeline::valueForContextTime):
37198
37199 2012-10-23  Alec Flett  <alecflett@chromium.org>
37200
37201         IndexedDB: refactor backend to use IDB*Metadata
37202         https://bugs.webkit.org/show_bug.cgi?id=100055
37203
37204         Reviewed by Tony Chang.
37205
37206         This further encapsulates the static data in
37207         IDBObjectStoreBackendImpl and IDBIndexBackendImp into their
37208         respective IDB*Metadata structs, in preparation for
37209         https://bugs.webkit.org/show_bug.cgi?id=99774.
37210
37211         No new tests as this is purely a refactor.
37212
37213         * Modules/indexeddb/IDBBackingStore.h:
37214         (IDBBackingStore):
37215         * Modules/indexeddb/IDBDatabaseBackendImpl.cpp:
37216         (WebCore::IDBDatabaseBackendImpl::createObjectStore):
37217         (WebCore::IDBDatabaseBackendImpl::loadObjectStores):
37218         * Modules/indexeddb/IDBIndexBackendImpl.cpp:
37219         (WebCore::IDBIndexBackendImpl::IDBIndexBackendImpl):
37220         (WebCore::IDBIndexBackendImpl::metadata):
37221         * Modules/indexeddb/IDBIndexBackendImpl.h:
37222         (WebCore::IDBIndexBackendImpl::create):
37223         (WebCore::IDBIndexBackendImpl::id):
37224         (WebCore::IDBIndexBackendImpl::setId):
37225         (WebCore::IDBIndexBackendImpl::hasValidId):
37226         (WebCore::IDBIndexBackendImpl::name):
37227         (WebCore::IDBIndexBackendImpl::keyPath):
37228         (WebCore::IDBIndexBackendImpl::unique):
37229         (WebCore::IDBIndexBackendImpl::multiEntry):
37230         (IDBIndexBackendImpl):
37231         * Modules/indexeddb/IDBLevelDBBackingStore.cpp:
37232         (WebCore::IDBLevelDBBackingStore::getObjectStores):
37233         (WebCore::IDBLevelDBBackingStore::getIndexes):
37234         * Modules/indexeddb/IDBLevelDBBackingStore.h:
37235         (IDBLevelDBBackingStore):
37236         * Modules/indexeddb/IDBMetadata.h:
37237         (WebCore::IDBObjectStoreMetadata::IDBObjectStoreMetadata):
37238         * Modules/indexeddb/IDBObjectStoreBackendImpl.cpp:
37239         (WebCore::IDBObjectStoreBackendImpl::IDBObjectStoreBackendImpl):
37240         (WebCore::IDBObjectStoreBackendImpl::metadata):
37241         (WebCore::IDBObjectStoreBackendImpl::setIndexKeys):
37242         (WebCore::IDBObjectStoreBackendImpl::putInternal):
37243         (WebCore::IDBObjectStoreBackendImpl::createIndex):
37244         (WebCore::IDBObjectStoreBackendImpl::loadIndexes):
37245         * Modules/indexeddb/IDBObjectStoreBackendImpl.h:
37246         (WebCore::IDBObjectStoreBackendImpl::create):
37247         (WebCore::IDBObjectStoreBackendImpl::id):
37248         (WebCore::IDBObjectStoreBackendImpl::setId):
37249         (WebCore::IDBObjectStoreBackendImpl::name):
37250         (WebCore::IDBObjectStoreBackendImpl::keyPath):
37251         (WebCore::IDBObjectStoreBackendImpl::autoIncrement):
37252         (IDBObjectStoreBackendImpl):
37253
37254 2012-10-19  Roger Fong  <roger_fong@apple.com>
37255
37256         [WebGL] conformance/textures/texture-size.html is failing on Apple Mountain Lion
37257         https://bugs.webkit.org/show_bug.cgi?id=94041
37258
37259         Reviewed by Dean Jackson.
37260
37261         When binding a texture to GL_TEXTURE_2D when GL_ACTIVE_TEXTURE is 0, we set m_boundTexture0 to the texture unit. 
37262         However when we delete the texture, we need to be setting m_boundTexture0 to 0.
37263         Otherwise when we draw to the screen we bind m_boundTexture0 in the prepareTexture() method and since the associated texture 
37264         has already been deleted we end up in an error state.
37265
37266         Tested using Khronos WebGL conformance suite:
37267         conformance/textures/texture-size.html
37268
37269         * platform/graphics/opengl/GraphicsContext3DOpenGLCommon.cpp:
37270         (WebCore::GraphicsContext3D::deleteTexture):
37271
37272 2012-10-22  Dirk Schulze  <krit@webkit.org>
37273
37274         BasicShapePolygon::path takes width instead of height for boundary calculation
37275         https://bugs.webkit.org/show_bug.cgi?id=99919
37276
37277         Reviewed by Darin Adler.
37278
37279         The 'y' parameters of polygon were calculated by the with of the bounding box of the object.
37280         This caused problems on percentage values for point positions. 
37281         Changed it to the height of the bounding box.
37282
37283         Test: css3/masking/clip-path-polygon-percentage.html
37284
37285         * rendering/style/BasicShapes.cpp:
37286         (WebCore::BasicShapePolygon::path):
37287
37288 2012-10-23  Dominik Röttsches  <dominik.rottsches@intel.com>
37289
37290         Add timeout support to XMLHttpRequest
37291         https://bugs.webkit.org/show_bug.cgi?id=74802
37292
37293         Reviewed by Nate Chapin.
37294
37295         An implementation of XHR2 timeouts by using ResourceRequest's setTimeoutInterval.
37296         This made several changes necessary in CachedResource and SubresourceLoader in order
37297         to distinguish and forward the timeout case from there.
37298
37299         The case of late updates to the timeout property, changing the timeout value after send()
37300         is not supported yet and handled separately in bug 98156.
37301
37302         XHR2 timeout tests were initially written by Mozilla's Alex Vincent's. He granted
37303         permission to reuse them under PD/BSD license
37304         in https://bugzilla.mozilla.org/show_bug.cgi?id=525816#c86 - big thanks!
37305         I adapted them for W3C testharness.js and split them into groups with shorter test running time
37306         so that they can be used as WebKit layout tests.
37307
37308         Tests: http/tests/xmlhttprequest/timeout/xmlhttprequest-timeout-aborted.html
37309                http/tests/xmlhttprequest/timeout/xmlhttprequest-timeout-abortedonmain.html
37310                http/tests/xmlhttprequest/timeout/xmlhttprequest-timeout-overridesexpires.html
37311                http/tests/xmlhttprequest/timeout/xmlhttprequest-timeout-simple.html
37312                http/tests/xmlhttprequest/timeout/xmlhttprequest-timeout-synconmain.html
37313                http/tests/xmlhttprequest/timeout/xmlhttprequest-timeout-twice.html
37314                http/tests/xmlhttprequest/timeout/xmlhttprequest-timeout-worker-aborted.html
37315                http/tests/xmlhttprequest/timeout/xmlhttprequest-timeout-worker-overridesexpires.html
37316                http/tests/xmlhttprequest/timeout/xmlhttprequest-timeout-worker-simple.html
37317                http/tests/xmlhttprequest/timeout/xmlhttprequest-timeout-worker-synconworker.html
37318                http/tests/xmlhttprequest/timeout/xmlhttprequest-timeout-worker-twice.html
37319
37320         * loader/DocumentThreadableLoader.cpp:
37321         (WebCore::DocumentThreadableLoader::notifyFinished): Forward information about timeout case.
37322         * loader/SubresourceLoader.cpp:
37323         (WebCore::SubresourceLoader::didFail): Distinguish timeout case when informing client.
37324         * loader/cache/CachedResource.h: Distinguishing timeout case for errors.
37325         (WebCore::CachedResource::errorOccurred):
37326         (WebCore::CachedResource::loadFailedOrCanceled):
37327         (WebCore::CachedResource::timedOut):
37328         * xml/XMLHttpRequest.cpp:
37329         (WebCore::XMLHttpRequest::XMLHttpRequest): Initializing m_timeout value to zero.
37330         (WebCore::XMLHttpRequest::setTimeout): Setter function, possibly raising JS exception.
37331         (WebCore):
37332         (WebCore::XMLHttpRequest::open): Open call may raise exception for synchronous requests when timeout value is set.
37333         (WebCore::XMLHttpRequest::createRequest): Assigning timeout value to ResourceRequest.
37334         (WebCore::XMLHttpRequest::didFail): Handling timeout case separately.
37335         (WebCore::XMLHttpRequest::didTimeout): Timeout case state transisition and event firing as spec'ed.
37336         * xml/XMLHttpRequest.h: New event listener, member and callback for handling timeout.
37337         (WebCore::XMLHttpRequest::timeout):
37338         (XMLHttpRequest):
37339         * xml/XMLHttpRequest.idl: New event listener and property added.
37340         * xml/XMLHttpRequestException.cpp:
37341         * xml/XMLHttpRequestException.h: Added an exception value for the timeout case.
37342
37343
37344 2012-10-23  Christophe Dumez  <christophe.dumez@intel.com>
37345
37346         Possible assertion hit in WebCore::HTMLSelectElement::updateListBoxSelection()
37347         https://bugs.webkit.org/show_bug.cgi?id=99967
37348
37349         Reviewed by Tony Chang.
37350
37351         Fix assertion hit in WebCore::HTMLSelectElement::updateListBoxSelection() when
37352         pressing the left mouse button outside a multiselect and then moving the cursor
37353         over the multiselect element while holding the button down.
37354
37355         The issue is that the HTMLSelectElement handler for the mouse move event does
37356         not check if there is a selection before trying to extend the selection.
37357
37358         Test: fast/dom/HTMLSelectElement/select-selectedIndex-noAnchorIndex-crash.html
37359
37360         * html/HTMLSelectElement.cpp:
37361         (WebCore::HTMLSelectElement::listBoxDefaultEventHandler):
37362
37363 2012-10-23  Adam Barth  <abarth@webkit.org>
37364
37365         [V8] ScriptWrappable should hold the wrapper handle directly (Dromaeo/dom-modify and dom-traverse get ~2.5% faster)
37366         https://bugs.webkit.org/show_bug.cgi?id=97974
37367
37368         Reviewed by Eric Seidel.
37369
37370         Previously, we stored a pointer to a handle to a wrapper in Node. That
37371         is an extra layer of indirection that slows down finding the wrapper
37372         for the node. A handle is just a pointer, so we might as we just store
37373         the handle in the Node directly. That speeds up dom-modify and
37374         dom-traverse by about 2.5%.
37375
37376         This change also lets us get rid of the ChunkedTable we were using to
37377         store all the wrappers because they're now stored in the Nodes
37378         directly.
37379
37380         * bindings/scripts/CodeGeneratorV8.pm:
37381         (GenerateHeader):
37382         * bindings/v8/IntrusiveDOMWrapperMap.h:
37383         (WebCore::IntrusiveDOMWrapperMap::IntrusiveDOMWrapperMap):
37384         (WebCore::IntrusiveDOMWrapperMap::get):
37385         (WebCore::IntrusiveDOMWrapperMap::set):
37386         (WebCore::IntrusiveDOMWrapperMap::contains):
37387         (WebCore::IntrusiveDOMWrapperMap::visit):
37388         (WebCore::IntrusiveDOMWrapperMap::removeIfPresent):
37389         (WebCore::IntrusiveDOMWrapperMap::clear):
37390         * bindings/v8/ScriptWrappable.h:
37391         (WebCore::ScriptWrappable::ScriptWrappable):
37392         (WebCore::ScriptWrappable::wrapper):
37393         (WebCore::ScriptWrappable::setWrapper):
37394         (WebCore::ScriptWrappable::disposeWrapper):
37395         (WebCore::ScriptWrappable::reportMemoryUsage):
37396         (ScriptWrappable):
37397         * bindings/v8/V8DOMWrapper.h:
37398         (WebCore::V8DOMWrapper::getCachedWrapper):
37399
37400 2012-10-23  Kentaro Hara  <haraken@chromium.org>
37401
37402         [V8] Replace SetGlobalGCPrologueCallback() with AddGCPrologueCallback()
37403         https://bugs.webkit.org/show_bug.cgi?id=100140
37404
37405         Reviewed by Adam Barth.
37406
37407         SetGlobalGCPrologueCallback() and SetGlobalGCEpilogueCallback()
37408         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)
37409         Instead we should use AddGCPrologueCallback()
37410         and AddGCEpilogueCallback().
37411
37412         No tests. No change in behavior.
37413
37414         * bindings/v8/V8DOMWindowShell.cpp:
37415         (WebCore::initializeV8IfNeeded):
37416         * bindings/v8/V8GCController.cpp:
37417         (WebCore::V8GCController::gcPrologue):
37418         (WebCore):
37419         (WebCore::V8GCController::minorGCPrologue):
37420         (WebCore::V8GCController::majorGCPrologue):
37421         (WebCore::V8GCController::gcEpilogue):
37422         (WebCore::V8GCController::minorGCEpilogue):
37423         (WebCore::V8GCController::majorGCEpilogue):
37424         * bindings/v8/V8GCController.h:
37425         (V8GCController):
37426         * bindings/v8/WorkerContextExecutionProxy.cpp:
37427         (WebCore::WorkerContextExecutionProxy::initIsolate):
37428
37429 2012-10-23  Adam Barth  <abarth@webkit.org>
37430
37431         [V8] Enumerate Nodes via the V8 heap rather than via a list in WebCore
37432         https://bugs.webkit.org/show_bug.cgi?id=100033
37433
37434         Reviewed by Eric Seidel.
37435
37436         This patch changes how we enumerate nodes during garbage collection.
37437         After this patch, we use V8's list of open handles to enumerate node
37438         wrappers rather than using a separate list that we maintain in WebCore
37439         for this purpose. A future patch will remove the list in WebCore for a
37440         DOM performance gain.
37441
37442         * bindings/js/ScriptProfiler.h:
37443         (WebCore):
37444         (WebCore::ScriptProfiler::visitNodeWrappers):
37445         * bindings/scripts/CodeGeneratorV8.pm:
37446         (GenerateToV8Converters):
37447         * bindings/scripts/test/V8/V8TestNode.cpp:
37448         (WebCore::V8TestNode::wrapSlow):
37449         * bindings/v8/IntrusiveDOMWrapperMap.h:
37450         (WebCore::IntrusiveDOMWrapperMap::set):
37451         * bindings/v8/ScriptProfiler.cpp:
37452         (WebCore::ScriptProfiler::visitNodeWrappers):
37453         * bindings/v8/ScriptProfiler.h:
37454         (WebCore):
37455         (ScriptProfiler):
37456         * bindings/v8/V8DOMMap.cpp:
37457         (WebCore::NodeWrapperVisitor::~NodeWrapperVisitor):
37458         (WebCore):
37459         (WebCore::visitAllDOMNodes):
37460         * bindings/v8/V8DOMMap.h:
37461         (WebCore):
37462         (NodeWrapperVisitor):
37463         * bindings/v8/V8DOMWrapper.cpp:
37464         (WebCore::V8DOMWrapper::setJSWrapperForDOMNode):
37465         (WebCore::V8DOMWrapper::setJSWrapperForActiveDOMNode):
37466         * bindings/v8/V8GCController.cpp:
37467         (WebCore::NodeVisitor::visitNodeWrapper):
37468         (WebCore::V8GCController::gcPrologue):
37469         (WebCore::V8GCController::gcEpilogue):
37470         * inspector/BindingVisitors.h:
37471         (WebCore::WrappedNodeVisitor::~WrappedNodeVisitor):
37472         * inspector/InspectorMemoryAgent.cpp:
37473         (WebCore):
37474
37475 2012-10-22  Andrey Kosyakov  <caseq@chromium.org>
37476
37477         Web Inspector: paint rectangles are incorrectly shown in case subframes are present
37478         https://bugs.webkit.org/show_bug.cgi?id=99849
37479
37480         Reviewed by Pavel Feldman.
37481
37482         Move GraphicsContext and paint rectangle from willPaint() to didPaint(), so we don't have
37483         to store them as a state of InspectorPageAgent
37484
37485         * inspector/InspectorInstrumentation.cpp:
37486         (WebCore):
37487         (WebCore::InspectorInstrumentation::willPaintImpl):
37488         (WebCore::InspectorInstrumentation::didPaintImpl):
37489         * inspector/InspectorInstrumentation.h:
37490         (InspectorInstrumentation):
37491         (WebCore::InspectorInstrumentation::willPaint):
37492         (WebCore::InspectorInstrumentation::didPaint):
37493         * inspector/InspectorPageAgent.cpp:
37494         (WebCore::InspectorPageAgent::didPaint):
37495         * inspector/InspectorPageAgent.h:
37496         * inspector/InspectorTimelineAgent.cpp:
37497         (WebCore::InspectorTimelineAgent::willPaint):
37498         (WebCore::InspectorTimelineAgent::didPaint):
37499         * inspector/InspectorTimelineAgent.h:
37500         (InspectorTimelineAgent):
37501         * inspector/TimelineRecordFactory.cpp:
37502         * inspector/TimelineRecordFactory.h:
37503         (TimelineRecordFactory):
37504         * page/FrameView.cpp:
37505         (WebCore::FrameView::paintContents):
37506         * rendering/RenderLayerBacking.cpp:
37507         (WebCore::RenderLayerBacking::paintContents):
37508
37509 2012-10-23  Pavel Feldman  <pfeldman@chromium.org>
37510
37511         Web Inspector: array grouping does not work for arrays with exactly 10000 elements.
37512         https://bugs.webkit.org/show_bug.cgi?id=100131
37513
37514         Reviewed by Vsevolod Vlasov.
37515
37516         Using ceil() - 1 instead of floor() in bucket size calculation.
37517
37518         * inspector/front-end/ObjectPropertiesSection.js:
37519
37520 2012-10-23  Shinya Kawanaka  <shinyak@chromium.org>
37521
37522         The order of resolving distribution in tree composition is wrong.
37523         https://bugs.webkit.org/show_bug.cgi?id=99552
37524
37525         Reviewed by Dimitri Glazkov.
37526
37527         According to the current ShadowDOM spec, we have to resolve <content> first, then resolve <shadow>.
37528         However, the order of resolution is now the mixed tree order of <content> and <shadow>.
37529
37530         Test: fast/dom/shadow/content-reprojection-order.html
37531
37532         * html/shadow/ContentDistributor.cpp:
37533         (WebCore::ContentDistributor::distribute): We should resolve <content> before <shadow>.
37534         Only the first active shadow insertion point can select the rest of contents.
37535         * html/shadow/HTMLContentElement.h:
37536         (HTMLContentElement):
37537         * html/shadow/HTMLShadowElement.cpp:
37538         * html/shadow/HTMLShadowElement.h:
37539         (WebCore::isHTMLShadowElement):
37540         (WebCore):
37541         (WebCore::toHTMLShadowElement):
37542         * html/shadow/InsertionPoint.h:
37543         (InsertionPoint): We don't need doesSelectFromHostChildren() anymore.
37544
37545 2012-10-23  Vsevolod Vlasov  <vsevik@chromium.org>
37546
37547         Web Inspector: Move UISourceCode creation out of mappings to workspace.
37548         https://bugs.webkit.org/show_bug.cgi?id=100092
37549
37550         Reviewed by Pavel Feldman.
37551
37552         Moved uiSourceCode constructor calls out of mappings to workspace.
37553
37554         * inspector/front-end/CompilerScriptMapping.js:
37555         * inspector/front-end/NetworkUISourceCodeProvider.js:
37556         (WebInspector.NetworkUISourceCodeProvider.prototype._parsedScriptSource):
37557         (WebInspector.NetworkUISourceCodeProvider.prototype._addUISourceCode):
37558         * inspector/front-end/ResourceScriptMapping.js:
37559         (WebInspector.ResourceScriptMapping.prototype._deleteOriginalUISourceCodeForScripts):
37560         (WebInspector.ResourceScriptMapping.prototype._deleteTemporaryUISourceCodeForScripts):
37561         (WebInspector.ResourceScriptMapping.prototype._bindUISourceCodeToScripts):
37562         (WebInspector.ResourceScriptMapping.prototype._createUISourceCode):
37563         (WebInspector.ResourceScriptMapping.prototype._getOrCreateTemporaryUISourceCode):
37564         (WebInspector.ResourceScriptMapping.prototype._getOrCreateOriginalUISourceCode):
37565         * inspector/front-end/SASSSourceMapping.js:
37566         (_bindUISourceCode):
37567         * inspector/front-end/ScriptSnippetModel.js:
37568         (WebInspector.ScriptSnippetModel.prototype._addScriptSnippet):
37569         (WebInspector.ScriptSnippetModel.prototype._createUISourceCodeForScript):
37570         * inspector/front-end/Workspace.js:
37571         (WebInspector.Project.prototype.addUISourceCode):
37572         (WebInspector.Project.prototype.removeUISourceCode):
37573         (WebInspector.Workspace.prototype.addTemporaryUISourceCode):
37574         (WebInspector.Workspace.prototype.removeTemporaryUISourceCode):
37575
37576 2012-10-23  Emil A Eklund  <eae@chromium.org>
37577
37578         Remove unnecessary m_layoutDelta[XY]Saturated initialization
37579         https://bugs.webkit.org/show_bug.cgi?id=100018
37580
37581         Reviewed by Julien Chaffraix.
37582         
37583         Remove unnecessary initialization from LayoutState constructor
37584         added in r132105.
37585
37586         No new tests, no change in functionality.
37587
37588         * rendering/LayoutState.cpp:
37589         (WebCore::LayoutState::LayoutState):
37590
37591 2012-10-23  Zeno Albisser  <zeno@webkit.org>
37592
37593         [Texmap] Fix drawTextureRectangleARB after r131485.
37594         https://bugs.webkit.org/show_bug.cgi?id=100133
37595
37596         Consistently rename u_textureSize to u_samplerSize.
37597
37598         Reviewed by Noam Rosenthal.
37599
37600         * platform/graphics/texmap/TextureMapperGL.cpp:
37601         (WebCore::TextureMapperGL::drawTextureRectangleARB):
37602         * platform/graphics/texmap/TextureMapperShaderManager.cpp:
37603         (WebCore::getShaderSpec):
37604         * platform/graphics/texmap/TextureMapperShaderManager.h:
37605         (TextureMapperShaderProgram):
37606
37607 2012-10-23  Mike West  <mkwst@chromium.org>
37608
37609         Web Inspector: 'data:' URLs should be properly trimmed for readability.
37610         https://bugs.webkit.org/show_bug.cgi?id=100083
37611
37612         Reviewed by Pavel Feldman.
37613
37614         We recently landed a patch to trim the middle out of long URLs in
37615         console messages in order to improve readability. That patch didn't
37616         effect 'data:' URLs, as they didn't match the regex in the linkifier.
37617         This patch ensures that 'data:' URLs are properly trimmed down to
37618         size.
37619
37620         This problem came to light while resolving a different, smaller issue:
37621         'image/jpg' wasn't whitelisted as an image MIME type. That trivial fix
37622         is included in this patch.
37623
37624         Test: http/tests/inspector/network/image-as-text-loading-data-url.html
37625
37626         * inspector/front-end/NetworkManager.js:
37627         (WebInspector.NetworkManager):
37628             Adds 'image/jpg' as a valid image type.
37629         * inspector/front-end/ResourceUtils.js:
37630         (WebInspector.linkifyStringAsFragmentWithCustomLinkifier):
37631             Supports 'data:' URLs in the linkifier's regex.
37632
37633 2012-10-23  Mike West  <mkwst@chromium.org>
37634
37635         Web Inspector: Floated anchor element sometimes overlaps following content.
37636         https://bugs.webkit.org/show_bug.cgi?id=100105
37637
37638         Reviewed by Pavel Feldman.
37639
37640         This patch ensures that each console message clears the
37641         potentially-overlapping floated anchor element.
37642
37643         * inspector/front-end/inspector.css:
37644         (#console-prompt):
37645         (.console-message, .console-user-command):
37646             Clear the float, and flip the border from the bottom of the
37647             message to the top. Do the same for the prompt.
37648         (.console-message:first-child):
37649             Ensure that the first message doesn't have a top border.
37650
37651 2012-10-23  Alexander Pavlov  <apavlov@chromium.org>
37652
37653         Web Inspector: Crash when adding a keyframes rule in the Styles pane
37654         https://bugs.webkit.org/show_bug.cgi?id=99826
37655
37656         Reviewed by Pavel Feldman.
37657
37658         The client-supplied selector text is first parsed to make sure it results in a valid style rule selector.
37659
37660         Test: inspector/styles/add-new-rule-invalid-selector.html
37661
37662         * inspector/InspectorStyleSheet.cpp:
37663         (WebCore::createCSSParser):
37664         (WebCore):
37665         (WebCore::InspectorStyle::setPropertyText):
37666         (WebCore::checkStyleRuleSelector):
37667         (WebCore::InspectorStyleSheet::addRule):
37668         (WebCore::InspectorStyleSheet::ensureSourceData):
37669         (WebCore::InspectorStyleSheetForInlineStyle::getStyleAttributeRanges):
37670
37671 2012-10-15  Kenneth Rohde Christiansen  <kenneth@webkit.org>
37672
37673         Add support for resolution media query
37674         https://bugs.webkit.org/show_bug.cgi?id=99077
37675
37676         Reviewed by Antti Koivisto.
37677
37678         Add support for 'resolution' media query feature.
37679
37680         Background info:
37681         http://www.w3.org/blog/CSS/2012/06/14/unprefix-webkit-device-pixel-ratio
37682
37683         Related spec links:
37684         http://www.w3.org/TR/css3-mediaqueries/#resolution (recommendation)
37685         http://www.w3.org/TR/css3-values/#resolution (candidate recommentation)
37686
37687         Add infrastructure to make it testable.
37688
37689         Test: fast/media/mq-resolution.html
37690
37691         * css/CSSParser.cpp:
37692         (WebCore::CSSParser::validUnit):
37693         (WebCore::CSSParser::createPrimitiveNumericValue):
37694         (WebCore::CSSParser::parseValidPrimitive):
37695         (WebCore::CSSParser::detectNumberToken):
37696         * css/CSSParser.h:
37697         * css/CSSPrimitiveValue.cpp:
37698         (WebCore::isValidCSSUnitTypeForDoubleConversion):
37699         (WebCore::unitCategory):
37700         (WebCore::CSSPrimitiveValue::canonicalUnitTypeForCategory):
37701         (WebCore::CSSPrimitiveValue::customCssText):
37702         (WebCore::CSSPrimitiveValue::cloneForCSSOM):
37703         * css/CSSPrimitiveValue.h:
37704
37705             Enable dpi, dpcm and dppx units when RESOLUTION_MEDIA_QUERY
37706             is enabled.
37707
37708         * WebCore.exp.in:
37709
37710             Export the WebCore::Settings setting.
37711
37712         * css/CSSPrimitiveValue.h:
37713         (WebCore::CSSPrimitiveValue::isDotsPerInch):
37714         (WebCore::CSSPrimitiveValue::isDotsPerPixel):
37715         (WebCore::CSSPrimitiveValue::isDotsPerCentimeter):
37716         (CSSPrimitiveValue):
37717
37718             Add function for checking the recently added density types.
37719
37720         * css/MediaFeatureNames.h:
37721         (MediaFeatureNames):
37722
37723             Add support for resolution, min-resolution and max-resolution.
37724
37725         * css/MediaQueryEvaluator.cpp:
37726         (WebCore::compareResolution): Add methods for comparing resolutions.
37727         (WebCore):
37728         (WebCore::resolutionMediaFeatureEval):
37729         (WebCore::min_resolutionMediaFeatureEval):
37730         (WebCore::max_resolutionMediaFeatureEval):
37731
37732             Implement the resolution method evaluation.
37733
37734         * css/MediaQueryExp.cpp:
37735         (WebCore::featureWithValidPositiveDensity):
37736         (WebCore):
37737         (WebCore::featureWithoutValue):
37738         (WebCore::MediaQueryExp::MediaQueryExp):
37739
37740             Hook up resolution with the right pre-checks.
37741
37742        * page/Screen.cpp:
37743         (WebCore::Screen::horizontalDPI):
37744         (WebCore::Screen::verticalDPI):
37745
37746             Check whether an override exists, and if so, uses it.
37747             If not calculate the value given the device scale factor.
37748
37749         * page/Settings.cpp:
37750         (WebCore::Settings::setResolutionOverride):
37751         (WebCore):
37752         * page/Settings.h:
37753         (Settings):
37754         (WebCore::Settings::resolutionOverride):
37755
37756             Add a resolution override to settings.
37757
37758         * testing/InternalSettings.cpp:
37759         (WebCore::InternalSettings::Backup::Backup):
37760         (WebCore::InternalSettings::Backup::restoreTo):
37761         (WebCore::InternalSettings::setResolutionOverride):
37762         (WebCore):
37763         * testing/InternalSettings.h:
37764         (Backup):
37765         (InternalSettings):
37766         * testing/InternalSettings.idl:
37767
37768             Add a new setResolutionOverride method to internals.settings.
37769
37770 2012-10-23  Filip Spacek  <fspacek@rim.com>
37771
37772         [BlackBerry] Improve the use of stencil buffer during compositing
37773         https://bugs.webkit.org/show_bug.cgi?id=100020
37774
37775         We always want to scissor so remove the define.
37776         Only turn stenciling on if needed.
37777
37778         Reviewed by Rob Buis.
37779
37780         Reviewed internally by Arvid Nilsson.
37781
37782         * platform/graphics/blackberry/LayerRenderer.cpp:
37783         (WebCore::LayerRenderer::setViewport):
37784         (WebCore::LayerRenderer::compositeLayers):
37785         (WebCore::LayerRenderer::drawLayersOnSurfaces):
37786         (WebCore::LayerRenderer::compositeLayersRecursive):
37787         (WebCore::LayerRenderer::updateScissorIfNeeded):
37788
37789 2012-10-23  'Pavel Feldman'  <pfeldman@chromium.org>
37790
37791         Not reviewed: kick out non-chromium files from WebCore.gypi.
37792
37793         * WebCore.gypi:
37794
37795 2012-10-23  Alexander Shalamov  <alexander.shalamov@intel.com>
37796
37797         [EFL][WK2] ecore_x should be initialised in WebProcess to avoid re-initialization by PlatformScreenEfl utilities and systemBeep() function
37798         https://bugs.webkit.org/show_bug.cgi?id=100110
37799
37800         Reviewed by Kenneth Rohde Christiansen.
37801
37802         Removed initialization of ecore_x, since it is initialized when process starts.
37803
37804         test: fast/media/*
37805
37806         * platform/efl/PlatformScreenEfl.cpp:
37807         (WebCore::screenDepth):
37808         (WebCore::screenRect):
37809         * platform/efl/SoundEfl.cpp:
37810         (WebCore::systemBeep):
37811
37812 2012-10-23  Adam Klein  <adamk@chromium.org>
37813
37814         Always parse pasted fragments as HTML even on XHTML pages
37815         https://bugs.webkit.org/show_bug.cgi?id=99880
37816
37817         Reviewed by Ojan Vafai.
37818
37819         When pasting HTML into a page, using the XML parser is unlikely
37820         to work correctly, as the contents of the clipboard are unlikely
37821         to be properly-formed XHTML. Thus, for the pasting case, it's always
37822         better to use HTML parsing, which will properly parse either HTML
37823         (which is what's usually in the clipboard) or XHTML (which is
37824         sometimes there as well).
37825
37826         The Mac port previously worked around this problem by falling back to plain text
37827         when parsing failed, but switching to HTML seems like a clear improvement.
37828
37829         This also fixes a crash in Chromium (see http://webkit.org/b/99607
37830         and http://crbug.com/136218); it erroneously assumed that createFragmentFromMarkup()
37831         would never return null. This patch makes that true.
37832
37833         * editing/markup.cpp:
37834         (WebCore::createFragmentFromMarkup): Don't delegate to createContextualFragment:
37835         we already know our context element is safe (i.e., it's <body>),
37836         and we want to force HTML (not XML) parsing.
37837
37838 2012-10-23  Allan Sandfeld Jensen  <allan.jensen@digia.com>
37839
37840         [Qt] REGRESSION (r130851): fast/text/word-space-with-kerning.html fails
37841         https://bugs.webkit.org/show_bug.cgi?id=98876
37842
37843         Reviewed by Simon Hausmann.
37844
37845         Do not add word-spacing for leading space. This matches what simple path font-width does.
37846
37847         Tested by existing tests.
37848
37849         * platform/graphics/qt/FontQt.cpp:
37850         (WebCore::Font::floatWidthForComplexText):
37851
37852 2012-10-23  Alexander Pavlov  <apavlov@chromium.org>
37853
37854         Web Inspector: Incorrect resolution of relative URLs containing a scheme in query parameters
37855         https://bugs.webkit.org/show_bug.cgi?id=100084
37856
37857         Reviewed by Vsevolod Vlasov.
37858
37859         Use the RFC 3986 grammar for the URL scheme.
37860
37861         * inspector/front-end/ParsedURL.js:
37862         (WebInspector.ParsedURL):
37863
37864 2012-10-23  Eugene Klyuchnikov  <eustas.bug@gmail.com>
37865
37866         Web Inspector: Elaborate source panel sidebar context menus.
37867         https://bugs.webkit.org/show_bug.cgi?id=99980
37868
37869         Reviewed by Vsevolod Vlasov.
37870
37871         - Watches: add "Add watch expression" item to items and empty element
37872         - Watches: hide "Remove watch expression" from editing prompt context menu
37873         - Watches: add titles to header buttons
37874         - XHR Breakpoints: add "Add Breakpoint" item to items and empty element
37875         - XHR Breakpoints: add "Remove all breakpoints" item to items (when >1)
37876         - XHR Breakpoints: add title to header button
37877         - JS Breakpoints: hide "Remove/(De)Activate breakpoints" when only 1 item present
37878         - JS Breakpoints: add "(De)Activate breakpoints" to empty element context menu
37879
37880         * English.lproj/localizedStrings.js: Added corresponding strings.
37881         * inspector/front-end/BreakpointsSidebarPane.js: Adjusted context menu.
37882         (WebInspector.XHRBreakpointsSidebarPane): Ditto.
37883         * inspector/front-end/ObjectPropertiesSection.js: Added "isEditing()"
37884         * inspector/front-end/WatchExpressionsSidebarPane.js: Adjusted context menu.
37885
37886 2012-10-23  Kent Tamura  <tkent@chromium.org>
37887
37888         Update binding test results for r132194
37889         https://bugs.webkit.org/show_bug.cgi?id=100097
37890
37891         * bindings/scripts/test/V8/V8TestObj.cpp:
37892         (WebCore::V8TestObj::installPerContextProperties):
37893
37894 2012-10-23  Alexander Pavlov  <apavlov@chromium.org>
37895
37896         Web Inspector: Sass can only resolve same folder paths
37897         https://bugs.webkit.org/show_bug.cgi?id=99259
37898
37899         Reviewed by Vsevolod Vlasov.
37900
37901         The actual reason is that the rule source location linkifier tries to linkify a resource (*.scss), which does not exist,
37902         and falls back to just stripping the main page URL prefix from the rule location URL. This change introduces LiveLocations
37903         for CSSRule locations and makes sure they are linkified using uiSourceCode's parsedURL.displayName.
37904
37905         * inspector/front-end/CSSStyleModel.js:
37906         (WebInspector.CSSStyleModel): Introduced LiveLocation management for CSSRules.
37907         (WebInspector.CSSStyleModel.prototype.setSourceMapping):
37908         (WebInspector.CSSStyleModel.prototype._updateLocations):
37909         (WebInspector.CSSStyleModel.prototype.createLiveLocation):
37910         (WebInspector.CSSStyleModel.prototype.updateLocations):
37911         (WebInspector.CSSStyleModel.LiveLocation): A LiveLocation for the CSS domain.
37912         (WebInspector.CSSStyleModel.LiveLocation.prototype.uiLocation):
37913         (WebInspector.CSSStyleModel.LiveLocation.prototype.dispose):
37914         * inspector/front-end/Linkifier.js:
37915         (WebInspector.Linkifier.prototype.linkifyCSSRuleLocation): CSSRule LiveLocation-based link builder.
37916         (WebInspector.Linkifier.DefaultFormatter.prototype.formatLiveAnchor): Add a title for anchors.
37917         (WebInspector.Linkifier.DefaultCSSFormatter): Formatter for CSS location links.
37918         (WebInspector.Linkifier.DefaultCSSFormatter.prototype.formatLiveAnchor):
37919         * inspector/front-end/ResourceUtils.js:
37920         (WebInspector.displayNameForURL): Use parsedURL.displayName if uiSourceCode is present for the specified URL.
37921         * inspector/front-end/SASSSourceMapping.js:
37922         * inspector/front-end/StylesSidebarPane.js:
37923         (WebInspector.StylesSidebarPane):
37924         (WebInspector.StylesSidebarPane.prototype._innerRebuildUpdate):
37925         * inspector/front-end/inspector.html:
37926
37927 2012-10-23  Sheriff Bot  <webkit.review.bot@gmail.com>
37928
37929         Unreviewed, rolling out r132149.
37930         http://trac.webkit.org/changeset/132149
37931         https://bugs.webkit.org/show_bug.cgi?id=100098
37932
37933         Breaks inspector profiler tests in debug mode. (Requested by
37934         pfeldman1 on #webkit).
37935
37936         * rendering/AutoTableLayout.cpp:
37937         (WebCore::AutoTableLayout::recalcColumn):
37938         * rendering/FixedTableLayout.cpp:
37939         (WebCore::FixedTableLayout::calcWidthArray):
37940         * rendering/RenderTable.cpp:
37941         (WebCore::RenderTable::layout):
37942         * rendering/RenderTableCol.cpp:
37943         (WebCore::RenderTableCol::styleDidChange):
37944         (WebCore::RenderTableCol::updateFromElement):
37945         (WebCore::RenderTableCol::computePreferredLogicalWidths):
37946         * rendering/RenderTableCol.h:
37947         (RenderTableCol):
37948
37949 2012-10-23  Simon Hausmann  <simon.hausmann@digia.com>
37950
37951         Unreviewed trivial Qt build fix: Fix build without USE_3D_GRAPHICS
37952
37953         Move the #if USE(GRAPHICS_SURFACE) up to protect the inclusion of
37954         GraphicsContext3D.h to be done only if we use the surface.
37955
37956         * platform/graphics/surfaces/GraphicsSurface.h:
37957
37958 2012-10-23  Sheriff Bot  <webkit.review.bot@gmail.com>
37959
37960         Unreviewed, rolling out r132033.
37961         http://trac.webkit.org/changeset/132033
37962         https://bugs.webkit.org/show_bug.cgi?id=100097
37963
37964         Broke calendar picker (Requested by tkent on #webkit).
37965
37966         * bindings/scripts/CodeGeneratorV8.pm:
37967         (GenerateImplementation):
37968
37969 2012-10-23  Andras Becsi  <andras.becsi@digia.com>
37970
37971         Remove devicePixelRatio from ViewportAttributes
37972         https://bugs.webkit.org/show_bug.cgi?id=99845
37973
37974         Reviewed by Adam Barth.
37975
37976         Since r121555 the devicePixelRatio is not calculated any more
37977         and the scale factor is stored in Page::m_deviceScaleFactor,
37978         thus it can be removed from ViewportAttributes to reduce
37979         redundancy and unnecessary client code.
37980         Use a new parameter in viewport calculation functions using
37981         the visible viewport size (instead of passing the adjusted
37982         viewport size) so that after this change clients do not end
37983         up using the unadjusted viewport size for calculations.
37984
37985         No behavioural change, no new tests needed.
37986
37987         * WebCore.exp.in:
37988         * dom/ViewportArguments.cpp:
37989         (WebCore::computeViewportAttributes):
37990         (WebCore::computeMinimumScaleFactorForContentContained):
37991         Add the devicePixelRatio as a parameter.
37992         (WebCore::restrictMinimumScaleFactorToViewportSize): Ditto.
37993         * dom/ViewportArguments.h:
37994         (ViewportAttributes):
37995         (WebCore):
37996         * testing/InternalSettings.cpp:
37997         (WebCore::InternalSettings::configurationForViewport):
37998
37999 2012-10-23  Kent Tamura  <tkent@chromium.org>
38000
38001         Support full month names in DateTimeEditElement, and use them in input[type=month] by default
38002         https://bugs.webkit.org/show_bug.cgi?id=100060
38003
38004         Reviewed by Kentaro Hara.
38005
38006         According to https://plus.google.com/104770450049736549185/posts/4zsoeHoa7SM
38007         no one wants to show abbreviated month names for input[type=month].
38008         This change add support for full month names in DateTimeEditELement, and
38009         LocaleICU and LocaleMac retun month formats with full month names. Note
38010         that LocaleWin::monthFormat returns formats for full month names.
38011
38012         No new tests. Covered by fast/forms/month-multiple-fields/month-multiple-fields-appearance-*.html
38013
38014         * html/shadow/DateTimeEditElement.cpp:
38015         (WebCore::DateTimeEditBuilder::visitField):
38016         If count is 4, use Localizer::monthLabels or standAloneMonthLabels.
38017         * platform/text/LocaleICU.cpp:
38018         (WebCore::LocaleICU::monthFormat):
38019         Returns a format for full month names.
38020         * platform/text/mac/LocaleMac.mm:
38021         (WebCore::LocaleMac::monthFormat): Ditto.
38022
38023 2012-10-23  Mike West  <mkwst@chromium.org>
38024
38025         Viewport errors should be slightly friendlier with regard to ';'.
38026         https://bugs.webkit.org/show_bug.cgi?id=100003
38027
38028         Reviewed by Adam Barth.
38029
38030         This patch scans viewport values that cause errors for ';'. If found,
38031         a quick message is appended to the error, noting that semicolons are
38032         not valid separators in viewport contents, and that commas would be
38033         the proper substitute.
38034
38035         No functional changes, just a better error message.
38036
38037         * dom/ViewportArguments.cpp:
38038         (WebCore::reportViewportWarning):
38039
38040 2012-10-23  Timothy Hatcher  <timothy@apple.com>
38041
38042         Docking/undocking the Web Inspector does not work correctly in Safari.
38043
38044         The "docked" and "bottom" strings need quoted instead of being passed as identifiers.
38045
38046         https://bugs.webkit.org/show_bug.cgi?id=100080
38047
38048         Reviewed by Yury Semikhatsky.
38049
38050         * inspector/InspectorFrontendClientLocal.cpp:
38051         (WebCore::InspectorFrontendClientLocal::setAttachedWindow): Put quotes around the %s.
38052
38053 2012-10-23  Sudarsana Nagineni  <sudarsana.nagineni@intel.com>
38054
38055         [EFL][WK2] Compilation warning in GraphicsContext3DPrivate.cpp when AC is enabled
38056         https://bugs.webkit.org/show_bug.cgi?id=99723
38057
38058         Reviewed by Kenneth Rohde Christiansen.
38059
38060         Fix compilation warning in GraphicsContext3DPrivate.cpp when AC is
38061         enabled.
38062
38063         No new tests, no change in behavior.
38064
38065         * platform/graphics/efl/GraphicsContext3DPrivate.cpp:
38066         (WebCore::GraphicsContext3DPrivate::createSurface):
38067
38068 2012-10-23  Dan Carney  <dcarney@google.com>
38069
38070         When blocking localStorage, Firefox throws a security exception on access, and maybe so should we
38071         https://bugs.webkit.org/show_bug.cgi?id=63257
38072
38073         Reviewed by Jochen Eisinger.
38074
38075         Throw security exception when local storage is accessed
38076         under certain circumstances to match firefox.
38077
38078         No new tests. Existing tests modified.
38079
38080         * bindings/js/JSStorageCustom.cpp:
38081         (WebCore::JSStorage::canGetItemsForName):
38082         (WebCore::JSStorage::nameGetter):
38083         (WebCore::JSStorage::deleteProperty):
38084         (WebCore::JSStorage::getOwnPropertyNames):
38085         * bindings/v8/custom/V8StorageCustom.cpp:
38086         (WebCore):
38087         (WebCore::setDOMException):
38088         (WebCore::V8Storage::namedPropertyEnumerator):
38089         (WebCore::storageGetter):
38090         (WebCore::V8Storage::namedPropertyQuery):
38091         (WebCore::storageDeleter):
38092         * inspector/InspectorDOMStorageAgent.cpp:
38093         (WebCore::InspectorDOMStorageAgent::getDOMStorageEntries):
38094         (WebCore::InspectorDOMStorageAgent::removeDOMStorageItem):
38095         * page/DOMWindow.cpp:
38096         (WebCore::DOMWindow::sessionStorage):
38097         (WebCore::DOMWindow::localStorage):
38098         * storage/Storage.cpp:
38099         * storage/Storage.h:
38100         (WebCore):
38101         (WebCore::Storage::length):
38102         (WebCore::Storage::key):
38103         (WebCore::Storage::getItem):
38104         (WebCore::Storage::setItem):
38105         (WebCore::Storage::removeItem):
38106         (WebCore::Storage::clear):
38107         (WebCore::Storage::contains):
38108         * storage/Storage.idl:
38109         * storage/StorageArea.h:
38110         (StorageArea):
38111         * storage/StorageAreaImpl.cpp:
38112         (WebCore::StorageAreaImpl::canAccessStorage): Checks whether access to storage is a security violation.
38113         (WebCore):
38114         (WebCore::StorageAreaImpl::disabledByPrivateBrowsingInFrame):
38115         (WebCore::StorageAreaImpl::length):
38116         (WebCore::StorageAreaImpl::key):
38117         (WebCore::StorageAreaImpl::getItem):
38118         (WebCore::StorageAreaImpl::setItem):
38119         (WebCore::StorageAreaImpl::removeItem):
38120         (WebCore::StorageAreaImpl::clear):
38121         (WebCore::StorageAreaImpl::contains):
38122         * storage/StorageAreaImpl.h:
38123         (StorageAreaImpl):
38124
38125 2012-10-22  Joshua Bell  <jsbell@chromium.org>
38126
38127         IndexedDB: Remove custom binding code for IDBCursor.value
38128         https://bugs.webkit.org/show_bug.cgi?id=100034
38129
38130         Reviewed by Kentaro Hara.
38131
38132         Now that we're using ScriptValue instead of SerializedScriptValue we can just expose
38133         IDBCursor.value as an |any| (IDL) or |ScriptValue| (C++) to maintain the specified
38134         semantics that the object identity is retained across accesses.
38135
38136         Test: storage/indexeddb/cursor-value.html
38137
38138         * Modules/indexeddb/IDBCursor.cpp: Remove "dirty" tracking.
38139         (WebCore::IDBCursor::IDBCursor):
38140         (WebCore::IDBCursor::value):
38141         (WebCore::IDBCursor::setValueReady):
38142         * Modules/indexeddb/IDBCursor.h: IDBAny -> ScriptValue
38143         (IDBCursor):
38144         * Modules/indexeddb/IDBCursorWithValue.idl: IDBAny -> any
38145         * Modules/indexeddb/IDBObjectStore.cpp: No need to route through IDBAny to get ScriptValue.
38146         (WebCore):
38147         * UseV8.cmake: Remove references to IDBCustomBindings.cpp
38148         * WebCore.gypi: Ditto.
38149         * WebCore.vcproj/WebCore.vcproj: Ditto.
38150         * bindings/v8/IDBCustomBindings.cpp: Removed.
38151
38152 2012-10-22  Dan Bernstein  <mitz@apple.com>
38153
38154         Font’s fast code path is used for partial runs with kerning and ligatures, but shouldn’t be
38155         https://bugs.webkit.org/show_bug.cgi?id=100068
38156
38157         Reviewed by Sam Weinig.
38158
38159         As described in <http://webkit.org/b/100050>, the fast code path doesn’t handle partial runs
38160         correctly when kerning or ligatures are enabled. Since the partial-run case is uncommon,
38161         for now just use the complex code path in this case.
38162
38163         * platform/graphics/Font.cpp:
38164         (WebCore::Font::drawText): Changed to use the complex path for partial runs if there are any
38165         typesetting features.
38166         (WebCore::Font::drawEmphasisMarks): Ditto.
38167         (WebCore::Font::selectionRectForText): Ditto.
38168         (WebCore::Font::offsetForPosition): Changed to use the complex path if there are any
38169         typesetting features.
38170
38171 2012-10-22  Peter Wang  <peter.wang@torchmobile.com.cn>
38172
38173         [BlackBerry] Missing some cookies in HTTP response header when set several cookies in one "Set-Cookie" header.
38174         https://bugs.webkit.org/show_bug.cgi?id=99950
38175
38176         Reviewed by George Staikos.
38177
38178         In "NetworkJob::handleNotifyHeaderReceived", if there are several "Set-Cookie" headers, 
38179         we should combine the following ones with the first.
38180
38181         No new test case.
38182
38183         * platform/network/blackberry/NetworkJob.cpp:
38184         (WebCore::NetworkJob::handleNotifyHeaderReceived):
38185
38186 2012-10-22  MORITA Hajime  <morrita@google.com>
38187
38188         Assertion failed at WebCore::toInsertionPoint / WebCore::ContentDistributor::distribute
38189         https://bugs.webkit.org/show_bug.cgi?id=100038
38190
38191         Reviewed by Kent Tamura.
38192
38193         isHTMLContentElement() assumes that the content element always has
38194         a tag name "content" but it doesn't when Shadow DOM feature is
38195         disabled. This fix let the function see the correct tag name.
38196
38197         Test: fast/dom/shadow/insertion-points-with-shadow-disabled.html
38198
38199         * html/shadow/HTMLContentElement.cpp:
38200         (WebCore::HTMLContentElement::contentTagName):
38201         * html/shadow/HTMLContentElement.h:
38202         (HTMLContentElement):
38203         (WebCore::isHTMLContentElement):
38204
38205 2012-10-22  Shinya Kawanaka  <shinyak@chromium.org>
38206
38207         [Shadow] Fallback content should also be reprojection.
38208         https://bugs.webkit.org/show_bug.cgi?id=99750
38209
38210         Reviewed by Dimitri Glazkov.
38211
38212         Fallback content of InsertionPoint should be reprojected. The existing assumption that
38213         only the direct child of host element can be distributed to InsertionPoint does not hold anymore.
38214         So, if the parent of an element is InsertionPoint which should show fallback element, we have to
38215         check the grand parent of the element instead of the element.
38216
38217         Tests: fast/dom/shadow/content-reprojection-fallback-reprojection.html
38218                fast/dom/shadow/content-reprojection-fallback.html
38219
38220         * css/StyleResolver.cpp:
38221         (WebCore::shouldResetStyleInheritance): Checks the grandparent of the element if the parent is
38222         an InsertionPoint which uses fallback content.
38223         * dom/ComposedShadowTreeWalker.cpp:
38224         (WebCore::shadowOfParentForDistribution):
38225         (WebCore):
38226         (WebCore::resolveReprojection):
38227         (WebCore::ComposedShadowTreeWalker::traverseParent):
38228         * html/shadow/InsertionPoint.cpp:
38229         (WebCore::InsertionPoint::shouldUseFallbackElements): True if the InsertionPoint should use fallback content.
38230         (WebCore):
38231         * html/shadow/InsertionPoint.h:
38232         (WebCore::parentElementForDistribution): Returns the grandparent element if the parent is InsertionPoint which uses
38233         fallback content. Returns parent element otherwise.
38234         (WebCore):
38235
38236 2012-10-22  Keishi Hattori  <keishi@webkit.org>
38237
38238         Label position is wrong in the suggestion picker when all the suggestions have labels
38239         https://bugs.webkit.org/show_bug.cgi?id=99965
38240
38241         Reviewed by Kent Tamura.
38242
38243         Somehow the scrollbar was appearing and so the label element was being wrapped to the next line.
38244
38245         No new tests. Can't reproduce in layout test.
38246
38247         * Resources/pagepopups/suggestionPicker.css:
38248         (.suggestion-list):
38249         * Resources/pagepopups/suggestionPicker.js:
38250         (SuggestionPicker.prototype._fixWindowSize): Explicitly show the scroll bar.
38251
38252 2012-10-22  MORITA Hajime  <morrita@google.com>
38253
38254         [Chromium] Needs to track ShadowRoot usage
38255         https://bugs.webkit.org/show_bug.cgi?id=99955
38256
38257         Reviewed by Dimitri Glazkov.
38258
38259         Added an UMA instrumentation.
38260
38261         * dom/ShadowRoot.cpp:
38262         (WebCore::determineUsageType):
38263         (WebCore):
38264         (WebCore::ShadowRoot::create):
38265
38266 2012-10-22  Kent Tamura  <tkent@chromium.org>
38267
38268         Introduce Localizer::standAloneMonthLabels
38269         https://bugs.webkit.org/show_bug.cgi?id=99963
38270
38271         Reviewed by Kentaro Hara.
38272
38273         We realized full month names and full stand-alone month names were
38274         necessary for input[type=month] UI. We change the compile-flag for
38275         Localizer::monthLabels from "ENABLE(CALENDAR_PICKER)" to
38276         "ENABLE(CALENDAR_PICKER) || ENABLE(INPUT_MULTIPLE_FIELDS_UI)," and
38277         introduce Localizer::standAloneMonthLabels.
38278
38279         Tests: Add some test cases to Source/WebKit/chromium/LocaleMacTest.cpp
38280         and LocalizedDateICUTest.cpp.
38281
38282         * platform/text/Localizer.h:
38283         (Localizer):
38284         - Add pure virtual standAloneMonthLabels.
38285         - Change the condition for monthLabels.
38286
38287         * platform/text/LocaleNone.cpp:
38288         (LocaleNone): Declare monthLabels, standAloneMonthLabels, and m_monthLabels.
38289         (WebCore::LocaleNone::monthLabels):
38290         Added. It always returns English month names.
38291         (WebCore::LocaleNone::standAloneMonthLabels):
38292         Added. Just calls monthLabels.
38293
38294         * platform/text/LocaleWin.h:
38295         (LocaleWin):
38296         Declare standAloneMonthLabels, and change the condition for monthLabels.
38297         * platform/text/LocaleWin.cpp:
38298         (WebCore): Change the condition for monthLabels.
38299         (WebCore::LocaleWin::standAloneMonthLabels):
38300         Added. Just calls monthLabels.
38301
38302         * platform/text/mac/LocaleMac.h:
38303         (LocaleMac):
38304         - Add standAloneMonthLabels and m_standAloneMonthLabels
38305         - Change the condition for monthLabels and m_monthLabels.
38306         * platform/text/mac/LocaleMac.mm:
38307         (WebCore): Change the condition for monthLabels.
38308         (WebCore::LocaleMac::standAloneMonthLabels):
38309         Added. Get the information with NSDateFormatter::standaloneMonthSymbols.
38310
38311         * platform/text/LocaleICU.h:
38312         (LocaleICU):
38313         - Add standAloneMonthLabels and m_standAloneMonthLabels
38314         - Change the condition for monthLabels and m_monthLabels.
38315         * platform/text/LocaleICU.cpp:
38316         (WebCore::LocaleICU::initializeCalendar):
38317         Remove m_monthLabels initialization in order to avoid dependecy from monthLabels.
38318         (WebCore):
38319         (WebCore::createFallbackMonthLabels): Change the compile condition.
38320         (WebCore::LocaleICU::monthLabels):
38321         - Change the compile condition.
38322         - Don't depend on initializeCalendar to make the code for
38323         ENABLE(INPUT_MULTIPLE_FIELDS_UI) && !ENABLE(CALENDAR_PICKER) minimal.
38324         (WebCore::LocaleICU::standAloneMonthLabels):
38325         Added. The code is similar to shortStandAloneMonthLabels.
38326
38327 2012-10-22  Shinya Kawanaka  <shinyak@chromium.org>
38328
38329         Refactoring around ContainerNode::attachChildren
38330         https://bugs.webkit.org/show_bug.cgi?id=99968
38331
38332         Reviewed by Hajime Morita.
38333
38334         Since ContainerNode::attach() is now equivalent to ContainerNode::attachChildren() + Node::attach(), we should call
38335         ContainerNode::attach() instead of calling them.
38336
38337         No new tests, no change in behavior.
38338
38339         * dom/ContainerNode.h:
38340         (ContainerNode):
38341         * dom/Element.cpp:
38342         (WebCore::Element::attach):
38343         * dom/ShadowRoot.cpp:
38344         (WebCore::ShadowRoot::attach):
38345
38346 2012-10-22  Michael Saboff  <msaboff@apple.com>
38347
38348         HTML Parser should produce 8 bit strings for doctype, comment and tagName tokens
38349         https://bugs.webkit.org/show_bug.cgi?id=99889
38350
38351         Reviewed by Geoffrey Garen.
38352
38353         Added 8 bit check for accumulating all token data in MarkupTokenBase.  Added code to convert
38354         "name" token data directly to a string (8 or 16 as appropriate).  Changed to accumulate
38355         m_bufferedEndTagName as LChar's.
38356
38357         No new tests, covered by existing tests.
38358
38359         * html/parser/HTMLToken.h:
38360         (HTMLToken):
38361         * html/parser/HTMLTokenizer.cpp:
38362         (WebCore::HTMLTokenizer::nextToken):
38363         (WebCore::HTMLTokenizer::addToPossibleEndTag):
38364         (WebCore::HTMLTokenizer::isAppropriateEndTag):
38365         * html/parser/HTMLTokenizer.h:
38366         (HTMLTokenizer):
38367         * html/parser/HTMLTreeBuilder.cpp:
38368         (WebCore::HTMLTreeBuilder::ExternalCharacterTokenBuffer::takeLeading):
38369         * xml/parser/MarkupTokenBase.h:
38370         (WebCore::MarkupTokenBase::beginStartTag):
38371         (WebCore::MarkupTokenBase::beginEndTag):
38372         (MarkupTokenBase):
38373         (WebCore::MarkupTokenBase::beginDOCTYPE):
38374         (WebCore::MarkupTokenBase::appendToComment):
38375         (WebCore::MarkupTokenBase::appendToName):
38376         (WebCore::MarkupTokenBase::nameString):
38377         (WebCore::AtomicMarkupTokenBase::AtomicMarkupTokenBase):
38378
38379 2012-10-22  Tony Chang  <tony@chromium.org>
38380
38381         margin-top/bottom has no effect for child nodes of flex items
38382         https://bugs.webkit.org/show_bug.cgi?id=99923
38383
38384         Reviewed by Ojan Vafai.
38385
38386         Flexitems, like table cells, shouldn't collapse margins.
38387
38388         Test: css3/flexbox/flexitem-no-margin-collapsing.html
38389
38390         * rendering/RenderBlock.cpp:
38391         (WebCore::RenderBlock::MarginInfo::MarginInfo): Check to see if the parent is a flexible box.
38392         We should always have a parent if we make it this far in the check.
38393
38394 2012-10-22  Marja Hölttä  <marja@chromium.org>
38395
38396         Refactor CachedResourceLoader: add CachedResourceRequest
38397         https://bugs.webkit.org/show_bug.cgi?id=99736
38398
38399         Reviewed by Adam Barth.
38400
38401         For fixing bugs 84883 and 92761,
38402         CachedResourceLoader::requestResource should take as parameter
38403         information about who initiated the request. But the parameter
38404         list was already long. This gathers all the parameters into a
38405         separate class, CachedResourceRequest. The next step is to add
38406         information about who initiated the request into
38407         CachedResourceRequest.
38408
38409         No new tests because no changes in functionality, just moving code
38410         around.
38411
38412         * CMakeLists.txt:
38413         * GNUmakefile.list.am:
38414         * Target.pri:
38415         * WebCore.gypi:
38416         * WebCore.vcproj/WebCore.vcproj:
38417         * WebCore.xcodeproj/project.pbxproj:
38418         * css/CSSFontFaceSrcValue.cpp:
38419         (WebCore::CSSFontFaceSrcValue::cachedFont):
38420         * css/CSSImageSetValue.cpp:
38421         (WebCore::CSSImageSetValue::cachedImageSet):
38422         * css/CSSImageValue.cpp:
38423         (WebCore::CSSImageValue::cachedImage):
38424         * css/StyleRuleImport.cpp:
38425         (WebCore::StyleRuleImport::requestStyleSheet):
38426         * css/WebKitCSSSVGDocumentValue.cpp:
38427         (WebCore::WebKitCSSSVGDocumentValue::load):
38428         * css/WebKitCSSShaderValue.cpp:
38429         (WebCore::WebKitCSSShaderValue::cachedShader):
38430         * dom/ProcessingInstruction.cpp:
38431         (WebCore::ProcessingInstruction::checkStyleSheet):
38432         * dom/ScriptElement.cpp:
38433         (WebCore::ScriptElement::requestScript):
38434         * html/HTMLLinkElement.cpp:
38435         (WebCore::HTMLLinkElement::process):
38436         * loader/DocumentThreadableLoader.cpp:
38437         (WebCore::DocumentThreadableLoader::loadRequest):
38438         * loader/ImageLoader.cpp:
38439         (WebCore::ImageLoader::updateFromElement):
38440         * loader/LinkLoader.cpp:
38441         (WebCore::LinkLoader::loadLink):
38442         * loader/TextTrackLoader.cpp:
38443         (WebCore::TextTrackLoader::load):
38444         * loader/cache/CachedResourceLoader.cpp:
38445         (WebCore::CachedResourceLoader::requestImage):
38446         (WebCore::CachedResourceLoader::requestFont):
38447         (WebCore::CachedResourceLoader::requestTextTrack):
38448         (WebCore::CachedResourceLoader::requestShader):
38449         (WebCore::CachedResourceLoader::requestCSSStyleSheet):
38450         (WebCore::CachedResourceLoader::requestUserCSSStyleSheet):
38451         (WebCore::CachedResourceLoader::requestScript):
38452         (WebCore::CachedResourceLoader::requestXSLStyleSheet):
38453         (WebCore::CachedResourceLoader::requestSVGDocument):
38454         (WebCore::CachedResourceLoader::requestLinkResource):
38455         (WebCore::CachedResourceLoader::requestRawResource):
38456         (WebCore::CachedResourceLoader::requestResource):
38457         (WebCore::CachedResourceLoader::requestPreload):
38458         (WebCore::CachedResourceLoader::defaultCachedResourceOptions):
38459         (WebCore):
38460         * loader/cache/CachedResourceLoader.h:
38461         (WebCore):
38462         (CachedResourceLoader):
38463         * loader/cache/CachedResourceRequest.cpp: Added.
38464         (WebCore):
38465         (WebCore::CachedResourceRequest::CachedResourceRequest):
38466         * loader/cache/CachedResourceRequest.h: Added.
38467         (WebCore):
38468         (CachedResourceRequest):
38469         (WebCore::CachedResourceRequest::mutableResourceRequest):
38470         (WebCore::CachedResourceRequest::resourceRequest):
38471         (WebCore::CachedResourceRequest::charset):
38472         (WebCore::CachedResourceRequest::setCharset):
38473         (WebCore::CachedResourceRequest::options):
38474         (WebCore::CachedResourceRequest::priority):
38475         (WebCore::CachedResourceRequest::forPreload):
38476         (WebCore::CachedResourceRequest::setForPreload):
38477         (WebCore::CachedResourceRequest::defer):
38478         (WebCore::CachedResourceRequest::setDefer):
38479         * loader/icon/IconLoader.cpp:
38480         (WebCore::IconLoader::startLoading):
38481         * svg/SVGFEImageElement.cpp:
38482         (WebCore::SVGFEImageElement::requestImageResource):
38483         * svg/SVGFontFaceUriElement.cpp:
38484         (WebCore::SVGFontFaceUriElement::loadFont):
38485         * svg/SVGUseElement.cpp:
38486         (WebCore::SVGUseElement::svgAttributeChanged):
38487         * xml/XSLImportRule.cpp:
38488         (WebCore::XSLImportRule::loadSheet):
38489
38490 2012-10-22  Adam Barth  <abarth@webkit.org>
38491
38492         [V8] ASSERT that removeAllDOMObjects() is called only on worker threads
38493         https://bugs.webkit.org/show_bug.cgi?id=100046
38494
38495         Reviewed by Eric Seidel.
38496
38497         This function is called only on worker threads. We should ASSERT that
38498         fact and remove the dead code that tries to handle the main thread
38499         case.
38500
38501         * bindings/v8/V8DOMMap.cpp:
38502         (WebCore::removeAllDOMObjects):
38503
38504 2012-10-22  Adam Barth  <abarth@webkit.org>
38505
38506         [V8] We should call the faster v8::Integer::New APIs
38507         https://bugs.webkit.org/show_bug.cgi?id=100016
38508
38509         Reviewed by Eric Seidel.
38510
38511         In working to remove the integer cache, I added some faster APIs for
38512         creating v8::Integers. These APIs are faster than the old APIs, but not
38513         quite fast enough to replace the integer cache. We should still use
38514         them when we miss the integer cache.
38515
38516         I've also included a small refactoring to V8PerIsolateData to make it
38517         clearer when we're calling v8::Isolate::GetCurrent().
38518
38519         * bindings/v8/DOMData.cpp:
38520         (WebCore::DOMData::getCurrentStore):
38521         * bindings/v8/V8Binding.h:
38522         (WebCore::v8ExternalString):
38523         (WebCore::v8Integer):
38524         (WebCore::v8UnsignedInteger):
38525         * bindings/v8/V8PerIsolateData.h:
38526         (WebCore::V8PerIsolateData::current):
38527         (WebCore::V8PerIsolateData::from):
38528         * bindings/v8/V8ValueCache.cpp:
38529         (WebCore::StringCache::v8ExternalStringSlow):
38530         (WebCore::IntegerCache::createSmallIntegers):
38531         * bindings/v8/V8ValueCache.h:
38532         (WebCore::IntegerCache::v8Integer):
38533         (WebCore::IntegerCache::v8UnsignedInteger):
38534         (IntegerCache):
38535         * bindings/v8/custom/V8HTMLCanvasElementCustom.cpp:
38536         (WebCore::V8HTMLCanvasElement::getContextCallback):
38537
38538 2012-10-22  Julien Chaffraix  <jchaffraix@webkit.org>
38539
38540         RenderTableCol::computePreferredLogicalWidths and RenderTableCol::layout should never be called
38541         https://bugs.webkit.org/show_bug.cgi?id=99861
38542
38543         Reviewed by Ojan Vafai.
38544
38545         RenderTableCol's computePreferredLogicalWidths and layout's only purpose were to clear the preferred logical
38546         widths dirty / layout flag so that we would properly propagate the information to our containing table. This
38547         led to clunky code where the table layout code had to forcefully call RenderTableCol::computePreferredLogicalWidths
38548         or else we would ignore the next layout hint on the <col> or <colgroup>.
38549
38550         Test: fast/table/col-span-change-relayout.html
38551
38552         * rendering/AutoTableLayout.cpp:
38553         (WebCore::AutoTableLayout::recalcColumn):
38554         * rendering/RenderTable.cpp:
38555         (WebCore::RenderTable::layout):
38556         Simplified the code now that we only need to iterate over the sections.
38557
38558         * rendering/FixedTableLayout.cpp:
38559         (WebCore::FixedTableLayout::calcWidthArray):
38560         Removed call to computePreferredLogicalWidths.
38561
38562         * rendering/RenderTableCol.cpp:
38563         (WebCore::RenderTableCol::styleDidChange):
38564         (WebCore::RenderTableCol::updateFromElement):
38565         Forward a layout hint to the table so that we properly recompute the cell's logical withs.
38566
38567         (WebCore::RenderTableCol::computePreferredLogicalWidths):
38568         (WebCore::RenderTableCol::layout):
38569         Change our implementations of those 2 methods to be no-ops, while enforcing that they are
38570         never called.
38571
38572         (WebCore::RenderTableCol::propagateLayoutCueToTable):
38573         New helper function that forward any layout cue to the containing table, this works around
38574         us not clearing the flags which confuses RenderObject markContainingBlocksForLayout and
38575         invalidateContainerPreferredLogicalWidths.
38576
38577         * rendering/RenderTableCol.h:
38578         Made the function that we are not expected to be called private.
38579
38580 2012-10-22  Pan Deng  <pan.deng@intel.com>
38581
38582         [User Timing]Integrate with Perforamnce Timeline.
38583         https://bugs.webkit.org/show_bug.cgi?id=91072.
38584
38585         Reviewed by Tony Gentilcore.
38586
38587         This patch expose user timing entries via performance timeline interface. JavaScriptCore custom binding will be another patch
38588
38589         No new tests, user timing test cases have been landed.
38590
38591         * page/Performance.cpp:
38592         (WebCore::Performance::Performance):
38593         (WebCore::Performance::webkitGetEntries):
38594         (WebCore::Performance::webkitGetEntriesByType):
38595         (WebCore::Performance::webkitGetEntriesByName):
38596         * page/PerformanceEntry.h:
38597         (WebCore::PerformanceEntry::startTimeCompareLessThan):
38598         (PerformanceEntry):
38599         * page/PerformanceEntryList.cpp:
38600         (WebCore::PerformanceEntryList::sort):
38601         (WebCore):
38602         * page/PerformanceEntryList.h:
38603         (PerformanceEntryList):
38604         * page/PerformanceUserTiming.cpp:
38605         (WebCore::convertToEntrySequence):
38606         (WebCore):
38607         (WebCore::getEntrySequenceByName):
38608         (WebCore::UserTiming::getMarks):
38609         (WebCore::UserTiming::getMeasures):
38610         * page/PerformanceUserTiming.h:
38611         (UserTiming):
38612
38613 2012-10-22  Pan Deng  <pan.deng@intel.com>
38614
38615         Modify obsolete code in User Timing
38616         https://bugs.webkit.org/show_bug.cgi?id=99851
38617
38618         Reviewed by Tony Gentilcore.
38619
38620         Modify user timing implementation as PlatformString.h, prefix of webkitNow is removed, etc.
38621
38622         No new tests.
38623
38624         * page/PerformanceUserTiming.cpp:
38625         (WebCore::insertPerformanceEntry):
38626         (WebCore::UserTiming::mark):
38627         (WebCore::UserTiming::measure):
38628         * page/PerformanceUserTiming.h:
38629
38630 2012-10-22  Mark Lam  <mark.lam@apple.com>
38631
38632         Change stack recursion checks to be based on stack availability.
38633         https://bugs.webkit.org/show_bug.cgi?id=99872.
38634
38635         Reviewed by Filip Pizlo and Geoffrey Garen.
38636
38637         Removed the use of ThreadStackType. Enabled the reserved JSStack space
38638         for error processing before doing work in reportException().
38639
38640         * bindings/js/JSDOMBinding.cpp:
38641         (WebCore::reportException):
38642         * bindings/js/JSDOMWindowBase.cpp:
38643         (WebCore::JSDOMWindowBase::commonJSGlobalData):
38644         * bindings/js/WorkerScriptController.cpp:
38645         (WebCore::WorkerScriptController::WorkerScriptController):
38646
38647 2012-10-22  Andreas Kling  <kling@webkit.org>
38648
38649         REGRESSION(r131104): Heap-use-after-free in WebCore::Element::attributeChanged
38650         <http://webkit.org/b/99937>
38651
38652         Reviewed by Anders Carlsson.
38653
38654         Setting the "type" attribute on an HTMLInputElement that has no "value" attribute set will cause the
38655         input type changing mechanism to write a value attribute onto the element. This happens in
38656         HTMLInputElement::updateType(), below parseAttribute().
38657
38658         It's done via Element::setAttribute(), so we end up re-entering Element::setAttributeInternal()
38659         where the 'existingAttribute' pointer may now be invalid if adding the "value" attribute caused
38660         a reallocation in the ElementAttributeData's underlying Vector<Attribute>.
38661
38662         To make it harder to introduce this kind of bug in the future, I changed almost all functions that take
38663         a "const Attribute&" to take a QualifiedName/AtomicString couple instead (the idea being that the 
38664         fewer references into the attribute store we have, the better.)
38665
38666         Test: fast/html/input-type-change-crash.html
38667
38668         * dom/Attr.cpp:
38669         (WebCore::Attr::setValue):
38670         (WebCore::Attr::childrenChanged):
38671         * dom/Element.cpp:
38672         (WebCore::Element::setAttributeInternal):
38673         (WebCore::Element::attributeChanged):
38674         (WebCore::Element::parserSetAttributes):
38675         (WebCore::Element::addAttributeInternal):
38676         (WebCore::Element::didAddAttribute):
38677         (WebCore::Element::didModifyAttribute):
38678         (WebCore::Element::didRemoveAttribute):
38679         * dom/Element.h:
38680         (Element):
38681         * dom/ElementAttributeData.cpp:
38682         (WebCore::ElementAttributeData::cloneDataFrom):
38683         * dom/StyledElement.cpp:
38684         (WebCore::StyledElement::attributeChanged):
38685         * dom/StyledElement.h:
38686         * html/HTMLInputElement.cpp:
38687         (WebCore::HTMLInputElement::updateType):
38688         * svg/SVGElement.cpp:
38689         (WebCore::SVGElement::attributeChanged):
38690         * svg/SVGElement.h:
38691         (SVGElement):
38692
38693 2012-10-22  Joshua Bell  <jsbell@chromium.org>
38694
38695         IndexedDB: Bounds check for IDBCursor.advance() incorrect
38696         https://bugs.webkit.org/show_bug.cgi?id=100014
38697
38698         Reviewed by Tony Chang.
38699
38700         Fix introduced by trac.webkit.org/changeset/131658 restricted cursor.advance()'s argument
38701         as [EnforceRange] unsigned long long, but it's typed as [EnforceRange] unsigned long; the
38702         useless comparison was caught by a clang check.
38703
38704         In lieu of webkit.org/b/96798 make it long long and correct the range check.
38705
38706         Test: storage/indexeddb/cursor-advance.html
38707
38708         * Modules/indexeddb/IDBCursor.cpp:
38709         (WebCore::IDBCursor::advance):
38710         * Modules/indexeddb/IDBCursor.h:
38711         (IDBCursor):
38712         * Modules/indexeddb/IDBCursor.idl:
38713
38714 2012-10-22  Tony Chang  <tony@chromium.org>
38715
38716         WebKit does not support 'flex-wrap: nowrap'
38717         https://bugs.webkit.org/show_bug.cgi?id=99924
38718
38719         Reviewed by Ojan Vafai.
38720
38721         The spec changed back from using none to nowrap for the single-line
38722         flexbox case.
38723         http://dev.w3.org/csswg/css3-flexbox/#flex-wrap-property
38724
38725         No new tests, covered by css3/flexbox/css-properties.html and others.
38726
38727         * css/CSSParser.cpp:
38728         (WebCore::isValidKeywordPropertyAndValue):
38729         * css/CSSPrimitiveValueMappings.h:
38730         (WebCore::CSSPrimitiveValue::CSSPrimitiveValue):
38731         (WebCore::CSSPrimitiveValue::operator EFlexWrap):
38732         * css/CSSValueKeywords.in:
38733         * rendering/RenderBox.cpp:
38734         (WebCore::isStretchingColumnFlexItem):
38735         (WebCore::RenderBox::sizesLogicalWidthToFitContent):
38736         * rendering/RenderFlexibleBox.cpp:
38737         (WebCore::RenderFlexibleBox::isMultiline):
38738         * rendering/style/RenderStyle.h:
38739         * rendering/style/RenderStyleConstants.h:
38740
38741 2012-10-22  Mike West  <mkwst@chromium.org>
38742
38743         'image/pjpeg' should be treated as an image by Web Inspector.
38744         https://bugs.webkit.org/show_bug.cgi?id=100001
38745
38746         Reviewed by Pavel Feldman.
38747
38748         It's not exactly a "real" MIME type, but it's in use.
38749
38750         * inspector/front-end/NetworkManager.js:
38751         (WebInspector.NetworkManager):
38752             Adding 'image/pjpeg' as an image MIME type.
38753
38754 2012-10-22  Sheriff Bot  <webkit.review.bot@gmail.com>
38755
38756         Unreviewed, rolling out r132119.
38757         http://trac.webkit.org/changeset/132119
38758         https://bugs.webkit.org/show_bug.cgi?id=100019
38759
38760         Fails its own test on Mac platforms. (Requested by leviw on
38761         #webkit).
38762
38763         * page/EventHandler.cpp:
38764         (WebCore::EventHandler::handleGestureEvent):
38765         (WebCore::EventHandler::sendContextMenuEventForGesture):
38766         * page/EventHandler.h:
38767         (EventHandler):
38768
38769 2012-10-22  Hans Muller  <hmuller@adobe.com>
38770
38771         [CSS Exclusions] Points on the bottom and right edges of an exclusion shape should be classified as "outside"
38772         https://bugs.webkit.org/show_bug.cgi?id=98967
38773
38774         Reviewed by Dirk Schulze.
38775
38776         Changed the way lines are represented in the ExclusionShapeInsideInfo and ExclusionShape classes
38777         so that they're consistent with the rendering code that depends on them.  Lines are now defined
38778         by logicalTop, logicalHeight, instead of logicalTop,logicalBottom.  This a clean-up, not a change
38779         in functionality. It's already covered by the existing fast/exclusions LayoutTests.
38780
38781         Test: fast/exclusions/shape-inside/shape-inside-bottom-edge.html
38782
38783         * rendering/ExclusionPolygon.cpp:
38784         (WebCore::ExclusionPolygon::getExcludedIntervals):
38785         (WebCore::ExclusionPolygon::getIncludedIntervals):
38786         * rendering/ExclusionPolygon.h:
38787         * rendering/ExclusionRectangle.cpp:
38788         (WebCore::ExclusionRectangle::getExcludedIntervals):
38789         (WebCore::ExclusionRectangle::getIncludedIntervals):
38790         * rendering/ExclusionRectangle.h:
38791         * rendering/ExclusionShape.h:
38792         (LineSegment): Moved the struct fields below the constructor per webkit style.
38793         (ExclusionShape):
38794         (WebCore::ExclusionShape::minYForLogicalLine):
38795         (WebCore::ExclusionShape::maxYForLogicalLine):
38796         * rendering/ExclusionShapeInsideInfo.cpp:
38797         (WebCore::ExclusionShapeInsideInfo::computeSegmentsForLine):
38798         * rendering/ExclusionShapeInsideInfo.h:
38799         (ExclusionShapeInsideInfo):
38800         (WebCore::ExclusionShapeInsideInfo::lineOverlapsShapeBounds): Changed the test to not include
38801             lines whose logicalTop is equal to the shape's top+height.
38802         * rendering/RenderBlockLineLayout.cpp:
38803         (WebCore::RenderBlock::layoutRunsAndFloatsInRange):
38804
38805 2012-10-22  Chris Rogers  <crogers@google.com>
38806
38807         Update some AudioContext create() method names to latest Web Audio spec
38808         https://bugs.webkit.org/show_bug.cgi?id=99888
38809
38810         Reviewed by Adam Barth.
38811
38812         The following AudioContext method names are being changed, with legacy support for the old names:
38813         createGainNode -> createGain
38814         createDelayNode -> createDelay
38815         createJavaScriptNode -> createScriptProcessor
38816
38817         For details:
38818         https://www.w3.org/Bugs/Public/show_bug.cgi?id=18332
38819
38820         Tests changed: webaudio/delaynode.html, webaudio/gain.html, webaudio/javascriptaudionode.html
38821         to test coverage of the new names.
38822
38823         * Modules/webaudio/AudioBufferSourceNode.idl:
38824         * Modules/webaudio/AudioContext.cpp:
38825         (WebCore::AudioContext::createScriptProcessor):
38826         (WebCore::AudioContext::createGain):
38827         (WebCore::AudioContext::createDelay):
38828         * Modules/webaudio/AudioContext.h:
38829         (AudioContext):
38830         * Modules/webaudio/AudioContext.idl:
38831         * page/FeatureObserver.h:
38832
38833 2012-10-22  Varun Jain  <varunjain@chromium.org>
38834
38835         Context menu generated from touch gestures on textareas has
38836         context of the cursor position instead of the position where the event occurs.
38837         https://bugs.webkit.org/show_bug.cgi?id=99520
38838
38839         Reviewed by Kenneth Rohde Christiansen.
38840
38841         Send a synthetic mouse down event for context menu-summoning-gesture events so
38842         that textareas can correctly set cursors before receiving the context menu event.
38843
38844         Test: fast/events/touch/gesture/right-click-gestures-set-cursor-at-correct-position.html
38845
38846         * page/EventHandler.cpp:
38847         (WebCore::EventHandler::handleGestureEvent):
38848         (WebCore::EventHandler::handleGestureTwoFingerTap):
38849         (WebCore):
38850         (WebCore::EventHandler::sendContextMenuEventForGesture):
38851         * page/EventHandler.h:
38852         (EventHandler):
38853
38854 2012-10-22  Zeno Albisser  <zeno@webkit.org>
38855
38856         TextureMapperSurfaceBackingStore should check if GraphicsSurface is valid.
38857         https://bugs.webkit.org/show_bug.cgi?id=100002
38858
38859         Reviewed by Kenneth Rohde Christiansen.
38860
38861         * platform/graphics/texmap/TextureMapperBackingStore.cpp:
38862         (WebCore::TextureMapperSurfaceBackingStore::setGraphicsSurface):
38863             Check if a surface has been created before accessing the pointer.
38864         (WebCore::TextureMapperSurfaceBackingStore::paintToTextureMapper):
38865             Check if m_graphicsSurface is a valid pointer before dereferencing it.
38866
38867 2012-10-22  Michael Saboff  <msaboff@apple.com>
38868
38869         r131955 is has improper function call in LinkHashChromium.cpp
38870         https://bugs.webkit.org/show_bug.cgi?id=100008
38871
38872         Reviewed by Alexey Proskuryakov.
38873
38874         Followup fix to r131955 for chromium platform.  Added call to 
38875         (const UChar*, unsigned) version of visitedLinkHash from String& version.
38876
38877         * platform/chromium/LinkHashChromium.cpp:
38878         (WebCore::visitedLinkHash):
38879
38880 2012-10-22  Aaron Colwell  <acolwell@chromium.org>
38881
38882         webkitsourceopen event doesn't always fire
38883         https://bugs.webkit.org/show_bug.cgi?id=99868
38884
38885         Reviewed by Adam Barth.
38886
38887         Changed MediaSource to derive from ActiveDOMObject so that event listeners
38888         will still fire even if all references to the object go out of scope.
38889
38890         Test: http/tests/media/media-source/video-media-source-garbage-collection-before-sourceopen.html
38891
38892         * Modules/mediasource/MediaSource.cpp:
38893         (WebCore::MediaSource::create):
38894         (WebCore::MediaSource::MediaSource):
38895         (WebCore::MediaSource::scriptExecutionContext):
38896         (WebCore):
38897         (WebCore::MediaSource::hasPendingActivity):
38898         (WebCore::MediaSource::stop): Clears m_player & m_asyncEventQueue so they don't indicate pending activity anymore.
38899         * Modules/mediasource/MediaSource.h:
38900         (MediaSource):
38901         * Modules/mediasource/MediaSource.idl:
38902         * Modules/mediasource/MediaSourceRegistry.cpp:
38903         (WebCore::MediaSourceRegistry::registerMediaSourceURL): Added setPendingActivity() call so the MediaSource object stays active while in the registry.
38904         (WebCore::MediaSourceRegistry::unregisterMediaSourceURL): Added unsetPendingActivity() call so the MediaSource object can become inactive after being removed from the registry.
38905
38906 2012-10-22  Adam Barth  <abarth@webkit.org>
38907
38908         [V8] Vastly simplify V8GCController's NodeVisitor
38909         https://bugs.webkit.org/show_bug.cgi?id=99884
38910
38911         Reviewed by Kentaro Hara.
38912
38913         NodeVisitor was vastly more complicated than necessary.
38914
38915         This patch improve performance on these new gc benchmarks:
38916
38917         gc-forest: 1.14% better
38918         gc-mini-tree: 5.09% better
38919         gc-tree: 4.60% better
38920
38921         * bindings/v8/V8GCController.cpp:
38922         (WebCore::ObjectVisitor::visitDOMWrapper):
38923         (WebCore::addImplicitReferencesForNodeWithEventListeners):
38924         (WebCore::rootForGC):
38925         (WebCore::NodeVisitor::visitDOMWrapper):
38926         (WebCore::NodeVisitor::applyGrouping):
38927         (NodeVisitor):
38928
38929 2012-10-22  Emil A Eklund  <eae@chromium.org>
38930
38931         Change baselinePosition and maxAscent/maxDescent to int
38932         https://bugs.webkit.org/show_bug.cgi?id=99767
38933
38934         Reviewed by Levi Weintraub.
38935
38936         Currently baselinePostion, maxAscent and maxDescent are
38937         LayoutUnits while ascent, descent and m_lineHeight are ints.
38938         This can lead to subtle alignment and rounding problems.
38939
38940         Change baselinePosition and maxAscent/maxDescent to int to avoid
38941         these issues.
38942
38943         Test: fast/sub-pixel/replaced-element-baseline.html
38944
38945         * editing/FrameSelection.cpp:
38946         (WebCore::repaintRectForCaret):
38947         Inflate Y dimension just like we do for X to ensure that the
38948         repaint rect fully contains the caret.
38949
38950         * rendering/InlineBox.cpp:
38951         (WebCore::InlineBox::baselinePosition):
38952         * rendering/InlineBox.h:
38953         (InlineBox):
38954         * rendering/InlineFlowBox.cpp:
38955         (WebCore::InlineFlowBox::adjustMaxAscentAndDescent):
38956         (WebCore::InlineFlowBox::computeLogicalBoxHeights):
38957         (WebCore::InlineFlowBox::placeBoxesInBlockDirection):
38958         Change maxAscent/maxDescent to int to match ascent/descent.
38959         
38960         * rendering/InlineFlowBox.h:
38961         (InlineFlowBox):
38962         * rendering/InlineTextBox.cpp:
38963         (WebCore::InlineTextBox::baselinePosition):
38964         * rendering/InlineTextBox.h:
38965         (InlineTextBox):
38966         * rendering/RenderBlock.cpp:
38967         (WebCore::RenderBlock::baselinePosition):
38968         (WebCore::RenderBlock::firstLineBoxBaseline):
38969         (WebCore::RenderBlock::lastLineBoxBaseline):
38970         * rendering/RenderBlock.h:
38971         (RenderBlock):
38972         * rendering/RenderBox.cpp:
38973         (WebCore::RenderBox::baselinePosition):
38974         * rendering/RenderBox.h:
38975         (WebCore::RenderBox::firstLineBoxBaseline):
38976         (WebCore::RenderBox::lastLineBoxBaseline):
38977         (RenderBox):
38978         * rendering/RenderBoxModelObject.h:
38979         (RenderBoxModelObject):
38980         * rendering/RenderFlexibleBox.cpp:
38981         (WebCore::RenderFlexibleBox::baselinePosition):
38982         (WebCore::RenderFlexibleBox::firstLineBoxBaseline):
38983         * rendering/RenderFlexibleBox.h:
38984         * rendering/RenderInline.cpp:
38985         (WebCore::RenderInline::baselinePosition):
38986         * rendering/RenderInline.h:
38987         (RenderInline):
38988         * rendering/RenderListBox.cpp:
38989         (WebCore::RenderListBox::baselinePosition):
38990         * rendering/RenderListBox.h:
38991         (RenderListBox):
38992         * rendering/RenderListMarker.cpp:
38993         (WebCore::RenderListMarker::baselinePosition):
38994         * rendering/RenderListMarker.h:
38995         (RenderListMarker):
38996         * rendering/RenderSlider.cpp:
38997         (WebCore::RenderSlider::baselinePosition):
38998         * rendering/RenderSlider.h:
38999         (RenderSlider):
39000         * rendering/RenderTable.cpp:
39001         (WebCore::RenderTable::baselinePosition):
39002         (WebCore::RenderTable::lastLineBoxBaseline):
39003         (WebCore::RenderTable::firstLineBoxBaseline):
39004         * rendering/RenderTable.h:
39005         (RenderTable):
39006         * rendering/RenderTableSection.cpp:
39007         (WebCore::RenderTableSection::firstLineBoxBaseline):
39008         * rendering/RenderTableSection.h:
39009         (RenderTableSection):
39010         * rendering/RenderTextControlMultiLine.cpp:
39011         (WebCore::RenderTextControlMultiLine::baselinePosition):
39012         * rendering/RenderTextControlMultiLine.h:
39013         (RenderTextControlMultiLine):
39014         * rendering/RenderTheme.cpp:
39015         (WebCore::RenderTheme::baselinePosition):
39016         * rendering/RenderTheme.h:
39017         (RenderTheme):
39018         * rendering/RenderThemeSafari.cpp:
39019         (WebCore::RenderThemeSafari::baselinePosition):
39020         * rendering/RenderThemeSafari.h:
39021         (RenderThemeSafari):
39022         * rendering/RootInlineBox.cpp:
39023         (WebCore::RootInlineBox::baselinePosition):
39024         (WebCore::RootInlineBox::alignBoxesInBlockDirection):
39025         * rendering/RootInlineBox.h:
39026         (RootInlineBox):
39027         * rendering/mathml/RenderMathMLBlock.cpp:
39028         (WebCore::RenderMathMLBlock::baselinePosition):
39029         (WebCore::RenderMathMLTable::firstLineBoxBaseline):
39030         * rendering/mathml/RenderMathMLBlock.h:
39031         (RenderMathMLBlock):
39032         (RenderMathMLTable):
39033         * rendering/mathml/RenderMathMLFraction.cpp:
39034         (WebCore::RenderMathMLFraction::firstLineBoxBaseline):
39035         * rendering/mathml/RenderMathMLFraction.h:
39036         (RenderMathMLFraction):
39037         * rendering/mathml/RenderMathMLOperator.cpp:
39038         (WebCore::RenderMathMLOperator::firstLineBoxBaseline):
39039         * rendering/mathml/RenderMathMLOperator.h:
39040         * rendering/mathml/RenderMathMLUnderOver.cpp:
39041         (WebCore::RenderMathMLUnderOver::firstLineBoxBaseline):
39042         * rendering/mathml/RenderMathMLUnderOver.h:
39043         (RenderMathMLUnderOver):
39044
39045 2012-10-22  Emil A Eklund  <eae@chromium.org>
39046
39047         Modify LayoutState ASSERTS to support SATURATED_LAYOUT_ARITHMETIC
39048         https://bugs.webkit.org/show_bug.cgi?id=98692
39049
39050         Reviewed by Dan Bernstein.
39051
39052         We currently overflow/wrap when computing the delta in
39053         RenderBlock::setLogicalTopForChild in cases where we have an
39054         element with a width or height exceeding maxLayoutUnit. When
39055         the delta is later added back in RenderBlock::layoutBlockChild
39056         the number wraps again getting us back to the correct value.
39057
39058         With SATURATED_LAYOUT_ARITHMETIC enabled the values no longer
39059         wraps, which seems like the correct thing to do however this
39060         causes the compare to fail for obvious reasons. By accounting
39061         for this we can keep the asserts (which have proven very
39062         helpful) even when SATURATED_LAYOUT_ARITHMETIC is turned on.
39063
39064         No new tests, covered by existing tests.
39065
39066         * rendering/LayoutState.cpp:
39067         (WebCore::LayoutState::LayoutState):
39068         * rendering/LayoutState.h:
39069         (WebCore::LayoutState::LayoutState):
39070         (LayoutState):
39071         * rendering/RenderBlock.cpp:
39072         (WebCore::RenderBlock::layoutBlockChild):
39073         * rendering/RenderView.cpp:
39074         (WebCore::RenderView::layout):
39075         * rendering/RenderView.h:
39076         (WebCore::RenderView::addLayoutDelta):
39077         (RenderView):
39078         (WebCore::RenderView::layoutDeltaMatches):
39079
39080 2012-10-22  Tony Chang  <tony@chromium.org>
39081
39082         Fix some baseline flexbox alignment
39083         https://bugs.webkit.org/show_bug.cgi?id=99879
39084
39085         Reviewed by Ojan Vafai.
39086
39087         Fix a bug where we weren't handling margin properly on inline-flexbox.
39088         Fix a bug where we weren't getting the edge of the content box properly when synthesizing
39089         a baseline.
39090
39091         Test: css3/flexbox/flexbox-baseline-margins.html
39092
39093         * rendering/RenderBlock.cpp:
39094         (WebCore::RenderBlock::baselinePosition):
39095         (WebCore::RenderBlock::inlineBlockBaseline): Add a new method that is used when calculating an inline-block's
39096         baseline. Previously we would use lastLineBoxBaseline.
39097         (WebCore::RenderBlock::lastLineBoxBaseline): Pass in direction and when searching children, use inlineBlockBaseline.
39098         * rendering/RenderBlock.h:
39099         (RenderBlock): Make lastLineBoxBaseline non-virtual.
39100         * rendering/RenderBox.h:
39101         (WebCore::RenderBox::inlineBlockBaseline): Replace lastLineBoxBaseline with inlineBlockBaseline.
39102         * rendering/RenderFlexibleBox.cpp:
39103         (WebCore::synthesizedBaselineFromContentBox): Helper method for getting the baseline from the content box.
39104         (WebCore::RenderFlexibleBox::baselinePosition): Always include the margin. This fixes the inline-flexbox case.
39105         (WebCore::RenderFlexibleBox::firstLineBoxBaseline): Fix a case where we didn't synthesize a baseline.  Returning -1 means there is no baseline, but we can
39106         synthesize a baseline if we have a flexitem without text.
39107         (WebCore::RenderFlexibleBox::inlineBlockBaseline):
39108         * rendering/RenderFlexibleBox.h:
39109         * rendering/RenderTable.cpp: Replace lastLineBoxBaseline with inlineBlockBaseline.
39110         (WebCore::RenderTable::inlineBlockBaseline): Try to make comment more direct.
39111         * rendering/RenderTable.h:
39112         (RenderTable): Replace lastLineBoxBaseline with inlineBlockBaseline.
39113
39114 2012-10-22  Levi Weintraub  <leviw@chromium.org>
39115
39116         Unreviewed Chromium build fix following r132074.
39117
39118         * WebCore.gypi:
39119
39120 2012-10-22  Mario Sanchez Prada  <msanchez@igalia.com>
39121
39122         [GTK] Don't use deprecated AccessibilityObject methods after r99502
39123         https://bugs.webkit.org/show_bug.cgi?id=99985
39124
39125         Reviewed by Chris Fleizach.
39126
39127         Update callers for AccessibilityObject's title() and
39128         accessibilityDescription() so they now use AccessibilityText.
39129
39130         * accessibility/gtk/WebKitAccessibleUtil.cpp:
39131         (titleTagShouldBeUsedInDescriptionField): Internal helper function.
39132         (accessibilityTitle): New helper function, returns an String with
39133         the title for a AccessibilityObject, using AccessibleText.
39134         (accessibilityDescription): New helper function, returns an String with
39135         the description for a AccessibilityObject, using AccessibleText.
39136         * accessibility/gtk/WebKitAccessibleUtil.h: Added public
39137         declarations for accessibilityTitle and accessibilityDescription.
39138
39139         * accessibility/gtk/WebKitAccessibleWrapperAtk.cpp:
39140         (webkitAccessibleGetName): Use new helpers for retrieving the title.
39141         (webkitAccessibleGetDescription): Use new helpers for retrieving
39142         the title and description.
39143
39144         * accessibility/gtk/WebKitAccessibleInterfaceImage.cpp:
39145         (webkitAccessibleImageGetImageDescription): Use new helpers for
39146         retrieving the title.
39147
39148 2012-10-16  Andrey Kosyakov  <caseq@chromium.org>
39149
39150         Web Inspector: add timeline instrumentation for scrolling of a layer
39151         https://bugs.webkit.org/show_bug.cgi?id=99461
39152
39153         Reviewed by Pavel Feldman.
39154
39155         - added timeline instrumentation for scrolling of a layer;
39156         - added TRACE_EVENT for ScrollableArea::scrollPositionChanged()
39157
39158         * inspector/InspectorInstrumentation.cpp:
39159         (WebCore):
39160         (WebCore::InspectorInstrumentation::willScrollLayerImpl):
39161         (WebCore::InspectorInstrumentation::didScrollLayerImpl):
39162         * inspector/InspectorInstrumentation.h:
39163         (InspectorInstrumentation):
39164         (WebCore::InspectorInstrumentation::willScrollLayer):
39165         (WebCore):
39166         (WebCore::InspectorInstrumentation::didScrollLayer):
39167         * inspector/InspectorTimelineAgent.cpp:
39168         (TimelineRecordType):
39169         (WebCore::InspectorTimelineAgent::willScroll):
39170         (WebCore):
39171         (WebCore::InspectorTimelineAgent::didScroll):
39172         * inspector/InspectorTimelineAgent.h:
39173         (InspectorTimelineAgent):
39174         * inspector/front-end/TimelineModel.js:
39175         * inspector/front-end/TimelinePresentationModel.js:
39176         (WebInspector.TimelinePresentationModel._initRecordStyles):
39177         * rendering/RenderLayer.cpp:
39178         (WebCore::RenderLayer::scrollTo):
39179         * platform/ScrollableArea.cpp:
39180         (WebCore::ScrollableArea::scrollPositionChanged):
39181
39182 2012-10-22  Jan Keromnes  <janx@linux.com>
39183
39184         Moved cmdevtools.js to folder cm/
39185
39186         Web Inspector: Move file `cmdevtools.css` to `cm/`
39187         https://bugs.webkit.org/show_bug.cgi?id=99956
39188
39189         Reviewed by Pavel Feldman.
39190
39191         The file cmdevtools.js belongs to the CodeMirror editor experiment in cm/.
39192
39193         * WebCore.gypi:
39194         * WebCore.vcproj/WebCore.vcproj:
39195         * inspector/front-end/WebKit.qrc:
39196         * inspector/front-end/cm/cmdevtools.css: Renamed from Source/WebCore/inspector/front-end/cmdevtools.css.
39197         (.CodeMirror):
39198         (.CodeMirror-scroll):
39199         (.cm-highlight):
39200         (@-webkit-keyframes fadeout):
39201         (to):
39202         (.cm-breakpoint):
39203         (.cm-breakpoint-disabled):
39204         (.cm-breakpoint-conditional):
39205         (.cm-execution-line):
39206         (.cm-s-web-inspector-js span.cm-keyword):
39207         (.cm-s-web-inspector-js span.cm-number):
39208         (.cm-s-web-inspector-js span.cm-comment):
39209         (.cm-s-web-inspector-js span.cm-string):
39210         (.cm-s-web-inspector-js span.cm-string-2):
39211         (.cm-s-web-inspector-css span.cm-keyword):
39212         (.cm-s-web-inspector-css span.cm-number):
39213         (.cm-s-web-inspector-css span.cm-comment):
39214         (.cm-s-web-inspector-css span.cm-string):
39215         (.cm-s-web-inspector-css span.cm-string-2):
39216         (.cm-s-web-inspector-css span.cm-link):
39217         (.cm-s-web-inspector-css span.cm-variable):
39218         (.cm-s-web-inspector-html span.cm-meta):
39219         (.cm-s-web-inspector-html span.cm-comment):
39220         (.cm-s-web-inspector-html span.cm-string):
39221         (.cm-s-web-inspector-html span.cm-tag):
39222         (.cm-s-web-inspector-html span.cm-attribute):
39223         (.cm-s-web-inspector-html span.cm-link):
39224         (.webkit-html-message-bubble):
39225         (.webkit-html-warning-message):
39226         (.webkit-html-error-message):
39227         (.webkit-html-message-line):
39228         (.webkit-html-message-line-hover):
39229
39230 2012-10-22  Vsevolod Vlasov  <vsevik@chromium.org>
39231
39232         Web Inspector: Prepare mappings to moving uiSourceCodes creation out of them to workspace.
39233         https://bugs.webkit.org/show_bug.cgi?id=99997
39234
39235         Reviewed by Pavel Feldman.
39236
39237         Source mappings could now store a link to temporary uiSourceCodes only.
39238         Otherwise it should retrieve uiSourceCodes from workspace by URL.
39239         Original uiSourceCodes are now temporary in CompilerScriptMapping.
39240
39241         * inspector/front-end/CompilerScriptMapping.js:
39242         (WebInspector.CompilerScriptMapping):
39243         (WebInspector.CompilerScriptMapping.prototype.rawLocationToUILocation):
39244         (WebInspector.CompilerScriptMapping.prototype.loadSourceMapForScript):
39245         (WebInspector.CompilerScriptMapping.prototype._reset):
39246         * inspector/front-end/NetworkUISourceCodeProvider.js:
39247         (WebInspector.NetworkUISourceCodeProvider):
39248         (WebInspector.NetworkUISourceCodeProvider.prototype._parsedScriptSource):
39249         (WebInspector.NetworkUISourceCodeProvider.prototype._resourceAdded):
39250         (WebInspector.NetworkUISourceCodeProvider.prototype._addUISourceCode):
39251         (WebInspector.NetworkUISourceCodeProvider.prototype._projectWillReset):
39252         * inspector/front-end/SASSSourceMapping.js:
39253         (WebInspector.SASSSourceMapping):
39254         (_bindUISourceCode):
39255         (_reset):
39256
39257 2012-10-22  Nicolas Dufresne <nicolas.dufresne@collabora.com>
39258
39259         Gstreamer 1.0 not working
39260         https://bugs.webkit.org/show_bug.cgi?id=99852
39261
39262         Reviewed by Philippe Normand.
39263
39264         There was a series of trivial issue, g_object_is_floating() was called
39265         on type GstCaps (which is not a GObject), webkitGstGetPadCaps() was
39266         returning non-fixed caps and GST_MESSAGE_DURATION has been renamed
39267         to GST_MESSAGE_DURATION_CHANGED.
39268
39269         Most failing test passes now.
39270
39271         * platform/graphics/gstreamer/GRefPtrGStreamer.cpp:
39272         (WTF::adoptGRef):
39273         * platform/graphics/gstreamer/GStreamerVersioning.cpp:
39274         (webkitGstGetPadCaps):
39275         * platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:
39276         (WebCore::MediaPlayerPrivateGStreamer::handleMessage):
39277
39278 2012-10-22  Vsevolod Vlasov  <vsevik@chromium.org>
39279
39280         Web Inspector: Treat dynamic anonymous scripts as other anonymous and fix anonymous script editing and breakpoints.
39281         https://bugs.webkit.org/show_bug.cgi?id=99989
39282
39283         Reviewed by Pavel Feldman.
39284
39285         Dynamic anonymous scripts are now mapped to anonymous temporary uiSourceCodes.
39286         ResourceScriptMapping now supports two types of temporary uiSourceCodes:
39287          - original uiSourceCodes represent scripts while main uiSourceCodes are diverged;
39288          - temporary uiSourceCodes represent scripts for which resources are not yet loaded.
39289
39290         * inspector/front-end/BreakpointManager.js:
39291         (WebInspector.BreakpointManager.breakpointStorageId):
39292         (WebInspector.BreakpointManager.Storage.prototype._updateBreakpoint):
39293         * inspector/front-end/NetworkUISourceCodeProvider.js:
39294         (WebInspector.NetworkUISourceCodeProvider.prototype._parsedScriptSource):
39295         * inspector/front-end/ResourceScriptMapping.js:
39296         (WebInspector.ResourceScriptMapping):
39297         (WebInspector.ResourceScriptMapping.prototype.rawLocationToUILocation):
39298         (WebInspector.ResourceScriptMapping.prototype._hasMergedToVM):
39299         (WebInspector.ResourceScriptMapping.prototype.addScript):
39300         (WebInspector.ResourceScriptMapping.prototype._deleteOriginalUISourceCodeForScripts):
39301         (WebInspector.ResourceScriptMapping.prototype._deleteTemporaryUISourceCodeForScripts):
39302         (WebInspector.ResourceScriptMapping.prototype._bindUISourceCodeToScripts):
39303         (WebInspector.ResourceScriptMapping.prototype._createUISourceCode):
39304         (WebInspector.ResourceScriptMapping.prototype._getOrCreateTemporaryUISourceCode):
39305         (WebInspector.ResourceScriptMapping.prototype._getOrCreateOriginalUISourceCode):
39306         (WebInspector.ResourceScriptMapping.prototype._uiSourceCodeAddedToWorkspace):
39307         (WebInspector.ResourceScriptMapping.prototype._scriptsForUISourceCode.get if):
39308         (WebInspector.ResourceScriptMapping.prototype._reset):
39309
39310 2012-10-22  Bruno de Oliveira Abinader  <bruno.abinader@basyskom.com>
39311
39312         [css3-text] Add rendering support for -webkit-text-decoration-style
39313         https://bugs.webkit.org/show_bug.cgi?id=94094
39314
39315         Reviewed by Julien Chaffraix.
39316
39317         This patch implements the "text-decoration-style" property rendering as
39318         specified in CSS3 working draft, with "-webkit-" prefix. The specification can
39319         be found here: http://dev.w3.org/csswg/css3-text/#text-decoration-style
39320
39321         Additionally, Mozilla implementation details can be found here:
39322         https://developer.mozilla.org/en/CSS/text-decoration-style
39323
39324         Tests: fast/css3-text/css3-text-decoration/repaint/repaint-text-decoration-style.html
39325                fast/css3-text/css3-text-decoration/text-decoration-style.html
39326
39327         * platform/graphics/GraphicsContext.h:
39328         * platform/graphics/cairo/GraphicsContextCairo.cpp:
39329         (WebCore::GraphicsContext::setPlatformStrokeStyle):
39330         * platform/graphics/cg/GraphicsContextCG.cpp:
39331         (WebCore::GraphicsContext::drawLine):
39332         * platform/graphics/qt/GraphicsContextQt.cpp:
39333         (WebCore::toQPenStyle):
39334         (WebCore::GraphicsContext::drawLine):
39335         * platform/graphics/skia/PlatformContextSkia.cpp:
39336         (WebCore::PlatformContextSkia::setupPaintForStroking):
39337         * platform/graphics/wince/GraphicsContextWinCE.cpp:
39338         (WebCore::createPen):
39339         * platform/graphics/wx/GraphicsContextWx.cpp:
39340         (WebCore::strokeStyleToWxPenStyle):
39341         Added 'DoubleStroke' and 'WavyStroke' to StrokeStyle enum and updated
39342         platform-specific stroke handling. Some styles requires
39343         platform-specific implementation (handled in bug 92868).
39344         * rendering/InlineTextBox.cpp:
39345         (WebCore::InlineTextBox::paint):
39346         (WebCore::textDecorationStyleToStrokeStyle): Added static function that
39347         translates text decoration to stroke styles.
39348         (WebCore::InlineTextBox::paintDecoration): Text decoration style does
39349         not specify a property for line thickness (like border-width does for
39350         border style), so we statically set it to 1 for now. The 'double' style
39351         implementation simply adds a parallel line (depending if it is
39352         underline, overline or line-through) and the space between lines follows
39353         the approach used by border's 'double' style.
39354         * rendering/InlineTextBox.h:
39355         (InlineTextBox):
39356         * rendering/style/RenderStyle.h:
39357         * rendering/style/RenderStyleConstants.h:
39358         Added text decoration style rendering support to
39359         InlineTextBox::paintDecoration().
39360
39361 2012-10-22  Allan Sandfeld Jensen  <allan.jensen@digia.com>
39362
39363         [Qt] Use the DNS resolve queue
39364         https://bugs.webkit.org/show_bug.cgi?id=99994
39365
39366         Reviewed by Simon Hausmann.
39367
39368         Use the DNS resolve queue, to ensure we can prefetch more than just the first 10 hostname encountered
39369         during parsing. It also ensure each hostname is only appears once in the queue.
39370
39371         * Target.pri:
39372         * platform/network/qt/DNSQt.cpp: Added.
39373         (DnsPrefetchHelper):
39374         (WebCore::DnsPrefetchHelper::DnsPrefetchHelper):
39375         (WebCore::DnsPrefetchHelper::lookup):
39376         (WebCore::DnsPrefetchHelper::lookedUp):
39377         (WebCore::prefetchDNS):
39378         (WebCore::DNSResolveQueue::platformProxyIsEnabledInSystemPreferences):
39379         (WebCore::DNSResolveQueue::platformResolve):
39380         * platform/network/qt/DnsPrefetchHelper.cpp: Removed.
39381         * platform/network/qt/DnsPrefetchHelper.h: Removed.
39382         (DnsPrefetchHelper):
39383
39384 2012-10-22  Erik Arvidsson  <arv@chromium.org>
39385
39386         HTMLBaseElement href attribute binding returns wrong URL
39387         https://bugs.webkit.org/show_bug.cgi?id=98184
39388
39389         Reviewed by Ojan Vafai.
39390
39391         Resolve the href attribute binding relative to the document URL instead of resolving it to the
39392         base element itself. If there is no href attribute this should return the fallback base URL.
39393
39394         http://www.whatwg.org/specs/web-apps/current-work/multipage/semantics.html#the-base-element
39395
39396         Tests: fast/dom/HTMLAnchorElement/set-href-attribute-rebase.html
39397                fast/dom/HTMLBaseElement/href-attribute-resolves-with-respect-to-document.html
39398
39399         * html/HTMLBaseElement.cpp:
39400         (WebCore::HTMLBaseElement::href): Don't use completeURL. Resolve href based on document's URL instead
39401         of the generic [Reflect, URL] binding.
39402         (WebCore::HTMLBaseElement::setHref): Just sets the attribute.
39403         * html/HTMLBaseElement.h:
39404         * html/HTMLBaseElement.idl: We can no longer use [Reflect, URL]
39405
39406 2012-10-22  Vsevolod Vlasov  <vsevik@chromium.org>
39407
39408         Web Inspector: Revisions should not be restored and persisted for anonymous uiSourceCodes.
39409         https://bugs.webkit.org/show_bug.cgi?id=99991
39410
39411         Reviewed by Alexander Pavlov.
39412
39413         * inspector/front-end/UISourceCode.js:
39414         (WebInspector.UISourceCode):
39415
39416 2012-10-22  Florin Malita  <fmalita@chromium.org>
39417
39418         Incorrect embedded SVG image sizing on first load
39419         https://bugs.webkit.org/show_bug.cgi?id=99489
39420
39421         Reviewed by Nikolas Zimmermann.
39422
39423         RenderSVGImage::updateImageViewport() must be called after the image loader is finished,
39424         to ensure that a SVGImageCache::SizeAndScalesMap entry is created even if layout has
39425         already been performed.
39426
39427         Test: svg/custom/svg-image-initial-size.html
39428
39429         * rendering/svg/RenderSVGImage.cpp:
39430         (WebCore::RenderSVGImage::imageChanged):
39431
39432 2012-10-22  Keishi Hattori  <keishi@webkit.org>
39433
39434         Remove monthFormatInLDML
39435         https://bugs.webkit.org/show_bug.cgi?id=99971
39436
39437         Reviewed by Kent Tamura.
39438
39439         Removing monthFormatInLDML from localized strings because Localizer class now provides the same functionality.
39440
39441         No new tests. Just removing unused code.
39442
39443         * platform/LocalizedStrings.h:
39444         (WebCore):
39445
39446 2012-10-22  Zan Dobersek  <zandobersek@gmail.com>
39447
39448         [GTK] Enable Microdata DOM API
39449         https://bugs.webkit.org/show_bug.cgi?id=99033
39450
39451         Reviewed by Martin Robinson.
39452
39453         Enable the Microdata DOM API, but still disable it when the unstable
39454         features should be disabled (for instance in release builds).
39455
39456         No new tests - related tests are being unskipped and are expected to pass.
39457
39458         * GNUmakefile.am:
39459         * GNUmakefile.features.am:
39460         * bindings/gobject/GNUmakefile.am: Add the required files so the Microdata
39461         API GObject bindings are generated and built.
39462
39463 2012-10-22  Zan Dobersek  <zandobersek@gmail.com>
39464
39465         [GTK] Enable CSP 1.1
39466         https://bugs.webkit.org/show_bug.cgi?id=99064
39467
39468         Reviewed by Martin Robinson.
39469
39470         Enable CSP 1.1 in development builds but keep it disabled when the
39471         unstable features should not be enabled (like in stable releases).
39472
39473         No new tests - they already exist and will be unskipped.
39474
39475         * GNUmakefile.am:
39476         * GNUmakefile.features.am:
39477
39478 2012-10-22  Jocelyn Turcotte  <jocelyn.turcotte@digia.com>
39479
39480         [Qt] Fix "ASSERTION FAILED: !document->inPageCache()" when loading a page
39481         https://bugs.webkit.org/show_bug.cgi?id=98514
39482
39483         Reviewed by Kenneth Rohde Christiansen.
39484
39485         The problem is that we call setFixedVisibleContentRect, which triggers
39486         a layout, after the document has been put in the page cache and before
39487         the load has been actually committed.
39488
39489         This applies the same trick as with setFixedLayoutSize by passing the rect
39490         in Frame::createView and calling setFixedVisibleContentRect before the
39491         new FrameView gets attached to the Frame/Document to prevent the layout.
39492
39493         * WebCore.exp.in:
39494         * page/Frame.cpp:
39495         (WebCore::Frame::createView): Give a default value to the fixedLayoutSize and
39496         useFixedLayout arguments as well since they are used exceptionally.
39497         * page/Frame.h:
39498         (Frame):
39499
39500 2012-10-22  Allan Sandfeld Jensen  <allan.jensen@digia.com>
39501
39502         [Qt] Handle GET of blob URLs.
39503         https://bugs.webkit.org/show_bug.cgi?id=99053
39504
39505         Reviewed by Simon Hausmann.
39506
39507         Let BlobResourceHandle handle Blob request internally.
39508
39509         * platform/network/qt/ResourceHandleQt.cpp:
39510         (WebCore::ResourceHandle::loadResourceSynchronously):
39511
39512 2012-10-22  Kenichi Ishibashi  <bashi@chromium.org>
39513
39514         HarfBuzzShaper::shape() should return false when it adds no glyph to GlyphBuffer
39515         https://bugs.webkit.org/show_bug.cgi?id=99966
39516
39517         Reviewed by Kent Tamura.
39518
39519         If no glyph is added to GlyphBuffer, HarfBuzzShaper::shape() returns false.
39520
39521         No new tests. Confirmed the fix by using Address Sanitizer.
39522
39523         * platform/graphics/harfbuzz/ng/HarfBuzzShaper.cpp:
39524         (WebCore::HarfBuzzShaper::shape):
39525         (WebCore::HarfBuzzShaper::fillGlyphBuffer): Returns false when glyphBuffer.size() == 0
39526         * platform/graphics/harfbuzz/ng/HarfBuzzShaper.h:
39527         (HarfBuzzShaper):
39528
39529 2012-10-22  Shinya Kawanaka  <shinyak@chromium.org>
39530
39531         [Shadow] ASSERT triggered when we try reprojecting fallback elements.
39532         https://bugs.webkit.org/show_bug.cgi?id=99815
39533
39534         Reviewed by Hajime Morita.
39535
39536         When fallback elements of InsertionPoint is reprojected, they were attached twice.
39537         We have to skip attaching them if they are attached. We also add a few ASSERT not to
39538         allow attaching twice if not necessary.
39539
39540         We have confirmed that this patch does not regress the performance. The summary of the
39541         performance test is the following:
39542
39543         Dromaeo/dom-modify.html [runs/s]:
39544                                median stdev    min    max
39545            without this patch:   3928   184   3655   4361
39546            with this patch   :   3925   178   3652   4350
39547
39548         Parser/html5-full-render.html [s]:
39549                                median stdev    min    max
39550            without this patch:   3821    17   3811   3850
39551            with this patch   :   3838   4.4   3833   3844
39552
39553         Test: fast/dom/shadow/content-reprojection-fallback-crash.html
39554
39555         * dom/ContainerNode.cpp:
39556         (WebCore):
39557         (WebCore::childAttachedAllowedWhenAttachingChildren): If true, children of this node might
39558         be attached in advance because of ShadowDOM attaching process.
39559         * dom/ContainerNode.h:
39560         (ContainerNode):
39561         (WebCore):
39562         (WebCore::ContainerNode::attachChildren):
39563         * dom/Element.cpp:
39564         (WebCore::Element::attach):
39565         * dom/ShadowRoot.cpp:
39566         (WebCore::ShadowRoot::attach):
39567
39568 2012-10-22  Pavel Feldman  <pfeldman@chromium.org>
39569
39570         Web Inspector: merge "docked" state into the "dock side" enum.
39571         https://bugs.webkit.org/show_bug.cgi?id=99717
39572
39573         Reviewed by Vsevolod Vlasov.
39574
39575         Otherwise, it is hard to manage these inter-dependent flags.
39576
39577         * WebCore.exp.in:
39578         * inspector/InspectorFrontendClient.h:
39579         (InspectorFrontendClient):
39580         * inspector/InspectorFrontendClientLocal.cpp:
39581         (WebCore::InspectorFrontendClientLocal::requestSetDockSide):
39582         (WebCore::InspectorFrontendClientLocal::setAttachedWindow):
39583         * inspector/InspectorFrontendClientLocal.h:
39584         (InspectorFrontendClientLocal):
39585         * inspector/InspectorFrontendHost.cpp:
39586         (WebCore::InspectorFrontendHost::requestSetDockSide):
39587         * inspector/InspectorFrontendHost.h:
39588         (InspectorFrontendHost):
39589         * inspector/InspectorFrontendHost.idl:
39590         * inspector/front-end/DockController.js:
39591         (WebInspector.DockController):
39592         (WebInspector.DockController.prototype._updateUI.get sides):
39593         (WebInspector.DockController.prototype._updateUI):
39594         (WebInspector.DockController.prototype._toggleDockState):
39595         * inspector/front-end/InspectorFrontendAPI.js:
39596         (InspectorFrontendAPI.setAttachedWindow):
39597         (InspectorFrontendAPI.setDockSide):
39598         * inspector/front-end/InspectorFrontendHostStub.js:
39599         (.WebInspector.InspectorFrontendHostStub.prototype.requestSetDockSide):
39600         * inspector/front-end/externs.js:
39601
39602 2012-10-22  MORITA Hajime  <morrita@google.com>
39603
39604         Unreviewed follow up to update test result after r132033.
39605
39606         * bindings/scripts/test/V8/V8TestObj.cpp:
39607         (WebCore::V8TestObj::installPerContextProperties):
39608
39609 2012-10-21  MORITA Hajime  <morrita@google.com>
39610
39611         [V8] V8EnablePerContext shouldn't require document() accessor to the native object.
39612         https://bugs.webkit.org/show_bug.cgi?id=99954
39613
39614         Reviewed by Kentaro Hara.
39615
39616         It now refers ScriptExecutionContext of the creation context instead of document() of
39617         wrapped object.
39618
39619         No new tests. No behavior change at this time.
39620
39621         * bindings/scripts/CodeGeneratorV8.pm:
39622         (GenerateImplementation):
39623
39624 2012-10-21  Kent Tamura  <tkent@chromium.org>
39625
39626         Page popup: Fix crash by events after closing
39627         https://bugs.webkit.org/show_bug.cgi?id=99951
39628
39629         Reviewed by Hajime Morita.
39630
39631         WebCore should provide a way to uninstall a DOMWindowPagePopup supplement.
39632
39633         No new tests. The bug is timing-dependent.
39634
39635         * page/DOMWindowPagePopup.cpp:
39636         (WebCore::DOMWindowPagePopup::uninstall):
39637         Added. Calls Supplementable::removeSupplement.
39638         * page/DOMWindowPagePopup.h:
39639         (DOMWindowPagePopup): Declare uninstall.
39640         * platform/Supplementable.h:
39641         (WebCore::Supplementable::removeSupplement): Added.
39642
39643 2012-10-21  Keishi Hattori  <keishi@webkit.org>
39644
39645         Refactor picker tests to fix flakiness and share code
39646         https://bugs.webkit.org/show_bug.cgi?id=99671
39647
39648         Reviewed by Kent Tamura.
39649
39650         Disable transitions until the picker is fully ready. This should fix flakiness.
39651
39652         No new tests.
39653
39654         * Resources/pagepopups/calendarPicker.css:
39655         (.preparing .unavailable): Disable transitions.
39656         (.preparing .available): Disable transitions.
39657         * Resources/pagepopups/calendarPicker.js:
39658         (CalendarPicker): Set "preparing" class.
39659         (CalendarPicker.prototype._handleWindowResize): Remove the "preparing" class when the window finishes resizing.
39660
39661 2012-10-21  Shinya Kawanaka  <shinyak@chromium.org>
39662
39663         Web Inspector: Shadow DOM: Node removal doesn't reflect.
39664         https://bugs.webkit.org/show_bug.cgi?id=99567
39665
39666         Reviewed by Pavel Feldman.
39667
39668         We have to call InspectorInstrumentation::willRemoveDOMNode() even if a node is in a shadow tree.
39669         Otherwise, node won't be removed from the inspector.
39670
39671         Test: inspector/elements/update-shadowdom.html
39672
39673         * dom/ContainerNode.cpp:
39674         (WebCore::dispatchChildRemovalEvents):
39675
39676 2012-10-21  Andreas Kling  <kling@webkit.org>
39677
39678         Remove Page::javaScriptURLsAreAllowed setting.
39679         <http://webkit.org/b/99944>
39680
39681         Reviewed by Anders Carlsson.
39682
39683         This setting was exposed through internal WebView API in Apple's WebKit1.
39684         There are no longer any clients of that API.
39685
39686         This is a step towards preventing elements from modifying their own attributes
39687         below attributeChanged().
39688
39689         * WebCore.exp.in:
39690         * WebCore.order:
39691         * bindings/ScriptControllerBase.cpp:
39692         (WebCore::ScriptController::executeIfJavaScriptURL):
39693         * html/HTMLAnchorElement.cpp:
39694         (WebCore::HTMLAnchorElement::parseAttribute):
39695         * page/Page.cpp:
39696         (WebCore::Page::Page):
39697         * page/Page.h:
39698         (Page):
39699
39700 2012-10-21  Hyungchan Kim  <hyungchan2.kim@lge.com>
39701
39702         Add a separate flag for rgb swizzling whether it can be modified or not
39703         https://bugs.webkit.org/show_bug.cgi?id=98728
39704
39705         BitmapTexture swizzles the source image if the OpenGL driver
39706         doesn't support the BGRA extension.
39707         In case of directly composited images, the source image should not
39708         be modified.
39709
39710         http://www.satine.org/research/webkit/snowleopard/snowstack.html
39711
39712         Reviewed by Noam Rosenthal.
39713
39714         No new tests as this is only testable on specific hardware and
39715         currently not avaiable in the bots.
39716
39717         * platform/graphics/texmap/TextureMapper.h:
39718         (BitmapTexture):
39719         * platform/graphics/texmap/TextureMapperBackingStore.cpp:
39720         (WebCore::TextureMapperTile::updateContents):
39721         (WebCore::TextureMapperTiledBackingStore::updateContentsFromImageIfNeeded):
39722         (WebCore::TextureMapperTiledBackingStore::updateContents):
39723         * platform/graphics/texmap/TextureMapperBackingStore.h:
39724         (TextureMapperTile):
39725         (TextureMapperTiledBackingStore):
39726         (WebCore::TextureMapperTiledBackingStore::updateContents):
39727         * platform/graphics/texmap/TextureMapperGL.cpp:
39728         (WebCore::TextureMapperGL::drawRepaintCounter):
39729         (WebCore::BitmapTextureGL::updateContents):
39730         * platform/graphics/texmap/TextureMapperGL.h:
39731         (BitmapTextureGL):
39732         * platform/graphics/texmap/TextureMapperImageBuffer.cpp:
39733         (WebCore::BitmapTextureImageBuffer::updateContents):
39734         * platform/graphics/texmap/TextureMapperImageBuffer.h:
39735         (BitmapTextureImageBuffer):
39736         * platform/graphics/texmap/TextureMapperLayer.cpp:
39737         (WebCore::TextureMapperLayer::updateBackingStore):
39738
39739 2012-10-21  Antti Koivisto  <antti@apple.com>
39740
39741         Factor stylesheet invalidation analysis code into a class
39742         https://bugs.webkit.org/show_bug.cgi?id=99933
39743
39744         Reviewed by Sam Weinig.
39745
39746         Currently the stylesheet analysis code is all over the place. It should be factored into a class to make
39747         further progress easier.
39748
39749         The patch adds StyleInvalidationAnalysis class and moves a bunch of code from SelectorChecker, StyleResolver
39750         and DocumentStyleSheetCollection there. No functional changes.
39751
39752         * CMakeLists.txt:
39753         * GNUmakefile.list.am:
39754         * Target.pri:
39755         * WebCore.gypi:
39756         * WebCore.vcproj/WebCore.vcproj:
39757         * WebCore.xcodeproj/project.pbxproj:
39758         * css/SelectorChecker.cpp:
39759         (WebCore):
39760         * css/SelectorChecker.h:
39761         (WebCore):
39762         * css/StyleInvalidationAnalysis.cpp: Added.
39763         (WebCore):
39764         (WebCore::StyleInvalidationAnalysis::StyleInvalidationAnalysis):
39765         (WebCore::StyleInvalidationAnalysis::create):
39766         (WebCore::determineSelectorScopes):
39767         (WebCore::StyleInvalidationAnalysis::analyzeStyleSheet):
39768         (WebCore::elementMatchesSelectorScopes):
39769         (WebCore::StyleInvalidationAnalysis::invalidateStyle):
39770         * css/StyleInvalidationAnalysis.h: Added.
39771         (WebCore):
39772         (StyleInvalidationAnalysis):
39773         (WebCore::StyleInvalidationAnalysis::dirtiesAllStyle):
39774         * css/StyleResolver.cpp:
39775         (WebCore::StyleResolver::checkRegionSelector):
39776         * css/StyleResolver.h:
39777         (StyleResolver):
39778         * dom/DocumentStyleSheetCollection.cpp:
39779         (WebCore):
39780         (WebCore::DocumentStyleSheetCollection::analyzeStyleSheetChange):
39781         * dom/DocumentStyleSheetCollection.h:
39782         (DocumentStyleSheetCollection):
39783
39784 2012-10-08  Robert Hogan  <robert@webkit.org>
39785
39786         In some float situations, the original layout is wrong and only corrects itself on repaint
39787         https://bugs.webkit.org/show_bug.cgi?id=18939
39788
39789         Reviewed by Levi Weintraub.
39790
39791         A <br> that follows collapsing spaces and has clearance set always needs to get a run and a linebox of its own.
39792         This allows the line below it to check for clearance from the <br> if it gets dirtied but the line with the <br>
39793         does not.
39794
39795         Test: fast/block/br-with-clearance-after-collapsing-space.html
39796
39797         * rendering/RenderBlockLineLayout.cpp:
39798         (WebCore::RenderBlock::LineBreaker::nextLineBreak):
39799
39800 2012-10-08  Robert Hogan  <robert@webkit.org>
39801
39802         floated element with negative margin causes text wrap bug
39803         https://bugs.webkit.org/show_bug.cgi?id=94825
39804
39805         Reviewed by Levi Weintraub.
39806
39807         Avoid over-estimating the available width on the line by ensuring that the offset taken to avoid
39808         floats on the line is at least as much as the offset given by border, margin and padding. This only
39809         happens when a negative margin on the float brings its edge back before the offset
39810         given by the border, margin and padding of its parents.
39811
39812         Test: fast/block/float/float-on-line-obeys-container-padding.html
39813
39814         * rendering/RenderBlockLineLayout.cpp:
39815         (WebCore::LineWidth::shrinkAvailableWidthForNewFloatIfNeeded):
39816
39817 2012-10-20  Martin Robinson  <mrobinson@igalia.com>
39818
39819         Fix 'make dist' for the GTK+ port
39820
39821         * GNUmakefile.am: Add missing files to the source list.
39822         * GNUmakefile.list.am: Ditto.
39823
39824 2012-10-20  Dan Bernstein  <mitz@apple.com>
39825
39826         <rdar://problem/12512710> [mac] Text with zero font size renders as 12px sometimes
39827         https://bugs.webkit.org/show_bug.cgi?id=99918
39828
39829         Reviewed by Geoff Garen.
39830
39831         -[NSFont fontWithName:size:] returns an NSFont of size 12 (the default User Font size) when
39832         asked for size 0, and this is what Font::drawGlyphs uses to draw the text.
39833
39834         Test: fast/text/zero-font-size-2.html
39835
39836         * platform/graphics/mac/FontMac.mm:
39837         (WebCore::Font::drawGlyphs): Added an early return if the size is zero.
39838
39839 2012-10-20  Andreas Kling  <kling@webkit.org>
39840
39841         Clean up QualifiedName-as-hash-key scenario.
39842         <http://webkit.org/b/99394>
39843
39844         Reviewed by Anders Carlsson.
39845
39846         Cache the hash on QualifiedNameImpl after the first time it's computed.
39847         This grows QualifiedNameImpl by 4 bytes on 32-bit (no change on 64-bit due to base class padding)
39848         which I believe is fine, since QualifiedName is a shared object.
39849
39850         Add a global nullQName() function that returns a QualifiedName(nullAtom, nullAtom, nullAtom)
39851         and use this to implement HashTraits<QualifiedName>::emptyValue(). The old implementation would
39852         create a new QualifiedName(nullAtom, nullAtom, nullAtom) each time, which had to be hashed,
39853         added to  the global QualifiedName cache, etc.
39854
39855         Finally, don't have SVGAttributeHashTranslator create a temporary QualifiedName just to compute
39856         the hash of a (namespace, prefix, localName) tuple, use QualifiedNameComponents and hashComponents()
39857         directly instead.
39858
39859         Altogether this shaves ~100ms off of the RoboHornet svgresize.html benchmark on my MBP.
39860
39861         * dom/QualifiedName.cpp:
39862         (WebCore::nullQName):
39863         (WebCore::QualifiedName::QualifiedNameImpl::computeHash):
39864         * dom/QualifiedName.h:
39865         (QualifiedNameImpl):
39866         (WebCore::QualifiedName::QualifiedNameImpl::QualifiedNameImpl):
39867         (WebCore::QualifiedNameHash::hash):
39868         * svg/SVGElement.h:
39869         (WebCore::SVGAttributeHashTranslator::hash):
39870
39871 2012-10-20  Yael Aharon  <yael.aharon@intel.com>
39872
39873         [EFL][AC] Build fix after r131933
39874         https://bugs.webkit.org/show_bug.cgi?id=99901
39875
39876         Reviewed by Kentaro Hara.
39877
39878         Add ArrayBoundsClamper.cpp to WebCore/CMakeLists.txt.
39879
39880         No new tests.
39881
39882         * CMakeLists.txt:
39883
39884 2012-10-19  Adam Barth  <abarth@webkit.org>
39885
39886         [V8] V8DOMWrapper should avoid using its document parameter (so we can remove it soon)
39887         https://bugs.webkit.org/show_bug.cgi?id=99876
39888
39889         Reviewed by Kentaro Hara.
39890
39891         We want to remove the document parameter to instantiateV8Object. There
39892         isn't always a Document available, so it doesn't make sense to pass it
39893         as a parameter. We're just waiting for a V8 API change so we can still
39894         construct Node wrappers quickly.
39895
39896         This patch removes a use of the document that snuck in. Rather than
39897         passing the ScriptExecutionContext around, we get it from the
39898         CreationContext of the prototype object (and only when we actually need
39899         it).
39900
39901         * Modules/notifications/NotificationCenter.cpp:
39902         * Modules/notifications/NotificationCenter.h:
39903         (NotificationCenter):
39904         * bindings/scripts/CodeGeneratorV8.pm:
39905         (GenerateHeader):
39906         (GenerateConstructorGetter):
39907         (GenerateImplementation):
39908         (GenerateToV8Converters):
39909         * bindings/v8/V8DOMWindowShell.cpp:
39910         (WebCore::V8DOMWindowShell::installDOMWindow):
39911         * bindings/v8/V8DOMWrapper.cpp:
39912         (WebCore::V8DOMWrapper::instantiateV8Object):
39913         * bindings/v8/V8PerContextData.cpp:
39914         (WebCore::V8PerContextData::createWrapperFromCacheSlowCase):
39915         (WebCore::V8PerContextData::constructorForTypeSlowCase):
39916         * bindings/v8/V8PerContextData.h:
39917         (WebCore::V8PerContextData::createWrapperFromCache):
39918         (WebCore::V8PerContextData::constructorForType):
39919         (V8PerContextData):
39920         * bindings/v8/WorkerContextExecutionProxy.cpp:
39921         (WebCore::WorkerContextExecutionProxy::initializeIfNeeded):
39922         * bindings/v8/WrapperTypeInfo.h:
39923         (WebCore):
39924         (WebCore::WrapperTypeInfo::installPerContextPrototypeProperties):
39925
39926 2012-10-19  Florin Malita  <fmalita@chromium.org>
39927
39928         Incorrect pattern scaling
39929         https://bugs.webkit.org/show_bug.cgi?id=99870
39930
39931         Reviewed by Dirk Schulze.
39932
39933         The pattern space transform scale should reflect the tile_size(user space)
39934         to tile_image_size ratio, instead of tile_size to absolute_tile_size.
39935
39936         Test: svg/custom/pattern-scaling.svg
39937
39938         * rendering/svg/RenderSVGResourcePattern.cpp:
39939         (WebCore::RenderSVGResourcePattern::applyResource):
39940
39941 2012-10-19  Tony Chang  <tony@chromium.org>
39942
39943         RenderFlexibleBox::preferredMainAxisContentExtentForChild can return a negative value
39944         https://bugs.webkit.org/show_bug.cgi?id=97827
39945
39946         Reviewed by Ojan Vafai.
39947
39948         I'm pretty sure this isn't possible (logicalHeight and maxPreferredLogicalWidth should always include
39949         border and padding), so just add an assert.
39950
39951         No new tests, the assert is for code clarity.
39952
39953         * rendering/RenderFlexibleBox.cpp:
39954         (WebCore::RenderFlexibleBox::preferredMainAxisContentExtentForChild):
39955
39956 2012-10-19  Tony Chang  <tony@chromium.org>
39957
39958         Replace calls to updateLogicalHeight with calls to computeLogicalHeight
39959         https://bugs.webkit.org/show_bug.cgi?id=99883
39960
39961         Reviewed by Ojan Vafai.
39962
39963         In RenderBox and RenderBlock, switch to using computeLogicalHeight instead of
39964         saving the old height, calling update logical height, then restoring the old height.
39965
39966         No new tests, this is just a refactoring.
39967
39968         * rendering/RenderBlock.cpp:
39969         (WebCore::RenderBlock::computeBlockPreferredLogicalWidths): Simple replace.
39970         * rendering/RenderBox.cpp:
39971         (WebCore::RenderBox::computePercentageLogicalHeight): Adjust for content height.
39972         (WebCore::RenderBox::computeReplacedLogicalHeightUsing): Adjust for content height.
39973         (WebCore::RenderBox::availableLogicalHeightUsing): Adjust for content height.
39974
39975 2012-10-19  Pablo Flouret  <pablof@motorola.com>
39976
39977         Implement setRangeText() on text controls
39978         https://bugs.webkit.org/show_bug.cgi?id=91907
39979
39980         Reviewed by Kent Tamura.
39981
39982         setRangeText() replaces a range of text with some other text, and
39983         adjusts the existing selection according to its parameters.
39984
39985         Spec: http://www.whatwg.org/specs/web-apps/current-work/multipage/association-of-controls-and-forms.html#dom-textarea/input-setrangetext
39986
39987         Tests: fast/forms/color/color-setrangetext.html
39988                fast/forms/date/date-setrangetext.html
39989                fast/forms/datetime/datetime-setrangetext.html
39990                fast/forms/datetimelocal/datetimelocal-setrangetext.html
39991                fast/forms/file/file-setrangetext.html
39992                fast/forms/hidden/hidden-setrangetext.html
39993                fast/forms/image/image-setrangetext.html
39994                fast/forms/month/month-setrangetext.html
39995                fast/forms/number/number-setrangetext.html
39996                fast/forms/range/range-setrangetext.html
39997                fast/forms/search/search-setrangetext.html
39998                fast/forms/setrangetext.html
39999                fast/forms/textarea/textarea-setrangetext.html
40000                fast/forms/time/time-setrangetext.html
40001                fast/forms/week/week-setrangetext.html
40002
40003
40004         * bindings/scripts/CodeGeneratorGObject.pm:
40005         (SkipFunction):
40006             The GObject generator doesn't support function overloads, so skip the
40007             version of setRangeText() that has only one argument, its behavior
40008             can be emulated with the four-argument version.
40009
40010         * html/InputType.cpp:
40011         (WebCore::InputType::supportsSelectionAPI):
40012         (WebCore):
40013         * html/InputType.h:
40014         (InputType):
40015             Add supportsSelectionAPI() which indicates whether the various
40016             selection api functions like setRangeText, setSelectionRange, etc.
40017             are supported by this input element.
40018
40019         * html/BaseTextInputType.cpp:
40020         (WebCore::BaseTextInputType::supportsSelectionAPI):
40021         (WebCore):
40022         * html/BaseTextInputType.h:
40023         (BaseTextInputType):
40024             Text-based input types support the selection APIs.
40025
40026         * html/EmailInputType.cpp:
40027         (WebCore::EmailInputType::supportsSelectionAPI):
40028         (WebCore):
40029         * html/EmailInputType.h:
40030         (EmailInputType):
40031             Email inputs don't support the selection APIs.
40032
40033         * html/HTMLInputElement.cpp:
40034         (WebCore::HTMLInputElement::setRangeText):
40035         * html/HTMLInputElement.h:
40036         (HTMLInputElement):
40037             Add a setRangeText override which checks if it should apply to the
40038             input type, and calls the actual implementation on the parent class.
40039         * html/HTMLInputElement.idl:
40040         * html/HTMLTextAreaElement.idl:
40041
40042         * html/HTMLTextFormControlElement.cpp:
40043         (WebCore::HTMLTextFormControlElement::setRangeText):
40044         * html/HTMLTextFormControlElement.h:
40045         (HTMLTextFormControlElement):
40046             setRangeText implementation.
40047
40048
40049 2012-10-19  Luke Macpherson   <macpherson@chromium.org>
40050
40051         Remove HANDLE_INHERIT_AND_INITIAL_AND_PRIMITIVE macro in StyleResolver.
40052         https://bugs.webkit.org/show_bug.cgi?id=99782
40053
40054         Reviewed by Sam Weinig.
40055
40056         Removes last usage of HANDLE_INHERIT_AND_INITIAL_AND_PRIMITIVE macro, so that in future there will be no temptation
40057         to use it instead of adding a line to StyleBuilder.
40058         Also removes redundant checks for inital and inherit (HANDLE_INHERIT_AND_INTIAL already returns in those cases).
40059         I don't want to move this code into StyleBuilder until the FIXME that is already there is fixed.
40060
40061         Covered by many existing writing mode tests (eg. fast/html/details-writing-mode.html)
40062
40063         * css/StyleResolver.cpp:
40064         (WebCore):
40065         (WebCore::StyleResolver::applyProperty):
40066
40067 2012-10-19  Joshua Bell  <jsbell@chromium.org>
40068
40069         IndexedDB: Hidden indexing events are visible to script via bubbling/capture
40070         https://bugs.webkit.org/show_bug.cgi?id=96566
40071
40072         Reviewed by Tony Chang.
40073
40074         Stop propagation of error events fired at internal indexing requests as a result of
40075         aborting, as they should not be visible to scripts.
40076
40077         Test: storage/indexeddb/index-population.html
40078
40079         * Modules/indexeddb/IDBObjectStore.cpp:
40080         (WebCore::IDBObjectStore::createIndex):
40081         * Modules/indexeddb/IDBRequest.cpp:
40082         (WebCore::IDBRequest::IDBRequest):
40083         (WebCore::IDBRequest::dispatchEvent):
40084         * Modules/indexeddb/IDBRequest.h:
40085         (WebCore::IDBRequest::preventPropagation):
40086         (IDBRequest):
40087
40088 2012-10-19  Simon Fraser  <simon.fraser@apple.com>
40089
40090         Remove .get() calls in assertions as suggested by Darin Adler.
40091         
40092         * platform/graphics/ca/mac/PlatformCALayerMac.mm:
40093         (PlatformCALayer::appendSublayer):
40094         (PlatformCALayer::insertSublayer):
40095         (PlatformCALayer::replaceSublayer):
40096
40097 2012-10-19  Simon Fraser  <simon.fraser@apple.com>
40098
40099         Fix a hang when combining tile cache layers with preserve-3d or reflections
40100         https://bugs.webkit.org/show_bug.cgi?id=99890
40101         <rdar://problem/12539560>
40102
40103         Reviewed by Dean Jackson.
40104
40105         The new tile cache code added an updateSublayers() call when switching to/from
40106         tiled layers. This confused later sublayer rebuilding, causing us to attempt to
40107         add a layer as a child of itself, causing a hang in CA.
40108         
40109         Fix by removing all the explicit calls to updateFoo when updating the structural
40110         layer and switching to/from tiled layers. Instead, we set dirty flags, and rely
40111         on the fact that these flag-dirtying functions get called before the later functions
40112         that process those dirty flags. This is assured by some reordering of the update
40113         function calls.
40114         
40115         A final wrinkle is that ensureStructuralLayer() can change the layer that our
40116         parent GraphicsLayer put in its sublayer list. Rather than diddle with that sublayer
40117         list directly like we used to, just call noteSublayersChanged() on the parent, and have
40118         commitLayerChangesAfterSublayers() check the ChildrenChanged and do a second update
40119         of sublayers if necessary (we clear the flag in commitLayerChangesBeforeSublayers(), so
40120         only do this work if a sublayer requested it).
40121         
40122         Tests: compositing/tiling/preserve3d-tiled.html
40123                compositing/tiling/reflected-tiled.html
40124
40125         * platform/graphics/ca/GraphicsLayerCA.cpp:
40126         (WebCore::GraphicsLayerCA::commitLayerChangesBeforeSublayers):
40127         (WebCore::GraphicsLayerCA::commitLayerChangesAfterSublayers):
40128         (WebCore::GraphicsLayerCA::ensureStructuralLayer):
40129         (WebCore::GraphicsLayerCA::swapFromOrToTiledLayer):
40130         * platform/graphics/ca/mac/PlatformCALayerMac.mm:
40131         (PlatformCALayer::appendSublayer): Add assertion about adding a layer to itself.
40132         (PlatformCALayer::insertSublayer): Ditto.
40133         (PlatformCALayer::replaceSublayer): Ditto.
40134
40135 2012-10-19  Chris Fleizach  <cfleizach@apple.com>
40136
40137         AX: aria-hidden=false does not work as expected
40138         https://bugs.webkit.org/show_bug.cgi?id=98787
40139
40140         Reviewed by Beth Dakin.
40141
40142         ARIA requires that aria-hidden=false override an element's native visibility and include that
40143         node in the AX hierarchy.
40144
40145         To accomplish this we have to allow invisible items to be included, as well as items that
40146         have no renderers associated with them.
40147
40148         Test: accessibility/aria-hidden-negates-no-visibility.html
40149
40150         * accessibility/AXObjectCache.cpp:
40151         (WebCore::AXObjectCache::getOrCreate):
40152         * accessibility/AccessibilityARIAGrid.cpp:
40153         (WebCore::AccessibilityARIAGrid::addTableCellChild):
40154         (WebCore::AccessibilityARIAGrid::addChildren):
40155         * accessibility/AccessibilityARIAGrid.h:
40156         (AccessibilityARIAGrid):
40157         * accessibility/AccessibilityNodeObject.cpp:
40158         (WebCore):
40159        (WebCore::AccessibilityNodeObject::boundingBoxRect):
40160         (WebCore::AccessibilityNodeObject::insertChild):
40161         (WebCore::AccessibilityNodeObject::addChild):
40162         (WebCore::AccessibilityNodeObject::addChildren):
40163         (WebCore::AccessibilityNodeObject::textUnderElement):
40164         * accessibility/AccessibilityNodeObject.h:
40165         (AccessibilityNodeObject):
40166         * accessibility/AccessibilityObject.cpp:
40167         (WebCore::AccessibilityObject::textIteratorBehaviorForTextRange):
40168         (WebCore):
40169         * accessibility/AccessibilityObject.h:
40170         (AccessibilityObject):
40171         (WebCore::AccessibilityObject::addChild):
40172         (WebCore::AccessibilityObject::insertChild):
40173         * accessibility/AccessibilityRenderObject.cpp:
40174         (WebCore):
40175         (WebCore::AccessibilityRenderObject::accessibilityIsIgnoredBase):
40176         (WebCore::AccessibilityRenderObject::addHiddenChildren):
40177         (WebCore::AccessibilityRenderObject::addChildren):
40178         * accessibility/AccessibilityRenderObject.h:
40179         (AccessibilityRenderObject):
40180
40181 2012-10-19  Michael Saboff  <msaboff@apple.com>
40182
40183         Add String version of visitedLinkHash() to properly handle 8-bit URL Strings.
40184         https://bugs.webkit.org/show_bug.cgi?id=99735
40185
40186         Reviewed by Filip Pizlo.
40187
40188         Added String version of visitedLinkHash().  Made speculative addition of visitedLinkHash()
40189         to chromium platform version of LinkHashChromium.cpp.
40190         Changed calls in the form of visitedLinkHash(string.characters(), string.length()) to use the
40191         new form.
40192
40193         No changes to functionality, so no new tests.
40194
40195         * WebCore.exp.in:
40196         * loader/HistoryController.cpp:
40197         (WebCore::addVisitedLink):
40198         * page/PageGroup.cpp:
40199         (WebCore::PageGroup::addVisitedLink):
40200         * platform/LinkHash.cpp:
40201         (WebCore::visitedLinkHashInline):
40202         (WebCore::visitedLinkHash):
40203         * platform/LinkHash.h:
40204         * platform/chromium/LinkHashChromium.cpp:
40205         (WebCore::visitedLinkHash):
40206
40207 2012-10-19  Michael Saboff  <msaboff@apple.com>
40208
40209         String(CFStringRef) should try to converting to an 8 bit string before converting to  16 bit string
40210         https://bugs.webkit.org/show_bug.cgi?id=99794
40211
40212         Reviewed by Filip Pizlo.
40213
40214         Try getting a Latin1 byte string before getting a UTF16 (UChar*) string.
40215
40216         No new test, added 8 bit path.
40217
40218         * platform/text/cf/StringCF.cpp:
40219         (WTF::String::String):
40220
40221 2012-10-19  Dima Gorbik  <dgorbik@apple.com>
40222
40223         Page should be removed from the cache right after restore was called.
40224         https://bugs.webkit.org/show_bug.cgi?id=99737
40225
40226         Reviewed by Brady Eidson.
40227
40228         The pageCache was inconsistent after the restoration for a period of time because the cachedFrame is being nulled,
40229         but the page is still in the Cache. Now the page is being removed from the cache right after the restoration.
40230         This issue was spotted in a custom built application using WebKit and unfortunately there is no way to test this
40231         behavior in LayoutTests. All the current tests that exercise the page cache do pass.
40232
40233         No new tests.
40234
40235         * loader/FrameLoader.cpp:
40236         (WebCore::FrameLoader::commitProvisionalLoad):
40237
40238 2012-10-19  Max Vujovic  <mvujovic@adobe.com>
40239
40240         [WebGL] getUniformLocation fails for uniform array name without array brackets
40241         https://bugs.webkit.org/show_bug.cgi?id=99854
40242
40243         Reviewed by Dean Jackson.
40244
40245         Before this patch, gl.getUniformLocation(program, "array[0]") would return the array
40246         location, but gl.getUniformLocation(program, "array") would not. Now, the latter also
40247         returns the array location.
40248
40249         In the process of adding a check to the following Khronos WebGL conformance test:
40250         conformance/glsl/misc/glsl-long-variable-names.html
40251
40252         * platform/graphics/ANGLEWebKitBridge.cpp:
40253         (WebCore::getSymbolInfo):
40254             Before, we used to check that the symbol size was greater than one to determine that the
40255             symbol was an array. However, this doesn't identify arrays of length one. Now, we check
40256             if the symbol name ends in "[0]", since ANGLE appends this suffix to array symbol
40257             names.
40258             If the symbol is an array, we strip off the "[0]" and add a symbol with just the base
40259             name. We set the isArray flag on the symbol, so we don't lose the information that it is
40260             an array.
40261             Then, we create symbols for each array element like before. However, instead of
40262             replacing the "0" in array[0]" with each index, we take the base name "array" and
40263             append array brackets containing each index (e.g. "array" + "[7]").
40264         * platform/graphics/ANGLEWebKitBridge.h:
40265         (ANGLEShaderSymbol):
40266             Add isArray boolean to ANGLEShaderSymbol. Since array symbols don't end in "[0]"
40267             anymore, this is the only way to identify arrays.
40268
40269 2012-10-19  Csaba Osztrogonác  <ossy@webkit.org>
40270
40271         Unreviewed, rolling out r131915.
40272         http://trac.webkit.org/changeset/131915
40273         https://bugs.webkit.org/show_bug.cgi?id=98787
40274
40275         It broke the build on platforms with \!HAVE(ACCESSIBILITY)
40276
40277         * accessibility/AXObjectCache.cpp:
40278         (WebCore::AXObjectCache::getOrCreate):
40279         (WebCore::AXObjectCache::nodeIsTextControl):
40280         * accessibility/AXObjectCache.h:
40281         (WebCore):
40282         * accessibility/AccessibilityARIAGrid.cpp:
40283         (WebCore::AccessibilityARIAGrid::addChild):
40284         (WebCore::AccessibilityARIAGrid::addChildren):
40285         * accessibility/AccessibilityARIAGrid.h:
40286         (AccessibilityARIAGrid):
40287         * accessibility/AccessibilityNodeObject.cpp:
40288         (WebCore::AccessibilityNodeObject::elementRect):
40289         (WebCore::AccessibilityNodeObject::addChildren):
40290         (WebCore::AccessibilityNodeObject::textUnderElement):
40291         * accessibility/AccessibilityNodeObject.h:
40292         (AccessibilityNodeObject):
40293         * accessibility/AccessibilityObject.cpp:
40294         * accessibility/AccessibilityObject.h:
40295         (AccessibilityObject):
40296         * accessibility/AccessibilityRenderObject.cpp:
40297         (WebCore::textIteratorBehaviorForTextRange):
40298         (WebCore):
40299         (WebCore::AccessibilityRenderObject::accessibilityIsIgnoredBase):
40300         (WebCore::AccessibilityRenderObject::addChildren):
40301         * accessibility/AccessibilityRenderObject.h:
40302         (AccessibilityRenderObject):
40303
40304 2012-10-19  Tony Chang  <tony@chromium.org>
40305
40306         Unreviewed, rolling out r131936.
40307         http://trac.webkit.org/changeset/131936
40308         https://bugs.webkit.org/show_bug.cgi?id=99717
40309
40310         Broke the clang build
40311
40312         * WebCore.exp.in:
40313         * inspector/InspectorFrontendClient.h:
40314         (InspectorFrontendClient):
40315         * inspector/InspectorFrontendClientLocal.cpp:
40316         (WebCore::InspectorFrontendClientLocal::requestAttachWindow):
40317         (WebCore):
40318         (WebCore::InspectorFrontendClientLocal::requestDetachWindow):
40319         (WebCore::InspectorFrontendClientLocal::setAttachedWindow):
40320         * inspector/InspectorFrontendClientLocal.h:
40321         (InspectorFrontendClientLocal):
40322         (WebCore::InspectorFrontendClientLocal::requestSetDockSide):
40323         * inspector/InspectorFrontendHost.cpp:
40324         (WebCore::InspectorFrontendHost::requestAttachWindow):
40325         (WebCore):
40326         (WebCore::InspectorFrontendHost::requestDetachWindow):
40327         (WebCore::InspectorFrontendHost::requestSetDockSide):
40328         * inspector/InspectorFrontendHost.h:
40329         (InspectorFrontendHost):
40330         * inspector/InspectorFrontendHost.idl:
40331         * inspector/front-end/DockController.js:
40332         (WebInspector.DockController):
40333         (WebInspector.DockController.prototype.setDocked):
40334         (WebInspector.DockController.prototype._innerSetDocked.set if):
40335         (WebInspector.DockController.prototype._innerSetDocked):
40336         (WebInspector.DockController.prototype._updateUI.get states):
40337         (WebInspector.DockController.prototype._updateUI):
40338         (WebInspector.DockController.prototype._toggleDockState):
40339         * inspector/front-end/InspectorFrontendAPI.js:
40340         (InspectorFrontendAPI.setAttachedWindow):
40341         (InspectorFrontendAPI.setDockSide):
40342         * inspector/front-end/InspectorFrontendHostStub.js:
40343         (.WebInspector.InspectorFrontendHostStub.prototype.requestAttachWindow):
40344         (.WebInspector.InspectorFrontendHostStub.prototype.requestDetachWindow):
40345         (.WebInspector.InspectorFrontendHostStub.prototype.requestSetDockSide):
40346         * inspector/front-end/externs.js:
40347         (InspectorFrontendHostAPI.prototype.requestAttachWindow):
40348         (InspectorFrontendHostAPI.prototype.requestDetachWindow):
40349
40350 2012-10-09  Martin Robinson  <mrobinson@igalia.com>
40351
40352         REGRESSION (r130699): 5 various fast/ tests started failing
40353         https://bugs.webkit.org/show_bug.cgi?id=98729
40354
40355         Reviewed by Xan Lopez.
40356
40357         Do not try to remove the URL fragment for data URLs. This will likely
40358         just corrupt the URL.
40359
40360         No new tests. This unskips some previously failing tests.
40361
40362         * platform/network/soup/ResourceRequestSoup.cpp:
40363         (WebCore::ResourceRequest::urlStringForSoup): Do nothing for data URLs.
40364
40365 2012-10-19  Simon Fraser  <simon.fraser@apple.com>
40366
40367         Use tile caches in place of CATiledLayer
40368         https://bugs.webkit.org/show_bug.cgi?id=99806
40369         <rdar://problem/6474145>
40370
40371         Reviewed by Tim Horton.
40372
40373         Have GraphicsLayerCA use TileCaches instead of CATiledLayer now for
40374         layers that exceed the 2000px size threshold.
40375
40376         * platform/graphics/TiledBacking.h:
40377         (TiledBacking): Have normal getter and setter for the visible rect.
40378         * platform/graphics/ca/GraphicsLayerCA.cpp:
40379         (WebCore::GraphicsLayerCA::flushCompositingStateForThisLayerOnly): We need
40380         to pass in an old visibleRect to commitLayerChangesBeforeSublayers(). Just use
40381         our current visible rect, which result in no tile area work.
40382         (WebCore::GraphicsLayerCA::computeVisibleRect): Make this const and have it
40383         return the rect, for clarity.
40384         (WebCore::GraphicsLayerCA::recursiveCommitChanges): Keep track of the old
40385         visible rect, and use the change flags mechanism to ensure that we recompute
40386         tile areas later.
40387         When calling commitLayerChangesBeforeSublayers() on the mask layer, just pass
40388         its own visible rect as the old visible rect.
40389         (WebCore::GraphicsLayerCA::commitLayerChangesBeforeSublayers): Pass in the
40390         oldVisibleRect so that updateVisibleRect() can use this to see how the
40391         visibleRect is changing.
40392         (WebCore::GraphicsLayerCA::adjustTiledLayerVisibleRect): This member function
40393         compares the old and new visible rects, and extends the tile coverage area
40394         in directions where more content is being exposed. It takes care to avoid
40395         "jitter" in the visible rect deltas causing edge tiles to get created then
40396         destroyed by keeping any extra padding that already exists in a direction
40397         where more content is being exposed.
40398         (WebCore::GraphicsLayerCA::updateVisibleRect): Call adjustTiledLayerVisibleRect()
40399         and use the result to update the TiledBacking's visibleRect.
40400         (WebCore::GraphicsLayerCA::swapFromOrToTiledLayer): Create layers of type
40401         LayerTypeTileCacheLayer instead of LayerTypeWebTiledLayer. Because tile
40402         cache layers involve adding an extra layer to the hierarchy (the tile container),
40403         we call updateSublayerList() when changing layer type.
40404         * platform/graphics/ca/GraphicsLayerCA.h: New m_sizeAtLastVisibleRectUpdate member
40405         that is used to prevent the adjustTiledLayerVisibleRect() logic being confused by
40406         size changes.
40407         (WebCore::GraphicsLayerCA::visibleRect):
40408         * platform/graphics/ca/mac/TileCache.h: Have normal getter and setter for the visible rect.
40409         * platform/graphics/ca/mac/TileCache.mm:
40410         (WebCore::TileCache::setVisibleRect): Renamed to setVisibleRect().
40411         * rendering/RenderLayerCompositor.cpp:
40412         (WebCore::RenderLayerCompositor::flushPendingLayerChanges): Avoid doing work
40413         for pages in the page cache, for which the root layer is unattached.
40414         (WebCore::RenderLayerCompositor::frameViewDidScroll): visibleRectChanged() was renamed
40415         to setVisibleRect().
40416
40417 2012-10-19  Beth Dakin  <bdakin@apple.com>
40418
40419         https://bugs.webkit.org/show_bug.cgi?id=99768
40420         We should limit the tile cache coverage when a page can't take 
40421         advantage of fast tile scrolling anyway
40422
40423         Reviewed by Simon Fraser.
40424
40425         When sites can't use fast-scrolling, there is no need to inflate the 
40426         tile cache. In fact, we get a performance boost by keeping it small 
40427         on painting-intensive sites. 
40428
40429         Instead of just looking a whether or not the FrameView 
40430         canHaveScrollbar(), consult 
40431         shouldUpdateScrollLayerPositionOnMainThread().
40432         * page/FrameView.cpp:
40433         (WebCore::FrameView::performPostLayoutTasks):
40434         * rendering/RenderLayerBacking.cpp:
40435         (WebCore::RenderLayerBacking::RenderLayerBacking):
40436         
40437         Expose shouldUpdateScrollLayerPositionOnMainThread().
40438         * page/scrolling/ScrollingCoordinator.cpp:
40439         (WebCore::ScrollingCoordinator::hasNonLayerFixedObjects):
40440         (WebCore::ScrollingCoordinator::shouldUpdateScrollLayerPositionOnMainThread):
40441         (WebCore):
40442         (WebCore::ScrollingCoordinator::updateShouldUpdateScrollLayerPositionOnMainThread):
40443         * page/scrolling/ScrollingCoordinator.h:
40444         (ScrollingCoordinator):
40445
40446         Bug fix. Should be bitwise and.
40447         * platform/graphics/ca/mac/TileCache.mm:
40448         (WebCore::TileCache::tileCoverageRect):
40449
40450 2012-10-19  Mark Lam  <mark.lam@apple.com>
40451
40452         Added WTF::StackStats mechanism.
40453         https://bugs.webkit.org/show_bug.cgi?id=99805.
40454
40455         Reviewed by Geoffrey Garen.
40456
40457         Added StackStats probes in layout methods.
40458
40459         * dom/Document.cpp:
40460         (WebCore::Document::updateLayout):
40461         * rendering/RenderBlock.cpp:
40462         (WebCore::RenderBlock::layout):
40463         * rendering/RenderBox.cpp:
40464         (WebCore::RenderBox::layout):
40465         * rendering/RenderDialog.cpp:
40466         (WebCore::RenderDialog::layout):
40467         * rendering/RenderEmbeddedObject.cpp:
40468         (WebCore::RenderEmbeddedObject::layout):
40469         * rendering/RenderFlowThread.cpp:
40470         (WebCore::RenderFlowThread::layout):
40471         * rendering/RenderFrameSet.cpp:
40472         (WebCore::RenderFrameSet::layout):
40473         * rendering/RenderIFrame.cpp:
40474         (WebCore::RenderIFrame::layout):
40475         * rendering/RenderImage.cpp:
40476         (WebCore::RenderImage::layout):
40477         * rendering/RenderListBox.cpp:
40478         (WebCore::RenderListBox::layout):
40479         * rendering/RenderListItem.cpp:
40480         (WebCore::RenderListItem::layout):
40481         * rendering/RenderListMarker.cpp:
40482         (WebCore::RenderListMarker::layout):
40483         * rendering/RenderMedia.cpp:
40484         (WebCore::RenderMedia::layout):
40485         * rendering/RenderObject.cpp:
40486         (WebCore::RenderObject::layout):
40487         * rendering/RenderObject.h:
40488         * rendering/RenderRegion.cpp:
40489         (WebCore::RenderRegion::layout):
40490         * rendering/RenderReplaced.cpp:
40491         (WebCore::RenderReplaced::layout):
40492         * rendering/RenderReplica.cpp:
40493         (WebCore::RenderReplica::layout):
40494         * rendering/RenderRubyRun.cpp:
40495         (WebCore::RenderRubyRun::layoutSpecialExcludedChild):
40496         * rendering/RenderScrollbarPart.cpp:
40497         (WebCore::RenderScrollbarPart::layout):
40498         * rendering/RenderSlider.cpp:
40499         (WebCore::RenderSlider::layout):
40500         * rendering/RenderTable.cpp:
40501         (WebCore::RenderTable::layout):
40502         * rendering/RenderTableCell.cpp:
40503         (WebCore::RenderTableCell::layout):
40504         * rendering/RenderTableRow.cpp:
40505         (WebCore::RenderTableRow::layout):
40506         * rendering/RenderTableSection.cpp:
40507         (WebCore::RenderTableSection::layout):
40508         * rendering/RenderTextControlSingleLine.cpp:
40509         (WebCore::RenderTextControlSingleLine::layout):
40510         * rendering/RenderTextTrackCue.cpp:
40511         (WebCore::RenderTextTrackCue::layout):
40512         * rendering/RenderVideo.cpp:
40513         (WebCore::RenderVideo::layout):
40514         * rendering/RenderView.cpp:
40515         (WebCore::RenderView::layout):
40516         * rendering/RenderWidget.cpp:
40517         (WebCore::RenderWidget::layout):
40518         * rendering/svg/RenderSVGContainer.cpp:
40519         (WebCore::RenderSVGContainer::layout):
40520         * rendering/svg/RenderSVGForeignObject.cpp:
40521         (WebCore::RenderSVGForeignObject::layout):
40522         * rendering/svg/RenderSVGGradientStop.cpp:
40523         (WebCore::RenderSVGGradientStop::layout):
40524         * rendering/svg/RenderSVGHiddenContainer.cpp:
40525         (WebCore::RenderSVGHiddenContainer::layout):
40526         * rendering/svg/RenderSVGImage.cpp:
40527         (WebCore::RenderSVGImage::layout):
40528         * rendering/svg/RenderSVGResourceContainer.cpp:
40529         (WebCore::RenderSVGResourceContainer::layout):
40530         * rendering/svg/RenderSVGResourceMarker.cpp:
40531         (WebCore::RenderSVGResourceMarker::layout):
40532         * rendering/svg/RenderSVGRoot.cpp:
40533         (WebCore::RenderSVGRoot::layout):
40534         * rendering/svg/RenderSVGShape.cpp:
40535         (WebCore::RenderSVGShape::layout):
40536         * rendering/svg/RenderSVGText.cpp:
40537         (WebCore::RenderSVGText::layout):
40538
40539 2012-10-19  Pavel Feldman  <pfeldman@chromium.org>
40540
40541         Web Inspector: merge "docked" state into the "dock side" enum.
40542         https://bugs.webkit.org/show_bug.cgi?id=99717
40543
40544         Reviewed by Vsevolod Vlasov.
40545
40546         Otherwise, it is hard to manage these inter-dependent flags.
40547
40548         * inspector/InspectorFrontendClient.h:
40549         (InspectorFrontendClient):
40550         * inspector/InspectorFrontendClientLocal.cpp:
40551         (WebCore::InspectorFrontendClientLocal::requestSetDockSide):
40552         (WebCore::InspectorFrontendClientLocal::setAttachedWindow):
40553         * inspector/InspectorFrontendClientLocal.h:
40554         (InspectorFrontendClientLocal):
40555         * inspector/InspectorFrontendHost.cpp:
40556         (WebCore::InspectorFrontendHost::requestSetDockSide):
40557         * inspector/InspectorFrontendHost.h:
40558         (InspectorFrontendHost):
40559         * inspector/InspectorFrontendHost.idl:
40560         * inspector/front-end/DockController.js:
40561         (WebInspector.DockController):
40562         (WebInspector.DockController.prototype._updateUI.get sides):
40563         (WebInspector.DockController.prototype._updateUI):
40564         (WebInspector.DockController.prototype._toggleDockState):
40565         * inspector/front-end/InspectorFrontendAPI.js:
40566         (InspectorFrontendAPI.setAttachedWindow):
40567         * inspector/front-end/InspectorFrontendHostStub.js:
40568         (.WebInspector.InspectorFrontendHostStub.prototype.requestSetDockSide):
40569
40570 2012-10-19  Joshua Bell  <jsbell@chromium.org>
40571
40572         [V8] IndexedDB: Crash when lazy-indexing Date keys
40573         https://bugs.webkit.org/show_bug.cgi?id=99860
40574
40575         Reviewed by Adam Barth.
40576
40577         Missing a scope/context needed when digging values out of Date objects
40578         in an indexing callback.
40579
40580         Test: storage/indexeddb/lazy-index-types.html
40581
40582         * bindings/v8/IDBBindingUtilities.cpp:
40583         (WebCore::createIDBKeyFromScriptValueAndKeyPath):
40584
40585 2012-10-18  Dean Jackson  <dino@apple.com>
40586
40587         Shader translator needs option to clamp uniform array accesses in vertex shaders
40588         https://bugs.webkit.org/show_bug.cgi?id=98977
40589         https://code.google.com/p/angleproject/issues/detail?id=49
40590
40591         Reviewed by Alok Priyadarshi and Ken Russell.
40592
40593         WebGL forbids out-of-bounds array access in shaders. Rewrite any shaders to
40594         ensure that non-direct array indexing is clamped to the bounds of the array.
40595
40596         Test: fast/canvas/webgl/array-bounds-clamping.html
40597
40598         * platform/graphics/ANGLEWebKitBridge.cpp:
40599         (WebCore::ANGLEWebKitBridge::compileShaderSource): Pass new compiler option SH_CLAMP_INDIRECT_ARRAY_BOUNDS
40600
40601 2012-10-19  Justin Novosad  <junov@chromium.org>
40602
40603         [Chromium] Reduce memory footprint of canvas pattern object with deferred rendering
40604         https://bugs.webkit.org/show_bug.cgi?id=99856
40605
40606         Reviewed by Stephen White.
40607
40608         Marking internal bitmap copy as immutable to prevent it from being
40609         unnecessarily duplicated in skia by SkBitmapHeap.
40610
40611         No new tests: code path already well covered by existing layout tests 
40612         fast/canvas/canvas-pattern-*
40613
40614         * platform/graphics/skia/PatternSkia.cpp:
40615         (WebCore::Pattern::platformPattern):
40616
40617 2012-10-19  Antti Koivisto  <antti@apple.com>
40618
40619         Maintain a list of active CSS stylesheets
40620         https://bugs.webkit.org/show_bug.cgi?id=99843
40621
40622         Reviewed by Andreas Kling.
40623
40624         Currently we maintain a per-document list of stylesheets that matches what is returned by the StyleSheetList DOM API. 
40625         This list contains both CSS and XSLT stylesheets which internally have basically nothing in common. Maintaining 
40626         a list of active CSS stylesheets separately simplifies code in number of places.
40627
40628         * css/StyleResolver.cpp:
40629         (WebCore::StyleResolver::StyleResolver):
40630         (WebCore::StyleResolver::addStylesheetsFromSeamlessParents):
40631         (WebCore::StyleResolver::appendAuthorStyleSheets):
40632         (WebCore::collectCSSOMWrappers):
40633         * css/StyleResolver.h:
40634         (StyleResolver):
40635         * css/StyleSheetList.cpp:
40636         (WebCore::StyleSheetList::styleSheets):
40637         (WebCore::StyleSheetList::detachFromDocument):
40638         * dom/Document.cpp:
40639         (WebCore::Document::setCompatibilityMode):
40640         * dom/DocumentStyleSheetCollection.cpp:
40641         (WebCore::DocumentStyleSheetCollection::analyzeStyleSheetChange):
40642         (WebCore::styleSheetsUseRemUnits):
40643         (WebCore::filterEnabledCSSStyleSheets):
40644         (WebCore):
40645         (WebCore::DocumentStyleSheetCollection::updateActiveStyleSheets):
40646         (WebCore::DocumentStyleSheetCollection::reportMemoryUsage):
40647         * dom/DocumentStyleSheetCollection.h:
40648         (WebCore::DocumentStyleSheetCollection::styleSheetsForStyleSheetList):
40649         (DocumentStyleSheetCollection):
40650         (WebCore::DocumentStyleSheetCollection::activeAuthorStyleSheets):
40651
40652 2012-09-08  Alpha Lam  <hclam@chromium.org>
40653
40654         [chromium] Implement deferred image decoding
40655         https://bugs.webkit.org/show_bug.cgi?id=94240
40656
40657         Reviewed by Stephen White.
40658
40659         Objectives:
40660
40661         To record image decoding operations during painting and to defer
40662         decoding operations until rasterization.
40663
40664         Rationale:
40665
40666         This is a key feature that enables impl-side painting which requires
40667         fast recording of drawing operations. The existing decode-on-draw
40668         restricts that recording has to block on expensive decoding operations.
40669         This change allows recording of image decoding operations during paint
40670         time.
40671
40672         Design:
40673
40674         Image decoding happens when a BitmapImage is drawn into a
40675         GraphicsContext. When per-tile painting is enabled GraphicsContext
40676         is backed by SkCanvas in recording mode. This SkCanvas records drawing
40677         and image decoding operations to minimize recording time.
40678
40679         An image decoding operation is recorded as a SkPixelRef object
40680         implemented by LazyDecodingPixelRef. This object references raw encoded
40681         data, regions to be decoded and scaling information.
40682
40683         When used in conjunction with per-tile painting this feature defers
40684         image decoding until the SkCanvas referencing the image is rasterized.
40685
40686         Both recording and rasterization happen on the main thread.
40687
40688         Performance Impact:
40689
40690         This feature is enabled by WebKit::setDeferredImageDecodingEnabled()
40691         and does not have an impact when disabled.
40692
40693         This feature is disabled by default.
40694
40695         Upcoming Changes:
40696
40697         1. Implement a full-featured image cache in ImageDecodingStore.
40698         2. Allow rasterization and decoding on impl thread.
40699
40700         Classes Involved:
40701
40702         BitmapImage
40703
40704         BitmapImage is the entry point for deferred image decoding. When
40705         drawing a BitmapImage into a GraphicsContext it makes a request to
40706         create a NativeImageSkia. We substitute the content in NativeImageSkia
40707         such that it is lazily decoded.
40708
40709         DeferredImageDecoder
40710
40711         This is the platform implementation of a image decoder for Chromium.
40712         This is a bridge layer that either delegates calls to the actual
40713         ImageDecoder or create a lazily-decoded SkBitmap and delegates calls
40714         to ImageDecodingStore.
40715
40716         ImageDecodingStore
40717
40718         This object manages all encoded images. It keeps track of encoded
40719         data and the corresponding ImageDecoder for doing actual decoding. It
40720         is also responsible for generating lazily decoded SkBitmaps. This
40721         SkBitmap contains a LazyDecodingPixelRef object which references to an
40722         image entry in ImageDecodingStore.
40723
40724         ScaledImageFragment
40725
40726         A container for a scaled image fragment. In addition to bitmap pixels
40727         it contains information about the ID of the image, scale and clipping.
40728
40729         ImageFrameGenerator
40730
40731         This object is responsible for generating decoded pixels. It is also
40732         a container for encoded image data and corresponding image decoder.
40733
40734         LazyDecodingPixelRef
40735
40736         This object is embedded in a SkBitmap to enable lazy decoding. When
40737         SkBitmap needs to access pixels LazyDecodingPixelRef is locked. It
40738         contains information to locate an image and scaling info, these
40739         information is submitted to ImageDecodingStore to access actual pixels.
40740
40741         Layout tests. There are about 80 tests in this virtual test suite
40742         running this feature in this directory:
40743
40744         platform/chromium/virtual/deferred/fast/images
40745
40746         Unit tests. Added DeferredImageDecoderTest to verify deferred
40747         image decoding behavior.
40748
40749         * WebCore.gypi:
40750         * platform/graphics/ImageSource.cpp:
40751         (WebCore::ImageSource::setData):
40752         * platform/graphics/ImageSource.h:
40753         (WebCore):
40754         (ImageSource):
40755         * platform/graphics/chromium/DeferredImageDecoder.cpp: Added.
40756         (WebCore):
40757         (WebCore::DeferredImageDecoder::DeferredImageDecoder):
40758         (WebCore::DeferredImageDecoder::~DeferredImageDecoder):
40759         (WebCore::DeferredImageDecoder::create):
40760         (WebCore::DeferredImageDecoder::createForTesting):
40761         (WebCore::DeferredImageDecoder::filenameExtension):
40762         (WebCore::DeferredImageDecoder::frameBufferAtIndex):
40763         (WebCore::DeferredImageDecoder::setData):
40764         (WebCore::DeferredImageDecoder::isSizeAvailable):
40765         (WebCore::DeferredImageDecoder::size):
40766         (WebCore::DeferredImageDecoder::frameSizeAtIndex):
40767         (WebCore::DeferredImageDecoder::frameCount):
40768         (WebCore::DeferredImageDecoder::repetitionCount):
40769         (WebCore::DeferredImageDecoder::clearFrameBufferCache):
40770         (WebCore::DeferredImageDecoder::frameHasAlphaAtIndex):
40771         (WebCore::DeferredImageDecoder::frameBytesAtIndex):
40772         * platform/graphics/chromium/DeferredImageDecoder.h: Added.
40773         (WebCore):
40774         (DeferredImageDecoder):
40775         * platform/graphics/chromium/ImageDecodingStore.cpp: Added.
40776         (WebCore::ImageDecodingStore::ImageDecodingStore):
40777         (WebCore):
40778         (WebCore::ImageDecodingStore::~ImageDecodingStore):
40779         (WebCore::ImageDecodingStore::instanceOnMainThread):
40780         (WebCore::ImageDecodingStore::initializeOnMainThread):
40781         (WebCore::ImageDecodingStore::shutdown):
40782         (WebCore::ImageDecodingStore::isLazyDecoded):
40783         (WebCore::ImageDecodingStore::createLazyDecodedSkBitmap):
40784         (WebCore::ImageDecodingStore::resizeLazyDecodedSkBitmap):
40785         (WebCore::ImageDecodingStore::setData):
40786         (WebCore::ImageDecodingStore::lockPixels):
40787         (WebCore::ImageDecodingStore::unlockPixels):
40788         (WebCore::ImageDecodingStore::frameGeneratorBeingDestroyed):
40789         (WebCore::ImageDecodingStore::calledOnValidThread):
40790         (WebCore::ImageDecodingStore::lookupFrameCache):
40791         (WebCore::ImageDecodingStore::deleteFrameCache):
40792         * platform/graphics/chromium/ImageDecodingStore.h: Added.
40793         (WebCore):
40794         (ImageDecodingStore):
40795         (WebCore::ImageDecodingStore::create):
40796         * platform/graphics/chromium/ScaledImageFragment.cpp: Added.
40797         (WebCore):
40798         (WebCore::ScaledImageFragment::~ScaledImageFragment):
40799         (WebCore::ScaledImageFragment::ScaledImageFragment):
40800         (WebCore::ScaledImageFragment::isEqual):
40801         * platform/graphics/chromium/ScaledImageFragment.h: Added.
40802         (WebCore):
40803         (ScaledImageFragment):
40804         (WebCore::ScaledImageFragment::create):
40805         (WebCore::ScaledImageFragment::bitmap):
40806         (WebCore::ScaledImageFragment::isComplete):
40807         * platform/graphics/chromium/ImageFrameGenerator.cpp: Added.
40808         (WebCore):
40809         (WebCore::ImageFrameGenerator::ImageFrameGenerator):
40810         (WebCore::ImageFrameGenerator::~ImageFrameGenerator):
40811         (WebCore::ImageFrameGenerator::decoder):
40812         (WebCore::ImageFrameGenerator::setData):
40813         * platform/graphics/chromium/ImageFrameGenerator.h: Added.
40814         (WebCore):
40815         (ImageFrameGenerator):
40816         (WebCore::ImageFrameGenerator::create):
40817         (WebCore::ImageFrameGenerator::size):
40818         (WebCore::ImageFrameGenerator::imageId):
40819         * platform/graphics/chromium/LazyDecodingPixelRef.cpp: Added.
40820         (WebCore):
40821         (WebCore::LazyDecodingPixelRef::LazyDecodingPixelRef):
40822         (WebCore::LazyDecodingPixelRef::~LazyDecodingPixelRef):
40823         (WebCore::LazyDecodingPixelRef::isScaled):
40824         (WebCore::LazyDecodingPixelRef::isClipped):
40825         (WebCore::LazyDecodingPixelRef::onLockPixels):
40826         (WebCore::LazyDecodingPixelRef::onUnlockPixels):
40827         (WebCore::LazyDecodingPixelRef::onLockPixelsAreWritable):
40828         * platform/graphics/chromium/LazyDecodingPixelRef.h: Added.
40829         (WebCore):
40830         (LazyDecodingPixelRef):
40831         (WebCore::LazyDecodingPixelRef::frameGenerator):
40832         * platform/graphics/skia/NativeImageSkia.cpp:
40833         (WebCore::NativeImageSkia::resizedBitmap):
40834         * platform/image-decoders/ImageDecoder.h:
40835         (ImageFrame):
40836         (WebCore::ImageFrame::setSkBitmap):
40837         (WebCore::ImageFrame::getSkBitmap):
40838
40839 2012-10-18  Yael Aharon  <yael.aharon@intel.com>
40840
40841         [EFL] GraphicsContext3D::m_renderStyle is not initialized
40842         https://bugs.webkit.org/show_bug.cgi?id=99721
40843
40844         Reviewed by Antonio Gomes.
40845
40846         Initialize GraphicsContext3D::m_renderStyle.
40847
40848         No new tests, no new functionality.
40849
40850         * platform/graphics/efl/GraphicsContext3DEfl.cpp:
40851         (WebCore::GraphicsContext3D::GraphicsContext3D):
40852
40853 2012-10-19  Dongwoo Joshua Im  <dw.im@samsung.com>
40854
40855         Rename ENABLE_CSS3_TEXT_DECORATION to ENABLE_CSS3_TEXT
40856         https://bugs.webkit.org/show_bug.cgi?id=99804
40857
40858         Reviewed by Julien Chaffraix.
40859
40860         CSS3 text related properties will be implemented under this flag,
40861         including text decoration, text-align-last, and text-justify.
40862
40863         No new functionality, no new test.
40864
40865         * Configurations/FeatureDefines.xcconfig:
40866         * GNUmakefile.am:
40867         * GNUmakefile.features.am:
40868         * css/CSSComputedStyleDeclaration.cpp:
40869         (WebCore):
40870         (WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue):
40871         * css/CSSParser.cpp:
40872         (WebCore::CSSParser::parseValue):
40873         (WebCore::CSSParser::addTextDecorationProperty):
40874         (WebCore::CSSParser::parseTextDecoration):
40875         * css/CSSPrimitiveValueMappings.h:
40876         (WebCore):
40877         * css/CSSProperty.cpp:
40878         (WebCore::CSSProperty::isInheritedProperty):
40879         * css/CSSPropertyNames.in:
40880         * css/CSSValueKeywords.in:
40881         * css/StyleBuilder.cpp:
40882         (WebCore::StyleBuilder::StyleBuilder):
40883         * css/StyleResolver.cpp:
40884         (WebCore::StyleResolver::applyProperty):
40885         * rendering/style/RenderStyle.cpp:
40886         (WebCore::RenderStyle::diff):
40887         * rendering/style/RenderStyle.h:
40888         * rendering/style/RenderStyleConstants.h:
40889         (WebCore):
40890         * rendering/style/StyleRareNonInheritedData.cpp:
40891         (WebCore::StyleRareNonInheritedData::StyleRareNonInheritedData):
40892         (WebCore::StyleRareNonInheritedData::operator==):
40893         * rendering/style/StyleRareNonInheritedData.h:
40894         (StyleRareNonInheritedData):
40895
40896 2012-10-19  Nate Chapin  <japhet@chromium.org>
40897
40898         Reorder some functions in SubresourceLoader to permit main resources
40899         https://bugs.webkit.org/show_bug.cgi?id=99769
40900
40901         Reviewed by Adam Barth.
40902
40903         Most resource types that go through the memory cache (and therefore
40904         through SubresourceLoader) are not sensitive to the exact ordering of
40905         the callbacks they receive, particularly as it relates to ResourceLoadNotifier
40906         calls.  Main resources are not so lenient.  For main resources to be cacheable
40907         and maintain the current behavior as precisely as possible, we will need to
40908         rearrange SubresourceLoader's willSendRequest() and didReceiveData().
40909
40910         No new tests, refactor only.
40911
40912         * loader/SubresourceLoader.cpp:
40913         (WebCore::SubresourceLoader::willSendRequest): There are a series of checks that can result
40914             in the request being canceled, plus calls to CachedResource::willSendRequest() and
40915             ResourceLoader::willSendRequest().  MainResourceLoader (which will be a
40916             CachedResourceClient) has work it expects to do before ResourceLoader::willSendRequest()
40917             is called, but the calls are out of order for that, so swap those.
40918         (WebCore::SubresourceLoader::didReceiveData): We need to populate ResourceLoader::m_resourceData
40919             before notifying CachedResource of new data, but we also want to do CachedResourceClients calls
40920             before calling ResourceLoadNotifier. This means we can't delegate to ResourceLoader.
40921
40922 2012-10-19  Chris Fleizach  <cfleizach@apple.com>
40923
40924         AX: aria-hidden=false does not work as expected
40925         https://bugs.webkit.org/show_bug.cgi?id=98787
40926
40927         Reviewed by Beth Dakin.
40928
40929         ARIA requires that aria-hidden=false override an element's native visibility and include that
40930         node in the AX hierarchy.
40931  
40932         To accomplish this we have to allow invisible items to be included, as well as items that
40933         have no renderers associated with them.
40934
40935         Test: accessibility/aria-hidden-negates-no-visibility.html
40936
40937         * accessibility/AXObjectCache.cpp:
40938         (WebCore::AXObjectCache::getOrCreate):
40939         * accessibility/AccessibilityARIAGrid.cpp:
40940         (WebCore::AccessibilityARIAGrid::addTableCellChild):
40941         (WebCore::AccessibilityARIAGrid::addChildren):
40942         * accessibility/AccessibilityARIAGrid.h:
40943         (AccessibilityARIAGrid):
40944         * accessibility/AccessibilityNodeObject.cpp:
40945         (WebCore):
40946         (WebCore::AccessibilityNodeObject::boundingBoxRect):
40947         (WebCore::AccessibilityNodeObject::insertChild):
40948         (WebCore::AccessibilityNodeObject::addChild):
40949         (WebCore::AccessibilityNodeObject::addChildren):
40950         (WebCore::AccessibilityNodeObject::textUnderElement):
40951         * accessibility/AccessibilityNodeObject.h:
40952         (AccessibilityNodeObject):
40953         * accessibility/AccessibilityObject.cpp:
40954         (WebCore::AccessibilityObject::textIteratorBehaviorForTextRange):
40955         (WebCore):
40956         * accessibility/AccessibilityObject.h:
40957         (AccessibilityObject):
40958         (WebCore::AccessibilityObject::addChild):
40959         (WebCore::AccessibilityObject::insertChild):
40960         * accessibility/AccessibilityRenderObject.cpp:
40961         (WebCore):
40962         (WebCore::AccessibilityRenderObject::accessibilityIsIgnoredBase):
40963         (WebCore::AccessibilityRenderObject::addHiddenChildren):
40964         (WebCore::AccessibilityRenderObject::addChildren):
40965         * accessibility/AccessibilityRenderObject.h:
40966         (AccessibilityRenderObject):
40967
40968 2012-10-19  Tommy Widenflycht  <tommyw@google.com>
40969
40970         MediaStream API: Rename owner to client in MediaStreamDescriptor
40971         https://bugs.webkit.org/show_bug.cgi?id=99593
40972
40973         Reviewed by Adam Barth.
40974
40975         This patch renames owner to client in MediaStreamDescriptor as discussed in #99080.
40976
40977         No new tests needed, covered by existing tests.
40978
40979         * Modules/mediastream/MediaStream.cpp:
40980         (WebCore::MediaStream::MediaStream):
40981         (WebCore::MediaStream::~MediaStream):
40982         * Modules/mediastream/MediaStream.h:
40983         (MediaStream):
40984         * Modules/mediastream/PeerConnection00.cpp:
40985         (WebCore::PeerConnection00::didRemoveRemoteStream):
40986         * Modules/mediastream/RTCPeerConnection.cpp:
40987         (WebCore::RTCPeerConnection::didRemoveRemoteStream):
40988         * platform/mediastream/MediaStreamCenter.cpp:
40989         (WebCore::MediaStreamCenter::endLocalMediaStream):
40990         (WebCore::MediaStreamCenter::addMediaStreamTrack):
40991         (WebCore::MediaStreamCenter::removeMediaStreamTrack):
40992         * platform/mediastream/MediaStreamDescriptor.h:
40993         (WebCore::MediaStreamDescriptorClient::~MediaStreamDescriptorClient):
40994         (WebCore::MediaStreamDescriptor::client):
40995         (WebCore::MediaStreamDescriptor::setClient):
40996         (WebCore::MediaStreamDescriptor::MediaStreamDescriptor):
40997         (MediaStreamDescriptor):
40998
40999 2012-10-19  Shinya Kawanaka  <shinyak@chromium.org>
41000
41001         Elements assigned to <shadow> should not be reprojected.
41002         https://bugs.webkit.org/show_bug.cgi?id=99680
41003
41004         Reviewed by Dimitri Glazkov.
41005
41006         In the current spec, we don't have shadow reprojection, i.e. elements assigned to <shadow> should not be
41007         reprojected to content. However, we can select them by <shadow>.
41008
41009         Tests: fast/dom/shadow/content-reprojection-complex.html
41010                fast/dom/shadow/content-reprojection-shadow.html
41011                fast/dom/shadow/shadow-reprojection-prohibited.html
41012
41013         * html/shadow/ContentDistributor.cpp:
41014         (WebCore::ContentDistributor::distribute): When a node is <shadow>, we should not add elements assigned to <shadow>
41015         to POOL. Instead, <shadow> itself should be added to POOL.
41016         * html/shadow/HTMLContentElement.h:
41017         (WebCore::isHTMLContentElement):
41018         (WebCore):
41019
41020 2012-10-19  Chris Fleizach  <cfleizach@apple.com>
41021
41022         VO issues with hidden <legend> and last explicitly labelled element within a group <fieldset>
41023         https://bugs.webkit.org/show_bug.cgi?id=96325
41024
41025         Reviewed by Beth Dakin.
41026
41027          When finding a <legend> for accessibility, we need to consider those that are offscreen. This patch
41028          modifies the original findLegend method to take a parameter to determine what should be done.
41029
41030         Test: accessibility/hidden-legend.html
41031
41032         * accessibility/AccessibilityRenderObject.cpp:
41033         (WebCore::AccessibilityRenderObject::titleUIElement):
41034         * rendering/RenderFieldset.cpp:
41035         (WebCore::RenderFieldset::findLegend):
41036         * rendering/RenderFieldset.h:
41037
41038 2012-10-17  Chris Fleizach  <cfleizach@apple.com>
41039
41040         AX: Refactor accessibility name computation so it's more platform independent
41041         https://bugs.webkit.org/show_bug.cgi?id=99502
41042
41043         Reviewed by Beth Dakin.
41044
41045         The current model of determining the accessible text for an object has a lot of Mac biases built in
41046         due to legacy implementation. 
41047
41048         This change categorizes and orders accessibility text based on WAI-ARIA text computation rules and then
41049         allows the platform (only Mac right now) to decide how best to apply that text to its own AX API.
41050         http://www.w3.org/TR/wai-aria/roles#textalternativecomputation
41051
41052         This change tried very hard not to change any test behavior, even though it exposed a number of weird
41053         edge cases where we were treating attributes differently based on element type. 
41054
41055         Future patches will resolve those discrepancies.
41056
41057         * accessibility/AccessibilityImageMapLink.cpp:
41058         (WebCore::AccessibilityImageMapLink::accessibilityText):
41059         * accessibility/AccessibilityImageMapLink.h:
41060         (AccessibilityImageMapLink):
41061         * accessibility/AccessibilityMediaControls.cpp:
41062         (WebCore::AccessibilityMediaControl::accessibilityText):
41063         * accessibility/AccessibilityMediaControls.h:
41064         (AccessibilityMediaControl):
41065         (WebCore::AccessibilityMediaTimeDisplay::isMediaControlLabel):
41066         * accessibility/AccessibilityNodeObject.cpp:
41067         (WebCore::AccessibilityNodeObject::titleElementText):
41068         (WebCore::AccessibilityNodeObject::accessibilityText):
41069         (WebCore::AccessibilityNodeObject::ariaLabeledByText):
41070         (WebCore::AccessibilityNodeObject::alternativeText):
41071         (WebCore::AccessibilityNodeObject::alternativeTextForWebArea):
41072         (WebCore::AccessibilityNodeObject::visibleText):
41073         (WebCore::AccessibilityNodeObject::helpText):
41074         (WebCore::AccessibilityNodeObject::ariaDescribedByAttribute):
41075         * accessibility/AccessibilityNodeObject.h:
41076         (AccessibilityNodeObject):
41077         * accessibility/AccessibilityObject.h:
41078         (AccessibilityText):
41079         (WebCore::AccessibilityText::AccessibilityText):
41080         (WebCore::AccessibilityObject::isMediaControlLabel):
41081         (AccessibilityObject):
41082         (WebCore::AccessibilityObject::accessibilityText):
41083         (WebCore::AccessibilityObject::setAccessibleName):
41084         (WebCore::AccessibilityObject::accessibilityDescription):
41085         (WebCore::AccessibilityObject::title):
41086         (WebCore::AccessibilityObject::helpText):
41087         (WebCore::AccessibilityObject::stringValue):
41088         (WebCore::AccessibilityObject::textUnderElement):
41089         (WebCore::AccessibilityObject::text):
41090         (WebCore::AccessibilityObject::textLength):
41091         (WebCore::AccessibilityObject::setRoleValue):
41092         (WebCore::AccessibilityObject::roleValue):
41093         (WebCore::AccessibilityObject::selection):
41094         (WebCore::AccessibilityObject::hierarchicalLevel):
41095         * accessibility/AccessibilityRenderObject.cpp:
41096         * accessibility/AccessibilityRenderObject.h:
41097         (AccessibilityRenderObject):
41098         * accessibility/mac/WebAccessibilityObjectWrapper.mm:
41099         (-[WebAccessibilityObjectWrapper titleTagShouldBeUsedInDescriptionField]):
41100         (-[WebAccessibilityObjectWrapper accessibilityTitle]):
41101         (-[WebAccessibilityObjectWrapper accessibilityDescription]):
41102         (-[WebAccessibilityObjectWrapper accessibilityHelpText]):
41103         (-[WebAccessibilityObjectWrapper accessibilityAttributeValue:]):
41104         * platform/LocalizedStrings.cpp:
41105         (WebCore::localizedMediaControlElementHelpText):
41106
41107 2012-10-19  Kent Tamura  <tkent@chromium.org>
41108
41109         Use Localizer::monthFormat to construct input[type=month] UI
41110         https://bugs.webkit.org/show_bug.cgi?id=99818
41111
41112         Reviewed by Kentaro Hara.
41113
41114         Use an LDML format returned by Localizer::monthFormat for
41115         input[type=month] UI.
41116
41117         Because the format may contain symbolic month names and symbolic
41118         stand-alone month names, we need to add:
41119          - Symbolic/numeric detection in DateTimeEditBuilder
41120          - Normal/stand-alone detection in DateTimeEditBuilder
41121          - Symbolic edit field for months
41122
41123         Test: fast/forms/month-multiple-fields/month-multiple-fields-appearance-l10n.html,
41124               fast/forms/month-multiple-fields/month-multiple-fields-keyboard-events.html
41125
41126         * html/MonthInputType.cpp:
41127         (WebCore::MonthInputType::setupLayoutParameters):
41128         Use Localizer::monthFormat.
41129
41130         * html/shadow/DateTimeEditElement.cpp:
41131         (WebCore::DateTimeEditBuilder::visitField):
41132         - If the number of continuous field character is greater than 2, use
41133         DateTimeSymbolicMonthFieldElement.
41134         - Supports stand-alone month field.
41135
41136         * html/shadow/DateTimeFieldElements.h:
41137         (DateTimeSymbolicMonthFieldElement): Added. A subclass of DateTimeSymbolicFieldElement.
41138         * html/shadow/DateTimeFieldElements.cpp:
41139         (WebCore::DateTimeSymbolicMonthFieldElement::DateTimeSymbolicMonthFieldElement):
41140         Added.
41141         (WebCore::DateTimeSymbolicMonthFieldElement::create): Added.
41142         (WebCore::DateTimeSymbolicMonthFieldElement::populateDateTimeFieldsState):
41143         We need to add 1 because the internal integer representation is 0-based
41144         and DateTimeFieldsState uses 1-based month.
41145         (WebCore::DateTimeSymbolicMonthFieldElement::setValueAsDate):
41146         DateComponents::month is 0-based.
41147         (WebCore::DateTimeSymbolicMonthFieldElement::setValueAsDateTimeFieldsState):
41148         We need to subtract 1 because the internal integer representation is 0-based
41149         and DateTimeFieldsState uses 1-based month.
41150
41151         * html/shadow/DateTimeSymbolicFieldElement.h:
41152         (WebCore::DateTimeSymbolicFieldElement::symbolsSize):
41153         Added for DateTimeSymbolicMonthFieldElement::setValueAsDateTimeFieldsState.
41154
41155 2012-10-19  Vsevolod Vlasov  <vsevik@chromium.org>
41156
41157         Web Inspector: inspector/styles/styles-history.html is failing Text on Windows and Linux
41158         https://bugs.webkit.org/show_bug.cgi?id=99519
41159
41160         Reviewed by Alexander Pavlov.
41161
41162         Extracted _styleContentSet callback in a class method to make it sniffable by tests.
41163
41164         * inspector/front-end/StylesSourceMapping.js:
41165         (WebInspector.StyleFile.prototype._commitIncrementalEdit):
41166         (WebInspector.StyleFile.prototype._styleContentSet):
41167
41168 2012-10-19  Pavel Feldman  <pfeldman@chromium.org>
41169
41170         Web Inspector: add object-src 'none' to the inspector.html
41171         https://bugs.webkit.org/show_bug.cgi?id=99728
41172
41173         Reviewed by Vsevolod Vlasov.
41174
41175         * inspector/front-end/inspector.html:
41176
41177 2012-10-19  Vsevolod Vlasov  <vsevik@chromium.org>
41178
41179         Web Inspector: Get rid of isSnippetEvaluation flag on UISourceCode
41180         https://bugs.webkit.org/show_bug.cgi?id=99823
41181
41182         Reviewed by Yury Semikhatsky.
41183
41184         Replaced isSnippetEvaluation flag with a pair of isSnippet and isTemporary set.
41185
41186         * inspector/front-end/ResourceScriptMapping.js:
41187         (WebInspector.ResourceScriptMapping.prototype._getOrCreateTemporaryUISourceCode):
41188         * inspector/front-end/ScriptSnippetModel.js:
41189         (WebInspector.ScriptSnippetModel.prototype._releasedUISourceCodes):
41190         (WebInspector.ScriptSnippetModel.prototype._createUISourceCodeForScript):
41191         * inspector/front-end/ScriptsNavigator.js:
41192         (WebInspector.ScriptsNavigator.prototype._snippetsNavigatorViewForUISourceCode):
41193         (WebInspector.ScriptsNavigator.prototype.revealUISourceCode):
41194         * inspector/front-end/ScriptsPanel.js:
41195         (WebInspector.ScriptsPanel.prototype._createSourceFrame):
41196         * inspector/front-end/Workspace.js:
41197         (WebInspector.Project.prototype.addTemporaryUISourceCode):
41198
41199 2012-10-19  Alexander Pavlov  <apavlov@chromium.org>
41200
41201         Web Inspector: Invalid Regex in SASSSourceMapping/didRequestContent, breaks Support for Sass experiment
41202         https://bugs.webkit.org/show_bug.cgi?id=99729
41203
41204         Reviewed by Vsevolod Vlasov.
41205
41206         Decode only the first line number digit written in a six-character escaped Unicode format.
41207
41208         * inspector/front-end/SASSSourceMapping.js:
41209         (WebInspector.SASSSourceMapping.prototype._resourceAdded.didRequestContent):
41210         (WebInspector.SASSSourceMapping.prototype._resourceAdded):
41211
41212 2012-10-19  Tommy Widenflycht  <tommyw@google.com>
41213
41214         MediaStream API: Update the RuntimeEnabledFeatures flags
41215         https://bugs.webkit.org/show_bug.cgi?id=99714
41216
41217         Reviewed by Adam Barth.
41218
41219         Updating the RuntimeEnabledFeatures flags to match reality:
41220         isMediaStreamEnabled and isPeerConnectionEnabled should be true by default and
41221         isDeprecatedPeerConnectionEnabled false.
41222
41223         Patch covered by existing tests.
41224
41225         * bindings/generic/RuntimeEnabledFeatures.cpp:
41226         (WebCore):
41227
41228 2012-10-19  Adam Barth  <abarth@webkit.org>
41229
41230         [V8] Simplify GCPrologueVisitor
41231         https://bugs.webkit.org/show_bug.cgi?id=99819
41232
41233         Reviewed by Kentaro Hara.
41234
41235         Previously, GCPrologueVisitor used a complicated traits-based template
41236         design. That's not necessary. We can just implement it directly without
41237         template magic.
41238
41239         The one subtly here is that MessagePort is not actually a subclass of
41240         ActiveDOMObject. The next stage of this cleanup is to make MessagePort
41241         inherit from ActiveDOMObject and remove this special case entirely.
41242
41243         * bindings/v8/V8GCController.cpp:
41244         (WebCore::EnsureWeakDOMNodeVisitor::visitDOMWrapper):
41245         (WebCore):
41246         (WebCore::ActiveDOMObjectPrologueVisitor::visitDOMWrapper):
41247         (WebCore::NodeVisitor::visitDOMWrapper):
41248         (WebCore::V8GCController::gcPrologue):
41249
41250 2012-10-19  Eugene Klyuchnikov  <eustas.bug@gmail.com>
41251
41252         Web Inspector: Saving HAR, snapshots and timeline data do not work in remote debugging mode
41253         https://bugs.webkit.org/show_bug.cgi?id=99179
41254
41255         Reviewed by Yury Semikhatsky.
41256
41257         Added method "close" to InspectorFrontendHost.
41258         Symantically, this method forces to flush all unsaved buffers for
41259         specified file. In native implementation this turns to be no-op.
41260
41261         In stub implementation "close" causes compilation of blob object an
41262         navigating to blob-schema url.
41263
41264         Removed "canAppend", as appending in now suppurted
41265         by all implementations.
41266
41267         Repaced schema "data" with "blob" in InspectorFrontendHostStub "save"
41268         to avoid out-of-memory errors.
41269
41270         * inspector/InspectorFrontendHost.cpp:
41271         (WebCore::InspectorFrontendHost::close): Compiles blob object and
41272         navigates to blob-object url.
41273         (WebCore):
41274         * inspector/InspectorFrontendHost.h: Added "close" method.
41275         * inspector/InspectorFrontendHost.idl: Ditto.
41276         * inspector/front-end/FileManager.js:
41277         (WebInspector.FileManager.prototype.close): Proxy to InspectorFrontend.
41278         * inspector/front-end/FileUtils.js:
41279         (WebInspector.FileOutputStream.prototype.close):
41280         Invoke "close" on FileManager.
41281         (WebInspector.FileOutputStream.prototype._onAppendDone): Ditto.
41282         * inspector/front-end/HandlerRegistry.js: Added mandatory "close" call.
41283         * inspector/front-end/HeapSnapshotView.js:
41284         (WebInspector.HeapProfileHeader.prototype.canSaveToFile): Fixed check.
41285         * inspector/front-end/InspectorFrontendHostStub.js:
41286         (.WebInspector.InspectorFrontendHostStub):
41287         Added "appendable" behaviour emulation.
41288         * inspector/front-end/SourceFrame.js: Added mandatory "close" call.
41289         * inspector/front-end/externs.js: Replaced "canAppend" with "close"
41290
41291 2012-10-18  Dominic Mazzoni  <dmazzoni@google.com>
41292
41293         AX: labelForElement is slow when there are a lot of DOM elements
41294         https://bugs.webkit.org/show_bug.cgi?id=97825
41295
41296         Reviewed by Ryosuke Niwa.
41297
41298         Adds a DocumentOrderedMap to TreeScope that allows accessibility to
41299         quickly map from an id to the label for that id. This speeds up
41300         AccessibilityNode::labelForElement, which was a bottleneck in Chromium
41301         when accessibility was on.
41302
41303         Tests: accessibility/title-ui-element-correctness.html
41304                perf/accessibility-title-ui-element.html
41305
41306         * accessibility/AccessibilityNodeObject.cpp:
41307         (WebCore::AccessibilityNodeObject::labelForElement):
41308         * dom/DocumentOrderedMap.cpp:
41309         (WebCore::keyMatchesLabelForAttribute):
41310         (WebCore):
41311         (WebCore::DocumentOrderedMap::get):
41312         (WebCore::DocumentOrderedMap::getElementByLabelForAttribute):
41313         * dom/DocumentOrderedMap.h:
41314         (DocumentOrderedMap):
41315         * dom/Element.cpp:
41316         (WebCore::Element::insertedInto):
41317         (WebCore::Element::removedFrom):
41318         (WebCore::Element::updateLabel):
41319         (WebCore):
41320         (WebCore::Element::willModifyAttribute):
41321         * dom/Element.h:
41322         (Element):
41323         * dom/TreeScope.cpp:
41324         (WebCore::TreeScope::TreeScope):
41325         (WebCore::TreeScope::destroyTreeScopeData):
41326         (WebCore::TreeScope::addLabel):
41327         (WebCore):
41328         (WebCore::TreeScope::removeLabel):
41329         (WebCore::TreeScope::labelElementForId):
41330         * dom/TreeScope.h:
41331         (WebCore):
41332         (TreeScope):
41333         (WebCore::TreeScope::shouldCacheLabelsByForAttribute):
41334
41335 2012-10-19  Eugene Klyuchnikov  <eustas.bug@gmail.com>
41336
41337         Web Inspector: Update localizedStrings.js
41338         https://bugs.webkit.org/show_bug.cgi?id=99701
41339
41340         Reviewed by Yury Semikhatsky.
41341
41342         Fixed most of missing strings and orphans.
41343
41344         * English.lproj/localizedStrings.js:
41345         * inspector/front-end/SettingsScreen.js:
41346
41347 2012-10-17  Ilya Tikhonovsky  <loislo@chromium.org>
41348
41349         Web Inspector: NMI provide data for mixing with tcmalloc heap dumps.
41350         https://bugs.webkit.org/show_bug.cgi?id=99457
41351
41352         Reviewed by Yury Semikhatsky.
41353
41354         countObjectSize now accepts ptr as the first argument and saves it into HashMap if the binary was ran with HEAPPROFILE env variable.
41355         getProcessMemoryDistribution does snapshot and calls the downstream code with the map of counted objects.
41356
41357         * inspector/InspectorClient.h:
41358         (WebCore::InspectorClient::dumpUncountedAllocatedObjects):
41359         * inspector/InspectorMemoryAgent.cpp:
41360         (WebCore::reportJSHeapInfo):
41361         (WebCore::reportRenderTreeInfo):
41362         (WebCore):
41363         (WebCore::InspectorMemoryAgent::getProcessMemoryDistribution):
41364         * inspector/MemoryInstrumentationImpl.cpp:
41365         (WebCore::MemoryInstrumentationClientImpl::countObjectSize):
41366         (WebCore::MemoryInstrumentationClientImpl::reportMemoryUsage):
41367         * inspector/MemoryInstrumentationImpl.h:
41368         (MemoryInstrumentationClientImpl):
41369         (WebCore::MemoryInstrumentationClientImpl::countedObjects):
41370
41371 2012-10-19  Adam Barth  <abarth@webkit.org>
41372
41373         [V8] DOMObjectVisitor does nothing
41374         https://bugs.webkit.org/show_bug.cgi?id=99812
41375
41376         Reviewed by Kentaro Hara.
41377
41378         This code doesn't do anything, even in Debug! We should just remove it.
41379
41380         * bindings/v8/V8GCController.cpp:
41381         (WebCore):
41382         (WebCore::V8GCController::gcPrologue):
41383         (WebCore::V8GCController::gcEpilogue):
41384
41385 2012-10-19  Adam Barth  <abarth@webkit.org>
41386
41387         [V8] Remove unused typedef from V8GCController.cpp
41388         https://bugs.webkit.org/show_bug.cgi?id=99808
41389
41390         Reviewed by Kentaro Hara.
41391
41392         This typedef is not used.
41393
41394         * bindings/v8/V8GCController.cpp:
41395
41396 2012-10-18  Alexander Pavlov  <apavlov@chromium.org>
41397
41398         Web Inspector: [Styles] Property considered overridden if it is non-inherited important property in inherited style
41399         https://bugs.webkit.org/show_bug.cgi?id=99720
41400
41401         Reviewed by Yury Semikhatsky.
41402
41403         Non-inherited properties are now disregarded in inherited styles.
41404
41405         * inspector/front-end/StylesSidebarPane.js:
41406         (WebInspector.StylesSidebarPane.prototype._refreshStyleRules):
41407         (WebInspector.StylesSidebarPane.prototype._markUsedProperties):
41408
41409 2012-10-18  Adam Barth  <abarth@webkit.org>
41410
41411         [V8] GrouperVisitor is secretly two entirely separate objects
41412         https://bugs.webkit.org/show_bug.cgi?id=99810
41413
41414         Reviewed by Kentaro Hara.
41415
41416         We can separate out the two things that GrouperVisitor is trying to do
41417         because they have nothing to do with each other.
41418
41419         * bindings/v8/V8GCController.cpp:
41420         (ObjectVisitor):
41421         (WebCore::ObjectVisitor::visitDOMWrapper):
41422         (WebCore):
41423         (WebCore::V8GCController::gcPrologue):
41424
41425 2012-10-18  Kiran Muppala  <cmuppala@apple.com>
41426
41427         Automatically start plugins created within a user gesture, skipping snapshotting
41428         https://bugs.webkit.org/show_bug.cgi?id=99778
41429
41430         Reviewed by Alexey Proskuryakov.
41431
41432         If a user gesture is being processed, do not set the display state of
41433         HTMLPluginImageElement to WaitingForSnapshot.
41434
41435         No new tests, since it only affects when plugins switch from snapshot to running
41436         state.  Does not affect rendering of other elements.
41437
41438         * html/HTMLPlugInImageElement.cpp:
41439         (WebCore::HTMLPlugInImageElement::HTMLPlugInImageElement):
41440
41441 2012-10-18  Kent Tamura  <tkent@chromium.org>
41442
41443         Add shortMonthLabels and shortStandAloneMonthLabels to Localizer
41444         https://bugs.webkit.org/show_bug.cgi?id=99787
41445
41446         Reviewed by Kentaro Hara.
41447
41448         This is going to be used for input[type=month] UI. This doesn't affect
41449         any bahevior yet.
41450
41451         Tests: Add some tests to Source/WebKit/chromium/tests/, and will add
41452         layout tests later.
41453
41454         * platform/text/Localizer.h:
41455         (Localizer): Add shortMonthLabels and shortStandAloneMonthLabels as pure
41456         virtual member functions.
41457
41458         * platform/text/LocaleICU.h:
41459         (LocaleICU): Declare shortMonthLabels and shortStandAloneMonthLabels.
41460         * platform/text/LocaleICU.cpp:
41461         (WebCore::LocaleICU::shortMonthLabels): Added.
41462         (WebCore::LocaleICU::shortStandAloneMonthLabels): Added.
41463
41464         * platform/text/LocaleNone.cpp:
41465         (LocaleNone): Declare shortMonthLabels and shortStandAloneMonthLabels.
41466         (WebCore::LocaleNone::shortMonthLabels):
41467         Added. Always returns English labels.
41468         (WebCore::LocaleNone::shortStandAloneMonthLabels):
41469         Addes. Just calls shortMonthLabels.
41470
41471         * platform/text/LocaleWin.h:
41472         (LocaleWin): Declare shortMonthLabels and shortStandAloneMonthLabels.
41473         * platform/text/LocaleWin.cpp:
41474         (WebCore::LocaleWin::shortMonthLabels): Added.
41475         (WebCore::LocaleWin::shortStandAloneMonthLabels):
41476         Added. Always returns shortMonthLabels.
41477
41478         * platform/text/mac/LocaleMac.h:
41479         (LocaleMac): Declare shortMonthLabels and shortStandAloneMonthLabels.
41480         * platform/text/mac/LocaleMac.mm:
41481         (WebCore::LocaleMac::shortMonthLabels): Added.
41482         (WebCore::LocaleMac::shortStandAloneMonthLabels): Added.
41483
41484 2012-10-18  Kunihiko Sakamoto  <ksakamoto@chromium.org>
41485
41486         Implement value sanitization algorithm for type=datetime
41487         https://bugs.webkit.org/show_bug.cgi?id=76893
41488
41489         Reviewed by Kent Tamura.
41490
41491         Implement the value sanitization algorithm for type=datetime that adjusts
41492         the value to a valid normalized forced-UTC global date and time string.
41493         See http://www.whatwg.org/specs/web-apps/current-work/multipage/common-microsyntaxes.html#valid-normalized-forced-utc-global-date-and-time-string
41494
41495         Test: fast/forms/datetime/datetime-value-sanitization.html
41496
41497         * html/DateTimeInputType.cpp:
41498         (WebCore::DateTimeInputType::sanitizeValue): Implemented.
41499         (WebCore):
41500         * html/DateTimeInputType.h:
41501         (DateTimeInputType): Add sanitizeValue.
41502         * platform/DateComponents.cpp:
41503         (WebCore::DateComponents::addMinute): Fixed a bug that caused wrong adjustment
41504         of timezone offset (e.g. 2012-10-17T01:00+01:00 -> 2012-10-17T01:-60Z).
41505
41506 2012-10-18  Byungwoo Lee  <bw80.lee@samsung.com>
41507
41508         Fix build warning.
41509         https://bugs.webkit.org/show_bug.cgi?id=99788
41510
41511         Reviewed by Kentaro Hara.
41512
41513         Use UNUSED_PARAM macro for removing -Wunused-parameter.
41514
41515         * rendering/RenderLayer.cpp:
41516         (WebCore::RenderLayer::currentTransform):
41517
41518 2012-10-18  Benjamin Poulain  <bpoulain@apple.com>
41519
41520         [WK2] WebKit2 does not build without PLUGIN_PROCESS on Mac
41521         https://bugs.webkit.org/show_bug.cgi?id=99771
41522
41523         Reviewed by Anders Carlsson.
41524
41525         * WebCore.exp.in: The symbol is used by WebCore Test Support, move it
41526         to the general section.
41527
41528 2012-10-18  Adam Barth  <abarth@webkit.org>
41529
41530         [V8] fast/dom/gc-9.html fails for document.styleSheets
41531         https://bugs.webkit.org/show_bug.cgi?id=99786
41532
41533         Reviewed by Kentaro Hara.
41534
41535         V8 needs to know about this IDL attribute as well.
41536
41537         * css/StyleSheetList.idl:
41538
41539 2012-10-18  Adam Barth  <abarth@webkit.org>
41540
41541         [V8] fast/dom/gc-9.html fails for document.implementation
41542         https://bugs.webkit.org/show_bug.cgi?id=99783
41543
41544         Reviewed by Kentaro Hara.
41545
41546         In order to correctly manage the lifetime of document.implementation,
41547         we need to implement GenerateIsReachable=ImplDocument.
41548
41549         * bindings/scripts/CodeGeneratorV8.pm:
41550         (GenerateVisitDOMWrapper):
41551         * bindings/scripts/IDLAttributes.txt:
41552         * dom/DOMImplementation.idl:
41553
41554 2012-10-18  Chris Fleizach  <cfleizach@apple.com>
41555
41556         AX: Crashes in WebProcess at com.apple.WebCore: -[AccessibilityObjectWrapper remoteAccessibilityParentObject] + 78
41557         https://bugs.webkit.org/show_bug.cgi?id=96443
41558
41559         Reviewed by Beth Dakin.
41560
41561         Separate out the chain of calls so that the number of times document() is called is reduced and it will be easier
41562         to determine which line this crash is happening on.
41563
41564         * accessibility/mac/WebAccessibilityObjectWrapper.mm:
41565         (-[WebAccessibilityObjectWrapper remoteAccessibilityParentObject]):
41566
41567 2012-10-18  Alec Flett  <alecflett@chromium.org>
41568
41569         IndexedDB: Refactor IDBDatabaseBackendImpl to use IDBDatabaseMetadata
41570         https://bugs.webkit.org/show_bug.cgi?id=99773
41571
41572         Reviewed by Tony Chang.
41573
41574         Refactor to begin separating out metadata from stateful backend objects,
41575         in preparation for https://bugs.webkit.org/show_bug.cgi?id=99774.
41576
41577         Also includes some #include dependency cleanup so that the backing store
41578         depends less on the stateful backend objects.
41579
41580         No new tests as this is purely a refactor.
41581
41582         * Modules/indexeddb/IDBBackingStore.h:
41583         (WebCore):
41584         (IDBBackingStore):
41585         * Modules/indexeddb/IDBCursor.h:
41586         * Modules/indexeddb/IDBCursorBackendImpl.h:
41587         (WebCore):
41588         * Modules/indexeddb/IDBDatabaseBackendImpl.cpp:
41589         (WebCore::IDBDatabaseBackendImpl::IDBDatabaseBackendImpl):
41590         (WebCore::IDBDatabaseBackendImpl::openInternal):
41591         (WebCore::IDBDatabaseBackendImpl::metadata):
41592         (WebCore::IDBDatabaseBackendImpl::createObjectStore):
41593         (WebCore::IDBDatabaseBackendImpl::setVersion):
41594         (WebCore::IDBDatabaseBackendImpl::setVersionInternal):
41595         (WebCore::IDBDatabaseBackendImpl::setIntVersionInternal):
41596         (WebCore::IDBDatabaseBackendImpl::processPendingCalls):
41597         (WebCore::IDBDatabaseBackendImpl::openConnection):
41598         (WebCore::IDBDatabaseBackendImpl::runIntVersionChangeTransaction):
41599         (WebCore::IDBDatabaseBackendImpl::openConnectionWithVersion):
41600         (WebCore::IDBDatabaseBackendImpl::deleteDatabase):
41601         (WebCore::IDBDatabaseBackendImpl::loadObjectStores):
41602         (WebCore::IDBDatabaseBackendImpl::resetVersion):
41603         * Modules/indexeddb/IDBDatabaseBackendImpl.h:
41604         (WebCore::IDBDatabaseBackendImpl::id):
41605         (IDBDatabaseBackendImpl):
41606         * Modules/indexeddb/IDBLevelDBBackingStore.cpp:
41607         (WebCore::IDBLevelDBBackingStore::getIDBDatabaseMetaData):
41608         (WebCore::IDBLevelDBBackingStore::deleteDatabase):
41609         * Modules/indexeddb/IDBLevelDBBackingStore.h:
41610         (IDBLevelDBBackingStore):
41611         * Modules/indexeddb/IDBObjectStoreBackendInterface.h:
41612         * Modules/indexeddb/IDBTransaction.h:
41613         (WebCore):
41614
41615 2012-10-18  Peter Kasting  <pkasting@google.com>
41616
41617         [Skia] Set m_hasAlpha correctly in ImageFrame::copyBitmapData.
41618         https://bugs.webkit.org/show_bug.cgi?id=99781
41619
41620         Reviewed by Adam Barth.
41621
41622         No tests, since the actual effects of this bug are fickle and it's not
41623         clear how to extract and check particular subframes of an animated GIF.
41624
41625         * platform/image-decoders/skia/ImageDecoderSkia.cpp:
41626         (WebCore::ImageFrame::copyBitmapData):
41627
41628 2012-10-18  Pan Deng  <pan.deng@intel.com>
41629
41630         [Resource Timing]Implementation of resource timing buffer size restriction functionality
41631         https://bugs.webkit.org/show_bug.cgi?id=84885.
41632
41633         Reviewed by Tony Gentilcore.
41634
41635         http://www.w3.org/TR/2012/CR-resource-timing-20120522/
41636         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. 
41637
41638         Tests: http/tests/w3c/webperf/submission/Intel/resource-timing/test_resource_timing_buffer_full_when_populate_entries.html
41639                http/tests/w3c/webperf/submission/Intel/resource-timing/test_resource_timing_buffer_full_when_shrink_buffer_size.html
41640                http/tests/w3c/webperf/submission/Intel/resource-timing/test_resource_timing_buffer_size_restriction.html
41641                http/tests/w3c/webperf/submission/Intel/resource-timing/test_resource_timing_clear_resource_timing_functionality.html
41642                http/tests/w3c/webperf/submission/Intel/resource-timing/test_resource_timing_on_shrink_buffer_size.html
41643                http/tests/w3c/webperf/submission/Intel/resource-timing/test_resource_timing_store_and_clear_during_callback.html
41644
41645         * page/Performance.cpp:
41646         (WebCore):
41647         (WebCore::Performance::Performance):
41648         (WebCore::Performance::webkitSetResourceTimingBufferSize):
41649         (WebCore::Performance::addResourceTiming):
41650         (WebCore::Performance::isResourceTimingBufferFull):
41651         * page/Performance.h:
41652         (Performance):
41653
41654 2012-10-18  Ryosuke Niwa  <rniwa@webkit.org>
41655
41656         REGRESSION(r130411): Copying & pasting the first line of text can move caret to the end of text area
41657         https://bugs.webkit.org/show_bug.cgi?id=99663
41658
41659         Reviewed by Enrica Casucci and Levi Weintraub.
41660
41661         The bug was caused by positionOnlyToBeUpdated's offset not being shifted correctly in
41662         ReplaceSelectionCommand::mergeTextNodesAroundPosition. Suppose we have text nodes t1 and t2 and
41663         positionOnlyToBeUpdated had offset k in t2. When t2 is merged into t1, positionOnlyToBeUpdated should be
41664         moved to (t1, n + k) where n is the ORIGINAL length of t1 before t2 is merged. But we were using
41665         the length after t2 is merged.
41666
41667         Fixed the bug by saving the original length of t1 and using that in the offset adjustment.
41668         Also use the right offset.
41669
41670         Test: editing/pasteboard/copy-paste-first-line-in-textarea.html
41671
41672         * editing/ReplaceSelectionCommand.cpp:
41673         (WebCore::ReplaceSelectionCommand::mergeTextNodesAroundPosition):
41674
41675 2012-10-18  Claudio Saavedra  <csaavedra@igalia.com>
41676
41677         [GTK] Invalid read from WebKit::DOMObjectCache::clearByFrame
41678         https://bugs.webkit.org/show_bug.cgi?id=82882
41679
41680         Reviewed by Xan Lopez.
41681
41682         Based on a patch by Milan Crha <mcrha@redhat.com>
41683
41684         Prevent an invalid access to a pointer while clearing the DOM
41685         object cache.
41686         * bindings/gobject/DOMObjectCache.cpp:
41687         (WebKit::DOMObjectCache::clearByFrame): Prevent an invalid access.
41688
41689 2012-10-18  Sheriff Bot  <webkit.review.bot@gmail.com>
41690
41691         Unreviewed, rolling out r131810.
41692         http://trac.webkit.org/changeset/131810
41693         https://bugs.webkit.org/show_bug.cgi?id=99762
41694
41695         Broke linux debug webkit_unit_tests (Requested by
41696         danakj|gardening on #webkit).
41697
41698         * WebCore.gypi:
41699         * platform/graphics/ImageSource.cpp:
41700         (WebCore::ImageSource::setData):
41701         * platform/graphics/ImageSource.h:
41702         (WebCore):
41703         (ImageSource):
41704         * platform/graphics/chromium/DeferredImageDecoder.cpp: Removed.
41705         * platform/graphics/chromium/DeferredImageDecoder.h: Removed.
41706         * platform/graphics/chromium/ImageDecodingStore.cpp: Removed.
41707         * platform/graphics/chromium/ImageDecodingStore.h: Removed.
41708         * platform/graphics/chromium/ImageFrameGenerator.cpp: Removed.
41709         * platform/graphics/chromium/ImageFrameGenerator.h: Removed.
41710         * platform/graphics/chromium/LazyDecodingPixelRef.cpp: Removed.
41711         * platform/graphics/chromium/LazyDecodingPixelRef.h: Removed.
41712         * platform/graphics/chromium/ScaledImageFragment.cpp: Removed.
41713         * platform/graphics/chromium/ScaledImageFragment.h: Removed.
41714         * platform/graphics/skia/NativeImageSkia.cpp:
41715         (WebCore::NativeImageSkia::resizedBitmap):
41716         * platform/image-decoders/ImageDecoder.h:
41717         (ImageFrame):
41718
41719 2012-10-18  Tommy Widenflycht  <tommyw@google.com>
41720
41721         MediaStream API: Do some cleanup in the chromium WebKit API
41722         https://bugs.webkit.org/show_bug.cgi?id=99713
41723
41724         Reviewed by Adam Barth.
41725
41726         Removing the deprecated version of WebMediaStreamDescriptor::initialize.
41727
41728         No testing needed since only an unused function is removed.
41729
41730         * platform/chromium/support/WebMediaStreamDescriptor.cpp:
41731
41732 2012-10-18  Alpha Lam  <hclam@chromium.org>
41733
41734         [chromium] Implement deferred image decoding
41735         https://bugs.webkit.org/show_bug.cgi?id=94240
41736
41737         Reviewed by Stephen White.
41738
41739         Objectives:
41740
41741         To record image decoding operations during painting and to defer
41742         decoding operations until rasterization.
41743
41744         Rationale:
41745
41746         This is a key feature that enables impl-side painting which requires
41747         fast recording of drawing operations. The existing decode-on-draw
41748         restricts that recording has to block on expensive decoding operations.
41749         This change allows recording of image decoding operations during paint
41750         time.
41751
41752         Design:
41753
41754         Image decoding happens when a BitmapImage is drawn into a
41755         GraphicsContext. When per-tile painting is enabled GraphicsContext
41756         is backed by SkCanvas in recording mode. This SkCanvas records drawing
41757         and image decoding operations to minimize recording time.
41758
41759         An image decoding operation is recorded as a SkPixelRef object
41760         implemented by LazyDecodingPixelRef. This object references raw encoded
41761         data, regions to be decoded and scaling information.
41762
41763         When used in conjunction with per-tile painting this feature defers
41764         image decoding until the SkCanvas referencing the image is rasterized.
41765
41766         Both recording and rasterization happen on the main thread.
41767
41768         Performance Impact:
41769
41770         This feature is enabled by WebKit::setDeferredImageDecodingEnabled()
41771         and does not have an impact when disabled.
41772
41773         This feature is disabled by default.
41774
41775         Upcoming Changes:
41776
41777         1. Implement a full-featured image cache in ImageDecodingStore.
41778         2. Allow rasterization and decoding on impl thread.
41779
41780         Classes Involved:
41781
41782         BitmapImage
41783
41784         BitmapImage is the entry point for deferred image decoding. When
41785         drawing a BitmapImage into a GraphicsContext it makes a request to
41786         create a NativeImageSkia. We substitute the content in NativeImageSkia
41787         such that it is lazily decoded.
41788
41789         DeferredImageDecoder
41790
41791         This is the platform implementation of a image decoder for Chromium.
41792         This is a bridge layer that either delegates calls to the actual
41793         ImageDecoder or create a lazily-decoded SkBitmap and delegates calls
41794         to ImageDecodingStore.
41795
41796         ImageDecodingStore
41797
41798         This object manages all encoded images. It keeps track of encoded
41799         data and the corresponding ImageDecoder for doing actual decoding. It
41800         is also responsible for generating lazily decoded SkBitmaps. This
41801         SkBitmap contains a LazyDecodingPixelRef object which references to an
41802         image entry in ImageDecodingStore.
41803
41804         ScaledImageFragment
41805
41806         A container for a scaled image fragment. In addition to bitmap pixels
41807         it contains information about the ID of the image, scale and clipping.
41808
41809         ImageFrameGenerator
41810
41811         This object is responsible for generating decoded pixels. It is also
41812         a container for encoded image data and corresponding image decoder.
41813
41814         LazyDecodingPixelRef
41815
41816         This object is embedded in a SkBitmap to enable lazy decoding. When
41817         SkBitmap needs to access pixels LazyDecodingPixelRef is locked. It
41818         contains information to locate an image and scaling info, these
41819         information is submitted to ImageDecodingStore to access actual pixels.
41820
41821         Layout tests. There are about 80 tests in this virtual test suite
41822         running this feature in this directory:
41823
41824         platform/chromium/virtual/deferred/fast/images
41825
41826         Unit tests. Added DeferredImageDecoderTest to verify deferred
41827         image decoding behavior.
41828
41829         * WebCore.gypi:
41830         * platform/graphics/ImageSource.cpp:
41831         (WebCore::ImageSource::setData):
41832         * platform/graphics/ImageSource.h:
41833         (WebCore):
41834         (ImageSource):
41835         * platform/graphics/chromium/DeferredImageDecoder.cpp: Added.
41836         (WebCore):
41837         (WebCore::DeferredImageDecoder::DeferredImageDecoder):
41838         (WebCore::DeferredImageDecoder::~DeferredImageDecoder):
41839         (WebCore::DeferredImageDecoder::create):
41840         (WebCore::DeferredImageDecoder::createForTesting):
41841         (WebCore::DeferredImageDecoder::filenameExtension):
41842         (WebCore::DeferredImageDecoder::frameBufferAtIndex):
41843         (WebCore::DeferredImageDecoder::setData):
41844         (WebCore::DeferredImageDecoder::isSizeAvailable):
41845         (WebCore::DeferredImageDecoder::size):
41846         (WebCore::DeferredImageDecoder::frameSizeAtIndex):
41847         (WebCore::DeferredImageDecoder::frameCount):
41848         (WebCore::DeferredImageDecoder::repetitionCount):
41849         (WebCore::DeferredImageDecoder::clearFrameBufferCache):
41850         (WebCore::DeferredImageDecoder::frameHasAlphaAtIndex):
41851         (WebCore::DeferredImageDecoder::frameBytesAtIndex):
41852         * platform/graphics/chromium/DeferredImageDecoder.h: Added.
41853         (WebCore):
41854         (DeferredImageDecoder):
41855         * platform/graphics/chromium/ImageDecodingStore.cpp: Added.
41856         (WebCore::ImageDecodingStore::ImageDecodingStore):
41857         (WebCore):
41858         (WebCore::ImageDecodingStore::~ImageDecodingStore):
41859         (WebCore::ImageDecodingStore::instanceOnMainThread):
41860         (WebCore::ImageDecodingStore::initializeOnMainThread):
41861         (WebCore::ImageDecodingStore::shutdown):
41862         (WebCore::ImageDecodingStore::isLazyDecoded):
41863         (WebCore::ImageDecodingStore::createLazyDecodedSkBitmap):
41864         (WebCore::ImageDecodingStore::resizeLazyDecodedSkBitmap):
41865         (WebCore::ImageDecodingStore::setData):
41866         (WebCore::ImageDecodingStore::lockPixels):
41867         (WebCore::ImageDecodingStore::unlockPixels):
41868         (WebCore::ImageDecodingStore::frameGeneratorBeingDestroyed):
41869         (WebCore::ImageDecodingStore::calledOnValidThread):
41870         (WebCore::ImageDecodingStore::lookupFrameCache):
41871         (WebCore::ImageDecodingStore::deleteFrameCache):
41872         * platform/graphics/chromium/ImageDecodingStore.h: Added.
41873         (WebCore):
41874         (ImageDecodingStore):
41875         (WebCore::ImageDecodingStore::create):
41876         * platform/graphics/chromium/ScaledImageFragment.cpp: Added.
41877         (WebCore):
41878         (WebCore::ScaledImageFragment::~ScaledImageFragment):
41879         (WebCore::ScaledImageFragment::ScaledImageFragment):
41880         (WebCore::ScaledImageFragment::isEqual):
41881         * platform/graphics/chromium/ScaledImageFragment.h: Added.
41882         (WebCore):
41883         (ScaledImageFragment):
41884         (WebCore::ScaledImageFragment::create):
41885         (WebCore::ScaledImageFragment::bitmap):
41886         (WebCore::ScaledImageFragment::isComplete):
41887         * platform/graphics/chromium/ImageFrameGenerator.cpp: Added.
41888         (WebCore):
41889         (WebCore::ImageFrameGenerator::ImageFrameGenerator):
41890         (WebCore::ImageFrameGenerator::~ImageFrameGenerator):
41891         (WebCore::ImageFrameGenerator::decoder):
41892         (WebCore::ImageFrameGenerator::setData):
41893         * platform/graphics/chromium/ImageFrameGenerator.h: Added.
41894         (WebCore):
41895         (ImageFrameGenerator):
41896         (WebCore::ImageFrameGenerator::create):
41897         (WebCore::ImageFrameGenerator::size):
41898         (WebCore::ImageFrameGenerator::imageId):
41899         * platform/graphics/chromium/LazyDecodingPixelRef.cpp: Added.
41900         (WebCore):
41901         (WebCore::LazyDecodingPixelRef::LazyDecodingPixelRef):
41902         (WebCore::LazyDecodingPixelRef::~LazyDecodingPixelRef):
41903         (WebCore::LazyDecodingPixelRef::isScaled):
41904         (WebCore::LazyDecodingPixelRef::isClipped):
41905         (WebCore::LazyDecodingPixelRef::onLockPixels):
41906         (WebCore::LazyDecodingPixelRef::onUnlockPixels):
41907         (WebCore::LazyDecodingPixelRef::onLockPixelsAreWritable):
41908         * platform/graphics/chromium/LazyDecodingPixelRef.h: Added.
41909         (WebCore):
41910         (LazyDecodingPixelRef):
41911         (WebCore::LazyDecodingPixelRef::frameGenerator):
41912         * platform/graphics/skia/NativeImageSkia.cpp:
41913         (WebCore::NativeImageSkia::resizedBitmap):
41914         * platform/image-decoders/ImageDecoder.h:
41915         (ImageFrame):
41916         (WebCore::ImageFrame::setSkBitmap):
41917         (WebCore::ImageFrame::getSkBitmap):
41918
41919 2012-10-18  Yael Aharon  <yael.aharon@intel.com>
41920
41921         [EFL] GraphicsContext3D::m_renderStyle is not initialized
41922         https://bugs.webkit.org/show_bug.cgi?id=99721
41923
41924         Reviewed by Antonio Gomes.
41925
41926         Initialize GraphicsContext3D::m_renderStyle.
41927
41928         No new tests, no new functionality.
41929
41930         * platform/graphics/efl/GraphicsContext3DEfl.cpp:
41931         (WebCore::GraphicsContext3D::GraphicsContext3D):
41932
41933 2012-10-18  Max Vujovic  <mvujovic@adobe.com>
41934
41935         [CSS Shaders] Validate types of built-in vertex attributes
41936         https://bugs.webkit.org/show_bug.cgi?id=98972
41937
41938         Reviewed by Dean Jackson.
41939
41940         Reject custom filters in which the author defined built-in attributes with the wrong type.
41941         For example, the GLSL declaration "attribute float a_position" is incorrect because
41942         a_position should be a vec4, not a float.
41943
41944         Test: css3/filters/custom/invalid-custom-filter-attribute-types.html
41945
41946         * platform/graphics/ANGLEWebKitBridge.h:
41947         (WebCore::ANGLEShaderSymbol::isSampler):
41948             Add const qualifier to isSampler method.
41949         * platform/graphics/filters/CustomFilterValidatedProgram.cpp:
41950         (WebCore):
41951         (WebCore::builtInAttributeNameToTypeMap):
41952             New file static function. Returns a map of the CSS Custom Filters built-in attribute
41953             names and their expected types.
41954         (WebCore::validateSymbols):
41955             New file static function. Loop through all of the symbols. Reject the shader if we find
41956             a built-in attribute defined with the wrong type.
41957         (WebCore::CustomFilterValidatedProgram::CustomFilterValidatedProgram):
41958             Call the new validateSymbols function. If it returns false, exit the constructor early,
41959             which rejects the program.
41960             Move the loop that checks if any uniform is a sampler into the the validateSymbols
41961             function.
41962
41963 2012-10-18  Mike Reed  <reed@google.com>
41964
41965         Handle if we fail to allocate nonPlatformCanvas in ImageBuffer constructor
41966         https://bugs.webkit.org/show_bug.cgi?id=99752
41967
41968         Reviewed by Stephen White.
41969
41970         Current code does not check if we were able to allocate the pixels, but still returns the canvas.
41971         However, the caller explicitly is checking for null on failure, so it will continue (and possibly
41972         crash later on).
41973         This change brings the nonPlatformCanvas behavior inline with createAcceleratedCanvas and
41974         TryCreateBitmapCanvas, both of which are also called by ImageBuffer's constructor.
41975
41976         No new tests. Existing tests exercise ImageBuffer constructor.
41977
41978         * platform/graphics/skia/ImageBufferSkia.cpp:
41979         (WebCore::createNonPlatformCanvas):
41980
41981 2012-10-18  Beth Dakin  <bdakin@apple.com>
41982
41983         https://bugs.webkit.org/show_bug.cgi?id=99668
41984         REGRESSION: Crash in 
41985         WebCore::ScrollingStateScrollingNode::setNonFastScrollableRegion
41986         -and corresponding-
41987         <rdar://problem/12491901>
41988
41989         Reviewed by Simon Fraser.
41990
41991         http://trac.webkit.org/changeset/130783 changed the lifetime of the 
41992         ScrollingStateTree's rootStateNode. Before that patch, the root state 
41993         node was never destroyed. It was just constantly re-used for 
41994         different RenderLayerBackings. This crash is just one of a few bugs 
41995         that has occurred because of that change. I have fixed the other bugs 
41996         individually, but I think that long-term, it is the safest solution 
41997         to go back to the original ownership model.
41998
41999         So this patch ensures that the state tree will always have a root 
42000         state node. Instead of destroying and re-creating the root node when 
42001         it's scroll ID changes, we just update the ID.
42002
42003         attachToStateTree() now takes an additional ID representing the ID of 
42004         the parent node.
42005         * page/scrolling/ScrollingCoordinator.h:
42006         (WebCore::ScrollingCoordinator::attachToStateTree):
42007
42008         Add a way to set the scrolling node ID.
42009         * page/scrolling/ScrollingStateNode.h:
42010         (WebCore::ScrollingStateNode::setScrollingNodeID):
42011
42012         This code that provided a way to mark all properties as having 
42013         changed was added in http://trac.webkit.org/changeset/130989 as a way 
42014         to ensure we would re-set ScrollingThread's nodes when we destroyed 
42015         and re-created the rootStateNode. Now that we are no longer 
42016         destroying and re-creating the rootStateNode, this code is no longer 
42017         necessary.
42018         * page/scrolling/ScrollingStateScrollingNode.cpp:
42019         * page/scrolling/ScrollingStateScrollingNode.h:
42020
42021         create m_rootStateNode right in the ScrollingStateTree's constructor.
42022         * page/scrolling/ScrollingStateTree.cpp:
42023         (WebCore::ScrollingStateTree::ScrollingStateTree):
42024
42025         Don't let removeNode() destroy m_rootStateNode.
42026         (WebCore::ScrollingStateTree::removeNode):
42027
42028         Also a part of r130989 that is no longer needed.
42029         (WebCore::ScrollingStateTree::rootLayerDidChange():
42030         * page/scrolling/ScrollingStateTree.h:
42031         (WebCore::ScrollingStateTree::rootStateNode):
42032         (ScrollingStateTree):
42033         (WebCore::ScrollingStateTree::setRootStateNode):
42034
42035         attachToStateTree() now takes an additional ID representing the ID of 
42036         the parent node.
42037         * page/scrolling/mac/ScrollingCoordinatorMac.h:
42038         (ScrollingCoordinatorMac):
42039
42040         We no longer need ScrollingStateTree::rootLayerDidChange()
42041         * page/scrolling/mac/ScrollingCoordinatorMac.mm:
42042         (WebCore::ScrollingCoordinatorMac::frameViewRootLayerDidChange):
42043
42044         Do not destroy and re-create the state node. Just update its ID. When 
42045         we support child nodes soon, we will create them in this function.
42046         (WebCore::ScrollingCoordinatorMac::attachToStateTree):
42047
42048         No need to null-check the rootStateNode.
42049         (WebCore::ScrollingCoordinatorMac::clearStateTree):
42050
42051         Send 0 as the parent node ID to attachToStateTree() to represent the 
42052         root node.
42053         (WebCore::ScrollingCoordinatorMac::ensureRootStateNodeForFrameView):
42054         * rendering/RenderLayerBacking.cpp:
42055
42056         RenderLayerBacking::attachToScrollingCoordinator() now takes a parent 
42057         layer.
42058         (WebCore::RenderLayerBacking::attachToScrollingCoordinator):
42059         * rendering/RenderLayerBacking.h:
42060         (RenderLayerBacking):
42061
42062         Since this is the root, send 0 to represent the parent layer.
42063         * rendering/RenderLayerCompositor.cpp:
42064         (WebCore::RenderLayerCompositor::updateBacking):
42065
42066 2012-10-18  Yael Aharon  <yael.aharon@intel.com>
42067
42068         [EFL] GraphicsContext3D::m_renderStyle is not initialized
42069         https://bugs.webkit.org/show_bug.cgi?id=99721
42070
42071         Reviewed by Antonio Gomes.
42072
42073         Initialize GraphicsContext3D::m_renderStyle.
42074
42075         No new tests, no new functionality.
42076
42077         * platform/graphics/efl/GraphicsContext3DEfl.cpp:
42078         (WebCore::GraphicsContext3D::GraphicsContext3D):
42079
42080 2012-10-18  Brian White  <bcwhite@chromium.org>
42081
42082         WebKit Doesn't Recognize Content-Language HTTP Header
42083         https://bugs.webkit.org/show_bug.cgi?id=97929
42084
42085         Reviewed by Alexey Proskuryakov.
42086
42087         The HTTP "Content-Language" header may be present and include the
42088         language of the page contents (as opposed to an embedded meta tag).
42089
42090         * loader/FrameLoader.cpp:
42091         (WebCore::FrameLoader::didBeginDocument):
42092
42093 2012-10-18  Jer Noble  <jer.noble@apple.com>
42094
42095         Crash in WebCore::Document::webkitExitFullscreen + 618
42096         https://bugs.webkit.org/show_bug.cgi?id=99496
42097
42098         Reviewed by Eric Carlson.
42099
42100         Prospective fix for null-dereference crash in Document::webkitExitFullscreen().
42101
42102         * dom/Document.cpp:
42103         (WebCore::Document::webkitExitFullscreen): Null check page() before calling page()->chrome.
42104
42105 2012-10-18  Pablo Flouret  <pablof@motorola.com>
42106
42107         Implement css3-conditional's @supports rule
42108         https://bugs.webkit.org/show_bug.cgi?id=86146
42109
42110         Reviewed by Antti Koivisto.
42111
42112         The "@supports" rule is a conditional group rule whose condition tests
42113         whether the user agent supports CSS property:value pairs.
42114
42115         http://dev.w3.org/csswg/css3-conditional/#at-supports
42116
42117         Test: css3/supports.html
42118
42119         * Configurations/FeatureDefines.xcconfig:
42120         * GNUmakefile.am:
42121         * GNUmakefile.features.am:
42122             Add an ENABLE_CSS3_CONDITIONAL_RULES flag.
42123
42124         * css/CSSGrammar.y.in:
42125         * css/CSSParser.cpp:
42126         (WebCore):
42127         (WebCore::CSSParser::detectSupportsToken): Tries to find 'and', 'not' and 'or' tokens.
42128         (WebCore::CSSParser::detectAtToken): Enter SupportsMode if @supports is detected.
42129         (WebCore::CSSParser::realLex): Try to detect supports tokens when in SupportsMode.
42130         * css/CSSParser.h: Added new SupportsMode parsing mode.
42131         (CSSParser):
42132
42133 2012-10-18  Marja Hölttä  <marja@chromium.org>
42134
42135         Fix: CachedResourceLoader::requestSVGDocument was passing an URL as charset
42136         https://bugs.webkit.org/show_bug.cgi?id=99730
42137
42138         Reviewed by Jochen Eisinger.
42139
42140         * loader/cache/CachedResourceLoader.cpp:
42141         (WebCore::CachedResourceLoader::requestSVGDocument):
42142
42143 2012-10-18  Jer Noble  <jer.noble@apple.com>
42144
42145         Fullscreen movie controls behave incorrectly when clicked (and dragged)
42146         https://bugs.webkit.org/show_bug.cgi?id=99610
42147
42148         Reviewed by Eric Carlson.
42149
42150         Do not reset the relative drag position to 0,0 at the beginning of every drag.  Instead,
42151         store the cumulative drag offset and accumulate during each additional drag.
42152
42153         No new tests; modified the fullscreen/video-controls-drag.html test.
42154
42155         * html/shadow/MediaControlElements.cpp:
42156         (WebCore::MediaControlPanelElement::startDrag): Reset m_lastDragEventLocation.
42157         (WebCore::MediaControlPanelElement::continueDrag): Accumulate drag distance in m_cumulativeDragOffset.
42158         (WebCore::MediaControlPanelElement::resetPosition): Reset m_cumulativeDragOffset.
42159         * html/shadow/MediaControlElements.h:
42160
42161 2012-10-18  Brandon Jones  <bajones@google.com>
42162
42163         Implement OES_element_index_uint / WEBKIT_OES_element_index_uint
42164         https://bugs.webkit.org/show_bug.cgi?id=97400
42165
42166         Reviewed by Kenneth Russell.
42167
42168         Implemented OES_element_index_uint WebGL extension
42169
42170         Test: fast/canvas/webgl/oes-element-index-uint.html
42171
42172         * CMakeLists.txt:
42173         * DerivedSources.make:
42174         * DerivedSources.pri:
42175         * GNUmakefile.list.am:
42176         * Target.pri:
42177         * WebCore.gypi:
42178         * WebCore.xcodeproj/project.pbxproj:
42179         * bindings/js/JSWebGLRenderingContextCustom.cpp:
42180         (WebCore::toJS):
42181         * bindings/v8/custom/V8WebGLRenderingContextCustom.cpp:
42182         (WebCore::toV8Object):
42183         * html/canvas/OESElementIndexUint.cpp: Copied from Source/WebCore/html/canvas/WebGLExtension.h.
42184         (WebCore):
42185         (WebCore::OESElementIndexUint::OESElementIndexUint):
42186         (WebCore::OESElementIndexUint::~OESElementIndexUint):
42187         (WebCore::OESElementIndexUint::getName):
42188         (WebCore::OESElementIndexUint::create):
42189         * html/canvas/OESElementIndexUint.h: Copied from Source/WebCore/html/canvas/WebGLExtension.h.
42190         (WebCore):
42191         (OESElementIndexUint):
42192         * html/canvas/OESElementIndexUint.idl: Copied from Source/WebCore/html/canvas/WebGLExtension.h.
42193         * html/canvas/WebGLExtension.h:
42194         * html/canvas/WebGLRenderingContext.cpp:
42195         (WebCore):
42196         (WebCore::WebGLRenderingContext::validateElementArraySize):
42197         (WebCore::WebGLRenderingContext::validateIndexArrayConservative):
42198         (WebCore::WebGLRenderingContext::validateIndexArrayPrecise):
42199         (WebCore::WebGLRenderingContext::validateRenderingState):
42200         (WebCore::WebGLRenderingContext::drawElements):
42201         (WebCore::WebGLRenderingContext::getExtension):
42202         (WebCore::WebGLRenderingContext::getSupportedExtensions):
42203         * html/canvas/WebGLRenderingContext.h:
42204         (WebCore):
42205         (WebGLRenderingContext):
42206         * platform/graphics/Extensions3D.h:
42207         (Extensions3D):
42208         * platform/graphics/opengl/Extensions3DOpenGL.cpp:
42209         (WebCore::Extensions3DOpenGL::supportsExtension):
42210
42211 2012-10-18  Jer Noble  <jer.noble@apple.com>
42212
42213         Add diagnostic logging to track per-page media engine usage.
42214         https://bugs.webkit.org/show_bug.cgi?id=99615
42215         <rdar://problem/12476473>
42216
42217         Reviewed by Eric Carlson.
42218
42219         Add diagnostic logging triggered only once-per-page and once-per-page-per-engine.
42220
42221         * html/HTMLMediaElement.cpp:
42222         (WebCore::logMediaLoadRequest): Encapsulate diagnostic logging into single static method.
42223         (WebCore::HTMLMediaElement::mediaLoadingFailed): Call logMediaLoadRequest.
42224         (WebCore::HTMLMediaElement::setReadyState): Ditto.
42225         * loader/FrameLoader.cpp:
42226         (WebCore::FrameLoader::dispatchDidCommitLoad): Reset the set of seen media engines.
42227
42228         Add new methods to Page to track per-page media engine diagnostic info, similar to plugin diagnostic info.
42229         * page/Page.cpp:
42230         (WebCore::Page::hasSeenAnyMediaEngine):
42231         (WebCore::Page::hasSeenMediaEngine):
42232         (WebCore::Page::sawMediaEngine):
42233         (WebCore::Page::resetSeenMediaEngines):
42234         * page/Page.h:
42235
42236         Add new static logging key definitions:
42237         * page/DiagnosticLoggingKeys.cpp:
42238         (WebCore::DiagnosticLoggingKeys::pageContainsMediaEngineKey):
42239         (WebCore::DiagnosticLoggingKeys::pageContainsAtLeastOneMediaEngineKey):
42240         * page/DiagnosticLoggingKeys.h:
42241
42242 2012-10-18  Michael Saboff  <msaboff@apple.com>
42243
42244         Add 8-bit path to RenderBlock::handleTrailingSpaces()
42245         https://bugs.webkit.org/show_bug.cgi?id=99731
42246
42247         Reviewed by Dan Bernstein.
42248
42249         Factored out and added findFirstTrailingSpace() templated helper function that is called with the 
42250         approriate character pointer type.
42251
42252         No tests needed, change covered by existing tests.
42253
42254         * rendering/RenderBlockLineLayout.cpp:
42255         (WebCore::findFirstTrailingSpace):
42256         (WebCore::RenderBlock::handleTrailingSpaces):
42257
42258 2012-10-18  Hans Muller  <hmuller@adobe.com>
42259
42260         [CSS Exclusions] Add ExclusionShape::shapeBoundingBox() method
42261         https://bugs.webkit.org/show_bug.cgi?id=99216
42262
42263         Reviewed by Dirk Schulze.
42264
42265         Added a FloatRect::extend() method which simplifies writing loops that
42266         accumulate the bounding box for a sequence of FloatPoints. The new method
42267         is used by ExclusionPolygon to initialize the shape's logical and physical
42268         bounding boxes. This a clean-up, not a change in functionality. It's already
42269         covered by the existing fast/exclusions LayoutTests.
42270
42271         * platform/graphics/FloatRect.cpp:
42272         (WebCore::FloatRect::extend): Extend the FloatRect's bounds to include a FloatPoint.
42273         (WebCore):
42274         * platform/graphics/FloatRect.h:
42275         (FloatRect): Added extend() method.
42276         * rendering/ExclusionPolygon.cpp:
42277         (WebCore::ExclusionPolygon::ExclusionPolygon): Use FloatRect::extend() to compute the polygon's internal bounding box.
42278         * rendering/ExclusionShape.cpp:
42279         (WebCore::ExclusionShape::createExclusionShape): Use FloatRect::extend() to compute the polygon's physical bounding box.
42280         * rendering/ExclusionShape.h:
42281         (WebCore::ExclusionShape::shapeBoundingBox): Return the shape's bounding box in physical coordinates.
42282         (ExclusionShape):
42283
42284 2012-10-18  Hans Muller  <hmuller@adobe.com>
42285
42286         [CSS Exclusions] Handle special case "empty" shapes
42287         https://bugs.webkit.org/show_bug.cgi?id=99342
42288
42289         Reviewed by Dirk Schulze.
42290
42291         Provide expclit coverage of the simple "empty" shape-inside shapes.
42292         Shapes will be considered "empty" in the sense that ExclusionShape::getIncludedIntervals()
42293         and ExclusionShape::getExcludedIntervals() will always return empty lists of intervals.
42294         This patch covers rectangles of zero width or height, circles with 0 radius, ellipses
42295         with 0 radiusX or radiusY, polygons with less than 3 vertices.
42296
42297         Test: fast/exclusions/shape-inside/shape-inside-empty.html
42298
42299         * rendering/ExclusionPolygon.cpp:
42300         (WebCore::ExclusionPolygon::ExclusionPolygon): Initialize the m_empty flag.
42301         (WebCore::ExclusionPolygon::getExcludedIntervals): Added short-circuit return when the polygon is empty.
42302         (WebCore::ExclusionPolygon::getIncludedIntervals): Added short-circuit return when the polygon is empty.
42303         * rendering/ExclusionPolygon.h: Added the isEmpty() method.
42304         * rendering/ExclusionRectangle.cpp:
42305         (WebCore::ExclusionRectangle::getExcludedIntervals): Added short-circuit return when the rectangle is empty.
42306         (WebCore::ExclusionRectangle::getIncludedIntervals): Added short-circuit return when the rectangle is empty.
42307         * rendering/ExclusionRectangle.h: Added the isEmpty() method.
42308         * rendering/ExclusionShape.h: Added a virtual isEmpty() ExclusionShape method.
42309         (ExclusionShape):
42310
42311 2012-10-18  Takashi Sakamoto  <tasak@google.com>
42312
42313         REGRESSION(r131464): Null-pointer crash in StyleResolver::styleForElement
42314         https://bugs.webkit.org/show_bug.cgi?id=99587
42315
42316         Reviewed by Dimitri Glazkov.
42317
42318         Since contents in datalist are not shown, summary in datalist is not
42319         shown either. So the summary has no render style. On the other hand,
42320         the summary is implemented by shadow DOM and it has some insertion
42321         point. Its child, e.g. title in the below test, is distributed.
42322         To solve the child's user-modify, looking at shadow host(=summary)'s
42323         style causes null-pointer crash.
42324
42325         Test: fast/dom/shadow/user-modify-in-datalist-crash.html
42326
42327         * css/StyleResolver.cpp:
42328         (WebCore::StyleResolver::styleForElement):
42329         Added a code to check whether the shadow host has any style or not.
42330
42331 2012-10-17  Philippe Normand  <pnormand@igalia.com>
42332
42333         [GTK] AudioBusGtk sometimes fails to load the HRTF database
42334         https://bugs.webkit.org/show_bug.cgi?id=99601
42335
42336         Reviewed by Martin Robinson.
42337
42338         AudioBusGtk now first lookup for the uninstalled resource files,
42339         if the AUDIO_RESOURCES_PATH environment variable is
42340         set. Additionally the audio file reader is now better dealing with
42341         errors, returning an empty AudioBus in such cases and issuing
42342         warnings on the console output. The cleanup of some member
42343         variables was also moved to the destructor.
42344
42345         * platform/audio/gstreamer/AudioFileReaderGStreamer.cpp:
42346         (AudioFileReader):
42347         (WebCore::AudioFileReader::AudioFileReader):
42348         (WebCore::AudioFileReader::~AudioFileReader): Clear and free
42349         member variables. This was done in createBus before.
42350         (WebCore::AudioFileReader::handleMessage): Issue warnings in case
42351         of error and exit from the main loop so the pipeline is not
42352         forever stuck.
42353         (WebCore::AudioFileReader::createBus): Return an empty bus in case
42354         of error.
42355         * platform/audio/gtk/AudioBusGtk.cpp:
42356         (WebCore::AudioBus::loadPlatformResource): Load uninstalled
42357         resources first if AUDIO_RESOURCES_PATH is set.
42358
42359 2012-10-18  Pavel Feldman  <pfeldman@chromium.org>
42360
42361         Web Inspector: provisional change for merging "doced" state into the "dock side" enum.
42362         https://bugs.webkit.org/show_bug.cgi?id=99718
42363
42364         Reviewed by Vsevolod Vlasov.
42365
42366         Adds stub method that could be executed from the embedder.
42367
42368         * inspector/front-end/InspectorFrontendAPI.js:
42369         (InspectorFrontendAPI.setDockSide):
42370
42371 2012-10-18  Kent Tamura  <tkent@chromium.org>
42372
42373         Add Localizer::monthFormat and implementations
42374         https://bugs.webkit.org/show_bug.cgi?id=99704
42375
42376         Reviewed by Kentaro Hara.
42377
42378         Localizer::monthFormat will be used for constructing input[type=month] UI.
42379
42380         Tests: Add unit tests to Source/WebKit/chromium/tests/.
42381
42382         * platform/text/Localizer.h:
42383         (Localizer): Declare pure virtual monthFormat function.
42384
42385         * platform/text/LocaleNone.cpp:
42386         (LocaleNone): Declare monthFormat.
42387         (WebCore::LocaleNone::monthFormat):
42388         Added. Always reutrns an ISO-8601 format, "yyyy-MM"
42389
42390         * platform/text/LocaleICU.h:
42391         (LocaleICU): Declare monthFormat.
42392         * platform/text/LocaleICU.cpp:
42393         (WebCore::getFormatForSkeleton):
42394         A helper to get a format for the specified skeleton.
42395         The overflow-allocalte-try-again pattern is similar to
42396         LocaleICU::decimalSymbol and LocaleICU::decimalTextAttribute.
42397         (WebCore::LocaleICU::monthFormat):
42398         Added. Calls getFormatForSkeleton with "yyyyMMM".
42399
42400         * platform/text/mac/LocaleMac.h:
42401         (LocaleMac): Declare monthFormat.
42402         * platform/text/mac/LocaleMac.mm:
42403         (WebCore::LocaleMac::monthFormat):
42404         Added. Calls NSDateFormatter::dateFormatFromTemplate with "yyyyMMM".
42405
42406         * platform/text/LocaleWin.h:
42407         (LocaleWin): Declare monthFormat.
42408         * platform/text/LocaleWin.cpp:
42409         (WebCore::LocaleWin::monthFormat):
42410         Get a format by LOCALE_SYEARMONTH, and convert it to an LDML format.
42411
42412 2012-10-18  Pavel Feldman  <pfeldman@chromium.org>
42413
42414         Web Inspector: add X-WebKit-CSP header into inspector.html
42415         https://bugs.webkit.org/show_bug.cgi?id=99710
42416
42417         Reviewed by Vsevolod Vlasov.
42418
42419         A simple sanity measure.
42420
42421         * inspector/front-end/inspector.html:
42422
42423 2012-10-18  Huang Dongsung  <luxtella@company100.net>
42424
42425         [WK2] Add CustomFilterOperation serialization in ArgumentCoder.
42426         https://bugs.webkit.org/show_bug.cgi?id=98733
42427
42428         Reviewed by Noam Rosenthal.
42429
42430         Change CustomFilterOperation::parameters() to const function, because
42431         this method is a getter and a const instance needs to call this method.
42432
42433         No new tests because there is no change in behavior.
42434
42435         * platform/graphics/filters/CustomFilterOperation.h:
42436         (WebCore::CustomFilterOperation::parameters):
42437
42438 2012-10-18  Hayato Ito  <hayato@chromium.org>
42439
42440         treeScopeOfParent doesn't return the TreeScope of the parent
42441         https://bugs.webkit.org/show_bug.cgi?id=98207
42442
42443         Reviewed by Hajime Morita.
42444
42445         A minor clean up. Remove treeScopeOfParent() in Element.cpp.
42446
42447         No tests needed, this is just a clean up.
42448
42449         * dom/Element.cpp:
42450         (WebCore::Element::removedFrom):
42451
42452 2012-10-18  Alexander Pavlov  <apavlov@chromium.org>
42453
42454         Web Inspector: [Styles] Forcibly invoke property names suggestion box for empty prefix
42455         https://bugs.webkit.org/show_bug.cgi?id=99711
42456
42457         Reviewed by Vsevolod Vlasov.
42458
42459         Suggestions should be returned unconditionally for CSS property names, regardless of the prefix.
42460
42461         * inspector/front-end/CSSCompletions.js:
42462         (WebInspector.CSSCompletions):
42463         (WebInspector.CSSCompletions.requestCSSNameCompletions):
42464         (WebInspector.CSSCompletions.prototype._firstIndexOfPrefix):
42465         * inspector/front-end/CSSKeywordCompletions.js:
42466         (WebInspector.CSSKeywordCompletions.forProperty):
42467
42468 2012-10-18  Raphael Kubo da Costa  <raphael.kubo.da.costa@intel.com>
42469
42470         Unreviewed, do not make UseV8.cmake executable.
42471
42472         * UseV8.cmake: Removed property svn:executable.
42473
42474 2012-10-18  Tommy Widenflycht  <tommyw@google.com>
42475
42476         MediaStream API: Add better RTCPeerConnectionHandler creation logic
42477         https://bugs.webkit.org/show_bug.cgi?id=99308
42478
42479         Reviewed by Adam Barth.
42480
42481         This patch makes sure that if the RTCPeerConnectionHandler can't be fully initialized/created
42482         the RTCPeerConnection constructor throws an exception.
42483
42484         Not full testable, existing tests cover the normal case though.
42485
42486         * platform/mediastream/chromium/RTCPeerConnectionHandlerChromium.cpp:
42487         (WebCore::RTCPeerConnectionHandler::create):
42488         (WebCore::RTCPeerConnectionHandlerChromium::RTCPeerConnectionHandlerChromium):
42489         (WebCore::RTCPeerConnectionHandlerChromium::createWebHandler):
42490         (WebCore::RTCPeerConnectionHandlerChromium::initialize):
42491         (WebCore::RTCPeerConnectionHandlerChromium::createOffer):
42492         (WebCore::RTCPeerConnectionHandlerChromium::createAnswer):
42493         (WebCore::RTCPeerConnectionHandlerChromium::setLocalDescription):
42494         (WebCore::RTCPeerConnectionHandlerChromium::setRemoteDescription):
42495         (WebCore::RTCPeerConnectionHandlerChromium::updateIce):
42496         (WebCore::RTCPeerConnectionHandlerChromium::addIceCandidate):
42497         (WebCore::RTCPeerConnectionHandlerChromium::localDescription):
42498         (WebCore::RTCPeerConnectionHandlerChromium::remoteDescription):
42499         (WebCore::RTCPeerConnectionHandlerChromium::addStream):
42500         (WebCore::RTCPeerConnectionHandlerChromium::removeStream):
42501         (WebCore::RTCPeerConnectionHandlerChromium::getStats):
42502         (WebCore::RTCPeerConnectionHandlerChromium::openDataChannel):
42503         (WebCore::RTCPeerConnectionHandlerChromium::sendStringData):
42504         (WebCore::RTCPeerConnectionHandlerChromium::sendRawData):
42505         (WebCore::RTCPeerConnectionHandlerChromium::closeDataChannel):
42506         (WebCore::RTCPeerConnectionHandlerChromium::stop):
42507         * platform/mediastream/chromium/RTCPeerConnectionHandlerChromium.h:
42508         (RTCPeerConnectionHandlerChromium):
42509
42510 2012-10-19  Zeno Albisser  <zeno@webkit.org>
42511
42512         Temporarily disable use of QCocoaNativeInterface in GraphicsSurfaceMac.
42513         https://bugs.webkit.org/show_bug.cgi?id=99320
42514
42515         The current version of Qt5 deployed on the buildbots does not yet have
42516         an implementation for QCocoaNativeInterface::nativeResourceForContext().
42517         Therefore we disable this code path until Qt5/qtbase has been updated to
42518         a revision above Change-Id: Id00efc88a73d7df04a68c022f19d9d1c4f6d386b.
42519
42520         Once Qt5 has been updated, this patch must be reverted.
42521
42522         Reviewed by Noam Rosenthal.
42523
42524         * platform/graphics/surfaces/mac/GraphicsSurfaceMac.cpp:
42525         (WebCore::GraphicsSurfacePrivate::GraphicsSurfacePrivate):
42526
42527 2012-10-18  Zeno Albisser  <zeno@webkit.org>
42528
42529         GraphicsSurface should not modify the current GL context.
42530         https://bugs.webkit.org/show_bug.cgi?id=99320
42531
42532         Instead of reusing the currently bound GL context for drawing
42533         the texture onto the GraphicsSurface, GraphicsSurface should
42534         create a new context that shares the texture names with a context
42535         provided by the caller.
42536         This way the OpenGL states are clearly separated and we do not
42537         risk interfeering with the currently bound GL context.
42538
42539         Reviewed by Noam Rosenthal.
42540
42541         * platform/graphics/qt/GraphicsContext3DQt.cpp:
42542         (WebCore::GraphicsContext3DPrivate::GraphicsContext3DPrivate):
42543             When creating a GraphicsSurface pass the platform GL context
42544             as a parameter, so it can be used for sharing textures with.
42545         (WebCore::GraphicsContext3DPrivate::copyToGraphicsSurface):
42546             Pass the texture instead of the FBO. A Texture can be drawn
42547             directly or bound to another FBO, where a framebuffer
42548             always needs to be blit onto the surface.
42549         (WebCore::GraphicsContext3DPrivate::createGraphicsSurfaces):
42550             Pass the platform GL context as a parameter.
42551         * platform/graphics/surfaces/GraphicsSurface.cpp:
42552         (WebCore::GraphicsSurface::create):
42553         (WebCore::GraphicsSurface::copyFromTexture):
42554         * platform/graphics/surfaces/GraphicsSurface.h:
42555         (GraphicsSurface):
42556         * platform/graphics/surfaces/mac/GraphicsSurfaceMac.cpp:
42557         (WebCore::GraphicsSurfacePrivate::GraphicsSurfacePrivate):
42558             Create a new GL context that shares the textures with the
42559             context provided by the caller.
42560         (WebCore::GraphicsSurfacePrivate::~GraphicsSurfacePrivate):
42561         (WebCore::GraphicsSurfacePrivate::makeCurrent):
42562             Add a convenience function to make the context that
42563             belongs to the surface current.
42564         (GraphicsSurfacePrivate):
42565         (WebCore::GraphicsSurfacePrivate::doneCurrent):
42566             Add a convenience function to make the previously
42567             bound context current again.
42568         (WebCore::GraphicsSurfacePrivate::copyFromTexture):
42569             Move blitting of the texture onto the surface
42570             into a separate function within GraphicsSurfacePrivate.
42571         (WebCore::GraphicsSurface::platformCopyFromTexture):
42572             Rename function platformCopyFromFramebuffer to
42573             platformCopyFromTexture, as we are now passing the texture only.
42574         (WebCore::GraphicsSurface::platformCreate):
42575         * platform/graphics/surfaces/qt/GraphicsSurfaceGLX.cpp:
42576         (WebCore):
42577         (WebCore::GraphicsSurfacePrivate::GraphicsSurfacePrivate):
42578         (WebCore::GraphicsSurfacePrivate::makeCurrent):
42579             Add a convenience function to make the context that
42580             belongs to the surface current.
42581         (GraphicsSurfacePrivate):
42582         (WebCore::GraphicsSurfacePrivate::doneCurrent):
42583             Add a convenience function to make the previously
42584         (WebCore::GraphicsSurfacePrivate::copyFromTexture):
42585             Move blitting of the texture onto the surface
42586             into a separate function within GraphicsSurfacePrivate.
42587         (WebCore::resolveGLMethods):
42588             Resolve additional GL methods necessary for this change.
42589         (WebCore::GraphicsSurface::platformCopyFromTexture):
42590             Rename function platformCopyFromFramebuffer to
42591             platformCopyFromTexture, as we are now passing the texture only.
42592         (WebCore::GraphicsSurface::platformCreate):
42593
42594 2012-10-18  Kent Tamura  <tkent@chromium.org>
42595
42596         Set min-width property instead of width property for date/time fields
42597         https://bugs.webkit.org/show_bug.cgi?id=99673
42598
42599         Reviewed by Hajime Morita.
42600
42601         A field can have a text wider than pre-computed width because of
42602         :first-letter property. So, we should set min-width, not width.
42603
42604         Tests: Covered by fast/forms/*-multiple-fields/*-multipe-fields-appearance-style.html
42605
42606         * html/shadow/DateTimeNumericFieldElement.cpp:
42607         (WebCore::DateTimeNumericFieldElement::customStyleForRenderer):
42608         Set min-width instead of width.
42609         * html/shadow/DateTimeSymbolicFieldElement.cpp:
42610         (WebCore::DateTimeSymbolicFieldElement::customStyleForRenderer): Ditto.
42611
42612 2012-10-18  MORITA Hajime  <morrita@google.com>
42613
42614         Assertion failure at TreeScopeAdopter::moveNodeToNewDocument()
42615         https://bugs.webkit.org/show_bug.cgi?id=99510
42616
42617         Reviewed by Kent Tamura.
42618
42619         Shadow DOM notification call didn't have checks for mutation detection.
42620         This change adds such checks.
42621
42622         Test: fast/forms/textarea/textarea-autofocus-removal-while-focusing-with-style.html
42623
42624         * dom/ContainerNodeAlgorithms.cpp:
42625         (WebCore::ChildNodeInsertionNotifier::notifyDescendantInsertedIntoDocument):
42626         (WebCore::ChildNodeRemovalNotifier::notifyDescendantRemovedFromDocument):
42627
42628 2012-10-17  Kentaro Hara  <haraken@chromium.org>
42629
42630         Unreviewed. Rebaselined run-bindings-tests.
42631
42632         * bindings/scripts/test/V8/V8Float64Array.h:
42633         (V8Float64Array):
42634         * bindings/scripts/test/V8/V8TestActiveDOMObject.h:
42635         (V8TestActiveDOMObject):
42636         * bindings/scripts/test/V8/V8TestCustomNamedGetter.h:
42637         (V8TestCustomNamedGetter):
42638         * bindings/scripts/test/V8/V8TestEventConstructor.h:
42639         (V8TestEventConstructor):
42640         * bindings/scripts/test/V8/V8TestEventTarget.h:
42641         (V8TestEventTarget):
42642         * bindings/scripts/test/V8/V8TestException.h:
42643         (V8TestException):
42644         * bindings/scripts/test/V8/V8TestInterface.h:
42645         (V8TestInterface):
42646         * bindings/scripts/test/V8/V8TestMediaQueryListListener.h:
42647         (V8TestMediaQueryListListener):
42648         * bindings/scripts/test/V8/V8TestNamedConstructor.h:
42649         (V8TestNamedConstructor):
42650         * bindings/scripts/test/V8/V8TestNode.h:
42651         (V8TestNode):
42652         * bindings/scripts/test/V8/V8TestObj.h:
42653         (V8TestObj):
42654         * bindings/scripts/test/V8/V8TestSerializedScriptValueInterface.h:
42655         (V8TestSerializedScriptValueInterface):
42656
42657 2012-10-17  Mike West  <mkwst@chromium.org>
42658
42659         Move mixed content logic out of FrameLoader
42660         https://bugs.webkit.org/show_bug.cgi?id=45638
42661
42662         Reviewed by Eric Seidel.
42663
42664         This change moves checks for mixed content out of FrameLoader, and into
42665         a new MixedContentChecker object. It's a pretty straightforward
42666         refactoring with no change to the overall logic, and only minor changes
42667         to the code to reduce repetition.
42668
42669         The only substantive change is renaming the methods from 'checkIf*' to
42670         'can*' to reflect the value of the boolean they return.
42671
42672         The visible functionality shouldn't change; this change should be
42673         covered by existing tests in http/tests/security/mixedContent.
42674
42675         This patch is mostly a revitalization of Eric Sidel's original
42676         patch: https://bugs.webkit.org/attachment.cgi?id=67432&action=prettypatch
42677
42678         * CMakeLists.txt:
42679         * GNUmakefile.list.am:
42680         * Target.pri:
42681         * WebCore.gypi:
42682         * WebCore.vcproj/WebCore.vcproj:
42683         * WebCore.xcodeproj/project.pbxproj:
42684             Hey, look! A new file!
42685         * loader/FrameLoader.cpp:
42686         (WebCore::FrameLoader::FrameLoader):
42687         * loader/FrameLoader.h:
42688         (WebCore::FrameLoader::mixedContentChecker):
42689         (FrameLoader):
42690         * loader/MixedContentChecker.cpp: Added.
42691         (WebCore):
42692         (WebCore::MixedContentChecker::MixedContentChecker):
42693         (WebCore::MixedContentChecker::client):
42694         (WebCore::asUTF8):
42695         (WebCore::MixedContentChecker::isMixedContent):
42696         (WebCore::MixedContentChecker::canDisplayInsecureContent):
42697         (WebCore::MixedContentChecker::canRunInsecureContent):
42698         (WebCore::MixedContentChecker::logWarning):
42699         * loader/MixedContentChecker.h: Added.
42700         (WebCore):
42701         (MixedContentChecker):
42702             Migrate functionality from FrameLoader::checkIf* to
42703             MixedContentChecker::can*.
42704         * loader/MainResourceLoader.cpp:
42705         (WebCore::MainResourceLoader::willSendRequest):
42706         * loader/SubframeLoader.cpp:
42707         (WebCore::SubframeLoader::pluginIsLoadable):
42708         (WebCore::SubframeLoader::loadMediaPlayerProxyPlugin):
42709         * loader/cache/CachedResourceLoader.cpp:
42710         (WebCore::CachedResourceLoader::checkInsecureContent):
42711             Use the new method locations.
42712
42713 2012-10-17  Dan Bernstein  <mitz@apple.com>
42714
42715         REGRESSION (r95391): ComplexTextController is unnecessarily slow with characters with combining marks when the base character is not covered by any font
42716         https://bugs.webkit.org/show_bug.cgi?id=99654
42717
42718         Reviewed by Adele Peterson.
42719
42720         When the base character of a combining character sequence is not covered by any one of the
42721         available fonts, there is no point looking for a font that covers the entire sequence, nor
42722         to try to use a combination of fallback fonts for the entire sequence.
42723
42724         * platform/graphics/SimpleFontData.h:
42725         (WebCore::SimpleFontData::systemFallback): Moved ComplexTextController::systemFallbackFontData
42726         here and renamed it.
42727         * platform/graphics/mac/ComplexTextController.cpp:
42728         (WebCore::ComplexTextController::collectComplexTextRuns): This function used to use
42729         systemFallbackFontData() whenever Font::fontDataForCombiningCharacterSequence returned 0
42730         for a base character with combining marks, regardless of whether the base character was
42731         covered by any font. Changed it to preserve the return value of
42732         fontDataForCombiningCharacterSequence, which is now 0 only if the base charcater is not in
42733         any font, while systemFallbackFontData() is used to indicate that no single font in the
42734         fallback list covers all characters in the sequence, but the base character is in some font.
42735         * platform/graphics/mac/ComplexTextController.h:
42736         (ComplexTextController): Moved systemFallbackFontData from here to SimpleFontData.
42737         * platform/graphics/mac/ComplexTextControllerCoreText.mm:
42738         (WebCore::ComplexTextController::collectComplexTextRunsForCharacters): Updated for the above
42739         move.
42740         * platform/graphics/mac/FontComplexTextMac.cpp:
42741         (WebCore::Font::fontDataForCombiningCharacterSequence): Changed to return
42742         systemFallbackFontData() if no single font in the fallback list covers all characters in the
42743         sequence, while using 0 to signal the base character does not exist in any font.
42744
42745 2012-10-17  Dan Bernstein  <mitz@apple.com>
42746
42747         Try to fix the build after r131701.
42748
42749         * WebCore.exp.in:
42750
42751 2012-10-17  Hayato Ito  <hayato@chromium.org>
42752
42753         Content element does not expose distributedNodes property.
42754         https://bugs.webkit.org/show_bug.cgi?id=99232
42755
42756         Reviewed by Dimitri Glazkov.
42757
42758         Add getDistributedNodes() to HTMLContentElement's IDL, which returns a
42759         static NodeList whose node are distributed to the content element.
42760
42761         Test: fast/dom/shadow/content-element-distributed-nodes.html
42762
42763         * html/shadow/HTMLContentElement.idl:
42764         * html/shadow/InsertionPoint.cpp:
42765         (WebCore::InsertionPoint::getDistributedNodes):
42766         * html/shadow/InsertionPoint.h:
42767         (InsertionPoint):
42768         * testing/Internals.cpp:
42769         * testing/Internals.h:
42770         (Internals):
42771         * testing/Internals.idl:
42772
42773 2012-10-17  Pan Deng  <pan.deng@intel.com>
42774
42775         [User Timing] implement main interface in of User Timing, according to http://www.w3.org/TR/2012/CR-user-timing-20120726/
42776         https://bugs.webkit.org/show_bug.cgi?id=90963
42777
42778         Reviewed by Tony Gentilcore.
42779
42780         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.
42781
42782         Tests: http/tests/w3c/webperf/submission/user-timing/test_user_timing_clearMarks.html
42783                http/tests/w3c/webperf/submission/user-timing/test_user_timing_clearMeasures.html
42784                http/tests/w3c/webperf/submission/user-timing/test_user_timing_mark.html
42785                http/tests/w3c/webperf/submission/user-timing/test_user_timing_mark_exception.html
42786                http/tests/w3c/webperf/submission/user-timing/test_user_timing_measure.html
42787                http/tests/w3c/webperf/submission/user-timing/test_user_timing_measure_associate_with_navigation_timing.html
42788                http/tests/w3c/webperf/submission/user-timing/test_user_timing_measure_exception.html
42789                http/tests/w3c/webperf/submission/user-timing/test_user_timing_method_exist.html
42790
42791         * GNUmakefile.list.am:
42792         * WebCore.gypi:
42793         * page/Performance.cpp:
42794         (WebCore::Performance::webkitGetEntries):
42795         (WebCore::Performance::webkitGetEntriesByType):
42796         (WebCore::Performance::webkitGetEntriesByName):
42797         (WebCore):
42798         (WebCore::Performance::webkitMark):
42799         (WebCore::Performance::webkitClearMarks):
42800         (WebCore::Performance::webkitMeasure):
42801         (WebCore::Performance::webkitClearMeasures):
42802         * page/Performance.h:
42803         (WebCore):
42804         (Performance):
42805         * page/Performance.idl:
42806         * page/PerformanceMark.h: Added.
42807         (WebCore):
42808         (PerformanceMark):
42809         (WebCore::PerformanceMark::create):
42810         (WebCore::PerformanceMark::PerformanceMark):
42811         (WebCore::PerformanceMark::~PerformanceMark):
42812         * page/PerformanceMark.idl: Added.
42813         * page/PerformanceMeasure.h: Added.
42814         (WebCore):
42815         (PerformanceMeasure):
42816         (WebCore::PerformanceMeasure::create):
42817         (WebCore::PerformanceMeasure::PerformanceMeasure):
42818         (WebCore::PerformanceMeasure::~PerformanceMeasure):
42819         * page/PerformanceMeasure.idl: Added.
42820         * page/PerformanceUserTiming.cpp: Added.
42821         (WebCore):
42822         (WebCore::UserTiming::UserTiming):
42823         (WebCore::insertPerformanceEntry):
42824         (WebCore::clearPeformanceEntries):
42825         (WebCore::UserTiming::mark):
42826         (WebCore::UserTiming::clearMarks):
42827         (WebCore::UserTiming::findExistingMarkStartTime):
42828         (WebCore::UserTiming::measure):
42829         (WebCore::UserTiming::clearMeasures):
42830         * page/PerformanceUserTiming.h: Added.
42831         (WebCore):
42832         (UserTiming):
42833         (WebCore::UserTiming::create):
42834
42835 2012-10-17  James Robinson  <jamesr@chromium.org>
42836
42837         Unreviewed clang compile fix - GraphicsLayerUpdater needs a virtual destructor.
42838
42839         * platform/graphics/GraphicsLayerUpdater.h:
42840         (GraphicsLayerUpdater):
42841
42842 2012-10-17  Ryuan Choi  <ryuan.choi@samsung.com>
42843
42844         Attempt to fix the build after r131680.
42845
42846         Unreviewed build fix.
42847
42848         * dom/Document.cpp: Guard ACCELERATED_COMPOSITING for RenderLayerCompositor.h
42849
42850 2012-10-17  Elliott Sprehn  <esprehn@chromium.org>
42851
42852         StyleRareNonInheritedData::contentDataEquivalent only looks at the first ContentData
42853         https://bugs.webkit.org/show_bug.cgi?id=99560
42854
42855         Reviewed by Eric Seidel.
42856
42857         Previously we only compared the first ContentData in the linked
42858         list of ContentData's which meant that if the resolved style
42859         for content had the same prefix we wouldn't update the content.
42860
42861         This patch adds a loop to compare each of the ContentData objects
42862         in the linked list.
42863
42864         Test: fast/css-generated-content/content-property-change.html
42865
42866         * rendering/style/StyleRareNonInheritedData.cpp:
42867         (WebCore::StyleRareNonInheritedData::contentDataEquivalent):
42868
42869 2012-10-17  Elliott Sprehn  <esprehn@chromium.org>
42870
42871         Remove StyleContentType since it's not used anymore
42872         https://bugs.webkit.org/show_bug.cgi?id=99659
42873
42874         Reviewed by Eric Seidel.
42875
42876         Remove StyleContentType enum since it's not used anymore and
42877         make the is*() type checking methods on ContentData public.
42878
42879         No new tests needed, this is just deleting dead code.
42880
42881         * rendering/style/ContentData.h:
42882         (ContentData):
42883         * rendering/style/RenderStyleConstants.h:
42884
42885 2012-10-17  Simon Fraser  <simon.fraser@apple.com>
42886
42887         Create a GraphicsLayerUpdater class that will do periodic layer flushes for layer trees containing tile caches
42888         https://bugs.webkit.org/show_bug.cgi?id=99518
42889
42890         Reviewed by Dean Jackson.
42891
42892         When using tile caches in place of tiled layers, we need to recompute their
42893         visible area periodically while animations and scrolling are happening.
42894         Make a new class, GraphicsLayerUpdater, to handle this updating.
42895         Internally, it uses DisplayRefreshMonitor to generate the periodic updates.
42896         
42897         GraphicsLayer clients are notified that layers need periodic updates. Clients
42898         are free to make use of GraphicsLayerUpdater to handle this updating, as
42899         RenderLayerCompositor does.
42900         
42901         Also do some minor refactoring of methods in RenderLayerCompositor that
42902         get to Page.
42903
42904         * CMakeLists.txt: Add GraphicsLayerUpdater.cpp to the build.
42905         * GNUmakefile.list.am: Ditto.
42906         * PlatformBlackBerry.cmake: Ditto.
42907         * Target.pri: Ditto.
42908         * WebCore.gypi: Ditto.
42909         * WebCore.vcproj/WebCore.vcproj: Ditto.
42910         * WebCore.xcodeproj/project.pbxproj: Ditto.
42911         * dom/Document.cpp:
42912         (WebCore::Document::windowScreenDidChange): Tell the compositor that the screen
42913         changed, so it can tell the GraphicsLayerUpdater if it has one.
42914         * platform/graphics/GraphicsLayerClient.h:
42915         (WebCore::GraphicsLayerClient::notifyFlushBeforeDisplayRefresh): Method called
42916         for layers that need periodic updates, like tile cache layers.
42917         * platform/graphics/GraphicsLayerUpdater.cpp: Added. Uses DisplayRefreshMonitorManager
42918         to flush layers before the next refresh.
42919         (WebCore::GraphicsLayerUpdater::GraphicsLayerUpdater):
42920         (WebCore::GraphicsLayerUpdater::~GraphicsLayerUpdater):
42921         (WebCore::GraphicsLayerUpdater::scheduleUpdate):
42922         (WebCore::GraphicsLayerUpdater::screenDidChange):
42923         (WebCore::GraphicsLayerUpdater::displayRefreshFired):
42924         * platform/graphics/GraphicsLayerUpdater.h: Added.
42925         (GraphicsLayerUpdaterClient): Clients need to implement flushLayers().
42926         (WebCore::GraphicsLayerUpdaterClient::~GraphicsLayerUpdaterClient):
42927         * platform/graphics/ca/GraphicsLayerCA.cpp:
42928         (WebCore::GraphicsLayerCA::recursiveCommitChanges): For tile cache layers,
42929         tell the client that this layer should be updated soon to update the visible rect.
42930         * rendering/RenderLayerBacking.cpp:
42931         (WebCore::RenderLayerBacking::notifyFlushBeforeDisplayRefresh): Pass this message
42932         on to the compositor.
42933         * rendering/RenderLayerBacking.h:
42934         (RenderLayerBacking): Implement notifyFlushBeforeDisplayRefresh.
42935         Add OVERRIDE to all the client overrides.
42936         * rendering/RenderLayerCompositor.cpp:
42937         (WebCore::RenderLayerCompositor::cacheAcceleratedCompositingFlags): Use helper to get to Page.
42938         (WebCore::RenderLayerCompositor::scheduleLayerFlush): Ditto.
42939         (WebCore::RenderLayerCompositor::flushPendingLayerChanges): Soon we're going to be asking
42940         about the current state of animations inside the flush (for visible rect computation), so we
42941         need a AnimationUpdateBlock to make sure all the animation times are in sync.
42942         (WebCore::RenderLayerCompositor::notifyFlushBeforeDisplayRefresh): Make a GraphicsLayerUpdater
42943         if necessary, and tell it to update soon.
42944         (WebCore::RenderLayerCompositor::flushLayers): The GraphicsLayerUpdater client method.
42945         Just does a flush. For now, considers this Frame as the flush root, which will need fixing for iframes.
42946         (WebCore::RenderLayerCompositor::shouldPropagateCompositingToEnclosingFrame): Use helper to get to Page.
42947         (WebCore::RenderLayerCompositor::deviceScaleFactor): Ditto.
42948         (WebCore::RenderLayerCompositor::pageScaleFactor): Ditto.
42949         (WebCore::RenderLayerCompositor::destroyRootLayer): Ditto.
42950         (WebCore::RenderLayerCompositor::windowScreenDidChange): Tell the updater if we have one.
42951         (WebCore::RenderLayerCompositor::scrollingCoordinator): Use helper to get to Page.
42952         (WebCore::RenderLayerCompositor::graphicsLayerFactory): Use helper to get to Page.
42953         (WebCore::RenderLayerCompositor::page): The helper.
42954         * rendering/RenderLayerCompositor.h:
42955         (RenderLayerCompositor): Add OVERRIDE to all the client overrides.
42956
42957 2012-10-17  Eric Seidel  <eric@webkit.org>
42958
42959         Make dom-query.html slightly faster by removing unnecessary ref-churn in StringTraits
42960         https://bugs.webkit.org/show_bug.cgi?id=99652
42961
42962         Reviewed by Adam Barth.
42963
42964         My testing showed this moved dom-query.html from  465560 runs/s to 479019
42965         which is about 2% if I'm doing my math correctly.
42966
42967         I suspect that's due to avoiding the ref-churn we were incurring by using
42968         return-by-value symantics here.
42969
42970         This is just the tip of the iceburg. :)
42971
42972         * bindings/v8/V8StringResource.cpp:
42973         (StringTraits):
42974         * bindings/v8/V8ValueCache.h:
42975         (WebCore::WebCoreStringResource::webcoreString):
42976         (WebCore::WebCoreStringResource::atomicString):
42977
42978 2012-10-17  Luke Macpherson   <macpherson@chromium.org>
42979
42980         Move handling of CSSPropertyWebkitLineClamp from StyleResolver into StyleBuilder.
42981         https://bugs.webkit.org/show_bug.cgi?id=99534
42982
42983         Reviewed by Alexis Menard.
42984
42985         One small step towards removing the giant switch statement in StyleResolver, this patch moves line clamp handling into StyleBuilder.
42986
42987         Covered by fast/overflow/line-clamp.html
42988
42989         * css/StyleBuilder.cpp:
42990         (WebCore::StyleBuilder::StyleBuilder):
42991         * css/StyleResolver.cpp:
42992         (WebCore::StyleResolver::applyProperty):
42993
42994 2012-10-17  Andy Estes  <aestes@apple.com>
42995
42996         [WebKit2] Add removeChild: to WKDOMNode and make WKDOMText.data read/write
42997         https://bugs.webkit.org/show_bug.cgi?id=99662
42998
42999         Reviewed by Sam Weinig.
43000
43001         Export needed symbols.
43002
43003         * WebCore.exp.in:
43004
43005 2012-10-17  Adam Barth  <abarth@webkit.org>
43006
43007         [V8] Don't generate code that declares visitDOMWrapper if we're not going to generate the implementation
43008         https://bugs.webkit.org/show_bug.cgi?id=99653
43009
43010         Reviewed by Eric Seidel.
43011
43012         * bindings/scripts/CodeGeneratorV8.pm:
43013         (GenerateHeader):
43014
43015 2012-10-17  David Grogan  <dgrogan@chromium.org>
43016
43017         IndexedDB: Destroy leveldb directory if unknown schema is detected
43018         https://bugs.webkit.org/show_bug.cgi?id=99636
43019
43020         Reviewed by Tony Chang.
43021
43022         chromium browser test in progress at
43023         https://codereview.chromium.org/11196029
43024
43025         * Modules/indexeddb/IDBLevelDBBackingStore.cpp:
43026         (WebCore):
43027         (WebCore::isSchemaKnown):
43028         Return true when the schema key doesn't exist because new databases
43029         won't have one.
43030
43031         (WebCore::setUpMetadata):
43032         (WebCore::IDBLevelDBBackingStore::open):
43033         Piggy-back on existing leveldb::destroy code.
43034
43035 2012-10-17  Arpita Bahuguna  <arpitabahuguna@gmail.com>
43036
43037         Incorrect rendering of borders on <col> with span > 1
43038         https://bugs.webkit.org/show_bug.cgi?id=76246
43039
43040         Reviewed by Julien Chaffraix.
43041
43042         The HTML5 rendering specification [10.2.2 - Display Types] states that
43043         "For the purposes of the CSS table model, the col element is expected to
43044         be treated as if it was present as many times as its span attribute
43045         specifies."
43046         We should thus apply a col element's border as if the element is present
43047         as many number of times as its span attribute.
43048
43049         Apart from this, we should also treat the col and its enclosing colgroup
43050         separately while computing the collapsed borders.
43051
43052         Test: fast/table/border-collapsing/collapsed-border-with-col-colgroup-span.html
43053
43054         * rendering/RenderTableCell.cpp:
43055         (WebCore::RenderTableCell::computeCollapsedStartBorder):
43056         (WebCore::RenderTableCell::computeCollapsedEndBorder):
43057         Borders from col and its enclosing colgroup element should be handled
43058         separately, while considering the preceeding col's end border (for start
43059         border computation) and the next col's start border (for end border
43060         computation).
43061
43062         Also, have made changes for handling of col elements with span attribute as
43063         per the specification. We now apply the border (start or end) of the col
43064         element irrespective of whether it has any span specified for it or not.
43065
43066 2012-10-17  Tom Sepez  <tsepez@chromium.org>
43067
43068         Crash in ContainerNode::removeAllChildren()
43069         https://bugs.webkit.org/show_bug.cgi?id=98443
43070
43071         Reviewed by Eric Carlson.
43072
43073         This patch makes the errorEventSender added in WebKit Revision 112190 interact
43074         with the updatedHasPendingLoadEvent() mechanism in the same manner as the other
43075         existing event senders.
43076
43077         Test: http/tests/security/video-poster-cross-origin-crash2.html
43078
43079         * loader/ImageLoader.cpp:
43080         (WebCore::ImageLoader::setImage):
43081         (WebCore::ImageLoader::updateFromElement):
43082         (WebCore::ImageLoader::notifyFinished):
43083         (WebCore::ImageLoader::updatedHasPendingEvent):
43084         (WebCore::ImageLoader::dispatchPendingBeforeLoadEvent):
43085         (WebCore::ImageLoader::dispatchPendingLoadEvent):
43086         * loader/ImageLoader.h:
43087         (ImageLoader):
43088
43089 2012-10-17  Joshua Bell  <jsbell@chromium.org>
43090
43091         IndexedDB: Closing connection in upgradeneeded should result in error event
43092         https://bugs.webkit.org/show_bug.cgi?id=99486
43093
43094         Reviewed by Tony Chang.
43095
43096         The IDB spec requires that "...if connection is closed, return a DOMError of type AbortError".
43097         This was being handled during the "enqueue" phase, which was too early either for synchronously
43098         executing scripts or asynchronous messaging in multiprocess ports (crbug.com/150691). Move the
43099         logic to the "dispatch" phase.
43100
43101         Test: storage/indexeddb/intversion-close-in-oncomplete.html
43102
43103         * Modules/indexeddb/IDBOpenDBRequest.cpp:
43104         (WebCore::IDBOpenDBRequest::onSuccess): Move success to error morphing from here...
43105         (WebCore::IDBOpenDBRequest::dispatchEvent): To here.
43106         * Modules/indexeddb/IDBOpenDBRequest.h:
43107         (IDBOpenDBRequest):
43108
43109 2012-10-17  Elliott Sprehn  <esprehn@chromium.org>
43110
43111         Use virtual dispatch to create ContentData renderers
43112         https://bugs.webkit.org/show_bug.cgi?id=99646
43113
43114         Reviewed by Eric Seidel.
43115
43116         ContentData are conceptually very similar to Nodes and we can use
43117         the same createRenderer pattern on them to simplify creating
43118         renderers for generated content. Now each ContentData class knows
43119         how to create its own renderer.
43120
43121         Previously we switched over the StyleContentType which required a
43122         case for CONTENT_NONE and made the code look like it could return
43123         null, but this case is actually impossible because no ContentData
43124         class ever has a type of CONTENT_NONE and no null checks are really
43125         needed.
43126
43127         This is the final step in removing dependence on StyleContentType.
43128
43129         No new tests needed, this is just a refactor.
43130
43131         * rendering/RenderObjectChildList.cpp: Remove createRendererForBeforeAfterContent.
43132         (WebCore::RenderObjectChildList::updateBeforeAfterContent):
43133         * rendering/style/ContentData.cpp:
43134         (WebCore::ImageContentData::createRenderer):
43135         (WebCore):
43136         (WebCore::TextContentData::createRenderer):
43137         (WebCore::CounterContentData::createRenderer):
43138         (WebCore::QuoteContentData::createRenderer):
43139         * rendering/style/ContentData.h: Added a new virtual method createRenderer.
43140         (WebCore):
43141         (ContentData):
43142         (ImageContentData):
43143         (TextContentData):
43144         (CounterContentData):
43145         (QuoteContentData):
43146
43147 2012-10-17  Julien Chaffraix  <jchaffraix@webkit.org>
43148
43149         RenderLayer subtrees without any self-painting layer shouldn't be walked during hit testing
43150         https://bugs.webkit.org/show_bug.cgi?id=89393
43151
43152         Reviewed by Eric Seidel.
43153
43154         Performance optimization, covered by existing tests.
43155
43156         Bug 88888 added an peformance optimization for painting. As hit testing is very similar to
43157         painting, it would benefit from the same optimization.
43158
43159         On http://dglazkov.github.com/performance-tests/biggrid.html, with a 10,000 * 100 tables,
43160         it reduces the time to select some text inside a cell from 1-2 seconds to a usable time
43161         (I didn't measure the exact timing).
43162
43163         Note that as in bug 88888, the multi-column code is not covered by this optimization.
43164
43165         * rendering/RenderLayer.cpp:
43166         (WebCore::RenderLayer::hitTest):
43167         This is the entrance to the hit testing code so we check if we can bail out early.
43168
43169         (WebCore::RenderLayer::hitTestList):
43170         If we have no self-painting descendant layers, we can bail out.
43171
43172         (WebCore::RenderLayer::hitTestContents):
43173         (WebCore::RenderLayer::hitTestLayer):
43174         hitTest should filter the layers that call these functions. Added some ASSERT to
43175         make sure we don't mistakenly call them when could avoid it.
43176
43177 2012-10-17  Allan Sandfeld Jensen  <allan.jensen@digia.com>
43178
43179         [Qt] Certain SVG content freezes QtWebKit
43180         https://bugs.webkit.org/show_bug.cgi?id=97258
43181
43182         Reviewed by Simon Hausmann.
43183
43184         Ensure dashpattern is well-formed by avoiding divisions by zero.
43185
43186         Test: svg/stroke/zero-width-hang.html
43187
43188         * platform/graphics/qt/GraphicsContextQt.cpp:
43189         (WebCore::GraphicsContext::setLineDash):
43190
43191 2012-10-17  Alec Flett  <alecflett@chromium.org>
43192
43193         IndexedDB: Explicitly send null/undefined/integers to frontend IDBCallbacks
43194         https://bugs.webkit.org/show_bug.cgi?id=99619
43195
43196         Reviewed by Adam Barth.
43197
43198         Rather than pass SerializedScriptValue tokens from the backend,
43199         send explicit null, (as onSuccess(static_cast<SerializedScriptValue*>(0)))
43200         undefined, (as onSucess()), and integers (as onSuccess(long long))
43201
43202         This reduces backend dependency on things that might require a JS
43203         interpreter on the backend.
43204
43205         No new tests, this is a refactor and existing tests cover
43206         correctness. Tests that might fail include:
43207
43208         Test: storage/indexeddb/index-count.html
43209         Test: storage/indexeddb/objectstore-count.html
43210         Test: storage/indexeddb/database-basics.html
43211
43212         * Modules/indexeddb/IDBCallbacks.h:
43213         (IDBCallbacks):
43214         * Modules/indexeddb/IDBCursorBackendImpl.cpp:
43215         (WebCore::IDBCursorBackendImpl::advanceInternal):
43216         (WebCore::IDBCursorBackendImpl::continueFunctionInternal):
43217         (WebCore::IDBCursorBackendImpl::prefetchContinueInternal):
43218         * Modules/indexeddb/IDBCursorBackendImpl.h:
43219         (WebCore::IDBCursorBackendImpl::value):
43220         * Modules/indexeddb/IDBDatabaseBackendImpl.cpp:
43221         (WebCore::IDBDatabaseBackendImpl::deleteDatabase):
43222         * Modules/indexeddb/IDBIndex.cpp:
43223         * Modules/indexeddb/IDBIndexBackendImpl.cpp:
43224         (WebCore::IDBIndexBackendImpl::openCursorInternal):
43225         (WebCore::IDBIndexBackendImpl::countInternal):
43226         (WebCore::IDBIndexBackendImpl::getInternal):
43227         * Modules/indexeddb/IDBObjectStore.cpp:
43228         * Modules/indexeddb/IDBObjectStoreBackendImpl.cpp:
43229         (WebCore::IDBObjectStoreBackendImpl::getInternal):
43230         (WebCore::IDBObjectStoreBackendImpl::deleteInternal):
43231         (WebCore::IDBObjectStoreBackendImpl::clearInternal):
43232         (WebCore::IDBObjectStoreBackendImpl::openCursorInternal):
43233         (WebCore::IDBObjectStoreBackendImpl::countInternal):
43234         * Modules/indexeddb/IDBRequest.cpp:
43235         (WebCore::IDBRequest::onSuccess):
43236         (WebCore):
43237         * Modules/indexeddb/IDBRequest.h:
43238         * Modules/indexeddb/IDBTransaction.cpp:
43239         * Modules/indexeddb/IDBTransactionBackendImpl.cpp:
43240         * Modules/indexeddb/IDBTransactionBackendImpl.h:
43241         * Modules/indexeddb/IDBTransactionBackendInterface.h:
43242         * bindings/v8/IDBBindingUtilities.cpp:
43243         (WebCore::deserializeIDBValue):
43244         * inspector/InspectorIndexedDBAgent.cpp:
43245         (WebCore):
43246
43247 2012-10-17  Nate Chapin  <japhet@chromium.org>
43248
43249         Move ResourceRequest construction out of SubresourceLoader
43250         https://bugs.webkit.org/show_bug.cgi?id=99627
43251
43252         Reviewed by Adam Barth.
43253
43254         CachedResource::load() fills out a bunch of http headers.
43255         SubresourceLoader::create() adds a bunch more. Merge them.
43256         Note that this merge requires a bit more care in CachedRawResource::canReuse(),
43257         because more headers are set directly on CachedResource::m_resourceRequest, rather
43258         than on a copy of it.
43259
43260         No new tests, no functionality change intended.
43261
43262         * loader/SubresourceLoader.cpp:
43263         (WebCore::SubresourceLoader::create):
43264         * loader/cache/CachedRawResource.cpp:
43265         (WebCore::shouldIgnoreHeaderForCacheReuse):
43266         (WebCore):
43267         (WebCore::CachedRawResource::canReuse):
43268         * loader/cache/CachedResource.cpp:
43269         (WebCore::CachedResource::failBeforeStarting):
43270         (WebCore):
43271         (WebCore::CachedResource::addAdditionalRequestHeaders):
43272         (WebCore::CachedResource::load):
43273         * loader/cache/CachedResource.h:
43274         (CachedResource):
43275
43276 2012-10-17  Anders Carlsson  <andersca@apple.com>
43277
43278         Clean up Vector.h
43279         https://bugs.webkit.org/show_bug.cgi?id=99622
43280
43281         Reviewed by Benjamin Poulain.
43282
43283         Fix fallout from removing std::max and std::min using declarations.
43284
43285         * loader/cache/CachedResource.cpp:
43286         (WebCore::CachedResource::currentAge):
43287
43288 2012-10-17  Joshua Bell  <jsbell@chromium.org>
43289
43290         IndexedDB: Enforce unsigned long/unsigned long long ranges
43291         https://bugs.webkit.org/show_bug.cgi?id=99637
43292
43293         Reviewed by Tony Chang.
43294
43295         The IndexedDB spec has [EnforceRange] specified on unsigned long and unsigned long long
43296         arguments, which requires the implementation to throw TypeError for negative values or
43297         values that exceed 2^53-1 (maximum JS number that behaves like an integer) - and 0 is
43298         specifically forbidden by the APIs as well.
43299
43300         A more correct fix in the binding layer is in webkit.org/b/96798 but we can temporarily
43301         address this in the implementation.
43302
43303         Also refactor to prevent IDBFactory.open(name, -1) from triggering an internal code path.
43304
43305         Tests: storage/indexeddb/cursor-advance.html
43306                storage/indexeddb/intversion-bad-parameters.html
43307                storage/indexeddb/intversion-encoding.html
43308
43309         * Modules/indexeddb/IDBCursor.cpp:
43310         (WebCore::IDBCursor::advance): Validate argument range.
43311         * Modules/indexeddb/IDBCursor.h:
43312         (IDBCursor):
43313         * Modules/indexeddb/IDBCursor.idl: Drop "unsigned" qualifier as the binding code is
43314         not yet doing the correct validation.
43315         * Modules/indexeddb/IDBFactory.cpp: Refactor to prevent open(name, -1)
43316         (WebCore):
43317         (WebCore::IDBFactory::open): Validate the int version here, then pass to...
43318         (WebCore::IDBFactory::openInternal): ... this method.
43319         * Modules/indexeddb/IDBFactory.h:
43320         (IDBFactory):
43321         * Modules/indexeddb/IDBFactory.idl: Drop "unsigned" qualifier; meaningless to binding
43322         code right now, can be re-added once webkit.org/b/96798 lands.
43323
43324 2012-10-17  Tony Chang  <tony@chromium.org>
43325
43326         fast/forms/range/input-appearance-range-rtl.html off by one pixel
43327         https://bugs.webkit.org/show_bug.cgi?id=99625
43328
43329         Reviewed by Ojan Vafai.
43330
43331         Previously, we would assume that a vertical slider in RTL would render identically to
43332         a vertical slider in LTR. Due to differing thumb sizes, there is an off by one.
43333
43334         This worked in deprecated flexbox because it doesn't adjust for RTL when applying
43335         box-align: center.
43336
43337         Tests: fast/forms/range/input-appearance-range-rtl.html
43338
43339         * html/shadow/SliderThumbElement.cpp:
43340         (WebCore::RenderSliderContainer::layout): Force LTR for flexbox layout when vertical. We have to restore the old value
43341         just in case the user switches from vertical to horizontal.
43342
43343 2012-10-17  Michael Saboff  <msaboff@apple.com>
43344
43345         Creating a String from an NSString should check for all 8 bit strings
43346         https://bugs.webkit.org/show_bug.cgi?id=99392
43347
43348         Reviewed by Geoffrey Garen.
43349
43350         Use CFStringGetBytes() to try to get Latin1 data to create an 8 bit string.
43351
43352         No functional change, change covered by existing tests.
43353
43354         * platform/text/mac/StringMac.mm:
43355         (WTF::String::String):
43356
43357 2012-10-17  Raphael Kubo da Costa  <raphael.kubo.da.costa@intel.com>
43358
43359         [EFL] Remove redundant OpenGL library addition from the build system.
43360         https://bugs.webkit.org/show_bug.cgi?id=99629
43361
43362         Reviewed by Rob Buis.
43363
43364         * PlatformEfl.cmake: Do not add OPENGL_gl_LIBRARY to
43365         WebCore_LIBRARIES, this is already done in CMakeLists.txt these
43366         days.
43367
43368 2012-10-17  Raphael Kubo da Costa  <raphael.kubo.da.costa@intel.com>
43369
43370         [CMake] Set WebCore_LIBRARIES earlier.
43371         https://bugs.webkit.org/show_bug.cgi?id=99630
43372
43373         Reviewed by Rob Buis.
43374
43375         * CMakeLists.txt: Follow the style we use in other CMakeList.txt
43376         files and set the Foo_LIBRARIES variables before we start checking
43377         for optional features, as they might append other libraries to the
43378         list (it already happens with WTF_USE_3D_GRAPHICS, for example).
43379
43380 2012-10-17  Philip Rogers  <pdr@google.com>
43381
43382         Allow lazy initialization of SVG XML animated properties.
43383         https://bugs.webkit.org/show_bug.cgi?id=84657
43384
43385         Reviewed by Tim Horton.
43386
43387         When animating a property in the shadow tree, instance properties and tearoffs are created
43388         but they simply reference the animated element's animating properties.
43389
43390         When starting an animation for the first time (see SVGAnimateElement::resetAnimatedType),
43391         we initialize the root property and instance properties using startAnimValAnimation(...).
43392         If an instance property is added while the root property is animating, this initialization
43393         will not occur and we crash.
43394
43395         This patch updates the resetAnimValToBaseVal codepath to start (and initialize) an animated
43396         property if it is not already animating. After this patch, instance properties can be added
43397         in the middle of animation and they will be properly started/initialized.
43398
43399         Test: svg/animations/use-while-animating-crash.html
43400
43401         * svg/SVGAnimatedTypeAnimator.h:
43402         (WebCore::SVGAnimatedTypeAnimator::resetFromBaseValue):
43403         (WebCore::SVGAnimatedTypeAnimator::resetFromBaseValues):
43404         (WebCore::SVGAnimatedTypeAnimator::executeAction):
43405
43406 2012-10-17  Dan Carney  <dcarney@google.com>
43407
43408         Bind isolatedWorldSecurityOrigin to world
43409         https://bugs.webkit.org/show_bug.cgi?id=99582
43410
43411         Reviewed by Adam Barth.
43412
43413         Security origin of isolated worlds was not previously set at the world
43414         level, although it could have been. 
43415
43416         No new tests. No change in functionality.
43417
43418         * bindings/v8/DOMWrapperWorld.cpp:
43419         (WebCore::DOMWrapperWorld::deallocate):
43420         (WebCore):
43421         (WebCore::isolatedWorldSecurityOrigins):
43422         (WebCore::DOMWrapperWorld::isolatedWorldSecurityOrigin):
43423         (WebCore::DOMWrapperWorld::setIsolatedWorldSecurityOrigin):
43424         (WebCore::DOMWrapperWorld::clearIsolatedWorldSecurityOrigin):
43425         * bindings/v8/DOMWrapperWorld.h:
43426         (DOMWrapperWorld):
43427         (WebCore::DOMWrapperWorld::isIsolatedWorldId):
43428         (WebCore::DOMWrapperWorld::isIsolatedWorld):
43429         * bindings/v8/ScriptController.cpp:
43430         (WebCore::ScriptController::resetIsolatedWorlds):
43431         (WebCore::ScriptController::evaluateInIsolatedWorld):
43432         (WebCore::ScriptController::collectIsolatedContexts):
43433         * bindings/v8/ScriptController.h:
43434         (ScriptController):
43435         (WebCore::ScriptController::setIsolatedWorldSecurityOrigin):
43436         * bindings/v8/V8DOMWindowShell.cpp:
43437         (WebCore::V8DOMWindowShell::initializeIfNeeded):
43438         * bindings/v8/V8DOMWindowShell.h:
43439         (V8DOMWindowShell):
43440         * bindings/v8/custom/V8XMLHttpRequestConstructor.cpp:
43441         (WebCore::V8XMLHttpRequest::constructorCallback):
43442
43443 2012-10-17  Simon Fraser  <simon.fraser@apple.com>
43444
43445         GraphicsLayer visible rect computation needs to use the current animating transform
43446         https://bugs.webkit.org/show_bug.cgi?id=99529
43447
43448         Reviewed by Dean Jackson.
43449
43450         If we're running an accelerated animation of transform
43451         on a GraphicsLayerCA, the current value of the transform won't
43452         be reflected in the GraphicsLayer's m_transform. However,
43453         we need the current value of the transform in order to correctly
43454         compute the visible rect of this layer and descendants.
43455         
43456         Add a function to GraphicsLayerClient to retrieve the current
43457         value of the transform from the client.
43458         
43459         RenderLayer's currentTransform() used to return a transform
43460         with transform-origin baked in; GraphicsLayerClient needs one
43461         that excludes transform-origin, so enhance RenderLayer::currentTransform()
43462         to be able to produce either.
43463
43464         Tests: compositing/visible-rect/animated-from-none.html
43465                compositing/visible-rect/animated.html
43466
43467         * platform/graphics/GraphicsLayerClient.h:
43468         (WebCore):
43469         (GraphicsLayerClient):
43470         (WebCore::GraphicsLayerClient::getCurrentTransform):
43471         * platform/graphics/ca/GraphicsLayerCA.cpp:
43472         (WebCore::GraphicsLayerCA::computeVisibleRect):
43473         * rendering/RenderLayer.cpp:
43474         (WebCore::RenderLayer::currentTransform):
43475         * rendering/RenderLayer.h:
43476         * rendering/RenderLayerBacking.cpp:
43477         (WebCore::RenderLayerBacking::currentTransform):
43478         * rendering/RenderLayerBacking.h:
43479         (RenderLayerBacking):
43480
43481 2012-10-17  Sadrul Habib Chowdhury  <sadrul@chromium.org>
43482
43483         plugins: Allow a plugin to dictate whether it can receive drag events or not.
43484         https://bugs.webkit.org/show_bug.cgi?id=99355
43485
43486         Reviewed by Tony Chang.
43487
43488         When doing a drag over a plugin, ask the plugin whether it can accept
43489         drag/drop to decide whether drag/drop is possible or not. At present,
43490         plugins do not receive drag events through WebCore (i.e. various
43491         implementations of PluginView::handleMouseEvent ignores the
43492         drop-events). This change makes it possible for the ports to ask the
43493         plugin first to decide whether it can (or wants to) accept drag events.
43494         The default implementation remains the same, i.e. plugins do not receive
43495         drag events. For chromium, the overridden implementation uses the
43496         WebPlugin interface to check whether the plugin can accept drag events.
43497
43498         * html/HTMLPlugInElement.cpp:
43499         (WebCore::HTMLPlugInElement::canProcessDrag):
43500         (WebCore):
43501         * html/HTMLPlugInElement.h:
43502         (WebCore):
43503         (HTMLPlugInElement):
43504         * page/DragController.cpp:
43505         (WebCore::DragController::canProcessDrag):
43506         * plugins/PluginViewBase.h:
43507         (WebCore):
43508         (WebCore::PluginViewBase::canProcessDrag):
43509
43510 2012-10-17  Andreas Kling  <kling@webkit.org>
43511
43512         Shrink EventTargetData by making firingEventListeners vector optional.
43513         <http://webkit.org/b/99532>
43514         <rdar://problem/12515099>
43515
43516         Reviewed by Anders Carlsson.
43517
43518         The majority of event listeners never actually fire, and EventTargetData::firingEventListeners
43519         is just sitting there taking up space. Make it an OwnPtr instead, shrinking EventTargetData
43520         by 48 bytes and progressing Membuster3 by 395kB.
43521
43522         * dom/EventTarget.cpp:
43523         (WebCore::EventTarget::removeEventListener):
43524         (WebCore::EventTarget::fireEventListeners):
43525         (WebCore::EventTarget::removeAllEventListeners):
43526         * dom/EventTarget.h:
43527         (WebCore::EventTarget::isFiringEventListeners):
43528
43529 2012-10-17  Christophe Dumez  <christophe.dumez@intel.com>
43530
43531         xss-DENIED-xsl-document-securityOrigin.xml crashes with icon assertion
43532         https://bugs.webkit.org/show_bug.cgi?id=99571
43533
43534         Reviewed by Kenneth Rohde Christiansen.
43535
43536         Check that the iconURL is not empty in IconController::continueLoadWithDecision()
43537         to avoid hitting assertions later when trying to commit this empty URL to the
43538         database. IconController::url() may indeed return an empty URL but there was
43539         no check for it.
43540
43541         No new tests, already covered by http/tests/security/xss-DENIED-xsl-document-securityOrigin.xml.
43542
43543         * loader/icon/IconController.cpp:
43544         (WebCore::IconController::continueLoadWithDecision):
43545
43546 2012-10-17  Byungwoo Lee  <bw80.lee@samsung.com>
43547
43548         Fix build warnings : -Wunused-parameter, -Wunused-variable
43549         https://bugs.webkit.org/show_bug.cgi?id=99539
43550
43551         Reviewed by Kentaro Hara.
43552
43553         Fix build warnings about unused parameter or unused variable when
43554         WTF_USE_TILED_BACKING_STORE option is enabled.
43555
43556         * html/shadow/HTMLContentElement.cpp:
43557         (WebCore::contentTagName):
43558         * platform/graphics/efl/GraphicsContext3DEfl.cpp:
43559         (WebCore::GraphicsContext3D::getImageData):
43560         * platform/graphics/efl/GraphicsContext3DPrivate.cpp:
43561         (WebCore::GraphicsContext3DPrivate::createSurface):
43562         (WebCore::GraphicsContext3DPrivate::paintToTextureMapper):
43563         * platform/graphics/opengl/Extensions3DOpenGL.cpp:
43564         (WebCore::Extensions3DOpenGL::bindVertexArrayOES):
43565         * platform/graphics/texmap/TextureMapper.h:
43566         (WebCore::BitmapTexture::canReuseWith):
43567         (WebCore::TextureMapper::beginPainting):
43568         * platform/graphics/texmap/TextureMapperGL.cpp:
43569         (WebCore::TextureMapperGL::drawRepaintCounter):
43570         * platform/graphics/texmap/TextureMapperImageBuffer.cpp:
43571         (WebCore::BitmapTextureImageBuffer::updateContents):
43572         * platform/graphics/texmap/TextureMapperImageBuffer.h:
43573         * platform/graphics/texmap/TextureMapperLayer.cpp:
43574         (WebCore::TextureMapperLayer::sortByZOrder):
43575         (WebCore::TextureMapperLayer::flushCompositingStateSelf):
43576         * rendering/RenderLayerCompositor.cpp:
43577         (WebCore::RenderLayerCompositor::allowsIndependentlyCompositedFrames):
43578
43579 2012-10-17  Shinya Kawanaka  <shinyak@chromium.org>
43580
43581         Dynamically added elements do not get re-projected.
43582         https://bugs.webkit.org/show_bug.cgi?id=99227
43583
43584         Reviewed by Dimitri Glazkov.
43585
43586         When distribution happens, we have to invalidate its host shadow's distribution, since the children of the host
43587         is changed.
43588
43589         Test: fast/dom/shadow/content-reprojection-dynamic.html
43590
43591         * html/shadow/ContentDistributor.cpp:
43592         (WebCore::ContentDistributor::distribute):
43593
43594 2012-10-17  Yury Semikhatsky  <yurys@chromium.org>
43595
43596         Web Inspector: no "delete watch expression" context menu item when clicking on the expression value
43597         https://bugs.webkit.org/show_bug.cgi?id=99602
43598
43599         Reviewed by Pavel Feldman.
43600
43601         Add delete items to the watch expression's value's context menu.
43602
43603         * inspector/front-end/ObjectPropertiesSection.js:
43604         (WebInspector.ObjectPropertyTreeElement.prototype._contextMenuFired):
43605         (WebInspector.ObjectPropertyTreeElement.prototype.populateContextMenu):
43606         * inspector/front-end/WatchExpressionsSidebarPane.js:
43607         (WebInspector.WatchExpressionTreeElement.prototype.populateContextMenu):
43608         (WebInspector.WatchExpressionTreeElement.prototype._contextMenu):
43609
43610 2012-10-17  Vsevolod Vlasov  <vsevik@chromium.org>
43611
43612         Web Inspector: [Regression] Undoing script changes does not restore breakpoints.
43613         https://bugs.webkit.org/show_bug.cgi?id=99598
43614
43615         Reviewed by Pavel Feldman.
43616
43617         workingCopyChanged now dispatches did/willMergeToVM instead of did/willDivergeFromVM
43618         when change returns uiSourceCode to non dirty state.
43619         Added wasDirty parameter to workingCopyChanged event.
43620
43621         Test: inspector/debugger/live-edit-breakpoints.html
43622
43623         * inspector/front-end/ResourceScriptMapping.js:
43624         (WebInspector.ResourceScriptFile.prototype._workingCopyCommitted):
43625         (WebInspector.ResourceScriptFile.prototype._workingCopyChanged):
43626         * inspector/front-end/UISourceCode.js:
43627         (WebInspector.UISourceCode.prototype.setWorkingCopy):
43628
43629 2012-10-17  Simon Hausmann  <simon.hausmann@digia.com>
43630
43631         [Qt] Avoid re-creating CSSGrammar.cpp with each (incremental) build
43632
43633         Reviewed by Tor Arne Vestbø.
43634
43635         The expected output is CSSGrammar.cpp and the input file used to be CSSGrammar.y,
43636         so ${QMAKE_FILE_BASE}.cpp did the correct transformation. Recently the input has
43637         changed to CSSGrammar.y.in, in which case the ${QMAKE_FILE_BASE} is CSSGrammar.y
43638         unfortunately. The resulting target CSSGrammar.y.cpp will never be created and
43639         therefore the target will always run.
43640
43641         * DerivedSources.pri:
43642
43643 2012-10-17  Ilya Tikhonovsky  <loislo@chromium.org>
43644
43645         Unreviewed fix for ImageSourceCG.
43646
43647         * platform/graphics/cg/ImageSourceCG.cpp:
43648         (WebCore::ImageSource::reportMemoryUsage):
43649
43650 2012-10-17  Ilya Tikhonovsky  <loislo@chromium.org>
43651
43652         Unreviewed fix for compilation on CG bots.
43653
43654         * platform/graphics/cg/ImageSourceCG.cpp:
43655
43656 2012-10-16  Ilya Tikhonovsky  <loislo@chromium.org>
43657
43658         Web Inspector: NMI instrument ImageDecoder. It owns a buffer that could be quite big.
43659         https://bugs.webkit.org/show_bug.cgi?id=99540
43660
43661         Reviewed by Yury Semikhatsky.
43662
43663         * platform/graphics/ImageSource.cpp:
43664         (WebCore::ImageSource::reportMemoryUsage):
43665         (WebCore):
43666         * platform/graphics/ImageSource.h:
43667         (ImageSource):
43668         * platform/image-decoders/ImageDecoder.cpp:
43669         (WebCore::ImageFrame::reportMemoryUsage):
43670         (WebCore):
43671         (WebCore::ImageDecoder::reportMemoryUsage):
43672         * platform/image-decoders/ImageDecoder.h:
43673         (ImageFrame):
43674         (ImageDecoder):
43675         * platform/image-decoders/skia/ImageDecoderSkia.cpp:
43676         (WebCore::ImageFrame::reportMemoryUsage):
43677         (WebCore):
43678
43679 2012-10-17  Zeno Albisser  <zeno@webkit.org>
43680
43681         [Qt] Fix build on Mac OSX 10.6 and earlier.
43682         https://bugs.webkit.org/show_bug.cgi?id=99595
43683
43684         Reviewed by Simon Hausmann.
43685
43686         * Target.pri:
43687
43688 2012-10-17  Pavel Feldman  <pfeldman@chromium.org>
43689
43690         Web Inspector: display "disconnected" message when remote debugging terminates
43691         https://bugs.webkit.org/show_bug.cgi?id=99316
43692
43693         Reviewed by Yury Semikhatsky.
43694
43695         Otherwise, it is not clear that the front-end is no longer functional.
43696
43697         * inspector/front-end/InspectorFrontendHostStub.js:
43698         (WebInspector.RemoteDebuggingTerminatedScreen):
43699         * inspector/front-end/inspector.js:
43700         (WebInspector.loaded.WebInspector.socket.onclose):
43701         (WebInspector.loaded):
43702
43703 2012-10-17  Yury Semikhatsky  <yurys@chromium.org>
43704
43705         Web Inspector: delete watch expression button overlaps with the expression value
43706         https://bugs.webkit.org/show_bug.cgi?id=99569
43707
43708         Reviewed by Vsevolod Vlasov.
43709
43710         Delete watch expression button now doesn't overlap with the watch expression.
43711
43712         * inspector/front-end/inspector.css:
43713         (.properties-tree.watch-expressions > li > .value):
43714
43715 2012-10-17  Luke Macpherson   <macpherson@chromium.org>
43716
43717         Move handling of CSSPropertyPointerEvents from StyleResolver into StyleBuilder.
43718         https://bugs.webkit.org/show_bug.cgi?id=99536
43719
43720         Reviewed by Alexis Menard.
43721
43722         One small step towards removing the giant switch statement in StyleResolver,
43723         this patch moves pointer event property into StyleBuilder.
43724
43725         Covered by fast/events/pointer-events.html and fast/events/pointer-events-2.html.
43726
43727         * css/StyleBuilder.cpp:
43728         (WebCore::StyleBuilder::StyleBuilder):
43729         * css/StyleResolver.cpp:
43730         (WebCore::StyleResolver::applyProperty):
43731
43732 2012-10-17  Keishi Hattori  <keishi@webkit.org>
43733
43734         Localized date should be based on LDML
43735         https://bugs.webkit.org/show_bug.cgi?id=99570
43736
43737         Reviewed by Kent Tamura.
43738
43739         Localized date should be based on LDML to match the format inside DateTimeEditElement.
43740
43741         No new tests. Covered by LocaleMacTest.formatDate and LocaleWinTest.formatDate.
43742
43743         * platform/text/LocaleICU.cpp: Removed formatDateTime.
43744         * platform/text/LocaleICU.h:
43745         (LocaleICU):
43746         * platform/text/LocaleNone.cpp: Removed formatDateTime.
43747         (LocaleNone):
43748         * platform/text/LocaleWin.cpp: Removed formatDateTime and formatDate.
43749         (WebCore):
43750         * platform/text/LocaleWin.h:
43751         (LocaleWin):
43752         * platform/text/Localizer.cpp:
43753         (WebCore::DateTimeStringBuilder::visitField): Added support for year/month/day.
43754         (WebCore::Localizer::formatDateTime): Creates the formatted string based on the format from dateFormat().
43755         * platform/text/Localizer.h:
43756         * platform/text/mac/LocaleMac.h:
43757         (LocaleMac):
43758         * platform/text/mac/LocaleMac.mm: Removed formatDateTime.
43759
43760 2012-10-17  Harald Alvestrand  <hta@google.com>
43761
43762         Implement the Selector argument to RTCPeerConnection.getStats
43763         https://bugs.webkit.org/show_bug.cgi?id=99460
43764
43765         Reviewed by Adam Barth.
43766
43767         The change adds two new parameters to the RTCStatsRequest object:
43768         stream and component. Together these are enough to identify a
43769         MediaStreamTrack.
43770
43771         Test: fast/mediastream/RTCPeerConnection-statsSelector.html
43772
43773         * Modules/mediastream/MediaStreamTrack.cpp:
43774         (WebCore::MediaStreamTrack::streamDescriptor):
43775         (WebCore):
43776         * Modules/mediastream/MediaStreamTrack.h:
43777         * Modules/mediastream/RTCPeerConnection.cpp:
43778         (WebCore::RTCPeerConnection::getStats):
43779         * Modules/mediastream/RTCStatsRequestImpl.cpp:
43780         (WebCore::RTCStatsRequestImpl::create):
43781         (WebCore::RTCStatsRequestImpl::RTCStatsRequestImpl):
43782         (WebCore::RTCStatsRequestImpl::hasSelector):
43783         (WebCore):
43784         (WebCore::RTCStatsRequestImpl::stream):
43785         (WebCore::RTCStatsRequestImpl::component):
43786         * Modules/mediastream/RTCStatsRequestImpl.h:
43787         (RTCStatsRequestImpl):
43788         * platform/chromium/support/WebRTCStatsRequest.cpp:
43789         (WebKit):
43790         (WebKit::WebRTCStatsRequest::hasSelector):
43791         (WebKit::WebRTCStatsRequest::stream):
43792         (WebKit::WebRTCStatsRequest::component):
43793         * platform/mediastream/RTCStatsRequest.h:
43794         (WebCore):
43795         (RTCStatsRequest):
43796
43797 2012-10-17  Simon Hausmann  <simon.hausmann@digia.com>
43798
43799         [Qt] Enable use of more AllInOne files
43800         https://bugs.webkit.org/show_bug.cgi?id=99579
43801
43802         Reviewed by Tor Arne Vestbø.
43803
43804         The AllInOne files reduce pressure during final link time because the object files contain less duplicated
43805         symbols.
43806
43807         * Target.pri: Add HTMLElementsAllInOne, EditingAllInOne and RenderingAllInOne to the build
43808         * editing/EditingAllInOne.cpp: Place a #if USE(CF) around the inclusion of SmartReplaceCF.cpp
43809         * html/HTMLElementsAllInOne.cpp: Move HTMLPlugInElement.cpp to the top to fix builds on X11 based platforms
43810         where the X headers get confused by the "Region" type that's also declared in WebCore.
43811         * rendering/RenderingAllInOne.cpp: Fix build on case-sensitive file systems (Plugin -> PlugIn) and added a
43812         #if PLATFORM(WIN) around the inclusion of RenderThemeWin.cpp.
43813
43814 2012-10-17  Kent Tamura  <tkent@chromium.org>
43815
43816         REGRESSION(r131421): Text baseline becomes incorrect after re-layout of input[type=time]
43817         https://bugs.webkit.org/show_bug.cgi?id=99572
43818
43819         Reviewed by Kentaro Hara.
43820
43821         We use flexible box since r131421, and it seems text baseline becomes
43822         incorrect if there are text nodes in a flex container.
43823
43824         Test: fast/forms/time-multiple-fields/time-multiple-fields-static-relayout.html
43825
43826         * css/html.css:
43827         (input::-webkit-datetime-edit-text): Added.
43828         * html/shadow/DateTimeEditElement.cpp:
43829         (WebCore::DateTimeEditBuilder::visitLiteral):
43830         Wrap text with an element with ::-webkit-datetime-edit-text.
43831
43832 2012-10-17  Grzegorz Czajkowski  <g.czajkowski@samsung.com>, Michal Roj <m.roj@samsung.com>
43833
43834         [WK2][EFL] Implementation of spellchecking feature.
43835         https://bugs.webkit.org/show_bug.cgi?id=91854
43836
43837         Reviewed by Gyuyoung Kim.
43838
43839         * PlatformEfl.cmake:
43840         Add enchant-related compiler flags: header paths and the library flag.
43841
43842 2012-10-17  Alexander Pavlov  <apavlov@chromium.org>
43843
43844         Web Inspector: Avoid style updates when retrieving the inline stylesheet text
43845         https://bugs.webkit.org/show_bug.cgi?id=99576
43846
43847         Reviewed by Vsevolod Vlasov.
43848
43849         Avoid using innerText() to retrieve inline stylesheet text, which may result in style and layout updates.
43850
43851         * inspector/InspectorStyleSheet.cpp:
43852         (WebCore::InspectorStyleSheet::inlineStyleSheetText):
43853
43854 2012-10-17  Patrick Gansterer  <paroga@webkit.org>
43855
43856         Build fix for WinCE after r131365.
43857
43858         * platform/graphics/GlyphBuffer.h:
43859         (WebCore::GlyphBufferAdvance::width):
43860         * platform/graphics/wince/FontWinCE.cpp:
43861         (WebCore::cursorToX):
43862         * platform/graphics/wince/GraphicsContextWinCE.cpp:
43863         (WebCore::GraphicsContext::drawText):
43864
43865 2012-10-17  Mike West  <mkwst@chromium.org>
43866
43867         V8 should throw a more descriptive exception when blocking 'eval' via CSP.
43868         https://bugs.webkit.org/show_bug.cgi?id=94332
43869
43870         Reviewed by Adam Barth.
43871
43872         Following up on https://bugs.webkit.org/show_bug.cgi?id=94331, this
43873         patch wires up the new error message mechanism to V8, and updates the
43874         Chromium test expectations accordingly.
43875
43876         * bindings/v8/ScriptController.cpp:
43877         (WebCore::ScriptController::disableEval):
43878             Pass 'errorMessage' through to V8.
43879         * bindings/v8/V8DOMWindowShell.cpp:
43880         (WebCore::V8DOMWindowShell::initializeIfNeeded):
43881             Grab the error message from ContentSecurityPolicy, and pass it
43882             through to V8.
43883         * bindings/v8/WorkerContextExecutionProxy.cpp:
43884         (WebCore::WorkerContextExecutionProxy::WorkerContextExecutionProxy):
43885         (WebCore::WorkerContextExecutionProxy::evaluate):
43886         (WebCore::WorkerContextExecutionProxy::setEvalAllowed):
43887         * bindings/v8/WorkerContextExecutionProxy.h:
43888         (WorkerContextExecutionProxy):
43889             Convert 'm_disableEvalPending' to a string to store the current
43890             error message, and use it to set the eval state.
43891         * bindings/v8/WorkerScriptController.cpp:
43892         (WebCore::WorkerScriptController::disableEval):
43893             Pass 'errorMessage' through to V8.
43894
43895 2012-10-17  MORITA Hajime  <morrita@google.com>
43896
43897         Assertion failed on HTMLFormControlElement.cpp: updateFromElementCallback()
43898         https://bugs.webkit.org/show_bug.cgi?id=99566
43899
43900         Reviewed by Kent Tamura.
43901
43902         It had a too optimistic assertion. This change removes it.
43903
43904         Test: fast/forms/textarea/textarea-autofocus-removal-while-focusing.html
43905
43906         * html/HTMLFormControlElement.cpp:
43907         (WebCore::updateFromElementCallback):
43908
43909 2012-10-17  Vsevolod Vlasov  <vsevik@chromium.org>
43910
43911         Web Inspector: When dirty uiSourceCode is saved to disk from scripts navigator context menu working copy is not committed.
43912         https://bugs.webkit.org/show_bug.cgi?id=99555
43913
43914         Reviewed by Yury Semikhatsky.
43915
43916         Save As context menu handler now commits working copy for dirty UISourceCodes.
43917
43918         * inspector/front-end/HandlerRegistry.js:
43919
43920 2012-10-17  Vsevolod Vlasov  <vsevik@chromium.org>
43921
43922         Web Inspector: Stylesheets saved with FileManager are not saved to disk when edited from Elements panel.
43923         https://bugs.webkit.org/show_bug.cgi?id=99554
43924
43925         Reviewed by Yury Semikhatsky.
43926
43927         Moved saving to disk from SourceFrame to UISourceCode.
43928
43929         * inspector/front-end/SourceFrame.js:
43930         (WebInspector.SourceFrame.prototype._commitEditing):
43931         * inspector/front-end/UISourceCode.js:
43932         (WebInspector.UISourceCode.prototype._commitContent):
43933
43934 2012-10-17  Vsevolod Vlasov  <vsevik@chromium.org>
43935
43936         Web Inspector: [Regression] SASS sources are not saved to disk.
43937         https://bugs.webkit.org/show_bug.cgi?id=99551
43938
43939         Reviewed by Yury Semikhatsky.
43940
43941         Added resource null checks.
43942
43943         * inspector/front-end/StylesSourceMapping.js:
43944         (WebInspector.StylesSourceMapping.prototype._uiSourceCodeAddedToWorkspace):
43945
43946 2012-10-17  Elliott Sprehn  <esprehn@chromium.org>
43947
43948         Clean up ContentData operator overloads
43949         https://bugs.webkit.org/show_bug.cgi?id=99556
43950
43951         Reviewed by Eric Seidel.
43952
43953         Use virtual dispatch for checking ContentData equality instead
43954         of a switch over the type. This the first step in getting rid
43955         of the StyleContentType enum and all the switch statements over
43956         the type().
43957
43958         No tests needed, this is just a refactor.        
43959
43960         * rendering/style/ContentData.cpp:
43961         * rendering/style/ContentData.h:
43962         (ContentData):
43963         (WebCore::operator==):
43964         (WebCore):
43965         (WebCore::operator!=):
43966
43967 2012-10-17  Gabor Rapcsanyi  <rgabor@webkit.org>
43968
43969         NEON intrinsics Gauss filter does not work properly
43970         https://bugs.webkit.org/show_bug.cgi?id=98875
43971
43972         Reviewed by Zoltan Herczeg.
43973
43974         Fixing the NEON intrinsics Gauss filter. The stride parameter
43975         was missing from the intrinsics algorithm. Tested with pixel
43976         checks, now it's working properly.
43977
43978         * platform/graphics/filters/arm/FEGaussianBlurNEON.h:
43979         (WebCore::boxBlurNEON):
43980
43981 2012-10-17  MORITA Hajime  <morrita@google.com>
43982
43983         Crash on Frame::inScope() part 2
43984         https://bugs.webkit.org/show_bug.cgi?id=99543
43985
43986         Reviewed by Kent Tamura.
43987
43988         FrameTree::scopedChildCount() can be called even when the one of child frames
43989         is in orphan state. This change added a guard for that case.
43990
43991         No new tests. A hard-to-test timing issue.
43992
43993         * page/Frame.cpp:
43994         (WebCore::Frame::inScope):
43995
43996 2012-10-17  Shinya Kawanaka  <shinyak@chromium.org>
43997
43998         Remove shadowAncestorNode() from VisibleSelection
43999         https://bugs.webkit.org/show_bug.cgi?id=99544
44000
44001         Reviewed by Hajime Morita.
44002
44003         An effort to replace shadowAncestorNode() with shadowHost(), since shadowAncestorNode() is now deprecated.
44004
44005         No new tests, no change in behavior.
44006
44007         * editing/VisibleSelection.cpp:
44008         (WebCore::VisibleSelection::adjustSelectionToAvoidCrossingEditingBoundaries): Since shadowHost() returns 0 if
44009         an element is not in shadowRoot, it's ok to compare shadowAncestor to 0.
44010
44011 2012-10-17  Douglas Stockwell  <dstockwell@chromium.org>
44012
44013         Content of replaced elements should be trimmed to the content edge curve.
44014         https://bugs.webkit.org/show_bug.cgi?id=63899
44015
44016         Reviewed by Simon Fraser.
44017
44018         When a border-radius is specified the content of replaced elements needs to be clipped to avoid
44019         being painted over the padding or border in the corners. Previously the clip that was applied
44020         was set to the border-edge curve, this patch contracts the clip by the size of the border and
44021         padding (the content-edge curve) to match the css3 spec.
44022         Spec: http://www.w3.org/TR/css3-background/#corner-clipping
44023
44024         Test: fast/replaced/border-radius-clip-content-edge.html
44025
44026         * rendering/RenderBoxModelObject.h:
44027         (RenderBoxModelObject):
44028         * rendering/RenderReplaced.cpp:
44029         (WebCore::RenderReplaced::paint):
44030         * rendering/RenderWidget.cpp:
44031         (WebCore::RenderWidget::paint):
44032
44033 2012-10-17  Kunihiko Sakamoto  <ksakamoto@chromium.org>
44034
44035         The HTML5 formtarget/formaction/formenctyp/formmethod/formnovalidate attributes don't work in button tags with nested elements
44036         https://bugs.webkit.org/show_bug.cgi?id=90539
44037
44038         Reviewed by Kent Tamura.
44039
44040         Fix a bug where form(action|enctype|method|target) attributes of <button> are not
44041         honored if the target of the click event is an element nested within the button.
44042
44043         Test: fast/forms/formaction-attribute.html
44044
44045         * loader/FormSubmission.cpp:
44046         (WebCore::FormSubmission::create): Looks for the attributes for form submission
44047         from the nearest FormControlElement ancestor of the event target.
44048
44049 2012-10-16  MORITA Hajime  <morrita@google.com>
44050
44051         [Shadow DOM][V8] WebCore::V8DOMWindow::installPerContextProperties() is slow when shadowDOMEnabled flag is on.
44052         https://bugs.webkit.org/show_bug.cgi?id=99428
44053
44054         Reviewed by Adam Barth.
44055
44056         A benchmark unveiled that installPerContextProperties() could have made DOMWindow setup slower when
44057         - Some properties are added per-context basis by turnin the flag on and
44058         - There are bunch of DOMWindow object in the page (that is, there are many iframes.)
44059
44060         This change eliminates Shadow DOM related per-context properties from DOMWindow for getting rid of that slowness.
44061
44062         * dom/ContextFeatures.cpp:
44063         * dom/ContextFeatures.h: Removed shadowDOMEnabled() method and related enum entry.
44064         * dom/Position.cpp:
44065         (WebCore::Position::Position):
44066         (WebCore::Position::findParent):
44067         * dom/TreeScope.cpp:
44068         (WebCore::TreeScope::getSelection):
44069         * dom/make_names.pl: Re-introduced "runtimeConditional" directive.
44070         (defaultTagPropertyHash):
44071         (printConstructorInterior):
44072         (printFactoryCppFile):
44073         (printWrapperFunctions):
44074         (printWrapperFactoryCppFile):
44075         * html/HTMLTagNames.in:
44076         * html/shadow/HTMLContentElement.cpp:
44077         (WebCore::contentTagName):
44078         * page/DOMWindow.idl:
44079
44080 2012-10-16  Julien Chaffraix  <jchaffraix@webkit.org>
44081
44082         Make RenderObject destruction during detach a top-down operation
44083         https://bugs.webkit.org/show_bug.cgi?id=98336
44084
44085         Reviewed by Eric Seidel.
44086
44087         detach() is a DOM-driven operation that destroys the renderers bottom-up.
44088         While this is correct, it causes extra-work to be done (tree cleaning, ...)
44089         as it doesn't know about the render tree's structure.
44090
44091         The render tree on the other side already supports top-down operations
44092         but it was overriden by the DOM side of detach.
44093
44094         This change only makes ContainerNode::detach do a top-down render tree
44095         destruction. This is a required step towards doing smarter destruction.
44096
44097         Refactoring covered by existing tests.
44098
44099         * dom/ContainerNode.cpp:
44100         (WebCore::ContainerNode::detach):
44101         Changed the method to do a top-down destruction.
44102
44103         * dom/Node.cpp:
44104         (WebCore::Node::detach):
44105         Added this ASSERT that ensures that we have properly cleaned up the
44106         whole DOM subtree. The only exception is child content belonging to a
44107         flow-thread as the code will shuffle the renderers under the flow-thread.
44108
44109         * rendering/RenderObject.cpp:
44110         (WebCore::RenderObject::willBeDestroyed):
44111         As we don't update the node's renderer on the DOM side, do it here.
44112         The upside is that it ensures that we don't left any stray renderer
44113         in the tree.
44114
44115         * rendering/RenderObjectChildList.cpp:
44116         (WebCore::RenderObjectChildList::destroyLeftoverChildren):
44117         Removed the calls to setRenderer as they are redundant with what we do
44118         in willBeDestroyed.
44119
44120         * rendering/RenderTextFragment.cpp:
44121         (WebCore::RenderTextFragment::setText):
44122         Removed some now unneeded code, replaced by an ASSERT. This is because
44123         destroying m_firstLetter would automatically reset the node's renderer
44124         in destroyLeftoverChildren.
44125
44126 2012-10-16  Joseph Pecoraro  <pecoraro@apple.com>
44127
44128         HTMLSelectElement::optionSelectedByUser confuses listIndex and optionIndex
44129         https://bugs.webkit.org/show_bug.cgi?id=99523
44130
44131         Reviewed by Simon Fraser.
44132
44133         There was a call site where the optionIndex was being passed to a
44134         function that expected the listIndex. Convert appropriately.
44135
44136         Extends Test: platform/mac/fast/objc/dom-html-select-activate.html
44137
44138         * html/HTMLSelectElement.cpp:
44139         (WebCore::HTMLSelectElement::optionSelectedByUser):
44140
44141 2012-10-16  Jian Li  <jianli@chromium.org>
44142
44143         Rename feature define ENABLE_WIDGET_REGION to ENABLE_DRAGGBALE_REGION
44144         https://bugs.webkit.org/show_bug.cgi?id=98975
44145
44146         Reviewed by Adam Barth.
44147
44148         Renaming is needed to better match with the draggable region code.
44149
44150         No new tests due to no functional change.
44151
44152         * Configurations/FeatureDefines.xcconfig:
44153         * DerivedSources.make:
44154         * WebCore.exp.in:
44155         * css/CSSComputedStyleDeclaration.cpp:
44156         (WebCore):
44157         (WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue):
44158         * css/CSSParser.cpp:
44159         (WebCore::CSSParser::parseValue):
44160         * css/CSSProperty.cpp:
44161         (WebCore::CSSProperty::isInheritedProperty):
44162         * css/CSSPropertyNames.in:
44163         * css/CSSValueKeywords.in:
44164         * css/StyleResolver.cpp:
44165         (WebCore::StyleResolver::applyProperty):
44166         * dom/Document.cpp:
44167         (WebCore::Document::Document):
44168         (WebCore):
44169         (WebCore::Document::reportMemoryUsage):
44170         * dom/Document.h:
44171         (WebCore):
44172         (Document):
44173         * page/Chrome.cpp:
44174         (WebCore):
44175         * page/ChromeClient.h:
44176         (ChromeClient):
44177         * page/FrameView.cpp:
44178         (WebCore::FrameView::layout):
44179         (WebCore):
44180         (WebCore::FrameView::paintContents):
44181         * page/FrameView.h:
44182         (FrameView):
44183         * rendering/RenderInline.cpp:
44184         (WebCore):
44185         (WebCore::RenderInline::addAnnotatedRegions):
44186         * rendering/RenderInline.h:
44187         (RenderInline):
44188         * rendering/RenderLayer.cpp:
44189         (WebCore::RenderLayer::scrollTo):
44190         (WebCore::RenderLayer::setHasHorizontalScrollbar):
44191         (WebCore::RenderLayer::setHasVerticalScrollbar):
44192         (WebCore::RenderLayer::updateScrollbarsAfterLayout):
44193         * rendering/RenderListBox.cpp:
44194         (WebCore::RenderListBox::setHasVerticalScrollbar):
44195         * rendering/RenderObject.cpp:
44196         (WebCore::RenderObject::styleWillChange):
44197         (WebCore):
44198         (WebCore::RenderObject::addAnnotatedRegions):
44199         * rendering/RenderObject.h:
44200         (WebCore::AnnotatedRegionValue::operator==):
44201         (AnnotatedRegionValue):
44202         (RenderObject):
44203         * rendering/style/RenderStyle.h:
44204         * rendering/style/RenderStyleConstants.h:
44205         * rendering/style/StyleRareNonInheritedData.cpp:
44206         (WebCore::StyleRareNonInheritedData::StyleRareNonInheritedData):
44207         (WebCore::StyleRareNonInheritedData::operator==):
44208         * rendering/style/StyleRareNonInheritedData.h:
44209         (StyleRareNonInheritedData):
44210
44211 2012-10-16  James Simonsen  <simonjam@chromium.org>
44212
44213         [Page Visibility API] View-less documents should report as hidden
44214         https://bugs.webkit.org/show_bug.cgi?id=99410
44215
44216         Reviewed by Tony Gentilcore.
44217
44218         Test: fast/events/page-visibility-null-view.html
44219
44220         * dom/Document.cpp:
44221         (WebCore::Document::visibilityState):
44222
44223 2012-10-16  Michael Saboff  <msaboff@apple.com>
44224
44225         Change WTF_USE_8BIT_TEXTRUN to ENABLE_8BIT_TEXTRUN
44226         https://bugs.webkit.org/show_bug.cgi?id=99484
44227
44228         Reviewed by Eric Seidel.
44229
44230         Changed macro name to align with it's purpose, therefore changed USE(8BIT_TEXTRUN) to ENABLE(8BIT_TEXTRUN).
44231
44232         No new tests.  Changed macro name, no functional change.
44233
44234         * platform/graphics/TextRun.h:
44235         (WebCore::TextRun::TextRun):
44236         (WebCore::TextRun::subRun):
44237         * rendering/RenderBlock.cpp:
44238         (WebCore::RenderBlock::constructTextRun):
44239         * rendering/RenderBlock.h:
44240         (RenderBlock):
44241
44242 2012-10-16  Noam Rosenthal  <noam.rosenthal@nokia.com>
44243
44244         [Qt] REGRESSION(r131485): It broke the build
44245         https://bugs.webkit.org/show_bug.cgi?id=99499
44246
44247         Unreviewed build (warning) fix.
44248
44249         * platform/graphics/texmap/TextureMapperShaderManager.cpp:
44250         (WebCore::TextureMapperShaderProgram::getLocation):
44251
44252 2012-10-16  David Grogan  <dgrogan@chromium.org>
44253
44254         Inspector: Don't fire assert when inspecting an empty db
44255         https://bugs.webkit.org/show_bug.cgi?id=99370
44256
44257         Reviewed by Vsevolod Vlasov.
44258
44259         * inspector/InspectorIndexedDBAgent.cpp:
44260         (WebCore):
44261
44262 2012-10-16  Tony Chang  <tony@chromium.org>
44263
44264         Unreviewed, try to fix the Apple Win build by forcing a rebuild of RenderingAllInOne.cpp.
44265
44266         * rendering/RenderingAllInOne.cpp:
44267
44268 2012-10-16  Andrew Scherkus  <scherkus@chromium.org>
44269
44270         Fix crash in WebCore::MediaControlPanelElement::makeTransparent()
44271         https://bugs.webkit.org/show_bug.cgi?id=97951
44272
44273         Reviewed by Simon Fraser.
44274
44275         No new tests as it's a speculative fix based on crash dump analysis.
44276      
44277         Despite MediaControlPanelElement checking for document()->page() nullity in other places, it forgot one check in makeTransparent().
44278
44279         * html/shadow/MediaControlElements.cpp:
44280         (WebCore::MediaControlPanelElement::makeTransparent):
44281
44282 2012-10-16  Emil A Eklund  <eae@chromium.org>
44283
44284         Remove special-case flooring of baselinePosition for replaced elements in InlineFlowBox::placeBoxesInBlockDirection
44285         https://bugs.webkit.org/show_bug.cgi?id=99376
44286
44287         Reviewed by Levi Weintraub.
44288
44289         In r122769 (bug 91410) we added a special-case handling for
44290         replaced elements in InlineFlowBox::placeBoxesInBlockDirection
44291         to work around positioning issues in a couple of svg tests.
44292         This was needed to compensate for a workaround in the table
44293         painting code that was fixed in r131358 (bug 99364). As such the
44294         special-case handling for replaced elements is no longer needed
44295         in InlineFlowBox::placeBoxesInBlockDirection.
44296
44297         Furthermore this caused problems with caret repainting leaving
44298         residual pixels which motivated this change.
44299
44300         No new tests, have not been able to write a repaint test to
44301         demonstrate the caret repaint issue.
44302
44303         * rendering/InlineFlowBox.cpp:
44304         (WebCore::InlineFlowBox::placeBoxesInBlockDirection):
44305
44306 2012-10-16  Simon Fraser  <simon.fraser@apple.com>
44307
44308         Some #include hygiene
44309         https://bugs.webkit.org/show_bug.cgi?id=99500
44310
44311         Reviewed by Tony Chang.
44312
44313         Clean up some #includes, mostly related to GraphicsLayer.h. In many
44314         cases this can be replaced by PlatformLayer.h.
44315         
44316         Remove an #include of PluginViewBase.h from Page.h, which was a source
44317         of #include fan-out.
44318
44319         * html/canvas/CanvasRenderingContext2D.h:
44320         * page/Page.h:
44321         * page/scrolling/ScrollingCoordinator.h:
44322         * page/scrolling/ScrollingStateNode.h:
44323         * page/scrolling/mac/ScrollingStateNodeMac.mm:
44324         * platform/graphics/GraphicsContext3D.h:
44325         * platform/graphics/MediaPlayer.h:
44326         * platform/graphics/avfoundation/MediaPlayerPrivateAVFoundation.cpp:
44327         * platform/graphics/gpu/DrawingBuffer.h:
44328         * platform/graphics/mac/MediaPlayerPrivateQTKit.mm:
44329         * plugins/PluginViewBase.h:
44330
44331 2012-10-16  Adam Barth  <abarth@webkit.org>
44332
44333         Document::adoptNode shouldn't special-case <iframe>
44334         https://bugs.webkit.org/show_bug.cgi?id=99247
44335
44336         Reviewed by Ryosuke Niwa.
44337
44338         The special case was added in http://trac.webkit.org/changeset/75293 to
44339         fix a bug with magic iframes. Originally, I planned to remove this
44340         special case, but further investigation reveals that other browsers
44341         throw exceptions for other frame owner elements as well. Now we treat
44342         all frame owner elements the same way.
44343
44344         Test: fast/frames/adopt-object-into-itself.html
44345
44346         * dom/Document.cpp:
44347         (WebCore::Document::adoptNode):
44348
44349 2012-10-16  Dominik Röttsches  <dominik.rottsches@intel.com>
44350
44351         Init timeout flag in ResourceErrorMac
44352         https://bugs.webkit.org/show_bug.cgi?id=99478
44353
44354         Reviewed by Alexey Proskuryakov.
44355
44356         On construction from platform error types, initialize the timeout flag 
44357         to true if the error results from a timeout.
44358
44359         No new tests, covered by tests that will be added in bug 74802.
44360
44361         * platform/network/mac/ResourceErrorMac.mm:
44362         (WebCore::ResourceError::platformLazyInit): Initializing timeout flag if the error was a timeout.
44363
44364 2012-10-16  Tony Chang  <tony@chromium.org>
44365
44366         input[type=range] as a flex item renders thumb at wrong position
44367         https://bugs.webkit.org/show_bug.cgi?id=98666
44368
44369         Reviewed by Ojan Vafai.
44370
44371         Replace RenderSlider implementation with new flexbox and clean up the shadow DOM.
44372         The previous code was trying to set the height to 100% and had a bunch of hacks in
44373         the renderer code to set an explicit height. Using the new flexbox allows us to
44374         remove these renderer hacks.
44375
44376         Test: css3/flexbox/flexitem-stretch-range.html
44377
44378         * css/html.css:
44379         (input[type="range"]::-webkit-slider-container, input[type="range"]::-webkit-media-slider-container): Use new flexbox.
44380         (input[type="range"]::-webkit-slider-runnable-track): Use new flexbox.
44381         (input[type="range"]::-webkit-slider-thumb, input[type="range"]::-webkit-media-slider-thumb): Remove relative positioning since we're
44382         no longer setting top/left in the layout code.
44383         * css/mediaControlsChromium.css: Remove redundant styles and bottom: 1px hack.
44384         * css/mediaControlsChromiumAndroid.css: Remove redundant styles and bottom: 1px hack.
44385         * html/RangeInputType.cpp:
44386         (WebCore::RangeInputType::listAttributeTargetChanged): We need to force a layout
44387         since the height of the control should change when adding/removing a datalist.
44388         * html/shadow/SliderThumbElement.cpp:
44389         (WebCore::RenderSliderContainer::RenderSliderContainer): Use new flexbox.
44390         (WebCore::RenderSliderContainer::computeLogicalHeight): Rather than setting style()->height() in layout, just compute the correct
44391         height when asked.  If we have a datalist, we increase the height (same code as before).  If we're vertical,
44392         we use the intrinsic size.
44393         (WebCore::RenderSliderContainer::layout): Remove extra layout code, but handle the position of the thumb.
44394         This used to be handled in the thumb's layout method, but I deleted that.
44395         * html/shadow/SliderThumbElement.h:
44396         * rendering/RenderSlider.cpp:
44397         (WebCore::RenderSlider::RenderSlider): Use new flexbox.
44398         (WebCore::RenderSlider::layout): Set the limiter size to the size of the thumb. This is necessary
44399         for fast/css/unknown-pseudo-element-matching.html which tries to set the height of the thumb to 1px
44400         and expects the input to also have a height of 1px.  It worked before because the height of the input
44401         didn't depend on the height of its children.
44402         * rendering/RenderSlider.h: Fix indentation.
44403         (RenderSlider): Use new flexible box.
44404
44405 2012-10-16  Dima Gorbik  <dgorbik@apple.com>
44406
44407         Remove Platform.h include from the header files.
44408         https://bugs.webkit.org/show_bug.cgi?id=98665
44409
44410         Reviewed by Eric Seidel.
44411
44412         We don't want other clients that include WebKit headers to know about Platform.h.
44413
44414         No new tests.
44415
44416         * platform/MemoryPressureHandler.h:
44417         * platform/graphics/filters/arm/FECompositeArithmeticNEON.h:
44418         * platform/graphics/filters/arm/FEGaussianBlurNEON.h:
44419         * platform/graphics/filters/arm/FELightingNEON.h:
44420
44421 2012-10-16  Xianzhu Wang  <wangxianzhu@chromium.org>
44422
44423         [Chromium] Android: Need a way to get appropriate font for some specific characters.
44424         https://bugs.webkit.org/show_bug.cgi?id=67587
44425
44426         Reviewed by Adam Barth.
44427
44428         Use the new Skia API SkGetFallbackFamilyNameForChar() to get the family name for individual characters.
44429
44430         No new tests. The following existing tests pass with the change:
44431         fast/writing-mode/vertical-subst-font-vert-no-dflt.html
44432         fast/dynamic/text-combine.html
44433         fast/writing-mode/japanese-rl-text.html
44434         fast/writing-mode/japanese-rl-selection.html
44435         fast/writing-mode/japanese-lr-text.html
44436         fast/repaint/japanese-rl-selection-repaint.html
44437         fast/writing-mode/border-vertical-lr.html
44438
44439         * platform/graphics/chromium/FontCacheAndroid.cpp:
44440         (WebCore::FontCache::getFontDataForCharacters):
44441
44442 2012-10-16  Tommy Widenflycht  <tommyw@google.com>
44443
44444         MediaStream API: Add the chromium API for RTCDataChannel
44445         https://bugs.webkit.org/show_bug.cgi?id=99435
44446
44447         Reviewed by Adam Barth.
44448
44449         Adding WebRTCDataChannel.
44450
44451         Test: fast/mediastream/RTCPeerConnection-datachannel.html
44452
44453         * WebCore.gypi:
44454         * platform/chromium/support/WebRTCDataChannel.cpp: Added.
44455         (WebKit):
44456         (ExtraDataContainer):
44457         (WebKit::ExtraDataContainer::ExtraDataContainer):
44458         (WebKit::ExtraDataContainer::extraData):
44459         (WebKit::WebRTCDataChannel::WebRTCDataChannel):
44460         (WebKit::WebRTCDataChannel::initialize):
44461         (WebKit::WebRTCDataChannel::assign):
44462         (WebKit::WebRTCDataChannel::reset):
44463         (WebKit::WebRTCDataChannel::operator PassRefPtr<WebCore::RTCDataChannelDescriptor>):
44464         (WebKit::WebRTCDataChannel::operator WebCore::RTCDataChannelDescriptor*):
44465         (WebKit::WebRTCDataChannel::extraData):
44466         (WebKit::WebRTCDataChannel::setExtraData):
44467         (WebKit::WebRTCDataChannel::label):
44468         (WebKit::WebRTCDataChannel::reliable):
44469         (WebKit::WebRTCDataChannel::setBufferedAmount):
44470         (WebKit::WebRTCDataChannel::readyStateChanged):
44471         (WebKit::WebRTCDataChannel::dataArrived):
44472         (WebKit::WebRTCDataChannel::error):
44473         * platform/mediastream/chromium/RTCPeerConnectionHandlerChromium.cpp:
44474         (WebCore::RTCPeerConnectionHandlerChromium::negotiationNeeded):
44475         (WebCore::RTCPeerConnectionHandlerChromium::didGenerateICECandidate):
44476         (WebCore):
44477         (WebCore::RTCPeerConnectionHandlerChromium::didChangeReadyState):
44478         (WebCore::RTCPeerConnectionHandlerChromium::didChangeICEState):
44479         (WebCore::RTCPeerConnectionHandlerChromium::didRemoveRemoteStream):
44480
44481 2012-10-16  Brady Eidson  <beidson@apple.com>
44482
44483         Update indentation in *ResourceLoader headers to match modern WebKit style
44484         https://bugs.webkit.org/show_bug.cgi?id=99487
44485
44486         Reviewed by Beth Dakin.
44487
44488         I'm going to be working on these classes and the indentation is driving me crazy.
44489
44490         * loader/MainResourceLoader.h:
44491         (WebCore):
44492         (MainResourceLoader):
44493         (WebCore::MainResourceLoader::isLoadingMultipartContent):
44494
44495         * loader/NetscapePlugInStreamLoader.h:
44496         (WebCore):
44497         (NetscapePlugInStreamLoaderClient):
44498         (WebCore::NetscapePlugInStreamLoaderClient::didFinishLoading):
44499         (WebCore::NetscapePlugInStreamLoaderClient::wantsAllStreams):
44500         (WebCore::NetscapePlugInStreamLoaderClient::~NetscapePlugInStreamLoaderClient):
44501         (NetscapePlugInStreamLoader):
44502
44503         * loader/ResourceLoader.h:
44504         (WebCore):
44505         (ResourceLoader):
44506         (WebCore::ResourceLoader::documentLoader):
44507         (WebCore::ResourceLoader::originalRequest):
44508         (WebCore::ResourceLoader::identifier):
44509         (WebCore::ResourceLoader::didReceiveCachedMetadata):
44510         (WebCore::ResourceLoader::willStopBufferingData):
44511         (WebCore::ResourceLoader::shouldUseCredentialStorage):
44512         (WebCore::ResourceLoader::didReceiveAuthenticationChallenge):
44513         (WebCore::ResourceLoader::didCancelAuthenticationChallenge):
44514         (WebCore::ResourceLoader::canAuthenticateAgainstProtectionSpace):
44515         (WebCore::ResourceLoader::receivedCancellation):
44516         (WebCore::ResourceLoader::url):
44517         (WebCore::ResourceLoader::handle):
44518         (WebCore::ResourceLoader::sendResourceLoadCallbacks):
44519         (WebCore::ResourceLoader::reachedTerminalState):
44520         (WebCore::ResourceLoader::request):
44521         (WebCore::ResourceLoader::cancelled):
44522         (WebCore::ResourceLoader::defersLoading):
44523
44524 2012-10-16  Beth Dakin  <bdakin@apple.com>
44525
44526         https://bugs.webkit.org/show_bug.cgi?id=99254
44527         Make ScrollingTree an actual tree of nodes, and have it reflect the 
44528         ScrollingStateTree
44529
44530         Reviewed by Simon Fraser.
44531
44532         This patch finally makes the ScrollingTree over on the 
44533         ScrollingThread aware of the changes that we have been making to the 
44534         ScrollingStateTree.
44535
44536         First, it makes ScrollingTreeNode a much more generic class, similar 
44537         to ScrollingStateNode. It is an abstract class and we will add other 
44538         types of nodes such as ScrollingTreeFixedNodes that will inherit from 
44539         this class. 
44540
44541         All of the scrolling functionality that was in ScrollingTreeNode has 
44542         been moved to ScrollingTreeScrollingNode. And likewise, 
44543         ScrollingTreeNodeMac has been re-named to 
44544         ScrollingTreeScrollingNodeMac. 
44545
44546         And finally, instead of just updating and creating the root node, 
44547         ScrollingTree now recurses through the whole ScrollingStateTree to 
44548         create and update a full tree of nodes.
44549
44550         New files and moves files.
44551         * WebCore.xcodeproj/project.pbxproj:
44552
44553         Add a getter for the children vector since we need to recurse it in 
44554         ScrollingTree.
44555         * page/scrolling/ScrollingStateNode.h:
44556         (WebCore::ScrollingStateNode::children):
44557         (ScrollingStateNode):
44558
44559         m_rootNode is now a ScrollingTreeScrollingNode.
44560         * page/scrolling/ScrollingTree.cpp:
44561         (WebCore::ScrollingTree::ScrollingTree):
44562
44563         Instead of just updating the root node, call two new functions that 
44564         will take care of updating the whole tree.
44565         (WebCore::ScrollingTree::commitNewTreeState):
44566
44567         This function ecurses through the ScrollingStateTree and updates the 
44568         corresponding ScrollingTreeNodes.
44569         (WebCore::ScrollingTree::updateNodesFromStateNode):
44570
44571         This function takes the ScrollingStateTree's list of removed nodes 
44572         and removes the corresponding nodes from the ScrollingTree. It will 
44573         destroy the nodes after removing it as long as it's not the root 
44574         node. I think it's the safest choice for now to never remove the root 
44575         node. 
44576         (WebCore::ScrollingTree::removeDestroyedNodes):
44577
44578         ScrollingTree now keeps a HashMap mapping ScrollingNodeIDs to 
44579         ScrollingTreeNodes.
44580         * page/scrolling/ScrollingTree.h:
44581
44582         All of the scrolling-related functionality has been moved from this 
44583         class to new class ScrollingTreeScrollingNode. And some basic tree 
44584         traversal functionality has been added.
44585         * page/scrolling/ScrollingTreeNode.cpp:
44586         (WebCore::ScrollingTreeNode::ScrollingTreeNode):
44587         (WebCore::ScrollingTreeNode::appendChild):
44588         (WebCore::ScrollingTreeNode::removeChild):
44589         * page/scrolling/ScrollingTreeNode.h:
44590         (WebCore):
44591         (ScrollingTreeNode):
44592         (WebCore::ScrollingTreeNode::scrollingNodeID):
44593         (WebCore::ScrollingTreeNode::setScrollingNodeID):
44594         (WebCore::ScrollingTreeNode::parent):
44595         (WebCore::ScrollingTreeNode::setParent):
44596         (WebCore::ScrollingTreeNode::scrollingTree):
44597
44598         This class contains all of the scrolling-related work that used to be 
44599         done in ScrollingTreeNode.
44600         * page/scrolling/ScrollingTreeScrollingNode.cpp: Added.
44601         (WebCore):
44602         (WebCore::ScrollingTreeScrollingNode::ScrollingTreeScrollingNode):
44603         (WebCore::ScrollingTreeScrollingNode::~ScrollingTreeScrollingNode):
44604         (WebCore::ScrollingTreeScrollingNode::update):
44605         * page/scrolling/ScrollingTreeScrollingNode.h: Added.
44606         (WebCore):
44607         (ScrollingTreeScrollingNode):
44608         (WebCore::ScrollingTreeScrollingNode::shouldUpdateScrollLayerPositionOnMainThread):
44609         (WebCore::ScrollingTreeScrollingNode::viewportRect):
44610         (WebCore::ScrollingTreeScrollingNode::contentsSize):
44611         (WebCore::ScrollingTreeScrollingNode::horizontalScrollElasticity):
44612         (WebCore::ScrollingTreeScrollingNode::verticalScrollElasticity):
44613         (WebCore::ScrollingTreeScrollingNode::hasEnabledHorizontalScrollbar):
44614         (WebCore::ScrollingTreeScrollingNode::hasEnabledVerticalScrollbar):
44615         (WebCore::ScrollingTreeScrollingNode::canHaveScrollbars):
44616         (WebCore::ScrollingTreeScrollingNode::scrollOrigin):
44617
44618         I noticed this whitespace error and had to fix it.
44619         * page/scrolling/mac/ScrollingCoordinatorMac.mm:
44620         (WebCore::ScrollingCoordinatorMac::detachFromStateTree):
44621
44622         Include ScrollingTreeScrollingNodeMac.h instead of 
44623         ScrollingTreeNodeMac.h
44624         * page/scrolling/mac/ScrollingTreeMac.mm:
44625
44626         This class was just re-named.
44627         * page/scrolling/mac/ScrollingTreeNodeMac.h: Removed.
44628         * page/scrolling/mac/ScrollingTreeNodeMac.mm: Removed.
44629         * page/scrolling/mac/ScrollingTreeScrollingNodeMac.h: Copied from page/scrolling/mac/ScrollingTreeNodeMac.h.
44630         (ScrollingTreeScrollingNodeMac):
44631         * page/scrolling/mac/ScrollingTreeScrollingNodeMac.mm: Copied from page/scrolling/mac/ScrollingTreeNodeMac.mm.
44632         (WebCore::ScrollingTreeScrollingNode::create):
44633         (WebCore::ScrollingTreeScrollingNodeMac::ScrollingTreeScrollingNodeMac):
44634         (WebCore::ScrollingTreeScrollingNodeMac::~ScrollingTreeScrollingNodeMac):
44635         (WebCore::ScrollingTreeScrollingNodeMac::update):
44636         (WebCore::ScrollingTreeScrollingNodeMac::handleWheelEvent):
44637         (WebCore::ScrollingTreeScrollingNodeMac::allowsHorizontalStretching):
44638         (WebCore::ScrollingTreeScrollingNodeMac::allowsVerticalStretching):
44639         (WebCore::ScrollingTreeScrollingNodeMac::stretchAmount):
44640         (WebCore::ScrollingTreeScrollingNodeMac::pinnedInDirection):
44641         (WebCore::ScrollingTreeScrollingNodeMac::canScrollHorizontally):
44642         (WebCore::ScrollingTreeScrollingNodeMac::canScrollVertically):
44643         (WebCore::ScrollingTreeScrollingNodeMac::shouldRubberBandInDirection):
44644         (WebCore::ScrollingTreeScrollingNodeMac::absoluteScrollPosition):
44645         (WebCore::ScrollingTreeScrollingNodeMac::immediateScrollBy):
44646         (WebCore::ScrollingTreeScrollingNodeMac::immediateScrollByWithoutContentEdgeConstraints):
44647         (WebCore::ScrollingTreeScrollingNodeMac::startSnapRubberbandTimer):
44648         (WebCore::ScrollingTreeScrollingNodeMac::stopSnapRubberbandTimer):
44649         (WebCore::ScrollingTreeScrollingNodeMac::scrollPosition):
44650         (WebCore::ScrollingTreeScrollingNodeMac::setScrollPosition):
44651         (WebCore::ScrollingTreeScrollingNodeMac::setScrollPositionWithoutContentEdgeConstraints):
44652         (WebCore::ScrollingTreeScrollingNodeMac::setScrollLayerPosition):
44653         (WebCore::ScrollingTreeScrollingNodeMac::minimumScrollPosition):
44654         (WebCore::ScrollingTreeScrollingNodeMac::maximumScrollPosition):
44655         (WebCore::ScrollingTreeScrollingNodeMac::scrollBy):
44656         (WebCore::ScrollingTreeScrollingNodeMac::scrollByWithoutContentEdgeConstraints):
44657         (WebCore::ScrollingTreeScrollingNodeMac::updateMainFramePinState):
44658         (WebCore::ScrollingTreeScrollingNodeMac::logExposedUnfilledArea):
44659
44660 2012-10-16  Simon Fraser  <simon.fraser@apple.com>
44661
44662         Add a new layer type for the page tiled cache layer
44663         https://bugs.webkit.org/show_bug.cgi?id=99491
44664
44665         Reviewed by Dean Jackson.
44666
44667         In preparation for using tile cache layers in place of CATiledLayer,
44668         add a new PlatformCALayer layer type LayerTypePageTileCacheLayer,
44669         since the page tile cache will have some different behavior from
44670         other tile cache layers.
44671         
44672         Generalize code that was looking at LayerTypeTileCacheLayer to use
44673         usesTileCacheLayer() if it applies to both types of tile caches.
44674
44675         * platform/graphics/ca/GraphicsLayerCA.cpp:
44676         (WebCore::GraphicsLayerCA::GraphicsLayerCA):
44677         (WebCore::GraphicsLayerCA::recursiveCommitChanges): Show the tile
44678         wash for tiled layers as well as layers with transforms (the tile
44679         wash is just for debugging).
44680         (WebCore::GraphicsLayerCA::platformCALayerDidCreateTiles):
44681         (WebCore::GraphicsLayerCA::swapFromOrToTiledLayer):
44682         * platform/graphics/ca/PlatformCALayer.h:
44683         (WebCore::PlatformCALayer::usesTileCacheLayer):
44684         (PlatformCALayer):
44685         * platform/graphics/ca/mac/PlatformCALayerMac.mm:
44686         (PlatformCALayer::PlatformCALayer):
44687         (PlatformCALayer::~PlatformCALayer):
44688         (PlatformCALayer::tiledBacking):
44689         * platform/graphics/mac/WebLayer.mm:
44690         (drawLayerContents): Avoid double-drawing the repaint counter in tile cache layers.
44691
44692 2012-10-16  Stephen Chenney  <schenney@chromium.org> 
44693         An feImage that tries to render itself should be stopped
44694         https://bugs.webkit.org/show_bug.cgi?id=94652
44695
44696         Reviewed by Eric Seidel.
44697
44698         An SVG feImage filter element will accept, as the src to render, an
44699         SVG document that makes use of the feImage itself. This causes the
44700         feImage to try to draw itself while already in the process of drawing
44701         itself. Various problems arise from this. The invariant we wish to
44702         maintain is that no element in the src tree of an feImage element
44703         refers to that feImage.
44704
44705         This patch adds a flag to all FilterData objects that tracks whether or
44706         not the filter is currently applying itself, and avoids applying the
44707         filter recursively.
44708
44709         While it may seem better to catch this problem when the src is set, or
44710         when the filter is built, that turns out to be challenging and
44711         inefficient. Say we choose to test when the src atttribute is set. To
44712         do so would require looking through all of the DOM nodes that will be
44713         rendered for the src, finding all resources used, and checking if any
44714         of them make use fo the feImage element that we are setting the source
44715         for. The infrastructure is not in place to do that, and it would
44716         involve walking a potentially very large portion of the DOM in order
44717         to detect a very rare situation. Note that it is not enough just to
44718         walk the DOM directly under the src; we also need to recursively follow any
44719         resource links to see if they use the feImage (e.g. patterns or
44720         masks or use or ...).
44721
44722         If we instead try to use the renderer node to find self referencing,
44723         we need to recursively walk a potentially very large render tree,
44724         tracing all resources in search of the feImage. This would need to be
44725         done every time the filter is built, which is again a significant
44726         overhead for a situation that is very unlikely to occur. And we do not
44727         have methods that make it easy to find feImage filter effect nodes; they are
44728         hidden behind filter resource nodes.
44729
44730         Hence the runtime check to catch the problem. The check must be in
44731         FilterData and RenderSVGResourceFilter code because we must prevent
44732         the destruction of the feImage when we encounter it recursively.
44733
44734         This patch also renames FilterData::builded to FilterData::isBuilt.
44735
44736         Test: svg/filters/feImage-self-referencing.html
44737
44738         * rendering/svg/RenderSVGResourceFilter.cpp:
44739         (WebCore::ApplyingFilterEffectGuard): Guard to ensure that, in the future, we always
44740         clear the isApplying flag even if the postApplyResource method returns early.
44741         (WebCore::RenderSVGResourceFilter::applyResource): Do not apply a resource that is already applying and
44742         rename builded to isBuilt.
44743         (WebCore::RenderSVGResourceFilter::postApplyResource): Mark a resource as applying and clear after
44744         it is done. Abort if a resource is already applying when the method begins. Rename builded to isBuilt.
44745         (WebCore::RenderSVGResourceFilter::primitiveAttributeChanged): Rename builded to isBuilt.
44746         * rendering/svg/RenderSVGResourceFilter.h:
44747         (WebCore::FilterData::FilterData):
44748         (FilterData): Add isApplying and rename builded to isBuilt.
44749
44750 2012-10-16  Nate Chapin  <japhet@chromium.org>
44751
44752         sendResourceLoadCallbacks() is poorly named
44753         https://bugs.webkit.org/show_bug.cgi?id=99482
44754
44755         Reviewed by Alexey Proskuryakov.
44756
44757         In both CachedResource and ResourceLoader, rename sendResourceLoadCallbacks()
44758         to shouldSendResourceLoadCallbacks() to better indicate that it is a simple getter.
44759
44760         No new tests, simple renaming.
44761
44762         * loader/FrameLoader.cpp:
44763         (WebCore::FrameLoader::loadedResourceFromMemoryCache):
44764         * loader/ResourceLoader.h:
44765         (WebCore::ResourceLoader::shouldSendResourceLoadCallbacks):
44766         * loader/cache/CachedResource.h:
44767         (WebCore::CachedResource::shouldSendResourceLoadCallbacks):
44768
44769 2012-10-16  Chris Rogers  <crogers@google.com>
44770
44771         Rename some AudioNodes
44772         https://bugs.webkit.org/show_bug.cgi?id=99358
44773
44774         Reviewed by Daniel Bates.
44775
44776         Here's a list of the node names, showing the changing ones:
44777             AudioBufferSourceNode
44778             MediaElementAudioSourceNode
44779             MediaStreamAudioSourceNode
44780             JavaScriptAudioNode ------------> ScriptProcessorNode
44781             RealtimeAnalyserNode ------------> AnalyserNode
44782             AudioGainNode ------------> GainNode
44783             DelayNode
44784             BiquadFilterNode
44785             AudioPannerNode ------------> PannerNode
44786             ConvolverNode
44787             AudioChannelSplitter ------------> ChannelSplitterNode
44788             AudioChannelMerger ------------> ChannelMergerNode
44789             DynamicsCompressorNode
44790             Oscillator ------------> OscillatorNode
44791
44792         * CMakeLists.txt:
44793         * DerivedSources.make:
44794         * DerivedSources.pri:
44795         * GNUmakefile.list.am:
44796         * Modules/webaudio/AnalyserNode.cpp: Renamed from Source/WebCore/Modules/webaudio/RealtimeAnalyserNode.cpp.
44797         * Modules/webaudio/AnalyserNode.idl: Renamed from Source/WebCore/Modules/webaudio/RealtimeAnalyserNode.idl.
44798         * Modules/webaudio/AudioBufferSourceNode.cpp:
44799         (WebCore::AudioBufferSourceNode::setPannerNode):
44800         * Modules/webaudio/AudioBufferSourceNode.h:
44801         (AudioBufferSourceNode):
44802         * Modules/webaudio/AudioContext.cpp:
44803         (WebCore::AudioContext::createJavaScriptNode):
44804         (WebCore::AudioContext::createPanner):
44805         (WebCore::AudioContext::createAnalyser):
44806         (WebCore::AudioContext::createGainNode):
44807         (WebCore::AudioContext::createChannelSplitter):
44808         (WebCore::AudioContext::createChannelMerger):
44809         (WebCore::AudioContext::createOscillator):
44810         * Modules/webaudio/AudioContext.h:
44811         (WebCore):
44812         (AudioContext):
44813         * Modules/webaudio/AudioContext.idl:
44814         * Modules/webaudio/ChannelMergerNode.cpp: Renamed from Source/WebCore/Modules/webaudio/AudioChannelMerger.cpp.
44815         * Modules/webaudio/ChannelMergerNode.h: Renamed from Source/WebCore/Modules/webaudio/AudioChannelMerger.h.
44816         (WebCore):
44817         (ChannelMergerNode):
44818         * Modules/webaudio/ChannelMergerNode.idl: Renamed from Source/WebCore/Modules/webaudio/AudioChannelMerger.idl.
44819         * Modules/webaudio/ChannelSplitterNode.cpp: Renamed from Source/WebCore/Modules/webaudio/AudioChannelSplitter.cpp.
44820         * Modules/webaudio/ChannelSplitterNode.h: Renamed from Source/WebCore/Modules/webaudio/AudioChannelSplitter.h.
44821         (WebCore):
44822         (ChannelSplitterNode):
44823         * Modules/webaudio/ChannelSplitterNode.idl: Renamed from Source/WebCore/Modules/webaudio/AudioChannelSplitter.idl.
44824         * Modules/webaudio/DOMWindowWebAudio.idl:
44825         * Modules/webaudio/GainNode.cpp: Renamed from Source/WebCore/Modules/webaudio/AudioGainNode.cpp.
44826         * Modules/webaudio/GainNode.h: Renamed from Source/WebCore/Modules/webaudio/AudioGainNode.h.
44827         * Modules/webaudio/GainNode.idl: Renamed from Source/WebCore/Modules/webaudio/AudioGainNode.idl.
44828         * Modules/webaudio/OscillatorNode.cpp: Renamed from Source/WebCore/Modules/webaudio/Oscillator.cpp.
44829         * Modules/webaudio/OscillatorNode.h: Renamed from Source/WebCore/Modules/webaudio/Oscillator.h.
44830         * Modules/webaudio/OscillatorNode.idl: Renamed from Source/WebCore/Modules/webaudio/Oscillator.idl.
44831         * Modules/webaudio/PannerNode.cpp: Renamed from Source/WebCore/Modules/webaudio/AudioPannerNode.cpp.
44832         * Modules/webaudio/PannerNode.h: Renamed from Source/WebCore/Modules/webaudio/AudioPannerNode.h.
44833         (WebCore):
44834         * Modules/webaudio/PannerNode.idl: Renamed from Source/WebCore/Modules/webaudio/AudioPannerNode.idl.
44835         * Modules/webaudio/ScriptProcessorNode.cpp: Renamed from Source/WebCore/Modules/webaudio/JavaScriptAudioNode.cpp.
44836         * Modules/webaudio/ScriptProcessorNode.h: Renamed from Source/WebCore/Modules/webaudio/JavaScriptAudioNode.h.
44837         (WebCore):
44838         * Modules/webaudio/ScriptProcessorNode.idl: Renamed from Source/WebCore/Modules/webaudio/JavaScriptAudioNode.idl.
44839         * Modules/webaudio/WaveTable.cpp:
44840         (WebCore::WaveTable::createSine):
44841         (WebCore::WaveTable::createSquare):
44842         (WebCore::WaveTable::createSawtooth):
44843         (WebCore::WaveTable::createTriangle):
44844         (WebCore::WaveTable::generateBasicWaveform):
44845         * Target.pri:
44846         * UseJSC.cmake:
44847         * WebCore.gypi:
44848         * WebCore.xcodeproj/project.pbxproj:
44849         * bindings/js/JSScriptProcessorNodeCustom.cpp: Renamed from Source/WebCore/bindings/js/JSJavaScriptAudioNodeCustom.cpp.
44850         (WebCore):
44851         (WebCore::JSScriptProcessorNode::visitChildren):
44852         * dom/EventTarget.h:
44853         (WebCore):
44854         * dom/EventTargetFactory.in:
44855
44856 2012-10-16  Noam Rosenthal  <noam.rosenthal@nokia.com>
44857
44858         [Texmap] Refactor TextureMapperShaderManager to be clearer
44859         https://bugs.webkit.org/show_bug.cgi?id=86048
44860
44861         Reviewed by Martin Robinson.
44862
44863         Previous implementation of TextureMapperShaderManager was very verbose, calling for too
44864         many casts and ambiguous ownership.
44865         This refactor does the following:
44866         1. TextureMapperShaderProgram is one class without subclasses.
44867         2. Uniform/Attribute accessors are generated by special macros (TEXMAP_DECLARE_...) that
44868            generate both the C++ access function, as well as the GLSL name of the variable. This
44869            allows adding/removing variables from a shader without adding broiler-plate code like
44870            before.
44871
44872         After this change TextureMapperShaderManager has only one responsibility - dealing with
44873         TextureMapperGL's built-in shaders and their lifecycle. Preparing filters etc. is done
44874         in TextureMapperGL.
44875
44876         This is a refactor without new functionality. It has been verified to not break any existing
44877         relevant test.
44878
44879         * platform/graphics/texmap/TextureMapperGL.cpp:
44880         (WebCore::TextureMapperGL::drawBorder):
44881         (WebCore::TextureMapperGL::drawQuad):
44882         (WebCore::TextureMapperGL::drawTextureRectangleARB):
44883         (WebCore::TextureMapperGL::drawTexture):
44884         (WebCore::TextureMapperGL::drawTextureWithAntialiasing):
44885         (WebCore::TextureMapperGL::drawTexturedQuadWithProgram):
44886         (WebCore::TextureMapperGL::beginClip):
44887             Use the MACRO-generated uniform accessors.
44888
44889         (WebCore):
44890         (WebCore::keyForFilterType):
44891         (WebCore::getPassesRequiredForFilter):
44892         (WebCore::gauss):
44893         (WebCore::gaussianKernel):
44894         (WebCore::prepareFilterProgram):
44895         (WebCore::TextureMapperGL::drawFiltered):
44896         (WebCore::BitmapTextureGL::applyFilters):
44897             Move the filter logic to TextureMapperGL
44898
44899         * platform/graphics/texmap/TextureMapperShaderManager.cpp:
44900         (WebCore::TextureMapperShaderProgram::TextureMapperShaderProgram):
44901         (WebCore::TextureMapperShaderProgram::getLocation):
44902         (ShaderSpec):
44903         (WebCore::ShaderSpec::ShaderSpec):
44904         (WebCore::getShaderSpec):
44905         (WebCore::TextureMapperShaderManager::TextureMapperShaderManager):
44906         (WebCore::TextureMapperShaderManager::~TextureMapperShaderManager):
44907         (WebCore::TextureMapperShaderManager::getShaderProgram):
44908         * platform/graphics/texmap/TextureMapperShaderManager.h:
44909         (WebCore):
44910         (WebCore::TextureMapperShaderProgram::programID):
44911         (WebCore::TextureMapperShaderProgram::context):
44912         (WebCore::TextureMapperShaderProgram::create):
44913         (TextureMapperShaderProgram):
44914         (TextureMapperShaderManager):
44915             See description.
44916
44917 2012-10-16  Nico Weber  <thakis@chromium.org>
44918
44919         [chromium/mac] Make spelling indicator HighDPI
44920         https://bugs.webkit.org/show_bug.cgi?id=99417
44921
44922         Reviewed by Stephen White.
44923
44924         This is the mac version of http://trac.webkit.org/changeset/130940
44925         Since the mac and non-mac code are very similar again, merge the two
44926         code paths again.
44927
44928         Covered by editing/spelling/(inline-spelling|grammar)-markers-hidpi.html
44929
44930         * platform/graphics/skia/GraphicsContextSkia.cpp:
44931         (WebCore::GraphicsContext::drawLineForDocumentMarker):
44932
44933 2012-10-16  Tony Chang  <tony@chromium.org>
44934
44935         in a column flexbox, input overflows the box when stretched
44936         https://bugs.webkit.org/show_bug.cgi?id=99273
44937
44938         Reviewed by Ojan Vafai.
44939
44940         Fix a bug where we didn't properly subtract padding and border when overriding the child size.
44941         We didn't see this because of a performance optimization in RenderBox where we stretch children.
44942         Also apply this performance optimization in new flexbox for form controls.
44943
44944         Test: css3/flexbox/stretch-input-in-column.html
44945
44946         * rendering/RenderBox.cpp:
44947         (WebCore::flexboxChildHasStretchAlignment):
44948         (WebCore::isStretchingVerticalFlexboxChild):
44949         (WebCore::RenderBox::sizesLogicalWidthToFitContent): Apply performance optimization to form controls in new flexbox.
44950         * rendering/RenderFlexibleBox.cpp:
44951         (WebCore::RenderFlexibleBox::applyStretchAlignmentToChild): Properly subtract border and padding.
44952
44953 2012-10-16  Simon Fraser  <simon.fraser@apple.com>
44954
44955         REGRESSION (r128787): Fixed position div causes other elements to not update correctly
44956         https://bugs.webkit.org/show_bug.cgi?id=98579
44957
44958         Reviewed by Beth Dakin.
44959
44960         RenderLayers cache repaint rects which are computed relative to the repaint container.
44961         Repaint containers depend on whether a RenderLayerBacking has its own backing store,
44962         so if that changes, we need to recompute repaint rects for all descendants.
44963         
44964         Test: compositing/repaint/requires-backing-repaint.html
44965
44966         * rendering/RenderLayerBacking.cpp:
44967         (WebCore::RenderLayerBacking::setRequiresOwnBackingStore):
44968
44969 2012-10-16  Zan Dobersek  <zandobersek@gmail.com>
44970
44971         [GStreamer] GstBuffer ref race in WebKitWebAudioSrcLoop
44972         https://bugs.webkit.org/show_bug.cgi?id=95833
44973
44974         Reviewed by Philippe Normand.
44975
44976         The render bus used in GStreamer's implementation of AudioDestination no longer
44977         allocates memory for each of its channels. Rather than that, when looping, the
44978         data is rendered into a channel-specific GstBuffer. Each buffer is then chained
44979         to the appropriate GstPad, as has been the case before.
44980
44981         No new tests - there are tests covering this change but they are not yet working
44982         on the GTK port or any other GStreamer implementation of Web Audio.
44983
44984         * platform/audio/gstreamer/AudioDestinationGStreamer.cpp:
44985         (WebCore::AudioDestinationGStreamer::AudioDestinationGStreamer):
44986         * platform/audio/gstreamer/WebKitWebAudioSourceGStreamer.cpp:
44987         (_WebKitWebAudioSourcePrivate): Remove an unused member variable.
44988         (webkit_web_audio_src_init): Remove an unnecessary line.
44989         (webKitWebAudioSrcConstructed): Ditto.
44990         (webKitWebAudioSrcLoop):
44991
44992 2012-10-16  Pablo Flouret  <pablof@motorola.com>
44993
44994         Pre-process CSSGrammar.y before running through bison.
44995         https://bugs.webkit.org/show_bug.cgi?id=94290
44996
44997         Reviewed by Tony Chang.
44998
44999         Running CSSGrammar.y through a preprocessor allows the use of feature
45000         defines in all places of the yacc file (i.e. not just in C blocks).
45001         Mostly useful to be able to keep every part of a feature under feature
45002         flags for self-documenting purposes.
45003
45004         No new tests, CSSGrammar.y should be generated correctly and everything
45005         should keep working as before.
45006
45007         * CMakeLists.txt:
45008         * DerivedSources.make:
45009         * DerivedSources.pri:
45010         * GNUmakefile.am:
45011             Modify build systems to use makegrammar.pl to generate the .y files
45012             and run those through bison.
45013
45014         * WebCore.gyp/WebCore.gyp:
45015             Add a new action to preprocess the CSSGrammar.y.in file before the
45016             bison rule is run.
45017
45018         * WebCore.vcproj/WebCore.vcproj:
45019         * WebCore.xcodeproj/project.pbxproj:
45020             Add the new .y.in / .y.includes files.
45021
45022         * css/CSSGrammar.y.in: Renamed from Source/WebCore/css/CSSGrammar.y.
45023             Also moved the top declarations section that has includes, defines,
45024             etc. to its own file. These shouldn't be touched by the first
45025             pass of the preprocessor. And changed the existing ENABLE(FEATURE)
45026             ifdefs to ENABLE_FEATURE since the ENABLE() macro is not available
45027             yet.
45028         * css/CSSGrammar.y.includes: Added.
45029             The aforementioned declarations header section. After the .y.in file
45030             is processed it will be concatenated with this one to make the
45031             CSSGrammar.y file.
45032
45033         * css/makegrammar.pl:
45034             Modify the script to handle .y.in files.
45035
45036 2012-10-16  Raphael Kubo da Costa  <raphael.kubo.da.costa@intel.com>
45037
45038         Implement testRunner.dumpSelectionRect() in WebKitTestRunner
45039         https://bugs.webkit.org/show_bug.cgi?id=69545
45040
45041         Reviewed by Simon Fraser.
45042
45043         * WebCore.exp.in:
45044
45045 2012-10-16  Allan Sandfeld Jensen  <allan.jensen@digia.com>
45046
45047         [Qt] Implement fastBoundingPath/boundingPath distinction.
45048         https://bugs.webkit.org/show_bug.cgi?id=99471
45049
45050         Reviewed by Noam Rosenthal.
45051
45052         Tested by existing test: svg/custom/getBBox-path.svg
45053
45054         * platform/graphics/Path.cpp:
45055         * platform/graphics/qt/PathQt.cpp:
45056         (WebCore::Path::fastBoundingRect):
45057         (WebCore::Path::boundingRect):
45058
45059 2012-10-16  Rob Buis  <rbuis@rim.com>
45060
45061         [BlackBerry] replace BlackBerry::Platform::log() with BBLOG()
45062         https://bugs.webkit.org/show_bug.cgi?id=99302
45063
45064         Reviewed by Yong Li.
45065
45066         Fix a warning introduced by r131335. Since in release BBLOG is empty, only enable this block in debug builds.
45067
45068         * platform/graphics/opengl/GraphicsContext3DOpenGLCommon.cpp:
45069         (WebCore::GraphicsContext3D::compileShader):
45070
45071 2012-10-16  Antoine Quint  <graouts@apple.com>
45072
45073         Inspector should allow reading the compositing debug settings
45074         https://bugs.webkit.org/show_bug.cgi?id=99458
45075
45076         Reviewed by Timothy Hatcher.
45077
45078         * inspector/Inspector.json:
45079         * inspector/InspectorPageAgent.cpp:
45080         (WebCore::InspectorPageAgent::getCompositingBordersVisible):
45081         * inspector/InspectorPageAgent.h:
45082
45083 2012-10-16  Dan Bernstein  <mitz@apple.com>
45084
45085         Code to reverse a GlyphBuffer range is repeated in several places
45086         https://bugs.webkit.org/show_bug.cgi?id=99424
45087
45088         Reviewed by Adele Peterson.
45089
45090         * platform/graphics/FontFastPath.cpp:
45091         (WebCore::Font::getGlyphsAndAdvancesForSimpleText): Replaced for loop with a call to
45092         GlyphBuffer::reverse.
45093         * platform/graphics/GlyphBuffer.h:
45094         (WebCore::GlyphBuffer::reverse): Added. Reverses the given range.
45095         (WebCore::GlyphBuffer::swap): Made private.
45096         * platform/graphics/WidthIterator.cpp:
45097         (WebCore::applyFontTransforms): Replaced for loops with calls to GlyphBuffer::reverse and
45098         corrected their bounds.
45099         * platform/graphics/mac/FontComplexTextMac.cpp:
45100         (WebCore::Font::getGlyphsAndAdvancesForComplexText): Replaced for loop with a call to
45101         GlyphBuffer::range.
45102
45103 2012-10-16  Nate Chapin  <japhet@chromium.org>
45104
45105         Re-order CachedRawResource::data() to set m_data earlier
45106         https://bugs.webkit.org/show_bug.cgi?id=99361
45107
45108         Reviewed by Adam Barth.
45109
45110         Currently, we calculate the diff between the data parameter and m_data, call
45111         dataReceived(), then set m_data to data. If something inside dataReceived()
45112         tries to access m_data via CachedResource::resourceBuffer(), it will see the
45113         old data instead of the new data, which seems inconsistent.
45114
45115         No new tests, as no one appears to try to access m_data within dataReceived() currently.
45116
45117         * loader/cache/CachedRawResource.cpp:
45118         (WebCore::CachedRawResource::data):
45119
45120 2012-10-16  Julien Chaffraix  <jchaffraix@webkit.org>
45121
45122         Fold setCellLogicalWidths logic into RenderTableSection layout
45123         https://bugs.webkit.org/show_bug.cgi?id=99382
45124
45125         Reviewed by Eric Seidel.
45126
45127         setCellLogicalWidths was implemented as a pre-phase to laying out
45128         the table's sections. This split was artificial as any change in
45129         the columns' logical width should trigger a sections' relayout, which
45130         could propagate and mark the cells / rows as needed.
45131
45132         Merging setCellLogicalWidths into RenderTableSection::layout removes
45133         an unneeded cells walking and some clunkiness from our implementation.
45134
45135         Refactoring covered by the existing tests.
45136
45137         * rendering/RenderTable.cpp:
45138         (WebCore::RenderTable::RenderTable): Initialize our new boolean.
45139         (WebCore::RenderTable::layout):
45140         If m_columnLogicalWidthChanged, we force a relayout on our sections so that the cells and rows
45141         are marked for layout if there is the logical width change.
45142
45143         * rendering/RenderTable.h:
45144         (WebCore::RenderTable):
45145         Added a new boolean to track if a column logical width changed (m_columnLogicalWidthChanged).
45146
45147         (WebCore::RenderTable::setColumnPosition):
45148         If a column position changed, register that our column logical widths changed. This is not
45149         totally true, so added a comment about when it will be wrong.
45150
45151         * rendering/RenderTableCell.h:
45152         * rendering/RenderTableCell.cpp:
45153         (WebCore::RenderTableCell::setCellLogicalWidth):
45154         Updated the function to mark the cell and the row for layout. Also changed the argument to
45155         be an 'int' as this was what was passed in.
45156
45157         * rendering/RenderTableSection.cpp:
45158         (WebCore::RenderTableSection::layout):
45159         * rendering/RenderTableSection.h:
45160         Removed setCellLogicalWidths and merged the logic into RenderTableSection::layout. We propagate
45161         the table layout's logical widths first so that rows are marked as needing layout as appropriate.
45162
45163 2012-10-16  Takashi Sakamoto  <tasak@google.com>
45164
45165         [Meta] [Shadow] contenteditable attribute for distributed nodes.
45166         https://bugs.webkit.org/show_bug.cgi?id=90017
45167
45168         Reviewed by Dimitri Glazkov.
45169
45170         If an element is distributed to an insertion point, the element's
45171         webkit-user-modify is inherited from its shadow host.
45172
45173         No new tests, because the existing test: user-modify-inheritance.html
45174         covers this change.
45175
45176         * css/StyleResolver.cpp:
45177         (WebCore::StyleResolver::styleForElement):
45178         After an element inherits a style from its parent, override user-modify
45179         by using the shadow host's style if the element is distributed.
45180
45181 2012-10-16  Vsevolod Vlasov  <vsevik@chromium.org>
45182
45183         Web Inspector: Get rid of (now empty) JavaScriptSource and StyleSource, rename all usages to UISourceCode.
45184         https://bugs.webkit.org/show_bug.cgi?id=99469
45185
45186         Reviewed by Pavel Feldman.
45187
45188         * WebCore.gypi:
45189         * WebCore.vcproj/WebCore.vcproj:
45190         * inspector/compile-front-end.py:
45191         * inspector/front-end/BreakpointManager.js:
45192         (WebInspector.BreakpointManager.prototype._uiSourceCodeAdded):
45193         (WebInspector.BreakpointManager.prototype._uiSourceCodeRemoved):
45194         * inspector/front-end/CompilerScriptMapping.js:
45195         * inspector/front-end/JavaScriptSource.js: Removed.
45196         * inspector/front-end/JavaScriptSourceFrame.js:
45197         (WebInspector.JavaScriptSourceFrame):
45198         (WebInspector.JavaScriptSourceFrame.prototype.canEditSource):
45199         (WebInspector.JavaScriptSourceFrame.prototype._onWorkingCopyChanged):
45200         (WebInspector.JavaScriptSourceFrame.prototype._onWorkingCopyCommitted):
45201         (WebInspector.JavaScriptSourceFrame.prototype._innerSetContent):
45202         (WebInspector.JavaScriptSourceFrame.prototype.populateLineGutterContextMenu):
45203         (WebInspector.JavaScriptSourceFrame.prototype.populateTextAreaContextMenu):
45204         (WebInspector.JavaScriptSourceFrame.prototype.onTextChanged):
45205         (WebInspector.JavaScriptSourceFrame.prototype._supportsEnabledBreakpointsWhileEditing):
45206         (WebInspector.JavaScriptSourceFrame.prototype._restoreBreakpointsAfterEditing):
45207         (WebInspector.JavaScriptSourceFrame.prototype._breakpointAdded):
45208         (WebInspector.JavaScriptSourceFrame.prototype._breakpointRemoved):
45209         (WebInspector.JavaScriptSourceFrame.prototype.onTextEditorContentLoaded):
45210         (WebInspector.JavaScriptSourceFrame.prototype._handleGutterClick):
45211         (WebInspector.JavaScriptSourceFrame.prototype._toggleBreakpoint):
45212         (WebInspector.JavaScriptSourceFrame.prototype._setBreakpoint):
45213         (WebInspector.JavaScriptSourceFrame.prototype._continueToLine):
45214         * inspector/front-end/NetworkUISourceCodeProvider.js:
45215         (WebInspector.NetworkUISourceCodeProvider.prototype._parsedScriptSource):
45216         (WebInspector.NetworkUISourceCodeProvider.prototype._resourceAdded):
45217         * inspector/front-end/ResourceScriptMapping.js:
45218         (WebInspector.ResourceScriptMapping.prototype._getOrCreateTemporaryUISourceCode):
45219         * inspector/front-end/ScriptSnippetModel.js:
45220         (WebInspector.ScriptSnippetModel):
45221         (WebInspector.ScriptSnippetModel.prototype._addScriptSnippet):
45222         (WebInspector.ScriptSnippetModel.prototype.evaluateScriptSnippet.get var):
45223         (WebInspector.ScriptSnippetModel.prototype.evaluateScriptSnippet.compileCallback):
45224         (WebInspector.ScriptSnippetModel.prototype.evaluateScriptSnippet):
45225         (WebInspector.ScriptSnippetModel.prototype._createUISourceCodeForScript):
45226         (WebInspector.ScriptSnippetModel.prototype._removeBreakpoints):
45227         (WebInspector.ScriptSnippetModel.prototype._projectWillReset):
45228         (WebInspector.SnippetScriptFile):
45229         (WebInspector.SnippetScriptFile.prototype._workingCopyCommitted):
45230         (WebInspector.SnippetScriptFile.prototype._workingCopyChanged):
45231         * inspector/front-end/ScriptsNavigator.js:
45232         (WebInspector.SnippetsNavigatorView.prototype._handleEvaluateSnippet):
45233         (WebInspector.SnippetsNavigatorView.prototype._handleRemoveSnippet):
45234         * inspector/front-end/ScriptsPanel.js:
45235         (WebInspector.ScriptsPanel.prototype._createSourceFrame):
45236         (WebInspector.ScriptsPanel.prototype._uiSourceCodeFormatted):
45237         (WebInspector.ScriptsPanel.prototype._showOutlineDialog):
45238         (WebInspector.ScriptsPanel.prototype.set _fileRenamed):
45239         (WebInspector.ScriptsPanel.prototype._snippetCreationRequested.callback):
45240         (WebInspector.ScriptsPanel.prototype._snippetCreationRequested):
45241         * inspector/front-end/SnippetJavaScriptSourceFrame.js:
45242         (WebInspector.SnippetJavaScriptSourceFrame):
45243         (WebInspector.SnippetJavaScriptSourceFrame.prototype._runButtonClicked):
45244         * inspector/front-end/StyleSheetOutlineDialog.js:
45245         (WebInspector.StyleSheetOutlineDialog):
45246         (WebInspector.StyleSheetOutlineDialog.show):
45247         (WebInspector.StyleSheetOutlineDialog.prototype.requestItems):
45248         * inspector/front-end/StyleSource.js: Removed.
45249         * inspector/front-end/WebKit.qrc:
45250         * inspector/front-end/inspector.html:
45251
45252 2012-10-15  Jer Noble  <jer.noble@apple.com>
45253
45254         WebAudio: limit output level to 0db
45255         https://bugs.webkit.org/show_bug.cgi?id=95792
45256         <rdar://problem/11966135>
45257
45258         Reviewed by Chris Rogers.
45259
45260         Clamp the output buffer data to the range of [-1,1], which limits
45261         output volume to 0db. This ensures that malicious or poorly-written
45262         pages will not be able to blow through the system volume limit by
45263         creating >0db buffers and effects.
45264
45265         No new tests; added ManualTests/webaudio/limit-level-0db.html.
45266
45267         Clamp the output vector to values of [-1,1]:
45268         * platform/audio/mac/AudioDestinationMac.cpp:
45269         (WebCore::AudioDestinationMac::render):
45270
45271         Add a VectorMath wrapper for vDSP_clip to provide accelerated vector threshold operations:
45272         * platform/audio/VectorMath.h:
45273         * platform/audio/VectorMath.cpp:
45274         (VectorMath):
45275         (WebCore::VectorMath::vclip):
45276
45277 2012-10-15  Vsevolod Vlasov  <vsevik@chromium.org>
45278
45279         Web Inspector: Extract domain specific editing handling logic from UISourceCode (step 2).
45280         https://bugs.webkit.org/show_bug.cgi?id=99301
45281
45282         Reviewed by Pavel Feldman.
45283
45284         StyleFile and ScriptFile now listen for the UISourceCode WorkingCopyChanged/Committed events and process
45285         them instead of being called explicitly.
45286
45287         * inspector/front-end/JavaScriptSourceFrame.js:
45288         (WebInspector.JavaScriptSourceFrame):
45289         (WebInspector.JavaScriptSourceFrame.prototype.onTextChanged):
45290         (WebInspector.JavaScriptSourceFrame.prototype._willMergeToVM):
45291         (WebInspector.JavaScriptSourceFrame.prototype._didMergeToVM):
45292         (WebInspector.JavaScriptSourceFrame.prototype._willDivergeFromVM):
45293         (WebInspector.JavaScriptSourceFrame.prototype._didDivergeFromVM):
45294         (WebInspector.JavaScriptSourceFrame.prototype._muteBreakpointsWhileEditing):
45295         (WebInspector.JavaScriptSourceFrame.prototype._restoreBreakpointsAfterEditing):
45296         * inspector/front-end/ResourceScriptMapping.js:
45297         (WebInspector.ResourceScriptMapping.prototype._hasMergedToVM):
45298         (WebInspector.ResourceScriptMapping.prototype._hasDivergedFromVM):
45299         (WebInspector.ResourceScriptMapping.prototype._bindUISourceCodeToScripts):
45300         (WebInspector.ResourceScriptFile):
45301         (WebInspector.ResourceScriptFile.prototype._workingCopyCommitted):
45302         (WebInspector.ResourceScriptFile.prototype._workingCopyChanged):
45303         * inspector/front-end/ScriptSnippetModel.js:
45304         (WebInspector.SnippetScriptFile):
45305         (WebInspector.SnippetScriptFile.prototype._workingCopyCommitted):
45306         (WebInspector.SnippetScriptFile.prototype._workingCopyChanged):
45307         * inspector/front-end/StylesSourceMapping.js:
45308         (WebInspector.StyleFile):
45309         (WebInspector.StyleFile.prototype._workingCopyCommitted):
45310         (WebInspector.StyleFile.prototype._workingCopyChanged):
45311         (WebInspector.StyleFile.prototype._commitIncrementalEdit):
45312         (WebInspector.StyleFile.prototype._clearIncrementalUpdateTimer):
45313         (WebInspector.StyleFile.prototype.addRevision):
45314         (WebInspector.StyleContentBinding.prototype._innerStyleSheetChanged):
45315         * inspector/front-end/UISourceCode.js:
45316         (WebInspector.UISourceCode.prototype.setWorkingCopy):
45317         (WebInspector.UISourceCode.prototype.commitWorkingCopy):
45318
45319 2012-10-16  Alexander Pavlov  <apavlov@chromium.org>
45320
45321         Web Inspector: [Elements] Double-click to live edit style tags changes text to 'undefined' in some situations
45322         https://bugs.webkit.org/show_bug.cgi?id=99336
45323
45324         Reviewed by Vsevolod Vlasov.
45325
45326         Before editing text nodes, set their textContent to the nodeValue() of the corresponding WebInspector.DOMNode in the UI.
45327         Drive-by: fix text node editing artifact in the DOM tree.
45328
45329         * inspector/front-end/ElementsTreeOutline.js:
45330         (WebInspector.ElementsTreeElement.prototype._startEditingTextNode):
45331         (WebInspector.ElementsTreeElement.prototype._tagNameEditingCommitted):
45332
45333 2012-10-16  Mike West  <mkwst@chromium.org>
45334
45335         Web Inspector: Whitelist safe styles for 'console.log('%c...', ...)'.
45336         https://bugs.webkit.org/show_bug.cgi?id=98945
45337
45338         Reviewed by Pavel Feldman.
45339
45340         Support for styling console messages via '%c' landed without any
45341         parsing of the style information provided. This means that it's fairly
45342         simple to accidentally or maliciously break the console with cleverly
45343         styled messages. To mitigate this risk, whitelisting a safe subset of
45344         CSS seems appropriate.
45345
45346         As a first pass at a reasonable whitelist, this patch allows
45347         'background[-*]', 'border[-*]', 'color[-*]', 'font[-*]',
45348         'margin[-*]', 'padding[-*]', 'text[-*]', '-webkit-background[-*]',
45349         '-webkit-border[-*]', '-webkit-font[-*]', '-webkit-margin[-*]',
45350         '-webkit-padding[-*]', and '-webkit-text[-*]'.
45351
45352         Test: inspector/console/console-format-style-whitelist.html
45353
45354         * inspector/front-end/ConsoleMessage.js:
45355         (WebInspector.ConsoleMessageImpl.prototype._formatWithSubstitutionString.styleFormatter):
45356             Create a buffer element onto which the user-provided styles are
45357             applied. Whitelisted styles are transfered from the buffer onto
45358             the actual console message.
45359         (WebInspector.ConsoleMessageImpl.prototype._formatWithSubstitutionString.isWhitelistedProperty):
45360              Returns true if the specific style is whitelisted. Expects styles
45361              in the hyphenated form (that is, '-webkit-padding-start' rather than
45362              CSSOM's 'webkitPaddingStart').
45363
45364 2012-10-16  Luke Macpherson   <macpherson@chromium.org>
45365
45366         Handle CSSPropertyOpacity in StyleBuilder.
45367         https://bugs.webkit.org/show_bug.cgi?id=99418
45368
45369         Reviewed by Alexis Menard.
45370
45371         One small step in moving from the huge switch in StyleResolver::applyProperty() to the StyleBuilder approach.
45372
45373         Covered by many existing tests, for example fast/text/complex-text-opacity.html.
45374
45375         * css/StyleBuilder.cpp:
45376         (WebCore::StyleBuilder::StyleBuilder):
45377         * css/StyleResolver.cpp:
45378         (WebCore::StyleResolver::applyProperty):
45379
45380 2012-10-16  Kent Tamura  <tkent@chromium.org>
45381
45382         Fix some appearance glitches of multiple fields input elements
45383         https://bugs.webkit.org/show_bug.cgi?id=99412
45384
45385         A follow-up change for r131421.
45386
45387         * css/themeWin.css:
45388         (input[type="text"]): Don't reset paddings for date/time types.
45389
45390 2012-10-16  Kenichi Ishibashi  <bashi@chromium.org>
45391
45392         hb_face_t instances should not depend on FontPlatformData
45393         https://bugs.webkit.org/show_bug.cgi?id=99430
45394
45395         Reviewed by Kent Tamura.
45396
45397         Use platform specific font data (e.g. SkTypeface) to get
45398         font tables for harfbuzz-ng.
45399
45400         No new tests. No changes in behavior.
45401
45402         * platform/graphics/harfbuzz/ng/HarfBuzzNGFaceCairo.cpp:
45403         (WebCore::harfbuzzCairoGetTable): Takes cairo_scaled_font_t* as userData.
45404         (WebCore::HarfBuzzNGFace::createFace):
45405         * platform/graphics/harfbuzz/ng/HarfBuzzNGFaceCoreText.cpp:
45406         (WebCore::harfbuzzCoreTextGetTable): Takes CGFontRef as userData.
45407         (WebCore::HarfBuzzNGFace::createFace):
45408         * platform/graphics/harfbuzz/ng/HarfBuzzNGFaceSkia.cpp:
45409         (WebCore::harfbuzzSkiaGetTable): Takes SkFontID as userData.
45410         (WebCore::HarfBuzzNGFace::createFace):
45411
45412 2012-10-16  Sheriff Bot  <webkit.review.bot@gmail.com>
45413
45414         Unreviewed, rolling out r131418.
45415         http://trac.webkit.org/changeset/131418
45416         https://bugs.webkit.org/show_bug.cgi?id=99431
45417
45418         since 131403 seems innocent (Requested by shinyak|_ on
45419         #webkit).
45420
45421         * dom/Document.cpp:
45422         (WebCore::isValidNameNonASCII):
45423         (WebCore):
45424         (WebCore::Document::isValidName):
45425
45426 2012-10-16  Ilya Tikhonovsky  <loislo@chromium.org>
45427
45428         Web Inspector: NMI Instrument InspectorOverlay. It costs us ~9Mb because it creates page size canvas.
45429         https://bugs.webkit.org/show_bug.cgi?id=99426
45430
45431         Reviewed by Yury Semikhatsky.
45432
45433         New object type InspectorOverlay was added. InspectorOverlay was instrumented.
45434         The instrumentation code automatically visits all the objects that can be reached via m_overlayPage.
45435
45436         * dom/WebCoreMemoryInstrumentation.cpp:
45437         (WebCore):
45438         * dom/WebCoreMemoryInstrumentation.h:
45439         (WebCoreMemoryTypes):
45440         * inspector/InspectorOverlay.cpp:
45441         (WebCore::InspectorOverlay::reportMemoryUsage):
45442         (WebCore):
45443         * inspector/InspectorOverlay.h:
45444         (InspectorOverlay):
45445
45446 2012-10-16  Kent Tamura  <tkent@chromium.org>
45447
45448         Remove unused functions in Locale* classes
45449         https://bugs.webkit.org/show_bug.cgi?id=99425
45450
45451         Reviewed by Yuta Kitamura.
45452
45453         Locale*::currentLocale has been unused since LocalizedDate* and
45454         LocalizedNumber* were removed.
45455
45456         No new tests. This shouldn't change any behavior.
45457
45458         * platform/text/LocaleICU.cpp: Remove createForCurrentLocale and currentLocale.
45459         * platform/text/LocaleICU.h: Ditto.
45460         * platform/text/LocaleWin.cpp: Remove currentLocale.
45461         * platform/text/LocaleWin.h: Ditto.
45462         * platform/text/mac/LocaleMac.h: Remove currentLocale.
45463         * platform/text/mac/LocaleMac.mm: Ditto.
45464
45465 2012-10-15  Kent Tamura  <tkent@chromium.org>
45466
45467         Fix some appearance glitches of multiple fields input elements
45468         https://bugs.webkit.org/show_bug.cgi?id=99412
45469
45470         Reviewed by Kentaro Hara.
45471
45472         1. If CSS-specified width is wider than the intrinsic width of an input,
45473         the spin button and the picker indicator triangle should be put at the
45474         right side of the content area.
45475
45476         2. Remove top, right, and bottom paddings to match input[type=number]
45477         appearance as possible.
45478
45479         3. Remove unnecessary position:relative for spin buttons.
45480
45481         4. Center content vertically if the height is taller than the intrinsic height.
45482
45483         Tests: Update all of rendering tests for input element with multiple fields UI.
45484
45485         * css/html.css:
45486         (input[type="date"]):
45487         - Specify display:-webkit-inline-flex and -webkit-align-items:stretch to center contents.
45488         - Remove top/right/bottom paddings.
45489         (input[type="datetime"]): Ditto.
45490         (input[type="datetime-local"]): Ditto.
45491         (input[type="month"]): Ditto.
45492         (input[type="time"]): Ditto.
45493         (input[type="week"]): Ditto.
45494         (input::-webkit-datetime-edit):
45495         - Switch to the starndard flexible box from the legacy one.
45496         - Add white-space:pre to avoid to collapse white spaces.
45497         (input::-webkit-datetime-edit-gap):
45498         Added. This element is added to push a spin button to the right side.
45499         (input::-webkit-date-and-time-container):
45500         Add -webkit-flex:1 for the input flexible box.
45501         Sort properties.
45502         (input[type="week"]::-webkit-inner-spin-button):
45503         - Use this in date, datetime, datetime-local, and week types.
45504         - Add display:inline-block because other elements in -webkit-datetime-edit is inilne.
45505         - Add position:static to cancel position:relative below.
45506
45507         * html/shadow/DateTimeEditElement.cpp:
45508         (WebCore::DateTimeEditElement::layout):
45509         Add an element with -webkit-datetime-edit-gap before a spin button.
45510
45511 2012-10-15  Yury Semikhatsky  <yurys@chromium.org>
45512
45513         Web Inspector: can't click delete button if watch expression is very long
45514         https://bugs.webkit.org/show_bug.cgi?id=99414
45515
45516         Reviewed by Vsevolod Vlasov.
45517
45518         Minus button in watch expression section doesn't overlap with the
45519         expression/value anymore.
45520
45521         * inspector/front-end/inspector.css:
45522         (.properties-tree.watch-expressions > li.hovered):
45523
45524 2012-10-15  Sheriff Bot  <webkit.review.bot@gmail.com>
45525
45526         Unreviewed, rolling out r131403.
45527         http://trac.webkit.org/changeset/131403
45528         https://bugs.webkit.org/show_bug.cgi?id=99420
45529
45530         Suspicious to cause Performance test failing (Requested by
45531         shinyak|gardenin on #webkit).
45532
45533         * dom/Document.cpp:
45534         (WebCore::Document::isValidName):
45535
45536 2012-10-15  Yury Semikhatsky  <yurys@chromium.org>
45537
45538         Web Inspector: restore watch expression expansion state
45539         https://bugs.webkit.org/show_bug.cgi?id=99304
45540
45541         Reviewed by Pavel Feldman.
45542
45543         Expand watch expression value and its properties if they were expanded
45544         before update.
45545
45546         Test: inspector/debugger/watch-expressions-preserve-expansion.html
45547
45548         * inspector/front-end/WatchExpressionsSidebarPane.js:
45549         (WebInspector.WatchExpressionTreeElement.prototype.onexpand):
45550         (WebInspector.WatchExpressionTreeElement.prototype.oncollapse):
45551         (WebInspector.WatchExpressionTreeElement.prototype.onattach):
45552         (WebInspector.WatchExpressionTreeElement.prototype._expression):
45553         (WebInspector.WatchedPropertyTreeElement):
45554         (WebInspector.WatchedPropertyTreeElement.prototype.onattach):
45555         (WebInspector.WatchedPropertyTreeElement.prototype.onexpand):
45556         (WebInspector.WatchedPropertyTreeElement.prototype.oncollapse):
45557         (WebInspector.WatchedPropertyTreeElement.prototype._propertyPath):
45558
45559 2012-10-15  Mike West  <mkwst@chromium.org>
45560
45561         Warn when CSP headers don't separate directives with ';'.
45562         https://bugs.webkit.org/show_bug.cgi?id=99274
45563
45564         Reviewed by Adam Barth.
45565
45566         A recent bug report exhibited confusion as to what role, exactly,
45567         semicolons play in Content Security Policy definitions. This patch
45568         adjusts the parser to warn web authors if a directive name is
45569         encountered while parsing a source list, which would almost certainly
45570         point to a missing semicolon. For example, something like:
45571
45572             script-src 'self' object-src 'self' style-src *
45573
45574         would throw two warnings, noting that 'object-src' and 'style-src' are
45575         probably meant as directives, and not as source expressions in the
45576         'script-src' source list.
45577
45578         Test: http/tests/security/contentSecurityPolicy/source-list-parsing-no-semicolon.html
45579
45580         * page/ContentSecurityPolicy.cpp:
45581         (WebCore::CSPSourceList::parse):
45582             Throw the new warning onto the console if the hostname of a source
45583             expression matches a CSP directive name.
45584         (WebCore::CSPDirectiveList::addDirective):
45585             Use the exciting new static variables so that the names of various
45586             directives are available outside of CSPDirectiveList::addDirective.
45587             These were previously defined as local static ASCIILiterals. Now
45588             they're static const char[] in an anonymous namespace.
45589         (WebCore::ContentSecurityPolicy::isDirectiveName):
45590             Static method that compares a string to all the known directive
45591             names, returning true if there's a (case-insensitive) match.
45592         (WebCore):
45593         (WebCore::ContentSecurityPolicy::reportDirectiveAsSourceExpression):
45594             A new warning message which should be printed when a directive name
45595             is encountered as a source expression. Matching the directive name
45596             is done via a new 'isDirectiveName' function which lives in an
45597             anonymous namespace along with the other CSP helper functions.
45598         * page/ContentSecurityPolicy.h:
45599             Added 'reportDirectiveAsSourceExpression' signature.
45600
45601 2012-10-15  Gyuyoung Kim  <gyuyoung.kim@samsung.com>
45602
45603         Unreviewed, rolling out r131349.
45604         http://trac.webkit.org/changeset/131349
45605         https://bugs.webkit.org/show_bug.cgi?id=97173
45606
45607         Revert r131349 because API test is broken by this commit.
45608
45609         * platform/efl/RunLoopEfl.cpp:
45610         (WebCore::RunLoop::RunLoop):
45611         (WebCore::RunLoop::~RunLoop):
45612
45613 2012-10-15  Nate Chapin  <japhet@chromium.org>
45614
45615         ResourceLoader::sendResourceLoadCallbacks() is backwards
45616         https://bugs.webkit.org/show_bug.cgi?id=99366
45617
45618         Reviewed by Daniel Bates.
45619
45620         No new tests, this function is uncalled but will be used
45621         in a later patch.
45622
45623         * loader/ResourceLoader.h:
45624         (WebCore::ResourceLoader::sendResourceLoadCallbacks):
45625
45626 2012-10-15  Dan Bernstein  <mitz@apple.com>
45627
45628         REGRESSION (r131365): WidthIterator::advance() is needlessly passed a GlyphBuffer in many cases
45629         https://bugs.webkit.org/show_bug.cgi?id=99413
45630
45631         Reviewed by Adele Peterson.
45632
45633         r131365 made Font::width() always pass a GlyphBuffer pointer to floatWidthForSimpleText and
45634         from there down to WidthIterator::advance(). However, when measuring the width of a run, a
45635         GlyphBuffer is only needed if font transforms (kerning and ligatures) need to be applied.
45636
45637         No new test, because there is no change in behavior.
45638
45639         * platform/graphics/Font.cpp:
45640         (WebCore::Font::width): Removed the local GlyphBuffer that was passed down to
45641         floatWidthForSimpleText().
45642         * platform/graphics/Font.h: Removed the GlyphBuffer* parameter to floatWidthForSimpleText.
45643         All but the above caller were passing 0.
45644         * platform/graphics/FontFastPath.cpp:
45645         (WebCore::Font::floatWidthForSimpleText): Removed the GlyphBuffer* parameter and added a
45646         local GlyphBuffer, which is passed by reference to WidthIterator::advance() only if
45647         typesetting features require it.
45648         (WebCore::Font::offsetForPositionForSimpleText): Updated for change to
45649         floatWidthForSimpleText.
45650         * platform/graphics/pango/FontPango.cpp:
45651         (WebCore::Font::floatWidthForComplexText): Ditto.
45652
45653 2012-10-15  Pablo Flouret  <pablof@motorola.com>
45654
45655         Add force parameter to DOMTokenList.toggle
45656         https://bugs.webkit.org/show_bug.cgi?id=99375
45657
45658         Reviewed by Darin Adler.
45659
45660         See http://dom.spec.whatwg.org/#dom-domtokenlist-toggle and
45661         https://www.w3.org/Bugs/Public/show_bug.cgi?id=18463
45662
45663         Essentially, the optional boolean force parameter, if present, makes
45664         toggle always add or remove a class.
45665
45666         No new tests, modified fast/dom/HTMLElement/script-tests/class-list.js
45667
45668         * html/DOMTokenList.cpp:
45669         (WebCore::DOMTokenList::toggle):
45670         (WebCore):
45671         * html/DOMTokenList.h:
45672         (DOMTokenList):
45673         * html/DOMTokenList.idl:
45674             New toggle() overload that takes a force parameter and calls
45675             addInternal() or removeInternal() based on it.
45676
45677 2012-10-15  Dan Bernstein  <mitz@apple.com>
45678
45679         Layout Test fast/text/justify-ideograph-leading-expansion.html is failing an assertion chromium mac
45680         https://bugs.webkit.org/show_bug.cgi?id=99406
45681
45682         Reviewed by Darin Adler.
45683
45684         * platform/graphics/WidthIterator.cpp:
45685         * platform/graphics/WidthIterator.h:
45686         (WebCore::WidthIterator::shouldApplyFontTransforms): Changed to return false if the run is
45687         shorter than 2 characters. 1-character runs are invariant under font transforms, and therefore
45688         Font::codePath() sends them through WidthIterator even on platforms where WidthIterator
45689         does not support kerning and ligatures.
45690
45691 2012-10-15  Michael Saboff  <msaboff@apple.com>
45692
45693         Add 8 bit patch to Document::isValidName() for the non ASCII case
45694         https://bugs.webkit.org/show_bug.cgi?id=99402
45695
45696         Reviewed by Darin Adler.
45697
45698         Added 8 bit path to complete the processing of an 8 bit names without up-converting.
45699
45700         * dom/Document.cpp:
45701         (WebCore::isValidNameNonASCII):
45702         (WebCore::Document::isValidName):
45703
45704 2012-10-15  Vlad Grecescu  <igrecesc@adobe.com>, Douglas Stockwell  <dstockwell@chromium.org>
45705
45706         Support for background-clip:content-box and padding-box with border-radius
45707         https://bugs.webkit.org/show_bug.cgi?id=23166
45708
45709         Reviewed by Simon Fraser.
45710
45711         Test: fast/css/background-clip-radius-values.html
45712
45713         * rendering/RenderBoxModelObject.cpp:
45714         (WebCore::RenderBoxModelObject::clipRoundedInnerRect):
45715         (WebCore):
45716         (WebCore::RenderBoxModelObject::paintFillLayerExtended):
45717         * rendering/RenderBoxModelObject.h:
45718
45719 2012-10-15  Byungwoo Lee  <bw80.lee@samsung.com>
45720
45721         Fix unused parameter build warning.
45722         https://bugs.webkit.org/show_bug.cgi?id=99400
45723
45724         Reviewed by Gyuyoung Kim.
45725
45726         Remove the name of unused parameters to fix the build warning (-Wunused-parameter).
45727
45728         * platform/network/soup/ResourceErrorSoup.cpp:
45729         (WebCore::ResourceError::tlsError):
45730
45731 2012-10-15  Kenichi Ishibashi  <bashi@chromium.org>
45732
45733         [WebSocket] WebSocketInflater should handle BFINAL = 1 blocks
45734         https://bugs.webkit.org/show_bug.cgi?id=99282
45735
45736         Reviewed by Yuta Kitamura.
45737
45738         Reset decompression state if WebSocketInflater decompress a block with
45739         BFINAL set to 1.
45740
45741         Test: http/tests/websocket/tests/hybi/deflate-frame-set-bfinal.html
45742
45743         * Modules/websockets/WebSocketDeflater.cpp:
45744         (WebCore::WebSocketInflater::addBytes):
45745         Reset decompression state if inflate() returns Z_STREAM_END, which means the BFINAL
45746         of the current block was set to 1.
45747         (WebCore::WebSocketInflater::finish): Add an assertion.
45748
45749 2012-10-15  Simon Fraser  <simon.fraser@apple.com>
45750
45751         Fix GraphicsLayer visible rect computation when scrolling in WebKit1
45752         https://bugs.webkit.org/show_bug.cgi?id=99385
45753
45754         Reviewed by Dean Jackson, Tim Horton.
45755
45756         RenderLayerCompositor always used frameView->frameRect() as the visible
45757         rect on the root used for GraphicsLayer visibleRect computation. This
45758         was wrong for subframes, which require a rect with an origin of (0,0)
45759         and size of the contentsSize().
45760         
45761         It was also wrong when the scrolling is not represented in the GraphicsLayer
45762         tree. When scrolling is done elsewhere, we need to use the ScrollView's
45763         visibleContentRect().
45764
45765         Tests: compositing/visible-rect/scrolled.html
45766                compositing/visible-rect/iframe-and-layers.html
45767                compositing/visible-rect/iframe-no-layers.html
45768
45769         * rendering/RenderLayerCompositor.cpp:
45770         (WebCore::RenderLayerCompositor::flushPendingLayerChanges):
45771
45772 2012-10-15  Julien Chaffraix  <jchaffraix@webkit.org>
45773
45774         Remove page visibility hidden histograms
45775         https://bugs.webkit.org/show_bug.cgi?id=99360
45776
45777         Reviewed by Ojan Vafai.
45778
45779         The 2 page visibility hidden histograms were added in http://webkit.org/b/85537 to
45780         investigate a potential optimization where we would destroy the render tree when
45781         a tab was hidden. The optimization was abandoned but the histograms were never
45782         removed. They are too narrow to be reused so this change removes them.
45783
45784         * page/Page.cpp:
45785         (WebCore::Page::setVisibilityState):
45786
45787 2012-10-15  Ryuan Choi  <ryuan.choi@samsung.com>
45788
45789         REGRESSION: Build break after r131373 when ACCELERATED_COMPOSITING disabled
45790         https://bugs.webkit.org/show_bug.cgi?id=99397
45791
45792         Unreviewed, build fix.
45793
45794         * page/scrolling/ScrollingCoordinator.cpp:
45795         (WebCore::ScrollingCoordinator::updateMainFrameScrollPosition):
45796
45797 2012-10-14  Kent Tamura  <tkent@chromium.org>
45798
45799         Input elements with multiple fields UI should set appropriate direction for browser locale automatically
45800         https://bugs.webkit.org/show_bug.cgi?id=99291
45801
45802         Reviewed by Hajime Morita.
45803
45804         Input elemnts with multiple fields UI ignores HTML dir attribute or CSS
45805         direction property, and their direction should be decided by the browser
45806         locale. If the browser locale is a RTL language, date/time input fields
45807         show formats/digits for the RTL language. The layout should be always
45808         RTL regardless of the direction in such case.
45809
45810         Test: fast/forms/date-multiple-fields/date-multiple-fields-appearance-l10n.html
45811
45812         * html/BaseMultipleFieldsDateAndTimeInputType.cpp:
45813         (WebCore::BaseMultipleFieldsDateAndTimeInputType::updateInnerTextValue):
45814         Set approriate dir attribute value to the child element of the UA shadow root.
45815
45816 2012-10-15  Andreas Kling  <kling@webkit.org>
45817
45818         StyleResolver: Garbage collect the matched properties cache on a timer.
45819         <http://webkit.org/b/98625>
45820
45821         Reviewed by Eric Seidel.
45822
45823         Sweeping the matched properties cache once every 100 additions ended up choking RoboHornet's
45824         svgresize.html benchmark. Move it to a single-shot timer that's refreshed every 100 additions
45825         and defers the actual sweep for 60 seconds.
45826
45827         * css/StyleResolver.cpp:
45828         (WebCore::StyleResolver::StyleResolver):
45829         (WebCore::StyleResolver::sweepMatchedPropertiesCache):
45830         (WebCore::StyleResolver::addToMatchedPropertiesCache):
45831         * css/StyleResolver.h:
45832         (StyleResolver):
45833
45834 2012-10-15  Arnaud Renevier  <a.renevier@sisa.samsung.com>
45835
45836         [GStreamer] GstCaps are leaked when building with gstreamer-1.0
45837         https://bugs.webkit.org/show_bug.cgi?id=99362
45838
45839         Reviewed by Martin Robinson.
45840
45841         Implement GRefPtr<GstCaps> adoptGRef(GstCaps*).
45842
45843         Change webkitGstGetPadCaps signature to return a GRefPtr<GstCaps>, and
45844         use GRefPtr<GstCaps> also in webkitVideoSinkRender to simply GstCaps
45845         refeference count.
45846
45847         Covered by existing tests.
45848
45849         * platform/graphics/gstreamer/GRefPtrGStreamer.cpp:
45850         (WTF::adoptGRef):
45851         (WTF):
45852         * platform/graphics/gstreamer/GRefPtrGStreamer.h:
45853         (WTF):
45854         * platform/graphics/gstreamer/GStreamerVersioning.cpp:
45855         (webkitGstGetPadCaps):
45856         * platform/graphics/gstreamer/GStreamerVersioning.h:
45857         * platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:
45858         (WebCore::MediaPlayerPrivateGStreamer::naturalSize):
45859         * platform/graphics/gstreamer/VideoSinkGStreamer.cpp:
45860         (webkitVideoSinkRender):
45861
45862 2012-10-15  Tony Chang  <tony@chromium.org>
45863
45864         Unreviewed, rolling out r131367.
45865         http://trac.webkit.org/changeset/131367
45866         https://bugs.webkit.org/show_bug.cgi?id=98666
45867
45868         crashes on Apple Mac
45869
45870         * css/html.css:
45871         (input[type="range"]::-webkit-slider-container, input[type="range"]::-webkit-media-slider-container):
45872         (input[type="range"]::-webkit-slider-runnable-track):
45873         (input[type="range"]::-webkit-slider-thumb, input[type="range"]::-webkit-media-slider-thumb):
45874         * css/mediaControlsChromium.css:
45875         (input[type="range"]::-webkit-media-slider-thumb):
45876         * css/mediaControlsChromiumAndroid.css:
45877         (input[type="range"]::-webkit-media-slider-thumb):
45878         * html/RangeInputType.cpp:
45879         (WebCore::RangeInputType::listAttributeTargetChanged):
45880         * html/shadow/SliderThumbElement.cpp:
45881         (WebCore::RenderSliderThumb::layout):
45882         (WebCore):
45883         (WebCore::RenderSliderContainer::RenderSliderContainer):
45884         (RenderSliderContainer):
45885         (WebCore::RenderSliderContainer::layout):
45886         * html/shadow/SliderThumbElement.h:
45887         (RenderSliderThumb):
45888         * rendering/RenderSlider.cpp:
45889         (WebCore):
45890         (WebCore::RenderSlider::RenderSlider):
45891         (WebCore::RenderSlider::layout):
45892         * rendering/RenderSlider.h:
45893         (WebCore):
45894         (RenderSlider):
45895         (WebCore::RenderSlider::renderName):
45896         (WebCore::RenderSlider::isSlider):
45897         (WebCore::RenderSlider::requiresForcedStyleRecalcPropagation):
45898         (WebCore::toRenderSlider):
45899
45900 2012-10-15  Dan Bernstein  <mitz@apple.com>
45901
45902         Try to fix the build again after r131375.
45903
45904         * platform/graphics/WidthIterator.h:
45905         (WebCore::WidthIterator::shouldApplyFontTransforms): Removed the length check from here.
45906
45907 2012-10-15  Dan Bernstein  <mitz@apple.com>
45908
45909         Try to fix assertion failures on ports that do not support kerning and ligatures on the fast
45910         code path after r131365.
45911
45912         * platform/graphics/WidthIterator.cpp:
45913         (WebCore::applyFontTransforms): Changed the early return condition to not bother with 1-glyph
45914         sequences.
45915         * platform/graphics/WidthIterator.h:
45916         (WebCore::WidthIterator::shouldApplyFontTransforms): Changed to return false if the run is
45917         shorter than 2 characters.
45918
45919 2012-10-15  Dan Bernstein  <mitz@apple.com>
45920
45921         Try to fix the Chromium Mac build after r131365.
45922
45923         * platform/graphics/GlyphBuffer.h:
45924         (WebCore::GlyphBufferAdvance::height): Added.
45925         * platform/graphics/skia/FontSkia.cpp:
45926         (WebCore::Font::drawGlyphs): Changed to use accessors for the GlyphBufferAdvance’s width and height.
45927
45928 2012-10-15  Simon Fraser  <simon.fraser@apple.com>
45929
45930         Ensure that GraphicsLayer positions are updated while doing threaded scrolling
45931         https://bugs.webkit.org/show_bug.cgi?id=99372
45932
45933         Reviewed by Anders Carlsson.
45934
45935         When doing threaded scrolling, the scrolling thread updates the positions of CALayers,
45936         but doesn't update GraphicsLayers. This means that code that relies on GraphicsLayer positions
45937         works incorrectly.
45938         
45939         Threaded scrolling is not testabled in layout tests.
45940
45941         * page/scrolling/ScrollingCoordinator.cpp:
45942         (WebCore::ScrollingCoordinator::updateMainFrameScrollPosition):
45943         * platform/graphics/GraphicsLayer.h:
45944         (GraphicsLayer):
45945         (WebCore::GraphicsLayer::syncPosition):
45946
45947 2012-10-15  Tommy Widenflycht  <tommyw@google.com>
45948
45949         MediaStream API: Implement RTCDataChannel
45950         https://bugs.webkit.org/show_bug.cgi?id=99080
45951
45952         Reviewed by Adam Barth.
45953
45954         This patch introduces RTCDataChannel which is a pipe for sending data between two RTCPeerConnections.
45955         Since the data channel belongs to a peer connection object I have reused part of its infrastructure.
45956
45957         Not currently testable. My next patch will add the chromium WebKit functionality, together with mocks and tests.
45958
45959         * CMakeLists.txt:
45960         * GNUmakefile.list.am:
45961         * Modules/mediastream/RTCDataChannel.cpp: Added.
45962         (WebCore):
45963         (WebCore::RTCDataChannel::create):
45964         (WebCore::RTCDataChannel::RTCDataChannel):
45965         (WebCore::RTCDataChannel::~RTCDataChannel):
45966         (WebCore::RTCDataChannel::label):
45967         (WebCore::RTCDataChannel::reliable):
45968         (WebCore::RTCDataChannel::readyState):
45969         (WebCore::RTCDataChannel::bufferedAmount):
45970         (WebCore::RTCDataChannel::binaryType):
45971         (WebCore::RTCDataChannel::setBinaryType):
45972         (WebCore::RTCDataChannel::send):
45973         (WebCore::RTCDataChannel::close):
45974         (WebCore::RTCDataChannel::readyStateChanged):
45975         (WebCore::RTCDataChannel::dataArrived):
45976         (WebCore::RTCDataChannel::error):
45977         (WebCore::RTCDataChannel::descriptor):
45978         (WebCore::RTCDataChannel::interfaceName):
45979         (WebCore::RTCDataChannel::scriptExecutionContext):
45980         (WebCore::RTCDataChannel::stop):
45981         (WebCore::RTCDataChannel::eventTargetData):
45982         (WebCore::RTCDataChannel::ensureEventTargetData):
45983         * Modules/mediastream/RTCDataChannel.h: Added.
45984         (WebCore):
45985         (RTCDataChannel):
45986         (WebCore::RTCDataChannel::refEventTarget):
45987         (WebCore::RTCDataChannel::derefEventTarget):
45988         * Modules/mediastream/RTCDataChannel.idl: Added.
45989         * Modules/mediastream/RTCDataChannelEvent.cpp: Added.
45990         (WebCore):
45991         (WebCore::RTCDataChannelEvent::create):
45992         (WebCore::RTCDataChannelEvent::RTCDataChannelEvent):
45993         (WebCore::RTCDataChannelEvent::~RTCDataChannelEvent):
45994         (WebCore::RTCDataChannelEvent::channel):
45995         (WebCore::RTCDataChannelEvent::interfaceName):
45996         * Modules/mediastream/RTCDataChannelEvent.h: Added.
45997         (WebCore):
45998         (RTCDataChannelEvent):
45999         * Modules/mediastream/RTCDataChannelEvent.idl: Added.
46000         * Modules/mediastream/RTCPeerConnection.cpp:
46001         (WebCore::RTCPeerConnection::createDataChannel):
46002         (WebCore):
46003         (WebCore::RTCPeerConnection::close):
46004         (WebCore::RTCPeerConnection::didAddRemoteDataChannel):
46005         (WebCore::RTCPeerConnection::stop):
46006         * Modules/mediastream/RTCPeerConnection.h:
46007         (WebCore):
46008         (RTCPeerConnection):
46009         * Modules/mediastream/RTCPeerConnection.idl:
46010         * WebCore.gypi:
46011         * dom/EventNames.h:
46012         (WebCore):
46013         * dom/EventNames.in:
46014         * dom/EventTargetFactory.in:
46015         * platform/mediastream/RTCDataChannelDescriptor.cpp: Added.
46016         (WebCore):
46017         (WebCore::RTCDataChannelDescriptor::create):
46018         (WebCore::RTCDataChannelDescriptor::RTCDataChannelDescriptor):
46019         (WebCore::RTCDataChannelDescriptor::~RTCDataChannelDescriptor):
46020         (WebCore::RTCDataChannelDescriptor::readyStateChanged):
46021         (WebCore::RTCDataChannelDescriptor::dataArrived):
46022         (WebCore::RTCDataChannelDescriptor::error):
46023         * platform/mediastream/RTCDataChannelDescriptor.h: Added.
46024         (WebCore):
46025         (RTCDataChannelDescriptorClient):
46026         (WebCore::RTCDataChannelDescriptorClient::~RTCDataChannelDescriptorClient):
46027         (RTCDataChannelDescriptor):
46028         (ExtraData):
46029         (WebCore::RTCDataChannelDescriptor::ExtraData::~ExtraData):
46030         (WebCore::RTCDataChannelDescriptor::client):
46031         (WebCore::RTCDataChannelDescriptor::setClient):
46032         (WebCore::RTCDataChannelDescriptor::label):
46033         (WebCore::RTCDataChannelDescriptor::reliable):
46034         (WebCore::RTCDataChannelDescriptor::readyState):
46035         (WebCore::RTCDataChannelDescriptor::bufferedAmount):
46036         (WebCore::RTCDataChannelDescriptor::setBufferedAmount):
46037         (WebCore::RTCDataChannelDescriptor::extraData):
46038         (WebCore::RTCDataChannelDescriptor::setExtraData):
46039         * platform/mediastream/RTCPeerConnectionHandler.cpp:
46040         (RTCPeerConnectionHandlerDummy):
46041         (WebCore::RTCPeerConnectionHandlerDummy::openDataChannel):
46042         (WebCore):
46043         (WebCore::RTCPeerConnectionHandlerDummy::sendStringData):
46044         (WebCore::RTCPeerConnectionHandlerDummy::sendRawData):
46045         (WebCore::RTCPeerConnectionHandlerDummy::closeDataChannel):
46046         * platform/mediastream/RTCPeerConnectionHandler.h:
46047         (WebCore):
46048         (RTCPeerConnectionHandler):
46049         * platform/mediastream/RTCPeerConnectionHandlerClient.h:
46050         (WebCore):
46051         (RTCPeerConnectionHandlerClient):
46052         * platform/mediastream/chromium/RTCPeerConnectionHandlerChromium.cpp:
46053         (WebCore::RTCPeerConnectionHandlerChromium::openDataChannel):
46054         (WebCore):
46055         (WebCore::RTCPeerConnectionHandlerChromium::sendStringData):
46056         (WebCore::RTCPeerConnectionHandlerChromium::sendRawData):
46057         (WebCore::RTCPeerConnectionHandlerChromium::closeDataChannel):
46058         * platform/mediastream/chromium/RTCPeerConnectionHandlerChromium.h:
46059         (RTCPeerConnectionHandlerChromium):
46060
46061 2012-10-15  Joshua Bell  <jsbell@chromium.org>
46062
46063         IndexedDB: Pass type of error causing abort to IDBTransaction::onAbort
46064         https://bugs.webkit.org/show_bug.cgi?id=99097
46065
46066         Reviewed by Tony Chang.
46067
46068         Include the error causing the abort in the callback from back end to
46069         front end so it can be exposed on the IDBTransaction.error property.
46070
46071         Test: lazy-index-population.html
46072
46073         * Modules/indexeddb/IDBDatabaseBackendImpl.cpp:
46074         (WebCore::IDBDatabaseBackendImpl::setVersionInternal):
46075         (WebCore::IDBDatabaseBackendImpl::setIntVersionInternal):
46076         * Modules/indexeddb/IDBDatabaseCallbacks.h:
46077         * Modules/indexeddb/IDBObjectStoreBackendImpl.cpp:
46078         (WebCore::IDBObjectStoreBackendImpl::setIndexKeys):
46079         (WebCore::IDBObjectStoreBackendImpl::putInternal):
46080         * Modules/indexeddb/IDBTransaction.cpp:
46081         (WebCore::IDBTransaction::onAbort):
46082         * Modules/indexeddb/IDBTransaction.h:
46083         (IDBTransaction):
46084         * Modules/indexeddb/IDBTransactionBackendImpl.cpp:
46085         (WebCore::IDBTransactionBackendImpl::abort):
46086         (WebCore):
46087         (WebCore::IDBTransactionBackendImpl::commit):
46088         * Modules/indexeddb/IDBTransactionBackendImpl.h:
46089         (IDBTransactionBackendImpl):
46090         * Modules/indexeddb/IDBTransactionCallbacks.h:
46091         (IDBTransactionCallbacks):
46092         * inspector/InspectorIndexedDBAgent.cpp:
46093         (WebCore):
46094
46095 2012-10-15  Mike Reed  <reed@google.com>
46096
46097         In Skia's ImageFrame, only set the isOpaque flag when the frame is complete
46098         https://bugs.webkit.org/show_bug.cgi?id=99326
46099
46100         Reviewed by Stephen White.
46101
46102         No new tests -- existing layouttests exercise this, esp. 
46103           png-partial-load-no-alpha.html
46104           webp-partial-load.html
46105         These two fail if skia is told that these are opaque, which it is w/o this CL.
46106
46107         At the moment, Skia has a hack to ignore the opaque-setting, so that these tests will pass as is.
46108         This change is to first, correct webkit to only set isOpaque when the frame is complete, so that
46109         in a later change, Skia can remove the hack, and re-enable its opaqueness optimization.
46110
46111         * platform/image-decoders/skia/ImageDecoderSkia.cpp:
46112         (WebCore::ImageFrame::ImageFrame):
46113         (WebCore::ImageFrame::operator=):
46114         (WebCore::ImageFrame::zeroFillPixelData):
46115         (WebCore::ImageFrame::hasAlpha):
46116         (WebCore::ImageFrame::setHasAlpha):
46117         (WebCore::ImageFrame::setStatus):
46118
46119 2012-10-12  Tony Chang  <tony@chromium.org>
46120
46121         input[type=range] as a flex item renders thumb at wrong position
46122         https://bugs.webkit.org/show_bug.cgi?id=98666
46123
46124         Reviewed by Ojan Vafai.
46125
46126         Replace RenderSlider implementation with new flexbox and clean up the shadow DOM.
46127         The previous code was trying to set the height to 100% and had a bunch of hacks in
46128         the renderer code to set an explicit height. Using the new flexbox allows us to
46129         remove these renderer hacks.
46130
46131         Test: css3/flexbox/flexitem-stretch-range.html
46132
46133         * css/html.css:
46134         (input[type="range"]::-webkit-slider-container, input[type="range"]::-webkit-media-slider-container): Use new flexbox.
46135         (input[type="range"]::-webkit-slider-runnable-track): Use new flexbox.
46136         (input[type="range"]::-webkit-slider-thumb, input[type="range"]::-webkit-media-slider-thumb): Remove relative positioning since we're
46137         no longer setting top/left in the layout code.
46138         * css/mediaControlsChromium.css: Remove redundant styles and bottom: 1px hack.
46139         * css/mediaControlsChromiumAndroid.css: Remove redundant styles and bottom: 1px hack.
46140         * html/RangeInputType.cpp:
46141         (WebCore::RangeInputType::listAttributeTargetChanged): We need to force a layout
46142         since the height of the control should change when adding/removing a datalist.
46143         * html/shadow/SliderThumbElement.cpp:
46144         (WebCore::RenderSliderContainer::RenderSliderContainer): Use new flexbox.
46145         (WebCore::RenderSliderContainer::computeLogicalHeight): Rather than setting style()->height() in layout, just compute the correct
46146         height when asked.  If we have a datalist, we increase the height (same code as before).  If we're vertical,
46147         we use the intrinsic size.
46148         (WebCore::RenderSliderContainer::layout): Remove extra layout code, but handle the position of the thumb.
46149         This used to be handled in the thumb's layout method, but I deleted that.
46150         * html/shadow/SliderThumbElement.h:
46151         * rendering/RenderSlider.cpp:
46152         (WebCore::RenderSlider::RenderSlider): Use new flexbox.
46153         (WebCore::RenderSlider::layout): Set the limiter size to the size of the thumb. This is necessary
46154         for fast/css/unknown-pseudo-element-matching.html which tries to set the height of the thumb to 1px
46155         and expects the input to also have a height of 1px.  It worked before because the height of the input
46156         didn't depend on the height of its children.
46157         * rendering/RenderSlider.h: Fix indentation.
46158         (RenderSlider): Use new flexible box.
46159
46160 2012-10-15  Julien Chaffraix  <jchaffraix@webkit.org>
46161
46162         Make RenderTable columns() and columnPositions() return a const reference
46163         https://bugs.webkit.org/show_bug.cgi?id=99339
46164
46165         Reviewed by Abhishek Arya.
46166
46167         The 2 getters were returning a non-const reference. This means that callers
46168         could have modified the Vector's where only FixedTableLayout and AutoTableLayout
46169         were expected to (for columnPositions(), no one should modify columns()).
46170
46171         Refactoring covered by existing tests.
46172
46173         * rendering/AutoTableLayout.cpp:
46174         (WebCore::AutoTableLayout::layout):
46175         * rendering/FixedTableLayout.cpp:
46176         (WebCore::FixedTableLayout::layout):
46177         Updated those functions to use the new setter.
46178
46179         * rendering/RenderTable.h:
46180         (WebCore::RenderTable::columns):
46181         (WebCore::RenderTable::columnPositions):
46182         Made the 2 functions return a const reference. They are also const now!
46183
46184         (WebCore::RenderTable::setColumnPosition):
46185         Added this setter.
46186
46187         * rendering/RenderTableSection.cpp:
46188         (WebCore::RenderTableSection::addCell):
46189         (WebCore::RenderTableSection::setCellLogicalWidths):
46190         (WebCore::RenderTableSection::dirtiedColumns):
46191         Updated to use a const reference.
46192
46193 2012-10-15  Dan Bernstein  <mitz@apple.com>
46194
46195         WebCore part of <rdar://problem/12470680> Font’s fast code path doesn’t support kerning and ligatures
46196         https://bugs.webkit.org/show_bug.cgi?id=99113
46197
46198         Reviewed by Tim Horton.
46199
46200         * WebCore.exp.in: Exported wkCTFontTransformGlyphs.
46201         * platform/graphics/Font.cpp:
46202         (WebCore::Font::width): Added a local GlyphBuffer to pass to floatWidthForSimpleText().
46203         (WebCore::Font::codePath): Rather than always use the complex code path when any typesetting
46204         features are enabled, changed to do so only if WidthIterator doesn’t support this Font’s
46205         typesetting features.
46206         * platform/graphics/FontFastPath.cpp:
46207         (WebCore::Font::getGlyphsAndAdvancesForSimpleText): Added a local GlyphBuffer to pass to
46208         WidthIterator::advance() when advancing to or from the range of interest. Added a FIXME
46209         about how this is not entirely correct when kerning or ligatures are enabled.
46210         (WebCore::Font::selectionRectForSimpleText): Added a local GlyphBuffer to pass to
46211         WidthIterator::advance() when advancing to or from the range of interest.
46212         (WebCore::Font::offsetForPositionForSimpleText): Updated for the change to
46213         WidthIterator::advanceOneCharacter().
46214         * platform/graphics/SimpleFontData.h:
46215         (WebCore::SimpleFontData::applyTransforms): Added. Calls wkCTFontTransformGlyphs() where
46216         available.
46217         * platform/graphics/WidthIterator.cpp:
46218         (WebCore::WidthIterator::WidthIterator): Added initializer for the new m_typesettingFeatures
46219         data member.
46220         (OriginalAdvancesForCharacterTreatedAsSpace): Added this data type, used to track spaces and
46221         characters treated as spaces.
46222         (WebCore::applyFontTransforms): Added. Applies shaping and positioning transforms, as
46223         required by the typesetting features, to the glyphs recently added to a GlyphBuffer, while
46224         maintaining the advances of characters that are treated as spaces and the characters
46225         preceding them, if necessary.
46226         (WebCore::WidthIterator::advanceInternal): Added calls to applyFontTransforms() at the end
46227         of each contiguous run of glyphs from the same font. Also added code to maintain a vector
46228         of spaces and characters treated as space.
46229         (WebCore::WidthIterator::advanceOneCharacter): Changed the parameter type from a pointer to
46230         a reference.
46231         * platform/graphics/WidthIterator.h:
46232         (WebCore::WidthIterator::supportsTypesettingFeatures): Added. Returns whether WidthIterator
46233         instances support the typesetting features of the given font. Returns true if the font is
46234         not a screen font and its typesetting features are kerning, ligatures or both.
46235         (WebCore::WidthIterator::shouldApplyFontTransforms): Added. Returns true if the typesetting
46236         features include kerning or ligatures.
46237         * platform/mac/WebCoreSystemInterface.h: Defined wkCTFontTransformOptions and declared
46238         wkCTFontTransformGlyphs.
46239         * platform/mac/WebCoreSystemInterface.mm: Defined wkCTFontTransformGlyphs.
46240         * rendering/svg/SVGTextMetricsBuilder.cpp:
46241         (WebCore::SVGTextMetricsBuilder::advanceSimpleText): Added a local GlyphBuffer to pass to
46242         WidthIterator::advance().
46243         * rendering/svg/SVGTextRunRenderingContext.cpp:
46244         (WebCore::SVGTextRunRenderingContext::floatWidthUsingSVGFont): Ditto.
46245
46246 2012-10-15  Mark Lam  <mark.lam@apple.com>
46247
46248         Fix build broken by r131348.
46249         https://bugs.webkit.org/show_bug.cgi?id=97533.
46250
46251         Not reviewed.
46252
46253         * rendering/RenderView.cpp:
46254         (WebCore::RenderView::layoutContent):
46255
46256 2012-10-15  Andreas Kling  <kling@webkit.org>
46257
46258         Remove WTF::fastDeleteAllValues().
46259         <http://webkit.org/b/99345>
46260
46261         Reviewed by Eric Seidel.
46262
46263         It was only used to fastDelete() a class that was already overriding operator delete
46264         by way of WTF_MAKE_FAST_ALLOCATED anyway.
46265
46266         * css/CSSParser.cpp:
46267         (WebCore::CSSParser::~CSSParser):
46268
46269 2012-10-15  Levi Weintraub  <leviw@chromium.org>
46270
46271         Regression r130057: incorrect block pref width for alternating InlineFlow and inline Replaced
46272         https://bugs.webkit.org/show_bug.cgi?id=99194
46273
46274         Reviewed by Eric Seidel.
46275
46276         Correctly breaking lines after inline replaced elements that follow inline flows. Previously, alternating
46277         these two types of elements would cause us to increase our preferred width forever.
46278
46279         Test: fast/block/block-with-inline-replaced-children-in-inline-flows.html
46280
46281         * rendering/RenderBlock.cpp:
46282         (WebCore::RenderBlock::computeInlinePreferredLogicalWidths):
46283
46284 2012-10-15  Emil A Eklund  <eae@chromium.org>
46285
46286         Revert rounding change in RenderTable::paintObject
46287         https://bugs.webkit.org/show_bug.cgi?id=99364
46288
46289         Reviewed by Levi Weintraub.
46290
46291         Bug 91410 changed RenderTable::paintObject to round the offset
46292         in order to avoid table-background bleed through. The root cause
46293         for that has since been fixed and the rounding workaround is no
46294         longer needed. This change reverts the code change from bug
46295         91410 while preserving the test added as a part of that change
46296         as it now passes without the workaround.
46297
46298         No new tests, covered by fast/sub-pixel/table-rows-no-gaps-expected.html
46299
46300         * rendering/RenderTable.cpp:
46301         (WebCore::RenderTable::paintObject):
46302         Remove unnecessary rounding.
46303
46304 2012-10-15  Michelangelo De Simone  <michelangelo@webkit.org>
46305
46306         [CSS Shaders] Add CustomFilterProgramType to CustomFilterProgramInfo
46307         https://bugs.webkit.org/show_bug.cgi?id=96448
46308
46309         Reviewed by Kenneth Rohde Christiansen.
46310
46311         CustomFilterProgramInfo has been refactored to decouple the CustomFilterProgramType from
46312         the CustomFilterProgramMixSetting: m_mixSettings.enabled was redundant in light of the fact
46313         that m_programType encoded the very same information. Dependencies have been updated to reflect
46314         this change.
46315
46316         Current tests already cover this code.
46317
46318         * css/CSSComputedStyleDeclaration.cpp: 
46319         (WebCore::CSSComputedStyleDeclaration::valueForFilter): The check for mixSettings.enabled has been replaced
46320         by an explicit check for PROGRAM_TYPE_BLENDS_ELEMENT_TEXTURE program type.
46321         * css/StyleResolver.cpp:
46322         (WebCore::StyleResolver::createCustomFilterOperation): Setting the program type explicitly while creating a
46323         new filter program.
46324         * platform/graphics/filters/CustomFilterProgram.cpp:
46325         (WebCore::CustomFilterProgram::CustomFilterProgram): CustomFilterProgram's constructor has been updated to
46326         reflect the need of setting the program type explicitly.
46327         (WebCore::CustomFilterProgram::programInfo): Updated to create new CustomFilterProgramInfo setting the program
46328         type explicitly.
46329         * platform/graphics/filters/CustomFilterProgram.h:
46330         * platform/graphics/filters/CustomFilterProgramInfo.cpp:
46331         (WebCore::CustomFilterProgramInfo::CustomFilterProgramInfo): Added m_programType and udpated the related getter.
46332         (WebCore::CustomFilterProgramInfo::hash): ditto
46333         (WebCore::CustomFilterProgramInfo::operator==): MixSettings' equality check is being performed only whether
46334         the CustomFilterProgramInfo's program type is PROGRAM_TYPE_BLENDS_ELEMENT_TEXTURE.
46335         * platform/graphics/filters/CustomFilterProgramInfo.h:
46336         (WebCore::CustomFilterProgramMixSettings::CustomFilterProgramMixSettings): Got rid of the redundant enabled flag.
46337         (WebCore::CustomFilterProgramMixSettings::operator==): ditto
46338         (CustomFilterProgramInfo):
46339         (WebCore::CustomFilterProgramInfo::programType):
46340         * platform/graphics/filters/CustomFilterValidatedProgram.cpp: The right shader validator is now being
46341         created according to the program type.
46342         (WebCore::CustomFilterValidatedProgram::CustomFilterValidatedProgram):
46343         (WebCore::CustomFilterValidatedProgram::rewriteMixVertexShader): The reference to MixSettings' enabled flag
46344         has been replaced with a check for the program type.
46345         (WebCore::CustomFilterValidatedProgram::rewriteMixFragmentShader): ditto
46346         * rendering/style/StyleCustomFilterProgram.h:
46347         (WebCore::StyleCustomFilterProgram::create): Updated to be aware of the program type.
46348         (WebCore::StyleCustomFilterProgram::StyleCustomFilterProgram): ditto
46349
46350 2012-10-15  Joshua Bell  <jsbell@chromium.org>
46351
46352         IndexedDB: Key paths should support non-ASCII identifiers
46353         https://bugs.webkit.org/show_bug.cgi?id=98814
46354
46355         Reviewed by Kentaro Hara.
46356
46357         Update the parser for key paths to use the unicode classes from
46358         the IdentifierName production in ECMA-262.
46359
46360         Test: storage/indexeddb/keypath-basics.html
46361
46362         * Modules/indexeddb/IDBKeyPath.cpp:
46363         (WebCore):
46364         (WebCore::IDBKeyPathLexer::lexIdentifier):
46365
46366 2012-10-15  Yael Aharon  <yael.aharon@intel.com>
46367
46368         [EFL][WK2][Texmap] Set gl context in GraphicsContext3DPrivate
46369         https://bugs.webkit.org/show_bug.cgi?id=99325
46370
46371         Reviewed by Kenneth Rohde Christiansen.
46372
46373         Based on a patch from Regina Chung.
46374         This piece of code was lost in the final patch of https://bugs.webkit.org/show_bug.cgi?id=96627.
46375         The gl context is used as key in a hash map and cannot be NULL.
46376
46377         No new tests. Accelerated compositing is not yet enabled in the EFL port.
46378
46379         * platform/graphics/efl/GraphicsContext3DEfl.cpp:
46380         (WebCore::GraphicsContext3D::GraphicsContext3D):
46381
46382 2012-10-15  Mike West  <mkwst@chromium.org>
46383
46384         Console messages containing long URLs should cut at some reasonable length.
46385         https://bugs.webkit.org/show_bug.cgi?id=97980
46386
46387         Reviewed by Pavel Feldman.
46388
46389         This patch lightly modifies the current styling of linkified URLs inside
46390         console messages in order to cut them down to some reasonable size for
46391         viewing. The middle of the URL is snipped out such that the whole
46392         thing fits into 150 characters. This only effects the displayed text;
46393         the link's href isn't changed; the link remains available via the
46394         context menu, accessible via the title attribute, and clicking it still
46395         takes the user directly to the resource in question.
46396
46397         Test: inspector/console/console-trim-long-urls.html
46398
46399         * inspector/front-end/ResourceUtils.js:
46400         (WebInspector.linkifyURLAsNode):
46401             Trim the middle of the URL to bring the whole string down to  down
46402             to 150 characters, and set the link's title to the full URL.
46403
46404 2012-10-15  Tony Chang  <tony@chromium.org>
46405
46406         Add computeLogicalHeight override methods to RenderView and RenderMultiColumnSet
46407         https://bugs.webkit.org/show_bug.cgi?id=99348
46408
46409         Reviewed by Ojan Vafai.
46410
46411         Add computeLogicalHeight to the last 2 RenderBoxes that override the method.
46412         I'm unable to remove RenderMultiColumnSet::updateLogicalHeight and make the method
46413         non-virtual since it sets ComputedColumnHeight.  I'd like to remove this
46414         eventually.
46415
46416         No new tests, this is just a code refactor.
46417
46418         * rendering/RenderMultiColumnSet.cpp:
46419         (WebCore::RenderMultiColumnSet::updateLogicalHeight): Set computedColumnHeight.
46420         (WebCore::RenderMultiColumnSet::computeLogicalHeight):
46421         (WebCore):
46422         * rendering/RenderMultiColumnSet.h:
46423         (RenderMultiColumnSet):
46424         * rendering/RenderView.cpp:
46425         (WebCore::RenderView::computeLogicalHeight):
46426         * rendering/RenderView.h:
46427
46428 2012-10-15  Eunmi Lee  <eunmi15.lee@samsung.com>
46429
46430         [EFL][WK2] Refactoring initialization and shutdown codes of EFL libraries.
46431         https://bugs.webkit.org/show_bug.cgi?id=97173
46432
46433         Reviewed by Gyuyoung Kim.
46434
46435         Remove codes to initialize and shutdown the EFL libraries from
46436         RunLoopEfl.cpp. Initialization and shutdown will be done in the
46437         ewk_main.cpp for ui process and WebProcessMainEfl.cpp for web
46438         process.
46439
46440         No new tests. This patch doesn't change behavior.
46441
46442         * platform/efl/RunLoopEfl.cpp:
46443         (WebCore::RunLoop::RunLoop):
46444         (WebCore::RunLoop::~RunLoop):
46445
46446 2012-10-15  Mihnea Ovidenie  <mihnea@adobe.com>
46447
46448         [CSSRegions]Add support for auto-height regions (without region-breaks)
46449         https://bugs.webkit.org/show_bug.cgi?id=97533
46450
46451         Reviewed by Julien Chaffraix.
46452
46453         Implement the 2pass layout algorithm for computing the height of regions with auto logical height, without taking region breaks into account.
46454         The algorithm is described in the CSSRegions spec: http://dev.w3.org/csswg/css3-regions/#regions-visual-formatting-steps
46455
46456         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.
46457         In each step of the layout, the regions are laid out before the flow thread is laid out.
46458
46459         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
46460         displays all the corresponding content from the flow thread (taking min-height and max-height into account), and the height of the content displayed
46461         determines the overridden logical content height. Thus, after the first pass of layout, each auto logical height region will store the logical height
46462         value for the second pass in its overridden logical content height property.
46463
46464         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
46465         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,
46466         for which the auto logical height regions have proper logical height.
46467
46468         A future patch will properly take region breaks into account for the first pass of layout.
46469
46470         Tests: fast/regions/autoheight-abspos-region.html
46471                fast/regions/autoheight-floatright-region.html
46472                fast/regions/autoheight-horizontal-bt.html
46473                fast/regions/autoheight-inlineblock-normalflow-region.html
46474                fast/regions/autoheight-maxheight-region.html
46475                fast/regions/autoheight-minheight-region.html
46476                fast/regions/autoheight-normalflow-region.html
46477                fast/regions/autoheight-vertical-lr.html
46478                fast/regions/autoheight-vertical-rl.html
46479
46480         * rendering/FlowThreadController.cpp:
46481         (WebCore::FlowThreadController::resetRegionsOverrideLogicalContentHeight):
46482         For all the auto logical height regions, resets their associated overrideLogicalContentHeight.
46483         Those regions are marked as needing layout (along with their ancestors).
46484         (WebCore::FlowThreadController::markAutoLogicalHeightRegionsForLayout):
46485         Mark all the auto logical height regions and their associated flow thread as needing layout (along with their ancestors).
46486         * rendering/FlowThreadController.h:
46487         * rendering/RenderBox.cpp:
46488         Add helper functions to clear out individual logical content width/height.
46489         (WebCore::RenderBox::clearOverrideLogicalContentHeight):
46490         (WebCore::RenderBox::clearOverrideLogicalContentWidth):
46491         (WebCore::RenderBox::clearOverrideSize):
46492         * rendering/RenderBox.h:
46493         * rendering/RenderFlowThread.cpp:
46494         (WebCore::RenderFlowThread::layout):
46495         (WebCore::RenderFlowThread::computeLogicalHeight):
46496         If the flow thread has an auto logical height region for which we did not yet compute the overrideLogicalContentHeight value,
46497         bail out early since we cannot compute the flow thread logical height.
46498         (WebCore::RenderFlowThread::regionAtBlockOffset):
46499         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
46500         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
46501         the logicalHeight if we are in the second layout phase (because the overriderLogicalContentHeight was already transferred into region logical height).
46502         (WebCore::RenderFlowThread::pageLogicalHeightForOffset):
46503         (WebCore::RenderFlowThread::pageRemainingLogicalHeightForOffset):
46504         (WebCore::RenderFlowThread::computeOverflowStateForRegions):
46505         (WebCore::RenderFlowThread::resetRegionsOverrideLogicalContentHeight):
46506         (WebCore::RenderFlowThread::markAutoLogicalHeightRegionsForLayout):
46507         (WebCore::RenderFlowThread::updateRegionsFlowThreadPortionRect):
46508         (WebCore::RenderFlowThread::addForcedRegionBreak):
46509         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
46510         can have its height properly computed.
46511         * rendering/RenderFlowThread.h:
46512         * rendering/RenderNamedFlowThread.cpp:
46513         (WebCore::boxIntersectsRegion):
46514         * rendering/RenderRegion.cpp:
46515         (WebCore::RenderRegion::updateLogicalHeight):
46516         If the auto logical height region has an overrideLogicalContentHeight and we are in the second pass of layout,
46517         we use the overrideLogicalContentHeight to update the region logical height.
46518         (WebCore::RenderRegion::needsOverrideLogicalContentHeightComputation):
46519         * rendering/RenderRegion.h:
46520         * rendering/RenderView.cpp:
46521         (WebCore::RenderView::RenderView):
46522         (WebCore::RenderView::layoutContent):
46523         Added a new function to contain the RenderView block layout and flow threads layout.
46524         (WebCore::RenderView::checkLayoutState):
46525         Helper function keeping the original asserts from RenderView, used in more than one place.
46526         (WebCore::RenderView::layout):
46527         * rendering/RenderView.h:
46528         (WebCore::RenderView::normalLayoutPhase):
46529         (WebCore::RenderView::constrainedFlowThreadsLayoutPhase):
46530
46531 2012-10-15  Eugene Klyuchnikov  <eustas.bug@gmail.com>
46532
46533         Web Inspector: Fix memory leak in TreeOutline
46534         https://bugs.webkit.org/show_bug.cgi?id=99307
46535
46536         Reviewed by Alexander Pavlov.
46537
46538         Added cleanup of empty buckets in elements cache.
46539
46540         * inspector/front-end/treeoutline.js:
46541
46542 2012-10-15  Eugene Klyuchnikov  <eustas.bug@gmail.com>
46543
46544         Web Inspector: Hide useless controls in remote-debugging mode.
46545         https://bugs.webkit.org/show_bug.cgi?id=99300
46546
46547         Reviewed by Vsevolod Vlasov.
46548
46549         "Close inspector" and "change docking mode" buttons seem to be rather
46550         useless in remote debugging mode.
46551
46552         * inspector/front-end/inspector.css:
46553         (body.remote .toolbar-item.close-left, body.remote .toolbar-item.close-right):
46554         (body.remote .dock-status-bar-item):
46555
46556 2012-10-15  Christophe Dumez  <christophe.dumez@intel.com>
46557
46558         [EFL][WK2] Implement Favicons API
46559         https://bugs.webkit.org/show_bug.cgi?id=99087
46560
46561         Reviewed by Kenneth Rohde Christiansen.
46562
46563         Moved ewk_util from WebKit to WebCore and rename it
46564         to CairoUtilityEfl so that the code can be shared
46565         between WebKit1 and WebKit2. Some related utility
46566         code was also moved from RenderThemeEfl to
46567         CairoUtilityEfl.
46568
46569         No new tests, no behavior change.
46570
46571         * PlatformEfl.cmake:
46572         * platform/efl/RenderThemeEfl.cpp:
46573         * platform/graphics/efl/CairoUtilitiesEfl.cpp: Renamed from Source/WebKit/efl/ewk/ewk_util.cpp.
46574         (WebCore):
46575         (WebCore::evasObjectFromCairoImageSurface):
46576         (WebCore::createSurfaceForBackingStore):
46577         * platform/graphics/efl/CairoUtilitiesEfl.h: Renamed from Source/WebKit/efl/ewk/ewk_util_private.h.
46578         (WebCore):
46579
46580 2012-10-15  Beth Dakin  <bdakin@apple.com>
46581
46582         https://bugs.webkit.org/show_bug.cgi?id=99350
46583         REGRESSION (r131238): Repro crash in 
46584        WebCore::ScrollingStateTree::removeNode(WebCore::ScrollingStateNode*) 
46585         opening pdf page
46586         -and corresponding-
46587         <rdar://problem/12499839>
46588
46589         Reviewed by Simon Fraser.
46590
46591         We have to null-check node here. It won't be found if  
46592         clearStateTree() was recently called.
46593         * page/scrolling/mac/ScrollingCoordinatorMac.mm:
46594         (WebCore::ScrollingCoordinatorMac::detachFromStateTree):
46595
46596 2012-10-15  Jonathan Dong  <jonathan.dong@torchmobile.com.cn>
46597
46598         [BlackBerry] replace BlackBerry::Platform::log() with BBLOG()
46599         https://bugs.webkit.org/show_bug.cgi?id=99302
46600
46601         Reviewed by Rob Buis.
46602
46603         RIM PR: 210884
46604         The marco BBLOG() is defined as a no-op in release mode which will
46605         save a function call in the release build.
46606         Internally reviewed by Charles Wei.
46607
46608         No new tests since there's no functional change.
46609
46610         * platform/blackberry/PlatformKeyboardEventBlackBerry.cpp:
46611         (WebCore::PlatformKeyboardEvent::PlatformKeyboardEvent):
46612         * platform/graphics/blackberry/GraphicsContext3DBlackBerry.cpp:
46613         (WebCore::GraphicsContext3D::logFrameBufferStatus):
46614         * platform/graphics/blackberry/LayerCompositingThread.cpp:
46615         (WebCore::LayerCompositingThread::getTransformedHolePunchRect):
46616         * platform/graphics/blackberry/VideoLayerWebKitThread.cpp:
46617         (WebCore::VideoLayerWebKitThread::setHolePunchRect):
46618         (WebCore::VideoLayerWebKitThread::boundsChanged):
46619         * platform/graphics/opengl/GraphicsContext3DOpenGLCommon.cpp:
46620         (WebCore::GraphicsContext3D::compileShader):
46621
46622 2012-10-15  Christophe Dumez  <christophe.dumez@intel.com>
46623
46624         [EFL] Provide logging for OnlineState detection code
46625         https://bugs.webkit.org/show_bug.cgi?id=99299
46626
46627         Reviewed by Kenneth Rohde Christiansen.
46628
46629         Add logging to NetworkStateNotifierEfl.cpp to facilitate
46630         debugging of this functionality.
46631
46632         No new tests, no behavior change.
46633
46634         * platform/network/efl/NetworkStateNotifierEfl.cpp:
46635         (WebCore::NetworkStateNotifier::updateState):
46636
46637 2012-10-15  MORITA Hajime  <morrita@google.com>
46638
46639         [Regression r131167] run-webkit-tests fails
46640         https://bugs.webkit.org/show_bug.cgi?id=99279
46641
46642         Reviewed by Kentaro Hara.
46643
46644         CodeGeneratorV8.pm assumed that there are only two objects which have constructor getters and
46645         overlooked TestObj. This fix relaxes that assumption to accept it.
46646
46647         No new tests. Fixing an existing test.
46648
46649         * bindings/scripts/CodeGeneratorV8.pm:
46650         (GenerateConstructorGetter):
46651         * bindings/scripts/test/V8/V8TestObj.cpp:
46652         (WebCore::TestObjV8Internal::TestObjConstructorGetter):
46653
46654 2012-10-15  Joe Mason  <jmason@rim.com>
46655
46656         [BlackBerry] Fix WebSockets which was disabled by recent string changes
46657         https://bugs.webkit.org/show_bug.cgi?id=99248
46658
46659         Reviewed by George Staikos.
46660
46661         PR 223681: The signature of FilterStream::notifyStatusReceived changed to take a
46662         BlackBerry::Platform::String instead of a char *. But SocketStreamHandleBlackBerry was not
46663         updated to the new signature, so the status message is not getting passed on because it is
46664         not calling the correct override.
46665
46666         No new tests because this is fixing a regression.
46667
46668         * platform/network/blackberry/SocketStreamHandle.h:
46669         (SocketStreamHandle):
46670         * platform/network/blackberry/SocketStreamHandleBlackBerry.cpp:
46671         (WebCore::SocketStreamHandle::notifyStatusReceived):
46672
46673 2012-10-15  Rob Buis  <rbuis@rim.com>
46674
46675         Remove RenderTextControl::isSelectableElement
46676         https://bugs.webkit.org/show_bug.cgi?id=99334
46677
46678         Reviewed by Andreas Kling.
46679
46680         It seems this method is not used anymore.
46681
46682         * WebCore.order:
46683         * rendering/RenderTextControl.h:
46684
46685 2012-10-15  Mike West  <mkwst@chromium.org>
46686
46687         CSP source expressions should support paths at file-level granularity.
46688         https://bugs.webkit.org/show_bug.cgi?id=99250
46689
46690         Reviewed by Adam Barth.
46691
46692         After a bit of discussion on public-webappsec[1], path support for CSP
46693         source expressions has been tuned to support file-level granularity. In
46694         particular, this means that:
46695
46696         - 'example.com/js' matches a file named 'js'
46697         - 'example.com/js/' matches all files under a directory named 'js'
46698           (note the trailing slash)
46699         - 'example.com/js/file.js' matches only a file named 'file.js'
46700           inside a directory named 'js'
46701
46702         Though this is part of the CSP 1.1 spec, it continues to be exposed
46703         outside the CSP_NEXT flag for back-compatibility.
46704
46705         Test cases have been added to the existing
46706         http/tests/security/contentSecurityPolicy/source-list-parsing-paths-*
46707         in order ensure that the new functionality works correctly.
46708
46709         * page/ContentSecurityPolicy.cpp:
46710         (WebCore::CSPSource::pathMatches):
46711             If the path ends with '/', do a prefix check. If not, check for an
46712             exact match.
46713         (WebCore::CSPSourceList::parsePath):
46714             Don't automatically append a '/' to paths.
46715
46716 2012-10-15  George Staikos  <staikos@webkit.org>
46717
46718         [BlackBerry] Adapt to Platform API changes in string handling
46719         https://bugs.webkit.org/show_bug.cgi?id=99248
46720
46721         Reviewed by Yong Li.
46722
46723         Convert usage of WebString, char* and std::string to BlackBerry::Platform::String.
46724
46725         * html/track/TextTrack.cpp:
46726         (WebCore::TextTrack::TextTrack): Fix the build for BlackBerry.
46727         * page/blackberry/SettingsBlackBerry.cpp:
46728         (WebCore):
46729         (WebCore::Settings::initializeDefaultFontFamilies):
46730         * platform/blackberry/LocalizedStringsBlackBerry.cpp:
46731         * platform/blackberry/MIMETypeRegistryBlackBerry.cpp:
46732         (WebCore::MIMETypeRegistry::getMIMETypeForExtension):
46733         (WebCore::MIMETypeRegistry::getPreferredExtensionForMIMEType):
46734         * platform/blackberry/PasteboardBlackBerry.cpp:
46735         (WebCore::Pasteboard::writeSelection):
46736         (WebCore::Pasteboard::writeURL):
46737         (WebCore::Pasteboard::writePlainText):
46738         (WebCore::Pasteboard::plainText):
46739         (WebCore::Pasteboard::documentFragment):
46740         * platform/blackberry/ReadOnlyLatin1String.h: Removed.
46741         * platform/graphics/blackberry/MediaPlayerPrivateBlackBerry.cpp:
46742         (WebCore::MediaPlayerPrivate::getSupportedTypes):
46743         (WebCore::MediaPlayerPrivate::supportsType):
46744         (WebCore::MediaPlayerPrivate::setCertificatePath):
46745         (WebCore::MediaPlayerPrivate::load):
46746         (WebCore::generateProtectionSpaceFromMMRAuthChallenge):
46747         (WebCore::MediaPlayerPrivate::onAuthenticationNeeded):
46748         (WebCore::MediaPlayerPrivate::onAuthenticationAccepted):
46749         (WebCore::MediaPlayerPrivate::lookupMediaStream):
46750         * platform/graphics/blackberry/MediaPlayerPrivateBlackBerry.h:
46751         (MediaPlayerPrivate):
46752         (WebCore::MediaPlayerPrivate::engineDescription):
46753         * platform/network/blackberry/DNSBlackBerry.cpp:
46754         (WebCore::prefetchDNS):
46755         * platform/network/blackberry/NetworkJob.cpp:
46756         (WebCore::NetworkJob::initialize):
46757         (WebCore::NetworkJob::notifyStatusReceived):
46758         (WebCore::NetworkJob::notifyHeadersReceived):
46759         (WebCore::NetworkJob::handleNotifyClose):
46760         (WebCore::NetworkJob::sendRequestWithCredentials):
46761         * platform/network/blackberry/NetworkJob.h:
46762         (NetworkJob):
46763         * platform/network/blackberry/NetworkManager.cpp:
46764         (WebCore::NetworkManager::startJob):
46765         * platform/network/blackberry/ResourceRequestBlackBerry.cpp:
46766         (WebCore::ResourceRequest::initializePlatformRequest):
46767         * platform/network/blackberry/SocketStreamHandleBlackBerry.cpp:
46768         (WebCore::SocketStreamHandle::SocketStreamHandle):
46769         * platform/text/blackberry/StringBlackBerry.cpp:
46770         (WTF::String::String):
46771         (WTF::String::operator BlackBerry::Platform::String):
46772         * platform/text/blackberry/TextBreakIteratorInternalICUBlackBerry.cpp:
46773
46774 2012-10-15  Jay Civelli  <jcivelli@chromium.org>
46775
46776         Calling WebCore::SharedBuffer::append(data, 0) on a shared buffer when
46777         its current position is at a segment boundary (4096) ends up adding an
46778         unitialized segment (with uninitialized memory) to the SharedBuffer.
46779         https://bugs.webkit.org/show_bug.cgi?id=99000
46780
46781         Reviewed by Adam Barth.
46782
46783         * platform/SharedBuffer.cpp:
46784         (WebCore::SharedBuffer::append):
46785
46786 2012-10-15  Luke Macpherson   <macpherson@chromium.org>
46787
46788         Make CSS variable names case-insensitive.
46789         https://bugs.webkit.org/show_bug.cgi?id=98712
46790
46791         Reviewed by Tony Chang.
46792
46793         This patch modifies the parser to normalize all variable names to lower case,
46794         making variable definitions consistent with other property names, which are also case insensitive.
46795         Spec: http://dev.w3.org/csswg/css-variables/#defining-variables
46796
46797         Test: fast/css/variables/case-insensitive.html
46798
46799         * css/CSSParser.cpp:
46800         (WebCore::CSSParser::createPrimitiveNumericValue):
46801         (WebCore):
46802         (WebCore::CSSParser::createPrimitiveVariableNameValue):
46803         (WebCore::CSSParser::parseValidPrimitive):
46804         (WebCore::CSSParser::parseValue):
46805         (WebCore::CSSParser::storeVariableDeclaration):
46806         (WebCore::CSSParserString::lowerSubstring):
46807         Added function to compute a lower case substring as an AtomicString from a CSSParserString.
46808         * css/CSSParser.h:
46809         (CSSParser):
46810         * css/CSSParserValues.h:
46811         (CSSParserString):
46812         (WebCore::CSSParserString::lowerSubstring):
46813
46814 2012-10-15  Michael Saboff  <msaboff@apple.com>
46815
46816         Update RenderText to use String instead of UChar* for text
46817         https://bugs.webkit.org/show_bug.cgi?id=96979
46818
46819         Reviewed by Dan Bernstein.
46820
46821         RenderText now uses a String for text.  It keeps a cached LCHar* or UChar* pointer to the
46822         actual text data for performance.  Added a characterAt() indexed accessor to RenderText to avoid the
46823         somewhat confusing construct for a RenderText* rt, e.g. (*re)[n] or rt->characters()[n].  This is
46824         now written as rt->characterAt(n).
46825         Enabled patch in the HTML parser to create 8 bit text data.  Modified TextRun to create 
46826         text runs using 8 bit string data where possible.  Added several flavors of RenderBlock::constructTextRun
46827         to create TextRuns from RenderText objects including with an offset.  Added an LChar flavor of constructTextRun()
46828         as well.  Eliminated the TextRunFlags argument to all but the String flavor as all other flavors used the default
46829         parameter.  
46830         Encased the code that creates 8 bit TextRun's in #if USE(8BIT_TEXTRUN).  Enabled WTF_USE_8BIT_TEXTRUN
46831         for PLATFORM(MAC).  Other platform can update this setting in Platform.h when their platform specific code is
46832         updated to TextRun's with 8 bit data.
46833         Added many 8/16 bit aware paths.  Cleanup up some int / unsigned confusion in RenderBlockLineLayout.cpp.
46834
46835         No function change therefore no new tests.
46836
46837         * html/parser/HTMLTokenizer.cpp:
46838         (WebCore::vectorEqualsString):
46839         (WebCore::HTMLTokenizer::nextToken):
46840         * html/parser/HTMLTokenizer.h:
46841         (HTMLTokenizer):
46842         * html/track/WebVTTTokenizer.cpp:
46843         (WebCore::vectorEqualsString):
46844         (WebCore::WebVTTTokenizer::nextToken):
46845         * html/track/WebVTTTokenizer.h:
46846         (WebVTTTokenizer):
46847         * platform/graphics/Font.h:
46848         (WebCore::Font::glyphDataForCharacter):
46849         * platform/graphics/FontFastPath.cpp:
46850         (WebCore):
46851         * platform/graphics/TextRun.h:
46852         (WebCore::TextRun::TextRun):
46853         (WebCore::TextRun::subRun):
46854         (TextRun):
46855         * platform/graphics/mac/ComplexTextController.cpp:
46856         (WebCore::TextLayout::isNeeded):
46857         (WebCore::TextLayout::constructTextRun):
46858         * rendering/InlineFlowBox.cpp:
46859         (WebCore::InlineFlowBox::placeBoxesInInlineDirection):
46860         * rendering/InlineIterator.h:
46861         (WebCore::InlineIterator::atTextParagraphSeparator):
46862         (WebCore::InlineIterator::current):
46863         (WebCore::InlineIterator::previousInSameNode):
46864         * rendering/InlineTextBox.cpp:
46865         (WebCore::adjustCharactersAndLengthForHyphen):
46866         (WebCore::InlineTextBox::paint):
46867         (WebCore::InlineTextBox::paintSelection):
46868         (WebCore::InlineTextBox::constructTextRun):
46869         * rendering/InlineTextBox.h:
46870         (InlineTextBox):
46871         * rendering/RenderBlock.cpp:
46872         (WebCore::constructTextRunInternal):
46873         (WebCore::RenderBlock::constructTextRun):
46874         * rendering/RenderBlock.h:
46875         (RenderBlock):
46876         * rendering/RenderBlockLineLayout.cpp:
46877         (WebCore::endsWithASCIISpaces):
46878         (WebCore::reachedEndOfTextRenderer):
46879         (WebCore::RenderBlock::computeInlineDirectionPositionsForLine):
46880         (WebCore::shouldSkipWhitespaceAfterStartObject):
46881         (WebCore::textWidth):
46882         (WebCore::tryHyphenating):
46883         (WebCore::RenderBlock::LineBreaker::nextLineBreak):
46884         * rendering/RenderCombineText.cpp:
46885         (WebCore::RenderCombineText::getStringToRender):
46886         (WebCore::RenderCombineText::combineText):
46887         * rendering/RenderCombineText.h:
46888         (RenderCombineText):
46889         * rendering/RenderText.cpp:
46890         (SameSizeAsRenderText):
46891         (WebCore::RenderText::RenderText):
46892         (WebCore::RenderText::widthFromCache):
46893         (WebCore::RenderText::computePreferredLogicalWidths):
46894         (WebCore::RenderText::setTextInternal):
46895         (WebCore::RenderText::width):
46896         * rendering/RenderText.h:
46897         (WebCore::RenderText::is8Bit):
46898         (WebCore::RenderText::characters8):
46899         (WebCore::RenderText::characters16):
46900         (WebCore::RenderText::characterAt):
46901         (WebCore::RenderText::operator[]):
46902         (RenderText):
46903         * xml/parser/MarkupTokenBase.h:
46904         (WebCore::MarkupTokenBase::appendToCharacter):
46905         (MarkupTokenBase):
46906         (WebCore::MarkupTokenBase::isAll8BitData):
46907
46908 2012-10-15  Vsevolod Vlasov  <vsevik@chromium.org>
46909
46910         Web Inspector: Scripts for dynamically added script elements are not shown in sources panel.
46911         https://bugs.webkit.org/show_bug.cgi?id=99324
46912
46913         Reviewed by Pavel Feldman.
46914
46915         NetworkUISourceCodeProvider now adds uiSourceCodes for dynamic anonymous scripts
46916         and dynamic scripts loaded before inspector was opened.
46917
46918         Tests: http/tests/inspector-enabled/dynamic-scripts.html
46919                inspector/debugger/dynamic-scripts.html
46920
46921         * inspector/front-end/NetworkLog.js:
46922         (WebInspector.NetworkLog.prototype.requestForURL):
46923         * inspector/front-end/NetworkUISourceCodeProvider.js:
46924         (WebInspector.NetworkUISourceCodeProvider):
46925         (WebInspector.NetworkUISourceCodeProvider.prototype._parsedScriptSource):
46926         (WebInspector.NetworkUISourceCodeProvider.prototype._projectWillReset):
46927
46928 2012-10-15  Dominik Röttsches  <dominik.rottsches@intel.com>
46929
46930         REGRESSION(130613): Reintroduces crashes when using soup's timeout functionality
46931         https://bugs.webkit.org/show_bug.cgi?id=99311
46932
46933         Reviewed by Gustavo Noronha Silva.
46934
46935         Removing the cleanupSoupRequestOperation call, since the cancel() call will eventually trigger the
46936         cleanup already setting the right flag. Cleaning the handle already here will result in crashes when
46937         using the soup timeout functionality.
46938         The explicit cleanup call reintroduced in r130613, after it had been previously removed in r130348.
46939
46940         No new tests, tests that catch this will be part of bug 74802 for XHR timeout support.
46941
46942         * platform/network/soup/ResourceHandleSoup.cpp:
46943         (WebCore::requestTimeoutCallback):
46944
46945 2012-10-15  Ilya Tikhonovsky  <loislo@chromium.org>
46946
46947         Web Inspector: convert manual size calculation of different WebKit things into MemoryInstrumentation.
46948         https://bugs.webkit.org/show_bug.cgi?id=99309
46949
46950         Reviewed by Yury Semikhatsky.
46951
46952         JSHeap, DOMStorage and HeapProfiler data were counted manually.
46953         Now we count the sizes more generic way.
46954
46955         * dom/WebCoreMemoryInstrumentation.cpp:
46956         * dom/WebCoreMemoryInstrumentation.h:
46957         (WebCoreMemoryTypes): new string identifiers were added for Inspector's data.
46958         * inspector/InspectorBaseAgent.cpp:
46959         (WebCore::InspectorBaseAgentInterface::InspectorBaseAgentInterface): common data members were moved from template to base class.
46960         (WebCore::InspectorBaseAgentInterface::reportMemoryUsage): NMI instrumentation was added to the base template.
46961         * inspector/InspectorBaseAgent.h:
46962         (InspectorBaseAgentInterface): ditto
46963         (WebCore::InspectorBaseAgent::InspectorBaseAgent): ditto
46964         * inspector/InspectorController.cpp:
46965         (WebCore::InspectorController::reportMemoryUsage): NMI instrumentation was added to the class.
46966         * inspector/InspectorController.h:
46967         * inspector/InspectorDOMStorageAgent.cpp:
46968         (WebCore::InspectorDOMStorageAgent::reportMemoryUsage): NMI instrumentation was added to the class.
46969         * inspector/InspectorDOMStorageAgent.h:
46970         * inspector/InspectorDOMStorageResource.cpp:
46971         (WebCore::InspectorDOMStorageResource::reportMemoryUsage): NMI instrumentation was added to the class.
46972         * inspector/InspectorDOMStorageResource.h:
46973         * inspector/InspectorMemoryAgent.cpp:
46974         (WebCore::reportJSHeapInfo): these methods now use MemoryInstrumentation for reporting the size of underlying data.
46975         (WebCore::reportRenderTreeInfo):
46976         (WebCore::collectDomTreeInfo):
46977         (WebCore::InspectorMemoryAgent::getProcessMemoryDistribution):
46978         (WebCore::InspectorMemoryAgent::reportMemoryUsage): NMI instrumentation was added to the class.
46979         * inspector/InspectorMemoryAgent.h:
46980         * inspector/InspectorProfilerAgent.cpp:
46981         (WebCore::InspectorProfilerAgent::reportMemoryUsage):
46982         * inspector/InspectorProfilerAgent.h:
46983         (InspectorProfilerAgent): NMI instrumentation was added to the class.
46984         * inspector/MemoryInstrumentationImpl.cpp: allocatedObjects map was converted from InspectorMemoryAgent::getProcessMemoryDistribution local variable to member variable.
46985         (WebCore::MemoryInstrumentationClientImpl::checkCountedObject):
46986         (WebCore::MemoryInstrumentationClientImpl::reportMemoryUsage): NMI instrumentation was added to the class.
46987         (WebCore::MemoryInstrumentationImpl::reportMemoryUsage): NMI instrumentation was added to the class.
46988         * inspector/MemoryInstrumentationImpl.h:
46989         (WebCore::MemoryInstrumentationClientImpl::MemoryInstrumentationClientImpl):
46990         (WebCore::MemoryInstrumentationClientImpl::allocatedObjects):
46991         (WebCore::MemoryInstrumentationClientImpl::checkInstrumentedObjects):
46992         * inspector/front-end/NativeMemorySnapshotView.js:
46993         (WebInspector.MemoryBlockViewProperties._initialize):
46994         (WebInspector.NativeMemoryBarChart.prototype._updateView):
46995         * page/Page.cpp:
46996         (WebCore::Page::reportMemoryUsage): NMI instrumentation was added to the class.
46997         * page/Page.h:
46998
46999 2012-10-15  Kent Tamura  <tkent@chromium.org>
47000
47001         Improve code of LocaleMac.mm
47002         https://bugs.webkit.org/show_bug.cgi?id=98383
47003
47004         Reviewed by Darin Adler.
47005
47006         - Use isNull instead of isEmpty because isNull is more efficient.
47007         - create*Formatter should return RetainPtr to avoid to retain in each of callsites.
47008         - Explicit String conversion is not needed.
47009
47010         No new tests. This doesn't change any behavior.
47011
47012         * platform/text/mac/LocaleMac.h:
47013         (LocaleMac):
47014         - Change the return types of createShortDateFormatter,
47015         createTimeFormatter, and createShortTimeFormatter from NSDateFormatter*
47016         to RetainPtr<NSDateFormatter>.
47017         - Omit 'create' from their names.
47018         - Add m_gregorianCalendar.
47019         * platform/text/mac/LocaleMac.mm:
47020         (WebCore::createDateTimeFormatter):
47021         Change the return type from NSDateFormatter* to RetainPtr<NSDateFormatter>.
47022         Add an NSCalendar argument.
47023         (WebCore::LocaleMac::shortDateFormatter):
47024         Renamed from createShortTimeFormatter.
47025         Change the return type from NSDateFormatter* to RetainPtr<NSDateFormatter>.
47026         (WebCore::LocaleMac::parseDateTime): Follow the return type change and the renaming.
47027         (WebCore::LocaleMac::formatDateTime): Ditto. Also, remove explicit String construction.
47028         (WebCore::LocaleMac::dateFormatText): Ditto. Also, use isNull.
47029         (WebCore::LocaleMac::monthLabels): Follow the return type change and the renaming.
47030         (WebCore::LocaleMac::weekDayShortLabels): Ditto.
47031         (WebCore::LocaleMac::timeFormatter):
47032         Change the return type from NSDateFormatter* to RetainPtr<NSDateFormatter>.
47033         Renamed from createTimeFormatter.
47034         (WebCore::LocaleMac::shortTimeFormatter): Ditto.
47035         (WebCore::LocaleMac::dateFormat):
47036         Use isNull. Remove explicit String construction. Follow the return type
47037         change and the renaming.
47038         (WebCore::LocaleMac::timeFormat): ditto.
47039         (WebCore::LocaleMac::shortTimeFormat): ditto.
47040         (WebCore::LocaleMac::timeAMPMLabels):
47041         Remove explicit String construction. Follow the return type change.
47042         (WebCore::LocaleMac::initializeLocalizerData):
47043         Remove explicit String construction.
47044
47045 2012-10-12  Ilya Tikhonovsky  <loislo@chromium.org>
47046
47047         Web Inspector: NMI remove hand made object builders with automatic builder.
47048         https://bugs.webkit.org/show_bug.cgi?id=99186
47049
47050         Reviewed by Yury Semikhatsky.
47051
47052         Old builders were replaced with single automatic builder.
47053         It does the next things:
47054         a) deduplicates entries in the MemoryInstrumentationClient's map and converts objectType pointers to String;
47055         b) creates parent entries and assigns their aggregated sizes;
47056         c) creates the hierarchy of MemoryBlocks recursively.
47057
47058         * dom/WebCoreMemoryInstrumentation.cpp:
47059         (WebCore):
47060         * dom/WebCoreMemoryInstrumentation.h:
47061         (WebCoreMemoryTypes):
47062         * inspector/InspectorMemoryAgent.cpp:
47063         (WebCore):
47064         (WebCore::jsHeapInfo):
47065         (WebCore::renderTreeInfo):
47066         (WebCore::addPlatformComponentsInfo):
47067         (WebCore::InspectorMemoryAgent::getProcessMemoryDistribution):
47068         * inspector/MemoryInstrumentationImpl.cpp:
47069         (WebCore::MemoryInstrumentationClientImpl::sizesMap):
47070         (WebCore):
47071         * inspector/MemoryInstrumentationImpl.h:
47072         (WebCore):
47073         (MemoryInstrumentationClientImpl):
47074
47075 2012-10-14  Sam Weinig  <sam@webkit.org>
47076
47077         Simplify user content in WebKit2 by using WebCore::UserStyleSheet and WebCore::UserScript directly
47078         https://bugs.webkit.org/show_bug.cgi?id=99276
47079
47080         Reviewed by Anders Carlsson.
47081
47082         Add default constructors for UserScript and UserStyleSheet so they can be used in CoreIPC encoding/decoding.
47083
47084         * page/UserScript.h:
47085         (WebCore::UserScript::UserScript):
47086         (UserScript):
47087         * page/UserStyleSheet.h:
47088         (WebCore::UserStyleSheet::UserStyleSheet):
47089         (UserStyleSheet):
47090
47091 2012-10-14  Jon Lee  <jonlee@apple.com>
47092
47093         Allow notification origin permission request when no js callback is provided
47094         https://bugs.webkit.org/show_bug.cgi?id=63615
47095         <rdar://problem/11059590>
47096
47097         Reviewed by Sam Weinig.
47098
47099         Instead of throwing a type error when no callback is provided, we pass a null callback.
47100
47101         Test: http/tests/notifications/legacy/request-no-callback.html
47102
47103         * bindings/js/JSDesktopNotificationsCustom.cpp:
47104         (WebCore::JSNotificationCenter::requestPermission):
47105
47106 2012-10-12  Anders Carlsson  <andersca@apple.com>
47107
47108         Move QDataStream functions into HistoryItemQt.cpp
47109         https://bugs.webkit.org/show_bug.cgi?id=99203
47110
47111         Reviewed by Andreas Kling.
47112
47113         It seems like the QDataStream stream operators are only used from HistoryItemQt.cpp
47114         inside WebCore, so move them there. If in the future they are required elsewhere, they should
47115         be moved into a separate header instead of polluting headers unnecessarily.
47116
47117         * history/qt/HistoryItemQt.cpp:
47118         (operator<<):
47119         (operator>>):
47120         * platform/FractionalLayoutUnit.h:
47121         * platform/graphics/IntPoint.h:
47122
47123 2012-10-14  Sam Weinig  <sam@webkit.org>
47124
47125         Make UserScript and UserStyleSheet value objects that are copyable
47126         https://bugs.webkit.org/show_bug.cgi?id=99275
47127
47128         Reviewed by Tim Horton.
47129
47130         Simplify UserScript and UserStyleSheet and make them more easily usable
47131         without sticking them in an OwnPtr.
47132
47133         * WebCore.exp.in:
47134         Update exports.
47135
47136         * page/PageGroup.cpp:
47137         (WebCore::PageGroup::addUserScriptToWorld):
47138         (WebCore::PageGroup::addUserStyleSheetToWorld):
47139         * page/PageGroup.h:
47140         (PageGroup):
47141         * page/UserContentURLPattern.cpp:
47142         (WebCore::UserContentURLPattern::matchesPatterns):
47143         * page/UserContentURLPattern.h:
47144         (UserContentURLPattern):
47145         Update to not assume whitelist and blacklist are in Vector<String>*.
47146
47147         * page/UserScript.h:
47148         (UserScript):
47149         (WebCore::UserScript::UserScript):
47150         (WebCore::UserScript::whitelist):
47151         (WebCore::UserScript::blacklist):
47152         * page/UserStyleSheet.h:
47153         (UserStyleSheet):
47154         (WebCore::UserStyleSheet::UserStyleSheet):
47155         (WebCore::UserStyleSheet::whitelist):
47156         (WebCore::UserStyleSheet::blacklist):
47157         Switch OwnPtr<Vector<String> > to Vector<String> and remove Noncopyable restriction.
47158
47159 2012-10-14  Tim Horton  <timothy_horton@apple.com>
47160
47161         [wk2] Implement PDFPlugin
47162         https://bugs.webkit.org/show_bug.cgi?id=99206
47163
47164         Unreviewed build fix, export __ZN7WebCore8IntPointC1ERK7CGPoint.
47165
47166         * WebCore.exp.in:
47167
47168 2012-10-14  Tim Horton  <timothy_horton@apple.com>
47169
47170         [wk2] Implement PDFPlugin
47171         https://bugs.webkit.org/show_bug.cgi?id=99206
47172
47173         Reviewed by Dan Bernstein.
47174
47175         Add a plug-in that uses PDFKit to display PDFs, instead of using PDFKit in the
47176         UIProcess for full-page PDFs. This new plugin will also be used for inline PDFs
47177         in place of SimplePDFPlugin (née BuiltInPDFView).
47178
47179         * WebCore.exp.in:
47180         Export a few more methods to WebKit(2).
47181
47182         * WebCore.xcodeproj/project.pbxproj:
47183         Expose Pasteboard.h as a private header so PDFPlugin can use it.
47184
47185         * platform/ScrollableArea.h:
47186         Make invalidateScrollbar/invalidateScrollCorner virtual.
47187
47188 2012-10-14  Antoine Quint  <graouts@apple.com>
47189
47190         InspectorPageAgent should expose a method to control the compositing debug settings.
47191         https://bugs.webkit.org/show_bug.cgi?id=99253
47192
47193         Reviewed by Timothy Hatcher.
47194
47195         * inspector/Inspector.json:
47196         * inspector/InspectorPageAgent.cpp:
47197         (WebCore::InspectorPageAgent::setCompositingBordersVisible):
47198         * inspector/InspectorPageAgent.h:
47199
47200 2012-10-13  Chris Rogers  <crogers@google.com>
47201
47202         WebAudioBus needs support for resizing bus to a smaller size
47203         https://bugs.webkit.org/show_bug.cgi?id=99215
47204
47205         Reviewed by Dimitri Glazkov.
47206
47207         Upgrade AudioBus and WebAudioBus to support resizing to a smaller size, once it has been created.
47208         This is useful, for example, when decoding VBR formats and the actual length can't be exactly determined
47209         until the entire file is decoded.
47210
47211         * platform/audio/AudioBus.cpp:
47212         (WebCore::AudioBus::resizeSmaller):
47213         (WebCore):
47214         * platform/audio/AudioBus.h:
47215         (AudioBus):
47216         * platform/audio/AudioChannel.cpp:
47217         (WebCore::AudioChannel::resizeSmaller):
47218         (WebCore):
47219         * platform/audio/AudioChannel.h:
47220         (AudioChannel):
47221         * platform/chromium/support/WebAudioBus.cpp:
47222         (WebKit::WebAudioBus::resizeSmaller):
47223         (WebKit):
47224
47225 2012-10-13  Gregg Tavares  <gman@google.com>
47226
47227         Add warning for unrenderable textures
47228         https://bugs.webkit.org/show_bug.cgi?id=99235
47229
47230         Reviewed by Kenneth Russell.
47231
47232         Unrenderable textures are often hard to debug. Adds a message to that
47233         appears in the JavaScript console to help developers find the issue.
47234
47235         No new tests as no new functionality.
47236
47237         * html/canvas/WebGLRenderingContext.cpp:
47238         (WebCore):
47239         (WebCore::WebGLRenderingContext::drawArrays):
47240         (WebCore::WebGLRenderingContext::drawElements):
47241         (WebCore::WebGLRenderingContext::handleNPOTTextures):
47242         * html/canvas/WebGLRenderingContext.h:
47243         (WebGLRenderingContext):
47244
47245 2012-10-13  Geoffrey Garen  <ggaren@apple.com>
47246
47247         Not reviewed.
47248
47249         Updated bindings test results.
47250
47251         * bindings/scripts/test/JS/JSTestEventTarget.cpp:
47252         (WebCore::JSTestEventTarget::getOwnPropertySlotByIndex):
47253
47254 2012-10-12  Geoffrey Garen  <ggaren@apple.com>
47255
47256         I pity da foo' who's converting numbers to strings
47257         https://bugs.webkit.org/show_bug.cgi?id=99197
47258
47259         Reviewed by Gavin Barraclough.
47260
47261         40% speedup on PerformanceTests/Dromaeo/dom-traverse.html. Probably speeds
47262         some other things up too.
47263
47264         Credit to Eric Seidel for spotting this.
47265
47266         * bindings/scripts/CodeGeneratorJS.pm:
47267         (GenerateImplementation): getOwnPropertySlotByIndex doesn't need to prefer
47268         string lookup in the static table because our static tables don't contain
47269         properties that are numbers.
47270
47271         I believe this is low-hanging fruit left behind by Phil's
47272         getOwnPropertySlotByIndex optimization, but it's also possible that this was a
47273         regression at some point. I didn't check.
47274
47275 2012-10-13  Adam Barth  <abarth@webkit.org>
47276
47277         Remove dead code in Node.idl
47278         https://bugs.webkit.org/show_bug.cgi?id=99237
47279
47280         Reviewed by Maciej Stachowiak.
47281
47282         We don't implement this feature. This code is dead and should be
47283         removed.
47284
47285         * dom/Node.idl:
47286
47287 2012-10-12  Simon Fraser  <simon.fraser@apple.com>
47288
47289         Fix GraphicsLayerCA visible rect computation in the face of perspective and preserve-3d
47290         https://bugs.webkit.org/show_bug.cgi?id=99212
47291
47292         Reviewed by Tim Horton.
47293
47294         GraphicsLayerCA::computeVisibleRect() was incorrect for layer trees with perspective
47295         and preserve-3d, so fix that, and add some tests.
47296         
47297         Perspective is implemented via childrenTransform(); if our parent has one,
47298         we have to left-multiply this into the transformation matrix.
47299         
47300         We have to test both this layer and its parent when deciding whether to accumulate
47301         or flatten.
47302         
47303         Use state.mappedQuad() rather than state.lastPlanarQuad(), because the last planar
47304         quad might be for some distant ancestor, and there may be intermediate preserve-3d
47305         layers.
47306
47307         Tests: compositing/visible-rect/3d-transform-style.html
47308                compositing/visible-rect/3d-transformed.html
47309                compositing/visible-rect/nested-transform.html
47310
47311         * platform/graphics/ca/GraphicsLayerCA.cpp:
47312         (WebCore::GraphicsLayerCA::computeVisibleRect):
47313
47314 2012-10-11  Simon Fraser  <simon.fraser@apple.com>
47315
47316         Move TransformState code into its own member function, and remove a test that was prematurely added
47317         https://bugs.webkit.org/show_bug.cgi?id=99117
47318
47319         Reviewed by Tim Horton.
47320
47321         The code that manipulates the TransformState and computes the visible rect is going to get
47322         more complex, so move it into a new member function.
47323
47324         * platform/graphics/ca/GraphicsLayerCA.cpp:
47325         (WebCore::GraphicsLayerCA::computeVisibleRect):
47326         (WebCore::GraphicsLayerCA::recursiveCommitChanges):
47327         * platform/graphics/ca/GraphicsLayerCA.h:
47328         (GraphicsLayerCA):
47329
47330 2012-10-12  Simon Fraser  <simon.fraser@apple.com>
47331
47332         Add some initial visible rect tests and tweak the visible wash layer
47333         https://bugs.webkit.org/show_bug.cgi?id=99095
47334
47335         Reviewed by Tim Horton.
47336
47337         Make the m_visibleTileWashLayer more useful by showing it for all
47338         layers with transforms, not just tiled layers. This is a debugging
47339         layer normally disabled, but enabled by #defining VISIBLE_TILE_WASH.
47340
47341         Tests: compositing/visible-rect/2d-transformed.html
47342                compositing/visible-rect/3d-transformed.html
47343                compositing/visible-rect/clipped-by-viewport copy.html
47344                compositing/visible-rect/clipped-by-viewport.html
47345                compositing/visible-rect/clipped-visible-rect.html
47346
47347         * platform/graphics/ca/GraphicsLayerCA.cpp:
47348         (WebCore::GraphicsLayerCA::recursiveCommitChanges):
47349         (WebCore::GraphicsLayerCA::swapFromOrToTiledLayer):
47350         * platform/graphics/ca/GraphicsLayerCA.h:
47351
47352 2012-10-12  Pablo Flouret  <pablof@motorola.com>
47353
47354         Teach GeneratorGObject about [ImplementedAs] extended attribute in functions
47355         https://bugs.webkit.org/show_bug.cgi?id=99214
47356
47357         Reviewed by Kentaro Hara.
47358
47359         No new tests, updated the binding tests results.
47360
47361         * bindings/scripts/CodeGeneratorGObject.pm:
47362         (GenerateFunction):
47363         * bindings/scripts/test/GObject/WebKitDOMTestObj.cpp:
47364         (webkit_dom_test_obj_orange):
47365
47366 2012-10-12  Beth Dakin  <bdakin@apple.com>
47367
47368         https://bugs.webkit.org/show_bug.cgi?id=99211
47369         When ScrollingStateNodes are destroyed, they should be removed 
47370         ScrollingCoordinator's HashMap
47371
47372         Reviewed by Sam Weinig.
47373
47374         This patch adds a new member variable to ScrollingStateTree. It's a 
47375         Vector of ScrollingNodeIDs. It will contain the IDs of nodes that 
47376         have been removed from the tree since the last time the tree was 
47377         committed.
47378         * page/scrolling/ScrollingStateTree.cpp:
47379         (WebCore::ScrollingStateTree::ScrollingStateTree):
47380
47381         When we do commit, copy the Vector over into the cloned tree, and 
47382         then clear our own Vector.
47383         (WebCore::ScrollingStateTree::commit):
47384
47385         Call didRemoveNode().
47386         (WebCore::ScrollingStateTree::removeNode):
47387
47388         Append the removed node's id to the vector.
47389         (WebCore::ScrollingStateTree::didRemoveNode):
47390         (WebCore):
47391         * page/scrolling/ScrollingStateTree.h:
47392         (ScrollingStateTree):
47393
47394         Call didRemoveNode().
47395         * page/scrolling/ScrollingStateNode.cpp:
47396         (WebCore::ScrollingStateNode::removeChild):
47397
47398         Fix the FIXME!
47399         * page/scrolling/mac/ScrollingCoordinatorMac.mm:
47400         (WebCore::ScrollingCoordinatorMac::detachFromStateTree):
47401
47402 2012-10-12  Brady Eidson  <beidson@apple.com>
47403
47404         Setup basic NetworkProcess messaging and initialization.
47405         https://bugs.webkit.org/show_bug.cgi?id=99198
47406
47407         Reviewed by Sam Weinig.
47408
47409         * English.lproj/Localizable.strings: Update for the Network Process UI name.
47410
47411 2012-10-12  Levi Weintraub  <leviw@chromium.org>
47412
47413         Remove unnecessary mode identifiers added in r131111
47414         https://bugs.webkit.org/show_bug.cgi?id=99208
47415
47416         Reviewed by Emil A Eklund.
47417
47418         Removing unnecessary mode identifiers from coordinate conversion methods. These
47419         were added in http://trac.webkit.org/changeset/131111
47420
47421         No new tests. No change in behavior.
47422
47423         * rendering/RenderBox.h:
47424         (RenderBox):
47425         * rendering/RenderBoxModelObject.h:
47426         (RenderBoxModelObject):
47427         * rendering/RenderInline.h:
47428         (RenderInline):
47429         * rendering/RenderObject.h:
47430         (RenderObject):
47431         * rendering/RenderView.h:
47432         (RenderView):
47433         * rendering/svg/RenderSVGForeignObject.h:
47434         (RenderSVGForeignObject):
47435         * rendering/svg/RenderSVGInline.h:
47436         (RenderSVGInline):
47437         * rendering/svg/RenderSVGModelObject.h:
47438         (RenderSVGModelObject):
47439         * rendering/svg/RenderSVGRoot.h:
47440         (RenderSVGRoot):
47441         * rendering/svg/RenderSVGText.h:
47442         (RenderSVGText):
47443
47444 2012-10-12  Sheriff Bot  <webkit.review.bot@gmail.com>
47445
47446         Unreviewed, rolling out r131224.
47447         http://trac.webkit.org/changeset/131224
47448         https://bugs.webkit.org/show_bug.cgi?id=99210
47449
47450         It broke the build (Requested by andersca on #webkit).
47451
47452         * history/qt/HistoryItemQt.cpp:
47453         * platform/FractionalLayoutUnit.h:
47454         (WebCore):
47455         (WebCore::operator<<):
47456         (WebCore::operator>>):
47457         * platform/graphics/IntPoint.h:
47458         (WebCore):
47459         (WebCore::operator<<):
47460         (WebCore::operator>>):
47461
47462 2012-10-12  Anders Carlsson  <andersca@apple.com>
47463
47464         Move QDataStream functions into HistoryItemQt.cpp
47465         https://bugs.webkit.org/show_bug.cgi?id=99203
47466
47467         Reviewed by Andreas Kling.
47468
47469         It seems like the QDataStream stream operators are only used from HistoryItemQt.cpp
47470         inside WebCore, so move them there. If in the future they are required elsewhere, they should
47471         be moved into a separate header instead of polluting headers unnecessarily.
47472
47473         * history/qt/HistoryItemQt.cpp:
47474         (operator<<):
47475         (operator>>):
47476         * platform/FractionalLayoutUnit.h:
47477         * platform/graphics/IntPoint.h:
47478
47479 2012-10-12  Beth Dakin  <bdakin@apple.com>
47480
47481         https://bugs.webkit.org/show_bug.cgi?id=99204
47482         ScrollingStateNodes should keep track of their IDs
47483
47484         Reviewed by Simon Fraser.
47485
47486         There is a HashMap in ScrollingCoordinatorMac that maps 
47487         ScrollingNodeIDs to ScrollingStateNodes. The nodes themselves should 
47488         keep track of this id. Then the id can be used to make sure 
47489         ScrollingStateNodes remove themselves from the HashMap when they are 
47490         destroyed, and it will also be useful for associating 
47491         ScrollingStateNodes with ScrollingTreeNodes over on the scrolling 
47492         thread.
47493   
47494         This patch only has the ScrollingStateNodes cache the id. I will 
47495         actually make use of the id in follow-up patches.
47496
47497         * page/scrolling/ScrollingStateNode.cpp:
47498         (WebCore::ScrollingStateNode::ScrollingStateNode):
47499         * page/scrolling/ScrollingStateNode.h:
47500         (ScrollingStateNode):
47501         (WebCore::ScrollingStateNode::scrollingNodeID):
47502         * page/scrolling/ScrollingStateScrollingNode.cpp:
47503         (WebCore::ScrollingStateScrollingNode::create):
47504         (WebCore::ScrollingStateScrollingNode::ScrollingStateScrollingNode):
47505         * page/scrolling/ScrollingStateScrollingNode.h:
47506         (ScrollingStateScrollingNode):
47507         * page/scrolling/mac/ScrollingCoordinatorMac.mm:
47508         (WebCore::ScrollingCoordinatorMac::attachToStateTree):
47509
47510 2012-10-01  Jer Noble  <jer.noble@apple.com>
47511
47512         Add LSKD support to MediaPlayerPrivateAVFoundation.
47513         https://bugs.webkit.org/show_bug.cgi?id=98090
47514
47515         Reviewed by Anders Carlsson.
47516
47517         Add support for LSKD key system to MediaPlayerPrivateAVFoundation.
47518
47519         * platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.h:
47520         (MediaPlayerPrivateAVFoundationObjC): Add m_loaderDelegate, m_keyURIToRequestMap, and m_sessionToRequestMap.
47521         * platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
47522         (globalLoaderDelegateQueue): Static accessor for the dispatch queue to use for the loader delegate.
47523         (WebCore::MediaPlayerPrivateAVFoundationObjC::MediaPlayerPrivateAVFoundationObjC):
47524         (WebCore::MediaPlayerPrivateAVFoundationObjC::createAVAssetForURL): Add the loader delegate to the AVURLAsset.
47525         (WebCore::keySystemIsSupported): Convenience function; checks that the key system matches "com.apple.lskd"
47526         (WebCore::MediaPlayerPrivateAVFoundationObjC::extendedSupportsType): Check the key system matches.
47527         (WebCore::MediaPlayerPrivateAVFoundationObjC::shouldWaitForLoadingOfResource): Fire a needkey event with an initData containing
47528             the key URI.
47529         (WebCore::extractKeyURIKeyIdAndCertificateFromInitData): Extract the keyURI, keyID, and the app certificate from the initData.
47530         (WebCore::MediaPlayerPrivateAVFoundationObjC::generateKeyRequest): Generate a streaming key request from AVFoundation and 
47531             fire a keymessage event.
47532         (WebCore::MediaPlayerPrivateAVFoundationObjC::addKey): Pass to AVFoundation through the AVAssetResourceLoader.
47533         (WebCore::MediaPlayerPrivateAVFoundationObjC::cancelKeyRequest): Release the loader delegate.
47534         (-[WebCoreAVFLoaderDelegate initWithCallback:]): Simple constructor.
47535         (-[WebCoreAVFLoaderDelegate resourceLoader:shouldWaitForLoadingOfRequestedResource:]): Pass to the MediaPlayerPrivateAVFoundationObjC.
47536
47537 2012-10-12  James Simonsen  <simonjam@chromium.org>
47538
47539         [RequestAnimationFrame] Remove vendor prefix
47540         https://bugs.webkit.org/show_bug.cgi?id=99116
47541
47542         Reviewed by Adam Barth.
47543
47544         Test: Existing rAF tests without prefix.
47545
47546         * dom/Document.cpp:
47547         (WebCore::Document::requestAnimationFrame):
47548         (WebCore::Document::cancelAnimationFrame):
47549         * dom/Document.h:
47550         (Document):
47551         * page/DOMWindow.cpp:
47552         (WebCore::DOMWindow::requestAnimationFrame):
47553         (WebCore::DOMWindow::cancelAnimationFrame):
47554         * page/DOMWindow.h:
47555         (DOMWindow):
47556         * page/DOMWindow.idl:
47557
47558 2012-10-12  Andreas Kling  <kling@webkit.org>
47559
47560         REGRESSION: Rapid memory growth calling DOM APIs with large strings.
47561         <http://webkit.org/b/98498>
47562         <rdar://problem/12443926>
47563
47564         Reviewed by Geöff Gären and Änders Cärlssön.
47565
47566         Prevent the selector query cache from growing indefinitely by setting a relaxed limit of 256 entries.
47567         If the cache fills up, remove a random entry before inserting a new one.
47568
47569         While this is unlikely to be a problem on real websites, we definitely shouldn't be adding boundless
47570         caches to WebKit.
47571
47572         * dom/SelectorQuery.cpp:
47573         (WebCore::SelectorQueryCache::add):
47574
47575 2012-10-12  Roger Fong  <roger_fong@apple.com>
47576
47577         Update method signature for platformCALayerShowRepaintCounter in MediaPlayerPlayerPrivateAVFoundationCF's LayerClient class.
47578         https://bugs.webkit.org/show_bug.cgi?id=99190
47579
47580         Reviewed by Simon Fraser.
47581
47582         LayerClient's base class (PlatformCALayerClient) method signature for abstract method platformCALayerShowRepaintCounter
47583         was updated in http://trac.webkit.org/changeset/130676 so it needs to be changed in LayerClient as well.
47584
47585         * platform/graphics/avfoundation/cf/MediaPlayerPrivateAVFoundationCF.cpp:
47586         (WebCore::LayerClient::platformCALayerShowRepaintCounter):
47587
47588 2012-10-12  Scott Graham  <scottmg@chromium.org>
47589
47590         Local disable of stack corruption warning when compiling on VS2012
47591         https://bugs.webkit.org/show_bug.cgi?id=99106
47592
47593         Reviewed by Ryosuke Niwa.
47594
47595         Warning is:
47596
47597         ...\FEConvolveMatrix.cpp(274) : warning C4789: buffer 'totals' of size 12 bytes will be overrun; 4 bytes will be written starting at offset 12.
47598
47599         And similar at lines 281, 355, and 365. This appears to be incorrect
47600         as the writes at offset 12 occur only when preserveAlphaValues is
47601         false, and when it's false, totals will be 16 bytes long.
47602
47603         No new tests.
47604
47605         * platform/graphics/filters/FEConvolveMatrix.cpp:
47606         (WebCore):
47607
47608 2012-10-11  Emil A Eklund  <eae@chromium.org>
47609
47610         [Sub pixel layout] Change RenderBox to not round logicalTop/Left for RenderReplaced
47611         https://bugs.webkit.org/show_bug.cgi?id=99108
47612
47613         Reviewed by Levi Weintraub.
47614
47615         Change RenderBox::computePositionedLogicalHeightReplaced and
47616         computePositionedLogicalWidthReplaced to not round position.
47617
47618         Covered by existing tests.
47619
47620         * rendering/InlineFlowBox.cpp:
47621         (WebCore::InlineFlowBox::placeBoxesInBlockDirection):
47622         Floor baselinePosition for replaced elements to match logic in
47623         RootInlineBox::ascentAndDescentForBox where the ascent is
47624         computed from the floored baselinePosition.
47625         
47626         * rendering/RenderBox.cpp:
47627         (WebCore::RenderBox::computePositionedLogicalWidthReplaced):
47628         (WebCore::RenderBox::computePositionedLogicalHeightReplaced):
47629         Remove .round() call for m_position, preserving precision.
47630
47631 2012-10-01  Jer Noble  <jer.noble@apple.com>
47632
47633         Enable ENCRYPTED_MEDIA support on Mac.
47634         https://bugs.webkit.org/show_bug.cgi?id=98044
47635
47636         Reviewed by Anders Carlsson.
47637
47638         Enable the ENCRYPTED_MEDIA conditional on the Mac port.
47639
47640         No new tests; Existing media/encrypted-media tests require org.w3.clearkey support, which is not implemented.
47641
47642         * Configurations/FeatureDefines.xcconfig: Enable the ENCRYPTED_MEDIA flag.
47643         * DerivedSources.make: Add the MediaKeyError and MediaKeyEvent classes.
47644         * WebCore.xcodeproj/project.pbxproj: Ditto.
47645         * bindings/js/JSDictionary.cpp:
47646         (WebCore::JSDictionary::convertValue): Add convertValue functions for Uint8Array and MediaKeyError.
47647         * bindings/js/JSDictionary.h:
47648         * html/HTMLMediaElement.cpp:
47649         (WebCore::HTMLMediaElement::mediaPlayerKeyNeeded): Throw an error if no "needkey"
47650             handler is registered.
47651         * html/HTMLMediaElement.h:
47652         * html/HTMLMediaElement.idl: Change keySystem to DefaultIsUndefined.
47653         * platform/graphics/MediaPlayer.cpp:
47654         (WebCore::MediaPlayer::keyNeeded): Return a bool indicating whether the process was aborted
47655             due to a lack of "needkey" listener.
47656         * platform/graphics/MediaPlayer.h:
47657         (WebCore::MediaPlayerClient::mediaPlayerKeyAdded): Remove unused parameter names.
47658         (WebCore::MediaPlayerClient::mediaPlayerKeyError): Ditto.
47659         (WebCore::MediaPlayerClient::mediaPlayerKeyMessage): Ditto.
47660         (WebCore::MediaPlayerClient::mediaPlayerKeyNeeded): Ditto.
47661         * platform/graphics/MediaPlayerPrivate.h:
47662         (WebCore::MediaPlayerPrivateInterface::addKey): Ditto.
47663         (WebCore::MediaPlayerPrivateInterface::generateKeyRequest): Ditto.
47664         (WebCore::MediaPlayerPrivateInterface::cancelKeyRequest): Ditto.
47665         * platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.h:
47666         * platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
47667         (WebCore::MediaPlayerPrivateAVFoundationObjC::registerMediaEngine): Call extendedSupportsType.
47668         (WebCore::MediaPlayerPrivateAVFoundationObjC::extendedSupportsType): Stub. Pass through to supportsType.
47669         * platform/graphics/mac/MediaPlayerPrivateQTKit.h:
47670         * platform/graphics/mac/MediaPlayerPrivateQTKit.mm:
47671         (WebCore::MediaPlayerPrivateQTKit::registerMediaEngine): Call extendedSupportsType.
47672         (WebCore::MediaPlayerPrivateQTKit::extendedSupportsType): Stub. Pass through to supportsType.
47673
47674 2012-10-12  Jaehun Lim  <ljaehun.lim@samsung.com>
47675
47676         Check parameter's safety first
47677         https://bugs.webkit.org/show_bug.cgi?id=99136
47678
47679         Reviewed by Chris Rogers.
47680
47681         Pointer parameter was used before NULL checking.
47682         This patch moves safety checking statements to the head of the function.
47683
47684         No new tests. No behavior change.
47685
47686         * platform/audio/AudioChannel.cpp:
47687         (WebCore::AudioChannel::copyFromRange):
47688         (WebCore::AudioChannel::sumFrom):
47689         * platform/audio/EqualPowerPanner.cpp:
47690         (WebCore::EqualPowerPanner::pan):
47691
47692 2012-10-12  Andreas Kling  <kling@webkit.org>
47693
47694         RenderBR should share its constant newline string between instances.
47695         <http://webkit.org/b/99121>
47696
47697         Reviewed by Anders Carlsson.
47698
47699         * rendering/RenderBR.cpp:
47700         (WebCore::newlineString):
47701         (WebCore::RenderBR::RenderBR):
47702
47703 2012-10-12  Alexander Pavlov  <apavlov@chromium.org>
47704
47705         Web Inspector: [Styles] !important priority not honored inside the same declaration
47706         https://bugs.webkit.org/show_bug.cgi?id=99170
47707
47708         Reviewed by Yury Semikhatsky.
47709
47710         Property priorities were not considered inside the same CSS rule. !important properties should stay active
47711         even if followed by non-!important properties with the same name.
47712
47713         * inspector/InspectorStyleSheet.cpp:
47714         (WebCore::InspectorStyle::styleWithProperties):
47715         * inspector/front-end/StylesSidebarPane.js:
47716         (WebInspector.StylePropertiesSection.prototype.onpopulate):
47717         (WebInspector.ComputedStylePropertiesSection.prototype.rebuildComputedTrace):
47718
47719 2012-10-12  Pavel Feldman  <pfeldman@chromium.org>
47720
47721         Web Inspector: use hard-coded zoom factors instead of 1.2 powers.
47722         https://bugs.webkit.org/show_bug.cgi?id=99173
47723
47724         Reviewed by Vsevolod Vlasov.
47725
47726         Overwise we step too fast.
47727
47728         * inspector/front-end/inspector.js:
47729         (WebInspector._zoomIn):
47730         (WebInspector._zoomOut):
47731         (WebInspector):
47732
47733 2012-10-12  Yury Semikhatsky  <yurys@chromium.org>
47734
47735         Web Inspector: move delete watch expression farther from the expand triangle
47736         https://bugs.webkit.org/show_bug.cgi?id=99166
47737
47738         Reviewed by Pavel Feldman.
47739
47740         Aligned 'delete watch expression' button on the right side (was on the left) so
47741         that it is hard to click it when expanding watched value.
47742
47743         * inspector/front-end/inspector.css:
47744         (.properties-tree.watch-expressions):
47745         (.section .properties .delete-button):
47746
47747 2012-10-12  Pavel Feldman  <pfeldman@chromium.org>
47748
47749         Web Inspector: trim filename in the call stack sidebar
47750         https://bugs.webkit.org/show_bug.cgi?id=99169
47751
47752         Reviewed by Yury Semikhatsky.
47753
47754         Otherwise long file names are rendered poorly.
47755
47756         * inspector/front-end/CallStackSidebarPane.js:
47757         (WebInspector.CallStackSidebarPane.Placard.prototype._update):
47758         * inspector/front-end/inspector.css:
47759         (.placard .subtitle):
47760
47761 2012-10-12  Vsevolod Vlasov  <vsevik@chromium.org>
47762
47763         Web Inspector: Resume button in element inspector -> scripts has tooltip 'pause script execution'
47764         https://bugs.webkit.org/show_bug.cgi?id=99165
47765
47766         Reviewed by Pavel Feldman.
47767
47768         Pause/resume button title is now updated when debugger is paused/resumed.
47769
47770         * English.lproj/localizedStrings.js:
47771         * inspector/front-end/ScriptsPanel.js:
47772         (WebInspector.ScriptsPanel.prototype._updateDebuggerButtons):
47773         (WebInspector.ScriptsPanel.prototype._createDebugToolbar):
47774         (WebInspector.ScriptsPanel.prototype._updateButtonTitle):
47775         (WebInspector.ScriptsPanel.prototype._createButtonAndRegisterShortcuts):
47776
47777 2012-10-12  Kentaro Hara  <haraken@chromium.org>
47778
47779         Unreviewed. Fix run-binding-tests failures introduced in r131167.
47780
47781         * bindings/scripts/CodeGeneratorV8.pm:
47782         (GenerateConstructorGetter):
47783         * bindings/scripts/test/V8/V8TestObj.cpp:
47784         (WebCore):
47785         (WebCore::TestObjV8Internal::TestObjConstructorGetter):
47786         (WebCore::V8TestObj::installPerContextProperties):
47787         (WebCore::V8TestObj::installPerContextPrototypeProperties):
47788         (WebCore::V8TestObj::wrapSlow):
47789         * bindings/scripts/test/V8/V8TestObj.h:
47790         (V8TestObj):
47791
47792 2012-10-12  Pavel Feldman  <pfeldman@chromium.org>
47793
47794         Web Inspector: relies on current Function.prototype.bind in the frame
47795         https://bugs.webkit.org/show_bug.cgi?id=99164
47796
47797         Reviewed by Yury Semikhatsky.
47798
47799         InjectedScriptSource should not depend on the bind override.
47800
47801         Test: inspector/console/console-bind-fake.html
47802
47803         * inspector/InjectedScriptSource.js:
47804         (.):
47805
47806 2012-10-12  Alexander Pavlov  <apavlov@chromium.org>
47807
47808         Web Inspector: [Styles] Colors should be "As authored" by default
47809         https://bugs.webkit.org/show_bug.cgi?id=99017
47810
47811         Reviewed by Vsevolod Vlasov.
47812
47813         Use "original" as the default value of WebInspector.settings.colorFormat.
47814
47815         * inspector/front-end/Settings.js:
47816
47817 2012-10-12  Takashi Sakamoto  <tasak@google.com>
47818
47819         [WebKit IDL] move extended attributes to left of interface, exception...
47820         https://bugs.webkit.org/show_bug.cgi?id=99012
47821
47822         Reviewed by Kentaro Hara.
47823
47824         According to WebIDL spec, moved all extended attributes to the left
47825         of interface / attribute / readonly attribute / exception.
47826
47827         No new tests. I ran run-bindings-tests and all tests passed.
47828
47829         * Modules/battery/BatteryManager.idl:
47830         * Modules/battery/NavigatorBattery.idl:
47831         * Modules/filesystem/DOMFileSystem.idl:
47832         * Modules/filesystem/DOMFileSystemSync.idl:
47833         * Modules/filesystem/DOMWindowFileSystem.idl:
47834         * Modules/filesystem/DataTransferItemFileSystem.idl:
47835         * Modules/filesystem/DirectoryEntry.idl:
47836         * Modules/filesystem/DirectoryEntrySync.idl:
47837         * Modules/filesystem/DirectoryReader.idl:
47838         * Modules/filesystem/DirectoryReaderSync.idl:
47839         * Modules/filesystem/EntriesCallback.idl:
47840         * Modules/filesystem/Entry.idl:
47841         * Modules/filesystem/EntryArray.idl:
47842         * Modules/filesystem/EntryArraySync.idl:
47843         * Modules/filesystem/EntryCallback.idl:
47844         * Modules/filesystem/EntrySync.idl:
47845         * Modules/filesystem/ErrorCallback.idl:
47846         * Modules/filesystem/FileCallback.idl:
47847         * Modules/filesystem/FileEntry.idl:
47848         * Modules/filesystem/FileEntrySync.idl:
47849         * Modules/filesystem/FileSystemCallback.idl:
47850         * Modules/filesystem/FileWriter.idl:
47851         * Modules/filesystem/FileWriterCallback.idl:
47852         * Modules/filesystem/FileWriterSync.idl:
47853         * Modules/filesystem/HTMLInputElementFileSystem.idl:
47854         * Modules/filesystem/Metadata.idl:
47855         * Modules/filesystem/MetadataCallback.idl:
47856         * Modules/filesystem/WorkerContextFileSystem.idl:
47857         * Modules/gamepad/Gamepad.idl:
47858         * Modules/gamepad/GamepadList.idl:
47859         * Modules/gamepad/NavigatorGamepad.idl:
47860         * Modules/geolocation/Geolocation.idl:
47861         * Modules/geolocation/Geoposition.idl:
47862         * Modules/geolocation/NavigatorGeolocation.idl:
47863         * Modules/geolocation/PositionCallback.idl:
47864         * Modules/geolocation/PositionError.idl:
47865         * Modules/geolocation/PositionErrorCallback.idl:
47866         * Modules/indexeddb/DOMWindowIndexedDatabase.idl:
47867         * Modules/indexeddb/IDBAny.idl:
47868         * Modules/indexeddb/IDBCursor.idl:
47869         * Modules/indexeddb/IDBCursorWithValue.idl:
47870         * Modules/indexeddb/IDBDatabase.idl:
47871         * Modules/indexeddb/IDBDatabaseException.idl:
47872         * Modules/indexeddb/IDBFactory.idl:
47873         * Modules/indexeddb/IDBIndex.idl:
47874         * Modules/indexeddb/IDBKey.idl:
47875         * Modules/indexeddb/IDBKeyRange.idl:
47876         * Modules/indexeddb/IDBObjectStore.idl:
47877         * Modules/indexeddb/IDBOpenDBRequest.idl:
47878         * Modules/indexeddb/IDBRequest.idl:
47879         * Modules/indexeddb/IDBTransaction.idl:
47880         * Modules/indexeddb/IDBUpgradeNeededEvent.idl:
47881         * Modules/indexeddb/IDBVersionChangeEvent.idl:
47882         * Modules/indexeddb/IDBVersionChangeRequest.idl:
47883         * Modules/indexeddb/WorkerContextIndexedDatabase.idl:
47884         * Modules/intents/DOMWindowIntents.idl:
47885         * Modules/intents/DeliveredIntent.idl:
47886         * Modules/intents/NavigatorIntents.idl:
47887         * Modules/mediasource/MediaSource.idl:
47888         * Modules/mediasource/SourceBuffer.idl:
47889         * Modules/mediasource/SourceBufferList.idl:
47890         * Modules/mediastream/DOMWindowMediaStream.idl:
47891         * Modules/mediastream/IceCallback.idl:
47892         * Modules/mediastream/IceCandidate.idl:
47893         * Modules/mediastream/LocalMediaStream.idl:
47894         * Modules/mediastream/MediaStream.idl:
47895         * Modules/mediastream/MediaStreamEvent.idl:
47896         * Modules/mediastream/MediaStreamList.idl:
47897         * Modules/mediastream/MediaStreamTrack.idl:
47898         * Modules/mediastream/MediaStreamTrackEvent.idl:
47899         * Modules/mediastream/MediaStreamTrackList.idl:
47900         * Modules/mediastream/NavigatorMediaStream.idl:
47901         * Modules/mediastream/NavigatorUserMediaError.idl:
47902         * Modules/mediastream/NavigatorUserMediaErrorCallback.idl:
47903         * Modules/mediastream/NavigatorUserMediaSuccessCallback.idl:
47904         * Modules/mediastream/PeerConnection00.idl:
47905         * Modules/mediastream/RTCErrorCallback.idl:
47906         * Modules/mediastream/RTCIceCandidate.idl:
47907         * Modules/mediastream/RTCIceCandidateEvent.idl:
47908         * Modules/mediastream/RTCPeerConnection.idl:
47909         * Modules/mediastream/RTCSessionDescription.idl:
47910         * Modules/mediastream/RTCSessionDescriptionCallback.idl:
47911         * Modules/mediastream/RTCStatsCallback.idl:
47912         * Modules/mediastream/RTCStatsElement.idl:
47913         * Modules/mediastream/RTCStatsReport.idl:
47914         * Modules/mediastream/RTCStatsResponse.idl:
47915         * Modules/mediastream/SessionDescription.idl:
47916         * Modules/navigatorcontentutils/NavigatorContentUtils.idl:
47917         * Modules/networkinfo/NavigatorNetworkInfoConnection.idl:
47918         * Modules/networkinfo/NetworkInfoConnection.idl:
47919         * Modules/notifications/DOMWindowNotifications.idl:
47920         * Modules/notifications/Notification.idl:
47921         * Modules/notifications/NotificationCenter.idl:
47922         * Modules/notifications/NotificationPermissionCallback.idl:
47923         * Modules/notifications/WorkerContextNotifications.idl:
47924         * Modules/proximity/DeviceProximityEvent.idl:
47925         * Modules/quota/DOMWindowQuota.idl:
47926         * Modules/quota/StorageInfo.idl:
47927         * Modules/quota/StorageInfoErrorCallback.idl:
47928         * Modules/quota/StorageInfoQuotaCallback.idl:
47929         * Modules/quota/StorageInfoUsageCallback.idl:
47930         * Modules/speech/DOMWindowSpeech.idl:
47931         * Modules/speech/SpeechGrammar.idl:
47932         * Modules/speech/SpeechGrammarList.idl:
47933         * Modules/speech/SpeechRecognition.idl:
47934         * Modules/speech/SpeechRecognitionAlternative.idl:
47935         * Modules/speech/SpeechRecognitionError.idl:
47936         * Modules/speech/SpeechRecognitionEvent.idl:
47937         * Modules/speech/SpeechRecognitionResult.idl:
47938         * Modules/speech/SpeechRecognitionResultList.idl:
47939         * Modules/vibration/NavigatorVibration.idl:
47940         * Modules/webaudio/AudioBuffer.idl:
47941         * Modules/webaudio/AudioBufferCallback.idl:
47942         * Modules/webaudio/AudioBufferSourceNode.idl:
47943         * Modules/webaudio/AudioChannelMerger.idl:
47944         * Modules/webaudio/AudioChannelSplitter.idl:
47945         * Modules/webaudio/AudioContext.idl:
47946         * Modules/webaudio/AudioDestinationNode.idl:
47947         * Modules/webaudio/AudioGain.idl:
47948         * Modules/webaudio/AudioGainNode.idl:
47949         * Modules/webaudio/AudioListener.idl:
47950         * Modules/webaudio/AudioNode.idl:
47951         * Modules/webaudio/AudioPannerNode.idl:
47952         * Modules/webaudio/AudioParam.idl:
47953         * Modules/webaudio/AudioProcessingEvent.idl:
47954         * Modules/webaudio/AudioSourceNode.idl:
47955         * Modules/webaudio/BiquadFilterNode.idl:
47956         * Modules/webaudio/ConvolverNode.idl:
47957         * Modules/webaudio/DOMWindowWebAudio.idl:
47958         * Modules/webaudio/DelayNode.idl:
47959         * Modules/webaudio/DynamicsCompressorNode.idl:
47960         * Modules/webaudio/JavaScriptAudioNode.idl:
47961         * Modules/webaudio/MediaElementAudioSourceNode.idl:
47962         * Modules/webaudio/MediaStreamAudioSourceNode.idl:
47963         * Modules/webaudio/OfflineAudioCompletionEvent.idl:
47964         * Modules/webaudio/Oscillator.idl:
47965         * Modules/webaudio/RealtimeAnalyserNode.idl:
47966         * Modules/webaudio/WaveShaperNode.idl:
47967         * Modules/webaudio/WaveTable.idl:
47968         * Modules/webdatabase/DOMWindowWebDatabase.idl:
47969         * Modules/webdatabase/Database.idl:
47970         * Modules/webdatabase/DatabaseCallback.idl:
47971         * Modules/webdatabase/DatabaseSync.idl:
47972         * Modules/webdatabase/SQLError.idl:
47973         * Modules/webdatabase/SQLException.idl:
47974         * Modules/webdatabase/SQLResultSet.idl:
47975         * Modules/webdatabase/SQLResultSetRowList.idl:
47976         * Modules/webdatabase/SQLStatementCallback.idl:
47977         * Modules/webdatabase/SQLStatementErrorCallback.idl:
47978         * Modules/webdatabase/SQLTransaction.idl:
47979         * Modules/webdatabase/SQLTransactionCallback.idl:
47980         * Modules/webdatabase/SQLTransactionErrorCallback.idl:
47981         * Modules/webdatabase/SQLTransactionSync.idl:
47982         * Modules/webdatabase/SQLTransactionSyncCallback.idl:
47983         * Modules/webdatabase/WorkerContextWebDatabase.idl:
47984         * Modules/websockets/CloseEvent.idl:
47985         * Modules/websockets/DOMWindowWebSocket.idl:
47986         * Modules/websockets/WebSocket.idl:
47987         * Modules/websockets/WorkerContextWebSocket.idl:
47988         * bindings/scripts/test/TestCallback.idl:
47989         * bindings/scripts/test/TestCustomNamedGetter.idl:
47990         * bindings/scripts/test/TestDomainSecurity.idl:
47991         * bindings/scripts/test/TestEventConstructor.idl:
47992         * bindings/scripts/test/TestEventTarget.idl:
47993         * bindings/scripts/test/TestInterface.idl:
47994         * bindings/scripts/test/TestNamedConstructor.idl:
47995         * bindings/scripts/test/TestNode.idl:
47996         * bindings/scripts/test/TestObj.idl:
47997         * bindings/scripts/test/TestSerializedScriptValueInterface.idl:
47998         * bindings/scripts/test/TestSupplemental.idl:
47999         * bindings/scripts/test/TestTypedArray.idl:
48000         * css/CSSCharsetRule.idl:
48001         * css/CSSImportRule.idl:
48002         * css/CSSPageRule.idl:
48003         * css/CSSRule.idl:
48004         * css/CSSRuleList.idl:
48005         * css/CSSStyleDeclaration.idl:
48006         * css/CSSStyleRule.idl:
48007         * css/CSSStyleSheet.idl:
48008         * css/CSSUnknownRule.idl:
48009         * css/CSSValue.idl:
48010         * css/CSSValueList.idl:
48011         * css/MediaList.idl:
48012         * css/MediaQueryListListener.idl:
48013         * css/StyleMedia.idl:
48014         * css/StyleSheet.idl:
48015         * css/StyleSheetList.idl:
48016         * css/WebKitCSSFilterValue.idl:
48017         * css/WebKitCSSKeyframesRule.idl:
48018         * css/WebKitCSSMatrix.idl:
48019         * css/WebKitCSSRegionRule.idl:
48020         * css/WebKitCSSTransformValue.idl:
48021         * dom/Attr.idl:
48022         * dom/BeforeLoadEvent.idl:
48023         * dom/CharacterData.idl:
48024         * dom/ClientRectList.idl:
48025         * dom/Clipboard.idl:
48026         * dom/CustomEvent.idl:
48027         * dom/DOMCoreException.idl:
48028         * dom/DOMImplementation.idl:
48029         * dom/DOMNamedFlowCollection.idl:
48030         * dom/DOMStringList.idl:
48031         * dom/DOMStringMap.idl:
48032         * dom/DataTransferItem.idl:
48033         * dom/DataTransferItemList.idl:
48034         * dom/DeviceMotionEvent.idl:
48035         * dom/DeviceOrientationEvent.idl:
48036         * dom/Document.idl:
48037         * dom/DocumentType.idl:
48038         * dom/Element.idl:
48039         * dom/Entity.idl:
48040         * dom/ErrorEvent.idl:
48041         * dom/Event.idl:
48042         * dom/EventException.idl:
48043         * dom/EventListener.idl:
48044         * dom/EventTarget.idl:
48045         * dom/HashChangeEvent.idl:
48046         * dom/MessageChannel.idl:
48047         * dom/MessageEvent.idl:
48048         * dom/MessagePort.idl:
48049         * dom/MouseEvent.idl:
48050         * dom/MutationCallback.idl:
48051         * dom/MutationObserver.idl:
48052         * dom/MutationRecord.idl:
48053         * dom/NamedNodeMap.idl:
48054         * dom/Node.idl:
48055         * dom/NodeFilter.idl:
48056         * dom/NodeIterator.idl:
48057         * dom/NodeList.idl:
48058         * dom/Notation.idl:
48059         * dom/OverflowEvent.idl:
48060         * dom/PageTransitionEvent.idl:
48061         * dom/PopStateEvent.idl:
48062         * dom/ProcessingInstruction.idl:
48063         * dom/ProgressEvent.idl:
48064         * dom/PropertyNodeList.idl:
48065         * dom/RangeException.idl:
48066         * dom/RequestAnimationFrameCallback.idl:
48067         * dom/ShadowRoot.idl:
48068         * dom/StringCallback.idl:
48069         * dom/Touch.idl:
48070         * dom/TouchEvent.idl:
48071         * dom/TouchList.idl:
48072         * dom/TreeWalker.idl:
48073         * dom/WebKitAnimationEvent.idl:
48074         * dom/WebKitNamedFlow.idl:
48075         * dom/WebKitTransitionEvent.idl:
48076         * editing/DOMTransaction.idl:
48077         * editing/UndoManager.idl:
48078         * fileapi/Blob.idl:
48079         * fileapi/File.idl:
48080         * fileapi/FileError.idl:
48081         * fileapi/FileException.idl:
48082         * fileapi/FileList.idl:
48083         * fileapi/FileReader.idl:
48084         * fileapi/FileReaderSync.idl:
48085         * html/DOMFormData.idl:
48086         * html/DOMSettableTokenList.idl:
48087         * html/DOMTokenList.idl:
48088         * html/DOMURL.idl:
48089         * html/HTMLAllCollection.idl:
48090         * html/HTMLAnchorElement.idl:
48091         * html/HTMLAppletElement.idl:
48092         * html/HTMLAreaElement.idl:
48093         * html/HTMLAudioElement.idl:
48094         * html/HTMLBRElement.idl:
48095         * html/HTMLBaseElement.idl:
48096         * html/HTMLBaseFontElement.idl:
48097         * html/HTMLBodyElement.idl:
48098         * html/HTMLButtonElement.idl:
48099         * html/HTMLCanvasElement.idl:
48100         * html/HTMLCollection.idl:
48101         * html/HTMLDListElement.idl:
48102         * html/HTMLDataListElement.idl:
48103         * html/HTMLDetailsElement.idl:
48104         * html/HTMLDialogElement.idl:
48105         * html/HTMLDirectoryElement.idl:
48106         * html/HTMLDivElement.idl:
48107         * html/HTMLDocument.idl:
48108         * html/HTMLElement.idl:
48109         * html/HTMLEmbedElement.idl:
48110         * html/HTMLFieldSetElement.idl:
48111         * html/HTMLFontElement.idl:
48112         * html/HTMLFormElement.idl:
48113         * html/HTMLFrameElement.idl:
48114         * html/HTMLFrameSetElement.idl:
48115         * html/HTMLHRElement.idl:
48116         * html/HTMLHeadElement.idl:
48117         * html/HTMLHeadingElement.idl:
48118         * html/HTMLHtmlElement.idl:
48119         * html/HTMLIFrameElement.idl:
48120         * html/HTMLImageElement.idl:
48121         * html/HTMLInputElement.idl:
48122         * html/HTMLIntentElement.idl:
48123         * html/HTMLKeygenElement.idl:
48124         * html/HTMLLIElement.idl:
48125         * html/HTMLLabelElement.idl:
48126         * html/HTMLLegendElement.idl:
48127         * html/HTMLLinkElement.idl:
48128         * html/HTMLMapElement.idl:
48129         * html/HTMLMarqueeElement.idl:
48130         * html/HTMLMediaElement.idl:
48131         * html/HTMLMenuElement.idl:
48132         * html/HTMLMetaElement.idl:
48133         * html/HTMLMeterElement.idl:
48134         * html/HTMLModElement.idl:
48135         * html/HTMLOListElement.idl:
48136         * html/HTMLObjectElement.idl:
48137         * html/HTMLOptGroupElement.idl:
48138         * html/HTMLOptionElement.idl:
48139         * html/HTMLOptionsCollection.idl:
48140         * html/HTMLOutputElement.idl:
48141         * html/HTMLParagraphElement.idl:
48142         * html/HTMLParamElement.idl:
48143         * html/HTMLPreElement.idl:
48144         * html/HTMLProgressElement.idl:
48145         * html/HTMLPropertiesCollection.idl:
48146         * html/HTMLQuoteElement.idl:
48147         * html/HTMLScriptElement.idl:
48148         * html/HTMLSelectElement.idl:
48149         * html/HTMLSourceElement.idl:
48150         * html/HTMLStyleElement.idl:
48151         * html/HTMLTableCaptionElement.idl:
48152         * html/HTMLTableCellElement.idl:
48153         * html/HTMLTableColElement.idl:
48154         * html/HTMLTableElement.idl:
48155         * html/HTMLTableRowElement.idl:
48156         * html/HTMLTableSectionElement.idl:
48157         * html/HTMLTextAreaElement.idl:
48158         * html/HTMLTitleElement.idl:
48159         * html/HTMLTrackElement.idl:
48160         * html/HTMLUListElement.idl:
48161         * html/HTMLVideoElement.idl:
48162         * html/ImageData.idl:
48163         * html/MediaController.idl:
48164         * html/MediaError.idl:
48165         * html/MediaKeyError.idl:
48166         * html/MediaKeyEvent.idl:
48167         * html/MicroDataItemValue.idl:
48168         * html/RadioNodeList.idl:
48169         * html/TimeRanges.idl:
48170         * html/ValidityState.idl:
48171         * html/VoidCallback.idl:
48172         * html/canvas/ArrayBuffer.idl:
48173         * html/canvas/ArrayBufferView.idl:
48174         * html/canvas/CanvasRenderingContext.idl:
48175         * html/canvas/CanvasRenderingContext2D.idl:
48176         * html/canvas/DataView.idl:
48177         * html/canvas/EXTTextureFilterAnisotropic.idl:
48178         * html/canvas/Float32Array.idl:
48179         * html/canvas/Float64Array.idl:
48180         * html/canvas/Int16Array.idl:
48181         * html/canvas/Int32Array.idl:
48182         * html/canvas/Int8Array.idl:
48183         * html/canvas/OESStandardDerivatives.idl:
48184         * html/canvas/OESTextureFloat.idl:
48185         * html/canvas/OESVertexArrayObject.idl:
48186         * html/canvas/Uint16Array.idl:
48187         * html/canvas/Uint32Array.idl:
48188         * html/canvas/Uint8Array.idl:
48189         * html/canvas/Uint8ClampedArray.idl:
48190         * html/canvas/WebGLActiveInfo.idl:
48191         * html/canvas/WebGLBuffer.idl:
48192         * html/canvas/WebGLCompressedTextureS3TC.idl:
48193         * html/canvas/WebGLContextAttributes.idl:
48194         * html/canvas/WebGLContextEvent.idl:
48195         * html/canvas/WebGLDebugRendererInfo.idl:
48196         * html/canvas/WebGLDebugShaders.idl:
48197         * html/canvas/WebGLDepthTexture.idl:
48198         * html/canvas/WebGLFramebuffer.idl:
48199         * html/canvas/WebGLLoseContext.idl:
48200         * html/canvas/WebGLProgram.idl:
48201         * html/canvas/WebGLRenderbuffer.idl:
48202         * html/canvas/WebGLRenderingContext.idl:
48203         * html/canvas/WebGLShader.idl:
48204         * html/canvas/WebGLShaderPrecisionFormat.idl:
48205         * html/canvas/WebGLTexture.idl:
48206         * html/canvas/WebGLUniformLocation.idl:
48207         * html/canvas/WebGLVertexArrayObjectOES.idl:
48208         * html/shadow/HTMLContentElement.idl:
48209         * html/shadow/HTMLShadowElement.idl:
48210         * html/track/TextTrack.idl:
48211         * html/track/TextTrackCue.idl:
48212         * html/track/TextTrackCueList.idl:
48213         * html/track/TextTrackList.idl:
48214         * html/track/TrackEvent.idl:
48215         * inspector/InjectedScriptHost.idl:
48216         * inspector/InspectorFrontendHost.idl:
48217         * inspector/JavaScriptCallFrame.idl:
48218         * inspector/ScriptProfile.idl:
48219         * inspector/ScriptProfileNode.idl:
48220         * loader/appcache/DOMApplicationCache.idl:
48221         * page/AbstractView.idl:
48222         * page/BarInfo.idl:
48223         * page/Console.idl:
48224         * page/Coordinates.idl:
48225         * page/Crypto.idl:
48226         * page/DOMSecurityPolicy.idl:
48227         * page/DOMSelection.idl:
48228         * page/DOMWindow.idl:
48229         * page/DOMWindowPagePopup.idl:
48230         * page/EventSource.idl:
48231         * page/History.idl:
48232         * page/Location.idl:
48233         * page/MemoryInfo.idl:
48234         * page/Navigator.idl:
48235         * page/PagePopupController.idl:
48236         * page/Performance.idl:
48237         * page/PerformanceEntry.idl:
48238         * page/PerformanceEntryList.idl:
48239         * page/PerformanceNavigation.idl:
48240         * page/PerformanceResourceTiming.idl:
48241         * page/PerformanceTiming.idl:
48242         * page/Screen.idl:
48243         * page/SpeechInputEvent.idl:
48244         * page/SpeechInputResult.idl:
48245         * page/SpeechInputResultList.idl:
48246         * page/WebKitAnimation.idl:
48247         * page/WebKitAnimationList.idl:
48248         * page/WebKitPoint.idl:
48249         * page/WorkerNavigator.idl:
48250         * plugins/DOMMimeType.idl:
48251         * plugins/DOMMimeTypeArray.idl:
48252         * plugins/DOMPlugin.idl:
48253         * plugins/DOMPluginArray.idl:
48254         * storage/Storage.idl:
48255         * storage/StorageEvent.idl:
48256         * svg/ElementTimeControl.idl:
48257         * svg/SVGAElement.idl:
48258         * svg/SVGAltGlyphDefElement.idl:
48259         * svg/SVGAltGlyphElement.idl:
48260         * svg/SVGAltGlyphItemElement.idl:
48261         * svg/SVGAngle.idl:
48262         * svg/SVGAnimateColorElement.idl:
48263         * svg/SVGAnimateElement.idl:
48264         * svg/SVGAnimateMotionElement.idl:
48265         * svg/SVGAnimateTransformElement.idl:
48266         * svg/SVGAnimatedAngle.idl:
48267         * svg/SVGAnimatedBoolean.idl:
48268         * svg/SVGAnimatedEnumeration.idl:
48269         * svg/SVGAnimatedInteger.idl:
48270         * svg/SVGAnimatedLength.idl:
48271         * svg/SVGAnimatedLengthList.idl:
48272         * svg/SVGAnimatedNumber.idl:
48273         * svg/SVGAnimatedNumberList.idl:
48274         * svg/SVGAnimatedPreserveAspectRatio.idl:
48275         * svg/SVGAnimatedRect.idl:
48276         * svg/SVGAnimatedString.idl:
48277         * svg/SVGAnimatedTransformList.idl:
48278         * svg/SVGAnimationElement.idl:
48279         * svg/SVGCircleElement.idl:
48280         * svg/SVGClipPathElement.idl:
48281         * svg/SVGColor.idl:
48282         * svg/SVGComponentTransferFunctionElement.idl:
48283         * svg/SVGCursorElement.idl:
48284         * svg/SVGDefsElement.idl:
48285         * svg/SVGDescElement.idl:
48286         * svg/SVGDocument.idl:
48287         * svg/SVGElement.idl:
48288         * svg/SVGElementInstance.idl:
48289         * svg/SVGElementInstanceList.idl:
48290         * svg/SVGEllipseElement.idl:
48291         * svg/SVGException.idl:
48292         * svg/SVGExternalResourcesRequired.idl:
48293         * svg/SVGFEBlendElement.idl:
48294         * svg/SVGFEColorMatrixElement.idl:
48295         * svg/SVGFEComponentTransferElement.idl:
48296         * svg/SVGFECompositeElement.idl:
48297         * svg/SVGFEConvolveMatrixElement.idl:
48298         * svg/SVGFEDiffuseLightingElement.idl:
48299         * svg/SVGFEDisplacementMapElement.idl:
48300         * svg/SVGFEDistantLightElement.idl:
48301         * svg/SVGFEDropShadowElement.idl:
48302         * svg/SVGFEFloodElement.idl:
48303         * svg/SVGFEFuncAElement.idl:
48304         * svg/SVGFEFuncBElement.idl:
48305         * svg/SVGFEFuncGElement.idl:
48306         * svg/SVGFEFuncRElement.idl:
48307         * svg/SVGFEGaussianBlurElement.idl:
48308         * svg/SVGFEImageElement.idl:
48309         * svg/SVGFEMergeElement.idl:
48310         * svg/SVGFEMergeNodeElement.idl:
48311         * svg/SVGFEMorphologyElement.idl:
48312         * svg/SVGFEOffsetElement.idl:
48313         * svg/SVGFEPointLightElement.idl:
48314         * svg/SVGFESpecularLightingElement.idl:
48315         * svg/SVGFESpotLightElement.idl:
48316         * svg/SVGFETileElement.idl:
48317         * svg/SVGFETurbulenceElement.idl:
48318         * svg/SVGFilterElement.idl:
48319         * svg/SVGFilterPrimitiveStandardAttributes.idl:
48320         * svg/SVGFitToViewBox.idl:
48321         * svg/SVGFontElement.idl:
48322         * svg/SVGFontFaceElement.idl:
48323         * svg/SVGFontFaceFormatElement.idl:
48324         * svg/SVGFontFaceNameElement.idl:
48325         * svg/SVGFontFaceSrcElement.idl:
48326         * svg/SVGFontFaceUriElement.idl:
48327         * svg/SVGForeignObjectElement.idl:
48328         * svg/SVGGElement.idl:
48329         * svg/SVGGlyphElement.idl:
48330         * svg/SVGGlyphRefElement.idl:
48331         * svg/SVGGradientElement.idl:
48332         * svg/SVGHKernElement.idl:
48333         * svg/SVGImageElement.idl:
48334         * svg/SVGLangSpace.idl:
48335         * svg/SVGLength.idl:
48336         * svg/SVGLengthList.idl:
48337         * svg/SVGLineElement.idl:
48338         * svg/SVGLinearGradientElement.idl:
48339         * svg/SVGLocatable.idl:
48340         * svg/SVGMPathElement.idl:
48341         * svg/SVGMarkerElement.idl:
48342         * svg/SVGMaskElement.idl:
48343         * svg/SVGMatrix.idl:
48344         * svg/SVGMetadataElement.idl:
48345         * svg/SVGMissingGlyphElement.idl:
48346         * svg/SVGNumber.idl:
48347         * svg/SVGNumberList.idl:
48348         * svg/SVGPaint.idl:
48349         * svg/SVGPathElement.idl:
48350         * svg/SVGPathSeg.idl:
48351         * svg/SVGPathSegArcAbs.idl:
48352         * svg/SVGPathSegArcRel.idl:
48353         * svg/SVGPathSegClosePath.idl:
48354         * svg/SVGPathSegCurvetoCubicAbs.idl:
48355         * svg/SVGPathSegCurvetoCubicRel.idl:
48356         * svg/SVGPathSegCurvetoCubicSmoothAbs.idl:
48357         * svg/SVGPathSegCurvetoCubicSmoothRel.idl:
48358         * svg/SVGPathSegCurvetoQuadraticAbs.idl:
48359         * svg/SVGPathSegCurvetoQuadraticRel.idl:
48360         * svg/SVGPathSegCurvetoQuadraticSmoothAbs.idl:
48361         * svg/SVGPathSegCurvetoQuadraticSmoothRel.idl:
48362         * svg/SVGPathSegLinetoAbs.idl:
48363         * svg/SVGPathSegLinetoHorizontalAbs.idl:
48364         * svg/SVGPathSegLinetoHorizontalRel.idl:
48365         * svg/SVGPathSegLinetoRel.idl:
48366         * svg/SVGPathSegLinetoVerticalAbs.idl:
48367         * svg/SVGPathSegLinetoVerticalRel.idl:
48368         * svg/SVGPathSegList.idl:
48369         * svg/SVGPathSegMovetoAbs.idl:
48370         * svg/SVGPathSegMovetoRel.idl:
48371         * svg/SVGPatternElement.idl:
48372         * svg/SVGPoint.idl:
48373         * svg/SVGPointList.idl:
48374         * svg/SVGPolygonElement.idl:
48375         * svg/SVGPolylineElement.idl:
48376         * svg/SVGPreserveAspectRatio.idl:
48377         * svg/SVGRadialGradientElement.idl:
48378         * svg/SVGRect.idl:
48379         * svg/SVGRectElement.idl:
48380         * svg/SVGRenderingIntent.idl:
48381         * svg/SVGSVGElement.idl:
48382         * svg/SVGScriptElement.idl:
48383         * svg/SVGSetElement.idl:
48384         * svg/SVGStopElement.idl:
48385         * svg/SVGStringList.idl:
48386         * svg/SVGStylable.idl:
48387         * svg/SVGStyleElement.idl:
48388         * svg/SVGSwitchElement.idl:
48389         * svg/SVGSymbolElement.idl:
48390         * svg/SVGTRefElement.idl:
48391         * svg/SVGTSpanElement.idl:
48392         * svg/SVGTests.idl:
48393         * svg/SVGTextContentElement.idl:
48394         * svg/SVGTextElement.idl:
48395         * svg/SVGTextPathElement.idl:
48396         * svg/SVGTextPositioningElement.idl:
48397         * svg/SVGTitleElement.idl:
48398         * svg/SVGTransform.idl:
48399         * svg/SVGTransformList.idl:
48400         * svg/SVGTransformable.idl:
48401         * svg/SVGURIReference.idl:
48402         * svg/SVGUnitTypes.idl:
48403         * svg/SVGUseElement.idl:
48404         * svg/SVGVKernElement.idl:
48405         * svg/SVGViewElement.idl:
48406         * svg/SVGViewSpec.idl:
48407         * svg/SVGZoomAndPan.idl:
48408         * svg/SVGZoomEvent.idl:
48409         * testing/InternalSettings.idl:
48410         * testing/Internals.idl:
48411         * testing/MallocStatistics.idl:
48412         * workers/AbstractWorker.idl:
48413         * workers/DedicatedWorkerContext.idl:
48414         * workers/SharedWorker.idl:
48415         * workers/SharedWorkerContext.idl:
48416         * workers/Worker.idl:
48417         * workers/WorkerContext.idl:
48418         * workers/WorkerLocation.idl:
48419         * xml/DOMParser.idl:
48420         * xml/XMLHttpRequest.idl:
48421         * xml/XMLHttpRequestException.idl:
48422         * xml/XMLHttpRequestProgressEvent.idl:
48423         * xml/XMLHttpRequestUpload.idl:
48424         * xml/XMLSerializer.idl:
48425         * xml/XPathEvaluator.idl:
48426         * xml/XPathException.idl:
48427         * xml/XPathNSResolver.idl:
48428         * xml/XPathResult.idl:
48429         * xml/XSLTProcessor.idl:
48430         Moved extended attributes.
48431
48432 2012-10-12  Pavel Feldman  <pfeldman@chromium.org>
48433
48434         Web Inspector: never expand global scope automatically
48435         https://bugs.webkit.org/show_bug.cgi?id=99159
48436
48437         Reviewed by Vsevolod Vlasov.
48438
48439         Otherwise, stepping is slow.
48440
48441         * inspector/front-end/ScopeChainSidebarPane.js:
48442         (WebInspector.ScopeChainSidebarPane.prototype.update):
48443
48444 2012-10-10  Vsevolod Vlasov  <vsevik@chromium.org>
48445
48446         Web Inspector: Refactor UISourceCode, make it possible to distinguish working copy changes/commits from formatting.
48447         https://bugs.webkit.org/show_bug.cgi?id=98911
48448
48449         Reviewed by Pavel Feldman.
48450
48451         ContentChanged was dispatched both when working copy was committed and UISourceCode was formatted before.
48452         WorkingCopyChanged event was dispatched when working copy was set.
48453         Now there are three explicit events: WorkingCopyChanged, WorkingCopyCommitted, FormattedChanged.
48454         No events are dispatched now during revisions restoring.
48455         Reverting to revisions is now implemented based on the working copy editing.
48456
48457         * inspector/front-end/JavaScriptSourceFrame.js:
48458         (WebInspector.JavaScriptSourceFrame):
48459         (WebInspector.JavaScriptSourceFrame.prototype._onFormattedChanged):
48460         (WebInspector.JavaScriptSourceFrame.prototype._onWorkingCopyChanged):
48461         (WebInspector.JavaScriptSourceFrame.prototype._onWorkingCopyCommitted):
48462         (WebInspector.JavaScriptSourceFrame.prototype._innerSetContent):
48463         (WebInspector.JavaScriptSourceFrame.prototype.onTextChanged):
48464         * inspector/front-end/NavigatorView.js:
48465         (WebInspector.NavigatorView.prototype._uiSourceCodeWorkingCopyCommitted):
48466         (WebInspector.NavigatorView.prototype._uiSourceCodeFormattedChanged):
48467         (WebInspector.NavigatorView.prototype._addUISourceCodeListeners):
48468         (WebInspector.NavigatorView.prototype._removeUISourceCodeListeners):
48469         * inspector/front-end/TabbedEditorContainer.js:
48470         (WebInspector.TabbedEditorContainer.prototype._addUISourceCodeListeners):
48471         (WebInspector.TabbedEditorContainer.prototype._removeUISourceCodeListeners):
48472         (WebInspector.TabbedEditorContainer.prototype._uiSourceCodeWorkingCopyCommitted):
48473         (WebInspector.TabbedEditorContainer.prototype._uiSourceCodeFormattedChanged):
48474         * inspector/front-end/UISourceCode.js:
48475         (WebInspector.UISourceCode):
48476         (WebInspector.UISourceCode.prototype._commitContent):
48477         (WebInspector.UISourceCode.prototype.addRevision):
48478         (WebInspector.UISourceCode.prototype._restoreRevisionHistory):
48479         (WebInspector.UISourceCode.prototype.revertToOriginal):
48480         (WebInspector.UISourceCode.prototype.revertAndClearHistory):
48481         (WebInspector.UISourceCode.prototype.setWorkingCopy):
48482         (WebInspector.UISourceCode.prototype.commitWorkingCopy):
48483         (WebInspector.UISourceCode.prototype.setFormatted.didGetContent.formattedChanged):
48484         (WebInspector.UISourceCode.prototype.setFormatted.didGetContent):
48485         (WebInspector.UISourceCode.prototype.setFormatted):
48486         (WebInspector.Revision.prototype.revertToThis):
48487         * inspector/front-end/UISourceCodeFrame.js:
48488         (WebInspector.UISourceCodeFrame):
48489         (WebInspector.UISourceCodeFrame.prototype.onTextChanged):
48490         (WebInspector.UISourceCodeFrame.prototype._onFormattedChanged):
48491         (WebInspector.UISourceCodeFrame.prototype._onWorkingCopyChanged):
48492         (WebInspector.UISourceCodeFrame.prototype._onWorkingCopyCommitted):
48493         (WebInspector.UISourceCodeFrame.prototype._innerSetContent):
48494
48495 2012-10-12  Balazs Kelemen  <kbalazs@webkit.org>
48496
48497         [WK2] Serialization of Resource[Request,Response,Error] should be shared across ports
48498         https://bugs.webkit.org/show_bug.cgi?id=90142
48499
48500         Reviewed by Simon Hausmann.
48501
48502         Added a setter for the certificate of ResourceError.
48503
48504         No change in behavior so no new tests.
48505
48506         * platform/network/cf/ResourceError.h:
48507         (ResourceError):
48508         * platform/network/cf/ResourceErrorCF.cpp:
48509         (WebCore):
48510         (WebCore::ResourceError::setCertificate):
48511
48512 2012-10-12  MORITA Hajime  <morrita@google.com>
48513
48514         [V8] PerContextEnabled methods should be installed when the constructor is created
48515         https://bugs.webkit.org/show_bug.cgi?id=99129
48516
48517         Reviewed by Kentaro Hara.
48518
48519         Before this change, generated installPerContextProperties() method
48520         injected both per-context attributes and functions, and functions
48521         were injected into the prototye object.  This means that the
48522         functions are injected into the prototype repeatedly for each
48523         intance creation.  This injection can be happened only once per
48524         prototype object, which is clearer and is faster.
48525
48526         This change introduces installPerContextPrototypeProperties()
48527         generated method, which is designed to be called for each time when the prototype
48528         object is created.
48529
48530         To do that, WrapperTypeInfo is extended to hold an additional
48531         function pointer to an installPerContextPrototypeProperties()
48532         implementation so that we call it from V8PerContextData::constructorForTypeSlowCase(),
48533         where the prototype instance is created.
48534
48535         Other changes:
48536         - Added some modification to pass around the parameter to constructorForTypeSlowCase().
48537         - installPerContextProperties() are now always generated for simplicity. Empty implementations are inlined thus
48538           no speed penalty.
48539
48540         No new tests. Covered by existing tests.
48541
48542         * Modules/notifications/NotificationCenter.cpp:
48543         (WebCore::NotificationCenter::document):
48544         * Modules/notifications/NotificationCenter.h:
48545         (NotificationCenter):
48546         * bindings/scripts/CodeGeneratorV8.pm:
48547         (GenerateHeader):
48548         (GenerateConstructorGetter):
48549         (GenerateNamedConstructorCallback):
48550         (GenerateImplementation): Extracted per-context function additions to new installPerContextPrototypeProperties() function.
48551         (GenerateToV8Converters):
48552         * bindings/scripts/test/V8/V8Float64Array.cpp:
48553         (WebCore):
48554         (WebCore::V8Float64Array::wrapSlow):
48555         * bindings/scripts/test/V8/V8Float64Array.h:
48556         (WebCore::V8Float64Array::installPerContextProperties):
48557         (WebCore::V8Float64Array::installPerContextPrototypeProperties):
48558         * bindings/scripts/test/V8/V8TestActiveDOMObject.cpp:
48559         (WebCore):
48560         (WebCore::V8TestActiveDOMObject::wrapSlow):
48561         * bindings/scripts/test/V8/V8TestActiveDOMObject.h:
48562         (WebCore::V8TestActiveDOMObject::installPerContextProperties):
48563         (WebCore::V8TestActiveDOMObject::installPerContextPrototypeProperties):
48564         * bindings/scripts/test/V8/V8TestCustomNamedGetter.cpp:
48565         (WebCore):
48566         (WebCore::V8TestCustomNamedGetter::wrapSlow):
48567         * bindings/scripts/test/V8/V8TestCustomNamedGetter.h:
48568         (WebCore::V8TestCustomNamedGetter::installPerContextProperties):
48569         (WebCore::V8TestCustomNamedGetter::installPerContextPrototypeProperties):
48570         * bindings/scripts/test/V8/V8TestEventConstructor.cpp:
48571         (WebCore):
48572         (WebCore::V8TestEventConstructor::wrapSlow):
48573         * bindings/scripts/test/V8/V8TestEventConstructor.h:
48574         (WebCore::V8TestEventConstructor::installPerContextProperties):
48575         (WebCore::V8TestEventConstructor::installPerContextPrototypeProperties):
48576         * bindings/scripts/test/V8/V8TestEventTarget.cpp:
48577         (WebCore):
48578         (WebCore::V8TestEventTarget::wrapSlow):
48579         * bindings/scripts/test/V8/V8TestEventTarget.h:
48580         (WebCore::V8TestEventTarget::installPerContextProperties):
48581         (WebCore::V8TestEventTarget::installPerContextPrototypeProperties):
48582         * bindings/scripts/test/V8/V8TestException.cpp:
48583         (WebCore):
48584         (WebCore::V8TestException::wrapSlow):
48585         * bindings/scripts/test/V8/V8TestException.h:
48586         (WebCore::V8TestException::installPerContextProperties):
48587         (WebCore::V8TestException::installPerContextPrototypeProperties):
48588         * bindings/scripts/test/V8/V8TestInterface.cpp:
48589         (WebCore):
48590         (WebCore::V8TestInterface::wrapSlow):
48591         * bindings/scripts/test/V8/V8TestInterface.h:
48592         (WebCore::V8TestInterface::installPerContextProperties):
48593         (WebCore::V8TestInterface::installPerContextPrototypeProperties):
48594         * bindings/scripts/test/V8/V8TestMediaQueryListListener.cpp:
48595         (WebCore):
48596         (WebCore::V8TestMediaQueryListListener::wrapSlow):
48597         * bindings/scripts/test/V8/V8TestMediaQueryListListener.h:
48598         (WebCore::V8TestMediaQueryListListener::installPerContextProperties):
48599         (WebCore::V8TestMediaQueryListListener::installPerContextPrototypeProperties):
48600         * bindings/scripts/test/V8/V8TestNamedConstructor.cpp:
48601         (WebCore):
48602         (WebCore::V8TestNamedConstructor::wrapSlow):
48603         * bindings/scripts/test/V8/V8TestNamedConstructor.h:
48604         (WebCore::V8TestNamedConstructor::installPerContextProperties):
48605         (WebCore::V8TestNamedConstructor::installPerContextPrototypeProperties):
48606         * bindings/scripts/test/V8/V8TestNode.cpp:
48607         (WebCore):
48608         (WebCore::V8TestNode::wrapSlow):
48609         * bindings/scripts/test/V8/V8TestNode.h:
48610         (WebCore::V8TestNode::installPerContextProperties):
48611         (WebCore::V8TestNode::installPerContextPrototypeProperties):
48612         * bindings/scripts/test/V8/V8TestSerializedScriptValueInterface.cpp:
48613         (WebCore):
48614         (WebCore::V8TestSerializedScriptValueInterface::wrapSlow):
48615         * bindings/scripts/test/V8/V8TestSerializedScriptValueInterface.h:
48616         (WebCore::V8TestSerializedScriptValueInterface::installPerContextProperties):
48617         (WebCore::V8TestSerializedScriptValueInterface::installPerContextPrototypeProperties):
48618         * bindings/v8/NPV8Object.cpp:
48619         (WebCore::npObjectTypeInfo):
48620         * bindings/v8/V8DOMWindowShell.cpp:
48621         (WebCore::V8DOMWindowShell::installDOMWindow):
48622         * bindings/v8/V8DOMWrapper.cpp:
48623         (WebCore::V8DOMWrapper::instantiateV8Object):
48624         * bindings/v8/V8PerContextData.cpp:
48625         (WebCore::V8PerContextData::createWrapperFromCacheSlowCase):
48626         (WebCore::V8PerContextData::constructorForTypeSlowCase): Now invokes installPerContextPrototypeProperties()
48627         * bindings/v8/V8PerContextData.h:
48628         (WebCore::V8PerContextData::createWrapperFromCache):
48629         (WebCore::V8PerContextData::constructorForType):
48630         (V8PerContextData):
48631         * bindings/v8/WorkerContextExecutionProxy.cpp:
48632         (WebCore::WorkerContextExecutionProxy::initializeIfNeeded):
48633         * bindings/v8/WrapperTypeInfo.h:
48634         (WebCore):
48635         (WebCore::WrapperTypeInfo::installPerContextPrototypeProperties): Added.
48636         (WrapperTypeInfo):
48637         * bindings/v8/custom/V8HTMLImageElementConstructor.cpp:
48638         (WebCore):
48639
48640 2012-10-12  Pavel Feldman  <pfeldman@chromium.org>
48641
48642         Web Inspector: Add "goto tab 1,2,3" hotkeys
48643         https://bugs.webkit.org/show_bug.cgi?id=99157
48644
48645         Reviewed by Alexander Pavlov.
48646
48647         Ctrl/Cmd + digit shortcuts should select corresponding tabs
48648
48649         * inspector/front-end/InspectorView.js:
48650         (WebInspector.InspectorView.prototype._keyDown):
48651         (WebInspector.InspectorView.prototype._keyDownInternal):
48652
48653 2012-10-12  Vsevolod Vlasov  <vsevik@chromium.org>
48654
48655         Web Inspector: Extract domain specific editing handling logic from UISourceCode descendants (step 1).
48656         https://bugs.webkit.org/show_bug.cgi?id=98912
48657
48658         Reviewed by Pavel Feldman.
48659
48660         This is the first step that introduces StyleFile and ScriptFile and extracts domain specific editing handling logic.
48661         StyleFile and ScriptFile should listen for the UISourceCode events and process them, this will be done in the next patch.
48662
48663         * inspector/front-end/BreakpointManager.js:
48664         (WebInspector.BreakpointManager.Breakpoint.prototype._updateBreakpoint):
48665         * inspector/front-end/JavaScriptSource.js:
48666         * inspector/front-end/JavaScriptSourceFrame.js:
48667         (WebInspector.JavaScriptSourceFrame):
48668         (WebInspector.JavaScriptSourceFrame.prototype.onTextChanged):
48669         * inspector/front-end/ResourceScriptMapping.js:
48670         (WebInspector.ResourceScriptMapping.prototype.rawLocationToUILocation):
48671         (WebInspector.ResourceScriptMapping.prototype._hasDivergedFromVMChanged):
48672         (WebInspector.ResourceScriptMapping.prototype._bindUISourceCodeToScripts):
48673         (WebInspector.ScriptFile):
48674         (WebInspector.ScriptFile.prototype.hasDivergedFromVM):
48675         (WebInspector.ScriptFile.prototype.isDivergingFromVM):
48676         (WebInspector.ScriptFile.prototype.addEventListener):
48677         (WebInspector.ScriptFile.prototype.removeEventListener):
48678         (WebInspector.ResourceScriptFile):
48679         (WebInspector.ResourceScriptFile.prototype.workingCopyCommitted):
48680         (WebInspector.ResourceScriptFile.prototype.workingCopyChanged):
48681         (WebInspector.ResourceScriptFile.prototype.fireHasDivergedFromVMChanged):
48682         (WebInspector.ResourceScriptFile.prototype.hasDivergedFromVM):
48683         (WebInspector.ResourceScriptFile.prototype.isDivergingFromVM):
48684         * inspector/front-end/ScriptSnippetModel.js:
48685         (WebInspector.ScriptSnippetModel.prototype._addScriptSnippet):
48686         (WebInspector.SnippetScriptFile):
48687         (WebInspector.SnippetScriptFile.prototype.hasDivergedFromVM):
48688         (WebInspector.SnippetScriptFile.prototype.setHasDivergedFromVM):
48689         (WebInspector.SnippetScriptFile.prototype.isDivergingFromVM):
48690         (WebInspector.SnippetScriptFile.prototype.setIsDivergingFromVM):
48691         (WebInspector.SnippetScriptFile.prototype.workingCopyCommitted):
48692         (WebInspector.SnippetScriptFile.prototype.workingCopyChanged):
48693         * inspector/front-end/ScriptsPanel.js:
48694         (WebInspector.ScriptsPanel.prototype._revealExecutionLine):
48695         * inspector/front-end/StyleSource.js:
48696         * inspector/front-end/StylesSourceMapping.js:
48697         (WebInspector.StylesSourceMapping.prototype._uiSourceCodeAddedToWorkspace):
48698         (WebInspector.StylesSourceMapping.prototype._addUISourceCode):
48699         (WebInspector.StyleFile):
48700         (WebInspector.StyleFile.prototype.workingCopyCommitted):
48701         (WebInspector.StyleFile.prototype.workingCopyChanged):
48702         (WebInspector.StyleFile.prototype._callOrSetTimeout):
48703         (WebInspector.StyleFile.prototype._commitIncrementalEdit):
48704         (WebInspector.StyleFile.prototype._clearIncrementalUpdateTimer):
48705         * inspector/front-end/UISourceCode.js:
48706         (WebInspector.UISourceCode.prototype.scriptFile):
48707         (WebInspector.UISourceCode.prototype.setScriptFile):
48708         (WebInspector.UISourceCode.prototype.styleFile):
48709         (WebInspector.UISourceCode.prototype.setStyleFile):
48710         (WebInspector.UISourceCode.prototype.setWorkingCopy):
48711         (WebInspector.UISourceCode.prototype.commitWorkingCopy):
48712
48713 2012-10-12  Zeno Albisser  <zeno@webkit.org>
48714
48715         [Qt][WK2] GraphicsSurfaceGLX should keep track of previous GL context.
48716         https://bugs.webkit.org/show_bug.cgi?id=99076
48717
48718         In GraphicsSurfaceGLX/GraphicsSurfacePrivate we create a new
48719         QOpenGLContext for resolving GL methods.
48720         This context is implicitly made current on creation.
48721         Therefore we need to keep track of the previously bound context
48722         and make that one current again after calling create.
48723
48724         Reviewed by Kenneth Rohde Christiansen.
48725
48726         * platform/graphics/surfaces/qt/GraphicsSurfaceGLX.cpp:
48727         (WebCore::GraphicsSurfacePrivate::GraphicsSurfacePrivate):
48728
48729 2012-10-12  Balazs Kelemen  <kbalazs@webkit.org>
48730
48731         Unreviewed, rolling out r130389.
48732         http://trac.webkit.org/changeset/130389
48733         https://bugs.webkit.org/show_bug.cgi?id=98048
48734
48735         It broke chromium
48736
48737         * WebCore.exp.in:
48738         * page/Settings.cpp:
48739         (WebCore::Settings::setAcceleratedCompositingEnabled):
48740         * page/Settings.h:
48741         (WebCore::Settings::setForceCompositingMode):
48742         (WebCore::Settings::forceCompositingMode):
48743
48744 2012-10-12  Vsevolod Vlasov  <vsevik@chromium.org>
48745
48746         Web Inspector: Show request body source in request headers view.
48747         https://bugs.webkit.org/show_bug.cgi?id=99145
48748
48749         Reviewed by Pavel Feldman.
48750
48751         Added view source toggle to query parameters and form data elements.
48752
48753         * inspector/front-end/NetworkPanel.js: fixed queryString getter usage.
48754         (WebInspector.NetworkDataGridNode.prototype._fileName):
48755         (WebInspector.NetworkDataGridNode.NameComparator):
48756         * inspector/front-end/NetworkRequest.js: Extracted queryString getter.
48757         (WebInspector.NetworkRequest.prototype.queryString):
48758         (WebInspector.NetworkRequest.prototype.get queryParameters):
48759         * inspector/front-end/RequestHeadersView.js:
48760         (WebInspector.RequestHeadersView.prototype._refreshQueryString):
48761         (WebInspector.RequestHeadersView.prototype._refreshFormData):
48762         (WebInspector.RequestHeadersView.prototype._populateTreeElementWithSourceText):
48763         extracted common method to populate elememnt with raw source text.
48764         (WebInspector.RequestHeadersView.prototype._refreshParams.toggleViewSource):
48765         (WebInspector.RequestHeadersView.prototype._refreshParams):
48766         (WebInspector.RequestHeadersView.prototype._toggleURLDecoding):
48767         (WebInspector.RequestHeadersView.prototype._refreshHeadersText):
48768         * inspector/front-end/networkPanel.css:A removed redundant raw-form-data style rule.
48769
48770 2012-10-12  Shinya Kawanaka  <shinyak@chromium.org>
48771
48772         Optimzie SelectorCheckingContext memory layout
48773         https://bugs.webkit.org/show_bug.cgi?id=99139
48774
48775         Reviewed by Hajime Morita.
48776
48777         Since VisitedMatchType and PseudoId are both enum, we can make SelectorChecker more compact
48778         if these two fields are continuously placed.
48779
48780         No new tests, no change in behavior.
48781
48782         * css/SelectorChecker.h:
48783         (WebCore::SelectorChecker::SelectorCheckingContext::SelectorCheckingContext):
48784         (SelectorCheckingContext):
48785
48786 2012-10-12  Kenichi Ishibashi  <bashi@chromium.org>
48787
48788         [WebSocket] Add "Cache-Control: no-cache" to handshake request
48789         https://bugs.webkit.org/show_bug.cgi?id=98000
48790
48791         Reviewed by Yuta Kitamura.
48792
48793         Add no-cache headers to opening handshake.
48794         This is for compatibility improvement.
48795         Some proxies rewrite "Connection: upgrade" to "Connection: close"
48796         when a request doesn't contain no-cache headers.
48797
48798         Test: http/tests/websocket/tests/hybi/nocache.html
48799
48800         * Modules/websockets/WebSocketHandshake.cpp:
48801         (WebCore::WebSocketHandshake::clientHandshakeMessage):
48802         (WebCore::WebSocketHandshake::clientHandshakeRequest):
48803
48804 2012-10-11  Andy Estes  <aestes@apple.com>
48805
48806         Add some basic methods and properties to the injected bundle Objective-C DOM API
48807         https://bugs.webkit.org/show_bug.cgi?id=99137
48808
48809         Reviewed by Sam Weinig.
48810
48811         Export needed symbols.
48812
48813         * WebCore.exp.in:
48814
48815 2012-10-11  Rik Cabanier  <cabanier@adobe.com>
48816
48817         Bad copy constructor in StyleRareNonInheritedData
48818         https://bugs.webkit.org/show_bug.cgi?id=98950
48819
48820         Reviewed by Eric Seidel.
48821
48822         Typo in copy constructor caused blendmode to always be the default.
48823
48824         * rendering/style/StyleRareNonInheritedData.cpp:
48825         (WebCore::StyleRareNonInheritedData::StyleRareNonInheritedData):
48826
48827 2012-10-11  Takashi Sakamoto  <tasak@google.com>
48828
48829         [WebKit IDL] remove all module from idl files.
48830         https://bugs.webkit.org/show_bug.cgi?id=99007
48831
48832         Reviewed by Kentaro Hara.
48833
48834         Since current WebIDL spec doesn't support "module", remove
48835         module from all idl files.
48836
48837         No new tests. I ran run-bindings-tests and no error was reported.
48838
48839         * Modules/battery/BatteryManager.idl:
48840         * Modules/battery/NavigatorBattery.idl:
48841         * Modules/filesystem/DOMFileSystem.idl:
48842         * Modules/filesystem/DOMFileSystemSync.idl:
48843         * Modules/filesystem/DOMWindowFileSystem.idl:
48844         * Modules/filesystem/DataTransferItemFileSystem.idl:
48845         * Modules/filesystem/DirectoryEntry.idl:
48846         * Modules/filesystem/DirectoryEntrySync.idl:
48847         * Modules/filesystem/DirectoryReader.idl:
48848         * Modules/filesystem/DirectoryReaderSync.idl:
48849         * Modules/filesystem/EntriesCallback.idl:
48850         * Modules/filesystem/Entry.idl:
48851         * Modules/filesystem/EntryArray.idl:
48852         * Modules/filesystem/EntryArraySync.idl:
48853         * Modules/filesystem/EntryCallback.idl:
48854         * Modules/filesystem/EntrySync.idl:
48855         * Modules/filesystem/ErrorCallback.idl:
48856         * Modules/filesystem/FileCallback.idl:
48857         * Modules/filesystem/FileEntry.idl:
48858         * Modules/filesystem/FileEntrySync.idl:
48859         * Modules/filesystem/FileSystemCallback.idl:
48860         * Modules/filesystem/FileWriter.idl:
48861         * Modules/filesystem/FileWriterCallback.idl:
48862         * Modules/filesystem/FileWriterSync.idl:
48863         * Modules/filesystem/HTMLInputElementFileSystem.idl:
48864         * Modules/filesystem/Metadata.idl:
48865         * Modules/filesystem/MetadataCallback.idl:
48866         * Modules/filesystem/WorkerContextFileSystem.idl:
48867         * Modules/gamepad/Gamepad.idl:
48868         * Modules/gamepad/GamepadList.idl:
48869         * Modules/gamepad/NavigatorGamepad.idl:
48870         * Modules/geolocation/Geolocation.idl:
48871         * Modules/geolocation/Geoposition.idl:
48872         * Modules/geolocation/NavigatorGeolocation.idl:
48873         * Modules/geolocation/PositionCallback.idl:
48874         * Modules/geolocation/PositionError.idl:
48875         * Modules/geolocation/PositionErrorCallback.idl:
48876         * Modules/indexeddb/DOMWindowIndexedDatabase.idl:
48877         * Modules/indexeddb/IDBAny.idl:
48878         * Modules/indexeddb/IDBCursor.idl:
48879         * Modules/indexeddb/IDBCursorWithValue.idl:
48880         * Modules/indexeddb/IDBDatabase.idl:
48881         * Modules/indexeddb/IDBDatabaseException.idl:
48882         * Modules/indexeddb/IDBFactory.idl:
48883         * Modules/indexeddb/IDBIndex.idl:
48884         * Modules/indexeddb/IDBKey.idl:
48885         * Modules/indexeddb/IDBKeyRange.idl:
48886         * Modules/indexeddb/IDBObjectStore.idl:
48887         * Modules/indexeddb/IDBOpenDBRequest.idl:
48888         * Modules/indexeddb/IDBRequest.idl:
48889         * Modules/indexeddb/IDBTransaction.idl:
48890         * Modules/indexeddb/IDBUpgradeNeededEvent.idl:
48891         * Modules/indexeddb/IDBVersionChangeEvent.idl:
48892         * Modules/indexeddb/IDBVersionChangeRequest.idl:
48893         * Modules/indexeddb/WorkerContextIndexedDatabase.idl:
48894         * Modules/intents/DOMWindowIntents.idl:
48895         * Modules/intents/DeliveredIntent.idl:
48896         * Modules/intents/Intent.idl:
48897         * Modules/intents/IntentResultCallback.idl:
48898         * Modules/intents/NavigatorIntents.idl:
48899         * Modules/mediasource/MediaSource.idl:
48900         * Modules/mediasource/SourceBuffer.idl:
48901         * Modules/mediasource/SourceBufferList.idl:
48902         * Modules/mediastream/DOMWindowMediaStream.idl:
48903         * Modules/mediastream/IceCallback.idl:
48904         * Modules/mediastream/IceCandidate.idl:
48905         * Modules/mediastream/LocalMediaStream.idl:
48906         * Modules/mediastream/MediaStream.idl:
48907         * Modules/mediastream/MediaStreamEvent.idl:
48908         * Modules/mediastream/MediaStreamList.idl:
48909         * Modules/mediastream/MediaStreamTrack.idl:
48910         * Modules/mediastream/MediaStreamTrackEvent.idl:
48911         * Modules/mediastream/MediaStreamTrackList.idl:
48912         * Modules/mediastream/NavigatorMediaStream.idl:
48913         * Modules/mediastream/NavigatorUserMediaError.idl:
48914         * Modules/mediastream/NavigatorUserMediaErrorCallback.idl:
48915         * Modules/mediastream/NavigatorUserMediaSuccessCallback.idl:
48916         * Modules/mediastream/PeerConnection00.idl:
48917         * Modules/mediastream/RTCErrorCallback.idl:
48918         * Modules/mediastream/RTCIceCandidate.idl:
48919         * Modules/mediastream/RTCIceCandidateEvent.idl:
48920         * Modules/mediastream/RTCPeerConnection.idl:
48921         * Modules/mediastream/RTCSessionDescription.idl:
48922         * Modules/mediastream/RTCSessionDescriptionCallback.idl:
48923         * Modules/mediastream/RTCStatsCallback.idl:
48924         * Modules/mediastream/RTCStatsElement.idl:
48925         * Modules/mediastream/RTCStatsReport.idl:
48926         * Modules/mediastream/RTCStatsResponse.idl:
48927         * Modules/mediastream/SessionDescription.idl:
48928         * Modules/navigatorcontentutils/NavigatorContentUtils.idl:
48929         * Modules/networkinfo/NavigatorNetworkInfoConnection.idl:
48930         * Modules/networkinfo/NetworkInfoConnection.idl:
48931         * Modules/notifications/DOMWindowNotifications.idl:
48932         * Modules/notifications/Notification.idl:
48933         * Modules/notifications/NotificationCenter.idl:
48934         * Modules/notifications/NotificationPermissionCallback.idl:
48935         * Modules/notifications/WorkerContextNotifications.idl:
48936         * Modules/proximity/DeviceProximityEvent.idl:
48937         * Modules/quota/DOMWindowQuota.idl:
48938         * Modules/quota/StorageInfo.idl:
48939         * Modules/quota/StorageInfoErrorCallback.idl:
48940         * Modules/quota/StorageInfoQuotaCallback.idl:
48941         * Modules/quota/StorageInfoUsageCallback.idl:
48942         * Modules/speech/DOMWindowSpeech.idl:
48943         * Modules/speech/SpeechGrammar.idl:
48944         * Modules/speech/SpeechGrammarList.idl:
48945         * Modules/speech/SpeechRecognition.idl:
48946         * Modules/speech/SpeechRecognitionAlternative.idl:
48947         * Modules/speech/SpeechRecognitionError.idl:
48948         * Modules/speech/SpeechRecognitionEvent.idl:
48949         * Modules/speech/SpeechRecognitionResult.idl:
48950         * Modules/speech/SpeechRecognitionResultList.idl:
48951         * Modules/vibration/NavigatorVibration.idl:
48952         * Modules/webaudio/AudioBuffer.idl:
48953         * Modules/webaudio/AudioBufferCallback.idl:
48954         * Modules/webaudio/AudioBufferSourceNode.idl:
48955         * Modules/webaudio/AudioChannelMerger.idl:
48956         * Modules/webaudio/AudioChannelSplitter.idl:
48957         * Modules/webaudio/AudioContext.idl:
48958         * Modules/webaudio/AudioDestinationNode.idl:
48959         * Modules/webaudio/AudioGain.idl:
48960         * Modules/webaudio/AudioGainNode.idl:
48961         * Modules/webaudio/AudioListener.idl:
48962         * Modules/webaudio/AudioNode.idl:
48963         * Modules/webaudio/AudioPannerNode.idl:
48964         * Modules/webaudio/AudioParam.idl:
48965         * Modules/webaudio/AudioProcessingEvent.idl:
48966         * Modules/webaudio/AudioSourceNode.idl:
48967         * Modules/webaudio/BiquadFilterNode.idl:
48968         * Modules/webaudio/ConvolverNode.idl:
48969         * Modules/webaudio/DOMWindowWebAudio.idl:
48970         * Modules/webaudio/DelayNode.idl:
48971         * Modules/webaudio/DynamicsCompressorNode.idl:
48972         * Modules/webaudio/JavaScriptAudioNode.idl:
48973         * Modules/webaudio/MediaElementAudioSourceNode.idl:
48974         * Modules/webaudio/MediaStreamAudioSourceNode.idl:
48975         * Modules/webaudio/OfflineAudioCompletionEvent.idl:
48976         * Modules/webaudio/Oscillator.idl:
48977         * Modules/webaudio/RealtimeAnalyserNode.idl:
48978         * Modules/webaudio/WaveShaperNode.idl:
48979         * Modules/webaudio/WaveTable.idl:
48980         * Modules/webdatabase/DOMWindowWebDatabase.idl:
48981         * Modules/webdatabase/Database.idl:
48982         * Modules/webdatabase/DatabaseCallback.idl:
48983         * Modules/webdatabase/DatabaseSync.idl:
48984         * Modules/webdatabase/SQLError.idl:
48985         * Modules/webdatabase/SQLException.idl:
48986         * Modules/webdatabase/SQLResultSet.idl:
48987         * Modules/webdatabase/SQLResultSetRowList.idl:
48988         * Modules/webdatabase/SQLStatementCallback.idl:
48989         * Modules/webdatabase/SQLStatementErrorCallback.idl:
48990         * Modules/webdatabase/SQLTransaction.idl:
48991         * Modules/webdatabase/SQLTransactionCallback.idl:
48992         * Modules/webdatabase/SQLTransactionErrorCallback.idl:
48993         * Modules/webdatabase/SQLTransactionSync.idl:
48994         * Modules/webdatabase/SQLTransactionSyncCallback.idl:
48995         * Modules/webdatabase/WorkerContextWebDatabase.idl:
48996         * Modules/websockets/CloseEvent.idl:
48997         * Modules/websockets/DOMWindowWebSocket.idl:
48998         * Modules/websockets/WebSocket.idl:
48999         * Modules/websockets/WorkerContextWebSocket.idl:
49000         * bindings/scripts/test/TestCallback.idl:
49001         * bindings/scripts/test/TestCustomNamedGetter.idl:
49002         * bindings/scripts/test/TestDomainSecurity.idl:
49003         * bindings/scripts/test/TestEventConstructor.idl:
49004         * bindings/scripts/test/TestEventTarget.idl:
49005         * bindings/scripts/test/TestException.idl:
49006         * bindings/scripts/test/TestInterface.idl:
49007         * bindings/scripts/test/TestMediaQueryListListener.idl:
49008         * bindings/scripts/test/TestNamedConstructor.idl:
49009         * bindings/scripts/test/TestNode.idl:
49010         * bindings/scripts/test/TestObj.idl:
49011         * bindings/scripts/test/TestSerializedScriptValueInterface.idl:
49012         * bindings/scripts/test/TestSupplemental.idl:
49013         * bindings/scripts/test/TestTypedArray.idl:
49014         * css/CSSCharsetRule.idl:
49015         * css/CSSFontFaceRule.idl:
49016         * css/CSSImportRule.idl:
49017         * css/CSSMediaRule.idl:
49018         * css/CSSPageRule.idl:
49019         * css/CSSPrimitiveValue.idl:
49020         * css/CSSRule.idl:
49021         * css/CSSRuleList.idl:
49022         * css/CSSStyleDeclaration.idl:
49023         * css/CSSStyleRule.idl:
49024         * css/CSSStyleSheet.idl:
49025         * css/CSSUnknownRule.idl:
49026         * css/CSSValue.idl:
49027         * css/CSSValueList.idl:
49028         * css/Counter.idl:
49029         * css/MediaList.idl:
49030         * css/MediaQueryList.idl:
49031         * css/MediaQueryListListener.idl:
49032         * css/RGBColor.idl:
49033         * css/Rect.idl:
49034         * css/StyleMedia.idl:
49035         * css/StyleSheet.idl:
49036         * css/StyleSheetList.idl:
49037         * css/WebKitCSSFilterValue.idl:
49038         * css/WebKitCSSKeyframeRule.idl:
49039         * css/WebKitCSSKeyframesRule.idl:
49040         * css/WebKitCSSMatrix.idl:
49041         * css/WebKitCSSRegionRule.idl:
49042         * css/WebKitCSSTransformValue.idl:
49043         * dom/Attr.idl:
49044         * dom/BeforeLoadEvent.idl:
49045         * dom/CDATASection.idl:
49046         * dom/CharacterData.idl:
49047         * dom/ClientRect.idl:
49048         * dom/ClientRectList.idl:
49049         * dom/Clipboard.idl:
49050         * dom/Comment.idl:
49051         * dom/CompositionEvent.idl:
49052         * dom/CustomEvent.idl:
49053         * dom/DOMCoreException.idl:
49054         * dom/DOMError.idl:
49055         * dom/DOMImplementation.idl:
49056         * dom/DOMNamedFlowCollection.idl:
49057         * dom/DOMStringList.idl:
49058         * dom/DOMStringMap.idl:
49059         * dom/DataTransferItem.idl:
49060         * dom/DataTransferItemList.idl:
49061         * dom/DeviceMotionEvent.idl:
49062         * dom/DeviceOrientationEvent.idl:
49063         * dom/Document.idl:
49064         * dom/DocumentFragment.idl:
49065         * dom/DocumentType.idl:
49066         * dom/Element.idl:
49067         * dom/Entity.idl:
49068         * dom/EntityReference.idl:
49069         * dom/ErrorEvent.idl:
49070         * dom/Event.idl:
49071         * dom/EventException.idl:
49072         * dom/EventListener.idl:
49073         * dom/EventTarget.idl:
49074         * dom/HashChangeEvent.idl:
49075         * dom/KeyboardEvent.idl:
49076         * dom/MessageChannel.idl:
49077         * dom/MessageEvent.idl:
49078         * dom/MessagePort.idl:
49079         * dom/MouseEvent.idl:
49080         * dom/MutationCallback.idl:
49081         * dom/MutationEvent.idl:
49082         * dom/MutationObserver.idl:
49083         * dom/MutationRecord.idl:
49084         * dom/NamedNodeMap.idl:
49085         * dom/Node.idl:
49086         * dom/NodeFilter.idl:
49087         * dom/NodeIterator.idl:
49088         * dom/NodeList.idl:
49089         * dom/Notation.idl:
49090         * dom/OverflowEvent.idl:
49091         * dom/PageTransitionEvent.idl:
49092         * dom/PopStateEvent.idl:
49093         * dom/ProcessingInstruction.idl:
49094         * dom/ProgressEvent.idl:
49095         * dom/PropertyNodeList.idl:
49096         * dom/Range.idl:
49097         * dom/RangeException.idl:
49098         * dom/RequestAnimationFrameCallback.idl:
49099         * dom/ShadowRoot.idl:
49100         * dom/StringCallback.idl:
49101         * dom/Text.idl:
49102         * dom/TextEvent.idl:
49103         * dom/Touch.idl:
49104         * dom/TouchEvent.idl:
49105         * dom/TouchList.idl:
49106         * dom/TreeWalker.idl:
49107         * dom/UIEvent.idl:
49108         * dom/WebKitAnimationEvent.idl:
49109         * dom/WebKitNamedFlow.idl:
49110         * dom/WebKitTransitionEvent.idl:
49111         * dom/WheelEvent.idl:
49112         * editing/DOMTransaction.idl:
49113         * editing/UndoManager.idl:
49114         * fileapi/Blob.idl:
49115         * fileapi/File.idl:
49116         * fileapi/FileError.idl:
49117         * fileapi/FileException.idl:
49118         * fileapi/FileList.idl:
49119         * fileapi/FileReader.idl:
49120         * fileapi/FileReaderSync.idl:
49121         * html/DOMFormData.idl:
49122         * html/DOMSettableTokenList.idl:
49123         * html/DOMTokenList.idl:
49124         * html/DOMURL.idl:
49125         * html/HTMLAllCollection.idl:
49126         * html/HTMLAnchorElement.idl:
49127         * html/HTMLAppletElement.idl:
49128         * html/HTMLAreaElement.idl:
49129         * html/HTMLAudioElement.idl:
49130         * html/HTMLBRElement.idl:
49131         * html/HTMLBaseElement.idl:
49132         * html/HTMLBaseFontElement.idl:
49133         * html/HTMLBodyElement.idl:
49134         * html/HTMLButtonElement.idl:
49135         * html/HTMLCanvasElement.idl:
49136         * html/HTMLCollection.idl:
49137         * html/HTMLDListElement.idl:
49138         * html/HTMLDataListElement.idl:
49139         * html/HTMLDetailsElement.idl:
49140         * html/HTMLDialogElement.idl:
49141         * html/HTMLDirectoryElement.idl:
49142         * html/HTMLDivElement.idl:
49143         * html/HTMLDocument.idl:
49144         * html/HTMLElement.idl:
49145         * html/HTMLEmbedElement.idl:
49146         * html/HTMLFieldSetElement.idl:
49147         * html/HTMLFontElement.idl:
49148         * html/HTMLFormElement.idl:
49149         * html/HTMLFrameElement.idl:
49150         * html/HTMLFrameSetElement.idl:
49151         * html/HTMLHRElement.idl:
49152         * html/HTMLHeadElement.idl:
49153         * html/HTMLHeadingElement.idl:
49154         * html/HTMLHtmlElement.idl:
49155         * html/HTMLIFrameElement.idl:
49156         * html/HTMLImageElement.idl:
49157         * html/HTMLInputElement.idl:
49158         * html/HTMLIntentElement.idl:
49159         * html/HTMLKeygenElement.idl:
49160         * html/HTMLLIElement.idl:
49161         * html/HTMLLabelElement.idl:
49162         * html/HTMLLegendElement.idl:
49163         * html/HTMLLinkElement.idl:
49164         * html/HTMLMapElement.idl:
49165         * html/HTMLMarqueeElement.idl:
49166         * html/HTMLMediaElement.idl:
49167         * html/HTMLMenuElement.idl:
49168         * html/HTMLMetaElement.idl:
49169         * html/HTMLMeterElement.idl:
49170         * html/HTMLModElement.idl:
49171         * html/HTMLOListElement.idl:
49172         * html/HTMLObjectElement.idl:
49173         * html/HTMLOptGroupElement.idl:
49174         * html/HTMLOptionElement.idl:
49175         * html/HTMLOptionsCollection.idl:
49176         * html/HTMLOutputElement.idl:
49177         * html/HTMLParagraphElement.idl:
49178         * html/HTMLParamElement.idl:
49179         * html/HTMLPreElement.idl:
49180         * html/HTMLProgressElement.idl:
49181         * html/HTMLPropertiesCollection.idl:
49182         * html/HTMLQuoteElement.idl:
49183         * html/HTMLScriptElement.idl:
49184         * html/HTMLSelectElement.idl:
49185         * html/HTMLSourceElement.idl:
49186         * html/HTMLSpanElement.idl:
49187         * html/HTMLStyleElement.idl:
49188         * html/HTMLTableCaptionElement.idl:
49189         * html/HTMLTableCellElement.idl:
49190         * html/HTMLTableColElement.idl:
49191         * html/HTMLTableElement.idl:
49192         * html/HTMLTableRowElement.idl:
49193         * html/HTMLTableSectionElement.idl:
49194         * html/HTMLTextAreaElement.idl:
49195         * html/HTMLTitleElement.idl:
49196         * html/HTMLTrackElement.idl:
49197         * html/HTMLUListElement.idl:
49198         * html/HTMLUnknownElement.idl:
49199         * html/HTMLVideoElement.idl:
49200         * html/ImageData.idl:
49201         * html/MediaController.idl:
49202         * html/MediaError.idl:
49203         * html/MediaKeyError.idl:
49204         * html/MediaKeyEvent.idl:
49205         * html/MicroDataItemValue.idl:
49206         * html/RadioNodeList.idl:
49207         * html/TextMetrics.idl:
49208         * html/TimeRanges.idl:
49209         * html/ValidityState.idl:
49210         * html/VoidCallback.idl:
49211         * html/canvas/ArrayBuffer.idl:
49212         * html/canvas/ArrayBufferView.idl:
49213         * html/canvas/CanvasGradient.idl:
49214         * html/canvas/CanvasPattern.idl:
49215         * html/canvas/CanvasRenderingContext.idl:
49216         * html/canvas/CanvasRenderingContext2D.idl:
49217         * html/canvas/DataView.idl:
49218         * html/canvas/EXTTextureFilterAnisotropic.idl:
49219         * html/canvas/Float32Array.idl:
49220         * html/canvas/Float64Array.idl:
49221         * html/canvas/Int16Array.idl:
49222         * html/canvas/Int32Array.idl:
49223         * html/canvas/Int8Array.idl:
49224         * html/canvas/OESStandardDerivatives.idl:
49225         * html/canvas/OESTextureFloat.idl:
49226         * html/canvas/OESVertexArrayObject.idl:
49227         * html/canvas/Uint16Array.idl:
49228         * html/canvas/Uint32Array.idl:
49229         * html/canvas/Uint8Array.idl:
49230         * html/canvas/Uint8ClampedArray.idl:
49231         * html/canvas/WebGLActiveInfo.idl:
49232         * html/canvas/WebGLBuffer.idl:
49233         * html/canvas/WebGLCompressedTextureS3TC.idl:
49234         * html/canvas/WebGLContextAttributes.idl:
49235         * html/canvas/WebGLContextEvent.idl:
49236         * html/canvas/WebGLDebugRendererInfo.idl:
49237         * html/canvas/WebGLDebugShaders.idl:
49238         * html/canvas/WebGLDepthTexture.idl:
49239         * html/canvas/WebGLFramebuffer.idl:
49240         * html/canvas/WebGLLoseContext.idl:
49241         * html/canvas/WebGLProgram.idl:
49242         * html/canvas/WebGLRenderbuffer.idl:
49243         * html/canvas/WebGLRenderingContext.idl:
49244         * html/canvas/WebGLShader.idl:
49245         * html/canvas/WebGLShaderPrecisionFormat.idl:
49246         * html/canvas/WebGLTexture.idl:
49247         * html/canvas/WebGLUniformLocation.idl:
49248         * html/canvas/WebGLVertexArrayObjectOES.idl:
49249         * html/shadow/HTMLContentElement.idl:
49250         * html/shadow/HTMLShadowElement.idl:
49251         * html/track/TextTrack.idl:
49252         * html/track/TextTrackCue.idl:
49253         * html/track/TextTrackCueList.idl:
49254         * html/track/TextTrackList.idl:
49255         * html/track/TrackEvent.idl:
49256         * inspector/InjectedScriptHost.idl:
49257         * inspector/InspectorFrontendHost.idl:
49258         * inspector/JavaScriptCallFrame.idl:
49259         * inspector/ScriptProfile.idl:
49260         * inspector/ScriptProfileNode.idl:
49261         * loader/appcache/DOMApplicationCache.idl:
49262         * page/AbstractView.idl:
49263         * page/BarInfo.idl:
49264         * page/Console.idl:
49265         * page/Coordinates.idl:
49266         * page/Crypto.idl:
49267         * page/DOMSecurityPolicy.idl:
49268         * page/DOMSelection.idl:
49269         * page/DOMWindow.idl:
49270         * page/DOMWindowPagePopup.idl:
49271         * page/EventSource.idl:
49272         * page/History.idl:
49273         * page/Location.idl:
49274         * page/MemoryInfo.idl:
49275         * page/Navigator.idl:
49276         * page/PagePopupController.idl:
49277         * page/Performance.idl:
49278         * page/PerformanceEntry.idl:
49279         * page/PerformanceEntryList.idl:
49280         * page/PerformanceNavigation.idl:
49281         * page/PerformanceResourceTiming.idl:
49282         * page/PerformanceTiming.idl:
49283         * page/Screen.idl:
49284         * page/SpeechInputEvent.idl:
49285         * page/SpeechInputResult.idl:
49286         * page/SpeechInputResultList.idl:
49287         * page/WebKitAnimation.idl:
49288         * page/WebKitAnimationList.idl:
49289         * page/WebKitPoint.idl:
49290         * page/WorkerNavigator.idl:
49291         * plugins/DOMMimeType.idl:
49292         * plugins/DOMMimeTypeArray.idl:
49293         * plugins/DOMPlugin.idl:
49294         * plugins/DOMPluginArray.idl:
49295         * storage/Storage.idl:
49296         * storage/StorageEvent.idl:
49297         * svg/ElementTimeControl.idl:
49298         * svg/SVGAElement.idl:
49299         * svg/SVGAltGlyphDefElement.idl:
49300         * svg/SVGAltGlyphElement.idl:
49301         * svg/SVGAltGlyphItemElement.idl:
49302         * svg/SVGAngle.idl:
49303         * svg/SVGAnimateColorElement.idl:
49304         * svg/SVGAnimateElement.idl:
49305         * svg/SVGAnimateMotionElement.idl:
49306         * svg/SVGAnimateTransformElement.idl:
49307         * svg/SVGAnimatedAngle.idl:
49308         * svg/SVGAnimatedBoolean.idl:
49309         * svg/SVGAnimatedEnumeration.idl:
49310         * svg/SVGAnimatedInteger.idl:
49311         * svg/SVGAnimatedLength.idl:
49312         * svg/SVGAnimatedLengthList.idl:
49313         * svg/SVGAnimatedNumber.idl:
49314         * svg/SVGAnimatedNumberList.idl:
49315         * svg/SVGAnimatedPreserveAspectRatio.idl:
49316         * svg/SVGAnimatedRect.idl:
49317         * svg/SVGAnimatedString.idl:
49318         * svg/SVGAnimatedTransformList.idl:
49319         * svg/SVGAnimationElement.idl:
49320         * svg/SVGCircleElement.idl:
49321         * svg/SVGClipPathElement.idl:
49322         * svg/SVGColor.idl:
49323         * svg/SVGComponentTransferFunctionElement.idl:
49324         * svg/SVGCursorElement.idl:
49325         * svg/SVGDefsElement.idl:
49326         * svg/SVGDescElement.idl:
49327         * svg/SVGDocument.idl:
49328         * svg/SVGElement.idl:
49329         * svg/SVGElementInstance.idl:
49330         * svg/SVGElementInstanceList.idl:
49331         * svg/SVGEllipseElement.idl:
49332         * svg/SVGException.idl:
49333         * svg/SVGExternalResourcesRequired.idl:
49334         * svg/SVGFEBlendElement.idl:
49335         * svg/SVGFEColorMatrixElement.idl:
49336         * svg/SVGFEComponentTransferElement.idl:
49337         * svg/SVGFECompositeElement.idl:
49338         * svg/SVGFEConvolveMatrixElement.idl:
49339         * svg/SVGFEDiffuseLightingElement.idl:
49340         * svg/SVGFEDisplacementMapElement.idl:
49341         * svg/SVGFEDistantLightElement.idl:
49342         * svg/SVGFEDropShadowElement.idl:
49343         * svg/SVGFEFloodElement.idl:
49344         * svg/SVGFEFuncAElement.idl:
49345         * svg/SVGFEFuncBElement.idl:
49346         * svg/SVGFEFuncGElement.idl:
49347         * svg/SVGFEFuncRElement.idl:
49348         * svg/SVGFEGaussianBlurElement.idl:
49349         * svg/SVGFEImageElement.idl:
49350         * svg/SVGFEMergeElement.idl:
49351         * svg/SVGFEMergeNodeElement.idl:
49352         * svg/SVGFEMorphologyElement.idl:
49353         * svg/SVGFEOffsetElement.idl:
49354         * svg/SVGFEPointLightElement.idl:
49355         * svg/SVGFESpecularLightingElement.idl:
49356         * svg/SVGFESpotLightElement.idl:
49357         * svg/SVGFETileElement.idl:
49358         * svg/SVGFETurbulenceElement.idl:
49359         * svg/SVGFilterElement.idl:
49360         * svg/SVGFilterPrimitiveStandardAttributes.idl:
49361         * svg/SVGFitToViewBox.idl:
49362         * svg/SVGFontElement.idl:
49363         * svg/SVGFontFaceElement.idl:
49364         * svg/SVGFontFaceFormatElement.idl:
49365         * svg/SVGFontFaceNameElement.idl:
49366         * svg/SVGFontFaceSrcElement.idl:
49367         * svg/SVGFontFaceUriElement.idl:
49368         * svg/SVGForeignObjectElement.idl:
49369         * svg/SVGGElement.idl:
49370         * svg/SVGGlyphElement.idl:
49371         * svg/SVGGlyphRefElement.idl:
49372         * svg/SVGGradientElement.idl:
49373         * svg/SVGHKernElement.idl:
49374         * svg/SVGImageElement.idl:
49375         * svg/SVGLangSpace.idl:
49376         * svg/SVGLength.idl:
49377         * svg/SVGLengthList.idl:
49378         * svg/SVGLineElement.idl:
49379         * svg/SVGLinearGradientElement.idl:
49380         * svg/SVGLocatable.idl:
49381         * svg/SVGMPathElement.idl:
49382         * svg/SVGMarkerElement.idl:
49383         * svg/SVGMaskElement.idl:
49384         * svg/SVGMatrix.idl:
49385         * svg/SVGMetadataElement.idl:
49386         * svg/SVGMissingGlyphElement.idl:
49387         * svg/SVGNumber.idl:
49388         * svg/SVGNumberList.idl:
49389         * svg/SVGPaint.idl:
49390         * svg/SVGPathElement.idl:
49391         * svg/SVGPathSeg.idl:
49392         * svg/SVGPathSegArcAbs.idl:
49393         * svg/SVGPathSegArcRel.idl:
49394         * svg/SVGPathSegClosePath.idl:
49395         * svg/SVGPathSegCurvetoCubicAbs.idl:
49396         * svg/SVGPathSegCurvetoCubicRel.idl:
49397         * svg/SVGPathSegCurvetoCubicSmoothAbs.idl:
49398         * svg/SVGPathSegCurvetoCubicSmoothRel.idl:
49399         * svg/SVGPathSegCurvetoQuadraticAbs.idl:
49400         * svg/SVGPathSegCurvetoQuadraticRel.idl:
49401         * svg/SVGPathSegCurvetoQuadraticSmoothAbs.idl:
49402         * svg/SVGPathSegCurvetoQuadraticSmoothRel.idl:
49403         * svg/SVGPathSegLinetoAbs.idl:
49404         * svg/SVGPathSegLinetoHorizontalAbs.idl:
49405         * svg/SVGPathSegLinetoHorizontalRel.idl:
49406         * svg/SVGPathSegLinetoRel.idl:
49407         * svg/SVGPathSegLinetoVerticalAbs.idl:
49408         * svg/SVGPathSegLinetoVerticalRel.idl:
49409         * svg/SVGPathSegList.idl:
49410         * svg/SVGPathSegMovetoAbs.idl:
49411         * svg/SVGPathSegMovetoRel.idl:
49412         * svg/SVGPatternElement.idl:
49413         * svg/SVGPoint.idl:
49414         * svg/SVGPointList.idl:
49415         * svg/SVGPolygonElement.idl:
49416         * svg/SVGPolylineElement.idl:
49417         * svg/SVGPreserveAspectRatio.idl:
49418         * svg/SVGRadialGradientElement.idl:
49419         * svg/SVGRect.idl:
49420         * svg/SVGRectElement.idl:
49421         * svg/SVGRenderingIntent.idl:
49422         * svg/SVGSVGElement.idl:
49423         * svg/SVGScriptElement.idl:
49424         * svg/SVGSetElement.idl:
49425         * svg/SVGStopElement.idl:
49426         * svg/SVGStringList.idl:
49427         * svg/SVGStylable.idl:
49428         * svg/SVGStyleElement.idl:
49429         * svg/SVGSwitchElement.idl:
49430         * svg/SVGSymbolElement.idl:
49431         * svg/SVGTRefElement.idl:
49432         * svg/SVGTSpanElement.idl:
49433         * svg/SVGTests.idl:
49434         * svg/SVGTextContentElement.idl:
49435         * svg/SVGTextElement.idl:
49436         * svg/SVGTextPathElement.idl:
49437         * svg/SVGTextPositioningElement.idl:
49438         * svg/SVGTitleElement.idl:
49439         * svg/SVGTransform.idl:
49440         * svg/SVGTransformList.idl:
49441         * svg/SVGTransformable.idl:
49442         * svg/SVGURIReference.idl:
49443         * svg/SVGUnitTypes.idl:
49444         * svg/SVGUseElement.idl:
49445         * svg/SVGVKernElement.idl:
49446         * svg/SVGViewElement.idl:
49447         * svg/SVGViewSpec.idl:
49448         * svg/SVGZoomAndPan.idl:
49449         * svg/SVGZoomEvent.idl:
49450         * testing/InternalSettings.idl:
49451         * testing/Internals.idl:
49452         * testing/MallocStatistics.idl:
49453         * workers/AbstractWorker.idl:
49454         * workers/DedicatedWorkerContext.idl:
49455         * workers/SharedWorker.idl:
49456         * workers/SharedWorkerContext.idl:
49457         * workers/Worker.idl:
49458         * workers/WorkerContext.idl:
49459         * workers/WorkerLocation.idl:
49460         * xml/DOMParser.idl:
49461         * xml/XMLHttpRequest.idl:
49462         * xml/XMLHttpRequestException.idl:
49463         * xml/XMLHttpRequestProgressEvent.idl:
49464         * xml/XMLHttpRequestUpload.idl:
49465         * xml/XMLSerializer.idl:
49466         * xml/XPathEvaluator.idl:
49467         * xml/XPathException.idl:
49468         * xml/XPathExpression.idl:
49469         * xml/XPathNSResolver.idl:
49470         * xml/XPathResult.idl:
49471         * xml/XSLTProcessor.idl:
49472         Removed "module".
49473
49474 2012-10-11  Beth Dakin  <bdakin@apple.com>
49475
49476         https://bugs.webkit.org/show_bug.cgi?id=98700
49477         ScrollingCoordinator is a hot mess of if-defs
49478
49479         Reviewed by Anders Carlsson.
49480
49481         This patch moves all of the threaded scrolling code in 
49482         ScrollingCoordinator into a new class called ScrollingCoordinatorMac 
49483         which inherits from ScrollingCoordinator. 
49484
49485         It also adds ScrollingCoordinatorChromium to do Chromium-specific work. 
49486         ScrollingCoordinator itself does work that is cross-platform. 
49487         
49488         Finally, this patch also eliminates ScrollingCoordinatorNone. 
49489         ScrollingCoordinator is now sufficient for platforms that relied on 
49490         ScrollingCoordinatorNone to build.
49491
49492         * CMakeLists.txt:
49493         * GNUmakefile.list.am:
49494         * Target.pri:
49495         * WebCore.exp.in:
49496         * WebCore.xcodeproj/project.pbxproj:
49497         * page/scrolling/ScrollingCoordinator.cpp:
49498         (WebCore::ScrollingCoordinator::create):
49499         (WebCore):
49500         (WebCore::ScrollingCoordinator::ScrollingCoordinator):
49501         (WebCore::ScrollingCoordinator::~ScrollingCoordinator):
49502         (WebCore::ScrollingCoordinator::pageDestroyed):
49503         (WebCore::ScrollingCoordinator::computeNonFastScrollableRegion):
49504         (WebCore::ScrollingCoordinator::computeCurrentWheelEventHandlerCount):
49505         (WebCore::ScrollingCoordinator::scrollLayerForFrameView):
49506         (WebCore::ScrollingCoordinator::frameViewRootLayerDidChange):
49507         * page/scrolling/ScrollingCoordinator.h:
49508         (WebCore):
49509         (ScrollingCoordinator):
49510         (WebCore::ScrollingCoordinator::scrollingTree):
49511         (WebCore::ScrollingCoordinator::commitTreeStateIfNeeded):
49512         (WebCore::ScrollingCoordinator::frameViewLayoutUpdated):
49513         (WebCore::ScrollingCoordinator::supportsFixedPositionLayers):
49514         (WebCore::ScrollingCoordinator::requestScrollPositionUpdate):
49515         (WebCore::ScrollingCoordinator::handleWheelEvent):
49516         (WebCore::ScrollingCoordinator::updateMainFrameScrollPositionAndScrollLayerPosition):
49517         (WebCore::ScrollingCoordinator::attachToStateTree):
49518         (WebCore::ScrollingCoordinator::detachFromStateTree):
49519         (WebCore::ScrollingCoordinator::clearStateTree):
49520         (WebCore::ScrollingCoordinator::frameViewHorizontalScrollbarLayerDidChange):
49521         (WebCore::ScrollingCoordinator::frameViewVerticalScrollbarLayerDidChange):
49522         (WebCore::ScrollingCoordinator::scrollableAreaScrollLayerDidChange):
49523         (WebCore::ScrollingCoordinator::setLayerIsContainerForFixedPositionLayers):
49524         (WebCore::ScrollingCoordinator::setLayerIsFixedToContainerLayer):
49525         (WebCore::ScrollingCoordinator::recomputeWheelEventHandlerCountForFrameView):
49526         (WebCore::ScrollingCoordinator::setShouldUpdateScrollLayerPositionOnMainThread):
49527         * page/scrolling/ScrollingCoordinatorNone.cpp: Removed.
49528         * page/scrolling/chromium/ScrollingCoordinatorChromium.cpp:
49529         (WebCore::ScrollingCoordinatorChromium::ScrollingCoordinatorChromium):
49530         (WebCore::ScrollingCoordinatorChromium::~ScrollingCoordinatorChromium):
49531         (WebCore::ScrollingCoordinatorChromium::frameViewLayoutUpdated):
49532         (WebCore):
49533         (WebCore::ScrollingCoordinatorChromium::frameViewRootLayerDidChange):
49534         (WebCore::ScrollingCoordinatorChromium::frameViewHorizontalScrollbarLayerDidChange):
49535         (WebCore::ScrollingCoordinatorChromium::frameViewVerticalScrollbarLayerDidChange):
49536         (WebCore::ScrollingCoordinatorChromium::setScrollLayer):
49537         (WebCore::ScrollingCoordinatorChromium::setNonFastScrollableRegion):
49538         (WebCore::ScrollingCoordinatorChromium::setWheelEventHandlerCount):
49539         (WebCore::ScrollingCoordinatorChromium::setShouldUpdateScrollLayerPositionOnMainThread):
49540         (WebCore::ScrollingCoordinatorChromium::setLayerIsContainerForFixedPositionLayers):
49541         (WebCore::ScrollingCoordinatorChromium::setLayerIsFixedToContainerLayer):
49542         (WebCore::ScrollingCoordinatorChromium::scrollableAreaScrollLayerDidChange):
49543         (WebCore::ScrollingCoordinatorChromium::recomputeWheelEventHandlerCountForFrameView):
49544         * page/scrolling/chromium/ScrollingCoordinatorChromium.h: Added.
49545         (WebCore):
49546         (ScrollingCoordinatorChromium):
49547         (WebCore::ScrollingCoordinatorChromium::supportsFixedPositionLayers):
49548         * page/scrolling/mac/ScrollingCoordinatorMac.h: Added.
49549         (WebCore):
49550         (ScrollingCoordinatorMac):
49551         (ScrollParameters):
49552         * page/scrolling/mac/ScrollingCoordinatorMac.mm:
49553         (WebCore::ScrollingCoordinatorMac::ScrollingCoordinatorMac):
49554         (WebCore::ScrollingCoordinatorMac::~ScrollingCoordinatorMac):
49555         (WebCore::ScrollingCoordinatorMac::pageDestroyed):
49556         (WebCore):
49557         (WebCore::ScrollingCoordinatorMac::scrollingTree):
49558         (WebCore::ScrollingCoordinatorMac::commitTreeStateIfNeeded):
49559         (WebCore::ScrollingCoordinatorMac::frameViewLayoutUpdated):
49560         (WebCore::ScrollingCoordinatorMac::recomputeWheelEventHandlerCountForFrameView):
49561         (WebCore::ScrollingCoordinatorMac::frameViewRootLayerDidChange):
49562         (WebCore::ScrollingCoordinatorMac::frameViewHorizontalScrollbarLayerDidChange):
49563         (WebCore::ScrollingCoordinatorMac::frameViewVerticalScrollbarLayerDidChange):
49564         (WebCore::ScrollingCoordinatorMac::requestScrollPositionUpdate):
49565         (WebCore::ScrollingCoordinatorMac::handleWheelEvent):
49566         (WebCore::ScrollingCoordinatorMac::updateMainFrameScrollPositionAndScrollLayerPosition):
49567         (WebCore::ScrollingCoordinatorMac::attachToStateTree):
49568         (WebCore::ScrollingCoordinatorMac::detachFromStateTree):
49569         (WebCore::ScrollingCoordinatorMac::clearStateTree):
49570         (WebCore::ScrollingCoordinatorMac::stateNodeForID):
49571         (WebCore::ScrollingCoordinatorMac::ensureRootStateNodeForFrameView):
49572         (WebCore::ScrollingCoordinatorMac::setScrollLayerForNode):
49573         (WebCore::ScrollingCoordinatorMac::setNonFastScrollableRegionForNode):
49574         (WebCore::ScrollingCoordinatorMac::setScrollParametersForNode):
49575         (WebCore::ScrollingCoordinatorMac::setWheelEventHandlerCountForNode):
49576         (WebCore::ScrollingCoordinatorMac::setShouldUpdateScrollLayerPositionOnMainThread):
49577         (WebCore::ScrollingCoordinatorMac::updateMainFrameScrollLayerPosition):
49578         (WebCore::ScrollingCoordinatorMac::scheduleTreeStateCommit):
49579         (WebCore::ScrollingCoordinatorMac::scrollingStateTreeCommitterTimerFired):
49580         (WebCore::ScrollingCoordinatorMac::commitTreeState):
49581
49582 2012-10-11  Takashi Sakamoto  <tasak@google.com>
49583
49584         [Shadow DOM] Insertion points need resetStyleInheritance
49585         https://bugs.webkit.org/show_bug.cgi?id=93922
49586
49587         Reviewed by Dimitri Glazkov.
49588
49589         Implemented resetStyleInheritance of insertion points.
49590         Its spec link is http://dvcs.w3.org/hg/webcomponents/raw-file/tip/spec/shadow/index.html#api-html-content-element-reset-style-inheritance
49591
49592         Test: fast/dom/shadow/insertion-point-resetStyleInheritance.html
49593
49594         * css/StyleResolver.cpp:
49595         (WebCore::isResetStyleInheritance):
49596         Added a new function to check whether there exists any insertion
49597         point which has reset-style-inhertiance flag set to be true.
49598         (WebCore::StyleResolver::initForStyleResolve):
49599         Modified to use the above function to check reset-style-inheritance.
49600         * html/shadow/HTMLContentElement.idl:
49601         * html/shadow/HTMLShadowElement.idl:
49602         Added a new attribute for reset-style-inheritance.
49603         * html/shadow/InsertionPoint.cpp:
49604         (WebCore::InsertionPoint::InsertionPoint):
49605         Initialized a new member variable for reset-style-inheritance.
49606         (WebCore::InsertionPoint::resetStyleInheritance):
49607         (WebCore::InsertionPoint::setResetStyleInheritance):
49608         Implemented setter/getter for reset-style-inheritance.
49609         * html/shadow/InsertionPoint.h:
49610         (InsertionPoint):
49611         Added a new member variable for reset-style-inheritance.
49612
49613 2012-10-11  Anders Carlsson  <andersca@apple.com>
49614
49615         Attempt to fix build broken by r131125.
49616
49617         * page/PageSerializer.cpp:
49618         (WebCore::PageSerializer::addImageToResources):
49619         KURL::utf8String() is apparently a USE(GOOGLEURL) feature. Call url.string().utf8() instead.
49620
49621 2012-10-11  Kenichi Ishibashi  <bashi@chromium.org>
49622
49623         [Chromium] Use harfbuzz-ng by default on Linux
49624         https://bugs.webkit.org/show_bug.cgi?id=97281
49625
49626         Reviewed by Tony Chang.
49627
49628         Switch old harfbuzz to harfbuzz-ng on chromium linux port.
49629
49630         No new tests. Existing tests should cover this switch.
49631         Test expectations will be updated.
49632
49633         * WebCore.gyp/WebCore.gyp:
49634
49635 2012-10-11  Nat Duca  <nduca@chromium.org>
49636
49637         Expose high-resolution on requestAnimationFrame callback
49638         https://bugs.webkit.org/show_bug.cgi?id=66683
49639
49640         This changes requestAnimationFrame's animationStartTime argument
49641         to be a high resolution DOM timestamp, per disucssion here:
49642         http://lists.w3.org/Archives/Public/public-web-perf/2012Apr/0004.html
49643
49644         Reviewed by James Robinson.
49645
49646         Covered by existing requestAnimationFrame tests.
49647
49648         * dom/Document.cpp:
49649         (WebCore::Document::serviceScriptedAnimations):
49650         * dom/Document.h:
49651         (Document):
49652         * dom/ScriptedAnimationController.cpp:
49653         (WebCore::ScriptedAnimationController::ScriptedAnimationController):
49654         (WebCore::ScriptedAnimationController::serviceScriptedAnimations):
49655         (WebCore):
49656         (WebCore::ScriptedAnimationController::windowScreenDidChange):
49657         (WebCore::ScriptedAnimationController::scheduleAnimation):
49658         (WebCore::ScriptedAnimationController::animationTimerFired):
49659         (WebCore::ScriptedAnimationController::displayRefreshFired):
49660         * dom/ScriptedAnimationController.h:
49661         (ScriptedAnimationController):
49662         * page/FrameView.cpp:
49663         (WebCore::FrameView::serviceScriptedAnimations):
49664         * page/FrameView.h:
49665         (FrameView):
49666         * platform/graphics/DisplayRefreshMonitor.cpp:
49667         (WebCore::DisplayRefreshMonitor::DisplayRefreshMonitor):
49668         (WebCore::DisplayRefreshMonitor::notifyClients):
49669         * platform/graphics/DisplayRefreshMonitor.h:
49670         (DisplayRefreshMonitor):
49671         * platform/graphics/blackberry/DisplayRefreshMonitorBlackBerry.cpp:
49672         (WebCore::DisplayRefreshMonitor::displayLinkFired):
49673         * platform/graphics/mac/DisplayRefreshMonitorMac.cpp:
49674         (WebCore):
49675         (WebCore::DisplayRefreshMonitor::requestRefreshCallback):
49676         (WebCore::DisplayRefreshMonitor::displayLinkFired):
49677
49678 2012-10-11  Sheriff Bot  <webkit.review.bot@gmail.com>
49679
49680         Unreviewed, rolling out r131100.
49681         http://trac.webkit.org/changeset/131100
49682         https://bugs.webkit.org/show_bug.cgi?id=99127
49683
49684         Caused an ASSERT (Requested by abarth|gardening on #webkit).
49685
49686         * platform/graphics/filters/CustomFilterValidatedProgram.cpp:
49687         (WebCore::CustomFilterValidatedProgram::compositeFunctionString):
49688
49689 2012-10-11  Kenichi Ishibashi  <bashi@chromium.org>
49690
49691         [Chromium] Improve vertical text rendering of HarfBuzzShaper (Re-land)
49692         https://bugs.webkit.org/show_bug.cgi?id=98979
49693
49694         Reviewed by Tony Chang.
49695
49696         - Specify 'vert' and 'vrt2' features when we render vertical text.
49697         - Set appropriate script so that harfbuzz-ng can use the features.
49698
49699         No new tests. fast/text/international/text-spliced-font.html should cover this change.
49700         This change will affect after switching to harfbuzz-ng.
49701
49702         * platform/graphics/harfbuzz/ng/HarfBuzzNGFace.cpp:
49703         (WebCore::HarfBuzzNGFace::HarfBuzzNGFace):
49704         (WebCore::findScriptForVerticalGlyphSubstitution): Added.
49705         (WebCore):
49706         (WebCore::HarfBuzzNGFace::setScriptForVerticalGlyphSubstitution): Added.
49707         * platform/graphics/harfbuzz/ng/HarfBuzzNGFace.h:
49708         (HarfBuzzNGFace): Added m_scriptForVerticalText.
49709         * platform/graphics/harfbuzz/ng/HarfBuzzShaper.cpp:
49710         (WebCore::HarfBuzzShaper::setFontFeatures):
49711         Set 'vert' and 'vrt2' features when orientation() == Vertical.
49712         (WebCore::HarfBuzzShaper::shapeHarfBuzzRuns):
49713         Call setScriptForVerticalGlyphSubstitution() when orientation() == Vertical.
49714
49715 2012-10-11  Jay Civelli  <jcivelli@chromium.org>
49716
49717         Fix for a crasher when generating MHTML for a page containing SVG images.
49718         https://bugs.webkit.org/show_bug.cgi?id=99105
49719
49720         Reviewed by Adam Barth.
49721
49722         * page/PageSerializer.cpp:
49723         (WebCore::PageSerializer::serializeCSSStyleSheet):
49724         (WebCore::PageSerializer::addImageToResources):
49725
49726 2012-10-11  Sheriff Bot  <webkit.review.bot@gmail.com>
49727
49728         Unreviewed, rolling out r131107.
49729         http://trac.webkit.org/changeset/131107
49730         https://bugs.webkit.org/show_bug.cgi?id=99126
49731
49732         Causes an ASSERT (Requested by abarth|gardening on #webkit).
49733
49734         * accessibility/AccessibilityNodeObject.cpp:
49735         (WebCore::AccessibilityNodeObject::labelForElement):
49736         * dom/DocumentOrderedMap.cpp:
49737         * dom/DocumentOrderedMap.h:
49738         (DocumentOrderedMap):
49739         * dom/Element.cpp:
49740         (WebCore::Element::insertedInto):
49741         (WebCore::Element::removedFrom):
49742         (WebCore):
49743         (WebCore::Element::willModifyAttribute):
49744         * dom/Element.h:
49745         (Element):
49746         * dom/TreeScope.cpp:
49747         (WebCore::TreeScope::TreeScope):
49748         * dom/TreeScope.h:
49749         (WebCore):
49750         (TreeScope):
49751
49752 2012-10-11  Tim Horton  <timothy_horton@apple.com>
49753
49754         LocalCurrentGraphicsContext will never restore the current context to null
49755         https://bugs.webkit.org/show_bug.cgi?id=99122
49756
49757         Reviewed by Simon Fraser.
49758
49759         LocalCurrentGraphicsContext is meant to cause temporary changes to
49760         NSGraphicsContext's currentContext. However, if it is entered when
49761         currentContext is null, it will not restore to null, as a null
49762         m_savedNSGraphicsContext was being used to indicate that the current and
49763         passed-in graphics contexts were equal (and thus no save/restore was required).
49764
49765         Add a separate flag for whether or not we need to restore the context.
49766
49767         Also flip the order of calls to restore graphics context state so that
49768         exiting LocalCurrentGraphicsContext does things in exactly the opposite
49769         of entry.
49770
49771         * platform/mac/LocalCurrentGraphicsContext.h:
49772         (LocalCurrentGraphicsContext):
49773         * platform/mac/LocalCurrentGraphicsContext.mm:
49774         (WebCore::LocalCurrentGraphicsContext::LocalCurrentGraphicsContext):
49775         (WebCore::LocalCurrentGraphicsContext::~LocalCurrentGraphicsContext):
49776
49777 2012-10-11  Sheriff Bot  <webkit.review.bot@gmail.com>
49778
49779         Unreviewed, rolling out r131109.
49780         http://trac.webkit.org/changeset/131109
49781         https://bugs.webkit.org/show_bug.cgi?id=99124
49782
49783         Does not compile on chromium-mac (Requested by
49784         abarth|gardening on #webkit).
49785
49786         * platform/graphics/harfbuzz/ng/HarfBuzzNGFace.cpp:
49787         (WebCore::HarfBuzzNGFace::HarfBuzzNGFace):
49788         * platform/graphics/harfbuzz/ng/HarfBuzzNGFace.h:
49789         (HarfBuzzNGFace):
49790         * platform/graphics/harfbuzz/ng/HarfBuzzShaper.cpp:
49791         (WebCore::HarfBuzzShaper::setFontFeatures):
49792         (WebCore::HarfBuzzShaper::shapeHarfBuzzRuns):
49793
49794 2012-10-11  Beth Dakin  <bdakin@apple.com>
49795
49796         https://bugs.webkit.org/show_bug.cgi?id=99111
49797         ScrollingStateNode should keep its Vector of children in an OwnPtr
49798
49799         Reviewed by Ada Chan.
49800
49801         Vector<OwnPtr<ScrollingStateNode> >* m_children; is now:
49802          OwnPtr<Vector<OwnPtr<ScrollingStateNode> > > m_children;
49803         * page/scrolling/ScrollingStateNode.cpp:
49804         (WebCore::ScrollingStateNode::ScrollingStateNode):
49805         (WebCore::ScrollingStateNode::~ScrollingStateNode):
49806         (WebCore::ScrollingStateNode::appendChild):
49807         * page/scrolling/ScrollingStateNode.h:
49808         (ScrollingStateNode):
49809
49810 2012-10-11  Levi Weintraub  <leviw@chromium.org>
49811
49812         [Sub pixel layout] Fast-path iframe scrolling can picks up an extra pixel
49813         https://bugs.webkit.org/show_bug.cgi?id=98571
49814
49815         Reviewed by Emil A Eklund.
49816
49817         Refactoring all coordinate-switching functionality to use a single "mode" flag
49818         as opposed to having a bunch of boolean values. This enables the same set of
49819         options across the board, and a consistent interface. This was previously
49820         done for mapLocalToContainer.
49821
49822         The imptetus for this for this stems from the one logical change in this patch
49823         which only effects sub-pixel layout. FrameView::convertToRenderer and
49824         convertFromRenderer return IntPoint coordinates, and need to also snap transform
49825         offsets to determine proper rects for scrolling.
49826
49827         Unlabeled functions below are simply being updated to these new interfaces.
49828
49829         Test: fast/sub-pixel/sub-pixel-iframe-copy-on-scroll.html
49830
49831         * WebCore.exp.in:
49832         * dom/ContainerNode.cpp:
49833         (WebCore::ContainerNode::getUpperLeftCorner):
49834         (WebCore::ContainerNode::getLowerRightCorner):
49835         * dom/Element.cpp:
49836         (WebCore::Element::boundsInRootViewSpace):
49837         * dom/MouseRelatedEvent.cpp:
49838         (WebCore::MouseRelatedEvent::computeRelativePosition):
49839         * dom/Node.cpp:
49840         (WebCore::Node::convertToPage):
49841         (WebCore::Node::convertFromPage):
49842         * html/HTMLSelectElement.cpp:
49843         (WebCore::HTMLSelectElement::listBoxDefaultEventHandler):
49844         * html/shadow/SliderThumbElement.cpp:
49845         (WebCore::SliderThumbElement::setPositionFromPoint):
49846         * html/shadow/SpinButtonElement.cpp:
49847         (WebCore::SpinButtonElement::defaultEventHandler):
49848         * page/FrameView.cpp:
49849         (WebCore::FrameView::convertToRenderer): Now pixel-snaps offsets before passing
49850         them to TransformState, which transforms the coordinates.
49851         (WebCore::FrameView::convertFromRenderer): Ditto.
49852         * rendering/LayoutState.cpp:
49853         (WebCore::LayoutState::LayoutState):
49854         * rendering/RenderBlock.cpp:
49855         (WebCore::RenderBlock::absoluteQuads):
49856         * rendering/RenderBox.cpp:
49857         (WebCore::RenderBox::absoluteQuads):
49858         (WebCore::RenderBox::mapLocalToContainer):
49859         (WebCore::RenderBox::mapAbsoluteToLocalPoint):
49860         * rendering/RenderBox.h:
49861         (RenderBox):
49862         * rendering/RenderBoxModelObject.cpp:
49863         (WebCore::RenderBoxModelObject::mapAbsoluteToLocalPoint):
49864         * rendering/RenderBoxModelObject.h:
49865         (RenderBoxModelObject):
49866         * rendering/RenderEmbeddedObject.cpp:
49867         (WebCore::RenderEmbeddedObject::isInUnavailablePluginIndicator):
49868         * rendering/RenderFrameSet.cpp:
49869         (WebCore::RenderFrameSet::userResize):
49870         * rendering/RenderGeometryMap.cpp:
49871         (WebCore::RenderGeometryMap::absolutePoint):
49872         * rendering/RenderInline.cpp:
49873         (WebCore::RenderInline::mapLocalToContainer):
49874         * rendering/RenderInline.h:
49875         (RenderInline):
49876         * rendering/RenderLayer.cpp:
49877         (WebCore::RenderLayer::absoluteToContents):
49878         (WebCore::RenderLayer::calculateClipRects):
49879         * rendering/RenderMediaControls.cpp:
49880         (WebCore::RenderMediaControls::volumeSliderOffsetFromMuteButton):
49881         * rendering/RenderMenuList.cpp:
49882         (WebCore::RenderMenuList::showPopup):
49883         * rendering/RenderObject.cpp:
49884         (WebCore::RenderObject::localToAbsolute):
49885         (WebCore::RenderObject::absoluteToLocal):
49886         (WebCore::RenderObject::mapLocalToContainer):
49887         (WebCore::RenderObject::mapAbsoluteToLocalPoint):
49888         (WebCore::RenderObject::localToContainerQuad):
49889         (WebCore::RenderObject::localToContainerPoint):
49890         * rendering/RenderObject.h:
49891         (RenderObject): MapLocalToContainerFlags is now MapCoordinatesFlags since it's
49892         now used for other conversion methods.
49893         (WebCore::RenderObject::localToAbsoluteQuad):
49894         * rendering/RenderTheme.cpp:
49895         (WebCore::RenderTheme::volumeSliderOffsetFromMuteButton):
49896         * rendering/RenderView.cpp:
49897         (WebCore::RenderView::mapLocalToContainer):
49898         (WebCore::RenderView::mapAbsoluteToLocalPoint):
49899         * rendering/RenderView.h:
49900         (RenderView):
49901         * rendering/svg/RenderSVGForeignObject.cpp:
49902         (WebCore::RenderSVGForeignObject::mapLocalToContainer):
49903         * rendering/svg/RenderSVGForeignObject.h:
49904         (RenderSVGForeignObject):
49905         * rendering/svg/RenderSVGInline.cpp:
49906         (WebCore::RenderSVGInline::mapLocalToContainer):
49907         * rendering/svg/RenderSVGInline.h:
49908         (RenderSVGInline):
49909         * rendering/svg/RenderSVGModelObject.cpp:
49910         (WebCore::RenderSVGModelObject::mapLocalToContainer):
49911         * rendering/svg/RenderSVGModelObject.h:
49912         (RenderSVGModelObject):
49913         * rendering/svg/RenderSVGRoot.cpp:
49914         (WebCore::RenderSVGRoot::mapLocalToContainer):
49915         * rendering/svg/RenderSVGRoot.h:
49916         (RenderSVGRoot):
49917         * rendering/svg/RenderSVGText.cpp:
49918         (WebCore::RenderSVGText::mapLocalToContainer):
49919         * rendering/svg/RenderSVGText.h:
49920         (RenderSVGText):
49921         * rendering/svg/SVGRenderSupport.cpp:
49922         (WebCore::SVGRenderSupport::mapLocalToContainer):
49923         * svg/SVGSVGElement.cpp:
49924         (WebCore::SVGSVGElement::localCoordinateSpaceTransform):
49925
49926 2012-10-11  Adam Barth  <abarth@webkit.org>
49927
49928         Incorrect/Illegal static cast in FrameView.cpp
49929         https://bugs.webkit.org/show_bug.cgi?id=98943
49930
49931         Reviewed by Eric Seidel.
49932
49933         HTMLFrameElementBase is the common base class for <frame> and <iframe>.
49934
49935         * page/FrameView.cpp:
49936         (WebCore::FrameView::init):
49937
49938 2012-10-11  Kenichi Ishibashi  <bashi@chromium.org>
49939
49940         [Chromium] Improve vertical text rendering of HarfBuzzShaper
49941         https://bugs.webkit.org/show_bug.cgi?id=98979
49942
49943         Reviewed by Tony Chang.
49944
49945         - Specify 'vert' and 'vrt2' features when we render vertical text.
49946         - Set appropriate script so that harfbuzz-ng can use the features.
49947
49948         No new tests. fast/text/international/text-spliced-font.html should cover this change.
49949         This change will affect after switching to harfbuzz-ng.
49950
49951         * platform/graphics/harfbuzz/ng/HarfBuzzNGFace.cpp:
49952         (WebCore::HarfBuzzNGFace::HarfBuzzNGFace):
49953         (WebCore::findScriptForVerticalGlyphSubstitution): Added.
49954         (WebCore):
49955         (WebCore::HarfBuzzNGFace::setScriptForVerticalGlyphSubstitution): Added.
49956         * platform/graphics/harfbuzz/ng/HarfBuzzNGFace.h:
49957         (HarfBuzzNGFace): Added m_scriptForVerticalText.
49958         * platform/graphics/harfbuzz/ng/HarfBuzzShaper.cpp:
49959         (WebCore::HarfBuzzShaper::setFontFeatures):
49960         Set 'vert' and 'vrt2' features when orientation() == Vertical.
49961         (WebCore::HarfBuzzShaper::shapeHarfBuzzRuns):
49962         Call setScriptForVerticalGlyphSubstitution() when orientation() == Vertical.
49963
49964 2012-10-11  Dominic Mazzoni  <dmazzoni@google.com>
49965
49966         AX: labelForElement is slow when there are a lot of DOM elements
49967         https://bugs.webkit.org/show_bug.cgi?id=97825
49968
49969         Reviewed by Ryosuke Niwa.
49970
49971         Adds a DocumentOrderedMap to TreeScope that allows accessibility to
49972         quickly map from an id to the label for that id. This speeds up
49973         AccessibilityNode::labelForElement, which was a bottleneck in Chromium
49974         when accessibility was on.
49975
49976         Tests: accessibility/title-ui-element-correctness.html
49977                perf/accessibility-title-ui-element.html
49978
49979         * accessibility/AccessibilityNodeObject.cpp:
49980         (WebCore::AccessibilityNodeObject::labelForElement):
49981         * dom/DocumentOrderedMap.cpp:
49982         (WebCore::keyMatchesLabelForAttribute):
49983         (WebCore):
49984         (WebCore::DocumentOrderedMap::getElementByLabelForAttribute):
49985         * dom/DocumentOrderedMap.h:
49986         (DocumentOrderedMap):
49987         * dom/Element.cpp:
49988         (WebCore::Element::insertedInto):
49989         (WebCore::Element::removedFrom):
49990         (WebCore::Element::updateLabel):
49991         (WebCore):
49992         (WebCore::Element::willModifyAttribute):
49993         * dom/Element.h:
49994         (Element):
49995         * dom/TreeScope.cpp:
49996         (WebCore::TreeScope::TreeScope):
49997         (WebCore::TreeScope::addLabel):
49998         (WebCore):
49999         (WebCore::TreeScope::removeLabel):
50000         (WebCore::TreeScope::labelElementForId):
50001         * dom/TreeScope.h:
50002         (WebCore):
50003         (TreeScope):
50004         (WebCore::TreeScope::shouldCacheLabelsByForAttribute):
50005
50006 2012-10-11  James Simonsen  <simonjam@chromium.org>
50007
50008         unprefix window.performance.webkitNow()
50009         https://bugs.webkit.org/show_bug.cgi?id=88278
50010
50011         Reviewed by Tony Gentilcore.
50012
50013         Test: fast/dom/Window/window-properties-performance.html
50014               fast/performance/performance-now-timestamps.html
50015
50016         * page/Performance.cpp:
50017         (WebCore::Performance::now):
50018         * page/Performance.h:
50019         (Performance):
50020         * page/Performance.idl:
50021
50022 2012-10-11  Roger Fong  <roger_fong@apple.com>
50023
50024         [WebGL] [Mac] only the mapped symbol for the first element of a uniform/attribute array is stored.
50025         https://bugs.webkit.org/show_bug.cgi?id=98966
50026
50027         Reviewed by Dean Jackson.
50028
50029         We currently do not add name/mappedName symbol pairs for each element of a uniform/attribute array.
50030         This is because we only add a number of symbols equal to how many symbols the shader compiler tells us there are.
50031         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.
50032         The mappedName of each array element is the same between elements except for the "[index]" at the end so this is easy to do.
50033
50034         Tested using Khronos WebGL conformance suite:
50035         conformance/glsl/misc/glsl-long-variable-names.html
50036
50037         * platform/graphics/ANGLEWebKitBridge.cpp:
50038         (WebCore::getSymbolInfo):
50039
50040 2012-10-11  Andreas Kling  <kling@webkit.org>
50041
50042         ElementAttributeData shouldn't be managing Element's callbacks.
50043         <http://webkit.org/b/98987>
50044
50045         Reviewed by Anders Carlsson.
50046
50047         Dispatch the following attribute-related Element callbacks from within Element
50048         instead of ElementAttributeData. Also made them private.
50049
50050             - willModifyAttribute
50051             - didModifyAttribute
50052             - didAddAttribute
50053             - didRemoveAttribute
50054
50055         No behavior change, just making ElementAttributeData a bit dumber (a good thing.)
50056
50057         * dom/Element.cpp:
50058         (WebCore::Element::detachAttribute):
50059         (WebCore::Element::removeAttribute):
50060         (WebCore::Element::setAttributeInternal):
50061         (WebCore::Element::removeAttributeInternal):
50062         (WebCore::Element::addAttributeInternal):
50063         * dom/Element.h:
50064         * dom/ElementAttributeData.cpp:
50065         (WebCore::ElementAttributeData::addAttribute):
50066         (WebCore::ElementAttributeData::removeAttribute):
50067         * dom/ElementAttributeData.h:
50068
50069 2012-10-11  Huang Dongsung  <luxtella@company100.net>
50070
50071         [CSS Shaders] Make custom filters use a premultiplied buffer.
50072         https://bugs.webkit.org/show_bug.cgi?id=98396
50073
50074         Reviewed by Dean Jackson.
50075
50076         Currently, a GLSL css_Composite function returns a premultiplied color, so
50077         FECustomFilter must make a premultiplied buffer in the case when an author is
50078         using the CSS mix function.
50079
50080         In addition, there are two performance benefits when FECustomFilter uses a premultiplied buffer.
50081         1. FilterEffect::asImageBuffer is faster.
50082         2. In the future when Accelerated Compositing implementations use
50083         FECustomFilter, they do not need to convert an unmultiplied buffer to a
50084         premultiplied buffer.
50085
50086         Test: css3/filters/custom/custom-filter-composite-fractional-source-alpha.html
50087
50088         * platform/graphics/filters/FECustomFilter.cpp:
50089         (WebCore::FECustomFilter::applyShader):
50090
50091 2012-10-11  Rob Buis  <rbuis@rim.com>
50092
50093         [CMAKE] Do not add include dirs twice
50094         https://bugs.webkit.org/show_bug.cgi?id=99099
50095
50096         Reviewed by Yong Li.
50097
50098         Do not add WebCore_INCLUDE_DIRECTORIES to WebCoreTestSupport_INCLUDE_DIRECTORIES, the includes_directory
50099         call does this for us.
50100
50101         * CMakeLists.txt:
50102
50103 2012-10-11  Huang Dongsung  <luxtella@company100.net>
50104
50105         [CSS Shaders] Implement all composite operators except destination and lighter.
50106         https://bugs.webkit.org/show_bug.cgi?id=97859
50107
50108         Reviewed by Dean Jackson.
50109
50110         Add expressions for all composite operators except destination and
50111         lighter. The expressions are lifted directly from the CSS Compositing
50112         and Blending spec [1]. WebKit adds these compositing expressions to the
50113         author's shader.
50114
50115         [1]: https://dvcs.w3.org/hg/FXTF/rawfile/tip/compositing/index.html#advancedcompositing
50116
50117         Test: css3/filters/custom/custom-filter-composite-operators.html
50118
50119         * platform/graphics/filters/CustomFilterValidatedProgram.cpp:
50120         (WebCore::CustomFilterValidatedProgram::compositeFunctionString):
50121
50122 2012-10-11  Joshua Bell  <jsbell@chromium.org>
50123
50124         IndexedDB: IDL types defined in spec should be visible to scripts
50125         https://bugs.webkit.org/show_bug.cgi?id=99093
50126
50127         Reviewed by Adam Barth.
50128
50129         Interfaces defined in the spec WebIDL, such as IDBCursorWithValue, should be exposed
50130         to scripts as properties of the global object. A few types were missing - add them.
50131
50132         Test: storage/indexeddb/interfaces.html
50133
50134         * Modules/indexeddb/DOMWindowIndexedDatabase.idl:
50135         * Modules/indexeddb/WorkerContextIndexedDatabase.idl:
50136
50137 2012-10-11  Geoffrey Garen  <ggaren@apple.com>
50138
50139         Removed ASSERT_CLASS_FITS_IN_CELL
50140         https://bugs.webkit.org/show_bug.cgi?id=97634
50141
50142         Reviewed by Mark Hahnenberg.
50143
50144         * bindings/js/JSDOMWindowShell.cpp:
50145         (WebCore):
50146         * bindings/js/JSImageConstructor.cpp:
50147         (WebCore):
50148         * bindings/js/JSNodeFilterCondition.cpp:
50149         (WebCore):
50150         * bindings/js/JSWorkerContextBase.cpp:
50151         (WebCore):
50152         * bindings/scripts/CodeGeneratorJS.pm:
50153         (GenerateImplementation):
50154         * bindings/scripts/test/JS/JSFloat64Array.cpp:
50155         (WebCore):
50156         * bindings/scripts/test/JS/JSTestActiveDOMObject.cpp:
50157         (WebCore):
50158         * bindings/scripts/test/JS/JSTestCustomNamedGetter.cpp:
50159         (WebCore):
50160         * bindings/scripts/test/JS/JSTestEventConstructor.cpp:
50161         (WebCore):
50162         * bindings/scripts/test/JS/JSTestEventTarget.cpp:
50163         (WebCore):
50164         * bindings/scripts/test/JS/JSTestException.cpp:
50165         (WebCore):
50166         * bindings/scripts/test/JS/JSTestInterface.cpp:
50167         (WebCore):
50168         * bindings/scripts/test/JS/JSTestMediaQueryListListener.cpp:
50169         (WebCore):
50170         * bindings/scripts/test/JS/JSTestNamedConstructor.cpp:
50171         (WebCore):
50172         * bindings/scripts/test/JS/JSTestNode.cpp:
50173         (WebCore):
50174         * bindings/scripts/test/JS/JSTestObj.cpp:
50175         (WebCore):
50176         * bindings/scripts/test/JS/JSTestSerializedScriptValueInterface.cpp:
50177         (WebCore):
50178         * bridge/runtime_method.cpp:
50179         (JSC):
50180
50181 2012-10-10  Brady Eidson  <beidson@apple.com>
50182
50183         Switch ResourceLoader::resourceData() from SharedBuffer to ResourceBuffer
50184         https://bugs.webkit.org/show_bug.cgi?id=98976
50185
50186         Reviewed by Anders Carlsson.
50187
50188         No new tests (No change in behavior).
50189
50190         * WebCore.exp.in:
50191         * html/ImageDocument.cpp:
50192         (WebCore::ImageDocumentParser::appendBytes):
50193         (WebCore::ImageDocumentParser::finish):
50194         * inspector/InspectorPageAgent.cpp:
50195         (WebCore::InspectorPageAgent::mainResourceContent):
50196         (WebCore::InspectorPageAgent::sharedBufferContent):
50197         (WebCore):
50198         (WebCore::InspectorPageAgent::dataContent):
50199         * inspector/InspectorPageAgent.h:
50200         * inspector/InspectorResourceAgent.cpp:
50201         (WebCore::InspectorResourceAgent::didFinishLoading):
50202         (WebCore::InspectorResourceAgent::didFailLoading):
50203         * loader/DocumentLoader.cpp:
50204         (WebCore::DocumentLoader::mainResourceData):
50205         (WebCore::DocumentLoader::setupForReplaceByMIMEType):
50206         (WebCore::DocumentLoader::maybeCreateArchive):
50207         (WebCore::DocumentLoader::mainResource):
50208         (WebCore::DocumentLoader::maybeFinishLoadingMultipartContent):
50209         * loader/DocumentLoader.h:
50210         (WebCore):
50211         (DocumentLoader):
50212         * loader/ResourceBuffer.cpp:
50213         (WebCore::ResourceBuffer::append):
50214         (WebCore):
50215         (WebCore::ResourceBuffer::clear):
50216         * loader/ResourceBuffer.h:
50217         (ResourceBuffer):
50218         * loader/ResourceLoader.cpp:
50219         (WebCore::ResourceLoader::resourceData):
50220         (WebCore::ResourceLoader::addData):
50221         (WebCore::ResourceLoader::willStopBufferingData):
50222         * loader/ResourceLoader.h:
50223         (WebCore):
50224         (ResourceLoader):
50225         * loader/SubresourceLoader.cpp:
50226         (WebCore::SubresourceLoader::didReceiveResponse):
50227         (WebCore::SubresourceLoader::sendDataToResource):
50228         (WebCore::SubresourceLoader::didFinishLoading):
50229         * loader/appcache/ApplicationCacheGroup.cpp:
50230         (WebCore::ApplicationCacheGroup::finishedLoadingMainResource):
50231
50232 2012-10-11  Konrad Piascik  <kpiascik@rim.com>
50233
50234         Web Inspector: node search does not work with elements on touch start listener
50235         https://bugs.webkit.org/show_bug.cgi?id=95252
50236
50237         Reviewed by Pavel Feldman.
50238
50239         Added new InspectorInstrumentation::handleTouchEvent() method which
50240         will prevent a touch handler from firing and inspect and element if we
50241         are already searching for a node to highlight.
50242         Now when a user has chosen to inspect element (magnifying glass icon)
50243         and touches on a page the event will be directed to inspector and
50244         handled appropriately.
50245
50246         Not testable.
50247
50248         * inspector/InspectorDOMAgent.cpp:
50249         (WebCore::InspectorDOMAgent::handleTouchEvent):
50250         (WebCore):
50251         * inspector/InspectorDOMAgent.h:
50252         (InspectorDOMAgent):
50253         * inspector/InspectorInstrumentation.cpp:
50254         (WebCore):
50255         (WebCore::InspectorInstrumentation::handleTouchEventImpl):
50256         * inspector/InspectorInstrumentation.h:
50257         (InspectorInstrumentation):
50258         (WebCore::InspectorInstrumentation::handleTouchEvent):
50259         (WebCore):
50260         * page/EventHandler.cpp:
50261         (WebCore::EventHandler::handleTouchEvent):
50262
50263 2012-10-11  Otto Derek Cheung  <otcheung@rim.com>
50264
50265         [BlackBerry] Credentials for HTTPS urls are saved in the HTTP protection space
50266         https://bugs.webkit.org/show_bug.cgi?id=99082
50267
50268         Reviewed by Rob Buis.
50269
50270         Adding support for secure ProtectionSpaces in Credentials
50271         to prevent credentials from being overwritten/used when the user
50272         accesses both versions of the same url.
50273
50274         PR 199457
50275
50276         The issue was the secure/non-secure version of the same protocol
50277         were using the same ProtectionSpace enum in the network stack. When
50278         the credentials are saved, it will overwrite each other since the
50279         protection object is identical.
50280
50281         The fix is to use the WebKit provided secure enums when the protcol is secure.
50282
50283         To test this, access a restricted site that is running on http. Save the
50284         password and access the same restricted site (same domain
50285         and path) but on https. The browser should prompt for credentials.
50286
50287         * platform/network/blackberry/NetworkJob.cpp:
50288         (WebCore::NetworkJob::notifyAuthReceived):
50289         (WebCore::NetworkJob::handleFTPHeader):
50290         (WebCore::NetworkJob::sendRequestWithCredentials):
50291         (WebCore::NetworkJob::storeCredentials):
50292         * platform/network/blackberry/NetworkManager.cpp:
50293         (WebCore::NetworkManager::startJob):
50294
50295 2012-10-11  Arnaud Renevier  <a.renevier@sisa.samsung.com>
50296
50297         [texmap] logic error in BitmapTextureGL::updateContents
50298         https://bugs.webkit.org/show_bug.cgi?id=98969
50299
50300         Reviewed by Noam Rosenthal.
50301
50302         Incorrect test (bytesPerLine == targetRect.width() / 4) never
50303         evaluates to true. Change it to correct test 
50304         (bytesPerLine == targetRect.width() * 4)
50305
50306         No new tests because no functional change.
50307
50308         * platform/graphics/texmap/TextureMapperGL.cpp:
50309         (WebCore::BitmapTextureGL::updateContents):
50310
50311 2012-10-11  Dan Bernstein  <mitz@apple.com>
50312
50313         <rdar://problem/12477191> Combined text reverts to full-width font after a style change
50314         https://bugs.webkit.org/show_bug.cgi?id=99009
50315
50316         Reviewed by John Sullivan.
50317
50318         Test: fast/text/text-combine-width-after-style-change.html
50319
50320         * rendering/RenderCombineText.cpp:
50321         (WebCore::RenderCombineText::styleDidChange): Changed to reset m_isCombined to false, to
50322         ensure that combineText() is called on the next layout.
50323
50324 2012-10-11  Arnaud Renevier  <a.renevier@sisa.samsung.com>
50325
50326         accelerated compositing does not work with ati driver
50327         https://bugs.webkit.org/show_bug.cgi?id=97472
50328
50329         Reviewed by Martin Robinson.
50330
50331         Create m_parentWindow at positive position. Otherwise, parts of it are
50332         not displayed on ati drivers.
50333
50334         Covered by existing tests.
50335
50336         * platform/gtk/RedirectedXCompositeWindow.cpp:
50337         (WebCore::RedirectedXCompositeWindow::RedirectedXCompositeWindow):
50338
50339 2012-10-11  Jaehun Lim  <ljaehun.lim@samsung.com>
50340
50341         Fix JPEG decoding faiure when IMAGE_DECODER_DOWN_SAMPLING is enabled
50342         https://bugs.webkit.org/show_bug.cgi?id=98878
50343
50344         Reviewed by Kenneth Russell.
50345
50346         When using libjpeg-turbo and enabling IMAGE_DECODER_DOWN_SAMPLING,
50347         JPEG decoding failed because of no support for JCS_EXT_RGBA, JCS_EXT_BGRA.
50348         Set RGBA values when color space is JCS_EXT_RGBA or JCS_EXT_BGRA.
50349
50350         No new tests.
50351
50352         * platform/image-decoders/jpeg/JPEGImageDecoder.cpp:
50353         (WebCore::JPEGImageDecoder::outputScanlines):
50354
50355 2012-10-11  Vsevolod Vlasov  <vsevik@chromium.org>
50356
50357         Web Inspector: Preview HTML in ajax responses in network panel
50358         https://bugs.webkit.org/show_bug.cgi?id=99066
50359
50360         Reviewed by Yury Semikhatsky.
50361
50362         HTML preview is now shown for XHR responses with text/html mime types.
50363         Also RequestHTMLView is refactored to use sandbox iframe correctly.
50364         Also extracted a method to generate dataURL from resource/request content.
50365
50366         * inspector/front-end/NetworkRequest.js:
50367         (WebInspector.NetworkRequest):
50368         (WebInspector.NetworkRequest.prototype.populateImageSource):
50369         (WebInspector.NetworkRequest.prototype.asDataURL):
50370         * inspector/front-end/RequestHTMLView.js:
50371         (WebInspector.RequestHTMLView):
50372         (WebInspector.RequestHTMLView.prototype._createIFrame):
50373         * inspector/front-end/RequestPreviewView.js:
50374         (WebInspector.RequestPreviewView.prototype._createPreviewView):
50375         * inspector/front-end/Resource.js:
50376         (WebInspector.Resource.prototype.populateImageSource):
50377         * inspector/front-end/ResourceUtils.js:
50378         (WebInspector.contentAsDataURL):
50379
50380 2012-10-11  Christophe Dumez  <christophe.dumez@intel.com>
50381
50382         Regression(r131058): Broke EFL build
50383         https://bugs.webkit.org/show_bug.cgi?id=99079
50384
50385         Unreviewed build fix.
50386
50387         Use iterator::value instead of iterator::second to fix
50388         build break after r131058.
50389
50390         * platform/graphics/freetype/SimpleFontDataFreeType.cpp:
50391         (WebCore::SimpleFontData::canRenderCombiningCharacterSequence):
50392
50393 2012-10-11  Mihai Balan  <mibalan@adobe.com>
50394
50395         Always enable the experiments tab for WebKit nightly
50396
50397         Web Inspector: Enabling experiments tab in WebKit nightly.
50398         https://bugs.webkit.org/show_bug.cgi?id=98923
50399
50400         Reviewed by Pavel Feldman.
50401
50402         Enabling Web Inspector experiments tab in WebKit nightly. This is done by adding a new
50403         Preference key, Preferences.experimentsEnabled. Default values are true for WebKit and false
50404         for Chromium. They can also be overridden as before (in Chromium)
50405
50406         * inspector/front-end/Settings.js:
50407         (WebInspector.ExperimentsSettings.prototype.get experimentsEnabled):
50408
50409 2012-10-11  Hayato Ito  <hayato@chromium.org>
50410
50411         Support re-projection for Shadow DOM.
50412         https://bugs.webkit.org/show_bug.cgi?id=97151
50413
50414         Reviewed by Dimitri Glazkov.
50415
50416         Update node distribution algorithm so that nodes can be re-projected to insertion points
50417         in nested shadow subtree.
50418
50419         See the latest Shadow DOM spec for what 're-projected' means:
50420         - http://dvcs.w3.org/hg/webcomponents/raw-file/tip/spec/shadow/index.html
50421         Also see the related W3C bug:
50422         - http://www.w3.org/Bugs/Public/show_bug.cgi?id=18513
50423
50424         Since this change breaks existing behavior, we have to update several code at once, which includes:
50425         - ContentDistributer: ContentDistributor now re-projects distributed nodes.
50426         - ComposedShadowTreeWalker: ComposedShadowTreeWalker is now aware of re-projection. That can
50427           resolve re-projection transparently.
50428         - AncestorChainWalker (formerly named ComposedShadowTreeParentWallker):
50429           AncestorChainWalker is now aware of re-projection. I've also added a crossingInsertionPoint()
50430           member function so that clients of the walker can know whether the walker is just crossing
50431           insertion points for a re-projected node.
50432         - EventDispatcher: EventDispatcher now uses the updated AncestorChainWalker and its
50433           crossingInsertionPoint() so that EventDispatcher can compute relative target for each ancestor correctly.
50434
50435         I've also updated existing layout tests and added some layout tests for re-projection.
50436         Re-projection for multiple shadow root is not supported yet. I'll address that in another bug.
50437
50438         Tests: fast/dom/shadow/composed-shadow-tree-walker.html
50439                fast/dom/shadow/shadow-dom-event-dispatching.html
50440                fast/dom/shadow/shadowdom-reprojection-1.html
50441                fast/dom/shadow/shadowdom-reprojection-2.html
50442
50443         * dom/ComposedShadowTreeWalker.cpp:
50444         (WebCore::resolveReprojection):
50445         (WebCore):
50446         (WebCore::ComposedShadowTreeWalker::traverseSiblingOrBackToInsertionPoint):
50447         (WebCore::ComposedShadowTreeWalker::traverseParent):
50448         (WebCore::AncestorChainWalker::AncestorChainWalker):
50449         (WebCore::AncestorChainWalker::parent):
50450         * dom/ComposedShadowTreeWalker.h:
50451         (AncestorChainWalker):
50452         (WebCore::AncestorChainWalker::crossingInsertionPoint):
50453         * dom/EventDispatcher.cpp:
50454         (WebCore::EventRelatedTargetAdjuster::adjust):
50455         (WebCore::EventDispatcher::ensureEventAncestors):
50456         * dom/TreeScope.cpp:
50457         (WebCore::TreeScope::focusedNode):
50458         * html/HTMLLIElement.cpp:
50459         (WebCore::HTMLLIElement::attach):
50460         * html/shadow/ContentDistributor.cpp:
50461         (WebCore::ContentDistributor::distribute):
50462         * page/EventHandler.cpp:
50463         (WebCore::EventHandler::updateMouseEventTargetNode):
50464
50465 2012-10-11  Shinya Kawanaka  <shinyak@chromium.org>
50466
50467         Make ContentSelectorQuery work when siblings are passed explicitly.
50468         https://bugs.webkit.org/show_bug.cgi?id=96990
50469
50470         Reviewed by Dimitri Glazkov.
50471
50472         When we implement content reprojection in ShadowDOM, we have to pass a node pool to SelectorChecker.
50473         We introdue ShadowDOMSiblingTraversalStrategy, which traverses a node pool instead of real node siblings.
50474
50475         Since ContentSelector is a very hot place, we don't want to regress performance. In the previous patch,
50476         we've make ContentSelector::checkOneSelector template to take SiblingTraversalStrategy as an argument.
50477
50478         We also move DOMSiblingTraversalStrategy to SiblingTraversalStrategies.h.
50479
50480         * GNUmakefile.list.am:
50481         * Target.pri:
50482         * WebCore.gypi:
50483         * WebCore.vcproj/WebCore.vcproj:
50484         * WebCore.xcodeproj/project.pbxproj:
50485         * css/SelectorChecker.cpp:
50486         (WebCore):
50487         * css/SelectorChecker.h:
50488         * css/SiblingTraversalStrategies.h: Added.
50489         (WebCore):
50490         (DOMSiblingTraversalStrategy): Moved from SelectorChecker.
50491         (WebCore::DOMSiblingTraversalStrategy::isFirstChild):
50492         (WebCore::DOMSiblingTraversalStrategy::isLastChild):
50493         (WebCore::DOMSiblingTraversalStrategy::isFirstOfType):
50494         (WebCore::DOMSiblingTraversalStrategy::isLastOfType):
50495         (WebCore::DOMSiblingTraversalStrategy::countElementsBefore):
50496         (WebCore::DOMSiblingTraversalStrategy::countElementsOfTypeBefore):
50497         (WebCore::DOMSiblingTraversalStrategy::countElementsAfter):
50498         (WebCore::DOMSiblingTraversalStrategy::countElementsOfTypeAfter):
50499         (WebCore::ShadowDOMSiblingTraversalStrategy::ShadowDOMSiblingTraversalStrategy):
50500         (ShadowDOMSiblingTraversalStrategy): SiblingTraversalStrategy which uses a node pool instead of a real element
50501         siblings. This strategy takes a vector of node which we traverse.
50502         (WebCore::ShadowDOMSiblingTraversalStrategy::isFirstChild):
50503         (WebCore::ShadowDOMSiblingTraversalStrategy::isLastChild):
50504         (WebCore::ShadowDOMSiblingTraversalStrategy::isFirstOfType):
50505         (WebCore::ShadowDOMSiblingTraversalStrategy::isLastOfType):
50506         (WebCore::ShadowDOMSiblingTraversalStrategy::countElementsBefore):
50507         (WebCore::ShadowDOMSiblingTraversalStrategy::countElementsAfter):
50508         (WebCore::ShadowDOMSiblingTraversalStrategy::countElementsOfTypeBefore):
50509         (WebCore::ShadowDOMSiblingTraversalStrategy::countElementsOfTypeAfter):
50510         * css/StyleResolver.cpp:
50511         * html/shadow/ContentDistributor.cpp:
50512         (WebCore::ContentDistributor::distributeSelectionsTo):
50513         * html/shadow/ContentSelectorQuery.cpp: Uses ShadowDOMSiblingTraversalStrategy instead of DOMSiblingTraversalStrategy.
50514         (WebCore::ContentSelectorChecker::ContentSelectorChecker):
50515         (WebCore):
50516         (WebCore::ContentSelectorChecker::checkContentSelector):
50517         (WebCore::ContentSelectorDataList::initialize):
50518         (WebCore::ContentSelectorDataList::matches):
50519         (WebCore::ContentSelectorQuery::ContentSelectorQuery):
50520         (WebCore::ContentSelectorQuery::matches):
50521         * html/shadow/ContentSelectorQuery.h:
50522         (ContentSelectorChecker):
50523         (WebCore):
50524         (ContentSelectorDataList):
50525         (ContentSelectorQuery):
50526
50527 2012-10-11  Balazs Kelemen  <kbalazs@webkit.org>
50528
50529         [Qt] GraphicsContextPlatformPrivate is leaking it's ShadowBlur
50530         https://bugs.webkit.org/show_bug.cgi?id=99073
50531
50532         Reviewed by Noam Rosenthal.
50533
50534         Stop leaking GraphicsContextPlatformPrivate::shadow.
50535
50536         No change in behavior so no new tests.
50537
50538         * platform/graphics/qt/GraphicsContextQt.cpp:
50539         (WebCore::GraphicsContextPlatformPrivate::~GraphicsContextPlatformPrivate):
50540         Always destroy shadow. It is obviously owned by the context so it has
50541         nothing to do with the erly return.
50542
50543 2012-10-11  Joshua Bell  <jsbell@chromium.org>
50544
50545         WebIDL: overloaded methods prevent number -> string conversion
50546         https://bugs.webkit.org/show_bug.cgi?id=85326
50547
50548         Reviewed by Kentaro Hara.
50549
50550         Make the default behavior for overloaded methods matching DOMString arguments match the
50551         default behavior for non-overloaded methods, which more closely matches the WebIDL spec.
50552         Enable legacy behavior of only matching undefined/null/string/object(and not number,
50553         boolean, etc) via the StrictTypeChecking attribute.
50554
50555         Tests: storage/indexeddb/cursor-overloads.html
50556                storage/indexeddb/legacy-constants.html
50557                ... and run-bindings-tests
50558
50559         * Modules/indexeddb/IDBCursor.cpp:
50560         (WebCore::IDBCursor::stringToDirection): Handle "0"..."4" as stringified legacy constants.
50561         * Modules/indexeddb/IDBCursor.h:
50562         * Modules/indexeddb/IDBDatabase.cpp: Remove redundant overloads.
50563         (WebCore::IDBDatabase::transaction): Remove redundant overloads.
50564         * Modules/indexeddb/IDBDatabase.h:
50565         (IDBDatabase):
50566         * Modules/indexeddb/IDBDatabase.idl: Remove redundant overloads.
50567         * Modules/indexeddb/IDBIndex.cpp: Remove redundant overloads.
50568         (WebCore::IDBIndex::openCursor):
50569         (WebCore::IDBIndex::openKeyCursor):
50570         * Modules/indexeddb/IDBIndex.h: Remove redundant overloads.
50571         (IDBIndex):
50572         * Modules/indexeddb/IDBIndex.idl: Remove redundant overloads.
50573         * Modules/indexeddb/IDBObjectStore.cpp: Remove redundant overloads.
50574         (WebCore::IDBObjectStore::openCursor):
50575         * Modules/indexeddb/IDBObjectStore.h: Remove redundant overloads.
50576         (IDBObjectStore):
50577         * Modules/indexeddb/IDBObjectStore.idl: Remove redundant overloads.
50578         * Modules/indexeddb/IDBTransaction.cpp:
50579         (WebCore::IDBTransaction::stringToMode): Handle "0"..."4" as stringified legacy constants.
50580         * Modules/indexeddb/IDBTransaction.h:
50581         * bindings/scripts/CodeGeneratorJS.pm: Check for StrictTypeChecking attribute.
50582         (GenerateParametersCheckExpression):
50583         * bindings/scripts/CodeGeneratorV8.pm: Ditto.
50584         (GenerateParametersCheckExpression):
50585         * bindings/scripts/test/JS/JSTestObj.cpp: Rebaselined.
50586         (WebCore::jsTestObjPrototypeFunctionOverloadedMethod11):
50587         (WebCore):
50588         (WebCore::jsTestObjPrototypeFunctionOverloadedMethod):
50589         * bindings/scripts/test/TestObj.idl: Added [StrictTypeChecking] to DOMString overloads,
50590         plus a new DOMString overload w/o it.
50591         * bindings/scripts/test/V8/V8TestObj.cpp: Rebaselined.
50592         (WebCore::TestObjV8Internal::overloadedMethod11Callback):
50593         (TestObjV8Internal):
50594         (WebCore::TestObjV8Internal::overloadedMethodCallback):
50595         * html/canvas/CanvasRenderingContext2D.idl: Tag legacy overloads with [StrictTypeChecking].
50596         * xml/XMLHttpRequest.idl: Ditto.
50597
50598 2012-10-11  Justin Novosad  <junov@chromium.org>
50599
50600         [Chromium][Mac] r130994 seems to break chromium gpu test
50601         https://bugs.webkit.org/show_bug.cgi?id=98995
50602
50603         Reviewed by Stephen White.
50604
50605         Removing unnecessary assertion that was based on an invalid assumption
50606         that 2d canvas draw operations were always called from within WebThread
50607         tasks.
50608
50609         Test: Canvas2DAllowed chromium gpu_test
50610
50611         * platform/graphics/chromium/Canvas2DLayerManager.cpp:
50612         (WebCore::Canvas2DLayerManager::willProcessTask):
50613
50614 2012-10-11  Kenichi Ishibashi <bashi@chromium.org>
50615
50616         REGRESSION(130231): Causes 3 complex font test failures on EFL / Harfbuzz+Freetype
50617         https://bugs.webkit.org/show_bug.cgi?id=98247
50618
50619         Reviewed by Kenneth Rohde Christiansen.
50620
50621         Implement canRenderCombiningCharacterSequence() for the Freetype case.
50622
50623         No new tests, covered by existing tests. Actually the lack of the implementation made
50624         fast/text/atsui-multiple-renderers.html,  fast/text/atsui-spacing-features.html and
50625         fast/text/wide-zero-width-space.html fail on EFL.
50626
50627         * platform/graphics/freetype/SimpleFontDataFreeType.cpp: Implement canRenderCombiningCharacterSequence().
50628         (WebCore::SimpleFontData::canRenderCombiningCharacterSequence):
50629
50630 2012-10-11  Keishi Hattori  <keishi@webkit.org>
50631
50632         F4 key should open the picker popup on Windows and Linux
50633         https://bugs.webkit.org/show_bug.cgi?id=98754
50634
50635         Reviewed by Kent Tamura.
50636
50637         On Windows, F4 key is used to open the combo box popup. We will introduce the same keybinding for picker popups.
50638
50639         Added test to calendar-picker-key-operations.html, date-suggestion-picker-key-operations.html, time-suggestion-picker-key-operations.html.
50640
50641         * html/BaseMultipleFieldsDateAndTimeInputType.cpp:
50642         (WebCore::BaseMultipleFieldsDateAndTimeInputType::handleKeydownEvent): Open picker on F4 key if it is enabled.
50643         * rendering/RenderTheme.cpp:
50644         (WebCore::RenderTheme::shouldOpenPickerWithF4Key): Returns true if we want to enable the F4 key binding on this platform. Return false for default.
50645         (WebCore):
50646         * rendering/RenderTheme.h:
50647         (RenderTheme):
50648         * rendering/RenderThemeChromiumLinux.cpp:
50649         (WebCore::RenderThemeChromiumLinux::shouldOpenPickerWithF4Key): Returns true.
50650         (WebCore):
50651         * rendering/RenderThemeChromiumLinux.h:
50652         * rendering/RenderThemeChromiumWin.cpp:
50653         (WebCore):
50654         (WebCore::RenderThemeChromiumWin::shouldOpenPickerWithF4Key): Returns true.
50655         * rendering/RenderThemeChromiumWin.h:
50656         (RenderThemeChromiumWin):
50657
50658 2012-10-11  John J. Barton  <johnjbarton@chromium.org>
50659
50660         Web Inspector: Zebra stripe the console
50661         https://bugs.webkit.org/show_bug.cgi?id=98701
50662
50663         Reviewed by Pavel Feldman.
50664
50665         Add .console-message:hover rule to lightly highlight the message line.
50666
50667         * inspector/front-end/inspector.css:
50668         (.console-message:hover):
50669
50670 2012-10-11  Vsevolod Vlasov  <vsevik@chromium.org>
50671
50672         Web Inspector: Filter out embedder injected content scripts
50673         https://bugs.webkit.org/show_bug.cgi?id=99039
50674
50675         Reviewed by Yury Semikhatsky.
50676
50677         * inspector/front-end/NetworkUISourceCodeProvider.js:
50678         (WebInspector.NetworkUISourceCodeProvider.prototype._parsedScriptSource):
50679
50680 2012-10-11  Pavel Feldman  <pfeldman@chromium.org>
50681
50682         Not reviewed: revert 131004, 131012, 131016, 131042, 131043 for breaking inspector console
50683         https://bugs.webkit.org/show_bug.cgi?id=99042
50684
50685         One can't type in the inspector console after 131004.
50686
50687         * CMakeLists.txt:
50688         * GNUmakefile.list.am:
50689         * Target.pri:
50690         * WebCore.gypi:
50691         * WebCore.vcproj/WebCore.vcproj:
50692         * WebCore.xcodeproj/project.pbxproj:
50693         * dom/DOMAllInOne.cpp:
50694         * dom/Element.cpp:
50695         (WebCore::Element::attach):
50696         (WebCore::Element::detach):
50697         (WebCore::Element::recalcStyle):
50698         * dom/Element.h:
50699         (WebCore):
50700         (Element):
50701         * dom/ElementRareData.h:
50702         (ElementRareData):
50703         * dom/Node.cpp:
50704         (WebCore::checkAcceptChild):
50705         * dom/Node.h:
50706         (Node):
50707         * dom/NodeRenderingContext.cpp:
50708         (WebCore::NodeRenderingContext::nextRenderer):
50709         * dom/PseudoElement.cpp: Removed.
50710         * dom/PseudoElement.h: Removed.
50711         * rendering/HitTestResult.cpp:
50712         (WebCore::HitTestResult::setInnerNode):
50713         (WebCore::HitTestResult::setInnerNonSharedNode):
50714         * rendering/RenderBlock.cpp:
50715         (WebCore::RenderBlock::styleDidChange):
50716         (WebCore::RenderBlock::updateBeforeAfterContent):
50717         (WebCore):
50718         (WebCore::RenderBlock::splitBlocks):
50719         (WebCore::RenderBlock::addChildIgnoringAnonymousColumnBlocks):
50720         (WebCore::RenderBlock::createReplacementRunIn):
50721         (WebCore::RenderBlock::renderName):
50722         * rendering/RenderBlock.h:
50723         (RenderBlock):
50724         * rendering/RenderButton.cpp:
50725         (WebCore::RenderButton::updateBeforeAfterContent):
50726         (WebCore):
50727         * rendering/RenderButton.h:
50728         (RenderButton):
50729         * rendering/RenderCounter.cpp:
50730         (WebCore::RenderCounter::originalText):
50731         * rendering/RenderDeprecatedFlexibleBox.cpp:
50732         (WebCore::RenderDeprecatedFlexibleBox::renderName):
50733         * rendering/RenderGrid.cpp:
50734         (WebCore::RenderGrid::renderName):
50735         * rendering/RenderInline.cpp:
50736         (WebCore::RenderInline::styleDidChange):
50737         (WebCore::RenderInline::addChildIgnoringContinuation):
50738         (WebCore::RenderInline::splitInlines):
50739         (WebCore::RenderInline::renderName):
50740         * rendering/RenderListItem.cpp:
50741         (WebCore::RenderListItem::updateMarkerLocation):
50742         * rendering/RenderMultiColumnBlock.cpp:
50743         (WebCore::RenderMultiColumnBlock::renderName):
50744         * rendering/RenderObject.cpp:
50745         (WebCore::RenderObject::createObject):
50746         * rendering/RenderObject.h:
50747         (WebCore::RenderObject::generatingNode):
50748         * rendering/RenderObjectChildList.cpp:
50749         (WebCore):
50750         (WebCore::findBeforeAfterParent):
50751         (WebCore::RenderObjectChildList::updateBeforeAfterStyle):
50752         (WebCore::createRendererForBeforeAfterContent):
50753         (WebCore::ensureBeforeAfterContainer):
50754         (WebCore::RenderObjectChildList::updateBeforeAfterContent):
50755         * rendering/RenderObjectChildList.h:
50756         (RenderObjectChildList):
50757         * rendering/RenderRubyText.cpp:
50758         (WebCore::RenderRubyText::updateBeforeAfterContent):
50759         (WebCore):
50760         * rendering/RenderRubyText.h:
50761         (RenderRubyText):
50762         * rendering/RenderTableCell.h:
50763         (WebCore::RenderTableCell::renderName):
50764         * rendering/RenderTableRow.cpp:
50765         (WebCore::RenderTableRow::updateBeforeAndAfterContent):
50766         (WebCore):
50767         (WebCore::RenderTableRow::styleDidChange):
50768         * rendering/RenderTableRow.h:
50769         (RenderTableRow):
50770         (WebCore::RenderTableRow::renderName):
50771         * rendering/RenderTableSection.cpp:
50772         (WebCore::RenderTableSection::addChild):
50773         * rendering/RenderTableSection.h:
50774         (WebCore::RenderTableSection::renderName):
50775         * rendering/RenderTreeAsText.cpp:
50776         (WebCore::RenderTreeAsText::writeRenderObject):
50777
50778 2012-10-11  Arpita Bahuguna  <arpitabahuguna@gmail.com>
50779
50780         REGRESSION (r96393): In some cases, generated content is never shown
50781         https://bugs.webkit.org/show_bug.cgi?id=88196
50782
50783         Reviewed by Antti Koivisto.
50784
50785         Elements with style specified from an attribute selector in conjunction
50786         with a pseudo-element should not take on the shared style of their
50787         previous matching sibling (if any).
50788
50789         The problem here is that an attribute selector appended by a pseudo-element
50790         does not return any matched rules for the call (matchesRuleSet(m_uncommonAttributeRuleSet.get()))
50791         in StyleResolver::locateSharedStyle().
50792
50793         This is because of the way pseudo-elements are handled in
50794         SelectorChecker::checkSelector(). For a pseudo-element selector we check
50795         for the condition (!context.elementStyle && m_mode == ResolvingStyle) and
50796         since for this particular flow the SelectorChecker mode is set to ResolvingStyle
50797         and since the current element's style is still not available we fail this
50798         initial check and return SelectorFailsLocally from checkSelector(). This is
50799         incorrect behavior since the element does have an attribute selector specified
50800         for it.
50801
50802         Have thus introduced another enum value: SharingRules for SelectorChecker's Mode.
50803         SelectorChecker's mode should be set to SharingRules before making the
50804         call to collectMatchingRules() and then reset (back to ResolvingStyle) thereafter.
50805
50806         Existing Mode value: CollectingRules although appropriate cannot be used in this
50807         scenario because we also don't want to set any value to dynamicPseudo for this flow.
50808
50809         Test: fast/selectors/style-sharing-attribute-selector-with-pseudo-element.html
50810
50811         * css/SelectorChecker.cpp:
50812         (WebCore::SelectorChecker::checkSelector):
50813         Added additional check for SelectorChecker's mode: SharingRules when
50814         trying to match for the pseudo-element selector.
50815
50816         * css/SelectorChecker.h:
50817         Added SharingRules to Mode enum.
50818
50819         * css/StyleResolver.cpp:
50820         (WebCore::StyleResolver::styleSharingCandidateMatchesRuleSet):
50821         (WebCore::StyleResolver::locateSharedStyle):
50822         * css/StyleResolver.h:
50823         (StyleResolver):
50824         Renamed matchesRuleSet() to a more descriptive styleSharingCandidateMatchesRuleSet().
50825         Also, setting the SelectorChecker's mode to SharingRules before calling
50826         on collectMatchingRules() from styleSharingCandidateMatchesRuleSet().
50827
50828 2012-10-11  Shinya Kawanaka  <shinyak@chromium.org>
50829
50830         Some shadow roots are not showing up in Inspector.
50831         https://bugs.webkit.org/show_bug.cgi?id=88251
50832
50833         Reviewed by Pavel Feldman.
50834
50835         When an element has only text node, its shadow root is not showing up in Inspector, since
50836         child text is shown in oneline. We had to prevent from inlining child text when a shadow root is
50837         added.
50838
50839         Test: inspector/elements/shadow-root.html
50840
50841         * inspector/front-end/DOMAgent.js:
50842         (WebInspector.DOMNode):
50843         (WebInspector.DOMNode.prototype.hasShadowRoots):
50844         * inspector/front-end/ElementsTreeOutline.js:
50845
50846 2012-10-11  Allan Sandfeld Jensen  <allan.jensen@digia.com>
50847
50848         [Qt] More responsive scroll animations
50849         https://bugs.webkit.org/show_bug.cgi?id=99016
50850
50851         Reviewed by Jocelyn Turcotte.
50852
50853         Changes the scrolling animations so they accelerate faster than they deccelerate,
50854         making the animation respond faster to user input.
50855
50856         * platform/ScrollAnimatorNone.cpp:
50857         (WebCore::ScrollAnimatorNone::parametersForScrollGranularity):
50858         * platform/ScrollAnimatorNone.h:
50859         (ScrollAnimatorNone):
50860
50861 2012-10-11  Alexander Shalamov  <alexander.shalamov@intel.com>
50862
50863         [CSS3 Media Queries] Aspect ratio value re-parsed when media query expression is evaluated
50864         https://bugs.webkit.org/show_bug.cgi?id=99003
50865
50866         Reviewed by Kenneth Rohde Christiansen.
50867
50868         Use CSSAspectRatioValue instead of CSSValueList to store aspect ratio value
50869         in order to avoid re-parsing of aspect ratio data during media expression evaluation.
50870
50871         test: fast/media/w3c/test_media_queries.html
50872
50873         * css/MediaQueryEvaluator.cpp:
50874         (WebCore::compareAspectRatioValue):
50875         (WebCore):
50876         (WebCore::aspect_ratioMediaFeatureEval):
50877         (WebCore::device_aspect_ratioMediaFeatureEval):
50878         * css/MediaQueryExp.cpp:
50879         (WebCore::MediaQueryExp::MediaQueryExp):
50880
50881 2012-10-11  Zeno Albisser  <zeno@webkit.org>
50882
50883         [Qt] Implement GraphicsSurfaceToken to replace uint64_t as token type.
50884         https://bugs.webkit.org/show_bug.cgi?id=98501
50885
50886         Replace the token type for GraphicsSurface with a new class GraphicsSurfaceToken.
50887         This is necessary in order to implement GraphicsSurface for Windows.
50888         Depending on the platform a GraphicsSurfaceToken might contain a
50889         WindowID (Linux/GLX), two IOSurfaceIDs (Mac) or in the future two HANDLEs (Windows).
50890         The simple uint64_t is not sufficient anymore, since a single HANDLE in windows
50891         can be 64bit already.
50892
50893         Reviewed by Noam Rosenthal.
50894
50895         * Target.pri:
50896         * platform/graphics/qt/GraphicsContext3DQt.cpp:
50897         (GraphicsContext3DPrivate):
50898         (WebCore::GraphicsContext3DPrivate::graphicsSurfaceToken):
50899         * platform/graphics/surfaces/GraphicsSurface.cpp:
50900         (WebCore::GraphicsSurface::create):
50901         (WebCore::GraphicsSurface::exportToken):
50902         * platform/graphics/surfaces/GraphicsSurface.h:
50903         (GraphicsSurface):
50904         * platform/graphics/surfaces/GraphicsSurfaceToken.h: Added.
50905         (WebCore):
50906         (GraphicsSurfaceToken):
50907         (WebCore::GraphicsSurfaceToken::GraphicsSurfaceToken):
50908         (WebCore::GraphicsSurfaceToken::operator!=):
50909         (WebCore::GraphicsSurfaceToken::isValid):
50910         * platform/graphics/surfaces/mac/GraphicsSurfaceMac.cpp:
50911         (WebCore::GraphicsSurfacePrivate::GraphicsSurfacePrivate):
50912         (WebCore::GraphicsSurfacePrivate::token):
50913         (GraphicsSurfacePrivate):
50914         (WebCore::GraphicsSurface::platformExport):
50915         (WebCore::GraphicsSurface::platformImport):
50916         * platform/graphics/surfaces/qt/GraphicsSurfaceGLX.cpp:
50917         (WebCore::GraphicsSurface::platformExport):
50918         (WebCore::GraphicsSurface::platformImport):
50919         * platform/graphics/texmap/TextureMapperBackingStore.cpp:
50920         (WebCore::TextureMapperSurfaceBackingStore::setGraphicsSurface):
50921         (WebCore::TextureMapperSurfaceBackingStore::setSurface):
50922         * platform/graphics/texmap/TextureMapperBackingStore.h:
50923         (TextureMapperSurfaceBackingStore):
50924         (WebCore::TextureMapperSurfaceBackingStore::TextureMapperSurfaceBackingStore):
50925         * platform/graphics/texmap/TextureMapperPlatformLayer.h:
50926         (WebCore::TextureMapperPlatformLayer::graphicsSurfaceToken):
50927
50928 2012-10-11  Alexander Pavlov  <apavlov@chromium.org>
50929
50930         Web Inspector: [Elements] Breadcrumbs are not updated upon involved elements' className changes
50931         https://bugs.webkit.org/show_bug.cgi?id=98887
50932
50933         Reviewed by Vsevolod Vlasov.
50934
50935         Breadcrumbs should be updated upon the "class" and "id" attribute changes of elements participating in the breadcrumb path.
50936
50937         Test: inspector/elements/breadcrumb-updates.html
50938
50939         * inspector/front-end/ElementsPanel.js:
50940         (WebInspector.ElementsPanel):
50941         (WebInspector.ElementsPanel.prototype._updateBreadcrumbIfNeeded):
50942
50943 2012-10-11  Kunihiko Sakamoto  <ksakamoto@chromium.org>
50944
50945         Final newline (LF or CRLF) in paste buffer is converted to space
50946         https://bugs.webkit.org/show_bug.cgi?id=80838
50947
50948         Reviewed by Ryosuke Niwa.
50949
50950         Currently newline characters are replaced with spaces when pasted
50951         to text input. This behavior was introduced in r37539, with the
50952         intention to follow the FireFox's behavior (see
50953         https://bugs.webkit.org/show_bug.cgi?id=20461). However, FireFox
50954         truncates newlines at the end of pasted text, instead of replacing
50955         them with spaces. So this patch changes TextFieldInputType to cut
50956         trailing newlines of inserted text.
50957
50958         Test: fast/forms/paste-multiline-text-input.html
50959
50960         * html/TextFieldInputType.cpp:
50961         (WebCore::TextFieldInputType::handleBeforeTextInsertedEvent):
50962         Truncates trailing newlines.
50963
50964 2012-10-11  Kent Tamura  <tkent@chromium.org>
50965
50966         Introduce Localizer::isRTL, and use it in DateTimeChooserImpl
50967         https://bugs.webkit.org/show_bug.cgi?id=98992
50968
50969         * platform/text/LocaleICU.cpp:
50970         (WebCore::LocaleICU::isRTL): Need to initialize 'status'.
50971
50972 2012-10-11  Eugene Klyuchnikov  <eustas.bug@gmail.com>
50973
50974         Web Inspector: The 'X' of the close button of Settings view is not centered
50975         https://bugs.webkit.org/show_bug.cgi?id=99008
50976
50977         Reviewed by Alexander Pavlov.
50978
50979         Fixed text positioning in CSS.
50980
50981         * inspector/front-end/helpScreen.css:
50982         (.help-close-button):
50983
50984 2012-10-11  Kent Tamura  <tkent@chromium.org>
50985
50986         Introduce Localizer::isRTL, and use it in DateTimeChooserImpl
50987         https://bugs.webkit.org/show_bug.cgi?id=98992
50988
50989         Reviewed by Kentaro Hara.
50990
50991         - Move the RTL detection code in
50992           WebKit/chromium/src/DateTimeChooserImpl.cpp to LocaleWin::isRTL()
50993         - Introduce Localizer::isRTL as a pure virtual function
50994         - Implement LocaleMac::isRTL with native API
50995         - Implement LocaleICU::isRTL with ICU API
50996         - Add dummy implementation: LocaleNone::isRTL
50997
50998         Add some tests to WebKit/chromium/tests/.
50999
51000         * platform/text/Localizer.h:
51001         (Localizer): Declare pure virtual isRTL.
51002
51003         * platform/text/LocaleICU.h:
51004         (LocaleICU): Declare isRTL.
51005         * platform/text/LocaleICU.cpp:
51006         (WebCore::LocaleICU::isRTL): Implemented with uloc_getCharacterOrientation.
51007
51008         * platform/text/LocaleNone.cpp:
51009         (LocaleNone): Declare isRTL.
51010         (WebCore::LocaleNone::isRTL): Added.
51011
51012         * platform/text/LocaleWin.h:
51013         (LocaleWin): Declare isRTL.
51014         * platform/text/LocaleWin.cpp:
51015         (WebCore::LocaleWin::isRTL): Implemented.
51016
51017         * platform/text/mac/LocaleMac.h:
51018         (LocaleMac): Declare isRTL.
51019         * platform/text/mac/LocaleMac.mm:
51020         (WebCore::LocaleMac::isRTL): Implemented.
51021
51022 2012-10-11  Vsevolod Vlasov  <vsevik@chromium.org>
51023
51024         Web Inspector: TypeError in ConsoleMessage.js
51025         https://bugs.webkit.org/show_bug.cgi?id=98999
51026
51027         Reviewed by Alexander Pavlov.
51028
51029         This patch is based on patch by John J. Barton.
51030         Added a check that stack length is equal.
51031
51032         * inspector/front-end/ConsoleMessage.js:
51033         (WebInspector.ConsoleMessageImpl.prototype.isEqual):
51034
51035 2012-10-10  Jer Noble  <jer.noble@apple.com>
51036
51037         Disallow full screen mode keyboard access by default.
51038         https://bugs.webkit.org/show_bug.cgi?id=98971
51039         <rdar://problem/12474226>
51040
51041         Reviewed by Sam Weinig.
51042
51043         Fall back to requesting non-keyboard access if the client refuses to allow keyboard access.
51044
51045         * dom/Document.cpp:
51046         (WebCore::Document::requestFullScreenForElement):
51047
51048 2012-10-10  Ilya Tikhonovsky  <loislo@chromium.org>
51049
51050         Web Inspector: NMI instrument HTMLCanvas element.
51051         https://bugs.webkit.org/show_bug.cgi?id=98917
51052
51053         Reviewed by Yury Semikhatsky.
51054
51055         It also includes non intrusive instrumentation for skia classes.
51056
51057         Test: inspector/profiler/memory-instrumentation-canvas.html
51058
51059         * WebCore.gypi:
51060         * html/HTMLCanvasElement.cpp:
51061         (WebCore::HTMLCanvasElement::reportMemoryUsage):
51062         (WebCore):
51063         * html/HTMLCanvasElement.h:
51064         (HTMLCanvasElement):
51065         * platform/graphics/ImageBuffer.cpp:
51066         (WebCore::ImageBuffer::reportMemoryUsage):
51067         (WebCore):
51068         * platform/graphics/ImageBuffer.h:
51069         (ImageBuffer):
51070         * platform/graphics/chromium/ImageBufferDataSkia.h:
51071         (ImageBufferData):
51072         * platform/graphics/skia/ImageBufferSkia.cpp:
51073         (WebCore::ImageBufferData::reportMemoryUsage):
51074         (WebCore):
51075         * platform/graphics/skia/MemoryInstrumentationSkia.cpp: Copied from Source/WebCore/platform/graphics/chromium/ImageBufferDataSkia.h.
51076         (reportMemoryUsage):
51077         * platform/graphics/skia/MemoryInstrumentationSkia.h: Copied from Source/WebCore/platform/graphics/chromium/ImageBufferDataSkia.h.
51078         * platform/graphics/skia/NativeImageSkia.cpp:
51079
51080 2012-10-10  Mike West  <mkwst@google.com>
51081
51082         Document calls createElement with the wrong parameters.
51083         https://bugs.webkit.org/show_bug.cgi?id=98907
51084
51085         Reviewed by Kent Tamura.
51086
51087         Document::importNode calls Document::createElement with a QualifiedName
51088         and ExceptionCode. The Document::createElement that takes a
51089         QualifiedName doesn't generate an exception; the second argument is a
51090         bool, which the ExceptionCode autocasts into.
51091
51092         Changing the argument to an explicit bool shouldn't have any visible
51093         effect; no new tests are required.
51094
51095         * dom/Document.cpp:
51096         (WebCore::Document::importNode):
51097
51098 2012-10-10  Lianghui Chen  <liachen@rim.com>
51099
51100         [BlackBerry] Fix assertion in NetworkJob::notifyChallengeResult.
51101         https://bugs.webkit.org/show_bug.cgi?id=97397
51102         Internal PR: 186597.
51103
51104         Internally reviewed by Yong Li, Joe Mason.
51105         Reviewed by George Staikos.
51106
51107         Add a singleton AuthenticationChallengeManager to manage authentication
51108         challenge dialog. It does following things:
51109         Record page creation/deletion, so it knows what page is present or not.
51110         Record page visibility change so it knows when to display a dialog or not.
51111         Accept authentication challenge, and decide whether to postpone the
51112             challenge dialog based on whether there is active authentication challenge
51113             dialog already and whether its page is visible or not.
51114         When a challenge result comes back, notify the result to all clients
51115             authenticating for the same protection space, and then start the next
51116             authentication challenge from the same page, if there is one.
51117         When a page becomes visible, start the first authentication challenge
51118             dialog that has been blocked before.
51119         When an authentication challenge is requested, the NetworkJob will be
51120             deferred so its initial response will be saved while waiting for
51121             user decision on the challenge.
51122
51123         No new tests for platform specific internal change.
51124
51125         * PlatformBlackBerry.cmake:
51126         * platform/blackberry/AuthenticationChallengeManager.cpp: Added.
51127         (WebCore):
51128         (ChallengeInfo):
51129         (WebCore::ChallengeInfo::ChallengeInfo):
51130         (AuthenticationChallengeManagerPrivate):
51131         (WebCore::AuthenticationChallengeManagerPrivate::AuthenticationChallengeManagerPrivate):
51132         (WebCore::AuthenticationChallengeManagerPrivate::resumeAuthenticationChallenge):
51133         (WebCore::AuthenticationChallengeManagerPrivate::startAuthenticationChallenge):
51134         (WebCore::AuthenticationChallengeManagerPrivate::pageExists):
51135         (WebCore::AuthenticationChallengeManager::AuthenticationChallengeManager):
51136         (WebCore::AuthenticationChallengeManager::pageCreated):
51137         (WebCore::AuthenticationChallengeManager::pageDeleted):
51138         (WebCore::AuthenticationChallengeManager::pageVisibilityChanged):
51139         (WebCore::AuthenticationChallengeManager::authenticationChallenge):
51140         (WebCore::AuthenticationChallengeManager::cancelAuthenticationChallenge):
51141         (WebCore::AuthenticationChallengeManager::notifyChallengeResult):
51142         (WebCore::AuthenticationChallengeManager::instance):
51143         (WebCore::AuthenticationChallengeManager::init):
51144         * platform/blackberry/AuthenticationChallengeManager.h:
51145         (WebCore):
51146         (AuthenticationChallengeManager):
51147         * platform/blackberry/PageClientBlackBerry.h:
51148         * platform/graphics/blackberry/MediaPlayerPrivateBlackBerry.cpp:
51149         (WebCore::MediaPlayerPrivate::MediaPlayerPrivate):
51150         (WebCore::MediaPlayerPrivate::~MediaPlayerPrivate):
51151         (WebCore::MediaPlayerPrivate::onAuthenticationNeeded):
51152         (WebCore::MediaPlayerPrivate::notifyChallengeResult):
51153         * platform/graphics/blackberry/MediaPlayerPrivateBlackBerry.h:
51154         (MediaPlayerPrivate):
51155         * platform/network/blackberry/NetworkJob.cpp:
51156         (WebCore::NetworkJob::NetworkJob):
51157         (WebCore::NetworkJob::~NetworkJob):
51158         (WebCore):
51159         (WebCore::NetworkJob::handleNotifyStatusReceived):
51160         (WebCore::NetworkJob::handleNotifyClose):
51161         (WebCore::NetworkJob::shouldReleaseClientResource):
51162         (WebCore::NetworkJob::sendRequestWithCredentials):
51163         (WebCore::NetworkJob::notifyChallengeResult):
51164         * platform/network/blackberry/NetworkJob.h:
51165         (NetworkJob):
51166
51167 2012-10-10  Simon Fraser  <simon.fraser@apple.com>
51168
51169         compositing/tiling/crash-reparent-tiled-layer.html is flakey
51170         https://bugs.webkit.org/show_bug.cgi?id=82546
51171
51172         Reviewed by Beth Dakin.
51173
51174         When calling layerTreeAsText() inside the document load event,
51175         GraphicsLayerCA may have not flushed layers yet, so layer tree
51176         properties that are affected by flushing (tiled layer, visible
51177         rects) appeared flakey in tests.
51178         
51179         Fix by forcing a flush before dumping the layer tree.        
51180         
51181         * rendering/RenderLayerCompositor.cpp:
51182         (WebCore::RenderLayerCompositor::layerTreeAsText):
51183
51184 2012-10-10  Beth Dakin  <bdakin@apple.com>
51185
51186         https://bugs.webkit.org/show_bug.cgi?id=98984
51187         REGRESSION: Crash happens after we add non-top-level frame to the 
51188         ScrollingStateTree
51189
51190         Reviewed by Simon Fraser.
51191
51192         isRootLayer() can return true for layers that do not correspond to 
51193         the main frame. But we only want the ones that DO correspond to the 
51194         main frame!
51195         * rendering/RenderLayerCompositor.cpp:
51196         (WebCore::RenderLayerCompositor::updateBacking):
51197
51198 2012-10-10  Dan Bernstein  <mitz@apple.com>
51199
51200         <rdar://problem/12472460> text-combine doesn’t use third- and quarter-width variants when used with @font-face
51201         https://bugs.webkit.org/show_bug.cgi?id=98961
51202
51203         Reviewed by Tim Horton.
51204
51205         Test: fast/text/text-combine-with-font-face.html
51206
51207         * css/CSSSegmentedFontFace.cpp:
51208         (WebCore::CSSSegmentedFontFace::getFontData): Added the width variant to the
51209         key used for entries in the font data table, so that we can return different
51210         font data for different width variants.
51211         * platform/graphics/FontWidthVariant.h: Defined FontWidthVariantWidth for
51212         use in the computation of the above key.
51213         * rendering/RenderCombineText.cpp:
51214         (WebCore::RenderCombineText::combineText): Added a local variable to store
51215         the font selector before changing the font description. Previously, by the time
51216         we tried to get the font selector from the font, it had already been cleared,
51217         so we called Font::update() with a 0 font selector, meaning @font-face fonts
51218         could not be selected.
51219
51220 2012-10-10  Elliott Sprehn  <esprehn@chromium.org>
51221
51222         Move :before and :after into the DOM        
51223         https://bugs.webkit.org/show_bug.cgi?id=95117
51224
51225         Reviewed by Eric Seidel.
51226
51227         Reimplement generated content :before and :after as DOM Elements. Now ElementRareData has
51228         two RefPtrs to PseudoElements for the generated content and Node has methods for traversing
51229         the tree including generated content.
51230
51231         This allows the generated content to be treated as real nodes instead of anonymous and take
51232         part in the usual recalcStyle and attach flow which fixes many bugs and vastly simplifies the
51233         lifecycle of generated content.
51234
51235         No new tests needed for now.
51236
51237         * CMakeLists.txt:
51238         * GNUmakefile.list.am:
51239         * Target.pri:
51240         * WebCore.gypi:
51241         * WebCore.vcproj/WebCore.vcproj:
51242         * WebCore.xcodeproj/project.pbxproj:
51243         * dom/DOMAllInOne.cpp:
51244         * dom/Element.cpp:
51245         (WebCore::Element::attach): Add generated content if needed.
51246         (WebCore::Element::detach): Remove all child generated content.
51247         (WebCore::Element::recalcStyle): Add or remove generated content based on the new style.
51248         (WebCore::Element::updatePseudoElement): Updates pseudo content based on a pseudoId.
51249         (WebCore):
51250         (WebCore::Element::createPseudoElementIfNeeded):
51251         (WebCore::Element::beforePseudoElement):
51252         (WebCore::Element::afterPseudoElement):
51253         * dom/Element.h:
51254         (WebCore):
51255         (Element):
51256         * dom/ElementRareData.h:
51257         (ElementRareData):
51258         (WebCore::ElementRareData::setPseudoElement):
51259         (WebCore):
51260         (WebCore::ElementRareData::pseudoElement):
51261         * dom/Node.cpp:
51262         (WebCore::Node::pseudoAwarePreviousSibling):
51263         (WebCore):
51264         (WebCore::Node::pseudoAwareNextSibling):
51265         (WebCore::checkAcceptChild): Forbid moving PseudoElements for sanity. The code never does this.
51266         * dom/Node.h:
51267         (Node):
51268         (WebCore::Node::isPseudoElement):
51269         (WebCore::Node::pseudoId): Fast path that only calls virtualPseudoId if the node has custom callbacks so isPseudoElement is fast.
51270         (WebCore::Node::virtualPseudoId):
51271         (WebCore::Node::isBeforePseudoElement):
51272         (WebCore::Node::isAfterPseudoElement):
51273         * dom/NodeRenderingContext.cpp:
51274         (WebCore::NodeRenderingContext::nextRenderer): Changed to find the next sibling of pseudos for insertion.
51275         * dom/PseudoElement.cpp: Added.
51276         (WebCore):
51277         (WebCore::pseudoElementName):
51278         (WebCore::PseudoElement::PseudoElement):
51279         (WebCore::PseudoElement::pseudoRendererIsNeeded):
51280         (WebCore::PseudoElement::customStyleForRenderer):
51281         (WebCore::PseudoElement::attach):
51282         (WebCore::PseudoElement::rendererIsNeeded):
51283         (WebCore::PseudoElement::updateChildStyle): Propagates the style downward into the anonymous renderers for the content.
51284         (WebCore::PseudoElement::didRecalcStyle):
51285         (WebCore::PseudoElement::createRendererForContent): Refactored from RenderObjectChildList.
51286         * dom/PseudoElement.h: Added.
51287         (WebCore):
51288         (PseudoElement):
51289         (WebCore::PseudoElement::create):
51290         (WebCore::toPseudoElement):
51291         * rendering/HitTestResult.cpp:
51292         (WebCore::HitTestResult::setInnerNode): Hit testing a PseudoElement should really hit the parent.
51293         (WebCore::HitTestResult::setInnerNonSharedNode): Same as above.
51294         * rendering/RenderBlock.cpp:
51295         (WebCore::RenderBlock::styleDidChange): Remove old generated content code, same for below.
51296         (WebCore::RenderBlock::splitBlocks):
51297         (WebCore::RenderBlock::addChildIgnoringAnonymousColumnBlocks):
51298         (WebCore::RenderBlock::createReplacementRunIn):
51299         (WebCore::RenderBlock::renderName):
51300         * rendering/RenderBlock.h:
51301         (RenderBlock):
51302         * rendering/RenderButton.cpp:
51303         * rendering/RenderButton.h:
51304         (RenderButton):
51305         * rendering/RenderCounter.cpp:
51306         (WebCore::RenderCounter::originalText):
51307         * rendering/RenderDeprecatedFlexibleBox.cpp:
51308         (WebCore::RenderDeprecatedFlexibleBox::renderName):
51309         * rendering/RenderGrid.cpp:
51310         (WebCore::RenderGrid::renderName):
51311         * rendering/RenderInline.cpp:
51312         (WebCore::RenderInline::styleDidChange):
51313         (WebCore::RenderInline::addChildIgnoringContinuation):
51314         (WebCore::RenderInline::splitInlines):
51315         (WebCore::RenderInline::renderName):
51316         * rendering/RenderListItem.cpp:
51317         (WebCore::RenderListItem::updateMarkerLocation):
51318         * rendering/RenderMultiColumnBlock.cpp:
51319         (WebCore::RenderMultiColumnBlock::renderName):
51320         * rendering/RenderObject.cpp:
51321         (WebCore::RenderObject::createObject):
51322         * rendering/RenderObject.h:
51323         (WebCore::RenderObject::isPseudoElement):
51324         (RenderObject):
51325         (WebCore::RenderObject::generatingNode):
51326         * rendering/RenderObjectChildList.cpp:
51327         * rendering/RenderObjectChildList.h:
51328         (RenderObjectChildList):
51329         * rendering/RenderRubyText.cpp:
51330         * rendering/RenderRubyText.h:
51331         (RenderRubyText):
51332         * rendering/RenderTableCell.h:
51333         (WebCore::RenderTableCell::renderName):
51334         * rendering/RenderTableRow.cpp:
51335         (WebCore::RenderTableRow::styleDidChange):
51336         * rendering/RenderTableRow.h:
51337         (WebCore::RenderTableRow::renderName):
51338         * rendering/RenderTableSection.cpp:
51339         (WebCore::RenderTableSection::addChild):
51340         * rendering/RenderTableSection.h:
51341         (WebCore::RenderTableSection::renderName):
51342         * rendering/RenderTreeAsText.cpp:
51343         (WebCore::RenderTreeAsText::writeRenderObject):
51344
51345 2012-10-10  Sam Weinig  <sam@webkit.org>
51346
51347         Add more Objective-C WebKit2 DOM API skeletons.
51348         https://bugs.webkit.org/show_bug.cgi?id=98981
51349
51350         Reviewed by Anders Carlsson.
51351
51352         * WebCore.exp.in:
51353         Add necessary export.
51354
51355 2012-10-10  Dimitri Glazkov  <dglazkov@chromium.org>
51356
51357         Minimize the recent template explosion in SelectorChecker.
51358         https://bugs.webkit.org/show_bug.cgi?id=98829
51359
51360         Reviewed by Antti Koivisto.
51361
51362         We've recently added the capability to switch sibling traversal strategy to SelectorChecker, at some readability/clarity expense.
51363         This patch tries to minimize the surface of this expense to SelectorChecker::checkOneSelector. 
51364
51365         No new tests, no change in behavior.
51366
51367         * css/SelectorChecker.cpp:
51368         (WebCore::SelectorChecker::checkSelector): Turned back into a function.
51369         (WebCore::SelectorChecker::checkOneSelector): Changed to specialize on traversal strategy, rather than the context, which was less clear.
51370         (WebCore::SelectorChecker::DOMTraversalStrategy::isFirstChild): Turned into a function.
51371         (WebCore::SelectorChecker::DOMTraversalStrategy::isLastChild): Ditto.
51372         (WebCore::SelectorChecker::DOMTraversalStrategy::isFirstOfType): Ditto.
51373         (WebCore::SelectorChecker::DOMTraversalStrategy::isLastOfType): Ditto.
51374         (WebCore::SelectorChecker::DOMTraversalStrategy::countElementsBefore): Ditto.
51375         (WebCore::SelectorChecker::DOMTraversalStrategy::countElementsOfTypeBefore): Ditto.
51376         (WebCore::SelectorChecker::DOMTraversalStrategy::countElementsAfter): Ditto.
51377         (WebCore::SelectorChecker::DOMTraversalStrategy::countElementsOfTypeAfter): Ditto.
51378         * css/SelectorChecker.h:
51379         (DOMTraversalStrategy): Changed into a class, rather than a template.
51380         (SelectorChecker): Turned back into a function.
51381
51382 2012-10-10  James Simonsen  <simonjam@chromium.org>
51383
51384         High res times should start at 0
51385         https://bugs.webkit.org/show_bug.cgi?id=84912
51386
51387         Reviewed by Tony Gentilcore.
51388
51389         Test: Existing Navigation Timing tests.
51390
51391         * inspector/InspectorInstrumentation.cpp: Use legacy document time, pending 98223.
51392         (WebCore):
51393         (WebCore::InspectorInstrumentation::didFinishLoadingImpl):
51394         * inspector/InspectorResourceAgent.cpp:
51395         (WebCore::buildObjectForTiming):
51396         * loader/DocumentLoadTiming.cpp:
51397         (WebCore::DocumentLoadTiming::convertMonotonicTimeToLegacyDocumentTime):
51398         (WebCore):
51399         (WebCore::DocumentLoadTiming::convertMonotonicTimeToZeroBasedDocumentTime):
51400         (WebCore::DocumentLoadTiming::markNavigationStart):
51401         * loader/DocumentLoadTiming.h:
51402         (DocumentLoadTiming):
51403         (WebCore::DocumentLoadTiming::navigationStart): These just report raw monotonic times now.
51404         (WebCore::DocumentLoadTiming::unloadEventStart):
51405         (WebCore::DocumentLoadTiming::unloadEventEnd):
51406         (WebCore::DocumentLoadTiming::redirectStart):
51407         (WebCore::DocumentLoadTiming::redirectEnd):
51408         (WebCore::DocumentLoadTiming::fetchStart):
51409         (WebCore::DocumentLoadTiming::responseEnd):
51410         (WebCore::DocumentLoadTiming::loadEventStart):
51411         (WebCore::DocumentLoadTiming::loadEventEnd):
51412         * page/PerformanceTiming.cpp:
51413         (WebCore::PerformanceTiming::navigationStart): Convert these back to legacy document times.
51414         (WebCore::PerformanceTiming::unloadEventStart):
51415         (WebCore::PerformanceTiming::unloadEventEnd):
51416         (WebCore::PerformanceTiming::redirectStart):
51417         (WebCore::PerformanceTiming::redirectEnd):
51418         (WebCore::PerformanceTiming::fetchStart):
51419         (WebCore::PerformanceTiming::responseEnd):
51420         (WebCore::PerformanceTiming::loadEventStart):
51421         (WebCore::PerformanceTiming::loadEventEnd):
51422         (WebCore::PerformanceTiming::resourceLoadTimeRelativeToAbsolute):
51423         (WebCore::PerformanceTiming::monotonicTimeToIntegerMilliseconds):
51424         * platform/network/ResourceLoadTiming.cpp:
51425         (WebCore::ResourceLoadTiming::convertResourceLoadTimeToMonotonicTime):
51426         * platform/network/ResourceLoadTiming.h:
51427         (ResourceLoadTiming):
51428
51429 2012-10-10  Levi Weintraub  <leviw@chromium.org>
51430
51431         Tests failure on Chromium Mac after r130821
51432         https://bugs.webkit.org/show_bug.cgi?id=98865
51433
51434         Reviewed by Adam Barth.
51435
51436         Updating the check for USE(HARFBUZZ_NG) to check for Mac Chromium, as the HARFBUZZ_NG flag isn't
51437         actually set, despite us using Harfbuzz. This unbreaks Chromium Mac as we diagnose the root
51438         cause of this issue.
51439
51440         * rendering/RenderBlockLineLayout.cpp:
51441         (WebCore::setLogicalWidthForTextRun):
51442
51443 2012-10-10  Stephen Chenney  <schenney@chromium.org>
51444
51445         SVGTextRunRenderingContext changes font data in the glyph page, but it shouldn't
51446         https://bugs.webkit.org/show_bug.cgi?id=98755
51447
51448         Reviewed by Eric Seidel.
51449
51450         The code in SVGTextRunRenderingContext::glyphDataForCharacter, when it
51451         encounters an <altglyph> tag, immediately replaces the font data for a
51452         glyph with font data for the primary font, presumably to meet the SVG
51453         spec requirement: "If the references to alternate glyphs do not result
51454         in successful identification of alternate glyphs to use, then the
51455         character(s) that are inside of the ‘altGlyph’ element are rendered as
51456         if the ‘altGlyph’ element were a ‘tspan’ element instead."
51457
51458         If the alt glyph is not then found we are in the case from the spec
51459         and indeed we should use the primary font. However, we end up replacing the GlyphPage
51460         entry for the character with primary font data, which we should not do
51461         because the glyph page might be used in some place that does not have
51462         the alt glyph tag.
51463
51464         Furthermore, this causes object lifetime problems for font data, because
51465         in cases where the font data that is replaced is for the system fallback
51466         font the GlyphPage will live forever with no knowldege that it contains
51467         font data pointers into font data other that the system fallback. The
51468         replaced font data may be deleted while the pointer lives on in the
51469         system fallback page.
51470
51471         The fix is simply not to replace the font data in the page.
51472
51473         Test: svg/text/alt-glpyh-on-fallback-font-crash.html
51474
51475         * rendering/svg/SVGTextRunRenderingContext.cpp:
51476         (WebCore::SVGTextRunRenderingContext::glyphDataForCharacter): Keep track of the original font data and put it back
51477         in the glyph page when the method has finished.
51478
51479 2012-10-10  Tab Atkins  <jackalmage@gmail.com>
51480
51481         column-count: 0 should not prevent margin-collapse through
51482         https://bugs.webkit.org/show_bug.cgi?id=65159
51483
51484         Reviewed by Tony Chang.
51485
51486         This patch makes "column-count:0" be properly recognized as invalid syntax,
51487         as it violates the property grammar in the spec.
51488
51489         Tests: fast/multicol/zeroColumnCount.html
51490
51491         * css/CSSParser.cpp:
51492         (WebCore::CSSParser::validUnit):
51493         (WebCore::CSSParser::parseValue):
51494         * css/CSSParser.h:
51495
51496 2012-10-10  Benjamin Poulain  <bpoulain@apple.com>
51497
51498         [WK2] Safari crashes on error when using CFNetwork
51499         https://bugs.webkit.org/show_bug.cgi?id=98965
51500
51501         Reviewed by Sam Weinig.
51502
51503         The code of ResourceErrorMac when using CFNetwork was assuming
51504         there is always either a CFError or an NSError associated with
51505         any ResourceError.
51506
51507         This is not true on WebKit2 where error can be generic errors
51508         in the WebProcess (for example a cannotShowURLError).
51509         The code was crashing when trying to invoke function on the
51510         non-existing CFError.
51511
51512         This patch fixes the issue by handling that third case separately.
51513         If the ResourceError is a generic error, a new NSError is created,
51514         similarily to what is done in the non-CFNetwork case.
51515
51516         * platform/network/mac/ResourceErrorMac.mm:
51517         (WebCore::ResourceError::nsError):
51518
51519 2012-10-10  Alexander Shalamov  <alexander.shalamov@intel.com>
51520
51521         Invalid values for media query features are not handled
51522         https://bugs.webkit.org/show_bug.cgi?id=97006
51523
51524         Reviewed by Kenneth Rohde Christiansen.
51525
51526         This patch improves pass rate of CSS3 Media Queries test suite
51527         by making media expressions compliant with W3C specification. Few
51528         performance issues are fixed by removal of string comparison during
51529         media expression evaluation.
51530
51531         Tests: fast/media/w3c/test_media_queries.html
51532
51533         * css/CSSGrammar.y: Handle media query expression with specified media restrictor as invalid.
51534         * css/MediaQuery.cpp:
51535         (WebCore::MediaQuery::serialize): Serialize invalid query according to specification.
51536         * css/MediaQueryEvaluator.cpp:
51537         (WebCore::orientationMediaFeatureEval): Compare CSSValueID instead of strings.
51538         (WebCore::view_modeMediaFeatureEval): Compare CSSValueID instead of strings.
51539         (WebCore::pointerMediaFeatureEval): Compare CSSValueID instead of strings.
51540         * css/MediaQueryExp.cpp:
51541         (WebCore::MediaQueryExp::MediaQueryExp): Check that media features initialized with correct values.
51542
51543 2012-10-10  Justin Novosad  <junov@chromium.org>
51544
51545         [Chromium] Smoother animation for non-RAF 2D canvas animations
51546         https://bugs.webkit.org/show_bug.cgi?id=97918
51547
51548         Reviewed by Stephen White.
51549
51550         Reduces animation jank by preventing the accumulation of multiple
51551         frames of backlog in the deferred canvas rendering queue. When the
51552         animation is more than one full frame ahead of the compositor, an
51553         immediate flush is triggered.  This takes into account overdraw
51554         elimination by the skip-on-clear optimization that is built-in to
51555         SkDeferredCanvas, to allow non-RAF animations that clear the canvas at
51556         each frame to run without any rate limiting. This change also
51557         incidentally improves frame rate in many cases by providing more
51558         granular batching of GPU API calls, resulting in better pipelining
51559         through the command buffer.
51560
51561         Test: webkit_unit_test Canvas2DLayerManagerTest.testDeferredFrame
51562
51563         * platform/graphics/chromium/Canvas2DLayerBridge.cpp:
51564         (WebCore::Canvas2DLayerBridge::Canvas2DLayerBridge):
51565         (WebCore::Canvas2DLayerBridge::limitPendingFrames):
51566         Called at the end of a task (usually a scheduled script action) that
51567         invoked 2d canvas rendering context methods. The end of the task
51568         marks the completion of a displayable frame. This method will trigger
51569         a flush if it detects that the layer has pending draw commands that
51570         are more that one frame old.
51571         (WebCore):
51572         (WebCore::Canvas2DLayerBridge::flushedDrawCommands):
51573         (WebCore::Canvas2DLayerBridge::didFlushPendingCommands):
51574         (WebCore::Canvas2DLayerBridge::skippedPendingDrawCommands):
51575         (WebCore::Canvas2DLayerBridge::flush):
51576         (WebCore::Canvas2DLayerBridge::contextAcquired):
51577         * platform/graphics/chromium/Canvas2DLayerBridge.h:
51578         (Canvas2DLayerBridge):
51579         * platform/graphics/chromium/Canvas2DLayerManager.cpp:
51580         (WebCore::Canvas2DLayerManager::~Canvas2DLayerManager):
51581         (WebCore::Canvas2DLayerManager::willProcessTask):
51582         (WebCore):
51583         (WebCore::Canvas2DLayerManager::didProcessTask):
51584         (WebCore::Canvas2DLayerManager::layerDidDraw):
51585         * platform/graphics/chromium/Canvas2DLayerManager.h:
51586         (Canvas2DLayerManager):
51587
51588 2012-10-10  Beth Dakin  <bdakin@apple.com>
51589
51590         https://bugs.webkit.org/show_bug.cgi?id=98968
51591         REGRESSION: Unable to scroll with trackpad on some websites after 
51592         r130783
51593
51594         Reviewed by Simon Fraser.
51595
51596         This bug seems to reproduce mostly on web pages that require login. 
51597         The re-routing causes extra churn of the RenderLayerBacking, and we 
51598         end up destroying and re-creating the backing and therefore the 
51599         ScrollingStateNodes, and when the timing is just wrong we get into a 
51600         state where the ScrollingTree has a set of incorrect information. 
51601         This patch fixes the bug by making sure the ScrollingStateNodes keep 
51602         the ScrollingTree in synch with their re-set data.
51603
51604         Tell the ScrollingStateTree that the root layer has changed.
51605         * page/scrolling/ScrollingCoordinator.cpp:
51606         (WebCore::ScrollingCoordinator::frameViewRootLayerDidChange):
51607
51608         New virtual function will set every property as having changed.
51609         * page/scrolling/ScrollingStateNode.h:
51610         (WebCore::ScrollingStateNode::setHasChangedProperties):
51611         * page/scrolling/ScrollingStateScrollingNode.cpp:
51612         (WebCore::ScrollingStateScrollingNode::setHasChangedProperties):
51613         (WebCore):
51614         * page/scrolling/ScrollingStateScrollingNode.h:
51615
51616         When the root layer changes, make sure we update the ScrollingTree 
51617         appropriately by indicating that every property could have changed.
51618         * page/scrolling/ScrollingStateTree.cpp:
51619         (WebCore::ScrollingStateTree::rootLayerDidChange):
51620         (WebCore):
51621         * page/scrolling/ScrollingStateTree.h:
51622         (ScrollingStateTree):
51623
51624 2012-10-10  MORITA Hajime  <morrita@google.com>
51625
51626         [Chromium] Crash on SpellChecker::didCheck()
51627         https://bugs.webkit.org/show_bug.cgi?id=98476
51628
51629         Reviewed by Kent Tamura.
51630
51631         SpellChecker::didCheck() assumed m_processingRequest is non-NULL. However, SpellChecker::invokeRequest()
51632         calls SpellCheckRequest::didCancel(), which results didCheck() with NULL m_processingRequest.
51633         This chagne eliminates the problematic didCheck().
51634
51635         No new tests. The case depends on specific timing and is hard to hit by automated testing.
51636
51637         * editing/SpellChecker.cpp:
51638         (WebCore::SpellChecker::didCheck):
51639
51640 2012-10-10  MORITA Hajime  <morrita@google.com>
51641
51642         https://bugs.webkit.org/show_bug.cgi?id=95664
51643         [Shadow DOM] should be able to be available without <style scoped>
51644
51645         Reviewed by Dimitri Glazkov.
51646
51647         This change relaxes ENABLE(STYLE_SCOPED) compilation guard
51648         and styleScopedEnabled() runtime guard. The flags now masks
51649         user visible bits of the code, rather than all of it.
51650         This change also eliminates some redundant guards for simplicity.
51651
51652         Test: fast/dom/shadow/style-scoped-not-enabled.html
51653
51654         * css/StyleResolver.cpp:
51655         (WebCore::StyleResolver::matchScopedAuthorRules):
51656         (WebCore::StyleResolver::locateCousinList):
51657         (WebCore::StyleResolver::canShareStyleWithElement):
51658         (WebCore::StyleResolver::locateSharedStyle):
51659         * css/StyleScopeResolver.cpp:
51660         (WebCore::StyleScopeResolver::scopeFor):
51661         * css/StyleScopeResolver.h:
51662         (WebCore):
51663         * html/HTMLStyleElement.cpp:
51664         (WebCore::HTMLStyleElement::HTMLStyleElement):
51665         (WebCore::HTMLStyleElement::parseAttribute):
51666         (WebCore::HTMLStyleElement::scopedAttributeChanged):
51667         (WebCore::HTMLStyleElement::isRegisteredAsScoped):
51668         (WebCore::HTMLStyleElement::registerWithScopingNode):
51669         (WebCore::HTMLStyleElement::unregisterWithScopingNode):
51670         (WebCore::HTMLStyleElement::insertedInto):
51671         (WebCore::HTMLStyleElement::removedFrom):
51672         (WebCore::HTMLStyleElement::scoped):
51673         (WebCore::HTMLStyleElement::scopingElement):
51674         * html/HTMLStyleElement.h:
51675         (HTMLStyleElement):
51676         * testing/InternalSettings.cpp: Exporsing a flag for testing.
51677         (WebCore::InternalSettings::Backup::Backup):
51678         (WebCore::InternalSettings::Backup::restoreTo):
51679         (WebCore::InternalSettings::setStyleScopedEnabled):
51680         (WebCore):
51681         * testing/InternalSettings.h: Exporsing a flag for testing.
51682         (Backup):
51683         (InternalSettings):
51684         * testing/InternalSettings.idl: Exporsing a flag for testing.
51685
51686 2012-10-10  Roger Fong  <roger_fong@apple.com>
51687
51688         [WebGL] [On Mac] queried attributes and uniforms need to return the original variable name, not the mapped name.
51689         https://bugs.webkit.org/show_bug.cgi?id=98470
51690
51691         Reviewed by Timothy Horton.
51692
51693         When a variable name is too long we translate to a shorter version and keep a mapping between the long and short names.
51694         However, when querying for a variable client side using getActiveAttrib or getActiveUniform, we accidentally return the 
51695         translated names. This fix makes these methods return the original variable names.
51696
51697         Tested using Khronos WebGL conformance suite:
51698         conformance/glsl/misc/glsl-long-variable-names.html
51699
51700         * platform/graphics/GraphicsContext3D.h:
51701         (GraphicsContext3D):
51702         * platform/graphics/opengl/GraphicsContext3DOpenGLCommon.cpp: getActiveAttrib and getActiveUniform
51703         now use GraphicsContext3D::originalSymbolName to find the original variable name.
51704         (WebCore::GraphicsContext3D::getActiveAttrib):
51705         (WebCore::GraphicsContext3D::getActiveUniform):
51706         (WebCore):
51707         (WebCore::GraphicsContext3D::originalSymbolName): This method returns the original variable name given 
51708         the mapped name.
51709
51710 2012-10-10 Brady Eidson  <beidson@apple.com>
51711
51712         Switch over CachedResource::data() from taking a SharedBuffer to taking a ResourceBuffer.
51713         https://bugs.webkit.org/show_bug.cgi?id=98952
51714
51715         Reviewed by Anders Carlsson.
51716
51717         No new tests (No behavior change).
51718
51719         * html/ImageDocument.cpp:
51720         (WebCore::ImageDocumentParser::appendBytes):
51721         (WebCore::ImageDocumentParser::finish):
51722         * loader/SubresourceLoader.cpp:
51723         (WebCore::SubresourceLoader::sendDataToResource):
51724         (WebCore::SubresourceLoader::didFinishLoading):
51725         * loader/cache/CachedCSSStyleSheet.cpp:
51726         (WebCore::CachedCSSStyleSheet::data):
51727         * loader/cache/CachedCSSStyleSheet.h:
51728         (WebCore):
51729         (CachedCSSStyleSheet):
51730         * loader/cache/CachedFont.cpp:
51731         (WebCore::CachedFont::data):
51732         * loader/cache/CachedFont.h:
51733         (WebCore):
51734         (CachedFont):
51735         * loader/cache/CachedImage.cpp:
51736         (WebCore::CachedImage::data):
51737         * loader/cache/CachedImage.h:
51738         (CachedImage):
51739         * loader/cache/CachedRawResource.cpp:
51740         (WebCore::CachedRawResource::data):
51741         * loader/cache/CachedRawResource.h:
51742         (CachedRawResource):
51743         * loader/cache/CachedResource.cpp:
51744         (WebCore::CachedResource::data):
51745         * loader/cache/CachedResource.h:
51746         (CachedResource):
51747         * loader/cache/CachedSVGDocument.cpp:
51748         (WebCore::CachedSVGDocument::data):
51749         * loader/cache/CachedSVGDocument.h:
51750         (CachedSVGDocument):
51751         * loader/cache/CachedScript.cpp:
51752         (WebCore::CachedScript::data):
51753         * loader/cache/CachedScript.h:
51754         (CachedScript):
51755         * loader/cache/CachedShader.cpp:
51756         (WebCore::CachedShader::data):
51757         * loader/cache/CachedShader.h:
51758         (CachedShader):
51759         * loader/cache/CachedTextTrack.cpp:
51760         (WebCore::CachedTextTrack::data):
51761         * loader/cache/CachedTextTrack.h:
51762         (CachedTextTrack):
51763         * loader/cache/CachedXSLStyleSheet.cpp:
51764         (WebCore::CachedXSLStyleSheet::data):
51765         * loader/cache/CachedXSLStyleSheet.h:
51766         (CachedXSLStyleSheet):
51767
51768 2012-10-10  Jon Lee  <jonlee@apple.com>
51769
51770         [WK2] Activate plugins when user clicks on snapshot
51771         https://bugs.webkit.org/show_bug.cgi?id=98328
51772         <rdar://problem/12426681>
51773
51774         Reviewed by Brady Eidson.
51775
51776         Extend the default event handler to deal with plugins with snapshots.
51777         When the user clicks on the placeholder, the plugin is recreated and displayed.
51778
51779         * loader/FrameLoaderClient.h: Add new client function recreatePlugin(), which is
51780         expected to re-create the plugin with the same parameters as when it was run to
51781         obtain the plugin's snapshot placeholder.
51782
51783         * loader/EmptyClients.cpp: Stub implementation of recreatePlugin().
51784         * loader/EmptyClients.h:
51785         * WebCore.exp.in: Expose HTMLPlugInElement::pluginWidget().
51786
51787         * html/HTMLPlugInElement.cpp:
51788         (WebCore::HTMLPlugInElement::defaultEventHandler): Update to look for
51789         RenderSnapshottedPlugIn. If the plugin is not playing, have the renderer handle the
51790         event.
51791
51792         * rendering/RenderSnapshottedPlugIn.cpp:
51793         (WebCore::RenderSnapshottedPlugin::getCursor): Set to hand cursor when the plugin is not
51794         playing.
51795         (WebCore::RenderSnapshottedPlugIn::handleEvent): If the user clicked on the plugin using the
51796         left button, update the state of the element to playing. Recreate the plugin if the widget exists
51797         to begin with. The cached snapshot image will be saved for possible reuse on back/forward navigation.
51798         * rendering/RenderSnapshottedPlugIn.h:
51799         (RenderSnapshottedPlugIn):
51800
51801 2012-10-10  Kenichi Ishibashi  <bashi@chromium.org>
51802
51803         FontVerticalDataCache should allow zero as a key value
51804         https://bugs.webkit.org/show_bug.cgi?id=98877
51805
51806         Reviewed by Tony Chang.
51807
51808         Use WTF::UnsignedWithZeroKeyHashTraits for type definition of
51809         FontVerticalDataCache.
51810
51811         No new tests because there is no certain way to make
51812         FontPlatformDataHarfBuzz::uniqueID() be zero.
51813
51814         * platform/graphics/FontCache.cpp:
51815         (WebCore):
51816         * platform/graphics/harfbuzz/FontPlatformDataHarfBuzz.cpp:
51817         (WebCore::FontPlatformData::verticalData): Removed zero check of uniqueID().
51818         (WebCore::FontPlatformData::openTypeTable): Ditto.
51819
51820 2012-10-10  Regina Chung  <heejin.r.chung@samsung.com>
51821
51822         [EFL] Use the shareable GraphicsContext3DOpenGL* implementation.
51823         https://bugs.webkit.org/show_bug.cgi?id=96627
51824
51825         Reviewed by Kenneth Rohde Christiansen.
51826
51827         Changed EFL implementation of GraphicsContext3D(GC3D) to use GraphicsContext3DOpenGL*.
51828         It was initially implemented in a different way, due to characteristics of Evas,
51829         but it would be better to use the common implementation and find another way
51830         to deal with Evas, especially because all the duplicated code.
51831
51832         No new tests. No functional changes.
51833
51834         * PlatformEfl.cmake: Removed cairo implementation of GC3D and added efl files to WebCore_SOURCES.
51835         * platform/graphics/efl/GraphicsContext3DEfl.cpp: Modified code so GC3DOpenGL* can be used.
51836         (WebCore::GraphicsContext3D::create):
51837         (WebCore::GraphicsContext3D::GraphicsContext3D):
51838         (WebCore::GraphicsContext3D::platformLayer):
51839         (WebCore::GraphicsContext3D::makeContextCurrent):
51840         (WebCore::GraphicsContext3D::setContextLostCallback):
51841         (WebCore::GraphicsContext3D::setErrorMessageCallback):
51842         (WebCore::GraphicsContext3D::paintToCanvas):
51843         (WebCore):
51844         (WebCore::GraphicsContext3D::createGraphicsSurfaces):
51845         (WebCore::GraphicsContext3D::releaseShaderCompiler):
51846         (WebCore::GraphicsContext3D::getImageData):
51847         * platform/graphics/efl/GraphicsContext3DPrivate.cpp: Removed functions implemented in GC3DOpenGL*
51848         (WebCore::GraphicsContext3DPrivate::GraphicsContext3DPrivate):
51849         (WebCore):
51850         (WebCore::GraphicsContext3DPrivate::~GraphicsContext3DPrivate):
51851         (WebCore::GraphicsContext3DPrivate::createSurface):
51852         (WebCore::GraphicsContext3DPrivate::platformGraphicsContext3D):
51853         (WebCore::GraphicsContext3DPrivate::makeContextCurrent):
51854         (WebCore::GraphicsContext3DPrivate::isGLES2Compliant):
51855         (WebCore::GraphicsContext3DPrivate::paintToTextureMapper):
51856         * platform/graphics/efl/GraphicsContext3DPrivate.h: Removed functions implemented in GC3DOpenGL*
51857         (GraphicsContext3DPrivate):
51858
51859 2012-10-10  Tony Chang  <tony@chromium.org>
51860
51861         Unreviewed, rolling out r130937, r130949, r130955, and
51862         r130957.
51863         http://trac.webkit.org/changeset/130937
51864         http://trac.webkit.org/changeset/130949
51865         http://trac.webkit.org/changeset/130955
51866         http://trac.webkit.org/changeset/130957
51867         https://bugs.webkit.org/show_bug.cgi?id=94290
51868
51869         Breaks Qt build
51870
51871         * CMakeLists.txt:
51872         * DerivedSources.make:
51873         * DerivedSources.pri:
51874         * GNUmakefile.am:
51875         * WebCore.gyp/WebCore.gyp:
51876         * WebCore.gyp/scripts/action_preprocessgrammar.py: Removed.
51877         * WebCore.vcproj/WebCore.vcproj:
51878         * WebCore.xcodeproj/project.pbxproj:
51879         * css/CSSGrammar.y: Renamed from Source/WebCore/css/CSSGrammar.y.in.
51880         * css/CSSGrammar.y.includes: Removed.
51881         * css/makegrammar.pl:
51882
51883 2012-10-10  Rob Buis  <rbuis@rim.com>
51884
51885         [BlackBerry] Adapt to new image for search-cancel
51886         https://bugs.webkit.org/show_bug.cgi?id=98954
51887
51888         Reviewed by Antonio Gomes.
51889
51890         The new image for search-cancel is bigger than the old one, so invert the scaling.
51891
51892         * platform/blackberry/RenderThemeBlackBerry.cpp:
51893         (WebCore::RenderThemeBlackBerry::adjustSearchFieldCancelButtonStyle):
51894
51895 2012-10-10  Tony Chang  <tony@chromium.org>
51896
51897         Unreviewed, another speculative fix for Qt Win.
51898
51899         * DerivedSources.pri: Pass --preprocessor to the perl script.
51900         * css/makegrammar.pl: Use --preprocessor instead of /usr/bin/gcc.
51901
51902 2012-10-10  Tony Chang  <tony@chromium.org>
51903
51904         Unreviewed, another speculative fix for Qt Win.
51905
51906         * DerivedSources.pri: Make the path slash marks be forward slashes to the .in file.
51907
51908 2012-10-10  David Barton  <dbarton@mathscribe.com>
51909
51910         Turn on ENABLE_MATHML for Chromium
51911         https://bugs.webkit.org/show_bug.cgi?id=96960
51912
51913         Reviewed by Adam Barth.
51914
51915         Add the rendering/mathml directory to search.
51916
51917         * WebCore.gyp/WebCore.gyp:
51918
51919 2012-10-10  Tony Chang  <tony@chromium.org>
51920
51921         Unreviewed, speculative build fix for Qt Win.
51922
51923         * css/makegrammar.pl: Rather than making a temp file, use a pipe to
51924         pass data from gcc to the final output file.
51925
51926 2012-10-10  Brady Eidson  <beidson@apple.com>
51927
51928         Switch CachedResource over from SharedBuffer to a new ResourceBuffer
51929         https://bugs.webkit.org/show_bug.cgi?id=98541
51930
51931         Reviewed by Anders Carlsson.
51932
51933         As part of preparation for a WebKit2 NetworkProcess, we need to change the data handle shared
51934         between CachedResources and ResourceLoaders to be one that can be backed by something other
51935         than a SharedBuffer.
51936
51937         ResourceBuffer is this new object. Right now it is directly backed by a SharedBuffer and there
51938         should be no change in behavior.
51939
51940         No new tests (No behavior change).
51941
51942         * WebCore.exp.in:
51943         * WebCore.xcodeproj/project.pbxproj:
51944         * WebCore.vcproj/WebCore.vcproj:
51945         * CMakeLists.txt:
51946         * GNUmakefile.list.am:
51947         * Target.pri:
51948         * WebCore.gypi:
51949
51950         Implementation of the new ResourceBuffer, backed directly by a SharedBuffer:
51951         * loader/ResourceBuffer.cpp: Added.
51952         (WebCore):
51953         (WebCore::ResourceBuffer::ResourceBuffer):
51954         (WebCore::ResourceBuffer::~ResourceBuffer):
51955         (WebCore::ResourceBuffer::data):
51956         (WebCore::ResourceBuffer::size):
51957         (WebCore::ResourceBuffer::isEmpty):
51958         (WebCore::ResourceBuffer::getSomeData):
51959         (WebCore::ResourceBuffer::sharedBuffer):
51960         (WebCore::ResourceBuffer::copy):
51961         (WebCore::ResourceBuffer::hasPurgeableBuffer):
51962         (WebCore::ResourceBuffer::releasePurgeableBuffer):
51963         (WebCore::ResourceBuffer::createCFData):
51964
51965         * loader/ResourceBuffer.h: Added.
51966         (WebCore):
51967         (ResourceBuffer):
51968         (WebCore::ResourceBuffer::create):
51969         (WebCore::ResourceBuffer::adoptSharedBuffer):
51970         * loader/mac/ResourceBuffer.mm: Added.
51971
51972         (WebCore):
51973         (WebCore::ResourceBuffer::createNSData):
51974
51975         Switch CachedResource over to using it:
51976         * loader/cache/CachedResource.cpp:
51977         (WebCore::CachedResource::makePurgeable):
51978
51979         * loader/cache/CachedResource.h:
51980         (WebCore):
51981         (WebCore::CachedResource::resourceBuffer):
51982         (CachedResource):
51983
51984         Switch all the other CachedResource subclasses over to using it:
51985         * loader/cache/CachedCSSStyleSheet.cpp:
51986         (WebCore::CachedCSSStyleSheet::data):
51987
51988         * loader/cache/CachedFont.cpp:
51989         (WebCore::CachedFont::data):
51990         (WebCore::CachedFont::ensureCustomFontData):
51991
51992         * loader/cache/CachedImage.cpp:
51993         (WebCore::CachedImage::didAddClient):
51994         (WebCore::CachedImage::data):
51995
51996         * loader/cache/CachedRawResource.cpp:
51997         (WebCore::CachedRawResource::data):
51998
51999         * loader/cache/CachedScript.cpp:
52000         (WebCore::CachedScript::data):
52001
52002         * loader/cache/CachedShader.cpp:
52003         (WebCore::CachedShader::data):
52004
52005         * loader/cache/CachedTextTrack.cpp:
52006         (WebCore::CachedTextTrack::data):
52007         
52008         * loader/cache/CachedXSLStyleSheet.cpp:
52009         (WebCore::CachedXSLStyleSheet::data):
52010
52011         Switch other affect parties over to using it:
52012         * inspector/InspectorPageAgent.cpp:
52013         (WebCore::decodeBuffer):
52014         (WebCore::InspectorPageAgent::cachedResourceContent):
52015         (WebCore::InspectorPageAgent::sharedBufferContent):
52016
52017         * loader/DocumentLoader.cpp:
52018         (WebCore::DocumentLoader::subresource):
52019
52020         * loader/TextTrackLoader.cpp:
52021         (WebCore::TextTrackLoader::processNewCueData):
52022         (WebCore::TextTrackLoader::didReceiveData):
52023
52024         * loader/archive/cf/LegacyWebArchive.cpp:
52025         (WebCore::LegacyWebArchive::create):
52026
52027         * loader/icon/IconLoader.cpp:
52028         (WebCore::IconLoader::notifyFinished):
52029
52030         * platform/mac/PasteboardMac.mm:
52031         (WebCore::fileWrapperForImage):
52032
52033 2012-10-10  Julien Chaffraix  <jchaffraix@webkit.org>
52034
52035         Unreviewed build fix after r130940.
52036
52037         * platform/graphics/skia/GraphicsContextSkia.cpp:
52038         (WebCore::GraphicsContext::drawLineForDocumentMarker):
52039         Avoid redefining the same variable twice.
52040
52041 2012-10-10  Alexis Menard  <alexis@webkit.org>
52042
52043         [Mac] Deprecate getPropertyShorthand from objective c bindings for future removal
52044         https://bugs.webkit.org/show_bug.cgi?id=98916
52045
52046         Reviewed by Timothy Hatcher.
52047
52048         Mark getPropertyShorthand as deprecated so we can remove it later. It will allow us
52049         to remove getPropertyShorthand from the web exposed API (this function is not part of
52050         any specification, it was there for historical reason).
52051
52052         No new tests : just mark a function as deprecated.
52053
52054         * bindings/objc/PublicDOMInterfaces.h:
52055
52056 2012-10-10  Mike West  <mkwst@chromium.org>
52057
52058         Web Inspector: add support for %c (style) in console API
52059         https://bugs.webkit.org/show_bug.cgi?id=69401
52060
52061         Reviewed by Pavel Feldman.
52062
52063         This patch mimics Firebug's '%c' option when calling 'console.log'
52064         messages. 'console.log("%cBlue!", "color: blue;");' will write blue
52065         text to the console, and so on.
52066
52067         To match Firebug's behavior, multiple '%c' entries will overwrite each
52068         other: only one style will be applied. Sorry, folks.
52069
52070         Test: inspector/console/console-format-style.html
52071
52072         * inspector/front-end/ConsoleMessage.js:
52073         (WebInspector.ConsoleMessageImpl.prototype._formatWithSubstitutionString.styleFormatter):
52074         (WebInspector.ConsoleMessageImpl.prototype._formatWithSubstitutionString.append):
52075         (WebInspector.ConsoleMessageImpl.prototype._formatWithSubstitutionString):
52076
52077 2012-10-10  Varun Jain  <varunjain@chromium.org>
52078
52079         [chromium] Spelling and grammar markers are pixelated in hidpi.
52080         https://bugs.webkit.org/show_bug.cgi?id=98339
52081
52082         Reviewed by Stephen White.
52083
52084         We create separate bitmaps for markers in normal and hidpi mode as per
52085         specification from UX and choose the right bitmap based on the current
52086         device scale factor.
52087
52088         Tests: editing/spelling/grammar-markers-hidpi.html
52089                editing/spelling/inline-spelling-markers-hidpi.html
52090
52091         * platform/graphics/skia/GraphicsContextSkia.cpp:
52092         (WebCore::draw2xMarker):
52093         (WebCore):
52094         (WebCore::draw1xMarker):
52095         (WebCore::GraphicsContext::drawLineForDocumentMarker):
52096         * platform/graphics/skia/PlatformContextSkia.cpp:
52097         (WebCore::PlatformContextSkia::PlatformContextSkia):
52098         * platform/graphics/skia/PlatformContextSkia.h:
52099         (WebCore::PlatformContextSkia::deviceScaleFactor):
52100         (WebCore::PlatformContextSkia::setDeviceScaleFactor):
52101         (PlatformContextSkia):
52102
52103 2012-10-10  Pablo Flouret  <pablof@motorola.com>
52104
52105         Pre-process CSSGrammar.y before running through bison.
52106         https://bugs.webkit.org/show_bug.cgi?id=94290
52107
52108         Reviewed by Tony Chang.
52109
52110         Running CSSGrammar.y through a preprocessor allows the use of feature
52111         defines in all places of the yacc file (i.e. not just in C blocks).
52112         Mostly useful to be able to keep every part of a feature under feature
52113         flags for self-documenting purposes.
52114
52115         No new tests, CSSGrammar.y should be generated correctly and everything
52116         should keep working as before.
52117
52118         * CMakeLists.txt:
52119         * DerivedSources.make:
52120         * DerivedSources.pri:
52121         * GNUmakefile.am:
52122             Modify build systems to use makegrammar.pl to generate the .y files
52123             and run those through bison.
52124
52125         * WebCore.gyp/WebCore.gyp:
52126         * WebCore.gyp/scripts/action_preprocessgrammar.py: Added.
52127             Add a new action to preprocess the CSSGrammar.y.in file before the
52128             bison rule is run.
52129
52130         * WebCore.vcproj/WebCore.vcproj:
52131         * WebCore.xcodeproj/project.pbxproj:
52132             Add the new .y.in / .y.includes files.
52133
52134         * css/CSSGrammar.y.in: Renamed from Source/WebCore/css/CSSGrammar.y.
52135             Also moved the top declarations section that has includes, defines,
52136             etc. to its own file. These shouldn't be touched by the first
52137             pass of the preprocessor. And changed the existing ENABLE(FEATURE)
52138             ifdefs to ENABLE_FEATURE since the ENABLE() macro is not available
52139             yet.
52140         * css/CSSGrammar.y.includes: Added.
52141             The aforementioned declarations header section. After the .y.in file
52142             is processed it will be concatenated with this one to make the
52143             CSSGrammar.y file.
52144
52145         * css/makegrammar.pl:
52146             Modify the script to handle .y.in files.
52147
52148 2012-10-10  Luciano Wolf  <luciano.wolf@openbossa.org>
52149
52150         EventHandler::handleGestureLongPress breaks compilation if CONTEXT_MENUS isn't set
52151         https://bugs.webkit.org/show_bug.cgi?id=98890
52152
52153         Reviewed by Caio Marcelo de Oliveira Filho.
52154
52155         * page/EventHandler.cpp:
52156         (WebCore::EventHandler::handleGestureLongPress):
52157
52158 2012-10-10  David Grogan  <dgrogan@chromium.org>
52159
52160         Inspector: display IndexedDB integer versions
52161         https://bugs.webkit.org/show_bug.cgi?id=95816
52162
52163         Reviewed by Vsevolod Vlasov.
52164
52165         Added basic test to database-structure.html
52166
52167         * inspector/Inspector.json:
52168         * inspector/InspectorIndexedDBAgent.cpp:
52169         (WebCore):
52170         * inspector/front-end/IndexedDBModel.js:
52171         (WebInspector.IndexedDBModel.prototype._loadDatabase.callback):
52172         (WebInspector.IndexedDBModel.prototype._loadDatabase):
52173         (WebInspector.IndexedDBModel.Database):
52174         * inspector/front-end/IndexedDBViews.js:
52175         (WebInspector.IDBDatabaseView):
52176         (WebInspector.IDBDatabaseView.prototype._refreshDatabase):
52177
52178 2012-10-10  Simon Fraser  <simon.fraser@apple.com>
52179
52180         Store a visible rect in GraphicsLayers, and optionally dump it in layerTreeAsText
52181         https://bugs.webkit.org/show_bug.cgi?id=98839
52182
52183         Reviewed by Sam Weinig.
52184
52185         To replace CATiledLayer with TileCaches, we need to be able to compute the visible part of a GraphicsLayer,
52186         in order to limit the extent of TileCache tiles. Reuse the existing code in GraphicsLayerCA for this,
52187         but store the computed rect in m_visibleRect.
52188         
52189         Add a flag to layerTreeAsText() so that tests can optionally include this visible rect in
52190         layer tree dumps. This output will be platform-specific, so we don't want to do it unconditionally.
52191
52192         * WebCore.exp.in: Signature of Frame::layerTreeAsText() changed.
52193         * page/Frame.cpp:
52194         (WebCore::Frame::layerTreeAsText): Change to take some enum flags rather than just a bool.
52195         * page/Frame.h:
52196         * platform/graphics/GraphicsLayer.cpp:
52197         (WebCore::GraphicsLayer::writeIndent): Make into a static class method so subclasses can use it.
52198         (WebCore::GraphicsLayer::dumpProperties): Call a virtual dumpAdditionalProperties() for subclasses.
52199         (showGraphicsLayerTree):
52200         * platform/graphics/GraphicsLayer.h:
52201         (GraphicsLayer): New LayerTreeAsTextIncludeVisibleRects flag.
52202         (WebCore::GraphicsLayer::dumpAdditionalProperties): New virtual method.
52203         * platform/graphics/ca/GraphicsLayerCA.cpp:
52204         (WebCore::GraphicsLayerCA::recursiveCommitChanges): clipRectForChildren and clipRectForSelf
52205         were previously unused and buggy. Fix to correctly compute clipRectForSelf, to assign
52206         to m_visibleRect.
52207         (WebCore::GraphicsLayerCA::dumpAdditionalProperties): Dump m_visibleRect.
52208         * platform/graphics/ca/GraphicsLayerCA.h:
52209         (GraphicsLayerCA):
52210         * rendering/RenderLayerCompositor.cpp:
52211         (WebCore::RenderLayerCompositor::layerTreeAsText): Convert the flags from Frame flags
52212         to GraphicsLayerFlags and pass them along.
52213         * rendering/RenderLayerCompositor.h:
52214         (RenderLayerCompositor):
52215         * testing/Internals.cpp:
52216         (WebCore::Internals::layerTreeAsText): Overloaded method to handle the optional IDL arguments.
52217         * testing/Internals.h: Add enum.
52218         * testing/Internals.idl: Add optional flags, and a const short to describe the flags.
52219
52220 2012-10-10  Shinya Kawanaka  <shinyak@chromium.org>
52221
52222         Needs internal API to return distributed nodes for InsertionPoint
52223         https://bugs.webkit.org/show_bug.cgi?id=98868
52224
52225         Reviewed by Hajime Morita.
52226
52227         When testing insertion points, we would like to have an internal API which returns a node list
52228         distributed to an insertion point.
52229
52230         We've added the API in Internals.
52231
52232         Test: fast/dom/shadow/distributed-nodes.html
52233
52234         * WebCore.exp.in:
52235         * html/shadow/InsertionPoint.cpp:
52236         (WebCore::InsertionPoint::distributedNodes): Returns the distributed nodes. When InsertionPoint is not
52237         attached, the result will be null, since the distribution is not calculated correctly.
52238         (WebCore):
52239         * html/shadow/InsertionPoint.h:
52240         (InsertionPoint):
52241         * testing/Internals.cpp:
52242         (WebCore::Internals::distributedNodes):
52243         (WebCore):
52244         * testing/Internals.h:
52245         (Internals):
52246         * testing/Internals.idl:
52247
52248 2012-10-10  Wei James  <james.wei@intel.com>
52249
52250         [Chromium]Android x86 content shell debug build warning for uninitialized value used as error with gcc 4.6
52251         https://bugs.webkit.org/show_bug.cgi?id=98629
52252
52253         Reviewed by Adam Barth.
52254
52255         Warning was taken as error for uninitialized value being used when
52256         building content shell for Android x86 with gcc 4.6.
52257
52258         * WebCore.gyp/WebCore.gyp:
52259
52260 2012-10-10  Andrei Bucur  <abucur@adobe.com>
52261
52262         [CSS Regions] Create a separate list for the invalid regions
52263         https://bugs.webkit.org/show_bug.cgi?id=98752
52264
52265         Reviewed by Andreas Kling.
52266
52267         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:
52268         - iterations through the region list don't need to worry about invalid regions
52269         - accessing the first/last region is straightforward
52270         - list manipulations are easier to implement (e.g. binary search for a region)
52271
52272         Tests: Adapted fast/regions/flows-dependency-same-flow.html to use the new dump format for the region chain.
52273
52274         * dom/WebKitNamedFlow.cpp:
52275         (WebCore::WebKitNamedFlow::getRegionsByContent): Now returns only the valid regions.
52276         (WebCore::WebKitNamedFlow::getRegions): Now returns only the valid regions.
52277         * rendering/RenderFlowThread.cpp:
52278         (WebCore::RenderFlowThread::RenderFlowThread):
52279         (WebCore::RenderFlowThread::layout):
52280         (WebCore::RenderFlowThread::updateLogicalWidth):
52281         (WebCore::RenderFlowThread::computeLogicalHeight):
52282         (WebCore::RenderFlowThread::repaintRectangleInRegions):
52283         (WebCore::RenderFlowThread::regionAtBlockOffset):
52284         (WebCore::RenderFlowThread::removeRenderBoxRegionInfo):
52285         (WebCore::RenderFlowThread::logicalWidthChangedInRegions):
52286         (WebCore::RenderFlowThread::firstRegion):
52287         (WebCore::RenderFlowThread::lastRegion):
52288         (WebCore::RenderFlowThread::computeOverflowStateForRegions):
52289         (WebCore::RenderFlowThread::regionInRange):
52290         (WebCore::RenderFlowThread::checkRegionsWithStyling):
52291         (WebCore::RenderFlowThread::objectInFlowRegion):
52292         (WebCore::RenderFlowThread::autoLogicalHeightRegionsCount):
52293         * rendering/RenderFlowThread.h:
52294         * rendering/RenderNamedFlowThread.cpp:
52295         (WebCore):
52296         (WebCore::addRegionToList):
52297         (WebCore::RenderNamedFlowThread::addRegionToThread):
52298         (WebCore::RenderNamedFlowThread::removeRegionFromThread):
52299         (WebCore::RenderNamedFlowThread::checkInvalidRegions):
52300         * rendering/RenderNamedFlowThread.h:
52301         (WebCore::RenderNamedFlowThread::invalidRenderRegionList):
52302         (RenderNamedFlowThread):
52303         (WebCore::RenderNamedFlowThread::canBeDestroyed):
52304         * rendering/RenderTreeAsText.cpp:
52305         (WebCore::writeRenderRegionList):
52306         (WebCore):
52307         (WebCore::writeRenderNamedFlowThreads): The valid regions are listed first followed by the invalid regions.
52308
52309 2012-10-10  Vsevolod Vlasov  <vsevik@chromium.org>
52310
52311         Web Inspector: [Regression] Stale revisions are not cleared when inspector is opened for the already loaded page.
52312         https://bugs.webkit.org/show_bug.cgi?id=98915
52313
52314         Reviewed by Alexander Pavlov.
52315
52316         WorkspaceController now clears stale revisions on navigation as well.
52317
52318         * inspector/front-end/Workspace.js:
52319         (WebInspector.WorkspaceController):
52320         (WebInspector.WorkspaceController.prototype._mainFrameNavigated):
52321
52322 2012-10-10  Vsevolod Vlasov  <vsevik@chromium.org>
52323
52324         Web Inspector: Exception when committing java script editing with revision history view open.
52325         https://bugs.webkit.org/show_bug.cgi?id=98908
52326
52327         Reviewed by Alexander Pavlov.
52328
52329         Added null check.
52330
52331         * inspector/front-end/RevisionHistoryView.js:
52332
52333 2012-10-10  Pavel Feldman  <pfeldman@chromium.org>
52334
52335         Web Inspector: protect node in the InspectorDOMNode::inspect
52336         https://bugs.webkit.org/show_bug.cgi?id=98914
52337
52338         Reviewed by Yury Semikhatsky.
52339
52340         * inspector/InspectorDOMAgent.cpp:
52341         (WebCore::InspectorDOMAgent::inspect):
52342
52343 2012-10-10  Mike West  <mkwst@google.com>
52344
52345         EditorCommand calls setProperty with the wrong parameters.
52346         https://bugs.webkit.org/show_bug.cgi?id=98896
52347
52348         Reviewed by Jochen Eisinger.
52349
52350         EditorCommand::executeToggleStyleInList calls
52351         StylePropertySet::setProperty with an ExceptionCode as the final
52352         argument. This only succeeds because it's automagically cast to a bool,
52353         which is what the method actually expects.
52354
52355         Implicitly passing in 'false' by dropping the parameter shouldn't change
52356         any visible functionality; no new tests are required.
52357
52358         * editing/EditorCommand.cpp:
52359         (WebCore::executeToggleStyleInList):
52360
52361 2012-10-10  Mike West  <mkwst@google.com>
52362
52363         HTMLTextFormControlElement calls setInlineStyleProperty with the wrong parameters.
52364         https://bugs.webkit.org/show_bug.cgi?id=98892
52365
52366         Reviewed by Jochen Eisinger.
52367
52368         HTMLTextFormControlElement::updatePlaceholderVisibility calls
52369         HTMLElement::setInlineStyleProperty with an ExceptionCode as the last
52370         parameter. This only succeeds because it's automagically cast to a bool,
52371         which is what the method actually expects.
52372
52373         Implicitly passing in 'false' by dropping the parameter shouldn't change
52374         any functionality; so no new tests are required.
52375
52376         * html/HTMLTextFormControlElement.cpp:
52377         (WebCore::HTMLTextFormControlElement::updatePlaceholderVisibility):
52378
52379 2012-10-10  Christophe Dumez  <christophe.dumez@intel.com>
52380
52381         SQLResultSet.rowsAffected not cleared
52382         https://bugs.webkit.org/show_bug.cgi?id=46070
52383
52384         Reviewed by Kenneth Rohde Christiansen.
52385
52386         SQLResultSet.rowsAffected is supposed to return the number
52387         of rows that were changed by the statement. For "SELECT"
52388         statements, it should return 0.
52389
52390         However, our implementation currently relies on sqlite3_changes()
52391         to compute this value. sqlite3_changes() returns the number of
52392         direct row changes in the most recent INSERT, UPDATE, or DELETE
52393         statement within the same trigger context. Unfortunately, the
52394         most recent INSERT, UPDATE, or DELETE statement may not be the
52395         last statement. As a consequence, if you INSERT 1 row, then
52396         do a SELECT, SQLResultSet.rowsAffected will be 1 for both the
52397         INSERT and the SELECT statements.
52398
52399         The proposed solution is to use sqlite3_total_changes() instead
52400         of sqlite3_changes(). sqlite3_total_changes() returns the number
52401         of row changes caused by INSERT, UPDATE or DELETE statements since
52402         the database connection was opened. We now store the value
52403         returned by sqlite3_total_changes() before each statement in
52404         order to return the count difference in
52405         SQLiteDatabase::lastChanges().
52406
52407         Test: storage/websql/execute-sql-rowsAffected.html
52408
52409         * platform/sql/SQLiteDatabase.cpp:
52410         (WebCore::SQLiteDatabase::SQLiteDatabase):
52411         (WebCore::SQLiteDatabase::updateLastChangesCount):
52412         (WebCore):
52413         (WebCore::SQLiteDatabase::lastChanges):
52414         * platform/sql/SQLiteDatabase.h:
52415         (SQLiteDatabase):
52416         * platform/sql/SQLiteStatement.cpp:
52417         (WebCore::SQLiteStatement::step):
52418
52419 2012-10-10  Keishi Hattori  <keishi@webkit.org>
52420
52421         REGRESSION (r129738): Calendar picker is too wide when the input is rtl
52422         https://bugs.webkit.org/show_bug.cgi?id=98881
52423
52424         Reviewed by Kent Tamura.
52425
52426         Calendar picker should use param.isCalendarRTL instead of param.isRTL but some were left.
52427
52428         No new tests. Covered by ManualTests/forms/calendar-picker.html.
52429
52430         * Resources/pagepopups/calendarPicker.js:
52431         (CalendarPicker.prototype.fixWindowSize): Calendar picker should use param.isCalendarRTL instead of param.isRTL.
52432         (DaysTable.prototype._handleKey): Ditto.
52433
52434 2012-10-10  Alexander Pavlov  <apavlov@chromium.org>
52435
52436         Web Inspector: Semantically incorrect CSS rules result in broken source code data
52437         https://bugs.webkit.org/show_bug.cgi?id=98520
52438
52439         Reviewed by Vsevolod Vlasov.
52440
52441         Pop and throw away rule data from the stack when data have been collected for a semantically invalid CSS rule
52442         (which is not going to be created).
52443
52444         * css/CSSParser.cpp:
52445         (WebCore::CSSParser::createImportRule):
52446         (WebCore::CSSParser::createFontFaceRule):
52447         (WebCore::CSSParser::createPageRule):
52448         (WebCore::CSSParser::createRegionRule):
52449
52450 2012-10-10  Zeno Albisser  <zeno@webkit.org>
52451
52452         [Qt][Mac] GL_ARB_texture_rectangle must be activated when using ANGLE.
52453         https://bugs.webkit.org/show_bug.cgi?id=98387
52454
52455         Check for the availability of GL_ARB_texture_rectangle extension.
52456         In case it is available, we activate the extension for ANGLE.
52457         This is necessary for WebGL on mac, because the GraphicsSurface
52458         on this platform is based on an IOSurface, which requires this extension.
52459
52460         Reviewed by Noam Rosenthal.
52461
52462         * platform/graphics/qt/GraphicsContext3DQt.cpp:
52463         (WebCore::GraphicsContext3DPrivate::initializeANGLE):
52464
52465 2012-10-10  Andreas Kling  <kling@webkit.org>
52466
52467         ElementAttributeData: tighten member packing on 64-bit.
52468         <http://webkit.org/b/98861>
52469
52470         Reviewed by Anders Carlsson.
52471
52472         Pack m_isMutable and m_arraySize into the slack from the RefCounted base on 64-bit.
52473         218kB progression on Membuster3.
52474
52475         * dom/ElementAttributeData.h:
52476         (ElementAttributeData):
52477
52478 2012-10-10  Alexandre Elias  <aelias@chromium.org>
52479
52480         Text Autosizing: Counteract funky window sizing on Android.
52481         https://bugs.webkit.org/show_bug.cgi?id=98809
52482
52483         Reviewed by Adam Barth.
52484
52485         In Chrome for Android, the window sizes provided to WebCore are
52486         currently in physical screen pixels instead of
52487         device-scale-adjusted units. For example window width on a
52488         Galaxy Nexus is 720 instead of 360.  Text autosizing expects
52489         device-independent pixels.  When Chrome for Android cuts over to
52490         the new coordinate space, it will be tied to the setting
52491         applyPageScaleFactorInCompositor.
52492
52493         No new tests.
52494
52495         * rendering/TextAutosizer.cpp:
52496         (WebCore::TextAutosizer::processSubtree):
52497
52498 2012-10-09  Philip Rogers  <pdr@google.com>
52499
52500         Recursively detach SVGElementInstances
52501         https://bugs.webkit.org/show_bug.cgi?id=98851
52502
52503         Reviewed by Ryosuke Niwa and Abhishek Arya
52504
52505         Before this patch, SVGElementInstance child nodes were not being detached. This
52506         patch makes detach() recursively detach SVGElementInstances.
52507
52508         * svg/SVGElementInstance.cpp:
52509         (WebCore::SVGElementInstance::detach):
52510
52511 2012-10-09  Kenichi Ishibashi  <bashi@chromium.org>
52512
52513         [Chromium] Fix harfbuzz-ng related code after r130231
52514         https://bugs.webkit.org/show_bug.cgi?id=98858
52515
52516         Reviewed by Kent Tamura.
52517
52518         Replace first/second with key/value.
52519
52520         No new tests. No changes in behavior.
52521
52522         * platform/graphics/harfbuzz/ng/HarfBuzzNGFaceSkia.cpp:
52523         (WebCore::harfbuzzGetGlyph):
52524         * platform/graphics/skia/SimpleFontDataSkia.cpp:
52525         (WebCore::SimpleFontData::canRenderCombiningCharacterSequence):
52526
52527 2012-10-09  Enrica Casucci  <enrica@apple.com>
52528
52529         Only measure text once instead of twice when performing line layout.
52530         https://bugs.webkit.org/show_bug.cgi?id=98317
52531         <rdar://problem/12080821>
52532
52533         Reviewed by Dan Bernstein.
52534
52535         Since we are measuring each word to find out where the line break should occur,
52536         we should cache that information to avoid measuring the run again when
52537         creating the line box. The bulk of the change is in nextLineBreak, where
52538         the measurements are collected and placed in a vector so that they can
52539         be consumed in setLogicalWidthForTextRun where we used to measure the
52540         text one more time.
52541         Each entry in the vector is a WordMeasurement object that contains information
52542         about the start and end offset in the run, the renderer, the measured width
52543         and, possibly, a list of fallback fonts.
52544         When we need to compute the width of the run to create the line box, we add
52545         all the measurements for the given renderer in the run to get the total width.
52546         This optiomization is currently disabled for platforms using HarfBuzz.
52547
52548         * platform/graphics/Font.cpp:
52549         (WebCore::Font::width): Added fallback fonts parameter.
52550         * platform/graphics/Font.h:
52551         (Font): Added fallback fonts parameter to the width static member function.
52552         This method is called when we compute the width using TextLayout.
52553         * platform/graphics/mac/ComplexTextController.cpp:
52554         (WebCore::TextLayout::width): Added fallback fonts parameter.
52555         (WebCore::Font::width):
52556         (WebCore::ComplexTextController::advance):
52557         * platform/graphics/mac/ComplexTextController.h:
52558         (ComplexTextController): Added fallback fonts parameter to advance method.
52559         * rendering/RenderBlock.h: Added WordMeasures parameter to few methods.
52560         * rendering/RenderBlockLineLayout.cpp:
52561         (WordMeasurement): Added new class to hold measurement information.
52562         (WebCore::setLogicalWidthForTextRun): This is where we compute the run width using the
52563         cached information.
52564         (WebCore::RenderBlock::computeInlineDirectionPositionsForLine): Added wordMeasures parameter.
52565         (WebCore::RenderBlock::createLineBoxesFromBidiRuns): Added wordMeasures parameter.
52566         (WebCore::RenderBlock::layoutRunsAndFloatsInRange): Added declaration of the WordMeasures
52567         vector and its use.
52568         (WebCore::textWidth): Added fallbackFonts parameter, since now we only measure once.
52569         (WebCore::RenderBlock::LineBreaker::nextLineBreak): This method has been modified to collect
52570         the measurements of the individual words and add them to the vector.
52571
52572 2012-10-09  Andreas Kling  <kling@webkit.org>
52573
52574         GlyphPageTreeNode should use HashMap<OwnPtr>.
52575         <http://webkit.org/b/98845>
52576
52577         Reviewed by Dan Bernstein.
52578
52579         - Replace manual memory management by OwnPtrs.
52580         - Added a GlyphPageTreeNodeMap typedef to make call sites look a bit nicer.
52581         = Changed some hashmap get()/remove() pairs to use the more efficient take() instead.
52582         - Made the constructor private, it has no external clients.
52583
52584         * platform/graphics/GlyphPageTreeNode.cpp:
52585         (WebCore::GlyphPageTreeNode::getRoot):
52586         (WebCore::GlyphPageTreeNode::pageCount):
52587         (WebCore::GlyphPageTreeNode::getChild):
52588         (WebCore::GlyphPageTreeNode::pruneCustomFontData):
52589         (WebCore::GlyphPageTreeNode::pruneFontData):
52590         (WebCore::GlyphPageTreeNode::showSubtree):
52591         * platform/graphics/GlyphPageTreeNode.h:
52592         (GlyphPageTreeNode):
52593         (WebCore::GlyphPageTreeNode::GlyphPageTreeNode):
52594
52595 2012-10-09  Kent Tamura  <tkent@chromium.org>
52596
52597         Sub-fields in input[type=time] should not be focusable if the input is disabled or read-only
52598         https://bugs.webkit.org/show_bug.cgi?id=98850
52599
52600         Reviewed by Kentaro Hara.
52601
52602         Covered by additional test cases of
52603         time-multiple-fields/time-multiple-fields-keyboard-events.html and
52604         time-multiple-fields/time-multiple-fields-mouse-events.html.
52605
52606         * html/shadow/DateTimeFieldElement.h:
52607         (FieldOwner): Add isFieldOwnerDisabledOrReadOnly.
52608         * html/shadow/DateTimeFieldElement.cpp:
52609         (WebCore::DateTimeFieldElement::isFocusable):
52610         Check isFieldOwnerDisabledOrReadOnly, and calls HTMLElement::isFocusable()
52611         just in case.
52612         * html/shadow/DateTimeEditElement.cpp:
52613         (WebCore::DateTimeEditElement::isFieldOwnerDisabledOrReadOnly): Added.
52614         * html/shadow/DateTimeEditElement.h:
52615         (DateTimeEditElement): Declare isFieldOwnerDisabledOrReadOnly.
52616
52617 2012-10-09  Robert Kroeger  <rjkroege@chromium.org>
52618
52619         [chromium] revert fling deacceleration parameter change
52620         https://bugs.webkit.org/show_bug.cgi?id=98820
52621
52622         Reviewed by Adrienne Walker.
52623
52624         After an extended discussion, it has been decided that a previous
52625         adjustment to fling deacceleration parameters should be reverted.
52626
52627         Tested by existing unit tests.
52628
52629         * platform/TouchFlingPlatformGestureCurve.cpp:
52630         (WebCore::TouchFlingPlatformGestureCurve::createForTouchPad):
52631         (WebCore::TouchFlingPlatformGestureCurve::createForTouchScreen):
52632
52633 2012-10-09  Kent Tamura  <tkent@chromium.org>
52634
52635         Should reject invalid dates constructed with multiple fields UI
52636         https://bugs.webkit.org/show_bug.cgi?id=98727
52637
52638         Reviewed by Hajime Morita.
52639
52640         In input[type=date] with multiple fields UI, we allow users to set
52641         day-of-month value to 1-31 regardless of the month value. So users can
52642         construct an invalid date such as "2012-02-31". We should sanitize such
52643         values.
52644
52645         This change affects platforms with ENABLE_INPUT_TYPE_DATE &&
52646         ENABLE_INPUT_MULTIPLE_FIELDS_UI.
52647
52648         Test: fast/forms/date-multiple-fields/date-multiple-fields-keyboard-events.html
52649
52650         * html/BaseDateAndTimeInputType.h:
52651         (BaseDateAndTimeInputType): Make sanitizeValue protected to be called from
52652         BaseMultipleFieldsDateAndTimeInputType.
52653         * html/BaseMultipleFieldsDateAndTimeInputType.cpp:
52654         (WebCore::BaseMultipleFieldsDateAndTimeInputType::editControlValueChanged):
52655         Apply sanitizeValue to a value constructed in UI.
52656         (WebCore::BaseMultipleFieldsDateAndTimeInputType::restoreFormControlState):
52657         Ditto.
52658
52659 2012-10-09  Joe Mason  <jmason@rim.com>
52660
52661         Check for null m_frame in NetworkJob
52662         https://bugs.webkit.org/show_bug.cgi?id=98830
52663
52664         Reviewed by George Staikos.
52665
52666         PR 220025
52667
52668         * platform/network/blackberry/NetworkJob.cpp:
52669         (WebCore::NetworkJob::sendRequestWithCredentials):
52670         (WebCore::NetworkJob::storeCredentials):
52671
52672 2012-10-09  Jian Li  <jianli@chromium.org>
52673
52674         Update the CSS property used to support draggable regions.
52675         https://bugs.webkit.org/show_bug.cgi?id=97156
52676
52677         Reviewed by Adam Barth.
52678
52679         The CSS property to support draggable regions has been changed from
52680         "-webkit-widget-region" to "-webkit-app-region" in the following syntax:
52681            -webkit-app-region: drag|no-drag
52682
52683         The CSS parsing code for draggable regions is now different from the CSS
52684         parsing code for dashboard regions since we have quite different syntax.
52685
52686         We still try to share as much rendering update code as possible for
52687         these two features. To make the shared code easier to understand for
52688         both features, the name "DashboardRegions" in the shared code is changed
52689         to "AnnotatedRegions" to work for both dashboard regions and draggable
52690         regions.
52691
52692         Note that we still using WIDGET_REGION as feature name in order not to
52693         add more changes to this patch. It will be renamed to a more appropriate
52694         name in next patch. WIDGET_REGION is now only turned on for the chromium
52695         port.
52696
52697         Test: fast/css/draggable-region-parser.html
52698
52699         * Configurations/FeatureDefines.xcconfig: Disable WIDGET_REGION feature.
52700         * WebCore.exp.in: Update the exported symbol due to renaming.
52701         * css/CSSComputedStyleDeclaration.cpp: Update the CSS parsing.
52702         (WebCore):
52703         (WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue):
52704         * css/CSSParser.cpp: Update the CSS parsing.
52705         (WebCore::CSSParser::parseValue):
52706         (WebCore):
52707         (WebCore::CSSParser::parseDashboardRegions):
52708         * css/CSSParserValues.cpp: Update the CSS parsing.
52709         (WebCore::CSSParserValue::createCSSValue):
52710         * css/CSSPrimitiveValue.cpp: Update the CSS parsing.
52711         (WebCore::isValidCSSUnitTypeForDoubleConversion):
52712         (WebCore):
52713         (WebCore::CSSPrimitiveValue::cleanup):
52714         (WebCore::CSSPrimitiveValue::customCssText):
52715         (WebCore::CSSPrimitiveValue::cloneForCSSOM):
52716         (WebCore::CSSPrimitiveValue::reportDescendantMemoryUsage):
52717         * css/CSSPrimitiveValue.h: Update the CSS parsing.
52718         (CSSPrimitiveValue):
52719         * css/CSSProperty.cpp:
52720         (WebCore::CSSProperty::isInheritedProperty):
52721         * css/CSSPropertyNames.in: Rename the CSS property for draggable region.
52722         * css/CSSValueKeywords.in: Add the keywords supported for the draggable region.
52723         * css/DashboardRegion.h: Remove WIDGET_REGION guard.
52724         (DashboardRegion):
52725         * css/StyleResolver.cpp: Update the CSS parsing.
52726         (WebCore::StyleResolver::collectMatchingRulesForList):
52727         * dom/Document.cpp: Rename dashboardRegions to annotatedRegions.
52728         (WebCore::Document::Document):
52729         (WebCore::Document::annotatedRegions):
52730         (WebCore::Document::setAnnotatedRegions):
52731         (WebCore::Document::reportMemoryUsage):
52732         * dom/Document.h: Rename dashboardRegions to annotatedRegions.
52733         (WebCore):
52734         (WebCore::Document::setAnnotatedRegionsDirty):
52735         (WebCore::Document::annotatedRegionsDirty):
52736         (WebCore::Document::hasAnnotatedRegions):
52737         (WebCore::Document::setHasAnnotatedRegions):
52738         (Document):
52739         * page/Chrome.cpp: Rename dashboardRegions to annotatedRegions.
52740         (WebCore::ChromeClient::annotatedRegionsChanged):
52741         * page/ChromeClient.h: Rename dashboardRegions to annotatedRegions.
52742         (ChromeClient):
52743         * page/FrameView.cpp: Rename dashboardRegions to annotatedRegions.
52744         (WebCore::FrameView::layout):
52745         (WebCore::FrameView::updateAnnotatedRegions):
52746         (WebCore::FrameView::paintContents):
52747         * page/FrameView.h: Rename dashboardRegions to annotatedRegions.
52748         (FrameView):
52749         * rendering/RenderInline.cpp:
52750         (WebCore::RenderInline::addAnnotatedRegions):
52751         * rendering/RenderInline.h: Rename dashboardRegions to annotatedRegions.
52752         (RenderInline):
52753         * rendering/RenderLayer.cpp: Rename dashboardRegions to annotatedRegions.
52754         (WebCore::RenderLayer::scrollTo):
52755         (WebCore::RenderLayer::setHasHorizontalScrollbar):
52756         (WebCore::RenderLayer::setHasVerticalScrollbar):
52757         (WebCore::RenderLayer::updateScrollbarsAfterLayout):
52758         * rendering/RenderListBox.cpp: Rename dashboardRegions to annotatedRegions.
52759         (WebCore::RenderListBox::setHasVerticalScrollbar):
52760         * rendering/RenderObject.cpp: Rename dashboardRegions to annotatedRegions.
52761         (WebCore::RenderObject::styleWillChange):
52762         (WebCore::RenderObject::addAnnotatedRegions):
52763         (WebCore::RenderObject::collectAnnotatedRegions):
52764         * rendering/RenderObject.h: Rename dashboardRegions to annotatedRegions.
52765         (WebCore::AnnotatedRegionValue::operator==):
52766         (WebCore::AnnotatedRegionValue::operator!=):
52767         (AnnotatedRegionValue):
52768         (RenderObject):
52769         * rendering/style/RenderStyle.cpp: Update the CSS parsing.
52770         (WebCore::RenderStyle::diff):
52771         (WebCore):
52772         * rendering/style/RenderStyle.h: Update the CSS parsing.
52773         * rendering/style/RenderStyleConstants.h: Update the CSS parsing.
52774         * rendering/style/StyleDashboardRegion.h: Update the CSS parsing.
52775         * rendering/style/StyleRareNonInheritedData.cpp: Update the CSS parsing.
52776         (WebCore::StyleRareNonInheritedData::StyleRareNonInheritedData):
52777         (WebCore::StyleRareNonInheritedData::operator==):
52778         * rendering/style/StyleRareNonInheritedData.h: Update the CSS parsing.
52779         (WebCore):
52780         (StyleRareNonInheritedData):
52781
52782 2012-10-09  Sheriff Bot  <webkit.review.bot@gmail.com>
52783
52784         Unreviewed, rolling out r130811 and r130821.
52785         http://trac.webkit.org/changeset/130811
52786         http://trac.webkit.org/changeset/130821
52787         https://bugs.webkit.org/show_bug.cgi?id=98831
52788
52789         Broke date-suggestion-picker-appearance-with-scroll-bar.html
52790         (Requested by abarth|gardening on #webkit).
52791
52792         * WebCore.exp.in:
52793         * dom/ContainerNode.cpp:
52794         (WebCore::ContainerNode::getUpperLeftCorner):
52795         (WebCore::ContainerNode::getLowerRightCorner):
52796         * dom/MouseRelatedEvent.cpp:
52797         (WebCore::MouseRelatedEvent::computeRelativePosition):
52798         * dom/Node.cpp:
52799         (WebCore::Node::convertToPage):
52800         (WebCore::Node::convertFromPage):
52801         * editing/FrameSelection.cpp:
52802         (WebCore::CaretBase::absoluteBoundsForLocalRect):
52803         * editing/RenderedPosition.cpp:
52804         (WebCore::RenderedPosition::absoluteRect):
52805         * editing/VisiblePosition.cpp:
52806         (WebCore::VisiblePosition::absoluteCaretBounds):
52807         * html/HTMLSelectElement.cpp:
52808         (WebCore::HTMLSelectElement::listBoxDefaultEventHandler):
52809         * html/shadow/SliderThumbElement.cpp:
52810         (WebCore::SliderThumbElement::setPositionFromPoint):
52811         * html/shadow/SpinButtonElement.cpp:
52812         (WebCore::SpinButtonElement::defaultEventHandler):
52813         * page/FrameView.cpp:
52814         (WebCore::FrameView::convertFromRenderer):
52815         (WebCore::FrameView::convertToRenderer):
52816         * rendering/InlineTextBox.cpp:
52817         (WebCore::InlineTextBox::paintDocumentMarker):
52818         (WebCore::InlineTextBox::paintTextMatchMarker):
52819         (WebCore::InlineTextBox::computeRectForReplacementMarker):
52820         * rendering/LayoutState.cpp:
52821         (WebCore::LayoutState::LayoutState):
52822         * rendering/RenderBlock.cpp:
52823         (WebCore::RenderBlock::absoluteQuads):
52824         * rendering/RenderBox.cpp:
52825         (WebCore::RenderBox::absoluteQuads):
52826         (WebCore::RenderBox::absoluteContentBox):
52827         (WebCore::RenderBox::mapLocalToContainer):
52828         (WebCore::RenderBox::mapAbsoluteToLocalPoint):
52829         * rendering/RenderBox.h:
52830         (RenderBox):
52831         * rendering/RenderBoxModelObject.cpp:
52832         (WebCore::RenderBoxModelObject::computeStickyPositionConstraints):
52833         (WebCore::RenderBoxModelObject::mapAbsoluteToLocalPoint):
52834         * rendering/RenderBoxModelObject.h:
52835         (RenderBoxModelObject):
52836         * rendering/RenderEmbeddedObject.cpp:
52837         (WebCore::RenderEmbeddedObject::isInUnavailablePluginIndicator):
52838         * rendering/RenderFrameSet.cpp:
52839         (WebCore::RenderFrameSet::userResize):
52840         * rendering/RenderGeometryMap.cpp:
52841         (WebCore::RenderGeometryMap::absolutePoint):
52842         * rendering/RenderInline.cpp:
52843         (WebCore::RenderInline::mapLocalToContainer):
52844         * rendering/RenderInline.h:
52845         (RenderInline):
52846         * rendering/RenderLayer.cpp:
52847         (WebCore::RenderLayer::absoluteToContents):
52848         (WebCore::RenderLayer::convertToLayerCoords):
52849         (WebCore::RenderLayer::scrollTo):
52850         (WebCore::RenderLayer::calculateClipRects):
52851         (WebCore::RenderLayer::childrenClipRect):
52852         (WebCore::RenderLayer::selfClipRect):
52853         * rendering/RenderLayerBacking.cpp:
52854         (WebCore::RenderLayerBacking::contentsVisible):
52855         * rendering/RenderMediaControls.cpp:
52856         (WebCore::RenderMediaControls::volumeSliderOffsetFromMuteButton):
52857         * rendering/RenderMenuList.cpp:
52858         (WebCore::RenderMenuList::showPopup):
52859         * rendering/RenderObject.cpp:
52860         (WebCore::RenderObject::absoluteFocusRingQuads):
52861         (WebCore::RenderObject::localToAbsolute):
52862         (WebCore::RenderObject::absoluteToLocal):
52863         (WebCore::RenderObject::mapLocalToContainer):
52864         (WebCore::RenderObject::mapAbsoluteToLocalPoint):
52865         (WebCore::RenderObject::localToContainerQuad):
52866         (WebCore::RenderObject::localToContainerPoint):
52867         * rendering/RenderObject.h:
52868         (RenderObject):
52869         (WebCore::RenderObject::localToAbsoluteQuad):
52870         * rendering/RenderText.cpp:
52871         (WebCore::RenderText::absoluteRectsForRange):
52872         (WebCore::RenderText::absoluteQuads):
52873         (WebCore::RenderText::absoluteQuadsForRange):
52874         * rendering/RenderTheme.cpp:
52875         (WebCore::RenderTheme::volumeSliderOffsetFromMuteButton):
52876         * rendering/RenderView.cpp:
52877         (WebCore::RenderView::mapLocalToContainer):
52878         (WebCore::RenderView::mapAbsoluteToLocalPoint):
52879         (WebCore::RenderView::selectionBounds):
52880         * rendering/RenderView.h:
52881         (RenderView):
52882         * rendering/RenderWidget.cpp:
52883         (WebCore::RenderWidget::updateWidgetGeometry):
52884         * rendering/svg/RenderSVGForeignObject.cpp:
52885         (WebCore::RenderSVGForeignObject::mapLocalToContainer):
52886         * rendering/svg/RenderSVGForeignObject.h:
52887         (RenderSVGForeignObject):
52888         * rendering/svg/RenderSVGInline.cpp:
52889         (WebCore::RenderSVGInline::mapLocalToContainer):
52890         * rendering/svg/RenderSVGInline.h:
52891         (RenderSVGInline):
52892         * rendering/svg/RenderSVGModelObject.cpp:
52893         (WebCore::RenderSVGModelObject::mapLocalToContainer):
52894         (WebCore::RenderSVGModelObject::absoluteQuads):
52895         * rendering/svg/RenderSVGModelObject.h:
52896         (RenderSVGModelObject):
52897         * rendering/svg/RenderSVGRoot.cpp:
52898         (WebCore::RenderSVGRoot::mapLocalToContainer):
52899         * rendering/svg/RenderSVGRoot.h:
52900         (RenderSVGRoot):
52901         * rendering/svg/RenderSVGText.cpp:
52902         (WebCore::RenderSVGText::mapLocalToContainer):
52903         (WebCore::RenderSVGText::absoluteQuads):
52904         * rendering/svg/RenderSVGText.h:
52905         (RenderSVGText):
52906         * rendering/svg/SVGRenderSupport.cpp:
52907         (WebCore::SVGRenderSupport::mapLocalToContainer):
52908         * svg/SVGSVGElement.cpp:
52909         (WebCore::SVGSVGElement::localCoordinateSpaceTransform):
52910
52911 2012-10-09  Sheriff Bot  <webkit.review.bot@gmail.com>
52912
52913         Unreviewed, rolling out r130812.
52914         http://trac.webkit.org/changeset/130812
52915         https://bugs.webkit.org/show_bug.cgi?id=98826
52916
52917         Caused fast/text/shaping/shaping-selection-rect to fail
52918         (Requested by abarth|gardening on #webkit).
52919
52920         * platform/graphics/Font.cpp:
52921         (WebCore::Font::width):
52922         * platform/graphics/Font.h:
52923         (Font):
52924         * platform/graphics/mac/ComplexTextController.cpp:
52925         (WebCore::TextLayout::width):
52926         (WebCore::Font::width):
52927         (WebCore::ComplexTextController::advance):
52928         * platform/graphics/mac/ComplexTextController.h:
52929         (ComplexTextController):
52930         * rendering/RenderBlock.h:
52931         (WebCore):
52932         (LineBreaker):
52933         (RenderBlock):
52934         * rendering/RenderBlockLineLayout.cpp:
52935         (WebCore::setLogicalWidthForTextRun):
52936         (WebCore::RenderBlock::computeInlineDirectionPositionsForLine):
52937         (WebCore::RenderBlock::createLineBoxesFromBidiRuns):
52938         (WebCore::RenderBlock::layoutRunsAndFloatsInRange):
52939         (WebCore::textWidth):
52940         (WebCore::RenderBlock::LineBreaker::nextLineBreak):
52941
52942 2012-10-09  Ryosuke Niwa  <rniwa@webkit.org>
52943
52944         DOM/textarea-edit.html spends 35% of time in numGraphemeClusters
52945         https://bugs.webkit.org/show_bug.cgi?id=98711
52946
52947         Reviewed by Kent Tamura.
52948
52949         Since the number of characters is always greater than the number of grapheme clusters,
52950         we can avoid calling computeLengthForSubmission when the number of characters is less
52951         than maxlength. We still have to count the number of LFs since they all need to be
52952         converted into CRLFs. This improves WebKit's score on DOM/textarea-edit.html by 45%.
52953
52954         * html/HTMLTextAreaElement.cpp:
52955         (WebCore::computeLengthForSubmission):
52956         (WebCore::numberOfLineBreaks):
52957         (WebCore::upperBoundForLengthForSubmission): Added.
52958         (WebCore::HTMLTextAreaElement::handleBeforeTextInsertedEvent):
52959         (WebCore::HTMLTextAreaElement::tooLong):
52960
52961 2012-10-09  Nate Chapin  <japhet@chromium.org>
52962
52963         Make CachedResourceLoader RefCounted and have both Document
52964         and DocumentLoader hold RefPtrs. This is in preparation for
52965         caching main resources.
52966         https://bugs.webkit.org/show_bug.cgi?id=86787
52967
52968         Reviewed by Adam Barth.
52969
52970         No new tests, no functionality changes at this time.
52971
52972         * WebCore.exp.in:
52973         * WebCore.xcodeproj/project.pbxproj:
52974         * dom/Document.cpp:
52975         (WebCore::Document::Document): Only create our own CachedResourceLoader
52976             if we were given a null frame.
52977         (WebCore::Document::~Document):
52978         (WebCore::Document::cachedResourceLoader):
52979         (WebCore):
52980         * dom/Document.h:
52981         (Document):
52982         * loader/DocumentLoader.cpp: Throughout, use our m_cachedResourceLoader instead
52983             of the Document's pointer.
52984         (WebCore::DocumentLoader::DocumentLoader): Create a CachedResourceLoader.
52985         (WebCore::DocumentLoader::~DocumentLoader):
52986         (WebCore::DocumentLoader::isLoadingInAPISense):
52987         (WebCore::DocumentLoader::subresource):
52988         (WebCore::DocumentLoader::getSubresources):
52989         * loader/DocumentLoader.h:
52990         (WebCore::DocumentLoader::cachedResourceLoader):
52991         (DocumentLoader):
52992         * loader/SubresourceLoader.cpp: Remove m_document, since it only existed to keep alive and access the CachedResourceLoader.
52993             It can now be accessed from m_documentLoader.
52994         (WebCore::SubresourceLoader::SubresourceLoader):
52995         (WebCore::SubresourceLoader::~SubresourceLoader):
52996         (WebCore::SubresourceLoader::willSendRequest):
52997         (WebCore::SubresourceLoader::releaseResources):
52998         * loader/SubresourceLoader.h:
52999         (SubresourceLoader):
53000         * loader/cache/CachedResourceLoader.cpp: Handle the possibility of a null Document in several places.
53001         (WebCore::CachedResourceLoader::CachedResourceLoader):
53002         (WebCore::CachedResourceLoader::~CachedResourceLoader):
53003         (WebCore::CachedResourceLoader::frame):
53004         (WebCore::CachedResourceLoader::canRequest):
53005         (WebCore::CachedResourceLoader::determineRevalidationPolicy):
53006         (WebCore::CachedResourceLoader::printAccessDeniedMessage):
53007         (WebCore::CachedResourceLoader::loadDone):
53008         * loader/cache/CachedResourceLoader.h:
53009         (WebCore):
53010         (WebCore::CachedResourceLoader::create): Add create(), make constructor private.
53011         (CachedResourceLoader):
53012         (WebCore::CachedResourceLoader::document):
53013         (WebCore::CachedResourceLoader::setDocument):
53014         (WebCore::CachedResourceLoader::clearDocumentLoader):
53015
53016 2012-10-09  Alexander Shalamov  <alexander.shalamov@intel.com>
53017
53018         CSS Style is not recalculated when media attribute of style element is changed
53019         https://bugs.webkit.org/show_bug.cgi?id=96752
53020
53021         Reviewed by Kenneth Rohde Christiansen.
53022
53023         When "media" attribute of style element is changed, style should be recalculated.
53024         This patch modifies HTMLStyleElement::parseAttribute, so that when the media attribute
53025         is updated, new MediaQuerySet is created and applied to the style element then, document
53026         style is recalculated. Since media query set is updated for CSSStyleSheet, CSSOM wrapper
53027         for media query should be updated as well in order to sync with new media query set value.
53028
53029         Test: fast/media/mq-js-update-media.html
53030
53031         * css/CSSStyleSheet.cpp:
53032         (WebCore::CSSStyleSheet::setMediaQueries):
53033         * html/HTMLStyleElement.cpp:
53034         (WebCore::HTMLStyleElement::parseAttribute):
53035
53036 2012-10-09  Ben Murdoch  <benm@google.com>
53037
53038         [chromium][Android] Add WebSecurityOrigin::grantLoadLocalResources()
53039         https://bugs.webkit.org/show_bug.cgi?id=97689
53040
53041         Reviewed by Adam Barth.
53042
53043         In addition to the WebKit/chromium side of the change, remove the
53044         ASSERT in SecurityOrigin::grantLoadLocalResources(). Android WebView
53045         is a legitimate user of this API in cases where neither of the
53046         ASSERT'd conditions hold.
53047
53048         * page/SecurityOrigin.cpp:
53049         (WebCore::SecurityOrigin::grantLoadLocalResources): Remove ASSERT.
53050
53051 2012-10-09  Jon Lee  <jonlee@apple.com>
53052
53053         Build fix for Qt Windows.
53054
53055         * html/HTMLPlugInElement.h: Include Image.h.
53056
53057 2012-10-09  Enrica Casucci  <enrica@apple.com>
53058
53059         Only measure text once instead of twice when performing line layout.
53060         https://bugs.webkit.org/show_bug.cgi?id=98317
53061         <rdar://problem/12080821>
53062
53063         Reviewed by Dan Bernstein.
53064
53065         Since we are measuring each word to find out where the line break should occur,
53066         we should cache that information to avoid measuring the run again when
53067         creating the line box. The bulk of the change is in nextLineBreak, where
53068         the measurements are collected and placed in a vector so that they can
53069         be consumed in setLogicalWidthForTextRun where we used to measure the
53070         text one more time.
53071         Each entry in the vector is a WordMeasurement object that contains information
53072         about the start and end offset in the run, the renderer, the measured width
53073         and, possibly, a list of fallback fonts.
53074         When we need to compute the width of the run to create the line box, we add
53075         all the measurements for the given renderer in the run to get the total width.
53076
53077         * platform/graphics/Font.cpp:
53078         (WebCore::Font::width): Added fallback fonts parameter.
53079         * platform/graphics/Font.h:
53080         (Font): Added fallback fonts parameter to the width static member function.
53081         This method is called when we compute the width using TextLayout.
53082         * platform/graphics/mac/ComplexTextController.cpp:
53083         (WebCore::TextLayout::width): Added fallback fonts parameter.
53084         (WebCore::Font::width):
53085         (WebCore::ComplexTextController::advance):
53086         * platform/graphics/mac/ComplexTextController.h:
53087         (ComplexTextController): Added fallback fonts parameter to advance method.
53088         * rendering/RenderBlock.h: Added WordMeasures parameter to few methods.
53089         * rendering/RenderBlockLineLayout.cpp:
53090         (WordMeasurement): Added new class to hold measurement information.
53091         (WebCore::setLogicalWidthForTextRun): This is where we compute the run width using the
53092         cached information.
53093         (WebCore::RenderBlock::computeInlineDirectionPositionsForLine): Added wordMeasures parameter.
53094         (WebCore::RenderBlock::createLineBoxesFromBidiRuns): Added wordMeasures parameter.
53095         (WebCore::RenderBlock::layoutRunsAndFloatsInRange): Added declaration of the WordMeasures
53096         vector and its use.
53097         (WebCore::textWidth): Added fallbackFonts parameter, since now we only measure once.
53098         (WebCore::RenderBlock::LineBreaker::nextLineBreak): This method has been modified to collect
53099         the measurements of the individual words and add them to the vector.
53100
53101 2012-10-09  Levi Weintraub  <leviw@chromium.org>
53102
53103         [Sub pixel layout] Fast-path iframe scrolling can picks up an extra pixel
53104         https://bugs.webkit.org/show_bug.cgi?id=98571
53105
53106         Reviewed by Emil A Eklund.
53107
53108         Refactoring all coordinate-switching functionality to use a single "mode" flag
53109         as opposed to having a bunch of boolean values. This enables the same set of
53110         options across the board, and a consistent interface. This was previously
53111         done for mapLocalToContainer.
53112
53113         The imptetus for this for this stems from the one logical change in this patch
53114         which only effects sub-pixel layout. FrameView::convertToRenderer and
53115         convertFromRenderer return IntPoint coordinates, and need to also snap transform
53116         offsets to determine proper rects for scrolling.
53117
53118         Unlabeled functions below are simply being updated to these new interfaces.
53119
53120         Test: fast/sub-pixel/sub-pixel-iframe-copy-on-scroll.html
53121
53122         * WebCore.exp.in:
53123         * dom/ContainerNode.cpp:
53124         (WebCore::ContainerNode::getUpperLeftCorner):
53125         (WebCore::ContainerNode::getLowerRightCorner):
53126         * dom/Element.cpp:
53127         (WebCore::Element::boundsInRootViewSpace):
53128         * dom/MouseRelatedEvent.cpp:
53129         (WebCore::MouseRelatedEvent::computeRelativePosition):
53130         * dom/Node.cpp:
53131         (WebCore::Node::convertToPage):
53132         (WebCore::Node::convertFromPage):
53133         * html/HTMLSelectElement.cpp:
53134         (WebCore::HTMLSelectElement::listBoxDefaultEventHandler):
53135         * html/shadow/SliderThumbElement.cpp:
53136         (WebCore::SliderThumbElement::setPositionFromPoint):
53137         * html/shadow/SpinButtonElement.cpp:
53138         (WebCore::SpinButtonElement::defaultEventHandler):
53139         * page/FrameView.cpp:
53140         (WebCore::FrameView::convertToRenderer): Now pixel-snaps offsets before passing
53141         them to TransformState, which transforms the coordinates.
53142         (WebCore::FrameView::convertFromRenderer): Ditto.
53143         * rendering/LayoutState.cpp:
53144         (WebCore::LayoutState::LayoutState):
53145         * rendering/RenderBlock.cpp:
53146         (WebCore::RenderBlock::absoluteQuads):
53147         * rendering/RenderBox.cpp:
53148         (WebCore::RenderBox::absoluteQuads):
53149         (WebCore::RenderBox::mapLocalToContainer):
53150         (WebCore::RenderBox::mapAbsoluteToLocalPoint):
53151         * rendering/RenderBox.h:
53152         (RenderBox):
53153         * rendering/RenderBoxModelObject.cpp:
53154         (WebCore::RenderBoxModelObject::mapAbsoluteToLocalPoint):
53155         * rendering/RenderBoxModelObject.h:
53156         (RenderBoxModelObject):
53157         * rendering/RenderEmbeddedObject.cpp:
53158         (WebCore::RenderEmbeddedObject::isInUnavailablePluginIndicator):
53159         * rendering/RenderFrameSet.cpp:
53160         (WebCore::RenderFrameSet::userResize):
53161         * rendering/RenderGeometryMap.cpp:
53162         (WebCore::RenderGeometryMap::absolutePoint):
53163         * rendering/RenderInline.cpp:
53164         (WebCore::RenderInline::mapLocalToContainer):
53165         * rendering/RenderInline.h:
53166         (RenderInline):
53167         * rendering/RenderLayer.cpp:
53168         (WebCore::RenderLayer::absoluteToContents):
53169         (WebCore::RenderLayer::calculateClipRects):
53170         * rendering/RenderMediaControls.cpp:
53171         (WebCore::RenderMediaControls::volumeSliderOffsetFromMuteButton):
53172         * rendering/RenderMenuList.cpp:
53173         (WebCore::RenderMenuList::showPopup):
53174         * rendering/RenderObject.cpp:
53175         (WebCore::RenderObject::localToAbsolute):
53176         (WebCore::RenderObject::absoluteToLocal):
53177         (WebCore::RenderObject::mapLocalToContainer):
53178         (WebCore::RenderObject::mapAbsoluteToLocalPoint):
53179         (WebCore::RenderObject::localToContainerQuad):
53180         (WebCore::RenderObject::localToContainerPoint):
53181         * rendering/RenderObject.h:
53182         (RenderObject): MapLocalToContainerFlags is now MapCoordinatesFlags since it's
53183         now used for other conversion methods.
53184         (WebCore::RenderObject::localToAbsoluteQuad):
53185         * rendering/RenderTheme.cpp:
53186         (WebCore::RenderTheme::volumeSliderOffsetFromMuteButton):
53187         * rendering/RenderView.cpp:
53188         (WebCore::RenderView::mapLocalToContainer):
53189         (WebCore::RenderView::mapAbsoluteToLocalPoint):
53190         * rendering/RenderView.h:
53191         (RenderView):
53192         * rendering/svg/RenderSVGForeignObject.cpp:
53193         (WebCore::RenderSVGForeignObject::mapLocalToContainer):
53194         * rendering/svg/RenderSVGForeignObject.h:
53195         (RenderSVGForeignObject):
53196         * rendering/svg/RenderSVGInline.cpp:
53197         (WebCore::RenderSVGInline::mapLocalToContainer):
53198         * rendering/svg/RenderSVGInline.h:
53199         (RenderSVGInline):
53200         * rendering/svg/RenderSVGModelObject.cpp:
53201         (WebCore::RenderSVGModelObject::mapLocalToContainer):
53202         * rendering/svg/RenderSVGModelObject.h:
53203         (RenderSVGModelObject):
53204         * rendering/svg/RenderSVGRoot.cpp:
53205         (WebCore::RenderSVGRoot::mapLocalToContainer):
53206         * rendering/svg/RenderSVGRoot.h:
53207         (RenderSVGRoot):
53208         * rendering/svg/RenderSVGText.cpp:
53209         (WebCore::RenderSVGText::mapLocalToContainer):
53210         * rendering/svg/RenderSVGText.h:
53211         (RenderSVGText):
53212         * rendering/svg/SVGRenderSupport.cpp:
53213         (WebCore::SVGRenderSupport::mapLocalToContainer):
53214         * svg/SVGSVGElement.cpp:
53215         (WebCore::SVGSVGElement::localCoordinateSpaceTransform):
53216
53217 2012-10-09  Jon Lee  <jonlee@apple.com>
53218
53219         [WK2] Have plugins render offscreen to capture snapshot
53220         https://bugs.webkit.org/show_bug.cgi?id=98326
53221         <rdar://problem/12426658>
53222
53223         Reviewed by Simon Fraser.
53224
53225         Change updateSnapshot() to use a PassRefPtr<Image> instead of Image*. WebKit2 ultimately
53226         hands the image off to RenderSnapshottedPlugin. A CachedImage instance then manages the
53227         lifetime of the Image.
53228
53229         * html/HTMLPlugInElement.h:
53230         (WebCore::HTMLPlugInElement::updateSnapshot):
53231         * html/HTMLPlugInImageElement.cpp:
53232         (WebCore::HTMLPlugInImageElement::updateSnapshot):
53233         * html/HTMLPlugInImageElement.h:
53234         (HTMLPlugInImageElement):
53235         * rendering/RenderSnapshottedPlugIn.cpp:
53236         (WebCore::RenderSnapshottedPlugIn::updateSnapshot): Updated to use the PassRefPtr<Image>
53237         pointer.
53238         * rendering/RenderSnapshottedPlugIn.h:
53239         (RenderSnapshottedPlugIn):
53240
53241 2012-10-09  Adam Barth  <abarth@webkit.org>
53242
53243         Unreviewed. Move this file to where the build systems think it should
53244         be. See https://bugs.webkit.org/show_bug.cgi?id=94755
53245
53246         * platform/graphics/CustomFilterConstants.h: Removed.
53247         * platform/graphics/filters/CustomFilterConstants.h: Copied from Source/WebCore/platform/graphics/CustomFilterConstants.h.
53248
53249 2012-10-09  Tony Chang  <tony@chromium.org>
53250
53251         Use computeLogical* methods instead of updateLogical* methods in RenderImage
53252         https://bugs.webkit.org/show_bug.cgi?id=98802
53253
53254         Reviewed by Eric Seidel.
53255
53256         We were storing the old values of width/height, calling updateLogical{Width,Height}, then restoring
53257         the old values.  Instead, use the computeLogical{Width,Height} methods so we don't have to overwrite
53258         the current values.
53259
53260         No new tests, this is just a refactoring.
53261
53262         * rendering/RenderImage.cpp:
53263         (WebCore::RenderImage::imageDimensionsChanged):
53264
53265 2012-10-09  Enrica Casucci  <enrica@apple.com>
53266
53267         [chromium] fast/text/international/text-spliced-font.html and fast/writing-mode/Kusa-Makura-
53268         background-canvas.html failing on the Mac after r130443
53269         https://bugs.webkit.org/show_bug.cgi?id=98545
53270
53271         Reviewed by Tony Chang.
53272
53273         Adding back the ! removed by mistake before submitting r130779. 
53274
53275         * platform/graphics/FontFastPath.cpp:
53276         (WebCore::Font::glyphDataAndPageForCharacter):
53277
53278 2012-10-09  Artem Simonov  <asimonov@rim.com>
53279
53280         [BlackBerry] EGL Context deleted prematurely in GraphicsContext3D destructor
53281         https://bugs.webkit.org/show_bug.cgi?id=98796
53282
53283         Reviewed by George Staikos.
53284
53285         Reordered destruction of GraphicsContext3D so that the compositing layer is
53286         destroyed first.
53287
53288         * platform/graphics/blackberry/GraphicsContext3DBlackBerry.cpp:
53289         (WebCore::GraphicsContext3D::~GraphicsContext3D):
53290
53291 2012-10-09  Ben Wagner  <bungeman@chromium.org>
53292
53293         Disable hinting when webkit-font-smoothing:antialiased is used on Mac.
53294         https://bugs.webkit.org/show_bug.cgi?id=98061
53295
53296         Reviewed by Stephen White.
53297
53298         Normal anti-aliased text matches subpixel anti-aliased text.
53299         However, text marked with webkit-font-smoothing:antialiased should be drawn without hinting to match Safari.
53300         See crbug.com/152304 . 
53301
53302         Test is fast/css/font-smoothing.html, but DRT runs with font smoothing disabled, so no change visible. 
53303
53304         * platform/graphics/skia/FontSkia.cpp:
53305         (WebCore::setupPaint):
53306         Set kNo_Hinting when webkit-font-smoothing is antialiased.
53307
53308 2012-10-09  Max Vujovic  <mvujovic@adobe.com>
53309
53310         [CSS Shaders] Create constants for vertex attribute sizes and offsets
53311         https://bugs.webkit.org/show_bug.cgi?id=94755
53312
53313         Reviewed by Dean Jackson.
53314
53315         Factor out the vertex attribute size and offset constants into a new file,
53316         CustomFilterConstants.h. Replace literals in CustomFilterMeshGenerator with the constants.
53317
53318         I could have added the constants to CustomFilterMeshGenerator.h, but this would make
53319         FECustomFilter depend on CustomFilterMeshGenerator.
53320
53321         I also could have added the constants to CustomFilterMesh.h, but this would make
53322         CustomFilterMeshGenerator depend on CustomFilterMesh.
53323
53324         No new tests. No change in behavior.
53325
53326         * GNUmakefile.list.am:
53327         * Target.pri:
53328         * WebCore.gypi:
53329         * WebCore.vcproj/WebCore.vcproj:
53330         * WebCore.xcodeproj/project.pbxproj:
53331         * platform/graphics/CustomFilterConstants.h: Added.
53332         (WebCore):
53333         * platform/graphics/filters/CustomFilterMeshGenerator.h:
53334         (WebCore::CustomFilterMeshGenerator::floatsPerVertex):
53335             Use the new constants instead of literal values.
53336         * platform/graphics/filters/FECustomFilter.cpp:
53337         (WebCore::FECustomFilter::bindProgramAndBuffers):
53338             Pull the constant definitions out of here.
53339
53340 2012-10-09  Michael Saboff  <msaboff@apple.com>
53341
53342         MarkupAccumulator should optimally handle 8 bit Strings
53343         https://bugs.webkit.org/show_bug.cgi?id=98224
53344
53345         Reviewed by Ryosuke Niwa.
53346
53347         Updated appendCharactersReplacingEntities to take a string, offset and length and process 8 or 16 bit
53348         data as appropriate.  Also made it a member function of MarkupAccumulator.
53349
53350         No new tests, behavior covered by existing tests.
53351
53352         * editing/MarkupAccumulator.cpp:
53353         (WebCore::MarkupAccumulator::appendCharactersReplacingEntities):
53354         (WebCore::MarkupAccumulator::appendAttributeValue):
53355         (WebCore::MarkupAccumulator::appendNodeValue):
53356         * editing/MarkupAccumulator.h:
53357         (MarkupAccumulator):
53358         * editing/markup.cpp:
53359         (WebCore::StyledMarkupAccumulator::appendText):
53360         (WebCore::urlToMarkup):
53361
53362 2012-10-09  Joshua Bell  <jsbell@chromium.org>
53363
53364         IndexedDB: Overflowing key generator should throw ConstraintError
53365         https://bugs.webkit.org/show_bug.cgi?id=98807
53366
53367         Reviewed by Tony Chang.
53368
53369         After the WebKit implementation landed throwing DataError, public-webapps
53370         consensus was that the exception thrown should be ConstraintError. Trivial
53371         change, and we pass one more W3C test submission.
53372
53373         Test: storage/indexeddb/key-generator.html
53374
53375         * Modules/indexeddb/IDBObjectStoreBackendImpl.cpp:
53376         (WebCore::IDBObjectStoreBackendImpl::putInternal):
53377
53378 2012-10-08  Martin Robinson  <mrobinson@igalia.com>
53379
53380         Fix the order of the statements in my previous build fix.
53381
53382         Reviewed by Gustavo Noronha Silva.
53383
53384         My previous build build fix for ResourceHandleSoup ordered the assignment
53385         of the local ResourceHandleInternal incorrectly. Instead of being before
53386         both assertions, it should be interspersed among them.
53387
53388         * platform/network/soup/ResourceHandleSoup.cpp:
53389         (WebCore::createSoupMessageForHandleAndRequest):
53390
53391 2012-10-09  Beth Dakin  <bdakin@apple.com>
53392
53393         https://bugs.webkit.org/show_bug.cgi?id=98457
53394         ScrollingStateNodes should be referenced via IDs on 
53395         RenderLayerBacking
53396
53397         Reviewed by Simon Fraser.
53398
53399         This patch associates all ScrollingStateNodes with a 
53400         RenderLayerBacking via a HashMap from RenderLayerBackings to 
53401         ScrollingStateNodes on ScrollingCoordinator. Prior to this patch, the 
53402         root ScrollingStateNode was created immediately upon creation of the 
53403         ScrollingCoordinator, and it was constantly re-used for every main 
53404         FrameView. This doesn't work in the new model since that doesn't 
53405         allow that ScrollingStateNode to have a definite association with a 
53406         RenderLayerBacking. So this patch does also introduce some lifetime 
53407         differences with the ScrollingStateNodes.
53408
53409         If a page is going into the page cache, we should clear the state 
53410         tree. When the page is in the cache, we won't have access to the 
53411         RenderLayerBacking, and we don't want to be doing anything with the 
53412         ScrollingStateNodes anyway.
53413         * dom/Document.cpp:
53414         (WebCore::Document::setInPageCache):
53415
53416         When a page is restored from the page cache, call 
53417         frameViewRootLayerDidChange() to re-create the state tree.
53418         * loader/HistoryController.cpp:
53419         (WebCore::HistoryController::restoreScrollPositionAndViewState):
53420
53421         This new FrameView function will return the scrollLayerID for a given FrameView.
53422         * page/FrameView.cpp:
53423         (WebCore::FrameView::scrollLayerID):
53424         (WebCore):
53425         * page/FrameView.h:
53426         (FrameView):
53427
53428         There is a lot of unfortunate fiddling with the terrible 
53429         if-defs in ScrollingCoordinator. I added a FIXME to the header
53430         noting how we can avoid this in the future.
53431         * page/scrolling/ScrollingCoordinator.cpp:
53432
53433         All of this code used to refer to the rootStateNode directly. 
53434         Instead, now it looks up the proper ScrollingStateNode for the given 
53435         FrameView in the HashMap.
53436         (WebCore::ScrollingCoordinator::frameViewLayoutUpdated):
53437         (WebCore::ScrollingCoordinator::frameViewWheelEventHandlerCountChanged):
53438         (WebCore::ScrollingCoordinator::frameViewRootLayerDidChange):
53439         (WebCore::ScrollingCoordinator::requestScrollPositionUpdate):
53440         (WebCore::ScrollingCoordinator::updateMainFrameScrollLayerPosition):
53441         (WebCore::ScrollingCoordinator::recomputeWheelEventHandlerCountForFrameView):
53442         (WebCore::ScrollingCoordinator::setScrollLayerForNode):
53443         (WebCore::ScrollingCoordinator::setNonFastScrollableRegionForNode):
53444         (WebCore::ScrollingCoordinator::setScrollParametersForNode):
53445         (WebCore::ScrollingCoordinator::setWheelEventHandlerCountForNode):
53446
53447         Returns the existing ScrollingStateNode for a given FrameView by 
53448         looking it up in the HashMap.
53449         (WebCore::ScrollingCoordinator::stateNodeForFrameView):
53450
53451         This is called when a RenderLayerBacking is destroyed. At that time, 
53452         its associated ScrollingStateNode is destroyed.
53453         (WebCore::ScrollingCoordinator::detachFromStateTree):
53454
53455         clearStateTree() clears the HashMap and destroys all of the nodes in 
53456         the current state tree.
53457         (WebCore::ScrollingCoordinator::clearStateTree):
53458
53459         Creates a new root state node for the given FrameView.
53460         (WebCore::ScrollingCoordinator::ensureRootStateNodeForFrameView):
53461
53462         Some new functions for the new node stuff.
53463         * page/scrolling/ScrollingCoordinator.h:
53464         * page/scrolling/ScrollingCoordinatorNone.cpp:
53465         (WebCore::ScrollingCoordinator::setShouldUpdateScrollLayerPositionOnMainThread):
53466         (WebCore::ScrollingCoordinator::supportsFixedPositionLayers):
53467         (WebCore::ScrollingCoordinator::setLayerIsContainerForFixedPositionLayers):
53468         (WebCore::ScrollingCoordinator::setLayerIsFixedToContainerLayer):
53469         (WebCore::ScrollingCoordinator::scrollableAreaScrollLayerDidChange):
53470         (WebCore::ScrollingCoordinator::detachFromStateTree):
53471         (WebCore::ScrollingCoordinator::clearStateTree):
53472         (WebCore::ScrollingCoordinator::ensureRootStateNodeForFrameView):
53473         (WebCore::setScrollParameters):
53474         (WebCore::setWheelEventHandlerCount):
53475
53476         New remove functions are used when the sate tree is cleared and when 
53477         a RenderLayerBacking is destroyed.
53478         * page/scrolling/ScrollingStateNode.cpp:
53479         (WebCore::ScrollingStateNode::removeChild):
53480         (WebCore):
53481         * page/scrolling/ScrollingStateNode.h:
53482         (WebCore::ScrollingStateNode::isScrollingStateScrollingNode):
53483         (ScrollingStateNode):
53484         (WebCore::ScrollingStateNode::parent):
53485
53486         New convenience function for casting to ScrollingStateScrollingNodes.
53487         * page/scrolling/ScrollingStateScrollingNode.h:
53488         (WebCore::toScrollingStateScrollingNode):
53489         (WebCore):
53490
53491         No longer automatically create a root node upon creation of the 
53492         ScrollingStateTree. We now want to wait to create the root node until 
53493         we have a RenderLayerBacking to associate it with.
53494         * page/scrolling/ScrollingStateTree.cpp:
53495         (WebCore::ScrollingStateTree::ScrollingStateTree):
53496         (WebCore::ScrollingStateTree::removeNode):
53497         (WebCore):
53498         * page/scrolling/ScrollingStateTree.h:
53499         (WebCore::ScrollingStateTree::setRootStateNode):
53500         (ScrollingStateTree):
53501
53502         RenderLayerBacking has a new data member called m_scrollLayerID. If 
53503         this RenderLayerBacking is represented in the scrolling tree, then 
53504         the ID with be unique and non-zero. 
53505         * rendering/RenderLayerBacking.cpp:
53506         (WebCore::RenderLayerBacking::RenderLayerBacking):
53507         (WebCore::RenderLayerBacking::~RenderLayerBacking):
53508         (WebCore::generateScrollLayerID):
53509         (WebCore):
53510         (WebCore::RenderLayerBacking::attachToScrollingCoordinator):
53511         (WebCore::RenderLayerBacking::detachFromScrollingCoordinator):
53512         * rendering/RenderLayerBacking.h:
53513         (RenderLayerBacking):
53514         (WebCore::RenderLayerBacking::scrollLayerID):
53515
53516         Move the call to ScrollingCooridinator::frameViewRootLayerDidChange() 
53517         from RenderLayerCompositor::attachRootLayer() to 
53518         RenderLayerCompositor:: updateBacking(). The problem with the old call 
53519         site is that there is no backing at that time, so we are trying to set 
53520         state on the root scrolling state node before we have enough 
53521         information to create that node and add it to the HashMap.
53522         * rendering/RenderLayerCompositor.cpp:
53523         (WebCore::RenderLayerCompositor::updateBacking):
53524         (WebCore::RenderLayerCompositor::attachRootLayer):
53525
53526 2012-10-09  Florin Malita  <fmalita@chromium.org>
53527
53528         SVGResources should use HashSet<AtomicString> instead of HashSet<AtomicStringImpl*>
53529         https://bugs.webkit.org/show_bug.cgi?id=98683
53530
53531         Reviewed by Darin Adler.
53532
53533         Eric's notes:
53534
53535         SVGResources should use HashSet<AtomicString> instead of HashSet<AtomicStringImpl*>
53536         They do basically the same thing, and the former is much more common (and less code). It's
53537         also safe, on the off-chance that we're using AtomicStrings which might otherwise go away.
53538
53539         No new tests, refactoring. 
53540
53541         * rendering/svg/SVGResources.cpp:
53542         (WebCore::clipperFilterMaskerTags):
53543         (WebCore::markerTags):
53544         (WebCore::fillAndStrokeTags):
53545         (WebCore::chainableResourceTags):
53546         (WebCore::SVGResources::buildCachedResources):
53547
53548 2012-10-09  Enrica Casucci  <enrica@apple.com>
53549
53550         [chromium] fast/text/international/text-spliced-font.html and fast/writing-mode/Kusa-Makura-background-canvas.html
53551         failing on the Mac after r130443
53552         https://bugs.webkit.org/show_bug.cgi?id=98545
53553
53554         Reviewed by Tony Chang.
53555
53556         Fixes a regression introduced with r130443.
53557         No new tests added since we already have tests covering this.
53558         Updated TestExpectations for chromium and mac.
53559
53560         * platform/graphics/FontFastPath.cpp:
53561         (WebCore::Font::glyphDataAndPageForCharacter): Text orientation should not be
53562         taken into account if the character is an ideograph or a symbol.
53563
53564 2012-10-09  Philip Rogers  <pdr@google.com>
53565
53566         Prevent animation when CSS attributeType is invalid.
53567         https://bugs.webkit.org/show_bug.cgi?id=94569
53568
53569         Reviewed by Dirk Schulze.
53570
53571         This patch changes hasValidAttributeType() to return false when
53572         we have attributeType=CSS with a non-CSS attribute name.
53573
53574         Previously we would animate non-CSS attributes when attributeType was
53575         CSS which resulted in crashes. To track this case, this patch catches
53576         changes to targetElement, attributeName, and attributeType and checks
53577         if an invalid combination is present. If invalid, hasInvalidCSSAttributeType()
53578         will return true causing hasValidAttributeType() to return false and prevent
53579         the animation from running.
53580
53581         Tests: svg/animations/animate-css-xml-attributeType.html
53582                svg/animations/invalid-css-attribute-crash-expected.svg
53583                svg/animations/invalid-css-attribute-crash.svg
53584
53585         * svg/SVGAnimateElement.cpp:
53586         (WebCore::SVGAnimateElement::hasValidAttributeType):
53587         (WebCore::SVGAnimateElement::targetElementWillChange):
53588         * svg/SVGAnimationElement.cpp:
53589         (WebCore::SVGAnimationElement::SVGAnimationElement):
53590         (WebCore::SVGAnimationElement::isSupportedAttribute):
53591
53592             This now supports the attributeType attribute which is stored in m_attributeType.
53593
53594         (WebCore::SVGAnimationElement::parseAttribute):
53595         (WebCore::SVGAnimationElement::setAttributeType):
53596
53597             Changes to attributeType, attributeName, and targetElement need to be tracked
53598             to determine when an invalid combination happens.
53599
53600         (WebCore::SVGAnimationElement::targetElementWillChange):
53601         (WebCore):
53602         (WebCore::SVGAnimationElement::setAttributeName):
53603         (WebCore::SVGAnimationElement::checkInvalidCSSAttributeType):
53604         * svg/SVGAnimationElement.h:
53605         (WebCore::SVGAnimationElement::attributeType):
53606         (SVGAnimationElement):
53607         (WebCore::SVGAnimationElement::hasInvalidCSSAttributeType):
53608         * svg/animation/SVGSMILElement.cpp:
53609         (WebCore::SVGSMILElement::targetElement):
53610         * svg/animation/SVGSMILElement.h:
53611         (SVGSMILElement):
53612
53613 2012-10-09  Pravin D  <pravind.2k4@gmail.com>
53614
53615         max-width property is does not overriding the width properties for css tables(display:table)
53616         https://bugs.webkit.org/show_bug.cgi?id=98455
53617
53618         Reviewed by Tony Chang.
53619
53620         The max-width property determines the maximum computed width an element can have. In case of css tables(display:table),
53621         the computed was not being limited by the max-width property. The current patch fixes this issue.
53622
53623         Test: fast/table/css-table-max-width.html
53624
53625         * rendering/RenderTable.cpp:
53626         (WebCore::RenderTable::updateLogicalWidth):
53627          Logic to compute the logical width of an element such that it does not exceed the max-width value.
53628          Also when both min-width and max-width are present, the following contraint is used to compute the logical width:
53629            1) min-width < Computed LogicalWidth < max-width, when min-width < max-width.
53630            2) Computed LogicalWidth = min-width, when min-width > max-width.
53631
53632 2012-10-09  Harald Alvestrand  <hta@google.com>
53633
53634         Change PeerConnection getStats function to single value local / remote
53635         elements in RTCStatsReport.
53636
53637         https://bugs.webkit.org/show_bug.cgi?id=98753
53638
53639         Reviewed by Adam Barth.
53640
53641         IDL of RTCStatsReport has been changed to make local/remote
53642         single valued RTCStatsElement attributes.
53643         The RTCStatsReport argument to index the list of RTCStatsElement
53644         in the local and remote functions has been removed.
53645
53646         Tested by modifications to RTCPeerConnection-stats.html
53647
53648         * Modules/mediastream/RTCStatsReport.cpp:
53649         (WebCore::RTCStatsReport::addElement):
53650         (WebCore::RTCStatsReport::addStatistic):
53651         * Modules/mediastream/RTCStatsReport.h:
53652         (WebCore::RTCStatsReport::local):
53653         (WebCore::RTCStatsReport::remote):
53654         (RTCStatsReport):
53655         * Modules/mediastream/RTCStatsReport.idl:
53656         * Modules/mediastream/RTCStatsResponse.cpp:
53657         (WebCore::RTCStatsResponse::addElement):
53658         (WebCore::RTCStatsResponse::addStatistic):
53659         * Modules/mediastream/RTCStatsResponse.h:
53660         (RTCStatsResponse):
53661         * platform/chromium/support/WebRTCStatsResponse.cpp:
53662         (WebKit::WebRTCStatsResponse::addElement):
53663         (WebKit::WebRTCStatsResponse::addStatistic):
53664         * platform/mediastream/RTCStatsResponseBase.h:
53665         (RTCStatsResponseBase):
53666
53667 2012-10-09  Antonio Gomes  <agomes@rim.com>
53668
53669         Get rid of FIXED_POSITION_CREATES_STACKING_CONTEXT in favor of Settings::fixedPositionCreatesStackingContext()
53670         https://bugs.webkit.org/show_bug.cgi?id=98756
53671
53672         Reviewed by Rob Buis.
53673
53674         No behavior change so no new tests.
53675
53676         * css/StyleResolver.cpp:
53677         (WebCore::StyleResolver::collectMatchingRulesForList):
53678
53679 2012-10-09  Simon Hausmann  <simon.hausmann@digia.com>
53680
53681         [Qt] Fix build with QtMultimedia
53682
53683         Reviewed by Tor Arne Vestbø.
53684
53685         This is an initial rudimentary port to of the QtMultimedia back-end,
53686         adapted to slight API changes and (more importantly) to the
53687         implementation of QAbstractVideoSurface instead of using
53688         QGraphicsVideoItem (which is in QtMultimediaWidgets).
53689
53690         * WebCore.pri:
53691         * platform/graphics/qt/MediaPlayerPrivateQt.cpp:
53692         (WebCore::MediaPlayerPrivateQt::supportsType):
53693         (WebCore::MediaPlayerPrivateQt::MediaPlayerPrivateQt):
53694         (WebCore::MediaPlayerPrivateQt::~MediaPlayerPrivateQt):
53695         (WebCore::MediaPlayerPrivateQt::didLoadingProgress):
53696         (WebCore::MediaPlayerPrivateQt::totalBytes):
53697         (WebCore::MediaPlayerPrivateQt::setVisible):
53698         (WebCore::MediaPlayerPrivateQt::surfaceFormatChanged):
53699         (WebCore::MediaPlayerPrivateQt::setSize):
53700         (WebCore::MediaPlayerPrivateQt::removeVideoItem):
53701         (WebCore::MediaPlayerPrivateQt::restoreVideoItem):
53702         (WebCore):
53703         (WebCore::MediaPlayerPrivateQt::start):
53704         (WebCore::MediaPlayerPrivateQt::supportedPixelFormats):
53705         (WebCore::MediaPlayerPrivateQt::present):
53706         (WebCore::MediaPlayerPrivateQt::paint):
53707         (WebCore::MediaPlayerPrivateQt::paintCurrentFrameInContext):
53708         (WebCore::MediaPlayerPrivateQt::paintToTextureMapper):
53709         * platform/graphics/qt/MediaPlayerPrivateQt.h:
53710         (MediaPlayerPrivateQt):
53711
53712 2012-10-09  Garrett Casto  <gcasto@chromium.org>
53713
53714         Allow users to specify a different hover image for TextFieldDecorationElement
53715         https://bugs.webkit.org/show_bug.cgi?id=93662
53716
53717         Reviewed by Kent Tamura.
53718
53719         * html/shadow/TextFieldDecorationElement.cpp:
53720         (WebCore::TextFieldDecorationElement::TextFieldDecorationElement):
53721         (WebCore::TextFieldDecorationElement::updateImage):
53722         (WebCore::TextFieldDecorationElement::defaultEventHandler): Handles mouseover and mouseout events.
53723         (WebCore::TextFieldDecorationElement::willRespondToMouseMoveEvents): Now returns true if the element is not disabled.
53724         (WebCore):
53725         * html/shadow/TextFieldDecorationElement.h:
53726         (TextFieldDecorator):
53727         (TextFieldDecorationElement):
53728
53729 2012-10-09  Allan Sandfeld Jensen  <allan.jensen@digia.com>
53730
53731         [Qt] Uploading images to Google+ using QtWebKit does not work.
53732         https://bugs.webkit.org/show_bug.cgi?id=72329
53733
53734         Reviewed by Jocelyn Turcotte.
53735
53736         Implement handling of Blob FormData, including its extensions to the File FormData.
53737
53738         * platform/network/qt/QNetworkReplyHandler.cpp:
53739         (WebCore::FormDataIODevice::FormDataIODevice):
53740         (WebCore::appendBlobResolved):
53741         (WebCore::FormDataIODevice::prepareFormElements):
53742         (WebCore::FormDataIODevice::computeSize):
53743         (WebCore::FormDataIODevice::moveToNextElement):
53744         (WebCore::FormDataIODevice::prepareCurrentElement):
53745         (WebCore::FormDataIODevice::openFileForCurrentElement):
53746         (WebCore::FormDataIODevice::readData):
53747         (WebCore::QNetworkReplyHandler::sendNetworkRequest):
53748         * platform/network/qt/QNetworkReplyHandler.h:
53749         (FormDataIODevice):
53750
53751 2012-10-09  Arpita Bahuguna  <arpitabahuguna@gmail.com>
53752
53753         Text decorations specified on the containing block are not properly applied when ::first-line is present.
53754         https://bugs.webkit.org/show_bug.cgi?id=93829
53755
53756         Reviewed by Abhishek Arya.
53757
53758         If a container's style and its pseudo :first-line style have unique
53759         text-decorations specified for them, only the :first-line text-decoarations
53760         were being applied.
53761
53762         The uploaded patch intends to first compute the text decoration colors
53763         for the containing box, followed by that of the first-line (if specified).
53764
53765         This thus avoids the condition wherein our containing box's text-decorations
53766         were not getting applied at all since initially we were only computing
53767         for the first-line style.
53768
53769         Test: fast/css/text-decorations-on-first-line-and-containing-block.html
53770
53771         * rendering/InlineTextBox.cpp:
53772         (WebCore::InlineTextBox::paintDecoration):
53773         getTextDecorationColors() is first called for computing the containing box's
53774         text-decoration values and then for first-line style's text-decorations,
53775         if specified.
53776
53777 2012-10-09  Sheriff Bot  <webkit.review.bot@gmail.com>
53778
53779         Unreviewed, rolling out r130746.
53780         http://trac.webkit.org/changeset/130746
53781         https://bugs.webkit.org/show_bug.cgi?id=98749
53782
53783         It made 45 tests crash on Qt (Requested by Ossy on #webkit).
53784
53785         * platform/network/qt/QNetworkReplyHandler.cpp:
53786         (WebCore::FormDataIODevice::FormDataIODevice):
53787         (WebCore::FormDataIODevice::computeSize):
53788         (WebCore::FormDataIODevice::moveToNextElement):
53789         (WebCore::FormDataIODevice::openFileForCurrentElement):
53790         (WebCore::FormDataIODevice::readData):
53791         (WebCore::QNetworkReplyHandler::getIODevice):
53792         (WebCore::QNetworkReplyHandler::sendNetworkRequest):
53793         * platform/network/qt/QNetworkReplyHandler.h:
53794         (QNetworkReplyHandler):
53795         (FormDataIODevice):
53796
53797 2012-10-09  Allan Sandfeld Jensen  <allan.jensen@digia.com>
53798
53799         [Qt] Uploading images to Google+ using QtWebKit does not work.
53800         https://bugs.webkit.org/show_bug.cgi?id=72329
53801
53802         Reviewed by Jocelyn Turcotte.
53803
53804         Implement handling of Blob FormData, including its extensions to the File FormData.
53805
53806         * platform/network/qt/QNetworkReplyHandler.cpp:
53807         (WebCore::FormDataIODevice::FormDataIODevice):
53808         (WebCore::FormDataIODevice::computeSize):
53809         (WebCore::FormDataIODevice::moveToNextElement):
53810         (WebCore::FormDataIODevice::prepareCurrentElement):
53811         (WebCore::FormDataIODevice::openFileForCurrentElement):
53812         (WebCore::FormDataIODevice::readData):
53813         (WebCore::QNetworkReplyHandler::getIODevice):
53814         (WebCore::QNetworkReplyHandler::handleBlobDataIfAny):
53815         (WebCore::QNetworkReplyHandler::sendNetworkRequest):
53816         * platform/network/qt/QNetworkReplyHandler.h:
53817         (QNetworkReplyHandler):
53818         (FormDataIODevice):
53819
53820 2012-10-09  Keishi Hattori  <keishi@webkit.org>
53821
53822         Page popup should be smarter about its layout
53823         https://bugs.webkit.org/show_bug.cgi?id=98499
53824
53825         Reviewed by Kent Tamura.
53826
53827         This change fixes these two issues:
53828         1. Page popup should reposition itself so it won't get clipped by screen(Win/Linux) or rootview(Mac) bounds.
53829         2. Page popup should resize itself when it doesn't fit.
53830
53831         Test: platform/chromium/fast/forms/page-popup/page-popup-adjust-rect.html
53832
53833         * Resources/pagepopups/calendarPicker.js:
53834         (initialize): We need to set global.params at the beginning because we need it for resizeWindow().
53835         * Resources/pagepopups/colorSuggestionPicker.js: Added global.params.
53836         (handleMessage):
53837         (initialize):
53838         (handleArgumentsTimeout):
53839         * Resources/pagepopups/pickerCommon.js:
53840         (Rect): Represents an axis aligned rectangle.
53841         (Rect.prototype.get maxX): Gets position of right edge.
53842         (Rect.prototype.get maxY): Gets position of bottom edge.
53843         (Rect.prototype.toString):
53844         (Rect.intersection): Returns the intersection of two rectangles.
53845         (resizeWindow): Resize window to a certain size. Don't allow shrinking.
53846         (adjustWindowRect): Calculates the best position and size for the popup.
53847         (_adjustWindowRectVertically):
53848         (_adjustWindowRectHorizontally):
53849         (setWindowRect): Sets the position and size of the popup to the given rect.
53850         * Resources/pagepopups/suggestionPicker.css:
53851         (.suggestion-list): Don't show horizontal scroll bar.
53852         * Resources/pagepopups/suggestionPicker.js:
53853         (SuggestionPicker.prototype._fixWindowSize): 
53854         * page/PagePopupClient.cpp:
53855         (WebCore::PagePopupClient::addProperty): For adding an int to JSON.
53856         (WebCore::PagePopupClient::addProperty): For adding an IntRect to JSON.
53857         (WebCore):
53858         * page/PagePopupClient.h:
53859         (PagePopupClient):
53860
53861 2012-10-09  Hajime Morrita  <morrita@google.com>
53862
53863         [Refactoring] Scoped Style related code should have its own class.
53864         https://bugs.webkit.org/show_bug.cgi?id=98244
53865
53866         Reviewed by Dimitri Glazkov.
53867
53868         This change extracts StyleScopeResolver from StyleResolver to clarify
53869         the responsibility of the style scope handling. Now we can easily see
53870         where the style scoping needs to be involed.
53871
53872         Coming Shadow DOM related change like @host rules will fit within this class.
53873
53874         No new tests, refactoring.
53875
53876         * CMakeLists.txt:
53877         * GNUmakefile.list.am:
53878         * Target.pri:
53879         * WebCore.gypi:
53880         * WebCore.xcodeproj/project.pbxproj:
53881         * css/CSSAllInOne.cpp:
53882         * css/StyleResolver.cpp:
53883         (WebCore::StyleResolver::StyleResolver):
53884         (WebCore::StyleResolver::collectFeatures):
53885         (WebCore::StyleResolver::appendAuthorStylesheets):
53886         (WebCore::StyleResolver::pushParentElement):
53887         (WebCore::StyleResolver::popParentElement):
53888         (WebCore::StyleResolver::pushParentShadowRoot):
53889         (WebCore::StyleResolver::popParentShadowRoot):
53890         (WebCore::StyleResolver::matchScopedAuthorRules):
53891         (WebCore::StyleResolver::collectMatchingRulesForList):
53892         (WebCore::StyleResolver::reportMemoryUsage):
53893         * css/StyleResolver.h:
53894         (StyleResolver):
53895         * css/StyleScopeResolver.cpp: Added.
53896         (WebCore):
53897         (WebCore::StyleScopeResolver::StyleScopeResolver):
53898         (WebCore::StyleScopeResolver::~StyleScopeResolver):
53899         (WebCore::StyleScopeResolver::scopeFor):
53900         (WebCore::StyleScopeResolver::ruleSetFor):
53901         (WebCore::StyleScopeResolver::ensureRuleSetFor):
53902         (WebCore::StyleScopeResolver::setupStack):
53903         (WebCore::StyleScopeResolver::push):
53904         (WebCore::StyleScopeResolver::pop):
53905         (WebCore::StyleScopeResolver::collectFeaturesTo):
53906         (WebCore::StyleScopeResolver::reportMemoryUsage):
53907         * css/StyleScopeResolver.h: Added.
53908         (WebCore):
53909         (StyleScopeResolver):
53910         (WebCore::StyleScopeResolver::StackFrame::StackFrame):
53911         (StackFrame):
53912         (WebCore::StyleScopeResolver::hasScopedStyles):
53913         (WebCore::StyleScopeResolver::stackSize):
53914         (WebCore::StyleScopeResolver::stackFrameAt):
53915         (WebCore::StyleScopeResolver::matchesStyleBounds):
53916         (WebCore::StyleScopeResolver::stackIsConsistent):
53917         (WebCore::StyleScopeResolver::ensureStackConsistency):
53918         (WebCore::StyleScopeResolver::scopeFor):
53919         (WebCore::StyleScopeResolver::ensureRuleSetFor):
53920
53921 2012-10-08  Simon Hausmann  <simon.hausmann@digia.com>
53922
53923         [Qt] Make RenderThemeQStyle/ScrollbarThemeQStyle compile without QStyle/QtWidgets
53924         https://bugs.webkit.org/show_bug.cgi?id=98268
53925
53926         Reviewed by Tor Arne Vestbø.
53927
53928         Extracted QStyle/QWidget related code into a QWebStyle class that implements the QStyleFacade interface.
53929
53930         QStyleFacade is a pure interface that lives in WebCore/platform/qt
53931         (next to RenderThemeQStyle and ScrollbarThemeQStyle) and provides a
53932         minimal interface of what we need to draw with QStyle as well as basic
53933         hit testing and metric retrieval. It also provides a
53934         QStyleFacadeOption class that aggregates common meta-data for
53935         rendering primitives, such as direction, rectangle, state (sunken,
53936         enabled, etc.) or palette. It also provides some more slider/scrollbar
53937         specific fields in a slider sub-structure.
53938
53939         RenderThemeQStyle/ScrollbarThemeQStyle used to instantiate specific QStyleOption sub-classes and populate
53940         them with state information from render objects, before calling straight to QStyle. Most of the common code
53941         was encapsulated in StylePainterQStyle.
53942
53943         The new RenderThemeQStyle/ScrolllbarThemeQStyle uses common code in
53944         StylePainterQStyle to populate state into QStyleFacadeOption before
53945         calling into QStyleFacade.
53946
53947         The style facade is then implemented by QStyleFacadeImp, which extracts
53948         meta-data from QStyleFacadeOption arguments, populates style
53949         primitive specific QStyleOption objects and then calls on QStyle.
53950
53951         RenderThemeQStyle/ScrollbarThemeQStyle can only use interface methods
53952         from QStyleFacade. QStyleFacadeImp on the other hand will live in the
53953         separate QtWebKitWidgets library in the future and therefore cannot use
53954         any WebCore types.
53955
53956         * Target.pri:
53957         * platform/qt/QStyleFacade.cpp: Added.
53958         (WebCore):
53959         (WebCore::QStyleFacade::styleForPage):
53960         * platform/qt/QStyleFacade.h: Added.
53961         (WebCore):
53962         (QStyleFacade):
53963         (WebCore::QStyleFacade::~QStyleFacade):
53964         (WebCore::QStyleFacadeOption::QStyleFacadeOption):
53965         (QStyleFacadeOption):
53966         * platform/qt/RenderThemeQStyle.cpp: Renamed from Source/WebKit/qt/WebCoreSupport/RenderThemeQStyle.cpp.
53967         (WebCore):
53968         (WebCore::RenderThemeQStyle::getStylePainter):
53969         (WebCore::StylePainterQStyle::StylePainterQStyle):
53970         (WebCore::StylePainterQStyle::init):
53971         (WebCore::RenderThemeQStyle::create):
53972         (WebCore::RenderThemeQStyle::setStyleFactoryFunction):
53973         (WebCore::RenderThemeQStyle::styleFactory):
53974         (WebCore::RenderThemeQStyle::RenderThemeQStyle):
53975         (WebCore::RenderThemeQStyle::~RenderThemeQStyle):
53976         (WebCore::RenderThemeQStyle::setPaletteFromPageClientIfExists):
53977         (WebCore::RenderThemeQStyle::inflateButtonRect):
53978         (WebCore::RenderThemeQStyle::computeSizeBasedOnStyle):
53979         (WebCore::RenderThemeQStyle::adjustButtonStyle):
53980         (WebCore::RenderThemeQStyle::setButtonPadding):
53981         (WebCore::RenderThemeQStyle::paintButton):
53982         (WebCore::RenderThemeQStyle::paintTextField):
53983         (WebCore::RenderThemeQStyle::adjustTextAreaStyle):
53984         (WebCore::RenderThemeQStyle::paintTextArea):
53985         (WebCore::RenderThemeQStyle::setPopupPadding):
53986         (WebCore::RenderThemeQStyle::colorPalette):
53987         (WebCore::RenderThemeQStyle::paintMenuList):
53988         (WebCore::RenderThemeQStyle::adjustMenuListButtonStyle):
53989         (WebCore::RenderThemeQStyle::paintMenuListButton):
53990         (WebCore::RenderThemeQStyle::animationDurationForProgressBar):
53991         (WebCore::RenderThemeQStyle::paintProgressBar):
53992         (WebCore::RenderThemeQStyle::paintSliderTrack):
53993         (WebCore::RenderThemeQStyle::adjustSliderTrackStyle):
53994         (WebCore::RenderThemeQStyle::paintSliderThumb):
53995         (WebCore::RenderThemeQStyle::adjustSliderThumbStyle):
53996         (WebCore::RenderThemeQStyle::paintSearchField):
53997         (WebCore::RenderThemeQStyle::adjustSearchFieldDecorationStyle):
53998         (WebCore::RenderThemeQStyle::paintSearchFieldDecoration):
53999         (WebCore::RenderThemeQStyle::adjustSearchFieldResultsDecorationStyle):
54000         (WebCore::RenderThemeQStyle::paintSearchFieldResultsDecoration):
54001         (WebCore::RenderThemeQStyle::paintInnerSpinButton):
54002         (WebCore::RenderThemeQStyle::initializeCommonQStyleOptions):
54003         (WebCore::RenderThemeQStyle::adjustSliderThumbSize):
54004         * platform/qt/RenderThemeQStyle.h: Renamed from Source/WebKit/qt/WebCoreSupport/RenderThemeQStyle.h.
54005         (WebCore):
54006         (RenderThemeQStyle):
54007         (WebCore::RenderThemeQStyle::qStyle):
54008         (StylePainterQStyle):
54009         (WebCore::StylePainterQStyle::isValid):
54010         (WebCore::StylePainterQStyle::paintButton):
54011         (WebCore::StylePainterQStyle::paintTextField):
54012         (WebCore::StylePainterQStyle::paintComboBox):
54013         (WebCore::StylePainterQStyle::paintComboBoxArrow):
54014         (WebCore::StylePainterQStyle::paintSliderTrack):
54015         (WebCore::StylePainterQStyle::paintSliderThumb):
54016         (WebCore::StylePainterQStyle::paintInnerSpinButton):
54017         (WebCore::StylePainterQStyle::paintProgressBar):
54018         (WebCore::StylePainterQStyle::paintScrollCorner):
54019         (WebCore::StylePainterQStyle::paintScrollBar):
54020         * platform/qt/ScrollbarThemeQStyle.cpp: Renamed from Source/WebKit/qt/WebCoreSupport/ScrollbarThemeQStyle.cpp.
54021         (WebCore):
54022         (WebCore::ScrollbarThemeQStyle::ScrollbarThemeQStyle):
54023         (WebCore::ScrollbarThemeQStyle::~ScrollbarThemeQStyle):
54024         (WebCore::scPart):
54025         (WebCore::scrollbarPart):
54026         (WebCore::initSliderStyleOption):
54027         (WebCore::ScrollbarThemeQStyle::paint):
54028         (WebCore::ScrollbarThemeQStyle::hitTest):
54029         (WebCore::ScrollbarThemeQStyle::shouldCenterOnThumb):
54030         (WebCore::ScrollbarThemeQStyle::invalidatePart):
54031         (WebCore::ScrollbarThemeQStyle::scrollbarThickness):
54032         (WebCore::ScrollbarThemeQStyle::thumbPosition):
54033         (WebCore::ScrollbarThemeQStyle::thumbLength):
54034         (WebCore::ScrollbarThemeQStyle::trackPosition):
54035         (WebCore::ScrollbarThemeQStyle::trackLength):
54036         (WebCore::ScrollbarThemeQStyle::paintScrollCorner):
54037         * platform/qt/ScrollbarThemeQStyle.h: Renamed from Source/WebKit/qt/WebCoreSupport/ScrollbarThemeQStyle.h.
54038         (WebCore):
54039         (ScrollbarThemeQStyle):
54040         (WebCore::ScrollbarThemeQStyle::qStyle):
54041
54042 2012-10-08  Kiran Muppala  <cmuppala@apple.com>
54043
54044         Throttle DOM timers on hidden pages.
54045         https://bugs.webkit.org/show_bug.cgi?id=98474
54046
54047         Reviewed by Maciej Stachowiak.
54048
54049         When the visibility of a page changes to "hidden", all it's DOM timers are
54050         updated to align their fire times on one second intervals.  This limits the
54051         number of CPU wakes due to a hidden pages to one per second.
54052
54053         Test: fast/dom/timer-throttling-hidden-page.html
54054
54055         * Configurations/FeatureDefines.xcconfig:
54056         * WebCore.exp.in:
54057         * dom/Document.cpp:
54058         (WebCore):
54059         (WebCore::Document::timerAlignmentInterval):
54060         Read Page::timerAlignmentInterval and pass it along to DOMTimer.
54061
54062         * dom/Document.h:
54063         (Document):
54064         * dom/ScriptExecutionContext.cpp:
54065         (WebCore):
54066         (WebCore::ScriptExecutionContext::didChangeTimerAlignmentInterval):
54067         Scan through self DOM Timers and tell them to recompute their fire
54068         time based on the updated alignment interval.
54069         (WebCore::ScriptExecutionContext::timerAlignmentInterval):
54070
54071         * dom/ScriptExecutionContext.h:
54072         (ScriptExecutionContext):
54073         * page/DOMTimer.cpp:
54074         (WebCore):
54075         (WebCore::DOMTimer::alignedFireTime):
54076         If the document's alignment interval is non zero, round up the fire
54077         time to the next multiple of alignment interval.
54078
54079         * page/DOMTimer.h:
54080         (DOMTimer):
54081         (WebCore::DOMTimer::defaultTimerAlignmentInterval):
54082         (WebCore::DOMTimer::setDefaultTimerAlignmentInterval):
54083         * page/Page.cpp:
54084         (WebCore::Page::Page):
54085         (WebCore):
54086         (WebCore::Page::setTimerAlignmentInterval):
54087         (WebCore::Page::timerAlignmentInterval):
54088         (WebCore::Page::setVisibilityState):
54089         Getter and Setter for alignment interval.  Expose setVisibilityState
54090         if either PAGE_VISIBILITY_API is enabled or if HIDDEN_PAGE_DOM_TIMER_REDUCTION
54091         is enabled.
54092
54093         * page/Page.h:
54094         (Page):
54095         * page/Settings.cpp:
54096         (WebCore):
54097         (WebCore::Settings::setDefaultDOMTimerAlignmentInterval):
54098         (WebCore::Settings::defaultDOMTimerAlignmentInterval):
54099         (WebCore::Settings::setDOMTimerAlignmentInterval):
54100         (WebCore::Settings::domTimerAlignmentInterval):
54101         * page/Settings.h:
54102         (Settings):
54103         * page/SuspendableTimer.cpp:
54104         (WebCore::SuspendableTimer::suspend):
54105         Save the time remaining to the original unaligned fire time, so that
54106         on resuming, the fire time will be correctly aligned using the latest
54107         alignment interval.
54108
54109         * platform/ThreadTimers.cpp:
54110         (WebCore::ThreadTimers::sharedTimerFiredInternal):
54111         Clear m_unalignedNextFireTime along with m_nextFireTime to keep
54112         them always in sync.
54113
54114         * platform/Timer.cpp:
54115         (WebCore::TimerBase::TimerBase):
54116         (WebCore::TimerBase::setNextFireTime):
54117         Save the requested fire time in m_unalignedNextFireTime and
54118         set m_nextFireTime to the aligned value.  The unalinged value
54119         is used to recompute fire time if alignment interval changes.
54120         (WebCore):
54121         (WebCore::TimerBase::didChangeAlignmentInterval):
54122         Recompute next fire time from m_unalignedNextFireTime.
54123         (WebCore::TimerBase::nextUnalignedFireInterval):
54124         Interval from current time to the original unaligned fire time.
54125
54126         * platform/Timer.h:
54127         (TimerBase):
54128         (WebCore::TimerBase::alignedFireTime):
54129
54130 2012-10-08  Andreas Kling  <kling@webkit.org>
54131
54132         1.18MB below RenderTableSection::setCachedCollapsedBorderValue() on Membuster3.
54133         <http://webkit.org/b/98670>
54134         <rdar://problem/12454276>
54135
54136         Reviewed by Anders Carlsson.
54137
54138         Refactor CollapsedBorderValue to only store the bits and pieces from the BorderValue
54139         that it actually needs. Packed the whole thing into 64 bits.
54140
54141         Reduces memory consumption by 547kB on Membuster3.
54142
54143         * rendering/RenderTableCell.cpp:
54144
54145             Add compile-time size assertion for CollapsedBorderValue.
54146
54147         * rendering/style/CollapsedBorderValue.h:
54148         (WebCore::CollapsedBorderValue::CollapsedBorderValue):
54149         (WebCore::CollapsedBorderValue::width):
54150         (WebCore::CollapsedBorderValue::style):
54151         (WebCore::CollapsedBorderValue::color):
54152         (WebCore::CollapsedBorderValue::isTransparent):
54153         (WebCore::CollapsedBorderValue::precedence):
54154         (WebCore::CollapsedBorderValue::isSameIgnoringColor):
54155         (CollapsedBorderValue):
54156
54157             Apply shrinkwrap to CollapsedBorderValue. Removed specialized copy constructor since
54158             the class only has primitive members now.
54159
54160 2012-10-08  Yoshifumi Inoue  <yosin@chromium.org>
54161
54162         HTMLSelectElement::typeAheadFind depends on implementation dependent behavior
54163         https://bugs.webkit.org/show_bug.cgi?id=98710
54164
54165         Reviewed by Kent Tamura.
54166
54167         This patch gets rid of C/C++ implementation dependent behavior from
54168         HTMLSelectElement::typeAheadFind() which does modulo operation with
54169         a negative operand.
54170
54171         HTMLSelectElement::typeAheadFind() contains expression with modulo
54172         operator and dividend can be -1 when the "select" element without
54173         "option" element but "optgroup" element.
54174
54175         Test: fast/forms/select/select-typeahead-crash.html
54176
54177         * html/HTMLSelectElement.cpp:
54178         (WebCore::HTMLSelectElement::typeAheadFind): Changed to do modulo
54179         operation with both operands are non-negative.
54180
54181 2012-10-08  Kent Tamura  <tkent@chromium.org>
54182
54183         Take account of overflowing values for width calculation of a year sub-field
54184         https://bugs.webkit.org/show_bug.cgi?id=98506
54185
54186         Reviewed by Eric Seidel.
54187
54188         When we decide the width of a year field of an input[type=date]
54189         with the multiple fields UI, we need to take account of the
54190         current value width because we allow to set overflowing values to
54191         the input[type=date].
54192
54193         This change affects only platforms with INPUT_TYPE_DATE &&
54194         INPUT_MULTIPLE_FIELDS_UI.
54195
54196         Test: fast/forms/date-multiple-fields/date-multiple-fields-change-layout-by-value.html
54197
54198         * html/shadow/DateTimeNumericFieldElement.cpp:
54199         (WebCore::DateTimeNumericFieldElement::customStyleForRenderer):
54200         Take account of the current value width.
54201
54202 2012-10-08  Tony Chang  <tony@chromium.org>
54203
54204         image not displayed in flexbox
54205         https://bugs.webkit.org/show_bug.cgi?id=98611
54206
54207         Reviewed by Ojan Vafai.
54208
54209         Flexbox will override the width of a child and when stretching, will override the height of the child.
54210         When this happens, when an image loads, it checks to see if it's width/height has
54211         changed, and if so, does a relayout.  The overridden width/height was preventing this
54212         relayout from happening.
54213
54214         To fix, we clear all the override sizes when we're done laying out the flex children.
54215
54216         Test: css3/flexbox/relayout-image-load.html
54217
54218         * rendering/RenderFlexibleBox.cpp:
54219         (WebCore::RenderFlexibleBox::layoutBlock): Clear child override sizes.
54220         (WebCore::RenderFlexibleBox::clearChildOverrideSizes):
54221         (WebCore::RenderFlexibleBox::computeMainAxisPreferredSizes): No longer need to clear the override size
54222         here since it should have already been cleared.
54223         * rendering/RenderFlexibleBox.h:
54224
54225 2012-10-08  Andreas Kling  <kling@webkit.org>
54226
54227         REGRESSION(r130643): editing/pasteboard/data-transfer-item is failing on chromium.
54228         <http://webkit.org/b/98686>
54229
54230         Reviewed by Tony Chang.
54231
54232         Change ChromiumDataObject::createFromPasteboard() to use a ListHashSet instead of a HashSet so that
54233         item order is preserved.
54234
54235         * platform/chromium/ChromiumDataObject.cpp:
54236         (WebCore::ChromiumDataObject::createFromPasteboard):
54237
54238 2012-10-08  Eric Seidel  <eric@webkit.org>
54239
54240         Inline logicalHeightForRowSizing to shave another 2-3% off robohornet's resizecol.html
54241         https://bugs.webkit.org/show_bug.cgi?id=98703
54242
54243         Reviewed by Emil A Eklund.
54244
54245         This is very small potatoes.  There are much bigger wins for table layout yet, but
54246         this was an easy win.
54247
54248         This function should probably be converted to use int's only, as table cells are pixel-sized
54249         according to our subpixel-experts.
54250
54251         Also, I suspect there should be ways to early return with less-math in the common cases, but
54252         I've saved such for a later patch.
54253
54254         Note that I changed from using paddingBefore/paddingAfter (which include the instrinsic padding)
54255         to calling computedCSSPaddingBefore/computedCSSPaddingAfter directly as well.
54256
54257         This single function is about 11% of total time for robohornet's resizecol.
54258
54259         * rendering/RenderTableCell.cpp:
54260         * rendering/RenderTableCell.h:
54261         (WebCore::RenderTableCell::logicalHeightForRowSizing):
54262
54263 2012-10-08  Alec Flett  <alecflett@chromium.org>
54264
54265         IndexedDB: remove autogenerated objectStore/index id code
54266         https://bugs.webkit.org/show_bug.cgi?id=98085
54267
54268         Reviewed by Tony Chang.
54269
54270         Remove support for backend-generated objectstore and index
54271         ids. The frontend objects now manage that state during
54272         versionchange transactions. The IDBDatabaseBackendInterface and
54273         IDBObjectStoreBackendInterface methods will go away when
54274         https://bugs.webkit.org/show_bug.cgi?id=98682 lands.
54275
54276         No new tests as this is part of a refactoring, existing indexeddb
54277         tests cover correctness.
54278
54279         * Modules/indexeddb/IDBBackingStore.h:
54280         (IDBBackingStore):
54281         * Modules/indexeddb/IDBDatabase.cpp:
54282         (WebCore::IDBDatabase::createObjectStore):
54283         * Modules/indexeddb/IDBDatabaseBackendImpl.cpp:
54284         (WebCore::IDBDatabaseBackendImpl::createObjectStore):
54285         (WebCore::IDBDatabaseBackendImpl::createObjectStoreInternal):
54286         (WebCore::IDBDatabaseBackendImpl::loadObjectStores):
54287         * Modules/indexeddb/IDBDatabaseBackendInterface.h:
54288         (IDBDatabaseBackendInterface):
54289         * Modules/indexeddb/IDBLevelDBBackingStore.cpp:
54290         (WebCore::IDBLevelDBBackingStore::createObjectStore):
54291         (WebCore::setMaxIndexId):
54292         (WebCore::IDBLevelDBBackingStore::createIndex):
54293         * Modules/indexeddb/IDBLevelDBBackingStore.h:
54294         (IDBLevelDBBackingStore):
54295         * Modules/indexeddb/IDBObjectStore.cpp:
54296         (WebCore::IDBObjectStore::createIndex):
54297         * Modules/indexeddb/IDBObjectStoreBackendImpl.cpp:
54298         (WebCore::IDBObjectStoreBackendImpl::IDBObjectStoreBackendImpl):
54299         (WebCore::IDBObjectStoreBackendImpl::createIndex):
54300         (WebCore::IDBObjectStoreBackendImpl::createIndexInternal):
54301         * Modules/indexeddb/IDBObjectStoreBackendInterface.h:
54302
54303 2012-10-08  Jaehun Lim  <ljaehun.lim@samsung.com>
54304
54305         [CAIRO] Adjust the source rect size when IMAGE_DECODER_DOWN_SAMPLING is enabled
54306         https://bugs.webkit.org/show_bug.cgi?id=98630
54307
54308         Reviewed by Martin Robinson.
54309
54310         IMAGE_DECODER_DOWN_SAMPLING scales down the size of the big image.
54311         CAIRO needs to adjust the source size to the scaled value.
54312
54313         No new tests.
54314
54315         * platform/graphics/cairo/BitmapImageCairo.cpp:
54316         (WebCore::BitmapImage::draw):
54317
54318 2012-10-08  Adam Barth  <abarth@webkit.org>
54319
54320         Remove unused features of BlobBuilder
54321         https://bugs.webkit.org/show_bug.cgi?id=98331
54322
54323         Reviewed by Eric Seidel.
54324
54325         Now that we don't expose BlobBuilder as a web platform API, we can
54326         strip down the class to handle only those cases that are needed by the
54327         Blob constructor.
54328
54329         I've also renamed the class from WebKitBlobBuilder to BlobBuilder and
54330         made it stack allocated rather than RefCounted. A future patch will
54331         actually move the files around. (I didn't want to mix moving code
54332         around with modifying the code.)
54333
54334         * bindings/js/JSBlobCustom.cpp:
54335         (WebCore::JSBlobConstructor::constructJSBlob):
54336         * bindings/v8/custom/V8BlobCustom.cpp:
54337         (WebCore::V8Blob::constructorCallback):
54338         * fileapi/WebKitBlobBuilder.cpp:
54339         (WebCore):
54340         (WebCore::BlobBuilder::BlobBuilder):
54341         (WebCore::BlobBuilder::getBuffer):
54342         (WebCore::BlobBuilder::append):
54343         (WebCore::BlobBuilder::appendBytesData):
54344         (WebCore::BlobBuilder::getBlob):
54345         * fileapi/WebKitBlobBuilder.h:
54346         (WebCore):
54347         (BlobBuilder):
54348         * page/FeatureObserver.h:
54349
54350 2012-10-08  Martin Robinson  <mrobinson@igalia.com>
54351
54352         Try to fix the debug build after r130699
54353
54354         Move the assignment of the ResourceHandleInternal local to before
54355         the include statement where it is used.
54356
54357         * platform/network/soup/ResourceHandleSoup.cpp:
54358         (WebCore::createSoupMessageForHandleAndRequest):
54359
54360 2012-10-08  Nate Chapin  <japhet@chromium.org>
54361
54362         Post-r130226 Cleanup: Comment a complicated if statement and make it a helper.
54363         https://bugs.webkit.org/show_bug.cgi?id=98463
54364
54365         Reviewed by Eric Seidel.
54366
54367         No new tests, refactor only.
54368
54369         * rendering/RenderLayer.cpp:
54370         (WebCore::frameElementAndViewPermitScroll):
54371         (WebCore::RenderLayer::scrollRectToVisible):
54372
54373 2012-10-06  Martin Robinson  <mrobinson@igalia.com>
54374
54375         [Soup] Simplify the way that requests are started
54376         https://bugs.webkit.org/show_bug.cgi?id=98532
54377
54378         Reviewed by Gustavo Noronha Silva.
54379
54380         Simplify the creation of the libsoup request and message when kicking off
54381         requests, by elminating a bit of duplicate code.
54382
54383         No new tests. This should not change any behavior.
54384
54385         * platform/network/ResourceHandle.h:
54386         (ResourceHandle):
54387         * platform/network/soup/ResourceHandleSoup.cpp:
54388         (WebCore):
54389         (WebCore::ResourceHandleInternal::soupSession): Ensure the session
54390         is initialized when passing it to the caller.
54391         (WebCore::createSoupMessageForHandleAndRequest): Added this helper which
54392         takes care of creating the SoupMessage for HTTP/HTTPS requests.
54393         (WebCore::createSoupRequestAndMessageForHandle): Collapsed the HTTP and
54394         non-HTTP request creation into this helper.
54395         (WebCore::ResourceHandle::start): Call the new helper now and then sendPendingRequest.
54396         (WebCore::ResourceHandle::sendPendingRequest): Instead of having special
54397         helpers to create and send the request, duplicating the logic for sending it
54398         across the file, add this method which can be used in both cases.
54399         (WebCore::waitingToSendRequest): Reworked the hasBeenSent method to answer
54400         the question of whether or not the request is ready to be sent, but is unsent.
54401         (WebCore::ResourceHandle::platformSetDefersLoading): Use the new helper.
54402         * platform/network/soup/ResourceRequest.h:
54403         (ResourceRequest): Added a new method for getting the URL string for soup.
54404         * platform/network/soup/ResourceRequestSoup.cpp:
54405         (WebCore::ResourceRequest::urlStringForSoup): Added.
54406
54407 2012-10-08  Eric Seidel  <eric@webkit.org>
54408
54409         Make no-column table-layout cases a little faster with inlining
54410         https://bugs.webkit.org/show_bug.cgi?id=98566
54411
54412         Reviewed by Julien Chaffraix.
54413
54414         This change is almost not worth it at only a couple percent boost on
54415         http://www.robohornet.org/tests/resizecol.html
54416         However, I think the logicalWidthFromTableColumn split it kinda nice
54417         so I've decided to post it anyway.
54418
54419         * rendering/RenderTable.cpp:
54420         (WebCore::RenderTable::slowColElement):
54421         * rendering/RenderTable.h:
54422         (WebCore::RenderTable::colElement):
54423         (RenderTable):
54424         * rendering/RenderTableCell.cpp:
54425         (WebCore::RenderTableCell::logicalWidthFromTableColumn):
54426         * rendering/RenderTableCell.h:
54427         (WebCore::RenderTableCell::styleOrColLogicalWidth):
54428         (RenderTableCell):
54429
54430 2012-10-08  Arpita Bahuguna  <arpitabahuguna@gmail.com>
54431
54432         Rename RenderObject::firstLineStyleSlowCase() to a more appropriate cachedFirstLineStyle()
54433         https://bugs.webkit.org/show_bug.cgi?id=98631
54434
54435         Reviewed by Eric Seidel.
54436
54437         Renaming firstLineStyleSlowCase() to cachedFirstLineStyle().
54438
54439         The current name is confusing since the function actually gets the
54440         the cached first-line styles.
54441         It also makes the name more descriptive of its functionality
54442         and in accordance with RenderObject::uncachedFirstLineStyle().
54443
54444         No new tests required for this change since no change in behavior is expected.
54445
54446         * rendering/RenderObject.cpp:
54447         (WebCore::RenderObject::cachedFirstLineStyle):
54448         * rendering/RenderObject.h:
54449         (WebCore::RenderObject::firstLineStyle):
54450         (RenderObject):
54451         Renamed RenderObject::firstLineStyleSlowCase() to cachedFirstLineStyle()
54452         and made the associated changes.
54453
54454 2012-10-08  Sami Kyostila  <skyostil@chromium.org>
54455
54456         Some non-scrollable elements are added to non-fast-scrollable region
54457         https://bugs.webkit.org/show_bug.cgi?id=97927
54458
54459         Reviewed by James Robinson.
54460
54461         Only RenderLayers that can actually be scrolled should be added to the
54462         ScrollingCoordinator's non-fast scrollable region. Otherwise we may
54463         needlessly fall back to main thread scrolling.
54464
54465         Test: ScrollingCoordinatorChromiumTest.clippedBodyTest
54466
54467         * rendering/RenderLayer.cpp:
54468         (WebCore::RenderLayer::updateScrollbarsAfterLayout):
54469         (WebCore::RenderLayer::updateScrollbarsAfterStyleChange):
54470
54471 2012-10-08  Simon Fraser  <simon.fraser@apple.com>
54472
54473         Move layerTreeAsText to window.internals
54474         https://bugs.webkit.org/show_bug.cgi?id=98690
54475
54476         Reviewed by James Robinson.
54477
54478         Add window.internals.layerTreeAsText(document), and change the tests to use it.
54479         I'll remove testRunner.layerTreeAsText() in a later patch.
54480
54481         * testing/Internals.cpp:
54482         (WebCore::Internals::layerTreeAsText):
54483         * testing/Internals.h:
54484         (Internals):
54485         * testing/Internals.idl:
54486
54487 2012-10-08  Jon Lee  <jonlee@apple.com>
54488
54489         Add render object that paints plugin snapshots
54490         https://bugs.webkit.org/show_bug.cgi?id=98322
54491         <rdar://problem/12426546>
54492
54493         Reviewed by Simon Fraser.
54494
54495         First, teach plugins to maintain a set of states when plugin snapshotting is enabled.
54496
54497         Second, a new RenderSnapshottedPlugIn class is a RenderEmbeddedObject that knows how to paint
54498         snapshots when the plugin is not visibly playing. It maintains a RenderImageResource to
54499         the generated poster image.
54500
54501         * html/HTMLPlugInElement.cpp:
54502         (WebCore::HTMLPlugInElement::HTMLPlugInElement): By default all plugins play on load.
54503         * html/HTMLPlugInElement.h: Move the inheritance of ImageLoaderClientBase down to
54504         HTMLPlugInImageElement, since that is the class that actually deals with image-based plugins.
54505         (WebCore::HTMLPlugInElement::displayState): Add bit for display state.
54506         (WebCore::HTMLPlugInElement::setDisplayState):
54507         (WebCore::HTMLPlugInElement::updateSnapshot):
54508
54509         * html/HTMLPlugInImageElement.cpp:
54510         (WebCore::HTMLPlugInImageElement::HTMLPlugInImageElement): If plugin snapshotting is
54511         enabled, plugin state is set to wait for a poster image.
54512         (WebCore::HTMLPlugInImageElement::createRenderer): Create RenderSnapshottedPlugIn if
54513         plugin snapshotting is enabled.
54514         (WebCore::HTMLPlugInImageElement::updateSnapshot): Once a snapshot is available, update the
54515         renderer and set its state to wait for user input to start the plugin.
54516         * html/HTMLPlugInImageElement.h:
54517         (HTMLPlugInImageElement):
54518
54519         * rendering/RenderObject.h:
54520         (WebCore::RenderObject::isSnapshottedPlugIn): Add new function to identify
54521         RenderSnapshottedPlugIn instances. Since RenderSnapshottedPlugIn inherits from
54522         RenderEmbeddedObject, isEmbeddedObject() still returns true.
54523         * rendering/RenderEmbeddedObject.h:
54524         (RenderEmbeddedObject): Elevate a few virtual methods to protected for
54525         RenderSnapshottedPlugIn to override.
54526
54527         * rendering/RenderSnapshottedPlugIn.cpp: Added.
54528         (WebCore::RenderSnapshottedPlugIn::RenderSnapshottedPlugIn): Initialize snapshot
54529         resource.
54530         (WebCore::RenderSnapshottedPlugIn::~RenderSnapshottedPlugIn): Shut down snapshot
54531         image resource to remove the renderer as a client, and remove image from memory cache.
54532         (WebCore::RenderSnapshottedPlugIn::plugInImageElement): Convenience function to get the
54533         HTML element.
54534         (WebCore::RenderSnapshottedPlugIn::updateSnapshot): Cache the snapshot, and repaint.
54535         (WebCore::RenderSnapshottedPlugIn::paint): If the plugin is not playing, paint like a
54536         RenderImage does.
54537         (WebCore::RenderSnapshottedPlugIn::paintReplaced): Paint the snapshot and overlay if the
54538         plugin is not playing.
54539         (WebCore::RenderSnapshottedPlugIn::paintReplacedSnapshot): Inspired by
54540         RenderImage::paintReplaced() and RenderImage::paintIntoRect().
54541         * rendering/RenderSnapshottedPlugIn.h: Added.
54542         (WebCore::RenderSnapshottedPlugIn::isSnapshottedPlugin): Returns true.
54543
54544         * rendering/RenderTheme.h: Add a function that paints the overlay on top of the snapshot.
54545         * rendering/RenderThemeMac.h:
54546         * rendering/RenderThemeMac.mm:
54547         (WebCore::RenderThemeMac::paintPlugInSnapshotOverlay):
54548
54549         * WebCore.xcodeproj/project.pbxproj: Add new RenderSnapshottedPlugIn class.
54550         * CMakeLists.txt: Ditto.
54551         * GNUmakefile.list.am: Ditto.
54552         * Target.pri: Ditto.
54553         * WebCore.gypi: Ditto.
54554         * WebCore.vcproj/WebCore.vcproj: Ditto.
54555         * rendering/RenderingAllInOne.cpp: Ditto.
54556
54557 2012-10-08  Hans Muller  <hmuller@adobe.com>
54558
54559         [CSS Exclusions] Add support for polygonal shapes
54560         https://bugs.webkit.org/show_bug.cgi?id=96811
54561
54562         Reviewed by Dirk Schulze.
54563
54564         Initial version of the layout support for polygonal exclusion shapes: the ExclusionPolygon class.
54565         Supports the public ExclusionShape operations using the algorithm described here:
54566         http://hansmuller-webkit.blogspot.com/2012/06/horizontal-box-polygon-intersection-for.html.
54567         Although both the "included" and "excluded" operations are supported, only the former is
54568         used, since only shape-inside is supported at the moment.
54569
54570         The ExclusionPolygon class stores the polygon's edges in an interval tree.
54571
54572         Polygon edges are represented by the ExclusionPolygonEdge struct, which records the indices of
54573         the pair of vertices joined by the edge.  Edge vertex index1 is usually less than index2, except
54574         the last edge where index2 is 0.  We plan to improve the algorithm that creates the edges
54575         by spanning vertices contained in sequences of more than two colinear vertices. For example,
54576         a triangular polygon might be specified with 5 vertices like this: 3,0 5,0, 5,5, 4,4 2,2, 0,0.
54577         By spanning the extra colinear points: 0,0 5,0, 5,5, which implies index1-index2 edges: 5-1 1-2 2-5.
54578
54579         Although the implementation supports complex polygons, the layout code is limited to
54580         essentially rectangular shapes until a patch for https://bugs.webkit.org/show_bug.cgi?id=96813
54581         lands.
54582
54583         Tests: fast/exclusions/shape-inside/shape-inside-polygon-rectangle.html
54584                fast/exclusions/shape-inside/shape-inside-simple-polygon-001.html
54585                fast/exclusions/shape-inside/shape-inside-simple-polygon-002.html
54586                fast/exclusions/shape-inside/shape-inside-simple-polygon-003.html
54587                fast/exclusions/shape-inside/shape-inside-simple-polygon-004.html
54588
54589         * CMakeLists.txt:
54590         * GNUmakefile.list.am:
54591         * Target.pri:
54592         * WebCore.gypi:
54593         * WebCore.vcproj/WebCore.vcproj:
54594         * WebCore.xcodeproj/project.pbxproj:
54595         * rendering/ExclusionPolygon.cpp: Added.
54596         (WebCore):
54597         (EdgeIntersection): Internal description of the intersection of a polygon edge and a horizontal line.
54598         (WebCore::ExclusionPolygon::ExclusionPolygon): See the introductory text above for a description of this type.
54599         (WebCore::computeXIntersection): Find and classify the X intercept of a polygon edge with horizontal line, if any.
54600         (WebCore::ExclusionPolygon::rightVertexY): This method is used to decide if a horizontal line "crosses" a vertex.
54601         (WebCore::appendIntervalX): Append an x coordinate to a vector of ExclusionIntervals.
54602         (WebCore::ExclusionPolygon::computeXIntersections): Return a vector of the intersections of a horizontal line with the polygon's edges.
54603         (WebCore::ExclusionPolygon::computeEdgeIntersections): Return a vector of the X projections of the edges that overlap a horizonal rectangle.
54604         (WebCore::ExclusionPolygon::getExcludedIntervals): Return a SegmentList of the X intervals within a horizontal rectangle that overlap the polygon.
54605         (WebCore::ExclusionPolygon::getIncludedIntervals): Return the X intervals within a horizontal rectangle that fit inside the polygon.
54606         * rendering/ExclusionPolygon.h: Added.
54607         (WebCore):
54608         (ExclusionPolygon):
54609         (WebCore::ExclusionPolygon::getXAt): X coordinate of a polygon vertex
54610         (WebCore::ExclusionPolygon::getYAt): Y coordinate of a polygon vertex
54611         (WebCore::ExclusionPolygon::numberOfVertices):
54612         (WebCore::ExclusionPolygon::fillRule): A WindRule value that defines "inside" for self-intersecting polygons.
54613         (ExclusionPolygonEdge):
54614         (WebCore::ExclusionPolygonEdge::ExclusionPolygonEdge):
54615         (WebCore::ExclusionPolygonEdge::vertex1):
54616         (WebCore::ExclusionPolygonEdge::vertex2):
54617         (WebCore::ExclusionPolygonEdge::minX):
54618         (WebCore::ExclusionPolygonEdge::minY):
54619         (WebCore::ExclusionPolygonEdge::maxX):
54620         (WebCore::ExclusionPolygonEdge::maxY):
54621         * rendering/ExclusionShape.cpp:
54622         (WebCore::createExclusionPolygon): Return a new ExclusionPolygon.
54623         (WebCore):
54624         (WebCore::ExclusionShape::createExclusionShape): Added support for BasicShape::BASIC_SHAPE_POLYGON.
54625         * rendering/ExclusionShapeInsideInfo.cpp:
54626         (WebCore::ExclusionShapeInsideInfo::isExclusionShapeInsideInfoEnabledForRenderBlock): Enable BASIC_SHAPE_POLYGON shapes for RenderBlocks.
54627
54628 2012-10-08  Tony Chang  <tony@chromium.org>
54629
54630         Replace 2 uses of updateLogicalHeight with computeLogicalHeight
54631         https://bugs.webkit.org/show_bug.cgi?id=98677
54632
54633         Reviewed by Ojan Vafai.
54634
54635         This is part of bug 96804.  Convert RenderTextControl and RenderSVGForeignObject to
54636         override the const computeLogicalHeight method rather than the updateLogicalHeight
54637         setter method.
54638
54639         No new tests, there should be no behavior change as this is just a refactor.
54640
54641         * rendering/RenderTextControl.cpp:
54642         (WebCore::RenderTextControl::computeLogicalHeight): Pass logicalHeight through rather than setting height.
54643         This is a slight correctness fix, although we don't support vertical inputs yet.
54644         * rendering/RenderTextControl.h:
54645         (RenderTextControl):
54646         * rendering/svg/RenderSVGForeignObject.cpp:
54647         (WebCore::RenderSVGForeignObject::computeLogicalHeight):
54648         * rendering/svg/RenderSVGForeignObject.h:
54649         (RenderSVGForeignObject):
54650
54651 2012-10-08  Min Qin  <qinmin@chromium.org>
54652
54653         Upstream some tweaks for overlay play button on Android
54654         https://bugs.webkit.org/show_bug.cgi?id=98671
54655
54656         Reviewed by Adam Barth.
54657
54658         This change stops displaying the overlay play button if video height is too small
54659         No test for this. Will rebase layout test expectations for android later.
54660
54661         * css/mediaControlsChromiumAndroid.css:
54662         (video::-webkit-media-controls-overlay-enclosure):
54663
54664 2012-10-08  Simon Fraser  <simon.fraser@apple.com>
54665
54666         Some GraphicsLayer cleanup to separate the concepts of using a tile cache, and being the main tile cache layer
54667         https://bugs.webkit.org/show_bug.cgi?id=98574
54668
54669         Reviewed by Dean Jackson.
54670
54671         GraphicsLayerCA assumed that using a TileCache equated to being the main page tile
54672         cache layer, which has some special considerations. Make these two concepts separate
54673         to get closer to being able to use TileCaches in place of CATiledLayer.
54674
54675         * platform/graphics/GraphicsLayer.h:
54676         (GraphicsLayer): Remove m_usingTileCache member, which was not appropriate
54677         for this class to have.
54678         * platform/graphics/GraphicsLayer.cpp:
54679         (WebCore::GraphicsLayer::GraphicsLayer): Remove init of m_usingTileCache.
54680         (WebCore::GraphicsLayer::debugBorderInfo): Can no longer use m_usingTileCache to
54681         get the blue color, so moved code into a virtual debugBorderInfo() method.
54682         (WebCore::GraphicsLayer::updateDebugIndicators): Call the virtual debugBorderInfo().
54683         * platform/graphics/GraphicsLayerClient.h: Remove the usingTileCache() callback;
54684         we now just cache this information in the GraphicsLayerCA on creation.
54685         * platform/graphics/ca/GraphicsLayerCA.cpp:
54686         (WebCore::GraphicsLayerCA::GraphicsLayerCA): Init m_isPageTileCacheLayer to false,
54687         then set to m_isPageTileCacheLayer if the client says we should create a tile cache.
54688         (WebCore::GraphicsLayerCA::platformCALayerShowRepaintCounter): Overidden to avoid duplicate repaint
54689         counters in the top-left tile.
54690         (WebCore::GraphicsLayerCA::updateLayerBackgroundColor): If this layer is the page tile cache layer,
54691         we allow setting of its background color.
54692         (WebCore::GraphicsLayerCA::debugBorderInfo): Overidden to use a blue color for tiles.
54693         (WebCore::GraphicsLayerCA::requiresTiledLayer): Don't make CATiledLayers for the page tile cache.
54694         * platform/graphics/ca/GraphicsLayerCA.h:
54695         (GraphicsLayerCA):
54696         * platform/graphics/ca/PlatformCALayerClient.h:
54697         (PlatformCALayerClient): Need to pass the platform layer into platformCALayerShowRepaintCounter()
54698         so we can distinguish between calls for tiles, and calls for the tile cache layer itself.
54699         * platform/graphics/ca/mac/TileCache.mm:
54700         (WebCore::TileCache::shouldShowRepaintCounters): Pass 0 to platformCALayerShowRepaintCounter() to
54701         indicate that we're asking about a tile.
54702         * platform/graphics/mac/WebLayer.mm:
54703         (drawLayerContents): Now we can just rely on platformCALayerShowRepaintCounter() to tell us whether
54704         to draw the repaint counter.
54705         (-[WebLayer setNeedsDisplayInRect:]):
54706         * platform/graphics/mac/WebTiledLayer.mm:
54707         (-[WebTiledLayer setNeedsDisplayInRect:]):
54708         * rendering/RenderLayerBacking.h:
54709         (WebCore::RenderLayerBacking::usingTileCache):
54710         (RenderLayerBacking):
54711         * rendering/RenderLayerCompositor.cpp:
54712         (WebCore::RenderLayerCompositor::documentBackgroundColorDidChange): We can ask the RenderLayerBacking
54713         whether it's for the tile cache, rather than going to the GraphicsLayer.
54714         * platform/graphics/win/MediaPlayerPrivateQuickTimeVisualContext.cpp:
54715         (WebCore::MediaPlayerPrivateQuickTimeVisualContext::LayerClient::platformCALayerShowRepaintCounter):
54716
54717 2012-10-08  Huang Dongsung  <luxtella@company100.net>
54718
54719         [Qt] Make ImageBufferQt use premultiplied converting functions in Color.h instead of its own mechanism.
54720         https://bugs.webkit.org/show_bug.cgi?id=98582
54721
54722         Reviewed by Eric Seidel.
54723
54724         Only Qt port failed canvas/philip/tests/2d.imageData.put.unchanged.html because
54725         ImageBufferQt converts from or to a premultiplied color using its own code. When
54726         we convert twice from an unmultiplied color to a premultiplied color and then to
54727         an unmultiplied color using this code, the calculated result are pretty
54728         different against the input color. It is why Gtk passes this test although Qt
54729         fails. Gtk port uses them in Color.h.
54730
54731         In addition, Qt should use the functions in Color.h to reduce duplicated codes.
54732
54733         Tests: canvas/philip/tests/2d.imageData.put.unchanged.html: Fixed a test case
54734
54735         * platform/graphics/qt/ImageBufferQt.cpp:
54736         (WebCore::getImageData):
54737         (WebCore::convertBGRAToRGBA):
54738         (WebCore::ImageBuffer::putByteArray):
54739
54740 2012-10-08  Tab Atkins  <jackalmage@gmail.com>
54741
54742         Remove "orphaned units" quirk
54743         https://bugs.webkit.org/show_bug.cgi?id=98553
54744
54745         Reviewed by Eric Seidel.
54746
54747         This patch removes our "orphaned units" quirk.
54748         We have an "orphaned units" quirk to match IE, which allows things like "width: 20 px;".
54749         But FF and Opera don't have it and aren't aware of bugs for it,
54750         and it's not in Simon Pieters' Quirks Mode spec <http://dvcs.w3.org/hg/quirks-mode/raw-file/tip/Overview.html>
54751
54752         No new tests, because I'm killing a quirk.
54753
54754         * css/CSSParser.cpp:
54755         (WebCore::CSSParser::parseValue):
54756         * css/CSSParser.h:
54757         (CSSParser):
54758
54759 2012-10-08  Robert Hogan  <robert@webkit.org>
54760
54761         Border, margin and padding of an inline's inline ancestors counted twice
54762         https://bugs.webkit.org/show_bug.cgi?id=63074
54763
54764         Reviewed by David Hyatt.
54765
54766         In a line such as '<span><span><img>Text' the border, padding and margin belonging
54767         to the two spans was counted twice by RenderBlockLineLayout::nextLineBreak(): once
54768         when adding the width of the <img> object to the line, and a second time when adding
54769         the 'Text'. The result was that nextLineBreak() now had a length for the line that 
54770         exceeded the line's maximum length and inserted a bogus line break.
54771
54772         This all happened because the helper function that is used to add in the border etc.
54773         from inline ancestors was crawling up the tree each time. It doesn't need to do that, it
54774         should stop crawling up the tree when the current object is not the first or last sibling below a parent.
54775
54776         Test: fast/inline/bpm-inline-ancestors.html
54777
54778         * rendering/RenderBlockLineLayout.cpp:
54779         (WebCore::shouldAddBorderPaddingMargin): Broke this check out into a helper function so that it 
54780         can help inlineLogicalWidth() return early and also treat empty RenderTexts the same as no previous/next
54781         sibling on the line. This ensures that collapsed leading space does not interfere with the decision to
54782         crawl up the ancestors accumulating border, padding, and margin.
54783         (WebCore):
54784         (WebCore::inlineLogicalWidth): Return early once the current child is no longer on the edge of its line - 
54785         this ensures the border, padding and margin of ancestors is not counted twice. 
54786
54787 2012-10-08  Mike West  <mkwst@chromium.org>
54788
54789         Null-check for DOMWindow before feeding it to FeatureObserver.
54790         https://bugs.webkit.org/show_bug.cgi?id=98624
54791
54792         Reviewed by Adam Barth.
54793
54794         We shouldn't call out to FeatureObserver in
54795         ContentSecurityPolicy::didReceiveHeader if the policy's document doesn't
54796         have a DOMWindow.
54797
54798         Test: http/tests/security/contentSecurityPolicy/xmlhttprequest-protected-resource-does-not-crash.html
54799
54800         * page/ContentSecurityPolicy.cpp:
54801         (WebCore::ContentSecurityPolicy::didReceiveHeader):
54802             Null check 'document->domWindow' before passing it on.
54803         * page/FeatureObserver.cpp:
54804         (WebCore::FeatureObserver::observe):
54805             ASSERT 'domWindow'.
54806
54807 2012-10-08  Nate Chapin  <japhet@chromium.org>
54808
54809         Loader cleanup : Simplify FrameLoader/DocumentLoader setupForReplace()
54810         https://bugs.webkit.org/show_bug.cgi?id=49072
54811
54812         Reviewed by Eric Seidel.
54813
54814         This patch contains one small known behavior change: multipart/x-mixed-replace main resources with text/html parts
54815         will no longer load the text/html progressively. In practice, loading the html progressively causes the document
54816         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
54817         seems to be pathological, as IE, FF, Opera and WebKit all do something different currently. This patch will cause
54818         us to behave like Firefox, which is the most sane of the current behaviors.
54819
54820         Test: http/tests/multipart/multipart-html.php
54821
54822         * loader/DocumentLoader.cpp:
54823         (WebCore::DocumentLoader::commitData): Use isMultipartReplacingLoad() helper.
54824         (WebCore::DocumentLoader::receivedData):
54825         (WebCore::DocumentLoader::setupForReplace): Renamed from setupForReplaceByMIMEType(). Call maybeFinishLoadingMultipartContent()
54826             instead of doing identical work inline. After we call frameLoader()->setReplacing(), we will never load progressively, so remove
54827             the if (doesProgressiveLoad(newMIMEType)) {} block.
54828         (WebCore::DocumentLoader::isMultipartReplacingLoad):
54829         (WebCore::DocumentLoader::maybeFinishLoadingMultipartContent): Inline the old DocumentLoader::setupForeReplace(), check
54830             frameLoader()->isReplacing() instead of the delete doesProgressiveLoad().
54831         * loader/DocumentLoader.h:
54832         * loader/FrameLoader.cpp:
54833         (WebCore::FrameLoader::setupForReplace): Move all calls to revertToProvisionalState here.
54834         * loader/MainResourceLoader.cpp:
54835         (WebCore::MainResourceLoader::didReceiveResponse): Call setupForReplace(), renamed from setupForReplaceByMIMEType().
54836
54837 2012-10-08  Zoltan Horvath  <zoltan@webkit.org>
54838
54839         [Qt] r122720 causes performance regression with DirectFB on ARMv7
54840         https://bugs.webkit.org/show_bug.cgi?id=97548
54841
54842         Reviewed by Jocelyn Turcotte.
54843
54844         Revert the rest of r122720. This change modifies the NativeImagePtr from QImage* to QPixmap*.
54845
54846         Covered by existing tests.
54847
54848         * bridge/qt/qt_pixmapruntime.cpp:
54849         (JSC::Bindings::assignToHTMLImageElement):
54850         (JSC::Bindings::QtPixmapRuntime::toQt):
54851         * platform/DragImage.h:
54852         (WebCore):
54853         * platform/graphics/GraphicsContext.h:
54854         (GraphicsContext):
54855         * platform/graphics/Image.h:
54856         (Image):
54857         * platform/graphics/NativeImagePtr.h:
54858         (WebCore):
54859         * platform/graphics/gstreamer/ImageGStreamer.h:
54860         * platform/graphics/gstreamer/ImageGStreamerQt.cpp:
54861         (ImageGStreamer::ImageGStreamer):
54862         * platform/graphics/qt/GraphicsContext3DQt.cpp:
54863         (WebCore::GraphicsContext3D::getImageData):
54864         * platform/graphics/qt/GraphicsContextQt.cpp:
54865         (WebCore::GraphicsContext::pushTransparencyLayerInternal):
54866         (WebCore::GraphicsContext::beginPlatformTransparencyLayer):
54867         (WebCore::GraphicsContext::endPlatformTransparencyLayer):
54868         * platform/graphics/qt/ImageBufferDataQt.h:
54869         (ImageBufferData):
54870         * platform/graphics/qt/ImageBufferQt.cpp:
54871         (WebCore::ImageBufferData::ImageBufferData):
54872         (WebCore):
54873         (WebCore::ImageBufferData::toQImage):
54874         (WebCore::ImageBuffer::copyImage):
54875         (WebCore::ImageBuffer::clip):
54876         (WebCore::ImageBuffer::platformTransformColorSpace):
54877         (WebCore::getImageData):
54878         (WebCore::ImageBuffer::putByteArray):
54879         (WebCore::encodeImage):
54880         (WebCore::ImageBuffer::toDataURL):
54881         * platform/graphics/qt/ImageDecoderQt.cpp:
54882         (WebCore::ImageFrame::asNewNativeImage):
54883         * platform/graphics/qt/ImageQt.cpp:
54884         (graphics):
54885         (loadResourcePixmap):
54886         (WebCore::Image::loadPlatformResource):
54887         (WebCore::Image::setPlatformResource):
54888         (WebCore::Image::drawPattern):
54889         (WebCore::BitmapImage::BitmapImage):
54890         (WebCore::BitmapImage::draw):
54891         (WebCore::BitmapImage::checkForSolidColor):
54892         (WebCore::BitmapImage::create):
54893         * platform/graphics/qt/PatternQt.cpp:
54894         (WebCore::Pattern::createPlatformPattern):
54895         * platform/graphics/qt/StillImageQt.cpp:
54896         (WebCore::StillImage::StillImage):
54897         (WebCore::StillImage::~StillImage):
54898         (WebCore::StillImage::currentFrameHasAlpha):
54899         (WebCore::StillImage::size):
54900         (WebCore::StillImage::nativeImageForCurrentFrame):
54901         (WebCore::StillImage::draw):
54902         * platform/graphics/qt/StillImageQt.h:
54903         (WebCore::StillImage::create):
54904         (WebCore::StillImage::createForRendering):
54905         (StillImage):
54906         * platform/graphics/qt/TransparencyLayer.h:
54907         (WebCore::TransparencyLayer::TransparencyLayer):
54908         (TransparencyLayer):
54909         * platform/graphics/surfaces/qt/GraphicsSurfaceQt.cpp:
54910         (WebCore::GraphicsSurface::createReadOnlyImage):
54911         * platform/graphics/texmap/TextureMapperGL.cpp:
54912         (WebCore::BitmapTextureGL::updateContents):
54913         * platform/qt/ClipboardQt.cpp:
54914         (WebCore::ClipboardQt::createDragImage):
54915         (WebCore::ClipboardQt::declareAndWriteDragImage):
54916         * platform/qt/CursorQt.cpp:
54917         (WebCore::createCustomCursor):
54918         * platform/qt/DragImageQt.cpp:
54919         (WebCore::createDragImageFromImage):
54920         * platform/qt/PasteboardQt.cpp:
54921         (WebCore::Pasteboard::writeImage):
54922
54923 2012-10-08  Carlos Garcia Campos  <cgarcia@igalia.com>
54924
54925         Unreviewed. Fix make distcheck.
54926
54927         * GNUmakefile.list.am: Add missing header file to compilation.
54928
54929 2012-10-08  Sheriff Bot  <webkit.review.bot@gmail.com>
54930
54931         Unreviewed, rolling out r130619.
54932         http://trac.webkit.org/changeset/130619
54933         https://bugs.webkit.org/show_bug.cgi?id=98634
54934
54935         Causes many crashes on the EFL bots. (Requested by rakuco on
54936         #webkit).
54937
54938         * platform/RunLoop.h:
54939         (RunLoop):
54940         * platform/efl/RunLoopEfl.cpp:
54941         (WebCore::RunLoop::RunLoop):
54942         (WebCore::RunLoop::wakeUpEvent):
54943         (WebCore::RunLoop::wakeUp):
54944
54945 2012-10-08  Byungwoo Lee  <bw80.lee@samsung.com>
54946
54947         [EFL] Use ecore_main_loop_thread_safe_call_async() to wakeup main loop.
54948         https://bugs.webkit.org/show_bug.cgi?id=98505
54949
54950         Reviewed by Kenneth Rohde Christiansen.
54951
54952         Instead of ecore_pipe_write(),
54953         use ecore_main_loop_thread_safe_call_async() to wakeup ecore main loop.
54954
54955         According to the EFL API document, this function is designed to dispatch
54956         a function on ecore main loop by avoiding dead lock or race condition. 
54957         With this function, webkit doesn't need to maintain ecore pipe also.
54958
54959         No new tests. The function to wakeup main loop is changed.
54960
54961         * platform/RunLoop.h:
54962         (RunLoop):
54963         * platform/efl/RunLoopEfl.cpp:
54964         (WebCore::RunLoop::RunLoop):
54965         (WebCore::RunLoop::wakeUpEvent):
54966         (WebCore::RunLoop::wakeUp):
54967
54968 2012-10-07  Arpita Bahuguna  <arpitabahuguna@gmail.com>
54969
54970         :first-line pseudo selector ignoring words created from :before
54971         https://bugs.webkit.org/show_bug.cgi?id=80794
54972
54973         Reviewed by Daniel Bates.
54974
54975         The :first-line pseudo-element style is not applied for content
54976         which is generated from the :before/:after pseudo-elements.
54977
54978         Test: fast/css/first-line-style-for-before-after-content.html
54979
54980         * rendering/RenderObject.cpp:
54981         (WebCore::firstLineStyleForCachedUncachedType):
54982         Added a new static helper function incorporating the common
54983         functionality of both uncachedFirstLineStyle() and firstLineStyleSlowCase()
54984         functions. It also modifies the functionality to handle the
54985         scenario when :first-line style needs to be applied on content
54986         generated from :before/:after.
54987
54988         While getting the :first-line style we should also consider the case
54989         when the content is generated from a :before/:after pseudo-element in
54990         which case the RenderInline's parent should be considered for
54991         obtaining the first-line style.
54992
54993         (WebCore):
54994         (WebCore::RenderObject::uncachedFirstLineStyle):
54995         (WebCore::RenderObject::firstLineStyleSlowCase):
54996         Moved the duplicate code between the two functions to the common
54997         helper function firstLineStyleForCachedUncachedType().
54998
54999 2012-10-07  Peter Wang  <peter.wang@torchmobile.com.cn>
55000
55001         Web Inspector: The front-end should provide the position in original source file when set a breakpoint
55002         https://bugs.webkit.org/show_bug.cgi?id=93473
55003
55004         Reviewed by Yury Semikhatsky.
55005
55006         Since frontend truncates the indent, the first statement in a line must match the breakpoint (line, 0).
55007         With this patch JSC debugger can support both normal and "Pretty Print" mode.
55008
55009         No new test case. This patch can be verified with cases in "LayoutTests/inspector/debugger/".
55010
55011         * bindings/js/ScriptDebugServer.cpp:
55012         (WebCore::ScriptDebugServer::ScriptDebugServer):
55013         (WebCore::ScriptDebugServer::hasBreakpoint):
55014         (WebCore::ScriptDebugServer::createCallFrameAndPauseIfNeeded):
55015         (WebCore::ScriptDebugServer::pauseIfNeeded):
55016         * bindings/js/ScriptDebugServer.h:
55017         (ScriptDebugServer):
55018
55019 2012-10-07  Martin Robinson  <mrobinson@igalia.com>
55020
55021         [Soup] Clean up ResourceError creation
55022         https://bugs.webkit.org/show_bug.cgi?id=98521
55023
55024         Reviewed by Carlos Garcia Campos.
55025
55026         Simplify the creation of ResourcErrors in ResourceHandleSoup. This is
55027         part of a process to make the libsoup networking backend more hackable.
55028
55029         No new tests. This shouldn't change functionality.
55030
55031         * GNUmakefile.list.am: Added new file.
55032         * PlatformEfl.cmake: Added new file.
55033         * platform/network/soup/ResourceError.h:
55034         (ResourceError): Added new factories.
55035         * platform/network/soup/ResourceErrorSoup.cpp: Added.
55036         (WebCore::failingURI): Added this helper.
55037         (WebCore::ResourceError::httpError): New factory.
55038         (WebCore::ResourceError::genericIOError): Ditto.
55039         (WebCore::ResourceError::tlsError): Ditto.
55040         (WebCore::ResourceError::timeoutError): Ditto.
55041         * platform/network/soup/ResourceHandleSoup.cpp:
55042         (WebCore::handleUnignoredTLSErrors): Created this helper which merges
55043         some of the logic from sendRequestCallback.
55044         (WebCore::sendRequestCallback): Use the new helper.
55045         (WebCore::requestTimeoutCallback): Use the new factory.
55046
55047 2012-10-07  Caio Marcelo de Oliveira Filho  <caio.oliveira@openbossa.org>
55048
55049         Rename first/second to key/value in HashMap iterators
55050         https://bugs.webkit.org/show_bug.cgi?id=82784
55051
55052         Reviewed by Eric Seidel.
55053
55054         * Modules/geolocation/Geolocation.cpp:
55055         (WebCore::Geolocation::Watchers::find):
55056         (WebCore::Geolocation::Watchers::remove):
55057         * Modules/indexeddb/IDBDatabase.cpp:
55058         (WebCore::IDBDatabase::objectStoreNames):
55059         * Modules/indexeddb/IDBDatabaseBackendImpl.cpp:
55060         (WebCore::IDBDatabaseBackendImpl::metadata):
55061         * Modules/indexeddb/IDBFactoryBackendImpl.cpp:
55062         (WebCore::IDBFactoryBackendImpl::deleteDatabase):
55063         (WebCore::IDBFactoryBackendImpl::openBackingStore):
55064         (WebCore::IDBFactoryBackendImpl::open):
55065         * Modules/indexeddb/IDBObjectStore.cpp:
55066         (WebCore::IDBObjectStore::indexNames):
55067         (WebCore::IDBObjectStore::put):
55068         (WebCore::IDBObjectStore::index):
55069         (WebCore::IDBObjectStore::deleteIndex):
55070         * Modules/indexeddb/IDBObjectStoreBackendImpl.cpp:
55071         (WebCore::IDBObjectStoreBackendImpl::metadata):
55072         (WebCore::makeIndexWriters):
55073         (WebCore::IDBObjectStoreBackendImpl::deleteInternal):
55074         * Modules/indexeddb/IDBTransaction.cpp:
55075         (WebCore::IDBTransaction::objectStore):
55076         (WebCore::IDBTransaction::objectStoreDeleted):
55077         (WebCore::IDBTransaction::onAbort):
55078         (WebCore::IDBTransaction::dispatchEvent):
55079         * Modules/mediastream/MediaConstraintsImpl.cpp:
55080         (WebCore::MediaConstraintsImpl::getMandatoryConstraints):
55081         (WebCore::MediaConstraintsImpl::getMandatoryConstraintValue):
55082         * Modules/webdatabase/AbstractDatabase.cpp:
55083         (WebCore::AbstractDatabase::performOpenAndVerify):
55084         * Modules/webdatabase/DatabaseTracker.cpp:
55085         (WebCore::DatabaseTracker::interruptAllDatabasesForContext):
55086         * Modules/webdatabase/OriginUsageRecord.cpp:
55087         (WebCore::OriginUsageRecord::diskUsage):
55088         * Modules/webdatabase/SQLTransactionCoordinator.cpp:
55089         (WebCore::SQLTransactionCoordinator::acquireLock):
55090         (WebCore::SQLTransactionCoordinator::releaseLock):
55091         (WebCore::SQLTransactionCoordinator::shutdown):
55092         * Modules/webdatabase/chromium/DatabaseTrackerChromium.cpp:
55093         (WebCore::DatabaseTracker::interruptAllDatabasesForContext):
55094         * Modules/webdatabase/chromium/QuotaTracker.cpp:
55095         (WebCore::QuotaTracker::getDatabaseSizeAndSpaceAvailableToOrigin):
55096         (WebCore::QuotaTracker::updateDatabaseSize):
55097         * Modules/websockets/WebSocketDeflateFramer.cpp:
55098         (WebCore::WebSocketExtensionDeflateFrame::processResponse):
55099         * Modules/websockets/WebSocketExtensionDispatcher.cpp:
55100         (WebCore::WebSocketExtensionDispatcher::appendAcceptedExtension):
55101         * accessibility/AXObjectCache.cpp:
55102         (WebCore::AXObjectCache::~AXObjectCache):
55103         * bindings/gobject/DOMObjectCache.cpp:
55104         (WebKit::DOMObjectCache::clearByFrame):
55105         * bindings/js/DOMObjectHashTableMap.h:
55106         (WebCore::DOMObjectHashTableMap::~DOMObjectHashTableMap):
55107         (WebCore::DOMObjectHashTableMap::get):
55108         * bindings/js/JSDOMBinding.cpp:
55109         (WebCore::cacheDOMStructure):
55110         * bindings/js/JSDOMGlobalObject.cpp:
55111         (WebCore::JSDOMGlobalObject::visitChildren):
55112         * bindings/js/JSDOMGlobalObject.h:
55113         (WebCore::getDOMConstructor):
55114         * bindings/js/PageScriptDebugServer.cpp:
55115         (WebCore::PageScriptDebugServer::addListener):
55116         (WebCore::PageScriptDebugServer::removeListener):
55117         * bindings/js/ScriptCachedFrameData.cpp:
55118         (WebCore::ScriptCachedFrameData::ScriptCachedFrameData):
55119         (WebCore::ScriptCachedFrameData::restore):
55120         * bindings/js/ScriptController.cpp:
55121         (WebCore::ScriptController::~ScriptController):
55122         (WebCore::ScriptController::clearWindowShell):
55123         (WebCore::ScriptController::attachDebugger):
55124         (WebCore::ScriptController::updateDocument):
55125         (WebCore::ScriptController::createRootObject):
55126         (WebCore::ScriptController::collectIsolatedContexts):
55127         (WebCore::ScriptController::cleanupScriptObjectsForPlugin):
55128         (WebCore::ScriptController::clearScriptObjects):
55129         * bindings/js/ScriptController.h:
55130         (WebCore::ScriptController::windowShell):
55131         (WebCore::ScriptController::existingWindowShell):
55132         * bindings/js/ScriptDebugServer.cpp:
55133         (WebCore::ScriptDebugServer::setBreakpoint):
55134         (WebCore::ScriptDebugServer::removeBreakpoint):
55135         (WebCore::ScriptDebugServer::hasBreakpoint):
55136         * bindings/js/SerializedScriptValue.cpp:
55137         (WebCore::CloneSerializer::checkForDuplicate):
55138         (WebCore::CloneSerializer::dumpIfTerminal):
55139         (WebCore::CloneSerializer::write):
55140         * bindings/scripts/CodeGeneratorV8.pm:
55141         (GenerateImplementation):
55142         * bindings/scripts/test/V8/V8Float64Array.cpp:
55143         (WebCore::V8Float64Array::GetRawTemplate):
55144         (WebCore::V8Float64Array::GetTemplate):
55145         * bindings/scripts/test/V8/V8TestActiveDOMObject.cpp:
55146         (WebCore::V8TestActiveDOMObject::GetRawTemplate):
55147         (WebCore::V8TestActiveDOMObject::GetTemplate):
55148         * bindings/scripts/test/V8/V8TestCustomNamedGetter.cpp:
55149         (WebCore::V8TestCustomNamedGetter::GetRawTemplate):
55150         (WebCore::V8TestCustomNamedGetter::GetTemplate):
55151         * bindings/scripts/test/V8/V8TestEventConstructor.cpp:
55152         (WebCore::V8TestEventConstructor::GetRawTemplate):
55153         (WebCore::V8TestEventConstructor::GetTemplate):
55154         * bindings/scripts/test/V8/V8TestEventTarget.cpp:
55155         (WebCore::V8TestEventTarget::GetRawTemplate):
55156         (WebCore::V8TestEventTarget::GetTemplate):
55157         * bindings/scripts/test/V8/V8TestException.cpp:
55158         (WebCore::V8TestException::GetRawTemplate):
55159         (WebCore::V8TestException::GetTemplate):
55160         * bindings/scripts/test/V8/V8TestInterface.cpp:
55161         (WebCore::V8TestInterface::GetRawTemplate):
55162         (WebCore::V8TestInterface::GetTemplate):
55163         * bindings/scripts/test/V8/V8TestMediaQueryListListener.cpp:
55164         (WebCore::V8TestMediaQueryListListener::GetRawTemplate):
55165         (WebCore::V8TestMediaQueryListListener::GetTemplate):
55166         * bindings/scripts/test/V8/V8TestNamedConstructor.cpp:
55167         (WebCore::V8TestNamedConstructor::GetRawTemplate):
55168         (WebCore::V8TestNamedConstructor::GetTemplate):
55169         * bindings/scripts/test/V8/V8TestNode.cpp:
55170         (WebCore::V8TestNode::GetRawTemplate):
55171         (WebCore::V8TestNode::GetTemplate):
55172         * bindings/scripts/test/V8/V8TestObj.cpp:
55173         (WebCore::V8TestObj::GetRawTemplate):
55174         (WebCore::V8TestObj::GetTemplate):
55175         * bindings/scripts/test/V8/V8TestSerializedScriptValueInterface.cpp:
55176         (WebCore::V8TestSerializedScriptValueInterface::GetRawTemplate):
55177         (WebCore::V8TestSerializedScriptValueInterface::GetTemplate):
55178         * bindings/v8/DOMWrapperWorld.cpp:
55179         (WebCore::DOMWrapperWorld::deallocate):
55180         (WebCore::DOMWrapperWorld::ensureIsolatedWorld):
55181         * bindings/v8/NPV8Object.cpp:
55182         (WebCore::freeV8NPObject):
55183         (WebCore::npCreateV8ScriptObject):
55184         * bindings/v8/ScriptController.cpp:
55185         (WebCore::ScriptController::clearScriptObjects):
55186         (WebCore::ScriptController::resetIsolatedWorlds):
55187         (WebCore::ScriptController::ensureIsolatedWorldContext):
55188         (WebCore::ScriptController::existingWindowShellInternal):
55189         (WebCore::ScriptController::evaluateInIsolatedWorld):
55190         (WebCore::ScriptController::setIsolatedWorldSecurityOrigin):
55191         (WebCore::ScriptController::cleanupScriptObjectsForPlugin):
55192         (WebCore::ScriptController::collectIsolatedContexts):
55193         * bindings/v8/SerializedScriptValue.cpp:
55194         * bindings/v8/V8DOMMap.h:
55195         (WebCore::WeakReferenceMap::removeIfPresent):
55196         (WebCore::WeakReferenceMap::visit):
55197         * bindings/v8/V8PerContextData.cpp:
55198         (WebCore::V8PerContextData::dispose):
55199         * bindings/v8/npruntime.cpp:
55200         * bridge/IdentifierRep.cpp:
55201         (WebCore::IdentifierRep::get):
55202         * bridge/NP_jsobject.cpp:
55203         (ObjectMap::add):
55204         (ObjectMap::remove):
55205         * bridge/runtime_root.cpp:
55206         (JSC::Bindings::RootObject::invalidate):
55207         * css/CSSCanvasValue.cpp:
55208         (WebCore::CSSCanvasValue::canvasChanged):
55209         (WebCore::CSSCanvasValue::canvasResized):
55210         * css/CSSComputedStyleDeclaration.cpp:
55211         (WebCore::counterToCSSValue):
55212         * css/CSSCrossfadeValue.cpp:
55213         (WebCore::CSSCrossfadeValue::crossfadeChanged):
55214         * css/CSSFontFaceSource.cpp:
55215         (WebCore::CSSFontFaceSource::getFontData):
55216         * css/CSSFontSelector.cpp:
55217         (WebCore::CSSFontSelector::addFontFaceRule):
55218         (WebCore::CSSFontSelector::getFontData):
55219         * css/CSSImageGeneratorValue.cpp:
55220         (WebCore::CSSImageGeneratorValue::addClient):
55221         (WebCore::CSSImageGeneratorValue::removeClient):
55222         (WebCore::CSSImageGeneratorValue::getImage):
55223         * css/CSSSegmentedFontFace.cpp:
55224         (WebCore::CSSSegmentedFontFace::getFontData):
55225         * css/CSSSelector.cpp:
55226         (WebCore::CSSSelector::parsePseudoType):
55227         * css/CSSValuePool.cpp:
55228         (WebCore::CSSValuePool::createColorValue):
55229         (WebCore::CSSValuePool::createFontFamilyValue):
55230         (WebCore::CSSValuePool::createFontFaceValue):
55231         * css/PropertySetCSSStyleDeclaration.cpp:
55232         (WebCore::PropertySetCSSStyleDeclaration::cloneAndCacheForCSSOM):
55233         * css/RuleSet.cpp:
55234         (WebCore::reportAtomRuleMap):
55235         (WebCore::RuleSet::addToRuleSet):
55236         (WebCore::shrinkMapVectorsToFit):
55237         * css/StyleBuilder.cpp:
55238         (WebCore::ApplyPropertyCounter::applyInheritValue):
55239         (WebCore::ApplyPropertyCounter::applyValue):
55240         * css/StyleResolver.cpp:
55241         (WebCore::StyleResolver::collectFeatures):
55242         (WebCore::StyleResolver::ruleSetForScope):
55243         (WebCore::StyleResolver::appendAuthorStylesheets):
55244         (WebCore::StyleResolver::sweepMatchedPropertiesCache):
55245         (WebCore::StyleResolver::collectMatchingRulesForList):
55246         * css/StyleSheetContents.cpp:
55247         (WebCore::StyleSheetContents::parserAddNamespace):
55248         (WebCore::StyleSheetContents::determineNamespace):
55249         * dom/CheckedRadioButtons.cpp:
55250         (WebCore::CheckedRadioButtons::addButton):
55251         (WebCore::CheckedRadioButtons::removeButton):
55252         * dom/ChildListMutationScope.cpp:
55253         (WebCore::ChildListMutationAccumulator::getOrCreate):
55254         * dom/Document.cpp:
55255         (WebCore::Document::windowNamedItems):
55256         (WebCore::Document::documentNamedItems):
55257         (WebCore::Document::getCSSCanvasElement):
55258         (WebCore::Document::cachedImmutableAttributeData):
55259         (WebCore::Document::getCachedLocalizer):
55260         * dom/DocumentMarkerController.cpp:
55261         (WebCore::DocumentMarkerController::markerContainingPoint):
55262         (WebCore::DocumentMarkerController::renderedRectsForMarkers):
55263         (WebCore::DocumentMarkerController::removeMarkers):
55264         (WebCore::DocumentMarkerController::repaintMarkers):
55265         (WebCore::DocumentMarkerController::invalidateRenderedRectsForMarkersInRect):
55266         (WebCore::DocumentMarkerController::showMarkers):
55267         * dom/DocumentOrderedMap.cpp:
55268         (WebCore::DocumentOrderedMap::remove):
55269         * dom/DocumentStyleSheetCollection.cpp:
55270         (WebCore::DocumentStyleSheetCollection::pageGroupUserSheets):
55271         * dom/ElementAttributeData.cpp:
55272         (WebCore::ensureAttrListForElement):
55273         * dom/EventDispatcher.cpp:
55274         (WebCore::EventRelatedTargetAdjuster::findRelatedTarget):
55275         * dom/IdTargetObserverRegistry.cpp:
55276         (WebCore::IdTargetObserverRegistry::addObserver):
55277         (WebCore::IdTargetObserverRegistry::removeObserver):
55278         * dom/MutationObserverInterestGroup.cpp:
55279         (WebCore::MutationObserverInterestGroup::isOldValueRequested):
55280         (WebCore::MutationObserverInterestGroup::enqueueMutationRecord):
55281         * dom/Node.cpp:
55282         (WebCore::Node::dumpStatistics):
55283         (WebCore::Node::clearRareData):
55284         (WebCore::NodeListsNodeData::invalidateCaches):
55285         (WebCore::collectMatchingObserversForMutation):
55286         * dom/NodeRareData.h:
55287         (WebCore::NodeListsNodeData::addCacheWithAtomicName):
55288         (WebCore::NodeListsNodeData::addCacheWithName):
55289         (WebCore::NodeListsNodeData::addCacheWithQualifiedName):
55290         (WebCore::NodeListsNodeData::adoptTreeScope):
55291         * dom/ProcessingInstruction.cpp:
55292         (WebCore::ProcessingInstruction::checkStyleSheet):
55293         * dom/ScriptExecutionContext.cpp:
55294         (WebCore::ScriptExecutionContext::canSuspendActiveDOMObjects):
55295         (WebCore::ScriptExecutionContext::suspendActiveDOMObjects):
55296         (WebCore::ScriptExecutionContext::resumeActiveDOMObjects):
55297         (WebCore::ScriptExecutionContext::stopActiveDOMObjects):
55298         (WebCore::ScriptExecutionContext::adjustMinimumTimerInterval):
55299         * dom/SelectorQuery.cpp:
55300         (WebCore::SelectorQueryCache::add):
55301         * dom/SpaceSplitString.cpp:
55302         (WebCore::SpaceSplitStringData::create):
55303         * dom/StyledElement.cpp:
55304         (WebCore::StyledElement::updateAttributeStyle):
55305         * editing/mac/AlternativeTextUIController.mm:
55306         (WebCore::AlternativeTextUIController::AlernativeTextContextController::alternativesForContext):
55307         * html/FormController.cpp:
55308         (WebCore::SavedFormState::serializeTo):
55309         (WebCore::SavedFormState::appendControlState):
55310         (WebCore::SavedFormState::takeControlState):
55311         (WebCore::SavedFormState::getReferencedFilePaths):
55312         (WebCore::FormKeyGenerator::formKey):
55313         (WebCore::FormController::createSavedFormStateMap):
55314         (WebCore::FormController::formElementsState):
55315         (WebCore::FormController::takeStateForFormElement):
55316         (WebCore::FormController::getReferencedFilePaths):
55317         * html/HTMLCollection.cpp:
55318         (WebCore::HTMLCollectionCacheBase::append):
55319         * html/canvas/WebGLFramebuffer.cpp:
55320         (WebCore::WebGLFramebuffer::getAttachment):
55321         (WebCore::WebGLFramebuffer::removeAttachmentFromBoundFramebuffer):
55322         (WebCore::WebGLFramebuffer::checkStatus):
55323         (WebCore::WebGLFramebuffer::deleteObjectImpl):
55324         (WebCore::WebGLFramebuffer::initializeAttachments):
55325         * inspector/CodeGeneratorInspector.py:
55326         * inspector/DOMPatchSupport.cpp:
55327         (WebCore::DOMPatchSupport::diff):
55328         (WebCore::DOMPatchSupport::innerPatchChildren):
55329         (WebCore::DOMPatchSupport::removeChildAndMoveToNew):
55330         * inspector/InjectedScriptManager.cpp:
55331         (WebCore::InjectedScriptManager::injectedScriptForId):
55332         (WebCore::InjectedScriptManager::injectedScriptIdFor):
55333         (WebCore::InjectedScriptManager::discardInjectedScriptsFor):
55334         (WebCore::InjectedScriptManager::releaseObjectGroup):
55335         (WebCore::InjectedScriptManager::injectedScriptFor):
55336         * inspector/InspectorCSSAgent.cpp:
55337         (WebCore::SelectorProfile::commitSelector):
55338         (WebCore::SelectorProfile::commitSelectorTime):
55339         (WebCore::SelectorProfile::toInspectorObject):
55340         (WebCore::UpdateRegionLayoutTask::onTimer):
55341         (WebCore::InspectorCSSAgent::forcePseudoState):
55342         (WebCore::InspectorCSSAgent::asInspectorStyleSheet):
55343         (WebCore::InspectorCSSAgent::assertStyleSheetForId):
55344         (WebCore::InspectorCSSAgent::didRemoveDOMNode):
55345         (WebCore::InspectorCSSAgent::didModifyDOMAttr):
55346         (WebCore::InspectorCSSAgent::resetPseudoStates):
55347         * inspector/InspectorConsoleAgent.cpp:
55348         (WebCore::InspectorConsoleAgent::stopTiming):
55349         (WebCore::InspectorConsoleAgent::count):
55350         * inspector/InspectorDOMAgent.cpp:
55351         (WebCore::InspectorDOMAgent::nodeForId):
55352         (WebCore::InspectorDOMAgent::performSearch):
55353         (WebCore::InspectorDOMAgent::getSearchResults):
55354         * inspector/InspectorDOMDebuggerAgent.cpp:
55355         (WebCore::InspectorDOMDebuggerAgent::willSendXMLHttpRequest):
55356         * inspector/InspectorDOMStorageAgent.cpp:
55357         (WebCore::InspectorDOMStorageAgent::clearFrontend):
55358         (WebCore::InspectorDOMStorageAgent::enable):
55359         (WebCore::InspectorDOMStorageAgent::storageId):
55360         (WebCore::InspectorDOMStorageAgent::getDOMStorageResourceForId):
55361         (WebCore::InspectorDOMStorageAgent::didUseDOMStorage):
55362         (WebCore::InspectorDOMStorageAgent::memoryBytesUsedByStorageCache):
55363         * inspector/InspectorDatabaseAgent.cpp:
55364         (WebCore::InspectorDatabaseAgent::enable):
55365         (WebCore::InspectorDatabaseAgent::databaseId):
55366         (WebCore::InspectorDatabaseAgent::findByFileName):
55367         (WebCore::InspectorDatabaseAgent::databaseForId):
55368         * inspector/InspectorDebuggerAgent.cpp:
55369         (WebCore::InspectorDebuggerAgent::setBreakpointByUrl):
55370         (WebCore::InspectorDebuggerAgent::removeBreakpoint):
55371         (WebCore::InspectorDebuggerAgent::resolveBreakpoint):
55372         (WebCore::InspectorDebuggerAgent::searchInContent):
55373         (WebCore::InspectorDebuggerAgent::getScriptSource):
55374         (WebCore::InspectorDebuggerAgent::didParseSource):
55375         * inspector/InspectorIndexedDBAgent.cpp:
55376         (WebCore):
55377         * inspector/InspectorMemoryAgent.cpp:
55378         (WebCore):
55379         * inspector/InspectorPageAgent.cpp:
55380         (WebCore::cachedResourcesForFrame):
55381         (WebCore::InspectorPageAgent::didClearWindowObjectInWorld):
55382         (WebCore::InspectorPageAgent::frameDetached):
55383         * inspector/InspectorProfilerAgent.cpp:
55384         (WebCore::InspectorProfilerAgent::getProfileHeaders):
55385         (WebCore):
55386         (WebCore::InspectorProfilerAgent::getProfile):
55387         * inspector/InspectorResourceAgent.cpp:
55388         (WebCore::buildObjectForHeaders):
55389         (WebCore::InspectorResourceAgent::willSendRequest):
55390         (WebCore::InspectorResourceAgent::documentThreadableLoaderStartedLoadingForClient):
55391         (WebCore::InspectorResourceAgent::willLoadXHR):
55392         (WebCore::InspectorResourceAgent::replayXHR):
55393         * inspector/InspectorState.cpp:
55394         (WebCore::InspectorState::getBoolean):
55395         (WebCore::InspectorState::getString):
55396         (WebCore::InspectorState::getLong):
55397         (WebCore::InspectorState::getDouble):
55398         (WebCore::InspectorState::getObject):
55399         * inspector/InspectorStyleSheet.cpp:
55400         (WebCore::InspectorStyle::styleWithProperties):
55401         (WebCore::InspectorStyleSheet::inspectorStyleForId):
55402         * inspector/InspectorValues.cpp:
55403         (WebCore::InspectorObjectBase::get):
55404         (WebCore::InspectorObjectBase::writeJSON):
55405         * inspector/InspectorWorkerAgent.cpp:
55406         (WebCore::InspectorWorkerAgent::workerContextTerminated):
55407         (WebCore::InspectorWorkerAgent::createWorkerFrontendChannelsForExistingWorkers):
55408         (WebCore::InspectorWorkerAgent::destroyWorkerFrontendChannels):
55409         * inspector/MemoryInstrumentationImpl.cpp:
55410         (WebCore::MemoryInstrumentationClientImpl::countObjectSize):
55411         * inspector/MemoryInstrumentationImpl.h:
55412         (WebCore::MemoryInstrumentationClientImpl::totalSize):
55413         (WebCore::MemoryInstrumentationClientImpl::reportedSizeForAllTypes):
55414         * inspector/NetworkResourcesData.cpp:
55415         (WebCore::NetworkResourcesData::setXHRReplayData):
55416         (WebCore::NetworkResourcesData::removeCachedResource):
55417         (WebCore::NetworkResourcesData::clear):
55418         * loader/CrossOriginAccessControl.cpp:
55419         (WebCore::isSimpleCrossOriginAccessRequest):
55420         (WebCore::createAccessControlPreflightRequest):
55421         * loader/CrossOriginPreflightResultCache.cpp:
55422         (WebCore::CrossOriginPreflightResultCacheItem::allowsCrossOriginHeaders):
55423         (WebCore::CrossOriginPreflightResultCache::canSkipPreflight):
55424         * loader/DocumentLoader.cpp:
55425         (WebCore::DocumentLoader::getSubresources):
55426         (WebCore::DocumentLoader::substituteResourceDeliveryTimerFired):
55427         * loader/MainResourceLoader.cpp:
55428         (WebCore::MainResourceLoader::didReceiveResponse):
55429         * loader/ResourceLoadScheduler.cpp:
55430         (WebCore::ResourceLoadScheduler::servePendingRequests):
55431         * loader/appcache/ApplicationCache.cpp:
55432         (WebCore::ApplicationCache::removeResource):
55433         (WebCore::ApplicationCache::clearStorageID):
55434         (WebCore::ApplicationCache::dump):
55435         * loader/appcache/ApplicationCacheGroup.cpp:
55436         (WebCore::ApplicationCacheGroup::didFinishLoadingManifest):
55437         (WebCore::ApplicationCacheGroup::startLoadingEntry):
55438         (WebCore::ApplicationCacheGroup::addEntry):
55439         * loader/appcache/ApplicationCacheHost.cpp:
55440         (WebCore::ApplicationCacheHost::fillResourceList):
55441         * loader/appcache/ApplicationCacheResource.cpp:
55442         (WebCore::ApplicationCacheResource::estimatedSizeInStorage):
55443         * loader/appcache/ApplicationCacheStorage.cpp:
55444         (WebCore::ApplicationCacheStorage::findOrCreateCacheGroup):
55445         (WebCore::ApplicationCacheStorage::cacheGroupForURL):
55446         (WebCore::ApplicationCacheStorage::fallbackCacheGroupForURL):
55447         (WebCore::ApplicationCacheStorage::store):
55448         (WebCore::ApplicationCacheStorage::empty):
55449         (WebCore::ApplicationCacheStorage::storeCopyOfCache):
55450         * loader/archive/ArchiveFactory.cpp:
55451         (WebCore::ArchiveFactory::registerKnownArchiveMIMETypes):
55452         * loader/cache/CachedRawResource.cpp:
55453         (WebCore::CachedRawResource::canReuse):
55454         * loader/cache/CachedResource.cpp:
55455         (WebCore::CachedResource::switchClientsToRevalidatedResource):
55456         (WebCore::CachedResource::updateResponseAfterRevalidation):
55457         * loader/cache/CachedResourceClientWalker.h:
55458         (WebCore::CachedResourceClientWalker::CachedResourceClientWalker):
55459         * loader/cache/CachedResourceLoader.cpp:
55460         (WebCore::CachedResourceLoader::~CachedResourceLoader):
55461         (WebCore::CachedResourceLoader::requestResource):
55462         (WebCore::CachedResourceLoader::reloadImagesIfNotDeferred):
55463         (WebCore::CachedResourceLoader::removeCachedResource):
55464         (WebCore::CachedResourceLoader::garbageCollectDocumentResources):
55465         * loader/cache/MemoryCache.cpp:
55466         (WebCore::MemoryCache::removeResourcesWithOrigin):
55467         (WebCore::MemoryCache::getOriginsWithCache):
55468         (WebCore::MemoryCache::getStatistics):
55469         (WebCore::MemoryCache::setDisabled):
55470         * loader/icon/IconDatabase.cpp:
55471         (WebCore::IconDatabase::removeAllIcons):
55472         (WebCore::IconDatabase::iconRecordCountWithData):
55473         (WebCore::IconDatabase::performPendingRetainAndReleaseOperations):
55474         * page/DOMWindow.cpp:
55475         (WebCore::DOMWindow::dispatchAllPendingBeforeUnloadEvents):
55476         (WebCore::DOMWindow::dispatchAllPendingUnloadEvents):
55477         * page/EventHandler.cpp:
55478         (WebCore::EventHandler::handleTouchEvent):
55479         * page/Frame.cpp:
55480         (WebCore::Frame::injectUserScripts):
55481         * page/PageGroup.cpp:
55482         (WebCore::PageGroup::pageGroup):
55483         (WebCore::PageGroup::closeLocalStorage):
55484         (WebCore::PageGroup::clearLocalStorageForAllOrigins):
55485         (WebCore::PageGroup::clearLocalStorageForOrigin):
55486         (WebCore::PageGroup::syncLocalStorage):
55487         (WebCore::PageGroup::addUserScriptToWorld):
55488         (WebCore::PageGroup::addUserStyleSheetToWorld):
55489         (WebCore::PageGroup::removeUserScriptFromWorld):
55490         (WebCore::PageGroup::removeUserStyleSheetFromWorld):
55491         * page/PageSerializer.cpp:
55492         (WebCore::PageSerializer::urlForBlankFrame):
55493         * page/SecurityPolicy.cpp:
55494         (WebCore::SecurityPolicy::addOriginAccessWhitelistEntry):
55495         (WebCore::SecurityPolicy::removeOriginAccessWhitelistEntry):
55496         * page/Settings.cpp:
55497         (WebCore::setGenericFontFamilyMap):
55498         (WebCore::getGenericFontFamilyForScript):
55499         * page/SpeechInput.cpp:
55500         (WebCore::SpeechInput::registerListener):
55501         * page/TouchDisambiguation.cpp:
55502         (WebCore::findGoodTouchTargets):
55503         * page/WindowFeatures.cpp:
55504         (WebCore::WindowFeatures::boolFeature):
55505         (WebCore::WindowFeatures::floatFeature):
55506         * page/animation/AnimationController.cpp:
55507         (WebCore::AnimationControllerPrivate::updateAnimations):
55508         (WebCore::AnimationControllerPrivate::suspendAnimationsForDocument):
55509         (WebCore::AnimationControllerPrivate::resumeAnimationsForDocument):
55510         (WebCore::AnimationControllerPrivate::numberOfActiveAnimations):
55511         * page/animation/CompositeAnimation.cpp:
55512         (WebCore::CompositeAnimation::clearRenderer):
55513         (WebCore::CompositeAnimation::updateTransitions):
55514         (WebCore::CompositeAnimation::updateKeyframeAnimations):
55515         (WebCore::CompositeAnimation::animate):
55516         (WebCore::CompositeAnimation::getAnimatedStyle):
55517         (WebCore::CompositeAnimation::setAnimating):
55518         (WebCore::CompositeAnimation::timeToNextService):
55519         (WebCore::CompositeAnimation::getAnimationForProperty):
55520         (WebCore::CompositeAnimation::suspendAnimations):
55521         (WebCore::CompositeAnimation::resumeAnimations):
55522         (WebCore::CompositeAnimation::overrideImplicitAnimations):
55523         (WebCore::CompositeAnimation::resumeOverriddenImplicitAnimations):
55524         (WebCore::CompositeAnimation::isAnimatingProperty):
55525         (WebCore::CompositeAnimation::numberOfActiveAnimations):
55526         * platform/Language.cpp:
55527         (WebCore::languageDidChange):
55528         * platform/MIMETypeRegistry.cpp:
55529         (WebCore::MIMETypeRegistry::getNormalizedMIMEType):
55530         * platform/audio/HRTFElevation.cpp:
55531         (WebCore::getConcatenatedImpulseResponsesForSubject):
55532         * platform/blackberry/CookieManager.cpp:
55533         (WebCore::CookieManager::generateHtmlFragmentForCookies):
55534         (WebCore::CookieManager::removeAllCookies):
55535         * platform/blackberry/CookieMap.cpp:
55536         (WebCore::CookieMap::removeOldestCookie):
55537         (WebCore::CookieMap::getAllChildCookies):
55538         * platform/cf/BinaryPropertyList.cpp:
55539         (WebCore::BinaryPropertyListPlan::writeIntegerArray):
55540         * platform/chromium/support/WebHTTPLoadInfo.cpp:
55541         (WebKit::addHeader):
55542         * platform/chromium/support/WebURLRequest.cpp:
55543         (WebKit::WebURLRequest::visitHTTPHeaderFields):
55544         * platform/chromium/support/WebURLResponse.cpp:
55545         (WebKit::WebURLResponse::addHTTPHeaderField):
55546         (WebKit::WebURLResponse::visitHTTPHeaderFields):
55547         * platform/graphics/DisplayRefreshMonitor.cpp:
55548         (WebCore::DisplayRefreshMonitorManager::ensureMonitorForClient):
55549         (WebCore::DisplayRefreshMonitorManager::unregisterClient):
55550         * platform/graphics/FontCache.cpp:
55551         (WebCore::FontCache::getCachedFontPlatformData):
55552         (WebCore::FontCache::getVerticalData):
55553         (WebCore::FontCache::getCachedFontData):
55554         (WebCore::FontCache::releaseFontData):
55555         (WebCore::FontCache::purgeInactiveFontData):
55556         * platform/graphics/GlyphPageTreeNode.cpp:
55557         (WebCore::GlyphPageTreeNode::treeGlyphPageCount):
55558         (WebCore::GlyphPageTreeNode::pageCount):
55559         (WebCore::GlyphPageTreeNode::pruneTreeCustomFontData):
55560         (WebCore::GlyphPageTreeNode::pruneTreeFontData):
55561         (WebCore::GlyphPageTreeNode::pruneCustomFontData):
55562         (WebCore::GlyphPageTreeNode::pruneFontData):
55563         (WebCore::GlyphPageTreeNode::showSubtree):
55564         (showGlyphPageTrees):
55565         * platform/graphics/TiledBackingStore.cpp:
55566         (WebCore::TiledBackingStore::updateTileBuffers):
55567         (WebCore::TiledBackingStore::resizeEdgeTiles):
55568         (WebCore::TiledBackingStore::setKeepRect):
55569         * platform/graphics/avfoundation/cf/MediaPlayerPrivateAVFoundationCF.cpp:
55570         (WebCore::AVFWrapper::avfWrapperForCallbackContext):
55571         * platform/graphics/blackberry/LayerTiler.cpp:
55572         (WebCore::LayerTiler::layerVisibilityChanged):
55573         (WebCore::LayerTiler::uploadTexturesIfNeeded):
55574         (WebCore::LayerTiler::addTileJob):
55575         (WebCore::LayerTiler::deleteTextures):
55576         (WebCore::LayerTiler::pruneTextures):
55577         (WebCore::LayerTiler::bindContentsTexture):
55578         * platform/graphics/blackberry/TextureCacheCompositingThread.cpp:
55579         (WebCore::TextureCacheCompositingThread::textureForTiledContents):
55580         (WebCore::TextureCacheCompositingThread::textureForColor):
55581         * platform/graphics/ca/GraphicsLayerCA.cpp:
55582         (WebCore::GraphicsLayerCA::moveOrCopyAnimations):
55583         (WebCore::GraphicsLayerCA::pauseAnimation):
55584         (WebCore::GraphicsLayerCA::layerDidDisplay):
55585         (WebCore::GraphicsLayerCA::updateGeometry):
55586         (WebCore::GraphicsLayerCA::updateTransform):
55587         (WebCore::GraphicsLayerCA::updateChildrenTransform):
55588         (WebCore::GraphicsLayerCA::updateMasksToBounds):
55589         (WebCore::GraphicsLayerCA::updateContentsVisibility):
55590         (WebCore::GraphicsLayerCA::updateContentsOpaque):
55591         (WebCore::GraphicsLayerCA::updateBackfaceVisibility):
55592         (WebCore::GraphicsLayerCA::updateFilters):
55593         (WebCore::GraphicsLayerCA::ensureStructuralLayer):
55594         (WebCore::GraphicsLayerCA::updateLayerDrawsContent):
55595         (WebCore::GraphicsLayerCA::updateContentsImage):
55596         (WebCore::GraphicsLayerCA::updateContentsRect):
55597         (WebCore::GraphicsLayerCA::updateMaskLayer):
55598         (WebCore::GraphicsLayerCA::updateLayerAnimations):
55599         (WebCore::GraphicsLayerCA::setAnimationOnLayer):
55600         (WebCore::GraphicsLayerCA::removeCAAnimationFromLayer):
55601         (WebCore::GraphicsLayerCA::pauseCAAnimationOnLayer):
55602         (WebCore::GraphicsLayerCA::suspendAnimations):
55603         (WebCore::GraphicsLayerCA::resumeAnimations):
55604         (WebCore::GraphicsLayerCA::findOrMakeClone):
55605         (WebCore::GraphicsLayerCA::setOpacityInternal):
55606         (WebCore::GraphicsLayerCA::updateOpacityOnLayer):
55607         * platform/graphics/ca/mac/TileCache.mm:
55608         (WebCore::TileCache::~TileCache):
55609         (WebCore::TileCache::setNeedsDisplay):
55610         (WebCore::TileCache::setScale):
55611         (WebCore::TileCache::setAcceleratesDrawing):
55612         (WebCore::TileCache::setTileDebugBorderWidth):
55613         (WebCore::TileCache::setTileDebugBorderColor):
55614         (WebCore::TileCache::revalidateTiles):
55615         * platform/graphics/ca/win/PlatformCALayerWin.cpp:
55616         (PlatformCALayer::animationStarted):
55617         (resubmitAllAnimations):
55618         (PlatformCALayer::animationForKey):
55619         * platform/graphics/chromium/FontCacheChromiumWin.cpp:
55620         (WebCore::LookupAltName):
55621         (WebCore::fontContainsCharacter):
55622         * platform/graphics/chromium/FontUtilsChromiumWin.cpp:
55623         (WebCore::getDerivedFontData):
55624         * platform/graphics/filters/CustomFilterGlobalContext.cpp:
55625         (WebCore::CustomFilterGlobalContext::~CustomFilterGlobalContext):
55626         (WebCore::CustomFilterGlobalContext::getValidatedProgram):
55627         (WebCore::CustomFilterGlobalContext::removeValidatedProgram):
55628         * platform/graphics/filters/CustomFilterProgram.cpp:
55629         (WebCore::CustomFilterProgram::notifyClients):
55630         * platform/graphics/harfbuzz/HarfBuzzSkia.cpp:
55631         (WebCore::getCachedHarfbuzzFace):
55632         (WebCore::releaseCachedHarfbuzzFace):
55633         * platform/graphics/harfbuzz/ng/HarfBuzzNGFace.cpp:
55634         (WebCore::HarfBuzzNGFace::HarfBuzzNGFace):
55635         (WebCore::HarfBuzzNGFace::~HarfBuzzNGFace):
55636         * platform/graphics/mac/SimpleFontDataCoreText.cpp:
55637         (WebCore::SimpleFontData::getCFStringAttributes):
55638         * platform/graphics/mac/SimpleFontDataMac.mm:
55639         (WebCore::SimpleFontData::canRenderCombiningCharacterSequence):
55640         * platform/graphics/opengl/Extensions3DOpenGLCommon.cpp:
55641         (WebCore::Extensions3DOpenGLCommon::getTranslatedShaderSourceANGLE):
55642         * platform/graphics/opengl/GraphicsContext3DOpenGLCommon.cpp:
55643         (WebCore::GraphicsContext3D::compileShader):
55644         (WebCore::GraphicsContext3D::mappedSymbolName):
55645         (WebCore::GraphicsContext3D::getShaderiv):
55646         (WebCore::GraphicsContext3D::getShaderInfoLog):
55647         (WebCore::GraphicsContext3D::getShaderSource):
55648         * platform/graphics/openvg/EGLDisplayOpenVG.cpp:
55649         (WebCore::EGLDisplayOpenVG::~EGLDisplayOpenVG):
55650         (WebCore::EGLDisplayOpenVG::destroySurface):
55651         (WebCore::EGLDisplayOpenVG::contextForSurface):
55652         * platform/graphics/texmap/TextureMapperGL.cpp:
55653         (WebCore::TextureMapperGLData::SharedGLData::currentSharedGLData):
55654         (WebCore::TextureMapperGLData::SharedGLData::~SharedGLData):
55655         * platform/graphics/texmap/TextureMapperShaderManager.cpp:
55656         (WebCore::TextureMapperShaderManager::getShaderProgram):
55657         (WebCore::TextureMapperShaderManager::getShaderForFilter):
55658         * platform/graphics/wince/FontPlatformData.cpp:
55659         (WebCore::FixedSizeFontData::create):
55660         * platform/gtk/DataObjectGtk.cpp:
55661         (WebCore::DataObjectGtk::forClipboard):
55662         * platform/gtk/GtkDragAndDropHelper.cpp:
55663         (WebCore::GtkDragAndDropHelper::handleGetDragData):
55664         (WebCore::GtkDragAndDropHelper::handleDragLeave):
55665         (WebCore::GtkDragAndDropHelper::handleDragMotion):
55666         (WebCore::GtkDragAndDropHelper::handleDragDataReceived):
55667         (WebCore::GtkDragAndDropHelper::handleDragDrop):
55668         * platform/gtk/RedirectedXCompositeWindow.cpp:
55669         (WebCore::filterXDamageEvent):
55670         * platform/gtk/RenderThemeGtk3.cpp:
55671         (WebCore::gtkStyleChangedCallback):
55672         (WebCore::getStyleContext):
55673         * platform/mac/ScrollbarThemeMac.mm:
55674         (+[WebScrollbarPrefsObserver appearancePrefsChanged:]):
55675         * platform/network/CredentialStorage.cpp:
55676         (WebCore::CredentialStorage::set):
55677         (WebCore::CredentialStorage::get):
55678         * platform/network/HTTPHeaderMap.cpp:
55679         (WebCore::HTTPHeaderMap::copyData):
55680         (WebCore::HTTPHeaderMap::get):
55681         * platform/network/MIMEHeader.cpp:
55682         (WebCore::MIMEHeader::parseHeader):
55683         * platform/network/ResourceHandle.cpp:
55684         (WebCore::ResourceHandle::create):
55685         * platform/network/ResourceRequestBase.cpp:
55686         (WebCore::ResourceRequestBase::addHTTPHeaderField):
55687         (WebCore::ResourceRequestBase::addHTTPHeaderFields):
55688         * platform/network/blackberry/ResourceRequestBlackBerry.cpp:
55689         (WebCore::ResourceRequest::targetTypeFromMimeType):
55690         (WebCore::ResourceRequest::initializePlatformRequest):
55691         * platform/network/cf/ResourceHandleCFNet.cpp:
55692         (WebCore::makeFinalRequest):
55693         * platform/network/cf/ResourceRequestCFNet.cpp:
55694         (WebCore::setHeaderFields):
55695         * platform/network/curl/ResourceHandleManager.cpp:
55696         (WebCore::ResourceHandleManager::initializeHandle):
55697         * platform/network/mac/ResourceRequestMac.mm:
55698         (WebCore::ResourceRequest::doUpdatePlatformRequest):
55699         * platform/network/qt/ResourceRequestQt.cpp:
55700         (WebCore::ResourceRequest::toNetworkRequest):
55701         * platform/network/soup/ResourceHandleSoup.cpp:
55702         (WebCore::sendRequestCallback):
55703         (WebCore::ResourceHandle::setClientCertificate):
55704         * platform/network/soup/ResourceRequestSoup.cpp:
55705         (WebCore::ResourceRequest::updateSoupMessage):
55706         (WebCore::ResourceRequest::toSoupMessage):
55707         * platform/network/soup/ResourceResponseSoup.cpp:
55708         (WebCore::ResourceResponse::toSoupMessage):
55709         * platform/network/win/ResourceHandleWin.cpp:
55710         (WebCore::ResourceHandle::start):
55711         * platform/qt/RunLoopQt.cpp:
55712         (WebCore::RunLoop::TimerBase::timerFired):
55713         * platform/text/LocaleToScriptMappingDefault.cpp:
55714         (WebCore::scriptNameToCode):
55715         (WebCore::localeToScriptCodeForFontSelection):
55716         * platform/text/TextEncodingRegistry.cpp:
55717         (WebCore::pruneBlacklistedCodecs):
55718         (WebCore::dumpTextEncodingNameMap):
55719         * platform/text/transcoder/FontTranscoder.cpp:
55720         (WebCore::FontTranscoder::converterType):
55721         * platform/text/win/TextCodecWin.cpp:
55722         (WebCore::LanguageManager::LanguageManager):
55723         (WebCore::getCodePage):
55724         (WebCore::TextCodecWin::registerExtendedEncodingNames):
55725         (WebCore::TextCodecWin::registerExtendedCodecs):
55726         (WebCore::TextCodecWin::enumerateSupportedEncodings):
55727         * platform/win/ClipboardUtilitiesWin.cpp:
55728         (WebCore::getDataMapItem):
55729         (WebCore::getClipboardData):
55730         (WebCore::setClipboardData):
55731         * platform/win/ClipboardWin.cpp:
55732         (WebCore::ClipboardWin::types):
55733         * platform/win/FileSystemWin.cpp:
55734         (WebCore::cachedStorageDirectory):
55735         * platform/win/RunLoopWin.cpp:
55736         (WebCore::RunLoop::TimerBase::timerFired):
55737         * platform/win/WCDataObject.cpp:
55738         (WebCore::WCDataObject::createInstance):
55739         * platform/wince/MIMETypeRegistryWinCE.cpp:
55740         (WebCore::MIMETypeRegistry::getPreferredExtensionForMIMEType):
55741         * platform/wx/ContextMenuWx.cpp:
55742         (WebCore::ContextMenu::appendItem):
55743         * plugins/PluginDatabase.cpp:
55744         (WebCore::PluginDatabase::refresh):
55745         (WebCore::PluginDatabase::MIMETypeForExtension):
55746         (WebCore::PluginDatabase::remove):
55747         * plugins/PluginMainThreadScheduler.cpp:
55748         (WebCore::PluginMainThreadScheduler::scheduleCall):
55749         (WebCore::PluginMainThreadScheduler::dispatchCalls):
55750         * plugins/PluginStream.cpp:
55751         (WebCore::PluginStream::startStream):
55752         * plugins/blackberry/PluginDataBlackBerry.cpp:
55753         (WebCore::PluginData::initPlugins):
55754         * plugins/wx/PluginDataWx.cpp:
55755         (WebCore::PluginData::initPlugins):
55756         * rendering/ExclusionShapeInsideInfo.cpp:
55757         (WebCore::ExclusionShapeInsideInfo::ensureExclusionShapeInsideInfoForRenderBlock):
55758         * rendering/FlowThreadController.cpp:
55759         (WebCore::FlowThreadController::unregisterNamedFlowContentNode):
55760         * rendering/InlineFlowBox.cpp:
55761         (WebCore::InlineFlowBox::requiresIdeographicBaseline):
55762         (WebCore::InlineFlowBox::addTextBoxVisualOverflow):
55763         * rendering/RenderBlock.cpp:
55764         (WebCore::RenderBlock::clearFloats):
55765         * rendering/RenderBlockLineLayout.cpp:
55766         (WebCore::setLogicalWidthForTextRun):
55767         * rendering/RenderBoxModelObject.cpp:
55768         (WebCore::ImageQualityController::highQualityRepaintTimerFired):
55769         (WebCore::ImageQualityController::shouldPaintAtLowQuality):
55770         * rendering/RenderCounter.cpp:
55771         (WebCore::RenderCounter::destroyCounterNodes):
55772         (WebCore::RenderCounter::destroyCounterNode):
55773         (WebCore::updateCounters):
55774         (WebCore::RenderCounter::rendererStyleChanged):
55775         * rendering/RenderFlowThread.cpp:
55776         (WebCore::RenderFlowThread::setRegionRangeForBox):
55777         (WebCore::RenderFlowThread::getRegionRangeForBox):
55778         * rendering/RenderLayer.cpp:
55779         (WebCore::RenderLayer::paint):
55780         (WebCore::performOverlapTests):
55781         * rendering/RenderLayerFilterInfo.cpp:
55782         (WebCore::RenderLayerFilterInfo::filterInfoForRenderLayer):
55783         (WebCore::RenderLayerFilterInfo::createFilterInfoForRenderLayerIfNeeded):
55784         * rendering/RenderNamedFlowThread.cpp:
55785         (WebCore::RenderNamedFlowThread::dependsOn):
55786         (WebCore::RenderNamedFlowThread::pushDependencies):
55787         * rendering/RenderRegion.cpp:
55788         (WebCore::RenderRegion::setRenderBoxRegionInfo):
55789         (WebCore::RenderRegion::setRegionObjectsRegionStyle):
55790         (WebCore::RenderRegion::restoreRegionObjectsOriginalStyle):
55791         (WebCore::RenderRegion::computeChildrenStyleInRegion):
55792         * rendering/RenderTableSection.cpp:
55793         (WebCore::RenderTableSection::cachedCollapsedBorder):
55794         * rendering/RenderThemeMac.mm:
55795         (WebCore::RenderThemeMac::systemColor):
55796         * rendering/RenderView.cpp:
55797         (WebCore::RenderView::selectionBounds):
55798         (WebCore::RenderView::setSelection):
55799         * rendering/RenderWidget.cpp:
55800         (WebCore::WidgetHierarchyUpdatesSuspensionScope::moveWidgets):
55801         * rendering/RootInlineBox.cpp:
55802         (WebCore::RootInlineBox::ascentAndDescentForBox):
55803         * rendering/VerticalPositionCache.h:
55804         (WebCore::VerticalPositionCache::get):
55805         * rendering/svg/RenderSVGInlineText.cpp:
55806         (WebCore::RenderSVGInlineText::characterStartsNewTextChunk):
55807         * rendering/svg/RenderSVGResourceFilter.cpp:
55808         (WebCore::RenderSVGResourceFilter::primitiveAttributeChanged):
55809         * rendering/svg/RenderSVGResourceGradient.cpp:
55810         (WebCore::RenderSVGResourceGradient::applyResource):
55811         * rendering/svg/RenderSVGResourcePattern.cpp:
55812         (WebCore::RenderSVGResourcePattern::applyResource):
55813         * rendering/svg/SVGResourcesCache.cpp:
55814         (WebCore::SVGResourcesCache::resourceDestroyed):
55815         * rendering/svg/SVGRootInlineBox.cpp:
55816         (WebCore::swapItemsInLayoutAttributes):
55817         * rendering/svg/SVGTextLayoutAttributes.cpp:
55818         (WebCore::SVGTextLayoutAttributes::dump):
55819         * rendering/svg/SVGTextLayoutAttributesBuilder.cpp:
55820         (WebCore::SVGTextLayoutAttributesBuilder::buildCharacterDataMap):
55821         (WebCore::SVGTextLayoutAttributesBuilder::fillCharacterDataMap):
55822         * rendering/svg/SVGTextLayoutEngine.cpp:
55823         (WebCore::SVGTextLayoutEngine::layoutTextOnLineOrPath):
55824         * rendering/svg/SVGTextMetricsBuilder.cpp:
55825         (WebCore::SVGTextMetricsBuilder::measureTextRenderer):
55826         * storage/StorageAreaSync.cpp:
55827         (WebCore::StorageAreaSync::syncTimerFired):
55828         (WebCore::StorageAreaSync::performImport):
55829         (WebCore::StorageAreaSync::sync):
55830         * storage/StorageMap.cpp:
55831         (WebCore::StorageMap::key):
55832         (WebCore::StorageMap::setItem):
55833         * storage/StorageNamespaceImpl.cpp:
55834         (WebCore::StorageNamespaceImpl::localStorageNamespace):
55835         (WebCore::StorageNamespaceImpl::copy):
55836         (WebCore::StorageNamespaceImpl::close):
55837         (WebCore::StorageNamespaceImpl::clearAllOriginsForDeletion):
55838         (WebCore::StorageNamespaceImpl::sync):
55839         * svg/SVGDocumentExtensions.cpp:
55840         (WebCore::SVGDocumentExtensions::removeAnimationElementFromTarget):
55841         (WebCore::SVGDocumentExtensions::removeAllAnimationElementsFromTarget):
55842         (WebCore::SVGDocumentExtensions::addPendingResource):
55843         (WebCore::SVGDocumentExtensions::isElementPendingResources):
55844         (WebCore::SVGDocumentExtensions::removeElementFromPendingResources):
55845         (WebCore::SVGDocumentExtensions::setOfElementsReferencingTarget):
55846         (WebCore::SVGDocumentExtensions::removeAllTargetReferencesForElement):
55847         (WebCore::SVGDocumentExtensions::removeAllElementReferencesForTarget):
55848         * svg/SVGElement.cpp:
55849         (WebCore::SVGElement::~SVGElement):
55850         * svg/animation/SMILTimeContainer.cpp:
55851         (WebCore::SMILTimeContainer::setElapsed):
55852         (WebCore::SMILTimeContainer::updateAnimations):
55853         * svg/graphics/SVGImageCache.cpp:
55854         (WebCore::SVGImageCache::~SVGImageCache):
55855         (WebCore::SVGImageCache::removeClientFromCache):
55856         (WebCore::SVGImageCache::requestedSizeAndScales):
55857         (WebCore::SVGImageCache::imageContentChanged):
55858         (WebCore::SVGImageCache::redraw):
55859         (WebCore::SVGImageCache::lookupOrCreateBitmapImageForRenderer):
55860         * svg/graphics/filters/SVGFilterBuilder.h:
55861         (WebCore::SVGFilterBuilder::effectReferences):
55862         (WebCore::SVGFilterBuilder::addBuiltinEffects):
55863         * svg/properties/SVGAnimatedProperty.h:
55864         (WebCore::SVGAnimatedProperty::~SVGAnimatedProperty):
55865         * svg/properties/SVGAttributeToPropertyMap.cpp:
55866         (WebCore::SVGAttributeToPropertyMap::addProperties):
55867         (WebCore::SVGAttributeToPropertyMap::synchronizeProperties):
55868         * workers/WorkerContext.cpp:
55869         (WebCore::WorkerContext::hasPendingActivity):
55870         * workers/WorkerEventQueue.cpp:
55871         (WebCore::WorkerEventQueue::close):
55872         * xml/XMLHttpRequest.cpp:
55873         (WebCore::XMLHttpRequest::setRequestHeaderInternal):
55874         (WebCore::XMLHttpRequest::getAllResponseHeaders):
55875         * xml/XPathFunctions.cpp:
55876         (WebCore::XPath::createFunction):
55877         * xml/XPathParser.cpp:
55878         (isAxisName):
55879         * xml/XSLTProcessorLibxslt.cpp:
55880         (WebCore::xsltParamArrayFromParameterMap):
55881         * xml/XSLTProcessorQt.cpp:
55882         (WebCore::XSLTProcessor::transformToString):
55883
55884 2012-10-07  Geoffrey Garen  <ggaren@apple.com>
55885
55886         REGRESSION (r130584): Crashes in JSC::MarkedAllocator::allocateSlowCase, failing fast/dom/gc-dom-tree-lifetime.html
55887         https://bugs.webkit.org/show_bug.cgi?id=98612
55888
55889         Reviewed by Darin Adler.
55890
55891         Since DOM modification can happen outside of JS, calls into JS due to
55892         DOM modification need to take the JS lock.
55893
55894         * bindings/js/JSNodeCustom.cpp:
55895         (WebCore::willCreatePossiblyOrphanedTreeByRemovalSlowCase): Take the JS
55896         lock before doing a JS allocation, since this may be a JS entrypoint.
55897
55898         * bindings/js/JSNodeCustom.h:
55899         (WebCore::willCreatePossiblyOrphanedTreeByRemoval): Split out a slow case
55900         to help the inliner.
55901
55902 2012-10-07  Nick Carter  <nick@chromium.org>
55903
55904         [chromium] Crash in WebCore::GraphicsLayerChromium::setContentsToImage
55905         https://bugs.webkit.org/show_bug.cgi?id=98456
55906
55907         Reviewed by James Robinson.
55908
55909         Handle null return of nativeImageForCurrentFrame.
55910
55911         Test: compositing/images/truncated-direct-png-image.html
55912
55913         * platform/graphics/chromium/GraphicsLayerChromium.cpp:
55914         (WebCore::GraphicsLayerChromium::setContentsToImage):
55915
55916 2012-10-07  Benjamin Poulain  <benjamin@webkit.org>
55917
55918         WTFURL: implement URL port removal for HTMLAnchorElement
55919         https://bugs.webkit.org/show_bug.cgi?id=98604
55920
55921         Reviewed by Adam Barth.
55922
55923         * platform/KURLWTFURL.cpp:
55924         (WebCore::KURL::hasPort):
55925         (WebCore::KURL::removePort):
55926         (WebCore::KURL::isHierarchical):
55927         Implement those methods to pass the port removal test of HTMLAnchorElement.
55928
55929 2012-10-05  Dirk Schulze  <krit@webkit.org>
55930
55931         SVG radialGradient should support 'fr' for focal radius (just like Canvas)
55932         https://bugs.webkit.org/show_bug.cgi?id=97986
55933
55934         Reviewed by Daniel Bates.
55935
55936         Update SVGRadialGradient to the changed behavior in SVG2: http://www.w3.org/TR/SVG2/pservers.html#RadialGradients
55937         SVG2 adds the focal radius for radial gradients. Color stops will start from the edge of
55938         the focal radius.
55939         The new specification does not limit the focal point to be inside the radial gradients radius.
55940         This makes SVGRadialGradient consistent with the radial gradient on Canvas.
55941
55942         Test: svg/custom/radialGradient-focal-radius.svg
55943
55944         * rendering/svg/RenderSVGResourceRadialGradient.cpp:
55945             Remove checks for position of focal point. The focal point
55946             can be placed every where outside the radius of the gradient now.
55947         (WebCore::RenderSVGResourceRadialGradient::focalRadius):
55948             Add new method to get the focal radius from SVGRadialGradientElement.
55949         (WebCore::RenderSVGResourceRadialGradient::buildGradient):
55950         * rendering/svg/RenderSVGResourceRadialGradient.h:
55951         (RenderSVGResourceRadialGradient):
55952         * rendering/svg/SVGRenderTreeAsText.cpp:
55953         (WebCore::writeSVGResourceContainer):
55954             Modify DRT output to include the focal radius.
55955         * svg/RadialGradientAttributes.h:
55956         (WebCore::RadialGradientAttributes::RadialGradientAttributes):
55957         (WebCore::RadialGradientAttributes::fr):
55958         (WebCore::RadialGradientAttributes::setFr):
55959         (WebCore::RadialGradientAttributes::hasFr):
55960         (RadialGradientAttributes):
55961             New setters and getters for focal radius.
55962         * svg/SVGRadialGradientElement.cpp:
55963         (WebCore):
55964         (WebCore::SVGRadialGradientElement::SVGRadialGradientElement):
55965         (WebCore::SVGRadialGradientElement::isSupportedAttribute):
55966         (WebCore::SVGRadialGradientElement::parseAttribute):
55967         (WebCore::SVGRadialGradientElement::collectGradientAttributes):
55968         (WebCore::SVGRadialGradientElement::selfHasRelativeLengths):
55969             Ditto.
55970         * svg/SVGRadialGradientElement.h:
55971         (SVGRadialGradientElement):
55972         * svg/SVGRadialGradientElement.idl:
55973         * svg/svgattrs.in:
55974             Add 'fr' as new attribute to the SVG attribute list.
55975
55976 2012-10-07  Glenn Adams  <glenn@skynav.com>
55977
55978         Use start instead of -webkit-auto in default and quirks mode stylesheets.
55979         https://bugs.webkit.org/show_bug.cgi?id=98609
55980
55981         Reviewed by Antti Koivisto.
55982
55983         Change text-align use of legacy '-webkit-auto' to 'start' in the few places where it is used
55984         in default/quirks stylesheets.
55985         
55986         No new tests. No change of rendering/styling behavior. No performance impact.
55987
55988         * css/html.css:
55989         (input, textarea, keygen, select, button, isindex):
55990         (ruby > rt):
55991         * css/quirks.css:
55992         (table):
55993
55994 2012-10-06  Raul Hudea  <rhudea@adobe.com>
55995
55996         -webkit-clip-path should parse IRIs
55997         https://bugs.webkit.org/show_bug.cgi?id=96381
55998
55999         Reviewed by Andreas Kling.
56000
56001         Implemented the clipping via referencing a SVG clipPath. Currently it works only if the clipPath is defined
56002         before using it on an HTML element. The forward reference issue is tracked via https://bugs.webkit.org/show_bug.cgi?id=90405.
56003
56004         Tests: css3/masking/clip-path-reference-userSpaceOnUse.html
56005                css3/masking/clip-path-reference.html
56006                fast/masking/parsing-clip-path-iri.html
56007
56008         * css/CSSComputedStyleDeclaration.cpp:
56009         (WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue): Add handling for SVG clipPath references.
56010         * css/CSSParser.cpp:
56011         (WebCore::CSSParser::parseValue): Add handling for SVG clipPath references.
56012         * css/StyleBuilder.cpp:
56013         (WebCore::ApplyPropertyClipPath::applyValue): Add handling for SVG references.
56014         * rendering/ClipPathOperation.h:
56015         (ReferenceClipPathOperation): Added a new class corresponding to SVG referenced clipPath.
56016         (WebCore::ReferenceClipPathOperation::create):
56017         (WebCore::ReferenceClipPathOperation::url):
56018         (WebCore::ReferenceClipPathOperation::fragment):
56019         (WebCore::ReferenceClipPathOperation::operator==):
56020         (WebCore::ReferenceClipPathOperation::ReferenceClipPathOperation):
56021         (WebCore):
56022         * rendering/RenderLayer.cpp:
56023         (WebCore::RenderLayer::paintLayerContents): Add handling for ReferenceClipPathOperation.
56024         * rendering/svg/RenderSVGResourceClipper.h:
56025         (RenderSVGResourceClipper): Made applyClippingToContext public as it needs to be called directly for HTML elements.
56026
56027 2012-10-06  Pratik Solanki  <psolanki@apple.com>
56028
56029         Reduce calls to CGImageSourceCopyPropertiesAtIndex from frameSizeAtIndex
56030         https://bugs.webkit.org/show_bug.cgi?id=98607
56031
56032         Reviewed by Dan Bernstein.
56033
56034         Refactor code so that we avoid a second call to CGImageSourceCopyPropertiesAtIndex under
56035         ImageSource::frameSizeAtIndex().
56036
56037         No new tests because no functional change.
56038
56039         * platform/graphics/cg/ImageSourceCG.cpp:
56040         (WebCore::orientationFromProperties):
56041         (WebCore):
56042         (WebCore::ImageSource::frameSizeAtIndex):
56043         (WebCore::ImageSource::orientationAtIndex):
56044
56045 2012-10-06  Mark Rowe  <mrowe@apple.com>
56046
56047         Build fix.
56048
56049         Stop calling -[NSSliderCell setTitle:]. It's never done anything on OS X.
56050
56051         * rendering/RenderThemeMac.mm:
56052         (WebCore::RenderThemeMac::sliderThumbHorizontal):
56053         (WebCore::RenderThemeMac::sliderThumbVertical):
56054
56055 2012-10-06  Andreas Kling  <kling@webkit.org>
56056
56057         Clipboard::types() should return an ordered collection.
56058         <http://webkit.org/b/98547>
56059
56060         Reviewed by Darin Adler.
56061
56062         Let Clipboard::types() return a ListHashSet<String> instead of a HashSet<String> to make sure
56063         it retains the order in which type strings are added.
56064
56065         No test, this fixes an issue that was uncovered when lowering the default table size of WTF
56066         hash tables, causing the HashSet<String> to rehash and reorder itself.
56067
56068         * bindings/js/JSClipboardCustom.cpp:
56069         (WebCore::JSClipboard::types):
56070         * bindings/v8/custom/V8ClipboardCustom.cpp:
56071         (WebCore::V8Clipboard::typesAccessorGetter):
56072         * dom/Clipboard.h:
56073         (Clipboard):
56074         * platform/blackberry/ClipboardBlackBerry.cpp:
56075         (WebCore::ClipboardBlackBerry::types):
56076         * platform/blackberry/ClipboardBlackBerry.h:
56077         (ClipboardBlackBerry):
56078         * platform/chromium/ChromiumDataObject.cpp:
56079         (WebCore::ChromiumDataObject::types):
56080         * platform/chromium/ChromiumDataObject.h:
56081         (ChromiumDataObject):
56082         * platform/chromium/ClipboardChromium.cpp:
56083         (WebCore::ClipboardChromium::types):
56084         * platform/chromium/ClipboardChromium.h:
56085         (ClipboardChromium):
56086         * platform/efl/ClipboardEfl.cpp:
56087         (WebCore::ClipboardEfl::types):
56088         * platform/efl/ClipboardEfl.h:
56089         (ClipboardEfl):
56090         * platform/gtk/ClipboardGtk.cpp:
56091         (WebCore::ClipboardGtk::types):
56092         * platform/gtk/ClipboardGtk.h:
56093         (ClipboardGtk):
56094         * platform/mac/ClipboardMac.h:
56095         (ClipboardMac):
56096         * platform/mac/ClipboardMac.mm:
56097         (WebCore::addHTMLClipboardTypesForCocoaType):
56098         (WebCore::ClipboardMac::types):
56099         * platform/qt/ClipboardQt.cpp:
56100         (WebCore::ClipboardQt::types):
56101         * platform/qt/ClipboardQt.h:
56102         (ClipboardQt):
56103         * platform/win/ClipboardWin.cpp:
56104         (WebCore::addMimeTypesForFormat):
56105         (WebCore::ClipboardWin::types):
56106         * platform/win/ClipboardWin.h:
56107         (ClipboardWin):
56108         * platform/wx/ClipboardWx.cpp:
56109         (WebCore::ClipboardWx::types):
56110         * platform/wx/ClipboardWx.h:
56111         (ClipboardWx):
56112
56113 2012-10-06  Geoffrey Garen  <ggaren@apple.com>
56114
56115         If Node X is reachable from JavaScript, all Nodes in the same tree should be kept alive
56116         https://bugs.webkit.org/show_bug.cgi?id=88834
56117
56118         Reviewed by Gavin Barraclough.
56119
56120         Follow-up patch to address some comments by Darin Adler.
56121
56122         * bindings/js/JSNodeCustom.h:
56123         (WebCore::willCreatePossiblyOrphanedTreeByRemoval): Save some space by
56124         collapsing comment lines. Use Node::hasChildNodes() for brevity.
56125
56126 2012-10-06  Benjamin Poulain  <benjamin@webkit.org>
56127
56128         Fix weird use of KURL's protocolIs
56129         https://bugs.webkit.org/show_bug.cgi?id=98584
56130
56131         Reviewed by Adam Barth.
56132
56133         Converting a KURL to string is a bad idea.
56134
56135         Invalid URLs can return a string that pass the tests, while an
56136         invalid URL will fail protocolIs().
56137
56138         * loader/cache/CachedResource.cpp:
56139         (WebCore::CachedResource::removeClient):
56140         * platform/graphics/MediaPlayer.cpp:
56141         (WebCore::MediaPlayer::load):
56142         * platform/network/DataURL.cpp:
56143         (WebCore::handleDataURL):
56144
56145 2012-10-06  Dan Bernstein  <mitz@apple.com>
56146
56147         WebCore part of <rdar://problem/12446507> [mac] WebKit clients cannot change the behavior of text-rendering: auto
56148         https://bugs.webkit.org/show_bug.cgi?id=98601
56149
56150         Reviewed by Darin Adler.
56151
56152         * WebCore.exp.in: Exported Font::setDefaultTypesettingFeatures().
56153         * platform/graphics/Font.cpp:
56154         (WebCore::Font::s_defaultTypesettingFeatures): Defined this static.
56155         (WebCore::Font::setDefaultTypesettingFeatures): Added this setter.
56156         (WebCore::Font::defaultTypesettingFeatures): Added this getter.
56157         * platform/graphics/Font.h:
56158         (WebCore::Font::typesettingFeatures): Changed to use the value of the new static member
56159         s_defaultTypesettingFeatures, rather than 0, if text-redering is set to auto.
56160
56161 2012-10-04  Geoffrey Garen  <ggaren@apple.com>
56162
56163         If Node X is reachable from JavaScript, all Nodes in the same tree should be kept alive
56164         https://bugs.webkit.org/show_bug.cgi?id=88834
56165
56166         Reviewed by Gavin Barraclough.
56167
56168         * bindings/js/JSNodeCustom.cpp:
56169         (WebCore::isObservable): Clarified this comment, since it seems to have
56170         misled some folks. 
56171
56172         * bindings/js/JSNodeCustom.h:
56173         (WebCore::willCreatePossiblyOrphanedTreeByRemoval): New helper function
56174         to ensure that a disconnected tree is visible to JavaScript.
56175
56176         * bindings/js/ScriptState.cpp:
56177         (WebCore::mainWorldScriptState): Need to check for null because a document's
56178         frame can be null.
56179
56180         * dom/ContainerNode.cpp:
56181         (WebCore::dispatchChildRemovalEvents): When we remove a subtree from the
56182         document, we sever the reference that JavaScript previously held by
56183         referencing its root. So, we give JavaScript an opportunity to establish
56184         a reference to the new root.
56185
56186 2012-10-06  Byungwoo Lee  <bw80.lee@samsung.com>
56187
56188         Fix build warning : -Wunused-parameter.
56189         https://bugs.webkit.org/show_bug.cgi?id=98583
56190
56191         Reviewed by Kentaro Hara.
56192
56193         Use ASSERT_UNUSED() macro to remove build warning.
56194
56195         * plugins/PluginStream.cpp:
56196         (WebCore::PluginStream::delayDeliveryTimerFired):
56197         (WebCore::PluginStream::didReceiveResponse):
56198         (WebCore::PluginStream::didReceiveData):
56199         (WebCore::PluginStream::didFail):
56200         (WebCore::PluginStream::didFinishLoading):
56201         * plugins/PluginView.cpp:
56202         (WebCore::PluginView::requestTimerFired):
56203         (WebCore::PluginView::invalidateTimerFired):
56204
56205 2012-10-05  Adam Barth  <abarth@webkit.org>
56206
56207         [V8] toV8(Node*, ...) does more work than needed (6% faster on dom-traverse)
56208         https://bugs.webkit.org/show_bug.cgi?id=98567
56209
56210         Reviewed by Kentaro Hara.
56211
56212         This patch introduces toV8Fast for Node*. This function works a
56213         differently from the existing toV8 function in two ways:
56214
56215         1) It uses the inline wrapper cache in Node to determine if we're
56216            executing in the main world. This is faster both in the case when
56217            isolated worlds exist because we don't need to retrieve any state
56218            for the current context.
56219
56220         2) It doesn't attempt to inline the hash table lookup used to find the
56221            wrapper in the isolated world. There isn't a big need to inline this
56222            code since performance in the isolated world case is dominated by
56223            the hash table lookup.
56224
56225         Because of these two changes, toV8Fast is small enough to inline into
56226         each attribute getter profitably. Over time, I would like to convert
56227         all the performance critical uses of toV8(Node*) to toV8Fast. At that
56228         point, we can delete toV8 and rename toV8Slow to toV8.
56229
56230         * bindings/scripts/CodeGeneratorV8.pm:
56231         (GenerateHeader):
56232         (GenerateNormalAttrGetter):
56233
56234 2012-10-05  Huang Dongsung  <luxtella@company100.net>
56235
56236         [mac] REGRESSION (r122215): Animated GIF outside the viewport doesn't play when scrolled into view.
56237         https://bugs.webkit.org/show_bug.cgi?id=94874
56238
56239         Reviewed by Simon Fraser.
56240
56241         Rollback previous patch because this patch caused two problems.
56242         1. GIF animation is occasionally paused when tiled scrolling is enabled.
56243         2. This change regressed Apple's Membuster benchmark by ~20% (80MB.)
56244
56245         * loader/cache/CachedImage.cpp:
56246         (WebCore::CachedImage::shouldPauseAnimation):
56247         * loader/cache/CachedImage.h:
56248         (CachedImage):
56249         * loader/cache/CachedResource.h:
56250         * loader/cache/MemoryCache.cpp:
56251         (WebCore::MemoryCache::pruneLiveResourcesToSize):
56252         * rendering/RenderObject.cpp:
56253         (WebCore::RenderObject::willRenderImage):
56254
56255 2012-10-05  Xianzhu Wang  <wangxianzhu@chromium.org>
56256
56257         OpenTypeVerticalData issue with DroidSansFallback.ttf on chromium-android and chromium-linux
56258         https://bugs.webkit.org/show_bug.cgi?id=97824
56259
56260         Reviewed by Tony Chang.
56261
56262         The issue occurred when a font that contains vert GSUB table but doesn't have
56263         a DFLT script and the first script doesn't have vert feature. Added logic to
56264         handle the case.
56265
56266         Test: fast/writing-mode/vertical-subst-font-vert-no-dflt.html
56267
56268         * platform/graphics/opentype/OpenTypeVerticalData.cpp:
56269         (FeatureList):
56270         (WebCore::OpenType::FeatureList::findFeature): Added to find the matching feature in FeatureList.
56271         (WebCore::OpenType::GSUBTable::feature): Added logic to handle the case of no DFLT script and no vert feature under the first script.
56272
56273 2012-10-05  Tony Chang  <tony@chromium.org>
56274
56275         Form controls should always be horizontal
56276         https://bugs.webkit.org/show_bug.cgi?id=98563
56277
56278         Reviewed by Ojan Vafai.
56279
56280         Fix a regression where we didn't force form controls to be horizontal.
56281
56282         Tests: fast/dom/HTMLMeterElement/meter-writing-mode.html
56283                fast/dom/HTMLProgressElement/progress-writing-mode.html
56284                fast/table/colspanMinWidth-vertical.html
56285
56286         * css/html.css:
56287         (input, textarea, keygen, select, button, isindex, meter, progress):
56288
56289 2012-10-05  Sheriff Bot  <webkit.review.bot@gmail.com>
56290
56291         Unreviewed, rolling out r130556 and r130564.
56292         http://trac.webkit.org/changeset/130556
56293         http://trac.webkit.org/changeset/130564
56294         https://bugs.webkit.org/show_bug.cgi?id=98572
56295
56296         The patch wasn't reviewed by a reviewer and it is breaking
56297         Chromium Windows (Requested by jchaffraix on #webkit).
56298
56299         * WebCore.exp.in:
56300         * WebCore.xcodeproj/project.pbxproj:
56301         * css/mediaControls.css:
56302         (video::-webkit-media-text-track-container):
56303         (video::-webkit-media-text-track-past-nodes):
56304         (video::-webkit-media-text-track-future-nodes):
56305         (video::-webkit-media-text-track-display):
56306         * html/HTMLMediaElement.cpp:
56307         (WebCore::HTMLMediaElement::HTMLMediaElement):
56308         (WebCore::HTMLMediaElement::attach):
56309         (WebCore::HTMLMediaElement::userIsInterestedInThisLanguage):
56310         (WebCore::HTMLMediaElement::userIsInterestedInThisTrackKind):
56311         (WebCore::HTMLMediaElement::setClosedCaptionsVisible):
56312         (WebCore::HTMLMediaElement::updateClosedCaptionsControls):
56313         * html/HTMLMediaElement.h:
56314         (HTMLMediaElement):
56315         * html/shadow/MediaControlElements.cpp:
56316         (WebCore):
56317         (WebCore::MediaControlTextTrackContainerElement::updateSizes):
56318         * html/shadow/MediaControlElements.h:
56319         (MediaControlTextTrackContainerElement):
56320         * html/shadow/MediaControlRootElement.cpp:
56321         (WebCore::MediaControlRootElement::updateTextTrackDisplay):
56322         * html/shadow/MediaControlRootElement.h:
56323         (MediaControlRootElement):
56324         * html/shadow/MediaControls.h:
56325         (MediaControls):
56326         * html/track/TextTrack.cpp:
56327         (WebCore::TextTrack::TextTrack):
56328         (WebCore::TextTrack::isValidKindKeyword):
56329         (WebCore::TextTrack::setKind):
56330         (WebCore::TextTrack::setMode):
56331         (WebCore::TextTrack::mode):
56332         * html/track/TextTrack.h:
56333         (WebCore::TextTrack::create):
56334         (WebCore::TextTrack::kind):
56335         (TextTrack):
56336         (WebCore::TextTrack::label):
56337         (WebCore::TextTrack::setLabel):
56338         (WebCore::TextTrack::language):
56339         (WebCore::TextTrack::setLanguage):
56340         * html/track/TextTrackCue.cpp:
56341         (WebCore::TextTrackCueBox::TextTrackCueBox):
56342         (WebCore::TextTrackCueBox::shadowPseudoId):
56343         (WebCore):
56344         (WebCore::TextTrackCue::updateDisplayTree):
56345         * html/track/TextTrackCue.h:
56346         (TextTrackCueBox):
56347         (TextTrackCue):
56348         * platform/mac/WebCoreSystemInterface.h:
56349         * platform/mac/WebCoreSystemInterface.mm:
56350         * rendering/CaptionPreferencesChangedListener.h: Removed.
56351         * rendering/RenderTheme.h:
56352         (WebCore):
56353         (RenderTheme):
56354         * rendering/RenderThemeMac.h:
56355         (RenderThemeMac):
56356         * rendering/RenderThemeMac.mm:
56357         (WebCore):
56358         (WebCore::RenderThemeMac::RenderThemeMac):
56359         (WebCore::RenderThemeMac::~RenderThemeMac):
56360
56361 2012-10-05  Tim Horton  <timothy_horton@apple.com>
56362
56363         [cg] GraphicsContextCG should ask CG whether the shadow offset workaround is required
56364         https://bugs.webkit.org/show_bug.cgi?id=98565
56365         <rdar://problem/12436468>
56366
56367         Reviewed by Simon Fraser.
56368
56369         On Mountain Lion and above, CG can tell us whether we need to work around incorrect
56370         shadow offsets. Prior to Mountain Lion, we should assume we need to apply the workaround.
56371
56372         No new tests, as this requires an obscure configuration to test.
56373
56374         * WebCore.exp.in:
56375         * platform/graphics/cg/GraphicsContextCG.cpp:
56376         (WebCore::applyShadowOffsetWorkaroundIfNeeded):
56377         (WebCore::GraphicsContext::setPlatformShadow):
56378         * platform/mac/WebCoreSystemInterface.h: Add wkCGContextDrawsWithCorrectShadowOffsets.
56379         * platform/mac/WebCoreSystemInterface.mm: Add wkCGContextDrawsWithCorrectShadowOffsets.
56380
56381 2012-10-05  Anders Carlsson  <andersca@apple.com>
56382
56383         Try to fix the build.
56384
56385         * rendering/RenderThemeMac.mm:
56386         (WebCore::RenderThemeMac::captionsWindowColor):
56387
56388 2012-10-05  Eric Seidel  <eric@webkit.org>
56389
56390         Remove needless virtual calls and inline RenderStyle::logical* to make table layout faster
56391         https://bugs.webkit.org/show_bug.cgi?id=98550
56392
56393         Reviewed by Andreas Kling.
56394
56395         This shaved another 5% (100ms) off of the runtime of resizecol.html microbenchmark:
56396         http://www.robohornet.org/tests/resizecol.html
56397
56398         * rendering/AutoTableLayout.cpp:
56399         (WebCore::AutoTableLayout::recalcColumn):
56400         * rendering/style/RenderStyle.cpp:
56401         * rendering/style/RenderStyle.h:
56402
56403 2012-10-04  Eric Carlson  <eric.carlson@apple.com>
56404
56405         Allow ports to override text track rendering style
56406         https://bugs.webkit.org/show_bug.cgi?id=97800
56407         <rdar://problem/12044964>
56408
56409         Reviewed by Silvia Pfeiffer.
56410
56411         * WebCore.exp.in: Export new WebkitSystemInterface functions.
56412         * WebCore.xcodeproj/project.pbxproj: Add CaptionPreferencesChangedListener.h.
56413
56414         * css/mediaControls.css: Rearrange the caption CSS so it is possible to style the cue window,
56415             background, and text independently.
56416
56417         * html/HTMLMediaElement.cpp:
56418         (WebCore::HTMLMediaElement::HTMLMediaElement): Initialize m_disableCaptions with theme->userPrefersCaptions().
56419         (WebCore::HTMLMediaElement::attach): Register for caption preferences change callbacks.
56420         (WebCore::HTMLMediaElement::detach): Unregister for caption preferences change callbacks.
56421         (WebCore::HTMLMediaElement::userPrefersCaptions): Return theme->userPrefersCaptions().
56422         (WebCore::HTMLMediaElement::userIsInterestedInThisTrackKind): Consider userPrefersCaptions().
56423         (WebCore::HTMLMediaElement::setClosedCaptionsVisible): Move the code that marks all tracks as
56424             un-configured to markCaptionAndSubtitleTracksAsUnconfigured so it can be reused.
56425         (WebCore::HTMLMediaElement::captionPreferencesChanged): New, force a reevaluation of all text tracks.
56426         (WebCore::HTMLMediaElement::markCaptionAndSubtitleTracksAsUnconfigured): New, code moved from 
56427             setClosedCaptionsVisible
56428         * html/HTMLMediaElement.h: Inherit from CaptionPreferencesChangedListener.
56429
56430         * html/shadow/MediaControlElements.cpp:
56431         (WebCore::MediaControlTextTrackContainerElement::userCaptionPreferencesChanged): New, if theme
56432             has a captions style sheet override, inject it into the current page group, otherwise
56433             remove injected sheet.
56434         (WebCore::MediaControlTextTrackContainerElement::updateSizes): Get rid of unnecessary member
56435             variable. Get caption font scale from theme instead of hard coding.
56436         * html/shadow/MediaControlElements.h:
56437
56438         * html/shadow/MediaControlRootElement.cpp:
56439         (WebCore::MediaControlRootElement::userCaptionPreferencesChanged): New.
56440         (WebCore::MediaControlRootElement::updateTextTrackDisplay):
56441         * html/shadow/MediaControlRootElement.h: Add userCaptionPreferencesChanged, minor cleanup.
56442
56443         * html/shadow/MediaControls.h:
56444         (WebCore::MediaControls::userCaptionPreferencesChanged): New.
56445
56446         * html/track/TextTrackCue.cpp:
56447         (WebCore::TextTrackCueBox::TextTrackCueBox): Set the shadow pseudo id.
56448         (WebCore::TextTrackCueBox::textTrackCueBoxShadowPseudoId): New, class method to return the 
56449             shadow pseudo id so it can be used elsewhere.
56450         (WebCore::TextTrackCueBox::shadowPseudoId): Call textTrackCueBoxShadowPseudoId.
56451         (WebCore::TextTrackCue::pastNodesShadowPseudoId): New, class method to return the 
56452             shadow pseudo id so it can be used elsewhere.
56453         (WebCore::TextTrackCue::futureNodesShadowPseudoId): Ditto.
56454         (WebCore::TextTrackCue::updateDisplayTree):
56455         * html/track/TextTrackCue.h:
56456
56457         * platform/mac/WebCoreSystemInterface.h: Updated.
56458         * platform/mac/WebCoreSystemInterface.mm: Ditto.
56459
56460         * rendering/CaptionPreferencesChangedListener.h: Added.
56461
56462         * rendering/RenderTheme.h:
56463         (WebCore::RenderTheme::userPrefersCaptions): New, default do-nothing implementation.
56464         (WebCore::RenderTheme::userHasCaptionPreferences): Ditto.
56465         (WebCore::RenderTheme::captionFontSizeScale): Ditto.
56466         (WebCore::RenderTheme::captionsStyleSheetOverride): Ditto.
56467         (WebCore::RenderTheme::registerForCaptionPreferencesChangedCallbacks): Ditto.
56468         (WebCore::RenderTheme::unregisterForCaptionPreferencesChangedCallbacks): Ditto.
56469
56470         * rendering/RenderThemeMac.h:
56471         * rendering/RenderThemeMac.mm:
56472         (WebCore::userCaptionPreferencesChangedNotificationCallback): New, receives preference changed notifications.
56473         (WebCore::RenderThemeMac::RenderThemeMac): Initialize m_listeningForCaptionPreferenceNotifications.
56474         (WebCore::RenderThemeMac::~RenderThemeMac): Unregister for notifications if necessary.
56475         (WebCore::RenderThemeMac::userHasCaptionPreferences): New, passthrough to WKSI function.
56476         (WebCore::RenderThemeMac::userPrefersCaptions): Ditto.
56477         (WebCore::RenderThemeMac::captionsWindowColor): Return Color with user's caption window color preference.
56478         (WebCore::RenderThemeMac::captionsBackgroundColor): Return Color with user's caption 
56479             background color preference.
56480         (WebCore::RenderThemeMac::captionsTextColor): Return Color with user's caption text color preference.
56481         (WebCore::RenderThemeMac::captionsEdgeColorForTextColor): Return Color for text edge effect.
56482         (WebCore::RenderThemeMac::cssPropertyWithTextEdgeColor): Return String with CSS to set a text-shadow
56483             or webkit-text-stroke property.
56484         (WebCore::RenderThemeMac::cssColorProperty): Return a String with css to set a property 
56485             with a color value.
56486         (WebCore::RenderThemeMac::captionsTextEdgeStyle): Return a String with css to style caption 
56487             text with the user's preferred text edge stye.
56488         (WebCore::RenderThemeMac::captionsDefaultFont): Return a String with css to style caption
56489             text with the user's preferred font.
56490         (WebCore::RenderThemeMac::captionsStyleSheetOverride): Return a String with css to style captions
56491             with the user's preferred style.
56492         (WebCore::RenderThemeMac::captionFontSizeScale): Return the user's preferred caption font scale.
56493         (WebCore::RenderThemeMac::captionPreferencesChanged): Notify listeners of caption preference change.
56494         (WebCore::RenderThemeMac::registerForCaptionPreferencesChangedCallbacks): Add a caption preferences 
56495             changes listener.
56496         (WebCore::RenderThemeMac::unregisterForCaptionPreferencesChangedCallbacks): Remove a caption preferences
56497             changes listener.
56498
56499 2012-10-05  Takashi Sakamoto  <tasak@google.com>
56500
56501         Inline continuations create :after generated content on style recalcs
56502         https://bugs.webkit.org/show_bug.cgi?id=93170
56503
56504         Reviewed by Abhishek Arya.
56505
56506         The bug is caused by RenderInline::styleDidChange's setContinuation(0).
56507         RenderObjectChildList uses continuation to know whether the given
56508         renderer should have AFTER render object or not.
56509         However, setContinuation(0) makes RenderObjectChildList to
56510         misunderstand that all continuations are last continuation.
56511         To avoid the misunderstanding, added a new flag to class
56512         RenderObejctChildList to enable/disable updating :after content (and
56513         also :before content).
56514
56515         Tests: fast/css-generated-content/after-with-inline-continuation.html
56516                fast/css-generated-content/dynamic-apply-after-for-inline.html
56517
56518         * rendering/RenderInline.cpp:
56519         (WebCore::RenderInline::styleDidChange):
56520         Disable upating :after content for continuations which are not
56521         the last one during setStyle just after setContinuation(0).
56522         The setStyle invokes RenderInline::styleDidChange and also invokes
56523         updateBeforeAfterContent via the styleDidChange. This means,
56524         the last continuation's updateBeforeAfterContent is also invoked
56525         after setContinuation(0). We have to update :after for the last
56526         continuation.
56527         * rendering/RenderObjectChildList.cpp:
56528         (WebCore):
56529         (WebCore::RenderObjectChildList::updateBeforeAfterContent):
56530         If s_updateBeforeAfterContent is false, quickly exit
56531         updateBeforeAfterContent.
56532         * rendering/RenderObjectChildList.h:
56533         (RenderObjectChildList):
56534         Added a new flag s_enableUpdateBeforeAfterContent to enable/disable
56535         updating :before or :after content.
56536
56537 2012-10-05  Simon Fraser  <simon.fraser@apple.com>
56538
56539         Don't assume that TileCache layers are opaque
56540         https://bugs.webkit.org/show_bug.cgi?id=98555
56541
56542         Reviewed by Dean Jackson.
56543
56544         TileCache previously set all its tile CALayers as opaque.
56545         However, we will need non-opaque tile caches when we use this
56546         tile cache for tiled layers, so add a member function to
56547         control tile opacity.
56548         
56549         RenderLayerBacking already calls m_graphicsLayer->setContentsOpaque()
56550         using the FrameView's notion of opaqueness, so this change will
56551         cause the main tile cache to be non-opaque if external forces have
56552         set the FrameView to be non-opaque.
56553         
56554         Also tweak the layer border widths on tiled layers.
56555
56556         * platform/graphics/ca/mac/TileCache.h:
56557         (TileCache):
56558         (WebCore::TileCache::tilesAreOpaque):
56559         * platform/graphics/ca/mac/TileCache.mm:
56560         (WebCore::TileCache::TileCache):
56561         (WebCore::TileCache::setTilesOpaque):
56562         (WebCore::TileCache::createTileLayer):
56563         * platform/graphics/ca/mac/WebTileCacheLayer.mm:
56564         (-[WebTileCacheLayer setOpaque:]):
56565         (-[WebTileCacheLayer isOpaque]):
56566         (-[WebTileCacheLayer setBorderWidth:]):
56567
56568 2012-10-05  Tony Chang  <tony@chromium.org>
56569
56570         Fix margin box ascent computation in flexbox
56571         https://bugs.webkit.org/show_bug.cgi?id=98540
56572
56573         Reviewed by Ojan Vafai.
56574
56575         The margin box ascent doesn't depend on the margin below the box.
56576
56577         Tests: css3/flexbox/flex-align.html: Fixed a test case and removed a FIXME.
56578                css3/flexbox/flex-align-vertical-writing-mode.html: Similar test case.
56579
56580         * rendering/RenderFlexibleBox.cpp:
56581         (WebCore::RenderFlexibleBox::marginBoxAscentForChild):
56582
56583 2012-10-05  Ojan Vafai  <ojan@chromium.org>
56584
56585         Deprecated flexboxes subtract scrollbar width/height twice
56586         https://bugs.webkit.org/show_bug.cgi?id=98552
56587
56588         Reviewed by Tony Chang.
56589
56590         This is a regression from http://trac.webkit.org/changeset/119507.
56591         The problem is that contentHeight subtracts the scrollbar and
56592         RenderDeprecatedFlexbox subtracts the scrollbar.
56593
56594         -Make it so that we only access override sizes if one has been set.
56595         I think this makes the calling code more clear.
56596         -If we don't have one set, grab the height/width - borderAndPadding.
56597         -Add a FIXME to change this all back to being borderbox sizes.
56598         There's something trick with making table padding/border work right for that
56599         though (noted in the original patch).
56600
56601         Test: fast/flexbox/flexing-overflow-scroll-item.html
56602
56603         * rendering/RenderBox.cpp:
56604         (WebCore::RenderBox::overrideLogicalContentWidth):
56605         (WebCore::RenderBox::overrideLogicalContentHeight):
56606         (WebCore::RenderBox::availableLogicalHeightUsing):
56607         * rendering/RenderBox.h:
56608         (RenderBox):
56609         * rendering/RenderDeprecatedFlexibleBox.cpp:
56610         (WebCore::contentWidthForChild):
56611         (WebCore):
56612         (WebCore::contentHeightForChild):
56613         (WebCore::RenderDeprecatedFlexibleBox::layoutHorizontalBox):
56614         (WebCore::RenderDeprecatedFlexibleBox::layoutVerticalBox):
56615         (WebCore::RenderDeprecatedFlexibleBox::allowedChildFlex):
56616
56617 2012-10-05  Eric Seidel  <eric@webkit.org>
56618
56619         Make tables which don't use col/row span much faster to layout
56620         https://bugs.webkit.org/show_bug.cgi?id=98221
56621
56622         Reviewed by Julien Chaffraix.
56623
56624         My sense is that most tables on webpages do not use colspan/rowspan
56625         so I stole another bit from RenderTableCell::m_column to avoid
56626         having to re-parse the colSpan/rowSpan attributes for every cell
56627         when doing table layout.
56628         This made these symbols disappear from biggrid.html/redraw.html (dglazkov's spreadsheets benchmarks)
56629         as well as moved our robohornet/resizecol.html number from an average of 3221ms to 2608ms (~20%!).
56630
56631         I removed m_hasHTMLTableCellElement (from http://trac.webkit.org/changeset/97691)
56632         since it was attempting to do the same sort of optimization.
56633
56634         * rendering/RenderTableCell.cpp:
56635         (WebCore::RenderTableCell::RenderTableCell):
56636         (WebCore::RenderTableCell::parseColSpanFromDOM):
56637         (WebCore::RenderTableCell::parseRowSpanFromDOM):
56638         (WebCore::RenderTableCell::layout):
56639         * rendering/RenderTableCell.h:
56640         (WebCore::RenderTableCell::colSpan):
56641         (WebCore::RenderTableCell::rowSpan):
56642         (RenderTableCell):
56643
56644 2012-10-05  Oli Lan  <olilan@chromium.org>
56645
56646         Allow EventHandler to handle longpress gestures, including longpress selection on Android.
56647         https://bugs.webkit.org/show_bug.cgi?id=98173
56648         
56649         Reviewed by Ryosuke Niwa.
56650
56651         Adds handling for GestureLongPress to EventHandler::handleGestureEvent, with a new
56652         handleGestureLongPress method. On Android, this method selects the closest word
56653         if the gesture event was over non-link text.
56654
56655         This is tested via a new chromium test WebViewTest.LongPressSelection.  
56656
56657         * page/EventHandler.cpp:
56658         (WebCore::EventHandler::selectClosestWordFromHitTestResult):
56659         (WebCore::EventHandler::selectClosestWordFromMouseEvent):
56660         (WebCore):
56661         (WebCore::EventHandler::handleGestureEvent):
56662         (WebCore::EventHandler::handleGestureLongPress):
56663         * page/EventHandler.h:
56664         (EventHandler):
56665
56666 2012-10-05  Tab Atkins  <jackalmage@gmail.com>
56667
56668         <marquee> element forces itself to be at least 1em high, regardless of 'height' declaration
56669         https://bugs.webkit.org/show_bug.cgi?id=18098
56670
56671         Reviewed by Eric Seidel.
56672
56673         This restriction originally existed to match IE, but IE changed some time ago to be normal instead.
56674         We're the last browser, afaict, to still enforce this de-facto restriction.
56675         This patch makes <marquee> instead act like a normal element.
56676
56677         Tests: fast/css/MarqueeLayoutTest.html (rewritten from the older, bad version)
56678
56679         * rendering/RenderMarquee.cpp:
56680         (WebCore::RenderMarquee::updateMarqueeStyle):
56681
56682 2012-10-05  Joe Mason  <jmason@rim.com>
56683
56684         [BlackBerry] Fix regression in proxy auth
56685         https://bugs.webkit.org/show_bug.cgi?id=98533
56686
56687         Reviewed by Yong Li.
56688
56689         The proxy auth dialog gets the proxy address from
56690         BlackBerry::Platform::Settings::proxyAddress, which returns
56691         "host:port", but we try to parse it with a KURL, which expects
56692         "scheme://host:port".  Since this is an http proxy, add http:// to the
56693         url to get it to parse.
56694
56695         PR 220567.
56696
56697         * platform/network/blackberry/NetworkJob.cpp:
56698         (WebCore::NetworkJob::sendRequestWithCredentials):
56699
56700 2012-10-05  Jer Noble  <jer.noble@apple.com>
56701
56702         No autorelease pool in place, causing buildup of autoreleased objects.
56703         https://bugs.webkit.org/show_bug.cgi?id=98522
56704         <rdar://problem/11647950>
56705
56706         Reviewed by Alexey Proskuryakov.
56707
56708         Wrap each timer callback in an AutodrainPool, ensuring an autorelease
56709         pool is present during calls from C/C++ into ObjC.
56710
56711         * platform/cf/RunLoopTimerCF.cpp:
56712         (WebCore::timerFired):
56713
56714 2012-10-05  Ryosuke Niwa  <rniwa@webkit.org>
56715
56716         Deleting across multiple paragraphs can change the style of surrounding text
56717         https://bugs.webkit.org/show_bug.cgi?id=97266
56718
56719         Reviewed by Levi Weintraub.
56720
56721         Preserve editing styles from CSS rules in wrappingStyleForSerialization as well as inline styles
56722         even when we're not annotating. We don't want to preserve all styles because it's against
56723         the user expectation to keep borders, etc... when merging paragraphs. We also don't want to copy
56724         styles from a mail blockquote because that's not a style the user has applied. See the comment
56725         in EditingStyle::wrappingStyleForSerialization.
56726
56727         Test: editing/deleting/merge-paragraph-with-style-from-rule.html
56728
56729         * editing/EditingStyle.cpp:
56730         (WebCore::EditingStyle::mergeInlineAndImplicitStyleOfElement):
56731         (WebCore::EditingStyle::wrappingStyleForSerialization):
56732
56733 2012-10-05  Dan Bernstein  <mitz@apple.com>
56734
56735         Reversing a GlyphBuffer needlessly queries its size multiple times
56736         https://bugs.webkit.org/show_bug.cgi?id=98530
56737
56738         Reviewed by Simon Fraser.
56739
56740         No new tests because there is no change in behavior.
56741
56742         * WebCore.xcodeproj/project.pbxproj:
56743         * platform/graphics/FontFastPath.cpp:
56744         (WebCore::Font::getGlyphsAndAdvancesForSimpleText): Replaced the condition
56745         (i < glyphBuffer.size() / 2) with the equivalent test (i < end).
56746         * platform/graphics/mac/FontComplexTextMac.cpp:
56747         (WebCore::Font::getGlyphsAndAdvancesForComplexText): Ditto.
56748
56749 2012-10-05  José Dapena Paz  <jdapena@igalia.com>
56750
56751         [GTK] Add support for creating EGL contexts
56752         https://bugs.webkit.org/show_bug.cgi?id=77921
56753
56754         Reviewed by Martin Robinson.
56755
56756         This patch adds support for EGL, using OpenGL and OpenGL ES 2. Both
56757         options are set up on compile time, with the configure options
56758         --enable-egl and --enable-gles2.
56759
56760         The implementation only adds support for EGL on top of X11, to
56761         isolate the changes to the minimum. More changes should come
56762         later to enable EGL for other targets (as Wayland).
56763
56764         No new tests required, as existing WebGL and AC tests should cover
56765         the cases.
56766
56767         * GNUmakefile.am:
56768         * GNUmakefile.list.am:
56769         * platform/graphics/GraphicsContext3D.h:
56770         (GraphicsContext3D):
56771         * platform/graphics/OpenGLESShims.h:
56772         * platform/graphics/cairo/GLContext.cpp:
56773         (WebCore):
56774         (WebCore::GLContext::sharedX11Display):
56775         (WebCore::GLContext::cleanupSharedX11Display):
56776         (WebCore::activeContextList):
56777         (WebCore::GLContext::addActiveContext):
56778         (WebCore::GLContext::removeActiveContext):
56779         (WebCore::GLContext::cleanupActiveContextsAtExit):
56780         (WebCore::GLContext::createContextForWindow):
56781         (WebCore::GLContext::createOffscreenContext):
56782         * platform/graphics/cairo/GLContext.h:
56783         (GLContext):
56784         * platform/graphics/cairo/GraphicsContext3DCairo.cpp:
56785         (WebCore::GraphicsContext3D::create):
56786         (WebCore::GraphicsContext3D::GraphicsContext3D):
56787         (WebCore::GraphicsContext3D::~GraphicsContext3D):
56788         (WebCore::GraphicsContext3D::isGLES2Compliant):
56789         * platform/graphics/cairo/GraphicsContext3DPrivate.cpp:
56790         (WebCore::GraphicsContext3DPrivate::paintToTextureMapper):
56791         * platform/graphics/clutter/GraphicsContext3DClutter.cpp:
56792         * platform/graphics/efl/GraphicsContext3DEfl.cpp:
56793         * platform/graphics/egl/GLContextEGL.cpp: Added.
56794         (WebCore):
56795         (WebCore::sharedEGLDisplay):
56796         (WebCore::getEGLConfig):
56797         (WebCore::GLContextEGL::createWindowContext):
56798         (WebCore::GLContextEGL::createPbufferContext):
56799         (WebCore::GLContextEGL::createPixmapContext):
56800         (WebCore::GLContextEGL::createContext):
56801         (WebCore::GLContextEGL::GLContextEGL):
56802         (WebCore::GLContextEGL::~GLContextEGL):
56803         (WebCore::GLContextEGL::canRenderToDefaultFramebuffer):
56804         (WebCore::GLContextEGL::defaultFrameBufferSize):
56805         (WebCore::GLContextEGL::makeContextCurrent):
56806         (WebCore::GLContextEGL::swapBuffers):
56807         (WebCore::GLContextEGL::waitNative):
56808         (WebCore::GLContextEGL::platformContext):
56809         * platform/graphics/egl/GLContextEGL.h: Added.
56810         (WebCore):
56811         (GLContextEGL):
56812         * platform/graphics/glx/GLContextGLX.cpp:
56813         (WebCore::GLContextGLX::createWindowContext):
56814         (WebCore::GLContextGLX::createPbufferContext):
56815         (WebCore::GLContextGLX::createPixmapContext):
56816         (WebCore::GLContextGLX::createContext):
56817         (WebCore::GLContextGLX::~GLContextGLX):
56818         (WebCore::GLContextGLX::defaultFrameBufferSize):
56819         (WebCore::GLContextGLX::makeContextCurrent):
56820         (WebCore::GLContextGLX::swapBuffers):
56821         (WebCore):
56822         (WebCore::GLContextGLX::waitNative):
56823         * platform/graphics/glx/GLContextGLX.h:
56824         (GLContextGLX):
56825         * platform/graphics/mac/GraphicsContext3DMac.mm:
56826         * platform/graphics/opengl/GraphicsContext3DOpenGL.cpp:
56827         (WebCore::GraphicsContext3D::releaseShaderCompiler):
56828         (WebCore):
56829         * platform/graphics/opengl/GraphicsContext3DOpenGLES.cpp:
56830         (WebCore::GraphicsContext3D::readPixels):
56831         (WebCore::GraphicsContext3D::reshapeFBOs):
56832         (WebCore::GraphicsContext3D::renderbufferStorage):
56833         * platform/graphics/qt/GraphicsContext3DQt.cpp:
56834         * platform/graphics/texmap/TextureMapper.h:
56835         * platform/gtk/RedirectedXCompositeWindow.cpp:
56836         (WebCore::RedirectedXCompositeWindow::RedirectedXCompositeWindow):
56837         (WebCore::RedirectedXCompositeWindow::~RedirectedXCompositeWindow):
56838         (WebCore::RedirectedXCompositeWindow::resize):
56839         * platform/gtk/RedirectedXCompositeWindow.h:
56840
56841 2012-10-04  Jon Lee  <jonlee@apple.com>
56842
56843         Add a setting to enable plugin snapshotting
56844         https://bugs.webkit.org/show_bug.cgi?id=98319
56845         <rdar://problem/12426480>
56846
56847         Reviewed by Brady Eidson.
56848
56849         Add a new bit for this preference.
56850
56851         * page/Settings.cpp:
56852         (WebCore::Settings::Settings): Preference is false by default.
56853         * page/Settings.h: Added m_plugInSnapshottingEnabled bit.
56854         (WebCore::Settings::setPlugInSnapshottingEnabled): Set the bit.
56855         (WebCore::Settings::plugInSnapshottingEnabled): Return the bit.
56856
56857 2012-10-05  Vsevolod Vlasov  <vsevik@chromium.org>
56858
56859         Unreviewed inspector front-end closure compilaiton fixes.
56860
56861         * inspector/InjectedScriptCanvasModuleSource.js:
56862         * inspector/InjectedScriptExterns.js:
56863         (InjectedScriptHost.prototype.getInternalProperties):
56864         * inspector/front-end/DockController.js:
56865         * inspector/front-end/externs.js:
56866         (InspectorFrontendHostAPI.prototype.requestSetDockSide):
56867
56868 2012-10-05  Tab Atkins  <jackalmage@gmail.com>
56869
56870         Replace uses of prefixed properties with unprefixed versions in the UA stylesheets
56871         https://bugs.webkit.org/show_bug.cgi?id=98453
56872
56873         Reviewed by Ojan Vafai.
56874
56875         Switched 'border-radius' and 'box-shadow' to their unprefixed version in the UA stylesheets.
56876
56877         No new tests, because the unprefixed properties have the same behavior as the prefixed.
56878
56879         * css/fullscreenQuickTime.css:
56880         (video:-webkit-full-screen::-webkit-media-controls-panel):
56881         * css/html.css:
56882         (keygen, select):
56883         (select[size][multiple]):
56884         (select[size="1"]):
56885         (::-webkit-validation-bubble-message):
56886         * css/themeBlackBerry.css:
56887         (input, textarea):
56888         * css/themeChromiumAndroid.css:
56889         (select[size][multiple]):
56890         * css/themeQtNoListboxes.css:
56891         (select[size][multiple]):
56892         * css/themeWin.css:
56893         (select[size="1"]):
56894         * css/view-source.css:
56895         (.webkit-html-message-bubble):
56896
56897 2012-10-05  Kevin Ellis  <kevers@chromium.org>
56898
56899         [chromium] Only inflate the height of rows in a popup menu when a touch device is detected.
56900         https://bugs.webkit.org/show_bug.cgi?id=98515
56901
56902         Reviewed by Adam Barth.
56903
56904         Enforces a minimum row height for popup menus when a touch device is
56905         detected.  In a previous patch (r127597), the sizing of popup was 
56906         consolidated for touch and non-touch.  Based on user feedback, reverting
56907         to the old behavior for non-touch and only adding padding for touch
56908         devices seems like a much safer strategy.  This patch is not a direct
56909         revert of r127567 since the padding previously used for touch is a bit
56910         excessive.
56911
56912         Covered by existing tests.
56913
56914         * platform/chromium/PopupListBox.cpp:
56915         (WebCore::PopupListBox::getRowHeight):
56916         * platform/chromium/PopupMenuChromium.cpp:
56917         (WebCore):
56918         * platform/chromium/PopupMenuChromium.h:
56919         (WebCore::PopupMenuChromium::optionRowHeightForTouch):
56920         (WebCore::PopupMenuChromium::setOptionRowHeightForTouch):
56921         (PopupMenuChromium):
56922
56923 2012-10-05  Alexander Pavlov  <apavlov@chromium.org>
56924
56925         Web Inspector: [Styles] Unable to edit properties in broken stylesheets
56926         https://bugs.webkit.org/show_bug.cgi?id=98246
56927
56928         Reviewed by Vsevolod Vlasov.
56929
56930         Pop source data for invalid rules off the stack whenever we have consecutive CSSParser::markRuleHeaderStart() invocations.
56931
56932         Test: inspector/styles/parse-stylesheet-errors.html
56933
56934         * css/CSSParser.cpp:
56935         (WebCore::CSSParser::popRuleData):
56936         (WebCore::CSSParser::markRuleHeaderStart):
56937         (WebCore::CSSParser::markRuleBodyStart):
56938         * css/CSSParser.h:
56939         (CSSParser):
56940
56941 2012-10-05  Gabor Rapcsanyi  <rgabor@webkit.org>
56942
56943         Add ARM-NEON support to VectorMath in WebAudio
56944         https://bugs.webkit.org/show_bug.cgi?id=98131
56945
56946         Reviewed by Zoltan Herczeg.
56947
56948         Speed up vector operations in WebAudio with NEON intrinsics.
56949
56950         * platform/audio/VectorMath.cpp:
56951         (WebCore::VectorMath::vsma):
56952         (WebCore::VectorMath::vsmul):
56953         (WebCore::VectorMath::vadd):
56954         (WebCore::VectorMath::vmul):
56955         (WebCore::VectorMath::zvmul):
56956         (WebCore::VectorMath::vsvesq):
56957         (WebCore::VectorMath::vmaxmgv):
56958
56959 2012-10-05  Simon Hausmann  <simon.hausmann@digia.com>
56960
56961         Unreviewed, rolling out r130495.
56962         http://trac.webkit.org/changeset/130495
56963         https://bugs.webkit.org/show_bug.cgi?id=98268
56964
56965         Made WK2 tests crash.
56966
56967         * Target.pri:
56968         * platform/qt/QStyleFacade.cpp: Removed.
56969         * platform/qt/QStyleFacade.h: Removed.
56970
56971 2012-10-05  Simon Hausmann  <simon.hausmann@digia.com>
56972
56973         [Qt] Make RenderThemeQStyle/ScrollbarThemeQStyle compile without QStyle/QtWidgets
56974         https://bugs.webkit.org/show_bug.cgi?id=98268
56975
56976         Reviewed by Tor Arne Vestbø.
56977
56978         Extracted QStyle/QWidget related code into a QWebStyle class that implements the QStyleFacade interface.
56979
56980         QStyleFacade is a pure interface that lives in WebCore/platform/qt
56981         (next to RenderThemeQStyle and ScrollbarThemeQStyle) and provides a
56982         minimal interface of what we need to draw with QStyle as well as basic
56983         hit testing and metric retrieval. It also provides a
56984         QStyleFacadeOption class that aggregates common meta-data for
56985         rendering primitives, such as direction, rectangle, state (sunken,
56986         enabled, etc.) or palette. It also provides some more slider/scrollbar
56987         specific fields in a slider sub-structure.
56988
56989         RenderThemeQStyle/ScrollbarThemeQStyle used to instantiate specific QStyleOption sub-classes and populate
56990         them with state information from render objects, before calling straight to QStyle. Most of the common code
56991         was encapsulated in StylePainterQStyle.
56992
56993         The new RenderThemeQStyle/ScrolllbarThemeQStyle uses common code in
56994         StylePainterQStyle to populate state into QStyleFacadeOption before
56995         calling into QStyleFacade.
56996
56997         The style facade is then implemented by QStyleFacadeImp, which extracts
56998         meta-data from QStyleFacadeOption arguments, populates style
56999         primitive specific QStyleOption objects and then calls on QStyle.
57000
57001         RenderThemeQStyle/ScrollbarThemeQStyle can only use interface methods
57002         from QStyleFacade. QStyleFacadeImp on the other hand will live in the
57003         separate QtWebKitWidgets library in the future and therefore cannot use
57004         any WebCore types.
57005
57006         * Target.pri:
57007         * platform/qt/QStyleFacade.cpp: Added.
57008         (WebCore):
57009         (WebCore::QStyleFacade::styleForPage):
57010         * platform/qt/QStyleFacade.h: Added.
57011         (WebCore):
57012         (QStyleFacade):
57013         (WebCore::QStyleFacade::~QStyleFacade):
57014         (WebCore::QStyleFacadeOption::QStyleFacadeOption):
57015         (QStyleFacadeOption):
57016         * platform/qt/RenderThemeQStyle.cpp: Renamed from Source/WebKit/qt/WebCoreSupport/RenderThemeQStyle.cpp.
57017         (WebCore):
57018         (WebCore::RenderThemeQStyle::getStylePainter):
57019         (WebCore::StylePainterQStyle::StylePainterQStyle):
57020         (WebCore::StylePainterQStyle::init):
57021         (WebCore::RenderThemeQStyle::create):
57022         (WebCore::RenderThemeQStyle::setStyleFactoryFunction):
57023         (WebCore::RenderThemeQStyle::styleFactory):
57024         (WebCore::RenderThemeQStyle::RenderThemeQStyle):
57025         (WebCore::RenderThemeQStyle::~RenderThemeQStyle):
57026         (WebCore::RenderThemeQStyle::setPaletteFromPageClientIfExists):
57027         (WebCore::RenderThemeQStyle::inflateButtonRect):
57028         (WebCore::RenderThemeQStyle::computeSizeBasedOnStyle):
57029         (WebCore::RenderThemeQStyle::adjustButtonStyle):
57030         (WebCore::RenderThemeQStyle::setButtonPadding):
57031         (WebCore::RenderThemeQStyle::paintButton):
57032         (WebCore::RenderThemeQStyle::paintTextField):
57033         (WebCore::RenderThemeQStyle::adjustTextAreaStyle):
57034         (WebCore::RenderThemeQStyle::paintTextArea):
57035         (WebCore::RenderThemeQStyle::setPopupPadding):
57036         (WebCore::RenderThemeQStyle::colorPalette):
57037         (WebCore::RenderThemeQStyle::paintMenuList):
57038         (WebCore::RenderThemeQStyle::adjustMenuListButtonStyle):
57039         (WebCore::RenderThemeQStyle::paintMenuListButton):
57040         (WebCore::RenderThemeQStyle::animationDurationForProgressBar):
57041         (WebCore::RenderThemeQStyle::paintProgressBar):
57042         (WebCore::RenderThemeQStyle::paintSliderTrack):
57043         (WebCore::RenderThemeQStyle::adjustSliderTrackStyle):
57044         (WebCore::RenderThemeQStyle::paintSliderThumb):
57045         (WebCore::RenderThemeQStyle::adjustSliderThumbStyle):
57046         (WebCore::RenderThemeQStyle::paintSearchField):
57047         (WebCore::RenderThemeQStyle::adjustSearchFieldDecorationStyle):
57048         (WebCore::RenderThemeQStyle::paintSearchFieldDecoration):
57049         (WebCore::RenderThemeQStyle::adjustSearchFieldResultsDecorationStyle):
57050         (WebCore::RenderThemeQStyle::paintSearchFieldResultsDecoration):
57051         (WebCore::RenderThemeQStyle::paintInnerSpinButton):
57052         (WebCore::RenderThemeQStyle::initializeCommonQStyleOptions):
57053         (WebCore::RenderThemeQStyle::adjustSliderThumbSize):
57054         * platform/qt/RenderThemeQStyle.h: Renamed from Source/WebKit/qt/WebCoreSupport/RenderThemeQStyle.h.
57055         (WebCore):
57056         (RenderThemeQStyle):
57057         (WebCore::RenderThemeQStyle::qStyle):
57058         (StylePainterQStyle):
57059         (WebCore::StylePainterQStyle::isValid):
57060         (WebCore::StylePainterQStyle::paintButton):
57061         (WebCore::StylePainterQStyle::paintTextField):
57062         (WebCore::StylePainterQStyle::paintComboBox):
57063         (WebCore::StylePainterQStyle::paintComboBoxArrow):
57064         (WebCore::StylePainterQStyle::paintSliderTrack):
57065         (WebCore::StylePainterQStyle::paintSliderThumb):
57066         (WebCore::StylePainterQStyle::paintInnerSpinButton):
57067         (WebCore::StylePainterQStyle::paintProgressBar):
57068         (WebCore::StylePainterQStyle::paintScrollCorner):
57069         (WebCore::StylePainterQStyle::paintScrollBar):
57070         * platform/qt/ScrollbarThemeQStyle.cpp: Renamed from Source/WebKit/qt/WebCoreSupport/ScrollbarThemeQStyle.cpp.
57071         (WebCore):
57072         (WebCore::ScrollbarThemeQStyle::ScrollbarThemeQStyle):
57073         (WebCore::ScrollbarThemeQStyle::~ScrollbarThemeQStyle):
57074         (WebCore::scPart):
57075         (WebCore::scrollbarPart):
57076         (WebCore::initSliderStyleOption):
57077         (WebCore::ScrollbarThemeQStyle::paint):
57078         (WebCore::ScrollbarThemeQStyle::hitTest):
57079         (WebCore::ScrollbarThemeQStyle::shouldCenterOnThumb):
57080         (WebCore::ScrollbarThemeQStyle::invalidatePart):
57081         (WebCore::ScrollbarThemeQStyle::scrollbarThickness):
57082         (WebCore::ScrollbarThemeQStyle::thumbPosition):
57083         (WebCore::ScrollbarThemeQStyle::thumbLength):
57084         (WebCore::ScrollbarThemeQStyle::trackPosition):
57085         (WebCore::ScrollbarThemeQStyle::trackLength):
57086         (WebCore::ScrollbarThemeQStyle::paintScrollCorner):
57087         * platform/qt/ScrollbarThemeQStyle.h: Renamed from Source/WebKit/qt/WebCoreSupport/ScrollbarThemeQStyle.h.
57088         (WebCore):
57089         (ScrollbarThemeQStyle):
57090         (WebCore::ScrollbarThemeQStyle::qStyle):
57091
57092 2012-10-05  Andrei Bucur  <abucur@adobe.com>
57093
57094         Incomplete repaint of boxes with inset box-shadow and padding when resized
57095         https://bugs.webkit.org/show_bug.cgi?id=59863
57096
57097         Reviewed by Simon Fraser.
57098
57099         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.
57100
57101         New Test: fast/repaint/box-shadow-inset-repaint.html
57102
57103         * rendering/RenderObject.cpp:
57104         (WebCore::RenderObject::repaintAfterLayoutIfNeeded):
57105         * rendering/style/RenderStyle.cpp:
57106         (WebCore::RenderStyle::getShadowInsetExtent):
57107         (WebCore):
57108         * rendering/style/RenderStyle.h:
57109
57110 2012-10-04  Kent Tamura  <tkent@chromium.org>
57111
57112         Fix sub-field width to the maximum width of a placeholder and the maximum value
57113         https://bugs.webkit.org/show_bug.cgi?id=98481
57114
57115         Reviewed by Hajime Morita.
57116
57117         We can't assume a placeholder text is shorter than the width of
57118         digits. The placeholder string for the year field of
57119         input[type=week] is "----", but input[type=date] will have a
57120         localized string for it.
57121
57122         We should set the 'width' CSS property to the maximum of the
57123         placeholder width and the maximum value width in order to prevent
57124         the field width from growing/narrowing.
57125
57126         Before this patch, we secured four digits space for a year field,
57127         and allowed the field to grow its width when a larger year is
57128         set. After this patch, we don't allow it to grow because the
57129         'width' property is set to the maximum width.
57130
57131         Update week-multiple-fields-appearance-basic.html, and the
57132         following tests are affected.
57133         - fast/forms/week-multiple-fields/week-multiple-fields-appearance-pseudo-classes.html
57134         - fast/forms/week-multiple-fields/week-multiple-fields-appearance-pseudo-elements.html
57135         - fast/forms/week-multiple-fields/week-multiple-fields-appearance-style.html
57136
57137         * html/shadow/DateTimeNumericFieldElement.cpp:
57138         (WebCore::DateTimeNumericFieldElement::DateTimeNumericFieldElement):
57139         Enable customStyleForRenderer.
57140         (WebCore::DateTimeNumericFieldElement::customStyleForRenderer):
57141         Added. The code is similar to DateTimeSymbolicFieldElement::customStyleForRenderer().
57142         (WebCore::DateTimeNumericFieldElement::formatValue):
57143         Made a function with the code in value(). This is used in
57144         customStyleForRenderer() and value().
57145         (WebCore::DateTimeNumericFieldElement::value): Use formatValue().
57146         * html/shadow/DateTimeNumericFieldElement.h:
57147         (DateTimeNumericFieldElement): Declare new functions.
57148
57149 2012-10-05  Kent Tamura  <tkent@chromium.org>
57150
57151         Improve spelling and performance of Localizer.cpp
57152         https://bugs.webkit.org/show_bug.cgi?id=98485
57153
57154         Reviewed by Kentaro Hara.
57155
57156         Some improvements pointed in webkit.org/b/98229#c5.
57157
57158         No new tests because of no behavior change.
57159
57160         * platform/text/Localizer.h:
57161         (Localizer):
57162          - Rename dateTimeFormatWithSecond to dateTimeFormatWithSeconds
57163          - Rename dateTimeFormatWithoutSecond to dateTimeFormatWithoutSeconds
57164          - Add data members: m_dateTimeFormatWithSeconds and m_dateTimeFormatWithoutSeconds.
57165         * platform/text/Localizer.cpp:
57166         (WebCore::Localizer::timeFormat): Check isNull instead of isEmpty
57167         (WebCore::Localizer::shortTimeFormat): Ditto.
57168         (WebCore::Localizer::dateTimeFormatWithSeconds):
57169         - Renamed.
57170         - Cache the concatenation result to a data member.
57171         (WebCore::Localizer::dateTimeFormatWithoutSeconds): Ditto.
57172
57173         * html/DateTimeInputType.cpp:
57174         (WebCore::DateTimeInputType::setupLayoutParameters): Follow the renaming.
57175         * html/DateTimeLocalInputType.cpp:
57176         (WebCore::DateTimeLocalInputType::setupLayoutParameters): Ditto.
57177
57178 2012-10-04  Kenichi Ishibashi  <bashi@chromium.org>
57179
57180         [WebSocket] ExtensionParser should have its own file
57181         https://bugs.webkit.org/show_bug.cgi?id=98475
57182
57183         Reviewed by Yuta Kitamura.
57184
57185         Factor out ExtensionParser from WebSocketExtensionDispatcher and rename it as WebSocketExtensionParser.
57186         WebSocketExtensionParser has its own file.
57187
57188         No changes in behavior. Added a test case for parsing Sec-WebSocket-Extensions field as a chromium unit test.
57189
57190         * CMakeLists.txt: Added WebSocketExtensionParser.
57191         * GNUmakefile.list.am: Ditto.
57192         * Modules/websockets/WebSocketExtensionDispatcher.cpp:
57193         (WebCore::WebSocketExtensionDispatcher::processHeaderValue):
57194         Use WebSocketExtensionParser::parseExtension() to parser extension header value.
57195         * Modules/websockets/WebSocketExtensionParser.cpp: Added.
57196         (WebCore):
57197         (WebCore::WebSocketExtensionParser::finished): Moved from ExtensionParser.
57198         (WebCore::WebSocketExtensionParser::parsedSuccessfully): Ditto.
57199         (WebCore::isSeparator): Ditto.
57200         (WebCore::WebSocketExtensionParser::skipSpaces): Ditto.
57201         (WebCore::WebSocketExtensionParser::consumeToken): Ditto.
57202         (WebCore::WebSocketExtensionParser::consumeQuotedString): Ditto.
57203         (WebCore::WebSocketExtensionParser::consumeQuotedStringOrToken): Ditto.
57204         (WebCore::WebSocketExtensionParser::consumeCharacter): Ditto.
57205         (WebCore::WebSocketExtensionParser::parseExtension): Moved from WebSocketExtensionDispatcher.
57206         * Modules/websockets/WebSocketExtensionParser.h: Added.
57207         (WebCore):
57208         (WebSocketExtensionParser):
57209         (WebCore::WebSocketExtensionParser::WebSocketExtensionParser):
57210         (WebCore::WebSocketExtensionParser::currentToken):
57211         * Target.pri: Added WebSocketExtensionParser.
57212         * WebCore.gypi: Ditto.
57213         * WebCore.vcproj/WebCore.vcproj: Ditto.
57214         * WebCore.xcodeproj/project.pbxproj: Ditto.
57215
57216 2012-10-04  Kunihiko Sakamoto  <ksakamoto@chromium.org>
57217
57218         <input> size attribute should throw INDEX_SIZE_ERR when set to 0
57219         https://bugs.webkit.org/show_bug.cgi?id=61675
57220
57221         Reviewed by Kent Tamura.
57222
57223         According to the spec, the size IDL attribute of input elements is limited
57224         to only non-negative numbers greater than zero. It should throw INDEX_SIZE_ERR
57225         exception when set to 0. New behavior matches both Firefox and IE.
57226         Spec: http://www.w3.org/TR/html5/common-input-element-attributes.html#the-size-attribute
57227
57228         Test: fast/dom/HTMLInputElement/input-size-attribute.html
57229
57230         * html/HTMLInputElement.cpp:
57231         (WebCore::HTMLInputElement::setSize):
57232         * html/HTMLInputElement.h:
57233         (HTMLInputElement):
57234         * html/HTMLInputElement.idl:
57235
57236 2012-10-04  Kent Tamura  <tkent@chromium.org>
57237
57238         Fix font for date/time input types.
57239         https://bugs.webkit.org/show_bug.cgi?id=98478
57240
57241         Reviewed by Kentaro Hara.
57242
57243         input[type=date] should use monospace font if
57244         ENABLE_INPUT_MULTIPLE_FIELDS_UI && ENABLE_INPUT_TYPE_DATE.
57245
57246         For other date/time types, they should use monospace font only
57247         if their types are enabled. input[type="foo"] matches input
57248         element with type="foo" even if the foo type is not supported.
57249
57250         The input[type=date] change is covered by
57251         fast/forms/date/calendar-picker-appearance.html,
57252         platform/chromium/fast/forms/date/date-suggestion-picker-appearance*.html
57253
57254         * css/html.css:
57255         (input[type="date"]):
57256         (input[type="datetime"]):
57257         (input[type="datetime-local"]):
57258         (input[type="month"]):
57259         (input[type="time"]):
57260
57261 2012-10-04  Hajime Morrita  <morrita@google.com>
57262
57263         [Refactoring] Some classes in StyleResolver.cpp/h could have its own file.
57264         https://bugs.webkit.org/show_bug.cgi?id=98469
57265
57266         Reviewed by Dimitri Glazkov.
57267
57268         This change extracts RuleData, RuleSet, RuleFeature and Featurs class
57269         to its own file: RuleSet.h/cpp and RuleFeature.h/cpp
57270
57271         RuleFeature class is moved fro StyleResolver inner class to plain WebCore class.
57272         Feaures class is renamed to RuleFeatureSet to avoid possible name conflict.
57273
57274         No new tests. Just splitting file and doing simple rename.
57275
57276         * CMakeLists.txt:
57277         * GNUmakefile.list.am:
57278         * Target.pri:
57279         * WebCore.gypi:
57280         * WebCore.xcodeproj/project.pbxproj:
57281         * css/CSSAllInOne.cpp:
57282         * css/RuleFeature.cpp: Added.
57283         (WebCore):
57284         (WebCore::RuleFeatureSet::add):
57285         (WebCore::RuleFeatureSet::clear):
57286         (WebCore::RuleFeatureSet::reportMemoryUsage):
57287         * css/RuleFeature.h: Added.
57288         (WebCore):
57289         (RuleFeature):
57290         (WebCore::RuleFeature::RuleFeature):
57291         (RuleFeatureSet):
57292         (WebCore::RuleFeatureSet::RuleFeatureSet):
57293         * css/RuleSet.cpp: Added.
57294         (WebCore):
57295         (WebCore::isSelectorMatchingHTMLBasedOnRuleHash):
57296         (WebCore::selectorListContainsUncommonAttributeSelector):
57297         (WebCore::isCommonAttributeSelectorAttribute):
57298         (WebCore::containsUncommonAttributeSelector):
57299         (WebCore::RuleData::RuleData):
57300         (WebCore::RuleData::reportMemoryUsage):
57301         (WebCore::reportAtomRuleMap):
57302         (WebCore::RuleSet::reportMemoryUsage):
57303         (WebCore::RuleSet::RuleSetSelectorPair::reportMemoryUsage):
57304         (WebCore::collectFeaturesFromSelector):
57305         (WebCore::collectFeaturesFromRuleData):
57306         (WebCore::RuleSet::addToRuleSet):
57307         (WebCore::RuleSet::addRule):
57308         (WebCore::RuleSet::addPageRule):
57309         (WebCore::RuleSet::addRegionRule):
57310         (WebCore::RuleSet::addRulesFromSheet):
57311         (WebCore::RuleSet::addStyleRule):
57312         (WebCore::shrinkMapVectorsToFit):
57313         (WebCore::RuleSet::shrinkToFit):
57314         * css/RuleSet.h: Added.
57315         (WebCore):
57316         (RuleData):
57317         (WebCore::RuleData::position):
57318         (WebCore::RuleData::rule):
57319         (WebCore::RuleData::selector):
57320         (WebCore::RuleData::selectorIndex):
57321         (WebCore::RuleData::hasFastCheckableSelector):
57322         (WebCore::RuleData::hasMultipartSelector):
57323         (WebCore::RuleData::hasRightmostSelectorMatchingHTMLBasedOnRuleHash):
57324         (WebCore::RuleData::containsUncommonAttributeSelector):
57325         (WebCore::RuleData::specificity):
57326         (WebCore::RuleData::linkMatchType):
57327         (WebCore::RuleData::hasDocumentSecurityOrigin):
57328         (WebCore::RuleData::isInRegionRule):
57329         (WebCore::RuleData::descendantSelectorIdentifierHashes):
57330         (SameSizeAsRuleData):
57331         (RuleSet):
57332         (WebCore::RuleSet::create):
57333         (WebCore::RuleSet::disableAutoShrinkToFit):
57334         (WebCore::RuleSet::features):
57335         (WebCore::RuleSet::idRules):
57336         (WebCore::RuleSet::classRules):
57337         (WebCore::RuleSet::tagRules):
57338         (WebCore::RuleSet::shadowPseudoElementRules):
57339         (WebCore::RuleSet::linkPseudoClassRules):
57340         (WebCore::RuleSet::focusPseudoClassRules):
57341         (WebCore::RuleSet::universalRules):
57342         (WebCore::RuleSet::pageRules):
57343         (WebCore::RuleSet::RuleSetSelectorPair::RuleSetSelectorPair):
57344         (RuleSetSelectorPair):
57345         (WebCore::RuleSet::RuleSet):
57346         * css/StyleResolver.cpp:
57347         (WebCore):
57348         (WebCore::makeRuleSet):
57349         (WebCore::StyleResolver::collectMatchingRulesForList):
57350         * css/StyleResolver.h:
57351         (StyleResolver):
57352
57353 2012-10-04  Adam Barth  <abarth@webkit.org>
57354
57355         FeatureObserver should distinguish between legacy HTML and text notifications
57356         https://bugs.webkit.org/show_bug.cgi?id=98441
57357
57358         Reviewed by Tony Chang.
57359
57360         We might be able to drop support for legacy HTML notifications before
57361         we can drop support for legacy text notifications. We should measure
57362         and find out.
57363
57364         * Modules/notifications/NotificationCenter.idl:
57365         * page/FeatureObserver.h:
57366
57367 2012-10-04  Pravin D  <pravind.2k4@gmail.com>
57368
57369         Removing the unused member variable m_wasMalformed from HTMLFormElement class and its related code frgment.
57370         https://bugs.webkit.org/show_bug.cgi?id=98444
57371
57372         Reviewed by Eric Seidel.
57373
57374         The member variable m_wasMalformed of HTMLFormElement class was used to determine if the <form> tag was malformed or not.
57375         This information was used elsewhere to decide if bottom margins have to be included for such a <form>.
57376         However currently this member variable is not being set by any code following code refactoring in HTML parser class.
57377
57378         Code cleanup patch. No new tests required.
57379
57380         * html/HTMLFormElement.cpp:
57381         (WebCore::HTMLFormElement::HTMLFormElement):
57382           Removed m_wasMalformed initialization.
57383
57384         * html/HTMLFormElement.h:
57385         (HTMLFormElement):
57386          Removed m_wasMalformed variable.
57387          Removed m_wasMalformed variable's setter and getter functions.
57388
57389         * rendering/RenderBlock.cpp:
57390         (WebCore::RenderBlock::layoutBlock):
57391          Removed code fragment using/dependent on m_wasMalformed.
57392
57393 2012-10-04  Rik Cabanier  <cabanier@adobe.com>
57394
57395         Turn Compositing on by default in WebKit build
57396         https://bugs.webkit.org/show_bug.cgi?id=98315
57397
57398         Reviewed by Simon Fraser.
57399
57400         enable -webkit-blend-mode on trunk.
57401
57402         No new tests. Existing blending test were updated.
57403
57404         * Configurations/FeatureDefines.xcconfig:
57405         * css/CSSPropertyNames.in:
57406         * css/CSSValueKeywords.in:
57407
57408 2012-10-04  Hayato Ito  <hayato@chromium.org>
57409
57410         [Refactoring] Introduce a traversal strategy in SelectorChecker
57411         https://bugs.webkit.org/show_bug.cgi?id=97298
57412
57413         Reviewed by Antti Koivisto.
57414
57415         We extract DOM traversal code from SelectorChecker so that we can use another traversal strategy.
57416         Another traversal strategy will be introduced in Bug 96990.
57417
57418         Since this code path is very hot, we were very careful not to regress performance.
57419         We will use template specialization to change the traversal implementation.
57420
57421         We confirmed that this patch does not regress SelectorCheckerPerformance. I have checked the performance of
57422         the added test in my Linux Box using run-perf-tests.
57423
57424         The performance of the added test before using this patch was:
57425
57426           RESULT CSS: PseudoClassSelectors= 3399.68308031 runs/s
57427           median= 3404.48685564 runs/s, stdev= 37.3480114449 runs/s, min= 3272.64871114 runs/s, max= 3438.72385184 runs/s
57428
57429         When we used this patch, the performance was:
57430
57431           RESULT CSS: PseudoClassSelectors= 3367.74473886 runs/s
57432           median= 3367.12072755 runs/s, stdev= 14.1464547639 runs/s, min= 3348.55881171 runs/s, max= 3395.98212857 runs/s
57433
57434         Test: PerformanceTests/CSS/PseudoClass-Selectors.html
57435
57436         * css/SelectorChecker.cpp:
57437         (WebCore):
57438         (WebCore::SelectorChecker::checkSelector): Make this a template method to accept another Context type.
57439         Another Context type will be introduced in coming patch.
57440         (WebCore::SelectorChecker::checkOneSelector):
57441         (WebCore::SelectorChecker::DOMTraversalStrategy::isFirstChild):
57442         (WebCore::SelectorChecker::DOMTraversalStrategy::isLastChild):
57443         (WebCore::SelectorChecker::DOMTraversalStrategy::isFirstOfType):
57444         (WebCore::SelectorChecker::DOMTraversalStrategy::isLastOfType):
57445         (WebCore::SelectorChecker::DOMTraversalStrategy::countElementsBefore):
57446         (WebCore::SelectorChecker::DOMTraversalStrategy::countElementsOfTypeBefore):
57447         (WebCore::SelectorChecker::DOMTraversalStrategy::countElementsAfter):
57448         (WebCore::SelectorChecker::DOMTraversalStrategy::countElementsOfTypeAfter):
57449         * css/SelectorChecker.h:
57450         (WebCore::SelectorChecker::SelectorCheckingContext::SelectorCheckingContext):
57451         (SelectorCheckingContext):
57452         (SelectorChecker):
57453         (DOMTraversalStrategy): Extracted the DOM traversal code from SelectorChecker. Another traversal code
57454         will be introduced the coming patch.
57455
57456 2012-10-04  Eric Seidel  <eric@webkit.org>
57457
57458         SVGAttributeHashTranslator does not need to copy QualifiedName in the common case
57459         https://bugs.webkit.org/show_bug.cgi?id=98473
57460
57461         Reviewed by Adam Barth.
57462
57463         I tested this using instruments on a test case which modified SVG attributes in a loop.
57464         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,
57465         since we're no longer creating a QualifiedName (and thus adding it to the hash) on each QualifiedName-based lookup in SVG.
57466
57467         * svg/SVGElement.h:
57468         (WebCore::SVGAttributeHashTranslator::hash):
57469         (WebCore::SVGAttributeHashTranslator::equal):
57470
57471 2012-10-04  Julien Chaffraix  <jchaffraix@webkit.org>
57472
57473         Split the intrinsic padding update code out of RenderTableSection::layoutRows
57474         https://bugs.webkit.org/show_bug.cgi?id=98454
57475
57476         Reviewed by Eric Seidel.
57477
57478         RenderTableSection::layoutRows is very long and it's difficult to see what's
57479         going on. This change moves the intrinsic padding update code into RenderTableCell
57480         for clarity. While at it, cleaned up a bit the code (renaming variables, functions).
57481
57482         Change covered by existing table tests.
57483
57484         * rendering/RenderTableCell.cpp:
57485         (WebCore::RenderTableCell::computeIntrinsicPadding):
57486         Added this new function that does the update. Removed the 'default' case, replaced by
57487         the explicit label BASELINE_MIDDLE.
57488
57489         * rendering/RenderTableCell.h:
57490         (WebCore::RenderTableCell::setIntrinsicPaddingBefore):
57491         (WebCore::RenderTableCell::setIntrinsicPaddingAfter):
57492         (WebCore::RenderTableCell::setIntrinsicPadding):
57493         Moved those setters to the private section as we want other classes
57494         to use computeIntrinsicPadding.
57495
57496         * rendering/RenderTableSection.cpp:
57497         (WebCore::RenderTableSection::layoutRows):
57498         Replaced the code with a call to RenderTableCell::computeIntrinsicPadding.
57499         Also moved 2 variables in the loop per our coding style.
57500
57501         * rendering/RenderTableSection.h:
57502         (WebCore::RenderTableSection::rowBaseline):
57503         Renamed to match our coding style.
57504
57505 2012-10-04  Nate Chapin  <japhet@chromium.org>
57506
57507         Crash in EventHandler::mouseMoved().
57508         https://bugs.webkit.org/show_bug.cgi?id=98460
57509
57510         Reviewed by Abhishek Arya.
57511
57512         No new tests, this fixes fast/events/mouse-moved-remove-frame-crash.html.
57513
57514         * page/EventHandler.cpp:
57515         (WebCore::EventHandler::mouseMoved):
57516
57517 2012-10-04  Adam Barth  <abarth@webkit.org>
57518
57519         [V8] NotificationCenter leaks because it uses buggy custom bindings
57520         https://bugs.webkit.org/show_bug.cgi?id=98445
57521
57522         Reviewed by Tony Chang.
57523
57524         There's no reason to use custom bindings here. All they do is cause leaks..
57525
57526         * Modules/notifications/NotificationCenter.idl:
57527         * bindings/v8/custom/V8NotificationCenterCustom.cpp:
57528
57529 2012-10-04  Tab Atkins  <jackalmage@gmail.com>
57530
57531         Selector specificity categories "overflow" into higher categories
57532         https://bugs.webkit.org/show_bug.cgi?id=98295
57533
57534         Reviewed by Eric Seidel.
57535
57536         This patch adds per-component overflow guards for CSS selector specificity.
57537         Previously, we didn't guard against overflow. 
57538         Since we stored each component as a byte mapped into a single unsigned int for the whole specificity,
57539         256 of a particular simple selector was equivalent to 1 of the next-higher-group selector.
57540         This violated the Selectors specification,
57541         which requires the components to be compared lexicographically.
57542
57543         Tests: /fast/selectors/specificity-overflow.html
57544
57545         * css/CSSSelector.cpp:
57546         (WebCore::CSSSelector::specificity):
57547
57548 2012-10-04  Enrica Casucci  <enrica@apple.com>
57549
57550         Font::glyphDataAndPageForCharacter doesn't account for text orientation when using systemFallback on a cold cache.
57551         https://bugs.webkit.org/show_bug.cgi?id=98452.
57552
57553         Reviewed by Dan Bernstein.
57554
57555         The text orientation was considered only when there is a cache hit.
57556         This change moves the logic to handle text orientation to a separate
57557         inline function that is called also when the glyph is added to the cache.
57558
57559         Test: fast/text/vertical-rl-rtl-linebreak.html
57560
57561         * platform/graphics/FontFastPath.cpp:
57562         (WebCore::applyTextOrientationForCharacter): Added.
57563         (WebCore::Font::glyphDataAndPageForCharacter): Modified to use the new function in
57564         both cases of cold and warm cache.
57565
57566 2012-10-04  Adam Klein  <adamk@chromium.org>
57567
57568         MutationRecord attributeName should be null for non attribute changes
57569         https://bugs.webkit.org/show_bug.cgi?id=98438
57570
57571         Reviewed by Ojan Vafai.
57572
57573         Test: fast/mutation/mutation-record-nullity.html
57574
57575         * dom/MutationRecord.idl:
57576
57577 2012-10-04  Simon Fraser  <simon.fraser@apple.com>
57578
57579         Final part of "sync" to "flush" renaming
57580         https://bugs.webkit.org/show_bug.cgi?id=98430
57581
57582         Reviewed by Tim Horton.
57583
57584         Change method names on GraphicsLayer and GraphicsLayerClient that
57585         refer to "sync" to use the term "flush" instead, to be consistent
57586         with the rest of the code.
57587
57588         * platform/graphics/GraphicsLayer.h:
57589         (WebCore::GraphicsLayer::flushCompositingState):
57590         (WebCore::GraphicsLayer::flushCompositingStateForThisLayerOnly):
57591         * platform/graphics/GraphicsLayerClient.h:
57592         (GraphicsLayerClient):
57593         * platform/graphics/blackberry/GraphicsLayerBlackBerry.h:
57594         (WebCore::GraphicsLayerBlackBerry::notifyFlushRequired):
57595         * platform/graphics/blackberry/LayerWebKitThread.cpp:
57596         (WebCore::LayerWebKitThread::setNeedsCommit):
57597         * platform/graphics/ca/GraphicsLayerCA.cpp:
57598         (WebCore::GraphicsLayerCA::flushCompositingState):
57599         (WebCore::GraphicsLayerCA::flushCompositingStateForThisLayerOnly):
57600         (WebCore::GraphicsLayerCA::platformCALayerDidCreateTiles):
57601         (WebCore::GraphicsLayerCA::positionForCloneRootLayer):
57602         (WebCore::GraphicsLayerCA::noteLayerPropertyChanged):
57603         * platform/graphics/ca/GraphicsLayerCA.h:
57604         (GraphicsLayerCA):
57605         * platform/graphics/texmap/GraphicsLayerTextureMapper.cpp:
57606         (WebCore::GraphicsLayerTextureMapper::notifyChange):
57607         (WebCore::GraphicsLayerTextureMapper::flushCompositingStateForThisLayerOnly):
57608         (WebCore::GraphicsLayerTextureMapper::flushCompositingState):
57609         * platform/graphics/texmap/GraphicsLayerTextureMapper.h:
57610         (GraphicsLayerTextureMapper):
57611         * platform/graphics/texmap/TextureMapperLayer.cpp:
57612         (WebCore::TextureMapperLayer::flushCompositingState):
57613         (WebCore::TextureMapperLayer::flushCompositingStateSelf):
57614         * platform/graphics/texmap/TextureMapperLayer.h:
57615         (TextureMapperLayer):
57616         * rendering/RenderLayerBacking.cpp:
57617         (WebCore::RenderLayerBacking::notifyFlushRequired):
57618         * rendering/RenderLayerBacking.h:
57619         (RenderLayerBacking):
57620         * rendering/RenderLayerCompositor.cpp:
57621         (WebCore::RenderLayerCompositor::flushPendingLayerChanges):
57622         * rendering/RenderLayerCompositor.h:
57623         (WebCore::RenderLayerCompositor::notifyFlushRequired):
57624
57625 2012-10-04  Tab Atkins  <tabatkins@google.com>
57626
57627         1ex should equal .5em when the font has no x-height metric
57628         https://bugs.webkit.org/show_bug.cgi?id=80360
57629
57630         Reviewed by Eric Seidel.
57631
57632         Updated FontMetrics and CSSPrimitiveValue to have/use an explicit "hasXHeight" flag to determine how to size an 'ex' unit.
57633
57634         Updated a few of the platform font files to set the flag properly.
57635
57636         Patch cleanup by David Barr <davidbarr@chromium.org>.
57637
57638         Test: fast/css/ex-unit-with-no-x-height.html
57639
57640         * css/CSSPrimitiveValue.cpp:
57641         (WebCore::CSSPrimitiveValue::computeLengthDouble):
57642         * platform/graphics/FontMetrics.h:
57643         (WebCore::FontMetrics::FontMetrics):
57644         (WebCore::FontMetrics::setXHeight):
57645         (FontMetrics):
57646         (WebCore::FontMetrics::hasXHeight):
57647         (WebCore::FontMetrics::setHasXHeight):
57648         (WebCore::FontMetrics::reset):
57649         * platform/graphics/skia/SimpleFontDataSkia.cpp:
57650         (WebCore::SimpleFontData::platformInit):
57651
57652 2012-10-04  Ryosuke Niwa  <rniwa@webkit.org>
57653
57654         Build fix after r130411. Add the right offset.
57655         Also use RefPtr instead of a raw pointer for next and previous pointers.
57656
57657         * editing/ReplaceSelectionCommand.cpp:
57658         (WebCore::ReplaceSelectionCommand::mergeTextNodesAroundPosition):
57659
57660 2012-10-04  Alec Flett  <alecflett@chromium.org>
57661
57662         IndexedDB: promote objectstore/index backend ids to the frontend
57663         https://bugs.webkit.org/show_bug.cgi?id=97834
57664
57665         Reviewed by Tony Chang.
57666
57667         Expose int64-based database/objectStore/index ids to the renderer,
57668         step 1 of 2. Support both styles of createObjectStore and
57669         createIndex: those that take an explicit id, and those that take
57670         -1, meaning to autogenerate an id on the backend. In part 2, after
57671         the chromium side lands, support for the autogenerated ids will be
57672         removed. (See https://bugs.webkit.org/show_bug.cgi?id=98085)
57673
57674         This is a part of larger refactoring work to ultimately make the interface
57675         between the frontend and the backend simpler.
57676
57677         No new tests, extensive ASSERTs and existing tests cover correctness.
57678
57679         * Modules/indexeddb/IDBBackingStore.h:
57680         (IDBBackingStore):
57681         * Modules/indexeddb/IDBDatabase.cpp:
57682         (WebCore::IDBDatabase::createObjectStore):
57683         * Modules/indexeddb/IDBDatabaseBackendImpl.cpp:
57684         (WebCore::IDBDatabaseBackendImpl::IDBDatabaseBackendImpl):
57685         (WebCore::IDBDatabaseBackendImpl::openInternal):
57686         (WebCore::IDBDatabaseBackendImpl::metadata):
57687         (WebCore::IDBDatabaseBackendImpl::createObjectStore):
57688         (WebCore):
57689         (WebCore::IDBDatabaseBackendImpl::createObjectStoreInternal):
57690         (WebCore::IDBDatabaseBackendImpl::loadObjectStores):
57691         * Modules/indexeddb/IDBDatabaseBackendImpl.h:
57692         (IDBDatabaseBackendImpl):
57693         * Modules/indexeddb/IDBDatabaseBackendInterface.h:
57694         (IDBDatabaseBackendInterface):
57695         * Modules/indexeddb/IDBIndexBackendImpl.cpp:
57696         (WebCore::IDBIndexBackendImpl::metadata):
57697         * Modules/indexeddb/IDBIndexBackendImpl.h:
57698         (WebCore::IDBIndexBackendImpl::create):
57699         (IDBIndexBackendImpl):
57700         * Modules/indexeddb/IDBLevelDBBackingStore.cpp:
57701         (WebCore):
57702         (WebCore::getMaxObjectStoreId):
57703         (WebCore::IDBLevelDBBackingStore::getIDBDatabaseMetaData):
57704         (WebCore::IDBLevelDBBackingStore::deleteDatabase):
57705         (WebCore::IDBLevelDBBackingStore::getObjectStores):
57706         (WebCore::setMaxObjectStoreId):
57707         (WebCore::IDBLevelDBBackingStore::createObjectStore):
57708         (WebCore::getMaxIndexId):
57709         (WebCore::setMaxIndexId):
57710         (WebCore::IDBLevelDBBackingStore::createIndex):
57711         * Modules/indexeddb/IDBLevelDBBackingStore.h:
57712         (IDBLevelDBBackingStore):
57713         * Modules/indexeddb/IDBMetadata.h:
57714         (WebCore::IDBDatabaseMetadata::IDBDatabaseMetadata):
57715         (IDBDatabaseMetadata):
57716         (WebCore::IDBObjectStoreMetadata::IDBObjectStoreMetadata):
57717         (IDBObjectStoreMetadata):
57718         (WebCore::IDBIndexMetadata::IDBIndexMetadata):
57719         (IDBIndexMetadata):
57720         * Modules/indexeddb/IDBObjectStore.cpp:
57721         (WebCore::IDBObjectStore::createIndex):
57722         * Modules/indexeddb/IDBObjectStoreBackendImpl.cpp:
57723         (WebCore::IDBObjectStoreBackendImpl::IDBObjectStoreBackendImpl):
57724         (WebCore::IDBObjectStoreBackendImpl::metadata):
57725         (WebCore::IDBObjectStoreBackendImpl::createIndex):
57726         (WebCore):
57727         (WebCore::IDBObjectStoreBackendImpl::createIndexInternal):
57728         * Modules/indexeddb/IDBObjectStoreBackendImpl.h:
57729         (WebCore::IDBObjectStoreBackendImpl::create):
57730         (IDBObjectStoreBackendImpl):
57731         * Modules/indexeddb/IDBObjectStoreBackendInterface.h:
57732 2012-10-04  Pravin D  <pravind.2k4@gmail.com>
57733
57734         Layout broken after cloning and re-inserting a table with a misplaced <form>
57735         https://bugs.webkit.org/show_bug.cgi?id=86746
57736
57737         Reviewed by Julien Chaffraix.
57738
57739         There is a concept of demotion for a <form> contained in a table. A <form> is demoted if its immediate parent
57740         is either a <table>, table sections (tbody, etc) or a table row (tr). A renderer for such a <form> is created only
57741         if its display is one of the table display types (TABLE, INLINE_TABLE, TABLE_FOOTER_GROUP, etc).
57742         However when a <table> containing a demoted <form> is cloned, the <form> does not retain its demotion state and 
57743         results in the table getting improperly rendered.
57744
57745         Test: fast/table/form-with-non-table-display-inside-table-elements.html
57746
57747         * html/HTMLFormElement.cpp:
57748         (WebCore::HTMLFormElement::copyNonAttributePropertiesFromElement):
57749           Extended the virtual function for HTMLFormElement class specific implementation.
57750           The function is used to copy any necessary state information(member variables) associated with
57751           the <form> element being cloned to the current node.
57752           For HTMLFormElement node the member variable can be classified into five groups based on the 
57753           information they hold:
57754             1) Variables containing information regarding <form> subtree and elements associated with it.
57755                These get updated as and when an element is added to the <form> subtree.
57756             2) Variables containing <form> submit state information.
57757             3) Flag to hold information if reset() has been called.
57758             4) Flag(m_wasDemoted) that indicates whether the form is demoted or not, based on which it needs to
57759                be handled differently during creation of its renderer.
57760                This information is currently being updated only during the HTML tree construction phase.
57761             5) Flag(m_wasMalformed) to hold information if the <form> is malformed or not.
57762
57763           Variables of group (1) will be updated as and when elements are added to the <form> subtree. Whereas,
57764           (2) and (3) hold instance specific information, thus copying them is not required. Also (5) is currently not
57765           being used(not set by any code).
57766
57767           On the other hand, (4) is required to be copied during cloning as this information cannot be accessed
57768           during the cloning process.
57769
57770         (WebCore):
57771         * html/HTMLFormElement.h:
57772           Added copyNonAttributePropertiesFromElement() declaration.
57773
57774 2012-10-04  Dean Jackson  <dino@apple.com>
57775
57776         Attribute and Uniform variable names need translation in shader
57777         https://bugs.webkit.org/show_bug.cgi?id=70989
57778
57779         Reviewed by Tim Horton (and Darin Adler).
57780
57781         WebGL specifies some maximum lengths for variable names (attributes
57782         and uniforms). Also, some GL drivers have issues with long names. For
57783         that reason, ANGLE has an option to rewrite the shader, translating
57784         long names into short names. Turning this on helps shaders compile,
57785         but we need to keep a mapping between the original names and the
57786         translated names, so that we bind to the right location from user code
57787         (which won't ever see the translated source).
57788
57789         This provided an opportunity to clean up some other bits of code:
57790         CSS Filters examined the uniform names after a compilation; It can
57791         now use the variable name map. I also added a typedef for the
57792         HashMaps that keep the shader, the source code and the variable name
57793         mappings.
57794
57795         I also opened a followup bug to make sure these tables are deleted
57796         when the associated shaders (or linked programs) go away:
57797         https://bugs.webkit.org/show_bug.cgi?id=98204
57798
57799         Covered by existing tests (with some enhancements):
57800         - fast/canvas/webgl/attrib-location-length-limits.html:
57801         - fast/canvas/webgl/uniform-location-length-limits.html:
57802
57803         * platform/graphics/ANGLEWebKitBridge.cpp:
57804         (WebCore::getSymbolInfo): Extracts all the information on symbols (either attributes
57805         or uniforms) from the newly compiled shader.
57806         (WebCore):
57807         (WebCore::ANGLEWebKitBridge::compileShaderSource): New method name.
57808         * platform/graphics/ANGLEWebKitBridge.h:
57809         (WebCore::getUniforms): Deleted this method.
57810         (WebCore::ANGLEShaderSymbol::isSampler): Make sure the symbol is a uniform.
57811         (ANGLEWebKitBridge):
57812         * platform/graphics/GraphicsContext3D.h:
57813         (WebCore::GraphicsContext3D::SymbolInfo::SymbolInfo): A new object that
57814         holds the size, type and translated name of a symbol from a WebGL shader.
57815         (ShaderSourceEntry):
57816         (WebCore::GraphicsContext3D::ShaderSourceEntry::ShaderSourceEntry): Now keeps track
57817         of the translated source code and symbol mappings.
57818         (WebCore::GraphicsContext3D::ShaderSourceEntry::symbolMap): Helper function to
57819         get the member variable corresponding to the type of symbol you're asking fo.
57820         * platform/graphics/filters/CustomFilterValidatedProgram.cpp:
57821         (WebCore::CustomFilterValidatedProgram::CustomFilterValidatedProgram): Calls new method
57822         name which also produces a set of symbols to examine.
57823         * platform/graphics/opengl/Extensions3DOpenGLCommon.cpp:
57824         (WebCore::Extensions3DOpenGLCommon::getTranslatedShaderSourceANGLE): We now can pass
57825         in some extra compile options to do translation of long symbol names. Also fill the
57826         map of translated symbol names.
57827         * platform/graphics/opengl/GraphicsContext3DOpenGLCommon.cpp:
57828         (WebCore::GraphicsContext3D::compileShader):
57829         (WebCore::GraphicsContext3D::mappedSymbolName): Returns the mapped name for
57830         a shader symbol if it was translated during compilation.
57831         (WebCore):
57832         (WebCore::GraphicsContext3D::getAttribLocation):
57833         (WebCore::GraphicsContext3D::getShaderiv):
57834         (WebCore::GraphicsContext3D::getShaderInfoLog):
57835         (WebCore::GraphicsContext3D::getShaderSource):
57836         (WebCore::GraphicsContext3D::getUniformLocation):
57837
57838 2012-10-04  Alpha Lam  <hclam@chromium.org>
57839
57840         [skia] Drawing a subrect of bitmap image is misaligned
57841         https://bugs.webkit.org/show_bug.cgi?id=95121
57842
57843         Reviewed by Stephen White.
57844
57845         When drawing a subrect of BitmapImage and the subrect is not aligned
57846         to integer boundaries, skia expands it to the closest enclosing integer
57847         rectangle. This creates prominent rendering artifacts when an image
57848         is used as background and its sub-regions are invalidated frequently.
57849
57850         This patch fixes the problem by doing alignment to integer boundaries
57851         and clipping for both cases of RESAMPLE_AWESOME and RESAMPLE_LINEAR.
57852
57853         A clip rect is applied to the canvas using original destination
57854         rectangle, while source and destination rectangles are enlarged
57855         appropriately to ensure source rectangle is aligned.
57856
57857         This patch also fixes a closely related problem. In RESAMPLE_AWESOME
57858         resampling mode the previous algorithm applies different approximated
57859         scale factor for each scaled image fragment. This caused the stitched
57860         image to look ugly.
57861
57862         Scale factor is approximated using entire image size, this gives a
57863         more accurate approximation because of greater denominator and a
57864         consistent scale factor across all fragments.
57865
57866         Changes in Skia enable caching of the scaled image and return the
57867         scaled fragment because scale factor is now consistent for all
57868         fragments.
57869
57870         Tests: fast/images/paint-subrect-grid.html
57871                fast/images/paint-subrect.html
57872                fast/images/repaint-subrect-grid.html
57873
57874         * platform/graphics/skia/ImageSkia.cpp:
57875         (WebCore::computeResamplingMode): Use float for width and height.
57876         (WebCore):
57877         (WebCore::areBoundariesIntegerAligned):
57878         (WebCore::computeBitmapDrawRects):
57879         (WebCore::extractScaledImageFragment):
57880         (WebCore::drawResampledBitmap): New algorithm for drawing scaled image fragment.
57881         (WebCore::paintSkBitmap):
57882         (WebCore::Image::drawPattern):
57883         (WebCore::BitmapImage::draw): Use SkRect instead of SkIRect.
57884         (WebCore::BitmapImageSingleFrameSkia::draw):
57885         * platform/graphics/skia/NativeImageSkia.cpp:
57886         Changing the algorithm for extracting a scaled image fragment.
57887         A fragment is now identified by (scaledImageSize, scaledImageSubset).
57888         (WebCore::NativeImageSkia::hasResizedBitmap):
57889         (WebCore::NativeImageSkia::resizedBitmap):
57890         (WebCore::NativeImageSkia::shouldCacheResampling):
57891         (WebCore::NativeImageSkia::CachedImageInfo::CachedImageInfo):
57892         (WebCore):
57893         (WebCore::NativeImageSkia::CachedImageInfo::isEqual):
57894         (WebCore::NativeImageSkia::CachedImageInfo::set):
57895         (WebCore::NativeImageSkia::CachedImageInfo::rectInSubset):
57896         * platform/graphics/skia/NativeImageSkia.h:
57897         (NativeImageSkia):
57898         (CachedImageInfo):
57899
57900 2012-10-03  Ryosuke Niwa  <rniwa@webkit.org>
57901
57902         ReplaceSelectionCommand should merge text nodes
57903         https://bugs.webkit.org/show_bug.cgi?id=98188
57904
57905         Reviewed by Levi Weintraub.
57906
57907         Added mergeTextNodesAroundPosition to ReplaceSelectionCommand to merge text nodes after the replace in
57908         completeHTMLReplacement. Also fixed a bunch of bugs in other classes and functions to make this work.
57909
57910         This behavior change is tested by existing tests.
57911
57912         * editing/InsertParagraphSeparatorCommand.cpp:
57913         (WebCore::InsertParagraphSeparatorCommand::doApply): When splitting a text node, place the insertionPosition
57914         at the end of the first half. Leaving it at the beginning of the second half confuses the rest of the code in
57915         the function. However, the logic to handle the "insignificant" white spaces needs the position at the start of
57916         the second half. So keep this position.
57917         * editing/ReplaceSelectionCommand.cpp:
57918         (WebCore::ReplaceSelectionCommand::doApply): Update visibleStart after inserting a paragraph separator so that
57919         the logic to cleanup the nested div checks the right condition (right beneath it starting with a long comment).
57920         (WebCore::ReplaceSelectionCommand::addSpacesForSmartReplace): Insert a space for smart paste at the appropriate
57921         offset instead of at the end of endNode. Also update the layout before obtaining startDownstream as we may have 
57922         modified the DOM by inserting a space for endNode. Finally, a non-breaking space should be treated like a space
57923         isCharacterSmartReplaceExempt for the purpose of smart replace. e.g. if we're inserting "world" after
57924         "hello&nbsp;", we shouldn't be inserting another space between "hello" and "world".
57925         (WebCore::ReplaceSelectionCommand::completeHTMLReplacement):
57926         (WebCore::ReplaceSelectionCommand::mergeTextNodesAroundPosition): Added. Merge text nodes around position, and
57927         adjust position and positionOnlyToBeUpdated accordingly. We need to call updatePositionForNodeRemoval when
57928         positions were before or after the text node.
57929         * editing/ReplaceSelectionCommand.h:
57930         (ReplaceSelectionCommand):
57931
57932 2012-10-04  Tony Chang  <tony@chromium.org>
57933
57934         Fix <input type="month"> tests
57935         https://bugs.webkit.org/show_bug.cgi?id=98426
57936
57937         Reviewed by Ojan Vafai.
57938
57939         The month picker uses flexbox and assumes that it will be aligned with
57940         the last line box. This looks visually correct. I will follow up on
57941         www-style to see what the expected behavior is.
57942
57943         Tests: fast/forms/month-multiple-fields tests cover this.
57944
57945         * rendering/RenderFlexibleBox.cpp:
57946         * rendering/RenderFlexibleBox.h:
57947
57948 2012-10-04  Sheriff Bot  <webkit.review.bot@gmail.com>
57949
57950         Unreviewed, rolling out r130396.
57951         http://trac.webkit.org/changeset/130396
57952         https://bugs.webkit.org/show_bug.cgi?id=98421
57953
57954         This patch is causing crashes on 4 tests on Lion Debug and
57955         Mountain Lion Debug (Requested by jernoble on #webkit).
57956
57957         * rendering/RenderLayerCompositor.cpp:
57958         (WebCore::RenderLayerCompositor::calculateCompositedBounds):
57959         (WebCore::RenderLayerCompositor::requiresCompositingForPosition):
57960         * rendering/RenderLayerCompositor.h:
57961         * testing/InternalSettings.cpp:
57962         (WebCore::InternalSettings::Backup::Backup):
57963         (WebCore::InternalSettings::Backup::restoreTo):
57964         * testing/InternalSettings.h:
57965         (Backup):
57966
57967 2012-10-04  Tony Chang  <tony@chromium.org>
57968
57969         inline-flex baseline is sometimes wrong
57970         https://bugs.webkit.org/show_bug.cgi?id=96188
57971
57972         Reviewed by Ojan Vafai.
57973
57974         Implement the necessary methods to get the proper baseline alignment of flexbox.
57975         We were falling back to the inline-block behavior.
57976
57977         Test: css3/flexbox/flexbox-baseline.html
57978
57979         * rendering/RenderFlexibleBox.cpp:
57980         (WebCore::RenderFlexibleBox::RenderFlexibleBox):
57981         (WebCore::RenderFlexibleBox::baselinePosition): Used to get the baseline of the box.
57982         Mostly just the first line box baseline.
57983         (WebCore):
57984         (WebCore::RenderFlexibleBox::lastLineBoxBaseline): This is used for getting the baseline when in an inline-block.
57985         We actually don't want the last line, but the flexbox's baseline.
57986         (WebCore::RenderFlexibleBox::firstLineBoxBaseline): Compute the baseline according to the rules in the spec.
57987         (WebCore::RenderFlexibleBox::repositionLogicalHeightDependentFlexItems): Keep track of the number of children on the
57988         first line so we don't have to re-compute this when getting the baseline.
57989         (WebCore::RenderFlexibleBox::crossAxisExtentForChild): Make const.
57990         (WebCore::RenderFlexibleBox::mainAxisExtentForChild): Make const.
57991         (WebCore::RenderFlexibleBox::hasAutoMarginsInCrossAxis): Make const.
57992         * rendering/RenderFlexibleBox.h: Add a size_t to keep track of how many children are in the first line.
57993
57994 2012-10-04  Xianzhu Wang  <wangxianzhu@chromium.org>
57995
57996         [Chromium] Should set unitsPerEm in SimpleFontDataSkia.cpp
57997         https://bugs.webkit.org/show_bug.cgi?id=98100
57998
57999         Reviewed by Stephen White.
58000
58001         At least on chromium-linux and chromium-android, unitsPerEm was not set
58002         according to the information in the font, causing at least problems in
58003         OpenTypeVerticalData when calculating vertical advance.
58004
58005         Test: fast/writing-mode/vertical-font-vmtx-units-per-em.html
58006
58007         * platform/graphics/skia/SimpleFontDataSkia.cpp:
58008         (WebCore::SimpleFontData::platformInit):
58009
58010 2012-10-04  Simon Fraser  <simon.fraser@apple.com>
58011
58012         Standardize on "flush" terminology for compositing layer flushing/syncing
58013         https://bugs.webkit.org/show_bug.cgi?id=98321
58014
58015         Reviewed by Simon Fraser.
58016
58017         Rename compositing-related methods that refer to "syncing" to instead
58018         refer to "flushing".
58019
58020         * WebCore.exp.in:
58021         * loader/EmptyClients.h:
58022         (WebCore::EmptyChromeClient::scheduleCompositingLayerFlush):
58023         * page/ChromeClient.h:
58024         (ChromeClient):
58025         * page/FrameView.cpp:
58026         (WebCore::FrameView::flushCompositingStateForThisFrame):
58027         (WebCore::FrameView::flushCompositingStateIncludingSubframes):
58028         (WebCore::FrameView::paintContents):
58029         * page/FrameView.h:
58030         (FrameView):
58031         * rendering/RenderLayerCompositor.cpp:
58032         (WebCore::RenderLayerCompositor::scheduleLayerFlush):
58033         (WebCore::RenderLayerCompositor::flushPendingLayerChanges):
58034
58035 2012-10-04  Peter Rybin  <peter.rybin@gmail.com>
58036
58037         Web Inspector: expose object internal properties such as PrimitiveValue or BoundThis
58038         https://bugs.webkit.org/show_bug.cgi?id=94397
58039
58040         Reviewed by Yury Semikhatsky.
58041
58042         Internal property access is built from Injected Script to V8 debug API. JSC binding
58043         has a stub imlpementation. Protocol is updated to explicitly reflect internal properties.
58044
58045         Test: inspector-protocol/runtime-getProperties.html
58046
58047         * bindings/js/JSInjectedScriptHostCustom.cpp:
58048         (WebCore::JSInjectedScriptHost::getInternalProperties):
58049         (WebCore):
58050         * bindings/v8/DebuggerScript.js:
58051         * bindings/v8/ScriptDebugServer.cpp:
58052         (WebCore::ScriptDebugServer::getInternalProperties):
58053         (WebCore):
58054         * bindings/v8/ScriptDebugServer.h:
58055         (ScriptDebugServer):
58056         * bindings/v8/custom/V8InjectedScriptHostCustom.cpp:
58057         (WebCore::V8InjectedScriptHost::getInternalPropertiesCallback):
58058         (WebCore):
58059         * inspector/InjectedScript.cpp:
58060         (WebCore::InjectedScript::getInternalProperties):
58061         (WebCore):
58062         * inspector/InjectedScript.h:
58063         (InjectedScript):
58064         * inspector/InjectedScriptHost.idl:
58065         * inspector/InjectedScriptSource.js:
58066         (.):
58067         * inspector/Inspector.json:
58068         * inspector/InspectorRuntimeAgent.cpp:
58069         (WebCore::InspectorRuntimeAgent::getProperties):
58070         * inspector/InspectorRuntimeAgent.h:
58071         (InspectorRuntimeAgent):
58072
58073 2012-10-04  Sami Kyostila  <skyostil@chromium.org>
58074
58075         Fixed position visibility check does not consider descendants
58076         https://bugs.webkit.org/show_bug.cgi?id=98144
58077
58078         Reviewed by Simon Fraser.
58079
58080         The check against creating composition layers for invisible fixed positioned
58081         elements is too aggressive in that it does not consider descendants of the
58082         fixed positioned element that may be visible even though the element itself is
58083         out of view.
58084
58085         Fix the problem by calculating the true composited bounds of the fixed
58086         element instead of just using the size of the fixed layer. Because calculating
58087         the true bounds may be expensive, it is only done if the fixed layer itself is
58088         invisible.
58089
58090         Test: compositing/layer-creation/fixed-position-absolute-descendant.html
58091
58092         * rendering/RenderLayerCompositor.cpp:
58093         (WebCore::RenderLayerCompositor::calculateCompositedBounds):
58094         (WebCore::RenderLayerCompositor::requiresCompositingForPosition):
58095         * rendering/RenderLayerCompositor.h:
58096
58097 2012-10-04  Vsevolod Vlasov  <vsevik@chromium.org>
58098
58099         Web Inspector: When uiSourceCode content has diverged from VM script, call frames should be shown in temporary script based uiSourceCodes.
58100         https://bugs.webkit.org/show_bug.cgi?id=98385
58101
58102         Reviewed by Pavel Feldman.
58103
58104         When javaScriptSource diverges from VM, ResourceScriptMapping now switches debugging
58105         to temporary VM scripts based uiSourceCode with isDivergedReplacement property set.
58106         Added hasDivergedFromVM and isDivergingFromVM properties to JavaScriptSource.
58107         JavaScriptSourceFrame and ScriptSnippetsModel are updated to process breakpoint changes correctly.
58108
58109         * inspector/front-end/BreakpointManager.js:
58110         (WebInspector.BreakpointManager.prototype.restoreBreakpoints):
58111         (WebInspector.BreakpointManager.prototype._uiSourceCodeRemoved):
58112         * inspector/front-end/JavaScriptSource.js:
58113         (WebInspector.JavaScriptSource.prototype.workingCopyCommitted):
58114         (WebInspector.JavaScriptSource.prototype.workingCopyChanged):
58115         (WebInspector.JavaScriptSource.prototype.fireHasDivergedFromVMChanged):
58116         * inspector/front-end/JavaScriptSourceFrame.js:
58117         (WebInspector.JavaScriptSourceFrame.prototype.commitEditing):
58118         (WebInspector.JavaScriptSourceFrame.prototype._hasDivergedFromVM):
58119         (WebInspector.JavaScriptSourceFrame.prototype.onTextChanged):
58120         (WebInspector.JavaScriptSourceFrame.prototype._getBreakpointDecorations):
58121         (WebInspector.JavaScriptSourceFrame.prototype._muteBreakpointsWhileEditing):
58122         (WebInspector.JavaScriptSourceFrame.prototype._didEditContent):
58123         (WebInspector.JavaScriptSourceFrame.prototype._restoreBreakpointsAfterEditing):
58124         (WebInspector.JavaScriptSourceFrame.prototype._addBreakpointDecoration):
58125         * inspector/front-end/ResourceScriptMapping.js:
58126         (WebInspector.ResourceScriptMapping.prototype.rawLocationToUILocation):
58127         (WebInspector.ResourceScriptMapping.prototype._hasDivergedFromVMChanged):
58128         (WebInspector.ResourceScriptMapping.prototype._bindUISourceCodeToScripts):
58129         (WebInspector.ResourceScriptMapping.prototype._getOrCreateTemporaryUISourceCode):
58130         * inspector/front-end/ScriptSnippetModel.js:
58131         (WebInspector.ScriptSnippetModel.prototype._createUISourceCodeForScript):
58132         (WebInspector.ScriptSnippetModel.prototype._restoreBreakpoints):
58133         * inspector/front-end/ScriptsPanel.js:
58134         (WebInspector.ScriptsPanel.prototype._revealExecutionLine):
58135         * inspector/front-end/UISourceCode.js:
58136         (WebInspector.UISourceCode.prototype.formatted):
58137
58138 2012-10-04  Vsevolod Vlasov  <vsevik@chromium.org>
58139
58140         Web Inspector: Scripts panel should not automatically switch to snippet evaluation when previously evaluated snippet is edited.
58141         https://bugs.webkit.org/show_bug.cgi?id=98402
58142
58143         Reviewed by Pavel Feldman.
58144
58145         Scripts panel does not automatically switch to snippet evaluation when
58146         one edits previously evaluated snippet.
58147
58148         * inspector/front-end/ScriptSnippetModel.js:
58149         (WebInspector.ScriptSnippetModel.prototype._createUISourceCodeForScript):
58150         * inspector/front-end/ScriptsPanel.js:
58151         (WebInspector.ScriptsPanel.prototype._revealExecutionLine):
58152
58153 2012-10-04  Balazs Kelemen  <kbalazs@webkit.org>
58154
58155         Don't allow to disable compositing in forced compositing mode
58156         https://bugs.webkit.org/show_bug.cgi?id=98048
58157
58158         Reviewed by Jocelyn Turcotte.
58159
58160         Make forced compositing mode imply accelerated compositing. This will
58161         avoid unexpected situations for platforms that don't want to support
58162         the non-accelerated rendering path.
58163
58164         Covered by existing tests.
58165
58166         * WebCore.exp.in: Export Settings::setAcceleratedCompositingEnabled
58167         because it has been deinlined.
58168         * page/Settings.cpp:
58169         (WebCore::Settings::setAcceleratedCompositingEnabled):
58170         (WebCore::Settings::setForceCompositingMode):
58171         (WebCore):
58172         * page/Settings.h:
58173         (Settings):
58174         (WebCore::Settings::forceCompositingMode): Make it const as a side fix.
58175
58176 2012-10-04  Harald Alvestrand  <hta@google.com>
58177
58178         Change RTCPeerConnection GetStats to use Date timestamp format
58179         https://bugs.webkit.org/show_bug.cgi?id=98263
58180
58181         Reviewed by Yury Semikhatsky.
58182
58183         Tested by extension to RTCPeerConnection-stats test.
58184
58185         * Modules/mediastream/RTCStatsElement.cpp:
58186         (WebCore::RTCStatsElement::create):
58187         (WebCore::RTCStatsElement::RTCStatsElement):
58188         * Modules/mediastream/RTCStatsElement.h: long -> double
58189         (RTCStatsElement):
58190         (WebCore::RTCStatsElement::timestamp):
58191         * Modules/mediastream/RTCStatsElement.idl: long -> Date
58192         * Modules/mediastream/RTCStatsReport.cpp:
58193         (WebCore::RTCStatsReport::addElement):
58194         * Modules/mediastream/RTCStatsReport.h:
58195         (RTCStatsReport):
58196         * Modules/mediastream/RTCStatsResponse.cpp:
58197         (WebCore::RTCStatsResponse::addElement):
58198         * Modules/mediastream/RTCStatsResponse.h:
58199         (RTCStatsResponse):
58200         * platform/chromium/support/WebRTCStatsResponse.cpp:
58201         (WebKit::WebRTCStatsResponse::addElement):
58202         * platform/mediastream/RTCStatsResponseBase.h:
58203         (RTCStatsResponseBase):
58204
58205 2012-10-04  Sheriff Bot  <webkit.review.bot@gmail.com>
58206
58207         Unreviewed, rolling out r130377.
58208         http://trac.webkit.org/changeset/130377
58209         https://bugs.webkit.org/show_bug.cgi?id=98392
58210
58211         Chromium Win compilation is broken (Requested by yurys on
58212         #webkit).
58213
58214         * Modules/mediastream/RTCStatsElement.cpp:
58215         (WebCore::RTCStatsElement::create):
58216         (WebCore::RTCStatsElement::RTCStatsElement):
58217         * Modules/mediastream/RTCStatsElement.h:
58218         (RTCStatsElement):
58219         (WebCore::RTCStatsElement::timestamp):
58220         * Modules/mediastream/RTCStatsElement.idl:
58221         * Modules/mediastream/RTCStatsReport.cpp:
58222         (WebCore::RTCStatsReport::addElement):
58223         * Modules/mediastream/RTCStatsReport.h:
58224         (RTCStatsReport):
58225         * Modules/mediastream/RTCStatsResponse.cpp:
58226         (WebCore::RTCStatsResponse::addElement):
58227         * Modules/mediastream/RTCStatsResponse.h:
58228         (RTCStatsResponse):
58229         * platform/chromium/support/WebRTCStatsResponse.cpp:
58230         (WebKit::WebRTCStatsResponse::addElement):
58231         * platform/mediastream/RTCStatsResponseBase.h:
58232         (RTCStatsResponseBase):
58233
58234 2012-10-04  Harald Alvestrand  <hta@google.com>
58235
58236         Change RTCPeerConnection GetStats to use Date timestamp format
58237         https://bugs.webkit.org/show_bug.cgi?id=98263
58238
58239         Reviewed by Adam Barth.
58240
58241         Tested by extension to RTCPeerConnection-stats test.
58242
58243         * Modules/mediastream/RTCStatsElement.cpp:
58244         (WebCore::RTCStatsElement::create):
58245         (WebCore::RTCStatsElement::RTCStatsElement):
58246         * Modules/mediastream/RTCStatsElement.h: long -> double
58247         (RTCStatsElement):
58248         (WebCore::RTCStatsElement::timestamp):
58249         * Modules/mediastream/RTCStatsElement.idl: long -> Date
58250         * Modules/mediastream/RTCStatsReport.cpp:
58251         (WebCore::RTCStatsReport::addElement):
58252         * Modules/mediastream/RTCStatsReport.h:
58253         (RTCStatsReport):
58254         * Modules/mediastream/RTCStatsResponse.cpp:
58255         (WebCore::RTCStatsResponse::addElement):
58256         * Modules/mediastream/RTCStatsResponse.h:
58257         (RTCStatsResponse):
58258         * platform/chromium/support/WebRTCStatsResponse.cpp:
58259         (WebKit::WebRTCStatsResponse::addElement):
58260         * platform/mediastream/RTCStatsResponseBase.h:
58261         (RTCStatsResponseBase):
58262
58263 2012-10-05  Kent Tamura  <tkent@chromium.org>
58264
58265         [Chromium] Enable the multiple fields UI for input[type=date]
58266         https://bugs.webkit.org/show_bug.cgi?id=98351
58267
58268         Reviewed by Hajime Morita.
58269
58270         Touch files related to ENABLE_INPUT_TYPE_DATE_LEGACY_UI to avoid build
58271         issues.
58272
58273         No new tests. Many tests will be landed shortly.
58274
58275         * html/DateInputType.cpp:
58276         * html/DateInputType.h:
58277
58278 2012-10-04  Kent Tamura  <tkent@chromium.org>
58279
58280         Add code for input[type=date] with the multiple fields UI
58281         https://bugs.webkit.org/show_bug.cgi?id=98340
58282
58283         Reviewed by Hajime Morita.
58284
58285         The new code is available if !ENABLE(INPUT_TYPE_DATE_LEGACY_UI). At this
58286         moment, there are no platforms enabling the new code. We're going to
58287         enable it soon on desktop Chromium, and add tests. Then we're going to
58288         remove the code for ENABLE(INPUT_TYPE_DATE_LEGACY_UI).
58289
58290         ENABLE(INPUT_TYPE_DATE_LEGACY_UI) means the current UI; input[type=date]
58291         is represetnted as a kind of text field, and it has code to invoke a
58292         calendar picker.
58293         ENABLE(CALENDAR_PICKER) was used wrongly. It meant calendar picker
58294         support + text field UI of input[type=date]. Now it means only calendar
58295         picker support.
58296
58297         * html/DateInputType.h:
58298         (WebCore): If ENABLE(INPUT_MULTIPLE_FIELDS_UI) &&
58299         !ENABLE(INPUT_TYPE_DATE_LEGACY_UI), change the base class to the class
58300         for multiple fields UI.
58301         (DateInputType): Wrap the code for text fields behavior and calendar
58302         picker UI with ENABLE(INPUT_TYPE_DATE_LEGACY_UI). Add functions for
58303         ENABLE(INPUT_MULTIPLE_FIELDS_UI)
58304         * html/DateInputType.cpp:
58305         (WebCore::DateInputType::DateInputType):
58306         Change the flag name; CALENDAR_PICKER -> INPUT_TYPE_DATE_LEGACY_UI
58307         (WebCore): ditto.
58308         (WebCore::DateInputType::formatDateTimeFieldsState):
58309         A callback for multiple fields UI. This constructs a string value from
58310         each of values of multiple fields.
58311         Note that we don't need to do +1 to month().
58312         (WebCore::DateInputType::setupLayoutParameters):
58313         A callback for multiple fields UI. Passes information to build UI.
58314
58315         * html/BaseMultipleFieldsDateAndTimeInputType.h:
58316         (BaseMultipleFieldsDateAndTimeInputType):
58317         Add m_pickerIndicatorIsAlwaysVisible member, wrap some members with flags.
58318         * html/BaseMultipleFieldsDateAndTimeInputType.cpp:
58319         (WebCore::BaseMultipleFieldsDateAndTimeInputType::BaseMultipleFieldsDateAndTimeInputType):
58320         Initialize m_pickerIndicatorIsAlwaysVisible.
58321         (WebCore::BaseMultipleFieldsDateAndTimeInputType::createShadowSubtree):
58322         If a type supports calendar picker, we should always show the picker
58323         indicator. We introduce m_pickerIndicatorIsAlwaysVisible flag, and ask
58324         RenderTheme for support status of each of types.
58325         Add a local variable 'document' to avoid multiple element()->document().
58326         (WebCore::BaseMultipleFieldsDateAndTimeInputType::updatePickerIndicatorVisibility):
58327         - If m_pickerIndicatorIsAlwaysVisible, don't hide the picker indicator element.
58328         - Wrap the code with appropriate flags.
58329
58330         * rendering/RenderTheme.h:
58331         (WebCore::RenderTheme::supportsCalendarPicker): Added.
58332         * rendering/RenderThemeChromiumMac.h: Override supportsCalendarPicker.
58333         * rendering/RenderThemeChromiumMac.mm:
58334         (WebCore::RenderThemeChromiumMac::supportsCalendarPicker):
58335         Added. Delegate to RenderThemeChromiumCommon.
58336         * rendering/RenderThemeChromiumSkia.h: Override supportsCalendarPicker.
58337         * rendering/RenderThemeChromiumSkia.cpp:
58338         (WebCore::RenderThemeChromiumSkia::supportsCalendarPicker):
58339         Added. Delegate to RenderThemeChromiumCommon.
58340         * rendering/RenderThemeChromiumCommon.h:
58341         (RenderThemeChromiumCommon): Declare supportsCalendarPicker.
58342         * rendering/RenderThemeChromiumCommon.cpp:
58343         (WebCore::RenderThemeChromiumCommon::supportsCalendarPicker):
58344         Returns true if the type is "date."
58345
58346         * html/DateTimeFieldsState.h:
58347         (DateTimeFieldsState): Add a comment for the m_month field.
58348
58349 2012-10-04  Kent Tamura  <tkent@chromium.org>
58350
58351         DateTimeYearFieldElement should respect min/max values specified by page authors
58352         https://bugs.webkit.org/show_bug.cgi?id=98227
58353
58354         Reviewed by Hajime Morita.
58355
58356         Before this patch, we always set 1 to the minimum limit and 275760 to
58357         the maximum limit for a year field, and a user can specify any year
58358         regardless of min/max attributes. Such wide range is unnecessary for
58359         normal applications and we should provide a way to limit the range.
58360
58361         Test: fast/forms/month-multiple-fields/month-multiple-fields-keyboard-events.html
58362
58363         * html/shadow/DateTimeFieldElements.h:
58364         To add four constructor arguments, introduce Parameters struct.
58365         Actually, we add the followings;
58366          - minimum year in UI
58367          - maximum year in UI
58368          - min attribute is specified
58369          - max attribute is specified
58370         (Parameters):
58371         (WebCore::DateTimeYearFieldElement::Parameters::Parameters):
58372         (DateTimeYearFieldElement):
58373         * html/shadow/DateTimeFieldElements.cpp:
58374         (WebCore::DateTimeYearFieldElement::DateTimeYearFieldElement): ditto.
58375         (WebCore::DateTimeYearFieldElement::create): ditto.
58376         (WebCore::DateTimeYearFieldElement::clampValueForHardLimits):
58377         Override DateTimeNumericFieldElement::clampValueForHardLimits.
58378         By this, we allow to set out-of-range year values.
58379         (WebCore::currentFullYear): A helper to get the current year.
58380         (WebCore::DateTimeYearFieldElement::defaultValueForStepDown):
58381         If the field has no value and step down operation occurs,
58382          - the field has the current year if the max attribute is not specified.
58383          - the field has the maximum value otherwise.
58384         (WebCore::DateTimeYearFieldElement::defaultValueForStepUp): Similar change.
58385
58386         * html/shadow/DateTimeNumericFieldElement.h:
58387         (DateTimeNumericFieldElement): Declare clampValueForHardLimits.
58388         * html/shadow/DateTimeNumericFieldElement.cpp:
58389         (WebCore::DateTimeNumericFieldElement::clampValueForHardLimits):
58390         (WebCore::DateTimeNumericFieldElement::setValueAsInteger):
58391         Call clampValueForHardLimits instead of clampValue in order to
58392         distinguish limits for UI and limits for internal value update.
58393
58394         * html/shadow/DateTimeEditElement.h:
58395         (LayoutParameters): Add minimumYear and maximumYear members.
58396         (WebCore::DateTimeEditElement::LayoutParameters::LayoutParameters):
58397         Initialize minimumYear and maximumYear.
58398         (WebCore::DateTimeEditElement::LayoutParameters::undefinedYear):
58399         Represents 'undefined' value for minimumYear and maximumYear.
58400         * html/shadow/DateTimeEditElement.cpp:
58401         (WebCore::DateTimeEditBuilder::visitField):
58402         Preparas DateTimeYearField::Parameters and pass it to the DateTimeYearField factory.
58403
58404         * html/BaseMultipleFieldsDateAndTimeInputType.cpp:
58405         (WebCore::BaseMultipleFieldsDateAndTimeInputType::fullYear):
58406         A helper to get a year value from an attribute value string.
58407         * html/BaseMultipleFieldsDateAndTimeInputType.h:
58408         (BaseMultipleFieldsDateAndTimeInputType): Add fullYear().
58409
58410         * html/DateTimeInputType.cpp:
58411         (WebCore::DateTimeInputType::setupLayoutParameters):
58412         Set LayoutParameters::minimumYear and maximumYear.
58413         * html/DateTimeLocalInputType.cpp:
58414         (WebCore::DateTimeLocalInputType::setupLayoutParameters): ditto.
58415         * html/MonthInputType.cpp:
58416         (WebCore::MonthInputType::setupLayoutParameters): ditto.
58417         * html/WeekInputType.cpp:
58418         (WebCore::WeekInputType::setupLayoutParameters): ditto.
58419
58420 2012-10-03  Adam Barth  <abarth@webkit.org>
58421
58422         Unreviewed. Fix parse error in vcproj file.
58423
58424         * WebCore.vcproj/WebCore.vcproj:
58425
58426 2012-10-03  Keishi Hattori  <keishi@webkit.org>
58427
58428         Implement localizeValue for TimeInputType
58429         https://bugs.webkit.org/show_bug.cgi?id=98237
58430
58431         Reviewed by Kent Tamura.
58432
58433         We want to localize time values for the suggestion picker.
58434         DateTimeStringBuilder parses a format and creates a formatted string.
58435
58436         Added chromium unit test LocaleMacTest.formatTime
58437
58438         * html/BaseMultipleFieldsDateAndTimeInputType.cpp:
58439         (WebCore::BaseMultipleFieldsDateAndTimeInputType::shouldHaveSecondField): Moved from LayoutParameters because we want to use it inside localizeValue.
58440         (WebCore):
58441         * html/BaseMultipleFieldsDateAndTimeInputType.h:
58442         (BaseMultipleFieldsDateAndTimeInputType):
58443         * html/DateTimeInputType.cpp:
58444         (WebCore::DateTimeInputType::setupLayoutParameters):
58445         * html/DateTimeLocalInputType.cpp:
58446         (WebCore::DateTimeLocalInputType::setupLayoutParameters):
58447         * html/TimeInputType.cpp:
58448         (WebCore::TimeInputType::localizeValue):
58449         (WebCore):
58450         (WebCore::TimeInputType::setupLayoutParameters):
58451         * html/TimeInputType.h:
58452         (TimeInputType):
58453         * html/shadow/DateTimeEditElement.cpp:
58454         (WebCore):
58455         * html/shadow/DateTimeEditElement.h:
58456         (WebCore::DateTimeEditElement::LayoutParameters::LayoutParameters):
58457         * platform/text/LocaleICU.cpp:
58458         (WebCore::LocaleICU::formatDateTime): Calls Localizer::formatDateTime if the date component is not a date.
58459         * platform/text/LocaleICU.h:
58460         (LocaleICU):
58461         * platform/text/LocaleWin.cpp:
58462         (WebCore::LocaleWin::formatDateTime): Calls Localizer::formatDateTime if the date component is not a date.
58463         * platform/text/LocaleWin.h:
58464         (LocaleWin):
58465         * platform/text/LocaleNone.cpp:
58466         (LocaleNone):
58467         (WebCore::LocaleNone::formatDateTime):
58468         * platform/text/Localizer.cpp:
58469         (DateTimeStringBuilder):
58470         (WebCore):
58471         (WebCore::DateTimeStringBuilder::DateTimeStringBuilder): Takes a
58472         Localizer pointer. This is used inside the Localizer so the Localizer
58473         will out live the DateTimeStringBuilder.
58474         (WebCore::DateTimeStringBuilder::build): Builds a localized string for the given format.
58475         (WebCore::DateTimeStringBuilder::zeroPadString):
58476         (WebCore::DateTimeStringBuilder::appendNumber): Appends a number with left zero padding to match width.
58477         (WebCore::DateTimeStringBuilder::visitField):
58478         (WebCore::DateTimeStringBuilder::visitLiteral):
58479         (WebCore::DateTimeStringBuilder::toString): Returns the localized string.
58480         (WebCore::Localizer::formatDateTime):
58481         * platform/text/Localizer.h:
58482         * platform/text/mac/LocaleMac.h:
58483         (LocaleMac):
58484         * platform/text/mac/LocaleMac.mm:
58485         (WebCore::LocaleMac::formatDateTime): Calls Localizer::formatDateTime if the date component is not a date.
58486
58487 2012-10-03  Douglas Stockwell  <dstockwell@chromium.org>
58488
58489         Chromium needs support for border radius clipping
58490         https://bugs.webkit.org/show_bug.cgi?id=69866
58491
58492         Reviewed by Stephen White.
58493
58494         Changes to make this suitably efficient have already landed upstream in skia:
58495         http://code.google.com/p/skia/source/detail?r=2924
58496
58497         Covered by existing tests.
58498
58499         * rendering/RenderLayer.cpp:
58500
58501 2012-10-03  Benjamin Poulain  <bpoulain@apple.com>
58502
58503         Simplify attribute access in Element::computeInheritedLanguage
58504         https://bugs.webkit.org/show_bug.cgi?id=98327
58505
58506         Reviewed by Andreas Kling.
58507
58508         * dom/Element.cpp:
58509         (WebCore::Element::computeInheritedLanguage):
58510         By using Element::fastGetAttribute(), we check for the existence of attributeData twice
58511         and do a bunch of useless operation on AtomicString.
58512
58513         By using ElementAttributeData directly, we can cut it to the two important branch.
58514
58515 2012-10-03  Kangil Han  <kangil.han@samsung.com>
58516
58517         Fix unused parameter compile warnings.
58518         https://bugs.webkit.org/show_bug.cgi?id=98243
58519
58520         Reviewed by Alexey Proskuryakov.
58521
58522         Fixed unused parameter compile warning by removing parameter names and adding UNUSED_PARAM usage.
58523
58524         * plugins/PluginDebug.cpp:
58525         (WebCore::prettyNameForNPPVariable):
58526         * plugins/npapi.cpp:
58527         (NPN_MemFlush):
58528         (NPN_RequestRead):
58529         (NPN_GetJavaPeer):
58530
58531 2012-10-03  Adam Barth  <abarth@webkit.org>
58532
58533         Measure the usage of WebSQLDatabase
58534         https://bugs.webkit.org/show_bug.cgi?id=98330
58535
58536         Reviewed by Ojan Vafai.
58537
58538         WebKit is the only engine that implements WebSQLDatabase. This patch
58539         causes us to measure its usage so we can see how quickly web sites move
58540         to IndexedDB.
58541
58542         * Modules/webdatabase/DOMWindowWebDatabase.idl:
58543         * page/FeatureObserver.h:
58544
58545 2012-10-03  Arnaud Renevier  <a.renevier@sisa.samsung.com>
58546
58547         [soup] WebKit crashes when doing a http request
58548         https://bugs.webkit.org/show_bug.cgi?id=98055
58549
58550         Reviewed by Martin Robinson.
58551
58552         On i386, (d->m_firstRequest.timeoutInterval() * 1000) results in 0 if
58553         timeoutInterval() is INT_MAX. So, set default timeout to 0 to avoid
58554         calling soup_add_timeout with a 0 value.
58555
58556         Also, if resource handle is deleted before "request-started" signal is
58557         emitted, soupMessage handle points to a deleted object, and a crash
58558         occurs. So, reset soupMessage handle data in
58559         cleanupSoupRequestOperation so it won't happen anymore.
58560
58561         Lastly, if timeout occurs before request is completed, handle is
58562         deleted, and crash occurs in sendRequestCallback due to an early
58563         destroyed handle. To avoid that, call handle->cancel in
58564         requestTimeoutCallback. There is no need to call
58565         cleanupSoupRequestOperation anymore since handle->cancel will trigger
58566         sendRequestCallback, and as handle is deleted,
58567         cleanupSoupRequestOperation will be called automatically.
58568
58569         No new tests yet, tests will be added with the patch in bug 74802.
58570
58571         * platform/network/ResourceRequestBase.cpp:
58572         (WebCore):
58573         * platform/network/soup/ResourceHandleSoup.cpp:
58574         (WebCore::cleanupSoupRequestOperation):
58575         (WebCore::ResourceHandle::platformSetDefersLoading):
58576         (WebCore::requestTimeoutCallback):
58577
58578 2012-10-03  Adam Barth  <abarth@webkit.org>
58579
58580         Remove support for ENABLE(LEGACY_WEBKIT_BLOB_BUILDER)
58581         https://bugs.webkit.org/show_bug.cgi?id=98301
58582
58583         Reviewed by Eric Seidel.
58584
58585         According to anonymous usage statistics, the APIs guarded by
58586         ENABLE(LEGACY_WEBKIT_BLOB_BUILDER) are used on approximately 0.006% of
58587         web pages. Given that this feature is only enabled in GTK and Chromium,
58588         it seems likely that we should remove it.
58589
58590         * CMakeLists.txt:
58591         * DerivedSources.make:
58592         * DerivedSources.pri:
58593         * GNUmakefile.features.am:
58594         * GNUmakefile.list.am:
58595         * WebCore.gypi:
58596         * WebCore.xcodeproj/project.pbxproj:
58597         * fileapi/WebKitBlobBuilder.idl: Removed.
58598         * page/DOMWindow.idl:
58599
58600 2012-10-03  Beth Dakin  <bdakin@apple.com>
58601
58602         https://bugs.webkit.org/show_bug.cgi?id=98313
58603         ScrollingStateNode should keep a Vector of children instead of child 
58604         pointers
58605
58606         Reviewed by Simon Fraser.
58607
58608         This patch re-names ScrollingStateNode::cloneNode() to 
58609         ScrollingStateNode::cloneAndResetNode(). The new function resets the 
58610         change properties of the current node after cloning it, and it also 
58611         takes care of cloning children, which the old function did not do.
58612
58613         m_firstChild and m_nextSibling are gone. Use the m_children Vector 
58614         instead.
58615         * page/scrolling/ScrollingStateNode.cpp:
58616         (WebCore::ScrollingStateNode::cloneAndResetChildNodes):
58617         (WebCore::ScrollingStateNode::appendChild):
58618         * page/scrolling/ScrollingStateNode.h:
58619         (ScrollingStateNode):
58620         (WebCore::ScrollingStateNode::parent):
58621         (WebCore::ScrollingStateNode::setParent):
58622
58623         Reset the change properties and clone children in cloneAndResetNode()
58624         * page/scrolling/ScrollingStateScrollingNode.cpp:
58625         (WebCore::ScrollingStateScrollingNode::cloneAndResetNode):
58626         * page/scrolling/ScrollingStateScrollingNode.h:
58627
58628         Yay, this function can be vastly simplified now that we don't have 
58629         those messy child and sibling pointers.
58630         * page/scrolling/ScrollingStateTree.cpp:
58631         (WebCore::ScrollingStateTree::commit):
58632
58633 2012-10-03  Ojan Vafai  <ojan@chromium.org>
58634
58635         Replace uses of -webkit-box-sizing with box-sizing
58636         https://bugs.webkit.org/show_bug.cgi?id=98312
58637
58638         Reviewed by Tony Chang.
58639
58640         No need to use the prefixed version when the unprefixed works the same.
58641         No new tests since there's no change in behavior..
58642
58643         * css/html.css:
58644
58645 2012-10-03  Joshua Bell  <jsbell@chromium.org>
58646
58647         IndexedDB: Don't do full commit for empty transactions
58648         https://bugs.webkit.org/show_bug.cgi?id=89239
58649
58650         Reviewed by Tony Chang.
58651
58652         Don't bother creating a leveldb write batch if there's nothing in the transaction
58653         to commit. Note that a read-only transaction may still have index cleanup so may
58654         not be an empty transaction.
58655
58656         This cuts the Lookup2 benchmark in http://reyesr.github.com/html5-storage-benchmark/
58657         from 70s to 2s.
58658
58659         Covered by existing tests, e.g. storage/indexeddb/transaction-basics.html
58660
58661         * platform/leveldb/LevelDBTransaction.cpp:
58662         (WebCore::LevelDBTransaction::commit):
58663
58664 2012-10-03  Adam Klein  <adamk@chromium.org>
58665
58666         Remove bogus FIXME from Document.idl
58667         https://bugs.webkit.org/show_bug.cgi?id=98302
58668
58669         Reviewed by Adam Barth.
58670
58671         The FIXME claimed that document.body throwing an exception was not
58672         specced, but in fact it is:
58673         http://www.whatwg.org/specs/web-apps/current-work/multipage/dom.html#dom-document-body
58674
58675         * dom/Document.idl:
58676
58677 2012-10-03  Joshua Bell  <jsbell@chromium.org>
58678
58679         IndexedDB: Memory leak when deleting object stores with indexes
58680         https://bugs.webkit.org/show_bug.cgi?id=98292
58681
58682         Reviewed by Tony Chang.
58683
58684         Reference cycles between IDBObjectStore and IDBIndex instances are explicitly
58685         broken when the transaction completes (and the spec allows traversal to fail).
58686         Deleted stores need to have the reference cycle broken too.
58687
58688         Caught by running valgrind over: storage/indexeddb/keypath-basics.html
58689
58690         * Modules/indexeddb/IDBTransaction.cpp:
58691         (WebCore::IDBTransaction::objectStoreDeleted): Add store to set.
58692         (WebCore::IDBTransaction::dispatchEvent): Notify stores in set.
58693         * Modules/indexeddb/IDBTransaction.h: Add set of deleted stores.
58694
58695 2012-10-03  Adam Barth  <abarth@webkit.org>
58696
58697         CSSNamespace.h is empty and should be deleted
58698         https://bugs.webkit.org/show_bug.cgi?id=98304
58699
58700         Reviewed by Eric Seidel.
58701
58702         There's no reason to have this file in the repository.
58703
58704         * GNUmakefile.list.am:
58705         * WebCore.gypi:
58706         * WebCore.vcproj/WebCore.vcproj:
58707         * WebCore.xcodeproj/project.pbxproj:
58708         * css/CSSNamespace.h: Removed.
58709
58710 2012-10-03  Arnaud Renevier  <a.renevier@sisa.samsung.com>
58711
58712         Build failure with css filters enabled and accelerated compositing disabled
58713         https://bugs.webkit.org/show_bug.cgi?id=95908
58714
58715         Reviewed by Tony Chang.
58716
58717         Do not try to setBackingNeedsRepaint when building without accelerated
58718         compositing.
58719
58720         Also, allow painting with filter (paintsWithFilters returns true if
58721         renderer has filter) when accelerated compositing is not enabled.
58722
58723         No functional change, so no new tests.
58724
58725         * rendering/RenderLayer.cpp:
58726         (WebCore::RenderLayer::styleChanged):
58727
58728 2012-10-03  Emil A Eklund  <eae@chromium.org>
58729
58730         Round image sizes when zooming
58731         https://bugs.webkit.org/show_bug.cgi?id=98205
58732
58733         Reviewed by Eric Seidel.
58734
58735         We currently floor image sizes when zooming which can result in
58736         images being rendered at one pixel less than the actual size.
58737         This is especially likely to happen for very large images.
58738
58739         Test: fast/sub-pixel/zoomed-image-tiles.html
58740
58741         * loader/cache/CachedImage.cpp:
58742         (WebCore::CachedImage::imageSizeForRenderer):
58743
58744 2012-10-03  Hugo Parente Lima  <hugo.lima@openbossa.org>
58745
58746         [WK2] PageViewportController.cpp is supposed to be a generic WebKit2 file but only works with Qt port.
58747         https://bugs.webkit.org/show_bug.cgi?id=98186
58748
58749         Reviewed by Noam Rosenthal.
58750
58751         Remove the implicit conversion from WebCore::FloatSize to QSize.
58752
58753         * platform/graphics/FloatSize.h:
58754         (FloatSize):
58755
58756 2012-10-03  Levi Weintraub  <leviw@chromium.org>
58757
58758         [Sub-pixel layout] incorrect rendering when painting sub-layers as their own root
58759         https://bugs.webkit.org/show_bug.cgi?id=97484
58760
58761         Reviewed by Eric Seidel.
58762
58763         When in compositing mode, layer painting can be triggered through the backing store. When this
58764         happens, a non-top-level RenderLayer is called to paint as its own root. Normally, we attempt to preserve
58765         the proper sub-pixel accumulation through layers to their children, but since we're not
58766         starting with the top-level layer, we haven't properly accumulated one, and convertToLayerCoords,
58767         another source of correctly getting the sub-pixel offset for a layer, also avoids crawling
58768         past the listed root layer.
58769
58770         When painting a root layer, we're aligned to the surface we're painting to, so we round our
58771         offset to avoid moving objects around.
58772
58773         * rendering/RenderLayer.cpp:
58774         (WebCore::RenderLayer::paintLayerContents):
58775
58776 2012-10-03  Jeff Timanus  <twiz@chromium.org>
58777
58778         [chromium] Expose settings value to conditionally enable pinch-zoom scaling in the Chromium compositor.  The
58779         flag defaults to disabled, so this change should be a no-op for scaling/scrolling behaviour.
58780         https://bugs.webkit.org/show_bug.cgi?id=93292
58781
58782         Reviewed by James Robinson.
58783
58784         Tests:  Existing page-scale layout tests.
58785
58786         * page/Frame.cpp:
58787         (WebCore::Frame::frameScaleFactor):
58788         * page/Settings.cpp:
58789         (WebCore::Settings::Settings):
58790         * page/Settings.h:
58791         (WebCore::Settings::setApplyPageScaleFactorInCompositor):
58792         (WebCore::Settings::applyPageScaleFactorInCompositor):
58793         (Settings):
58794
58795 2012-10-03  Stephen Chenney  <schenney@chromium.org>
58796
58797         Font data is purged while fonts are still using it
58798         https://bugs.webkit.org/show_bug.cgi?id=93640
58799
58800         Reviewed by Eric Seidel.
58801
58802         Move the handling of custom font pruning from Document to FontFallbackList.
58803         The previous inplementation allowed fonts to be removed before all their
58804         clients were done. This change moves handling of custom font purging to the
58805         FontFallbackList class, which is the shared object that is only removed
58806         when all clients of a font are done with it. This fixes a crash in Angry
58807         Birds due to a seamless iframe and some failing tests in fast/frames/seamless.
58808
58809         The specific element that causes problems is:
58810         <iframe id="ingame_frame0" name="ingame_frame0" frameborder="0" seamless="true"
58811           src="http://chrome.angrybirds.com/ingame_graphic.html"
58812           onload="this.style.opacity = 1; parent.adLoaded();" scrolling="no"
58813           style="opacity: 1; -webkit-transition: opacity 1s ease-in-out 0s;
58814           position: absolute; border: 0px; width: 312px; height: 320px; z-index:
58815           300; overflow: hidden; visibility: visible;"></iframe>
58816         The source document uses the same font as the embedding document.
58817
58818         Tests: fast/frames/seamless/seamless-custom-font-pruning-crash.html
58819                fast/frames/seamless/seamless-nested-crash.html
58820
58821         * css/CSSFontFaceSource.cpp:
58822         (WebCore::CSSFontFaceSource::getFontData): Remove code to register the font with the document.
58823         * css/CSSSegmentedFontFace.cpp:
58824         (WebCore::CSSSegmentedFontFace::getFontData): Remove code to register the font with the document.
58825         * dom/Document.cpp:
58826         (WebCore::Document::~Document): Remove code that records and purges custom fonts.
58827         (WebCore):
58828         (WebCore::Document::reportMemoryUsage): Remove reference to non-existent objects.
58829         * dom/Document.h:
58830         (WebCore):
58831         (Document): Remove method declarations for custom font handling.
58832         * platform/graphics/FontFallbackList.h:
58833         (FontFallbackList): Moved some code around and made non-copyable.
58834         (WebCore::FontFallbackList::setGlyphPageZero): Moved.
58835         (WebCore::FontFallbackList::setGlyphPages): Moved.
58836         * platform/graphics/GlyphPageTreeNode.cpp:
58837         (WebCore::GlyphPageTreeNode::pruneFontData): Removed unnecessary null check.
58838         * platform/graphics/SegmentedFontData.cpp:
58839         (WebCore::SegmentedFontData::~SegmentedFontData): Added code to prune the Glyph pages when this is deleted.
58840         * platform/graphics/SimpleFontData.cpp:
58841         (WebCore::SimpleFontData::~SimpleFontData): Added code to prune the Glyph pages when this is deleted.
58842
58843 2012-10-03  Adam Barth  <abarth@webkit.org>
58844
58845         Crash when calling document.open during unload
58846         https://bugs.webkit.org/show_bug.cgi?id=98287
58847
58848         Reviewed by Nate Chapin.
58849
58850         Calling document.open results in us nulling out m_documentLoader. This
58851         code doesn't properly handle that case and crashes.
58852
58853         Test: fast/parser/document-open-in-unload.html
58854
58855         * loader/FrameLoader.cpp:
58856         (WebCore::FrameLoader::commitProvisionalLoad):
58857
58858 2012-10-03  Benjamin Poulain  <bpoulain@apple.com>
58859
58860         Element::computeInheritedLanguage: evaluate the while() condition after fetching the string
58861         https://bugs.webkit.org/show_bug.cgi?id=98220
58862
58863         Reviewed by Andreas Kling.
58864
58865         * dom/Element.cpp:
58866         (WebCore::Element::computeInheritedLanguage):
58867         The condition is never false on the first execution. Move the condition to the
58868         end of the loop for fun and profit.
58869
58870 2012-10-03  Hans Wennborg  <hans@chromium.org>
58871
58872         Speech JavaScript API: Add SpeechRecognition.interimResults attribute
58873         https://bugs.webkit.org/show_bug.cgi?id=98279
58874
58875         Reviewed by Adam Barth.
58876
58877         Add the interimResults attribute and pass it to the embedder. It was
58878         added to the spec draft in
58879         http://dvcs.w3.org/hg/speech-api/rev/d25fea0d029c
58880
58881         Tested in fast/speech/scripted/basics.html
58882
58883         * Modules/speech/SpeechRecognition.cpp:
58884         (WebCore::SpeechRecognition::start):
58885         (WebCore::SpeechRecognition::SpeechRecognition):
58886         * Modules/speech/SpeechRecognition.h:
58887         (WebCore::SpeechRecognition::interimResults):
58888         (WebCore::SpeechRecognition::setInterimResults):
58889         * Modules/speech/SpeechRecognition.idl:
58890         * Modules/speech/SpeechRecognitionClient.h:
58891         (SpeechRecognitionClient):
58892         * Modules/speech/SpeechRecognitionController.h:
58893         (WebCore::SpeechRecognitionController::start):
58894
58895 2012-10-03  Hans Wennborg  <hans@chromium.org>
58896
58897         Speech JavaScript API: Remove resultdeleted event
58898         https://bugs.webkit.org/show_bug.cgi?id=98272
58899
58900         Reviewed by Adam Barth.
58901
58902         Remove the resultdeleted event. This was never used, and was removed
58903         from the spec draft in
58904         http://dvcs.w3.org/hg/speech-api/rev/f9d53ab8b449
58905
58906         The fast/speech/scripted/basics.html test is updated to reflect this.
58907
58908         * Modules/speech/SpeechRecognition.cpp:
58909         * Modules/speech/SpeechRecognition.h:
58910         (SpeechRecognition):
58911         * Modules/speech/SpeechRecognition.idl:
58912         * Modules/speech/SpeechRecognitionEvent.cpp:
58913         * Modules/speech/SpeechRecognitionEvent.h:
58914         (SpeechRecognitionEvent):
58915         * dom/EventNames.h:
58916         (WebCore):
58917
58918 2012-09-16  Mark Hahnenberg  <mhahnenberg@apple.com>
58919
58920         Delayed structure sweep can leak structures without bound
58921         https://bugs.webkit.org/show_bug.cgi?id=96546
58922
58923         Reviewed by Geoffrey Garen.
58924
58925         This patch gets rid of the separate Structure allocator in the MarkedSpace and adds two new destructor-only
58926         allocators. We now have separate allocators for our three types of objects: those objects with no destructors,
58927         those objects with destructors and with immortal structures, and those objects with destructors that don't have 
58928         immortal structures. All of the objects of the third type (destructors without immortal structures) now 
58929         inherit from a new class named JSDestructibleObject (which in turn is a subclass of JSNonFinalObject), which stores 
58930         the ClassInfo for these classes at a fixed offset for safe retrieval during sweeping/destruction.
58931
58932         No new tests.
58933
58934         * ForwardingHeaders/runtime/JSDestructableObject.h: Added.
58935         * bindings/js/JSDOMWrapper.h: Inherits from JSDestructibleObject.
58936         (JSDOMWrapper):
58937         (WebCore::JSDOMWrapper::JSDOMWrapper):
58938         * bindings/scripts/CodeGeneratorJS.pm: Add finalizers to anything that inherits from JSGlobalObject,
58939         e.g. JSDOMWindow and JSWorkerContexts. For those classes we also need to define needsDestruction as true.
58940         (GenerateHeader):
58941         * bridge/objc/objc_runtime.h: Inherit from JSDestructibleObject.
58942         (ObjcFallbackObjectImp):
58943         * bridge/objc/objc_runtime.mm:
58944         (Bindings):
58945         (JSC::Bindings::ObjcFallbackObjectImp::ObjcFallbackObjectImp):
58946         * bridge/runtime_array.cpp: Use a finalizer so that JSArray isn't forced to inherit from JSDestructibleObject.
58947         (JSC):
58948         (JSC::RuntimeArray::destroy):
58949         * bridge/runtime_array.h:
58950         (JSC::RuntimeArray::create):
58951         (JSC):
58952         * bridge/runtime_object.cpp: Inherit from JSDestructibleObject.
58953         (Bindings):
58954         (JSC::Bindings::RuntimeObject::RuntimeObject):
58955         * bridge/runtime_object.h:
58956         (RuntimeObject):
58957
58958 2012-10-02  Anders Carlsson  <andersca@apple.com>
58959
58960         Change most GraphicsLayer::create calls to use the version that takes a GraphicsLayerFactory
58961         https://bugs.webkit.org/show_bug.cgi?id=98217
58962
58963         Reviewed by Andreas Kling.
58964
58965         * WebCore.exp.in:
58966         * rendering/RenderLayerBacking.cpp:
58967         (WebCore::RenderLayerBacking::createGraphicsLayer):
58968         * rendering/RenderLayerCompositor.cpp:
58969         (WebCore::RenderLayerCompositor::updateOverflowControlsLayers):
58970         (WebCore::RenderLayerCompositor::ensureRootLayer):
58971
58972 2012-10-03  Joshua Bell  <jsbell@chromium.org>
58973
58974         IndexedDB: Optimize encodeString/decodeString
58975         https://bugs.webkit.org/show_bug.cgi?id=97794
58976
58977         Reviewed by Tony Chang.
58978
58979         Optimize string encoding/decoding, which showed up as a CPU hot spot during profiling.
58980         The backing store uses big-endian ordering of 16-bit code unit strings, so a memcopy
58981         isn't sufficient, but the code used StringBuilder::append() character-by-character
58982         and custom byte-swapping which was slow.
58983
58984         Ran a test w/ DumpRenderTree (to avoid multiprocess overhead) taking a 10k character string
58985         and putting it 20k times and getting it 20k times. On my test box, mean time before the
58986         patch was 8.2s, mean time after the patch was 4.6s.
58987
58988         Tested by Chromium's webkit_unit_tests --gtest_filter='IDBLevelDBCodingTest.*String*'
58989
58990         * Modules/indexeddb/IDBLevelDBCoding.cpp:
58991         (WebCore::IDBLevelDBCoding::encodeString):
58992         (WebCore::IDBLevelDBCoding::decodeString):
58993
58994 2012-10-03  Keishi Hattori  <keishi@webkit.org>
58995
58996         Implement DataList UI for input type time on chromium
58997         https://bugs.webkit.org/show_bug.cgi?id=98240
58998
58999         Reviewed by Kent Tamura.
59000
59001         This adds datalist UI for input type time. We add the picker indicator to
59002         BaseMultipleFieldsDateAndTimeInputType. We enclose the dateTimeEdit element
59003         and picker indicator inside a new div element so we can position the picker
59004         indicator in the same place as input type=date.
59005
59006         Tests: platform/chromium/fast/forms/time/time-suggestion-picker-appearance-rtl.html
59007                platform/chromium/fast/forms/time/time-suggestion-picker-appearance-with-scroll-bar.html
59008                platform/chromium/fast/forms/time/time-suggestion-picker-appearance.html
59009                platform/chromium/fast/forms/time/time-suggestion-picker-key-operations.html
59010                platform/chromium/fast/forms/time/time-suggestion-picker-mouse-operations.html
59011
59012         * css/html.css:
59013         (input::-webkit-date-and-time-container):
59014         * html/BaseMultipleFieldsDateAndTimeInputType.cpp:
59015         (WebCore::BaseMultipleFieldsDateAndTimeInputType::BaseMultipleFieldsDateAndTimeInputType):
59016         (WebCore::BaseMultipleFieldsDateAndTimeInputType::createShadowSubtree): Creates a picker indicator.
59017         (WebCore::BaseMultipleFieldsDateAndTimeInputType::handleKeydownEvent): Open the picker on Alt+Down.
59018         (WebCore):
59019         (WebCore::BaseMultipleFieldsDateAndTimeInputType::listAttributeTargetChanged): Updates picker visibility.
59020         (WebCore::BaseMultipleFieldsDateAndTimeInputType::updatePickerIndicatorVisibility): In the future, DateInputType can override
59021         this so the picker indicator is always visible.
59022         (WebCore::BaseMultipleFieldsDateAndTimeInputType::hidePickerIndicator):
59023         (WebCore::BaseMultipleFieldsDateAndTimeInputType::showPickerIndicator):
59024         * html/BaseMultipleFieldsDateAndTimeInputType.h:
59025         (WebCore):
59026         (BaseMultipleFieldsDateAndTimeInputType):
59027         * html/shadow/DateTimeFieldElement.cpp:
59028         (WebCore::DateTimeFieldElement::defaultKeyboardEventHandler): Ignore Alt+down because it should trigger the picker to open.
59029         * rendering/RenderThemeChromiumCommon.cpp:
59030         (WebCore::RenderThemeChromiumCommon::supportsDataListUI): Add time to the list.
59031
59032 2012-10-03  Andreas Kling  <kling@webkit.org>
59033
59034         Give CSSValueList backing vector an inline capacity.
59035         <http://webkit.org/b/98266>
59036         <rdar://problem/12421425>
59037
59038         Reviewed by Anders Carlsson.
59039
59040         Set an inline capacity of 4 on the CSSValue vector backing CSSValueList. This avoids an extra heap allocation
59041         in the common case, and reduces total memory use across the board, since the majority of CSSValueLists have
59042         at least 1 item, and the Vector will bump from 0 to 16 capacity on the first append.
59043
59044         394kB progression on Membuster3.
59045
59046         * css/CSSValueList.h:
59047         (CSSValueList):
59048
59049 2012-10-03  Ilya Tikhonovsky  <loislo@chromium.org>
59050
59051         Web Inspector: NMI: instrument NativeImageSkia.
59052         https://bugs.webkit.org/show_bug.cgi?id=96277
59053
59054         Reviewed by Yury Semikhatsky.
59055
59056         * platform/graphics/skia/NativeImageSkia.cpp:
59057         (WebCore::NativeImageSkia::reportMemoryUsage):
59058         (WebCore::reportMemoryUsage):
59059
59060 2012-10-03  Pavel Feldman  <pfeldman@chromium.org>
59061
59062         Web Inspector: remember the last dock option so that user could toggle between dock to bottom and right
59063         https://bugs.webkit.org/show_bug.cgi?id=98255
59064
59065         Reviewed by Vsevolod Vlasov.
59066
59067         - Introduced DockController.js that covers the dock mechanics
59068         - Removed dock orientation from the settings
59069         - Storing the last dock option to present it as default
59070         - Simplified the multi-option status bar button
59071
59072         * WebCore.gypi:
59073         * WebCore.vcproj/WebCore.vcproj:
59074         * inspector/compile-front-end.py:
59075         * inspector/front-end/DockController.js: Added.
59076         (WebInspector.DockController):
59077         (WebInspector.DockController.prototype.get element):
59078         (WebInspector.DockController.prototype.setDocked.set if):
59079         (WebInspector.DockController.prototype.setDocked):
59080         (WebInspector.DockController.prototype.setDockingUnavailable):
59081         (WebInspector.DockController.prototype._updateUI.get states):
59082         (WebInspector.DockController.prototype._updateUI):
59083         (WebInspector.DockController.prototype._decorateButtonForTargetState):
59084         (WebInspector.DockController.prototype._createDockOptions):
59085         (WebInspector.DockController.prototype._toggleDockState):
59086         (WebInspector.DockController.prototype.isCompactMode):
59087         (WebInspector.DockController.prototype.setCompactMode):
59088         * inspector/front-end/InspectorFrontendAPI.js:
59089         (InspectorFrontendAPI.setAttachedWindow):
59090         * inspector/front-end/InspectorFrontendHostStub.js:
59091         (.WebInspector.InspectorFrontendHostStub.prototype.requestAttachWindow):
59092         (.WebInspector.InspectorFrontendHostStub.prototype.requestDetachWindow):
59093         * inspector/front-end/Settings.js:
59094         * inspector/front-end/SettingsScreen.js:
59095         (WebInspector.GenericSettingsTab):
59096         * inspector/front-end/StatusBarButton.js:
59097         (WebInspector.StatusBarButton):
59098         * inspector/front-end/Toolbar.js:
59099         (WebInspector.Toolbar):
59100         (WebInspector.Toolbar.prototype.setCompactMode):
59101         (WebInspector.Toolbar.prototype._toolbarDragStart):
59102         (WebInspector.Toolbar.prototype._toolbarDrag):
59103         * inspector/front-end/WebKit.qrc:
59104         * inspector/front-end/externs.js:
59105         (WebInspector.toggleSearchingForNode):
59106         * inspector/front-end/inspector.css:
59107         (body.undocked.platform-mac-snowleopard #toolbar):
59108         (body.undocked.platform-mac-snowleopard #toolbar-dropdown):
59109         * inspector/front-end/inspector.html:
59110         * inspector/front-end/inspector.js:
59111         (WebInspector._createGlobalStatusBarItems):
59112         (windowLoaded):
59113         (WebInspector.setDockingUnavailable):
59114         * inspector/front-end/inspectorCommon.css:
59115         (body.dock-to-right:not(.undocked)):
59116         (body.dock-to-right.inactive:not(.undocked)):
59117
59118 2012-10-03  Vsevolod Vlasov  <vsevik@chromium.org>
59119
59120         Web Inspector: UISourceCode commitWorkingCopy should not fail when original script had syntax error.
59121         https://bugs.webkit.org/show_bug.cgi?id=97272
59122
59123         Reviewed by Pavel Feldman.
59124
59125         This patch is based on patch by John J. Barton.
59126
59127         * inspector/front-end/JavaScriptSource.js:
59128         (WebInspector.JavaScriptSource.prototype.workingCopyCommitted): added rawLocation null check.
59129
59130 2012-10-03  Alexander Pavlov  <apavlov@chromium.org>
59131
59132         Web Inspector: After "Edit as HTML", any click outside box should stop editing
59133         https://bugs.webkit.org/show_bug.cgi?id=98258
59134
59135         Reviewed by Vsevolod Vlasov.
59136
59137         Make the DOM tree OL span the entire height of its container in the Elements panel to catch mouse events.
59138
59139         * inspector/front-end/elementsPanel.css:
59140         (#elements-content > ol):
59141
59142 2012-10-03  Dongwoo Joshua Im  <dw.im@samsung.com>
59143
59144         [EFL] Skeleton code of File system API.
59145         https://bugs.webkit.org/show_bug.cgi?id=91187
59146
59147         Reviewed by Gyuyoung Kim.
59148
59149         Add skeleton code of File System API on EFL port.
59150         Implementation patches will be created later.
59151
59152         No new tests because this is just skeleton code.
59153
59154         * CMakeLists.txt: Add new files which created by other patches in Modules/filesystem/ directory.
59155         * PlatformEfl.cmake: Add AsyncFileSystemEfl.cpp.
59156         * platform/AsyncFileSystem.cpp:
59157         (WebCore):
59158         * platform/efl/AsyncFileSystemEfl.cpp: Added.
59159         * platform/efl/AsyncFileSystemEfl.h: Added.
59160
59161 2012-10-03  Andreas Kling  <kling@webkit.org>
59162
59163         Shrink ElementRareData by moving bool flags to NodeRareData.
59164         <http://webkit.org/b/98225>
59165
59166         Reviewed by Antti Koivisto.
59167
59168         Move all bool flags from ElementRareData to the bitfield in its base class NodeRareData.
59169         This shrinks ElementRareData by 8 bytes (on 64-bit) and saves a whopping 58kB on Membuster3.
59170         Also removed some double raredata hash lookups.
59171
59172         * dom/Element.cpp:
59173         (WebCore::Element::detach):
59174         (WebCore::Element::recalcStyle):
59175         (WebCore::Element::ensureShadow):
59176         (WebCore::Element::setStyleAffectedByEmpty):
59177         (WebCore::Element::styleAffectedByEmpty):
59178         (WebCore::Element::setIsInCanvasSubtree):
59179         (WebCore::Element::isInCanvasSubtree):
59180         (WebCore::Element::containsFullScreenElement):
59181         (WebCore::Element::setContainsFullScreenElement):
59182         * dom/ElementRareData.h:
59183         (ElementRareData):
59184         (WebCore::ElementRareData::ElementRareData):
59185         * dom/NodeRareData.h:
59186         (WebCore::NodeRareData::styleAffectedByEmpty):
59187         (WebCore::NodeRareData::setStyleAffectedByEmpty):
59188         (WebCore::NodeRareData::isInCanvasSubtree):
59189         (WebCore::NodeRareData::setIsInCanvasSubtree):
59190         (NodeRareData):
59191         (WebCore::NodeRareData::containsFullScreenElement):
59192         (WebCore::NodeRareData::setContainsFullScreenElement):
59193
59194 2012-10-03  Jussi Kukkonen  <jussi.kukkonen@intel.com>
59195
59196         getComputedStyle perspective-origin is based on the wrong bounding box
59197         https://bugs.webkit.org/show_bug.cgi?id=98027
59198
59199         Reviewed by Simon Fraser.
59200
59201         perspective-origin for ComputedStyleDeclaration is currently calculated using the
59202         wrong bounding box (sizingBox() which ends up as the contentbox).
59203
59204         Start using borderbox for ComputedStyleDeclaration perspective-origin, similar to
59205         what transform-origin already does.
59206
59207         Test: fast/css/getComputedStyle/getComputedStyle-origin-percentage.html
59208
59209         * css/CSSComputedStyleDeclaration.cpp:
59210         (WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue):
59211
59212 2012-10-03  Patrick Gansterer  <paroga@webkit.org>
59213
59214         Build fix for WinCE after r130160.
59215
59216         * platform/graphics/FontFastPath.cpp:
59217         (WebCore::Font::glyphDataAndPageForCharacter):
59218
59219 2012-10-03  Tommy Widenflycht  <tommyw@google.com>
59220
59221         MediaStream API: RTCPeerConnection should send down its handler via the FrameLoaderClient directly after creation.
59222         https://bugs.webkit.org/show_bug.cgi?id=98149
59223
59224         Reviewed by Adam Barth.
59225
59226         The chromium implementation needs to know which Frame created a PeerConnection so
59227         that the right housekeeping can take place correctly.
59228
59229         Not testable in DRT, but have verified the change manually and with our pyautotests.
59230
59231         * Modules/mediastream/RTCPeerConnection.cpp:
59232         (WebCore::RTCPeerConnection::RTCPeerConnection):
59233         * loader/FrameLoaderClient.h:
59234         (WebCore):
59235         (FrameLoaderClient):
59236         (WebCore::FrameLoaderClient::dispatchWillStartUsingPeerConnectionHandler):
59237         * platform/mediastream/chromium/RTCPeerConnectionHandlerChromium.cpp:
59238         (WebCore::RTCPeerConnectionHandlerChromium::toWebRTCPeerConnectionHandler):
59239         (WebCore):
59240         (WebCore::RTCPeerConnectionHandlerChromium::RTCPeerConnectionHandlerChromium):
59241         (WebCore::RTCPeerConnectionHandlerChromium::initialize):
59242         * platform/mediastream/chromium/RTCPeerConnectionHandlerChromium.h:
59243         (RTCPeerConnectionHandlerChromium):
59244
59245 2012-10-03  Eugene Klyuchnikov  <eustas.bug@gmail.com>
59246
59247         Web Inspector: Profiles: taking heap snapshot causes error message in console.
59248         https://bugs.webkit.org/show_bug.cgi?id=97890
59249
59250         Reviewed by Yury Semikhatsky.
59251
59252         Actual problem is that proxy loader is closed twice.
59253
59254         "_snapshotReceived" should never try to close receiver,
59255         because it is a callback fired by close.
59256
59257         Also minor glitches fixed:
59258          - taking snapshot shows "Loading..." status first,
59259         and then "Saving xxx%";
59260          - after all chunks are sent "Parsing" status is set and
59261         then is replaced with "Saving 100%";
59262          - removed dead code in proxy;
59263          - proxy was ignoring callback parameter;
59264          - "Loading %d\%" is not localized.
59265
59266         * English.lproj/localizedStrings.js: Added missing "Loading %d%" string.
59267         * inspector/front-end/HeapSnapshotProxy.js: Removed dead code.
59268         (WebInspector.HeapSnapshotLoaderProxy):
59269         (WebInspector.HeapSnapshotLoaderProxy.prototype.write): Make this method
59270         interface-conformant.
59271         * inspector/front-end/HeapSnapshotView.js:
59272         (WebInspector.HeapProfileHeader): Fixed update-status and
59273         finish-transfer logic.
59274
59275 2012-10-03  Jochen Eisinger  <jochen@chromium.org>
59276
59277         Make sure that user gestures can't be consumed twice
59278         https://bugs.webkit.org/show_bug.cgi?id=97483
59279
59280         Reviewed by Adam Barth.
59281
59282         Instead of a simple counter, use a ref counted token to track how many
59283         user gestures happened and where consumed. When creating a timer that
59284         is supposed to forward the user gesture, take a reference to this token
59285         and reinstantiate the UserGestureIndicator with that token when the
59286         timer is triggered.
59287
59288         Tests: platform/chromium/fast/events/popup-forwarded-gesture-blocked.html
59289                platform/chromium/fast/events/popup-forwarded-gesture.html
59290
59291         * dom/UserGestureIndicator.cpp:
59292         (WebCore):
59293         (WebCore::UserGestureIndicator::UserGestureIndicator):
59294         (WebCore::UserGestureIndicator::~UserGestureIndicator):
59295         (WebCore::UserGestureIndicator::processingUserGesture):
59296         (WebCore::UserGestureIndicator::consumeUserGesture):
59297         (WebCore::UserGestureIndicator::currentToken):
59298         * dom/UserGestureIndicator.h:
59299         (Token):
59300         (WebCore::UserGestureIndicator::Token::~Token):
59301         (UserGestureIndicator):
59302         * page/DOMTimer.cpp:
59303         (WebCore::DOMTimer::DOMTimer):
59304         (WebCore::DOMTimer::fired):
59305         * page/DOMTimer.h:
59306         (DOMTimer):
59307
59308 2012-10-03  Dominic Mazzoni  <dmazzoni@google.com>
59309
59310         AX: Heap-use-after-free when deleting a ContainerNode with an AX object
59311         https://bugs.webkit.org/show_bug.cgi?id=98073
59312
59313         Reviewed by Hajime Morita.
59314
59315         Calls axObjectCache()->remove(this) in ~ContainerNode so that the AX tree
59316         doesn't try to access the container node while walking up the parent chain
59317         from one of the container node's children.
59318
59319         Test: accessibility/container-node-delete-causes-crash.html
59320
59321         * dom/ContainerNode.cpp:
59322         (WebCore::ContainerNode::~ContainerNode):
59323         * dom/Node.cpp:
59324         (WebCore::Node::~Node):
59325         * dom/Node.h:
59326         (WebCore::Node::document):
59327         (WebCore::Node::documentInternal):
59328
59329 2012-10-03  Vsevolod Vlasov  <vsevik@chromium.org>
59330
59331         Web Inspector: SourceURL should be taken from debugger agent when possible.
59332         https://bugs.webkit.org/show_bug.cgi?id=98239
59333
59334         Reviewed by Yury Semikhatsky.
59335
59336         Removed a check that sourceURL coming from js engine is the same as the one parsed by debugger agent.
59337         Alwys use the one from debugger agent now.
59338
59339         * inspector/InspectorDebuggerAgent.cpp:
59340         (WebCore::InspectorDebuggerAgent::didParseSource):
59341
59342 2012-10-03  Ilya Tikhonovsky  <loislo@chromium.org>
59343
59344         Unreviewed. Touch FrameView.cpp file for fixing mac bot compilation.
59345
59346         * page/FrameView.cpp:
59347         (WebCore):
59348
59349 2012-10-02  Ilya Tikhonovsky  <loislo@chromium.org>
59350
59351         Web Inspector: "Load profile..." context menu item has to be shown only for left column with the list of profiles.
59352         https://bugs.webkit.org/show_bug.cgi?id=98163
59353
59354         Reviewed by Yury Semikhatsky.
59355
59356         The text was changed to "Load Heap Snapshot..."
59357         Also I changed "Save profile..." to "Save Heap Snapshot..." because other profiles don't support Save/Load operations yet.
59358         The Load context menu item will appear only when the user clicked in sidebar the tree empty space or a profile.
59359
59360         * English.lproj/localizedStrings.js:
59361         * inspector/front-end/ProfilesPanel.js:
59362         (WebInspector.ProfilesPanel.prototype._handleContextMenuEvent):
59363         (WebInspector.ProfileSidebarTreeElement.prototype.handleContextMenuEvent):
59364
59365 2012-10-03  Harald Alvestrand  <hta@google.com>
59366
59367         Add data passing to the GetStats interface of RTCPeerConnection
59368         https://bugs.webkit.org/show_bug.cgi?id=98003
59369
59370         Reviewed by Adam Barth.
59371
59372         Added an RTCStatsResponseBase interface to platform, and let the
59373         RTCStatsRequestImpl class produce an implementation of it that's returned
59374         to WebCore.
59375
59376         Tested by extension of the RTCPeerConnection-stats.html test.
59377
59378         * Modules/mediastream/RTCStatsElement.cpp:
59379         (WebCore::RTCStatsElement::addStatistic):
59380         (WebCore):
59381         * Modules/mediastream/RTCStatsElement.h:
59382         (RTCStatsElement):
59383         * Modules/mediastream/RTCStatsReport.cpp:
59384         (WebCore):
59385         (WebCore::RTCStatsReport::addElement):
59386         (WebCore::RTCStatsReport::addStatistic):
59387         * Modules/mediastream/RTCStatsReport.h:
59388         (RTCStatsReport):
59389         * Modules/mediastream/RTCStatsRequestImpl.cpp:
59390         (WebCore::RTCStatsRequestImpl::createResponse):
59391         (WebCore):
59392         (WebCore::RTCStatsRequestImpl::requestSucceeded):
59393         * Modules/mediastream/RTCStatsRequestImpl.h:
59394         (RTCStatsRequestImpl):
59395         * Modules/mediastream/RTCStatsResponse.cpp:
59396         (WebCore::RTCStatsResponse::create):
59397         (WebCore::RTCStatsResponse::addReport):
59398         (WebCore):
59399         (WebCore::RTCStatsResponse::addElement):
59400         (WebCore::RTCStatsResponse::addStatistic):
59401         * Modules/mediastream/RTCStatsResponse.h:
59402         (RTCStatsResponse):
59403         * WebCore.gypi:
59404         * platform/chromium/support/WebRTCStatsRequest.cpp:
59405         (WebKit::WebRTCStatsRequest::response):
59406         (WebKit):
59407         (WebKit::WebRTCStatsRequest::requestSucceeded):
59408         * platform/chromium/support/WebRTCStatsResponse.cpp: Added.
59409         (WebKit):
59410         (WebKit::WebRTCStatsResponse::WebRTCStatsResponse):
59411         (WebKit::WebRTCStatsResponse::assign):
59412         (WebKit::WebRTCStatsResponse::reset):
59413         (WebKit::WebRTCStatsResponse::operator WTF::PassRefPtr<WebCore::RTCStatsResponseBase>):
59414         (WebKit::WebRTCStatsResponse::addReport):
59415         (WebKit::WebRTCStatsResponse::addElement):
59416         (WebKit::WebRTCStatsResponse::addStatistic):
59417         * platform/mediastream/RTCStatsRequest.h:
59418         (WebCore):
59419         (RTCStatsRequest):
59420         * platform/mediastream/RTCStatsResponseBase.h: Added.
59421         (WebCore):
59422         (RTCStatsResponseBase):
59423         (WebCore::RTCStatsResponseBase::~RTCStatsResponseBase):
59424
59425 2012-10-02  Carlos Garcia Campos  <cgarcia@igalia.com>
59426
59427         [GTK] Add API to get the web view that initiated a custom URI request to WebKit2 GTK+
59428         https://bugs.webkit.org/show_bug.cgi?id=97895
59429
59430         Reviewed by Martin Robinson.
59431
59432         * platform/network/NetworkingContext.h:
59433         (NetworkingContext): Add initiatingPageID().
59434         * platform/network/ResourceHandle.h:
59435         (ResourceHandle): Add static method
59436         getSoupRequestInitiaingPageID().
59437         * platform/network/ResourceHandleInternal.h:
59438         (ResourceHandleInternal): Add initiatingPageID().
59439         * platform/network/soup/ResourceHandleSoup.cpp:
59440         (WebCore::ResourceHandleInternal::initiatingPageID): Get the
59441         initiating page ID of the resource handle networking context.
59442         (WebCore::setSoupRequestInitiaingPageID): Helper function to
59443         attach a page ID to a SoupRequest.
59444         (WebCore::startHTTPRequest): Call setSoupRequestInitiaingPageID()
59445         to attch the initiating page ID to the SoupRequest.
59446         (WebCore::startNonHTTPRequest): Ditto.
59447         (WebCore::ResourceHandle::getSoupRequestInitiaingPageID): Static
59448         method to get the page ID attached to a SoupRequest.
59449
59450 2012-10-03  Kent Tamura  <tkent@chromium.org>
59451
59452         Introduce DateComponents::minimumYear and maximumYear
59453         https://bugs.webkit.org/show_bug.cgi?id=98230
59454
59455         Reviewed by Kentaro Hara.
59456
59457         Share same difinitions in DateComponents.cpp and DateTimeFieldElements.cpp.
59458
59459         No new tests. This doesn't change any bahevior.
59460
59461         * platform/DateComponents.h:
59462         (WebCore::DateComponents::minimumYear): Moved from DateComponents.cpp.
59463         (WebCore::DateComponents::maximumYear): ditto.
59464         * platform/DateComponents.cpp:
59465         (WebCore): Move out static minimumYear and maximumYear.
59466         (WebCore::DateComponents::parseYear): Use DateCompnents::minimumYear and/or maximumYear.
59467         (WebCore::withinHTMLDateLimits): ditto.
59468         (WebCore::DateComponents::parseWeek): ditto.
59469         (WebCore::DateComponents::setMonthsSinceEpoch): ditto.
59470         (WebCore::DateComponents::setMillisecondsSinceEpochForWeek): ditto.
59471
59472         * html/shadow/DateTimeFieldElements.cpp:
59473         (WebCore): Remove minimumYear and maximumYear.
59474         (WebCore::DateTimeYearFieldElement::DateTimeYearFieldElement):
59475         Use DateComponents::minimumYear and maximumYear.
59476
59477
59478 2012-10-02  Arko Saha  <arko@motorola.com>
59479
59480         Microdata: itemprop names must not override builtin properties.
59481         https://bugs.webkit.org/show_bug.cgi?id=98025
59482
59483         Reviewed by Kentaro Hara.
59484
59485         We should look in the prototype for functions before assuming it as
59486         an item's name. Return false if the prototype of the object has a
59487         property (function) with propertyName.
59488         Named properties Spec: http://dev.w3.org/2006/webapi/WebIDL/#idl-named-properties
59489         Named property visibility algorithm:
59490         http://dev.w3.org/2006/webapi/WebIDL/#indexed-and-named-properties
59491         ...
59492         7. If the result of calling the [[HasProperty]] internal method on
59493         prototype with property name P is true, then return false.
59494         ...
59495         Also [OverrideBuiltins] is not declared for any of the properties,
59496         hence no overriding is allowed in this case.
59497
59498         Test: fast/dom/MicroData/itemprop-names-override-builtin-properties.html
59499
59500         * bindings/scripts/CodeGeneratorJS.pm:
59501         (GenerateGetOwnPropertySlotBody):
59502         (GenerateGetOwnPropertyDescriptorBody):
59503
59504 2012-10-02  Keishi Hattori  <keishi@webkit.org>
59505
59506         REGRESSION (r129738): Suggestion picker label is placed in the wrong location
59507         https://bugs.webkit.org/show_bug.cgi?id=98094
59508
59509         Reviewed by Kent Tamura.
59510
59511         We needed to reverse padding-left/right when rtl.
59512
59513         No new tests. Covered by date-suggestion-picker-appearance.html.
59514
59515         * Resources/pagepopups/suggestionPicker.css:
59516         (.suggestion-list-entry .label):
59517         (.rtl .suggestion-list-entry .label):
59518
59519 2012-10-02  Yury Semikhatsky  <yurys@chromium.org>
59520
59521         Provide memory instrumentation for HashCountedSet
59522         https://bugs.webkit.org/show_bug.cgi?id=98138
59523
59524         Reviewed by Pavel Feldman.
59525
59526         Replaced addHashCountedSet calls with addMember that now automatically
59527         detects HashCountedSet and calls appropriate routine.
59528
59529         * css/CSSImageGeneratorValue.cpp:
59530         (WebCore::CSSImageGeneratorValue::reportBaseClassMemoryUsage):
59531         * loader/cache/CachedResource.cpp:
59532
59533 2012-10-02  Nandor Huszka  <hnandor@inf.u-szeged.hu>
59534
59535         Buildfix after r130235.
59536
59537         Reviewed by Csaba Osztrogonác.
59538
59539         systemAllowsMultisamplingOnATICards was deleted from GraphicsContext3D,
59540         but function body remained in GraphicsContext3DOpenGLES. Delete method body.
59541
59542         * platform/graphics/opengl/GraphicsContext3DOpenGLES.cpp:
59543
59544 2012-10-02  Kent Tamura  <tkent@chromium.org>
59545
59546         Fix assertion failures on Chromium Debug bots for datetime/datetime-local input types.
59547
59548         * html/shadow/DateTimeFieldElements.cpp:
59549         If a placeholder stirng is empty, use a sequence of "-".
59550         (WebCore::DateTimeDayFieldElement::create):
59551         (WebCore::DateTimeMonthFieldElement::create):
59552         (WebCore::DateTimeYearFieldElement::create):
59553
59554 2012-10-02  MORITA Hajime  <morrita@google.com>
59555
59556         https://bugs.webkit.org/show_bug.cgi?id=98134
59557         [Refactoring] StyleResolver::matchScopedAuthorRules() could be simpler.
59558
59559         Reviewed by Dimitri Glazkov.
59560
59561         matchScopedAuthorRules() did have some optimization which only
59562         makes sense for heavily nested shadow tree. However, we don't see
59563         such type of usage of Shadow DOM and this looks premature
59564         optimization. This change unified its triple for loop into one,
59565         which makes the code much simpler.
59566
59567         No new tests. Covered by existing tests.
59568
59569         * css/StyleResolver.cpp:
59570         (WebCore::StyleResolver::matchScopedAuthorRules):
59571
59572 2012-10-02  Kent Tamura  <tkent@chromium.org>
59573
59574         Introduce Localizer::dateTimeFormatWithSecond and dateTimeFormatWithoutSecond
59575         https://bugs.webkit.org/show_bug.cgi?id=98229
59576
59577         Reviewed by Kentaro Hara.
59578
59579         Unify identical code in DateTimeInputType and DateTimeLocalInputType as
59580         Localizer member functions.
59581         They still have some common code. We'll address it later.
59582
59583         No new tests. This doesn't change any behavior.
59584
59585         * platform/text/Localizer.h:
59586         (Localizer): Add dateTimeFormatWithSecond and dateTimeFormatWithoutSecond.
59587         * platform/text/Localizer.cpp:
59588         (WebCore::Localizer::dateTimeFormatWithSecond):
59589         Implemented. Just concatenating dateFormat, a space, and timeFormat.
59590         (WebCore::Localizer::dateTimeFormatWithoutSecond):
59591         Implemented. Just concatenating dateFormat, a space, and shortTimeFormat.
59592
59593         * html/DateTimeInputType.cpp:
59594         (WebCore::DateTimeInputType::setupLayoutParameters):
59595         Use dateTimeFormatWithSecond and dateTimeFormatWithoutSecond.
59596         * html/DateTimeLocalInputType.cpp:
59597         (WebCore::DateTimeLocalInputType::setupLayoutParameters): ditto.
59598
59599 2012-10-03  Kent Tamura  <tkent@chromium.org>
59600
59601         Refactoring: DateTimeEditBuilder had better hold LayoutParameters
59602         https://bugs.webkit.org/show_bug.cgi?id=98228
59603
59604         Reviewed by Kentaro Hara.
59605
59606         Stop copying multiple members of LayoutParameters in DateTimeEditBuilder
59607         constructor. This change improves code size and runtime cost.
59608
59609         No new tests. This doesn't change user-visible behavior.
59610
59611         * html/shadow/DateTimeEditElement.cpp:
59612         (DateTimeEditBuilder): Add a comment about lifetime of objects.
59613         (WebCore::DateTimeEditBuilder::stepRange):
59614         Added. A helper to access m_parameters.stepRange.
59615         (WebCore::DateTimeEditBuilder::DateTimeEditBuilder):
59616         Remove m_stepRange, m_localizer, m_placeholderFor* members.
59617         Add m_parameters.
59618         (WebCore::DateTimeEditBuilder::needMillisecondField):
59619         Use stepRange() instead of m_stepRange.
59620         (WebCore::DateTimeEditBuilder::visitField):
59621         Use m_parameters.placeholderFor*.
59622         (WebCore::DateTimeEditBuilder::shouldMillisecondFieldReadOnly):
59623         Use stepRange() instead of m_stepRange.
59624         (WebCore::DateTimeEditBuilder::shouldMinuteFieldReadOnly): ditto.
59625         (WebCore::DateTimeEditBuilder::shouldSecondFieldReadOnly): ditto.
59626
59627 2012-10-02  Kent Tamura  <tkent@chromium.org>
59628
59629         Implement LocaleICU::dateFormat
59630         https://bugs.webkit.org/show_bug.cgi?id=98118
59631
59632         Reviewed by Hajime Morita.
59633
59634         http://trac.webkit.org/changeset/130127 introduced
59635         Localizer::dateFormat, and this is its implementation for LocaleICU
59636         classs. The code is going to be used when
59637         ENABLE_INPUT_MULTIPLE_FIELDS_UI is enabled.
59638
59639         No new tests. The function is not used yet.
59640
59641         * platform/text/LocaleICU.cpp:
59642         (WebCore::LocaleICU::dateFormat):
59643         Implemented. Note that m_shortDateFormat is a UDateFormat object, which
59644         knows various format information.
59645         * platform/text/LocaleICU.h:
59646         (LocaleICU): Add m_dateFormat to cache the format string.
59647
59648 2012-10-02  Kent Tamura  <tkent@chromium.org>
59649
59650         [Mac][Chromium-Mac] Implement LocaleMac::dateFormat
59651         https://bugs.webkit.org/show_bug.cgi?id=98116
59652
59653         Reviewed by Hajime Morita.
59654
59655         http://trac.webkit.org/changeset/130127 introduced
59656         Localizer::dateFormat, and this is its implementation for LocaleICU
59657         classs. The code is going to be used when
59658         ENABLE_INPUT_MULTIPLE_FIELDS_UI is enabled.
59659
59660         No new tests. The function is not used yet.
59661
59662         * platform/text/mac/LocaleMac.h:
59663         (LocaleMac): Declare m_dateFormat.
59664         * platform/text/mac/LocaleMac.mm:
59665         (WebCore::LocaleMac::dateFormat): Implemented.
59666
59667 2012-10-02  Kent Tamura  <tkent@chromium.org>
59668
59669         [Chromium-Win] Implement LocaleWin::dateFormat
59670         https://bugs.webkit.org/show_bug.cgi?id=98117
59671
59672         Reviewed by Kentaro Hara.
59673
59674         http://trac.webkit.org/changeset/130127 introduced
59675         Localizer::dateFormat, and this is its implementation for LocaleICU
59676         classs. The code is going to be used when
59677         ENABLE_INPUT_MULTIPLE_FIELDS_UI is enabled.
59678
59679         Tests: Added a new test to WebKit/chromium/tests/LocaleWinTest.cpp.
59680
59681         * platform/text/LocaleWin.cpp:
59682         (WebCore::parseDateFormat):
59683         Fix a continuous apostrophes parsing bug; "abc''''def" produced "abc'''def"
59684         (WebCore::appendAsLDMLLiteral):
59685         A helper function to make a literal string for LDML.
59686         (WebCore::convertWindowsDateFormatToLDML):
59687         Creates an LDML format from a parsed date format tokens.
59688         (WebCore::LocaleWin::dateFormat):
59689         Implemented. This uses convertWindowsDateFormatToLDML.
59690         (WebCore::LocaleWin::dateFormat):
59691         Added for testing. The source windows format is specified as a function
59692         argument.
59693         * platform/text/LocaleWin.h:
59694         (LocaleWin): Declare m_dateFormat and dateFormat().
59695
59696 2012-10-02  Ian Vollick  <vollick@chromium.org>
59697
59698         [chromium] Fix spelling of isNVIDIA override in Extensions3DChromium
59699         https://bugs.webkit.org/show_bug.cgi?id=98219
59700
59701         Reviewed by Dean Jackson.
59702
59703         The override in Extensions3dChromium should have been spelled isNVIDIA, not isNVidia.
59704
59705         No new tests. No change in functionality.
59706
59707         * platform/graphics/chromium/Extensions3DChromium.h:
59708         (WebCore::Extensions3DChromium::isNVIDIA):
59709
59710 2012-10-02  Anders Carlsson  <andersca@apple.com>
59711
59712         Try to fix the Snow Leopard build.
59713
59714         * platform/graphics/opengl/Extensions3DOpenGLCommon.cpp:
59715
59716 2012-10-02  Joshua Bell  <jsbell@chromium.org>
59717
59718         Add htons/htonl definitions and implementations
59719         https://bugs.webkit.org/show_bug.cgi?id=98054
59720
59721         Reviewed by Darin Adler.
59722
59723         Update users of htons and friends to use new wtf/ByteOrder.h header.
59724
59725         No new tests - just refactoring.
59726
59727         * platform/graphics/WOFFFileFormat.cpp:
59728         * platform/graphics/chromium/VDMXParser.cpp:
59729
59730 == Rolled over to ChangeLog-2012-10-02 ==