When we set word-wrap: break-word and xml:space="preserve" to svg text element, the...
[WebKit-https.git] / Source / WebCore / ChangeLog
1 2013-03-08  Yuki Sekiguchi  <yuki.sekiguchi@access-company.com>
2
3         When we set word-wrap: break-word and xml:space="preserve" to svg text element, the text is collapsed.
4         https://bugs.webkit.org/show_bug.cgi?id=111675
5
6         Reviewed by Stephen Chenney.
7
8         RenderSVGText define its size when it laid out its first line at SVGRootInlineBox::computePerCharacterLayoutInformation().
9
10         In the following spec, SVG don't perform automatic line break or word wrapping.
11         http://www.w3.org/TR/SVG/text.html#Introduction
12         > SVG performs no automatic line breaking or word wrapping.
13         However, when we set word-wrap: break-word and xml:space="preserve" to svg text element, RenderBlock::LineBreaker::nextLineBreak() breaks the text.
14         This make single character lines and make RenderSVGText narrow.
15
16         We must ignore word-wrap property to make the text a single line.
17
18         We always disable break words and break all in nextLineBreak() when the object is SVGInlineText.
19
20         Test: svg/text/preserve-break-word.html
21
22         * rendering/RenderBlockLineLayout.cpp:
23         (WebCore::RenderBlock::LineBreaker::nextSegmentBreak): Disable break words and break all when we process SVG Text.
24
25 2013-03-08  Allan Sandfeld Jensen  <allan.jensen@digia.com>
26
27         [Qt] HTML5 video - sound volume bar out of widget
28         https://bugs.webkit.org/show_bug.cgi?id=108213
29
30         Reviewed by Jocelyn Turcotte.
31
32         Since we use Safari shadow DOM for media controls, follow
33         the overall layout of Safari media control CSS.
34
35         * css/mediaControlsQt.css:
36         (audio::-webkit-media-controls-panel, video::-webkit-media-controls-panel):
37         (audio::-webkit-media-controls-mute-button, video::-webkit-media-controls-mute-button):
38         (audio::-webkit-media-controls-play-button, video::-webkit-media-controls-play-button):
39         (audio::-webkit-media-controls-timeline-container, video::-webkit-media-controls-timeline-container):
40         (audio::-webkit-media-controls-current-time-display, video::-webkit-media-controls-current-time-display):
41         (audio::-webkit-media-controls-time-remaining-display, video::-webkit-media-controls-time-remaining-display):
42         (audio::-webkit-media-controls-timeline, video::-webkit-media-controls-timeline):
43         (audio::-webkit-media-controls-volume-slider-container, video::-webkit-media-controls-volume-slider-container):
44         (audio::-webkit-media-controls-volume-slider, video::-webkit-media-controls-volume-slider):
45         (audio::-webkit-media-controls-seek-back-button, video::-webkit-media-controls-seek-back-button):
46         (audio::-webkit-media-controls-seek-forward-button, video::-webkit-media-controls-seek-forward-button):
47         (audio::-webkit-media-controls-rewind-button, video::-webkit-media-controls-rewind-button):
48         (audio::-webkit-media-controls-return-to-realtime-button, video::-webkit-media-controls-return-to-realtime-button):
49         (audio::-webkit-media-controls-toggle-closed-captions-button, video::-webkit-media-controls-toggle-closed-captions-button):
50
51 2013-03-08  Allan Sandfeld Jensen  <allan.jensen@digia.com>
52
53         [Qt] Doesn't build with QtMultimedia
54         https://bugs.webkit.org/show_bug.cgi?id=111847
55
56         Reviewed by Jocelyn Turcotte.
57
58         Fix include.
59
60         * platform/graphics/qt/MediaPlayerPrivateQt.h:
61
62 2013-03-08  Huang Dongsung  <luxtella@company100.net>
63
64         [EFL][Qt] REGRESSION(r144787): A fixed element lags when scrolling and wheeling.
65         https://bugs.webkit.org/show_bug.cgi?id=111829
66
67         Reviewed by Noam Rosenthal.
68
69         Currently, flagsChanged deals with all boolean flags. It introduces this bug
70         because when another flag (i.e. preserves3D) is changed, fixedToViewport is set
71         to false. So this patch updates all flags when at least one flag is changed.
72
73         In addition, this patch amends isScrollable code to match other flags.
74
75         This patch can only be tested manually since there is no automated
76         testing facilities for in-motion touch.
77         Test: ManualTests/fixed-position.html
78               ManualTests/nested-fixed-position.html
79
80         * platform/graphics/texmap/coordinated/CoordinatedGraphicsLayer.cpp:
81         (WebCore::CoordinatedGraphicsLayer::setScrollableArea):
82         (WebCore::CoordinatedGraphicsLayer::syncLayerState):
83         * platform/graphics/texmap/coordinated/CoordinatedGraphicsScene.cpp:
84         (WebCore::CoordinatedGraphicsScene::setLayerState):
85         * platform/graphics/texmap/coordinated/CoordinatedGraphicsState.h:
86         (WebCore::CoordinatedGraphicsLayerState::CoordinatedGraphicsLayerState):
87
88 2013-03-07  Dean Jackson  <dino@apple.com>
89
90         Remove dead label code in snapshotted plugin
91         https://bugs.webkit.org/show_bug.cgi?id=111781
92
93         Reviewed by Tim Horton.
94
95         Since ports can use the shadow tree to do label display,
96         there is no need for the hardcoded timers in RenderSnapshottedPlugin.
97
98         * rendering/RenderSnapshottedPlugIn.cpp: Remove label flags and timers.
99         (WebCore::RenderSnapshottedPlugIn::RenderSnapshottedPlugIn):
100         (WebCore::RenderSnapshottedPlugIn::~RenderSnapshottedPlugIn):
101         (WebCore::RenderSnapshottedPlugIn::updateSnapshot):
102         (WebCore::RenderSnapshottedPlugIn::handleEvent):
103         * rendering/RenderSnapshottedPlugIn.h:
104         (RenderSnapshottedPlugIn):
105
106 2013-03-07  Dean Jackson  <dino@apple.com>
107
108         Implement a custom appearance for the snapshotted plugin background
109         https://bugs.webkit.org/show_bug.cgi?id=108368
110
111         Reviewed by Tim Horton.
112
113         After https://bugs.webkit.org/show_bug.cgi?id=108284 (r142507), a
114         snapshotted plugin was no longer drawing the background of the
115         label blurred. Since the snapshot content was now a shadow tree,
116         it wasn't feasible to pre-blur a region of the snapshot: the label
117         could be any size and in any location, with ports being able to
118         override the appearance through their UA style sheet.
119
120         Instead we now use one of the elements in the tree, the snapshot-overlay,
121         as a hook where ports can add any effect they want. This could be simply
122         a border, or a transparent mask, or even a CSS filter. We introduce a custom
123         CSS appearance "snapshotted-plugin-overlay", which could be added to the
124         element in the injected UA stylesheet. This calls into RenderTheme in
125         the same way that custom controls do.
126
127         Meanwhile, in RenderThemeMac, we implement the appearance by drawing the
128         content of the plugin snapshot into the background of the element. That
129         way we can add effects in CSS.
130
131         Test: plugins/snapshot-appearance.html
132
133         * css/CSSPrimitiveValueMappings.h:
134         (WebCore::CSSPrimitiveValue::CSSPrimitiveValue): Handle SnapshottedPluginOverlayPart.
135         * css/CSSValueKeywords.in: New appearance value snapshotted-plugin-overlay.
136         * platform/ThemeTypes.h: New value SnapshottedPluginOverlayPart.
137         * html/HTMLPlugInElement.h:
138         (WebCore::toHTMLPlugInElement): Add safer casting helpers.
139         * html/HTMLPlugInImageElement.h:
140         (WebCore::toHTMLPlugInImageElement): Ditto.
141         * rendering/RenderSnapshottedPlugIn.cpp: Remove the code for handling
142             the blur directly in the renderer.
143         (WebCore::RenderSnapshottedPlugIn::paint): Simplify the paint logic since we're
144             no longer trying to blur here.
145         (WebCore::RenderSnapshottedPlugIn::paintSnapshot): Ditto.
146         * rendering/RenderSnapshottedPlugIn.h: Remove the methods that were trying
147             to blur the image directly.
148         * rendering/RenderTheme.cpp:
149         (WebCore::RenderTheme::paint): Call paintSnapshottedPluginOverlay.
150         * rendering/RenderTheme.h:
151         (WebCore::RenderTheme::paintSnapshottedPluginOverlay): New virtual method with default implementation.
152         * rendering/RenderThemeMacShared.h:
153         (RenderThemeMacShared): Override paintSnapshottedPluginOverlay.
154         * rendering/RenderThemeMacShared.mm:
155         (WebCore::RenderThemeMacShared::paintSnapshottedPluginOverlay): Implement a custom render path
156             that takes the snapshot image from the node's parent, and draws it into the background.
157             Along the way make sure we're actually using the right type of element (an HTMLPlugInImageElement).
158
159 2013-03-08  Sergio Villar Senin  <svillar@igalia.com>
160
161         Improve drag&drop of list items in contentEditable divs
162         https://bugs.webkit.org/show_bug.cgi?id=111556
163
164         Reviewed by Ryosuke Niwa.
165
166         A single fully selected <li> should generate the same markup as if
167         we were selecting some of them, i.e., we should preserve the list
168         structure and appearance.
169
170         Test: editing/selection/drag-list-item.html
171
172         * editing/htmlediting.cpp:
173         (WebCore::isListItem): modified constness.
174         * editing/htmlediting.h:
175         (WebCore): ditto.
176         * editing/markup.cpp:
177         (WebCore::highestAncestorToWrapMarkup):
178
179 2013-03-08  Alberto Garcia  <agarcia@igalia.com>
180
181         [BlackBerry] LayerTiler: rename currentFrameHasAlpha as currentFrameKnownToBeOpaque
182         https://bugs.webkit.org/show_bug.cgi?id=111828
183
184         Reviewed by Carlos Garcia Campos.
185
186         This changed in r141637.
187
188         * platform/graphics/blackberry/LayerTiler.cpp:
189         (WebCore::LayerTiler::updateTextureContentsIfNeeded):
190
191 2013-03-08  Antoine Quint  <graouts@apple.com>
192
193         Fix a couple of typos.
194
195         Unreviewed.
196
197         * inspector/Inspector.json:
198
199 2013-03-08  Carlos Garcia Campos  <cgarcia@igalia.com>
200
201         [BlackBerry] Use OwnPtr for CredentialBackingStore members
202         https://bugs.webkit.org/show_bug.cgi?id=111737
203
204         Reviewed by Rob Buis.
205
206         It simplifies the code a bit.
207
208         * platform/network/blackberry/CredentialBackingStore.cpp:
209         (WebCore::CredentialBackingStore::~CredentialBackingStore):
210         (WebCore::CredentialBackingStore::open):
211         (WebCore::CredentialBackingStore::certMgrWrapper):
212         * platform/network/blackberry/CredentialBackingStore.h:
213         (CredentialBackingStore):
214
215 2013-03-07  Gavin Barraclough  <barraclough@apple.com>
216
217         MemoryPressureHandler should fully flush the WebCore & NS URL caches
218         https://bugs.webkit.org/show_bug.cgi?id=111827
219
220         Rubber Stamped by Geoff Garen
221
222         When the handler is fired we should free as much memory as possible.
223
224         * platform/mac/MemoryPressureHandlerMac.mm:
225         (WebCore::MemoryPressureHandler::releaseMemory):
226             - fully flush the WebCore & NS URL caches
227
228 2013-03-07  Keishi Hattori  <keishi@webkit.org>
229
230         Update calendar picker UI
231         https://bugs.webkit.org/show_bug.cgi?id=109439
232
233         Reviewed by Kent Tamura.
234
235         This patch changes the calendar picker UI.
236
237         Added tests to existing calendar picker tests.
238         Test: platform/chromium/fast/forms/calendar-picker/calendar-picker-appearance-month-popup.html
239
240         * Resources/pagepopups/calendarPicker.css:
241         (body):
242         (.rtl):
243         (.scroll-view):
244         (.scroll-view-content):
245         (.list-cell):
246         (.list-cell.hidden):
247         (.day-cell):
248         (.week-number-cell):
249         (.day-cell.today):
250         (.day-cell.highlighted):
251         (.day-cell.highlighted.disabled):
252         (.day-cell.selected):
253         (.day-cell.disabled):
254         (.day-cell.current-month):
255         (.calendar-table-view):
256         (.preparing .calendar-table-view:focus):
257         (.week-day-label):
258         (.week-number-label):
259         (.calendar-table-header-view):
260         (.calendar-picker):
261         (.calendar-header-view):
262         (.calendar-title):
263         (.rtl .calendar-title):
264         (.month-popup-button:disabled):
265         (.month-popup-button):
266         (.month-popup-button .disclosure-triangle):
267         (.month-popup-button .disclosure-triangle svg):
268         (.today-button::after):
269         (.calendar-navigation-button):
270         (.year-list-view):
271         (.year-list-cell):
272         (.year-list-cell .label):
273         (.year-list-cell .month-chooser):
274         (.month-buttons-row):
275         (.month-button):
276         (.month-button.highlighted):
277         (.scrubby-scroll-bar):
278         (.scrubby-scroll-thumb):
279         (.month-popup-view):
280         (.year-list-view .scrubby-scroll-bar):
281         (.rtl .year-list-view .scrubby-scroll-bar):
282         * Resources/pagepopups/calendarPicker.js:
283         (setGlobalParams): Sets the global params.
284         (initialize):
285         (openCalendarPicker):
286         (CalendarHeaderView.prototype.onNavigationButtonClick): Fix typo.
287         (CalendarPicker):
288         (CalendarPicker.prototype.onWindowResize): We want to have the "preparing" class applied
289         to cancel css transitions while setting up the calendar picker so we can avoid flaky pixel tests.
290         (CalendarPicker.prototype.onYearListViewDidHide): The user clicked on a month so hide the month popup.
291         (CalendarPicker.prototype.onYearListViewDidSelectMonth): Change the current month in response to the month popup.
292         (CalendarPicker.prototype.attachTo): We want the calendar table focused when the calendar picker first opens.
293         (CalendarPicker.prototype.cleanup): Clean up any event listeners or elements attached to nodes outside of this.element.
294         (CalendarPicker.prototype.onMonthPopupButtonClick): Open the month popup in response to the month popup button being clicked.
295         (CalendarPicker.prototype._setConfig): Configures the calendar picker.
296         (CalendarPicker.prototype.currentMonth): The currently shown month.
297         (CalendarPicker.prototype.setCurrentMonth): Scrolls the calendar table to the given month. Use the navigation behavior param to specify if you want a transition animation.
298         (CalendarPicker.prototype.adjustHeight): Adjusts the height so its just tall enough to fit the current month. If the month picker is open, fit that.
299         (CalendarPicker.prototype.selection): Currently selected date range.
300         (CalendarPicker.prototype.highlight): Currently highlighted date range.
301         (CalendarPicker.prototype.firstVisibleDay): Returns the first visible day ignoring scroll animation (i.e. this is the first visible day when the scroll animation is done).
302         (CalendarPicker.prototype.lastVisibleDay): Returns the last visible day ignoring scroll animation.
303         (CalendarPicker.prototype.selectRangeContainingDay): Sets the selection to the date range containing the given day.
304         (CalendarPicker.prototype.highlightRangeContainingDay): Sets the highlight to the date range containing the given day.
305         (CalendarPicker.prototype.setSelection): Sets the selection to the given date range.
306         (CalendarPicker.prototype._setHighlight): Sets the highlight to the given date range.
307         (CalendarPicker.prototype._stepMismatch): Just moving.
308         (CalendarPicker.prototype._outOfRange): Ditto.
309         (CalendarPicker.prototype.isValid): Returns true if the given date range is a valid selection.
310         (CalendarPicker.prototype.isValidDay): Returns true if the day is part of a valid selection.
311         (CalendarPicker.prototype._moveHighlight): Moves the highlight to the given date range if possible. Returns true if it succeeds.
312         (CalendarPicker.prototype.onCalendarTableKeyDown): Handles the arrow keys, etc.
313         (CalendarPicker.prototype.width):
314         (CalendarPicker.prototype.height):
315         (CalendarPicker.prototype.setHeight):
316         (CalendarPicker.prototype.onBodyKeyDown): Handles esc/m/y/d.
317         * Resources/pagepopups/chromium/calendarPickerChromium.css:
318         (.calendar-table-view:focus):
319         (.preparing .calendar-table-view:focus):
320
321 2013-03-07  Seokju Kwon  <seokju.kwon@gmail.com>
322
323         Web Inspector: Remove unused return value after r122962
324         https://bugs.webkit.org/show_bug.cgi?id=111821
325
326         Reviewed by Pavel Feldman.
327
328         No new tests.
329
330         * inspector/front-end/ConsolePanel.js:
331         (WebInspector.ConsolePanel.prototype.jumpToPreviousSearchResult):
332         * inspector/front-end/ElementsPanel.js:
333         (WebInspector.ElementsPanel.prototype.jumpToPreviousSearchResult):
334         * inspector/front-end/ScriptsPanel.js:
335         (WebInspector.ScriptsPanel.prototype.jumpToPreviousSearchResult):
336
337 2013-03-07  Sheriff Bot  <webkit.review.bot@gmail.com>
338
339         Unreviewed, rolling out r145166.
340         http://trac.webkit.org/changeset/145166
341         https://bugs.webkit.org/show_bug.cgi?id=111819
342
343         build break - no symbol
344         webkit_support::CreateScopedTempDirectory() (Requested by
345         hayato on #webkit).
346
347         * Modules/indexeddb/IDBBackingStore.cpp:
348         (WebCore::IDBBackingStore::IDBBackingStore):
349         (WebCore::IDBBackingStore::~IDBBackingStore):
350         (WebCore::IDBBackingStore::open):
351         * Modules/indexeddb/IDBBackingStore.h:
352         (WebCore):
353         (IDBBackingStore):
354         * Modules/indexeddb/IDBFactoryBackendImpl.cpp:
355         (WebCore::IDBFactoryBackendImpl::addIDBBackingStore):
356         (WebCore):
357         (WebCore::IDBFactoryBackendImpl::removeIDBBackingStore):
358         (WebCore::IDBFactoryBackendImpl::openBackingStore):
359         * Modules/indexeddb/IDBFactoryBackendImpl.h:
360         (IDBFactoryBackendImpl):
361
362 2013-03-07  Hajime Morrita  <morrita@google.com>
363
364         Custom Elements: CustomElement constructor shouldn't share function instance
365         https://bugs.webkit.org/show_bug.cgi?id=111807
366
367         Reviewed by Kentaro Hara.
368
369         Adaptor functions of custom elements unintentionally share the instance.
370         This fix gives new one for each.
371
372         Test: Updated fast/dom/custom/document-register-basic.html
373
374         * bindings/v8/V8AdaptorFunction.cpp:
375         (WebCore::V8AdaptorFunction::wrap):
376
377 2013-03-07  Jared Wyles  <wyles@adobe.com>
378
379         Reading border radius from style property returns in wrong order.
380         https://bugs.webkit.org/show_bug.cgi?id=110853
381
382         Reviewed by Ryosuke Niwa
383         
384         Updating the order of border-radius to return in the order specified
385         in http://www.w3.org/TR/css3-background/#the-border-radius
386
387         Tests updated in LayoutTests/fast/borders/border-radius-parsing.html 
388         Changed the expectations in LayoutTests/inspector/elements/elements-panel-styles-expected.txt 
389         
390         Compat information -
391         jQuery's css function favours using getComputedStyle for elements so that should not be impacted.
392         Zepto does check for the element on style first so may be a slight concern there.
393
394         * css/StylePropertyShorthand.cpp:
395         (WebCore::borderRadiusShorthand):
396
397 2013-03-07  Andreas Kling  <akling@apple.com>
398
399         Resizing Cappuccino is very laggy on WebKit since Safari 5.1
400         <http://webkit.org/b/71354>
401         <rdar://problem/10565998>
402
403         Reviewed by Anders Carlsson.
404
405         * WebCore.exp.in: Export FloatPoint(const NSPoint&)
406
407 2013-03-07  Andreas Kling  <akling@apple.com>
408
409         Remove desktop version of -webkit-text-size-adjust property.
410         <http://webkit.org/b/56543>
411         <rdar://problem/9150203>
412
413         Reviewed by Simon Fraser.
414
415         This property existed to support a number of Apple-internal clients of WebKit.
416         We no longer need this property, and since it's clashing with a mobile version of the
417         same property with different meaning, let's remove it altogether from the desktop build.
418
419         * css/CSSComputedStyleDeclaration.cpp:
420         (WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue):
421         * css/CSSParser.cpp:
422         (WebCore::isValidKeywordPropertyAndValue):
423         (WebCore::isKeywordPropertyID):
424         (WebCore::CSSParser::parseValue):
425         * css/CSSPrimitiveValue.cpp:
426         (WebCore::CSSPrimitiveValue::computeLengthDouble):
427         * css/CSSProperty.cpp:
428         (WebCore::CSSProperty::isInheritedProperty):
429         * css/CSSPropertyNames.in:
430         * css/StyleBuilder.cpp:
431         (WebCore::ApplyPropertyLineHeight::applyValue):
432         * css/StyleResolver.cpp:
433         (WebCore::StyleResolver::updateFont):
434         (WebCore::StyleResolver::applyProperties):
435         (WebCore::StyleResolver::applyProperty):
436         * css/StyleResolver.h:
437         (StyleResolver):
438         * css/svg.css:
439         * editing/EditingStyle.cpp:
440         * inspector/front-end/inspector.css:
441         (#console-messages):
442         * inspector/front-end/resourcesPanel.css:
443         (.storage-view.query):
444         * rendering/style/RenderStyle.cpp:
445         (WebCore::RenderStyle::diff):
446         * rendering/style/RenderStyle.h:
447         * rendering/style/StyleRareInheritedData.cpp:
448         (WebCore::StyleRareInheritedData::StyleRareInheritedData):
449         (WebCore::StyleRareInheritedData::operator==):
450         * rendering/style/StyleRareInheritedData.h:
451         (StyleRareInheritedData):
452
453 2013-03-07  Joshua Bell  <jsbell@chromium.org>
454
455         IndexedDB: Use WeakPtr for Factory-to-BackingStore reference
456         https://bugs.webkit.org/show_bug.cgi?id=111459
457
458         Reviewed by Adam Barth.
459
460         IDBFactoryBackendImpl maintains a map of backing stores - if another database in the same
461         origin is opened, the backing store instance must be re-used). This was a map to raw
462         pointers so that the backing store can be collected when all database references are
463         dropped. The map was maintained manually by passing the factory to the IDBBackingStore which
464         would add/remove itself on creation/destruction.
465
466         Replace this with a HashMap<WeakPtr<>>. This simplifies the plumbing; map entries
467         "leak" but are purged on subsequent opens.
468
469         Added webkit_unit_test (Chromium port) to verify refcounts.
470
471         * Modules/indexeddb/IDBBackingStore.cpp:
472         (WebCore::IDBBackingStore::IDBBackingStore): No need to notify factory of lifetime.
473         (WebCore::IDBBackingStore::~IDBBackingStore): Ditto.
474         (WebCore::IDBBackingStore::open): Ditto.
475         * Modules/indexeddb/IDBBackingStore.h: No reference to the factory, but...
476         (WebCore::IDBBackingStore::createWeakPtr): Do need to expose weak pointers for the factory to hold.
477         * Modules/indexeddb/IDBFactoryBackendImpl.cpp:
478         (WebCore::cleanWeakMap): Helper function to scrub a HashMap<WeakPtr<T>> of empty pointers.
479         May move to WTF when we've learned how general it is, or come up with a dedicated WeakPtrHashMap type.
480         (WebCore::IDBFactoryBackendImpl::openBackingStore): WeakPtr fu.
481         * Modules/indexeddb/IDBFactoryBackendImpl.h:
482         (IDBFactoryBackendImpl): Remove plumbing methods.
483
484 2013-03-07  Otto Derek Cheung  <otcheung@rim.com>
485
486         [BlackBerry] RefCounting ParsedCookie to avoid SegFaults
487         https://bugs.webkit.org/show_bug.cgi?id=111761
488
489         Reviewed by Rob Buis.
490
491         Making necessary changes to ref count the ParsedCookie object.
492
493         Tested using the opera cookie test suite and the BB Browser cookie test suite.
494         Tested using the browser, visiting popular sites such as facebook, reddit, google etc
495         to ensure cookie functionality isn't changed.
496
497         * loader/blackberry/CookieJarBlackBerry.cpp:
498         (WebCore::getRawCookies):
499         * platform/blackberry/CookieDatabaseBackingStore/CookieDatabaseBackingStore.cpp:
500         (WebCore::CookieDatabaseBackingStore::insert):
501         (WebCore::CookieDatabaseBackingStore::update):
502         (WebCore::CookieDatabaseBackingStore::remove):
503         (WebCore::CookieDatabaseBackingStore::getCookiesFromDatabase):
504         (WebCore::CookieDatabaseBackingStore::invokeGetCookiesWithLimit):
505         (WebCore::CookieDatabaseBackingStore::invokeSendChangesToDatabase):
506         (WebCore::CookieDatabaseBackingStore::addToChangeQueue):
507         * platform/blackberry/CookieDatabaseBackingStore/CookieDatabaseBackingStore.h:
508         (CookieDatabaseBackingStore):
509         * platform/blackberry/CookieManager.cpp:
510         (WebCore::cookieSorter):
511         (WebCore::CookieManager::setCookies):
512         (WebCore::CookieManager::getCookie):
513         (WebCore::CookieManager::generateHtmlFragmentForCookies):
514         (WebCore::CookieManager::getRawCookies):
515         (WebCore::CookieManager::checkAndTreatCookie):
516         (WebCore::CookieManager::addCookieToMap):
517         (WebCore::CookieManager::getBackingStoreCookies):
518         (WebCore::CookieManager::findOrCreateCookieMap):
519         (WebCore::CookieManager::removeCookieWithName):
520         (WebCore::CookieManager::cookieLimitCleanUp):
521         * platform/blackberry/CookieManager.h:
522         * platform/blackberry/CookieMap.cpp:
523         (WebCore::CookieMap::addOrReplaceCookie):
524         (WebCore::CookieMap::removeCookieAtIndex):
525         (WebCore::CookieMap::removeCookie):
526         (WebCore::CookieMap::getAllCookies):
527         (WebCore::CookieMap::removeOldestCookie):
528         (WebCore::CookieMap::deleteAllCookiesAndDomains):
529         (WebCore::CookieMap::getAllChildCookies):
530         * platform/blackberry/CookieMap.h:
531         (CookieMap):
532         * platform/blackberry/CookieParser.cpp:
533         (WebCore):
534         (WebCore::CookieParser::parse):
535         (WebCore::CookieParser::parseOneCookie):
536         * platform/blackberry/CookieParser.h:
537         (CookieParser):
538         * platform/blackberry/ParsedCookie.cpp:
539         * platform/blackberry/ParsedCookie.h:
540         (ParsedCookie):
541         (WebCore::ParsedCookie::create):
542
543 2013-03-07  Aaron Colwell  <acolwell@chromium.org>
544
545         Heap-use-after-free in WebCore::HTMLMediaElement::~HTMLMediaElement
546         https://bugs.webkit.org/show_bug.cgi?id=110623
547
548         Reviewed by Kentaro Hara.
549
550         Test: http/tests/misc/delete-frame-during-readystatechange-with-gc-after-video-removal.html
551
552         * bindings/v8/V8GCController.cpp: Fix MinorGCWrapperVisitor so it doesn't collect ActiveDOMObjects
553                                           that have pending activity.
554         * html/HTMLAudioElement.h:
555         (HTMLAudioElement): Removed hasPendingActivity() now that this is handled by the base class.
556         * html/HTMLAudioElement.idl: Removed ActiveDOMObject annotation since HTMLMediaElement now has it.
557         * html/HTMLMediaElement.cpp:
558         (WebCore::HTMLMediaElement::hasPendingActivity): Update implementation to return true if the media
559                                                          has audio and is playing. This brings the code into
560                                                          compliance with the detached element behavior outlined
561                                                          in the HTML5 spec.
562         * html/HTMLMediaElement.idl: Added ActiveDOMObject annotation so that all derived classes are
563                                      considered ActiveDOMObjects.
564
565 2013-03-07  Jeffrey Pfau  <jpfau@apple.com>
566
567         CFNetwork cache partitioning does not work properly on subdomains
568         https://bugs.webkit.org/show_bug.cgi?id=111772
569
570         Reviewed by David Kilzer.
571
572         Ensure that the cache partitioning is done over the top privately-controlled domain for the NSURLRequest.
573
574         Not possible to test with current automated test tools, must be tested manually.
575
576         * loader/cache/MemoryCache.cpp: Remove extraneous calls to partitionName
577         (WebCore):
578         (WebCore::MemoryCache::add):
579         (WebCore::MemoryCache::revalidationSucceeded):
580         (WebCore::MemoryCache::resourceForRequest):
581         (WebCore::MemoryCache::evict):
582         (WebCore::MemoryCache::removeResourcesWithOrigin):
583         * platform/network/cf/ResourceRequest.h: Put top privately-controlled domain reduction code into ResourceRequest::partitionName
584         (ResourceRequest):
585         (WebCore::ResourceRequest::cachePartition):
586         (WebCore::ResourceRequest::setCachePartition): Pre-process the partition name
587         * platform/network/cf/ResourceRequestCFNet.cpp:
588         (WebCore):
589         (WebCore::ResourceRequest::partitionName):
590         * platform/network/mac/ResourceRequestMac.mm:
591         (WebCore::ResourceRequest::doUpdatePlatformRequest): Use a UTF-8 version of the cache partition name
592
593 2013-03-07  Kenneth Russell  <kbr@google.com>
594
595         Compute WebGL context attributes from DrawingBuffer when it is used
596         https://bugs.webkit.org/show_bug.cgi?id=111666
597
598         Reviewed by James Robinson.
599
600         Fixed computation of antialias flag when DrawingBuffer is used.
601
602         No new tests; covered by existing tests. Ran WebGL conformance
603         tests on desktop Linux and Android to test.
604
605         * html/canvas/WebGLRenderingContext.cpp:
606         (WebCore):
607         (WebCore::WebGLRenderingContext::getContextAttributes):
608             Query DrawingBuffer, when used, for antialias flag.
609
610 2013-03-07  Beth Dakin  <bdakin@apple.com>
611
612         Need API to draw custom overhang area
613         https://bugs.webkit.org/show_bug.cgi?id=111679
614         -and corresponding-
615         <rdar://problem/13291415>
616
617         Reviewed by Simon Fraser.
618
619         This will allow clients to put custom images into the top or bottom overhang area.
620
621         New FrameView API takes a bool indicating whether the client wants a top/bottom 
622         overhang layer. If the bool is true, the overhang layer will be returned. 
623         * WebCore.exp.in:
624         * page/FrameView.cpp:
625         (WebCore::FrameView::setWantsLayerForTopOverHangArea):
626         (WebCore::FrameView::setWantsLayerForBottomOverHangArea):
627         * page/FrameView.h:
628         (FrameView):
629
630         Keep member variables for the top and bottom overhang layers. Create them if 
631         necessary, and update them if the root layer changes.
632         * rendering/RenderLayerCompositor.cpp:
633         (WebCore::RenderLayerCompositor::updateRootLayerPosition):
634         (WebCore::RenderLayerCompositor::updateLayerForTopOverhangArea):
635         (WebCore::RenderLayerCompositor::updateLayerForBottomOverhangArea):
636         (WebCore::RenderLayerCompositor::reportMemoryUsage):
637         * rendering/RenderLayerCompositor.h:
638         (RenderLayerCompositor):
639
640 2013-03-07  Gavin Barraclough  <barraclough@apple.com>
641
642         Reduce page cache size on Mac
643         https://bugs.webkit.org/show_bug.cgi?id=111795
644
645         Rubber stamped by Geoff Garen
646
647         5 entries is unnecessarily large; research show 3 should suffice.
648         On a low memory warning we should clear this completely.
649
650         * platform/mac/MemoryPressureHandlerMac.mm:
651         (WebCore::MemoryPressureHandler::releaseMemory):
652             - clear the page cache completely
653
654 2013-03-07  Simon Fraser  <simon.fraser@apple.com>
655
656         Rename Mac's TileCache to TileController, and WebTileCacheLayer to WebTiledBackingLayer
657         https://bugs.webkit.org/show_bug.cgi?id=111779
658
659         Reviewed by Tim Horton.
660         
661         "TileCache" was a name conflict in downstream code, so rename it to TileController.
662         The layer that has a TileController is now a WebTiledBackingLayer (which fits with
663         the TiledBacking API that TileController exposes).
664         
665         Also renamed the flags in PlatformCALayer to match.
666
667         Rename only, no behavior change.
668
669         * WebCore.xcodeproj/project.pbxproj:
670         * page/scrolling/mac/ScrollingTreeScrollingNodeMac.mm:
671         (WebCore::ScrollingTreeScrollingNodeMac::logExposedUnfilledArea):
672         * platform/graphics/GraphicsLayerClient.h:
673         (WebCore::GraphicsLayerClient::shouldUseTiledBacking):
674         * platform/graphics/ca/GraphicsLayerCA.cpp:
675         (WebCore::GraphicsLayerCA::GraphicsLayerCA):
676         (WebCore::GraphicsLayerCA::recursiveCommitChanges):
677         (WebCore::GraphicsLayerCA::platformCALayerShowRepaintCounter):
678         (WebCore::GraphicsLayerCA::platformCALayerDidCreateTiles):
679         (WebCore::GraphicsLayerCA::updateVisibleRect):
680         (WebCore::GraphicsLayerCA::getDebugBorderInfo):
681         (WebCore::GraphicsLayerCA::requiresTiledLayer):
682         (WebCore::GraphicsLayerCA::swapFromOrToTiledLayer):
683         * platform/graphics/ca/GraphicsLayerCA.h:
684         * platform/graphics/ca/PlatformCALayer.h:
685         (WebCore::PlatformCALayer::usesTiledBackingLayer):
686         * platform/graphics/ca/mac/PlatformCALayerMac.mm:
687         (PlatformCALayer::PlatformCALayer):
688         (PlatformCALayer::~PlatformCALayer):
689         (PlatformCALayer::tiledBacking):
690         * platform/graphics/ca/mac/TileController.h: Renamed from Source/WebCore/platform/graphics/ca/mac/TileCache.h.
691         * platform/graphics/ca/mac/WebTileLayer.h:
692         (TileController):
693         * platform/graphics/ca/mac/WebTileLayer.mm:
694         (-[WebTileLayer drawInContext:]):
695         (-[WebTileLayer setTileController:WebCore::]):
696         (-[WebTileLayer logFilledFreshTile]):
697         * platform/graphics/ca/mac/WebTiledBackingLayer.h: Renamed from Source/WebCore/platform/graphics/ca/mac/WebTileCacheLayer.h.
698         * platform/graphics/ca/mac/WebTiledBackingLayer.mm: Renamed from Source/WebCore/platform/graphics/ca/mac/WebTileCacheLayer.mm.
699         * platform/graphics/mac/WebLayer.mm:
700         (drawLayerContents):
701         * rendering/RenderLayerBacking.cpp:
702         (WebCore::RenderLayerBacking::RenderLayerBacking):
703         (WebCore::RenderLayerBacking::shouldUseTiledBacking):
704         (WebCore::RenderLayerBacking::adjustTiledBackingCoverage):
705         (WebCore::RenderLayerBacking::createPrimaryGraphicsLayer):
706         * rendering/RenderLayerBacking.h:
707         (WebCore::RenderLayerBacking::usingTiledBacking):
708         (RenderLayerBacking):
709         (WebCore::RenderLayerBacking::hasTiledBackingFlatteningLayer):
710         * rendering/RenderLayerCompositor.cpp:
711         (WebCore::RenderLayerCompositor::frameViewDidLayout):
712         (WebCore::RenderLayerCompositor::rootFixedBackgroundsChanged):
713         (WebCore::RenderLayerCompositor::supportsFixedRootBackgroundCompositing):
714
715 2013-03-07  Alexey Proskuryakov  <ap@apple.com>
716
717         FormData should allow setting filename to empty
718         https://bugs.webkit.org/show_bug.cgi?id=111687
719
720         Reviewed by Brady Eidson.
721
722         Tests: http/tests/local/formdata/send-form-data-with-empty-blob-filename.html
723                http/tests/local/formdata/send-form-data-with-empty-file-filename.html
724
725         * platform/network/FormData.cpp: (WebCore::FormData::appendKeyValuePairItems):
726         Missing value is a null string. If the string is empty, we should treat is as
727         authoritative.
728
729 2013-03-07  David Hyatt  <hyatt@apple.com>
730
731         REGRESSION: fast/border/border-fit-2.html needs updating
732         https://bugs.webkit.org/show_bug.cgi?id=111776
733
734         Reviewed by Simon Fraser.
735
736         This test is incorrectly shrinking the border image now.
737         We need to apply some clamping to the border-fit like the
738         old code did. The pixel results *are* still changing though,
739         since a layout-time shrinkage will not result in right-aligned
740         boxes in an LTR block when the left edge gets chopped. We'll
741         have to see if this behavioral change ends up being a problem,
742         but for now we'll rebaseline and assume it will be ok.
743
744         * rendering/RenderBlock.cpp:
745         (WebCore::RenderBlock::fitBorderToLinesIfNeeded):
746
747 2013-03-07  Antoine Quint  <graouts@apple.com>
748
749         Web Inspector: provide reasons why a layer was composited in the LayerTreeAgent
750         https://bugs.webkit.org/show_bug.cgi?id=111703
751
752         Introduce a new LayerTree.reasonsForCompositingLayer(layerId) method which returns
753         the list of reasons why the provided layer was composited as an object with an
754         optional property for each possible reason. The RenderLayerCompositor already knows
755         how to provide this information via its own reasonsForCompositing() method, and we
756         process the returned bitmask to populate the object sent to the front-end.
757
758         Reviewed by Timothy Hatcher.
759
760         Test: inspector-protocol/layers/layers-compositing-reasons.html
761
762         * inspector/Inspector.json:
763         * inspector/InspectorLayerTreeAgent.cpp:
764         (WebCore::InspectorLayerTreeAgent::reasonsForCompositingLayer):
765         (WebCore):
766         * inspector/InspectorLayerTreeAgent.h:
767         (InspectorLayerTreeAgent):
768
769 2013-03-07  Anders Carlsson  <andersca@apple.com>
770
771         Add a didFocusTextField callback to the injected bundle form client
772         https://bugs.webkit.org/show_bug.cgi?id=111771
773
774         Reviewed by Andreas Kling.
775
776         Export a symbol needed by WebKit2.
777
778         * WebCore.exp.in:
779
780 2013-03-06  James Robinson  <jamesr@chromium.org>
781
782         [chromium] Stop using WebTransformationMatrix on WebLayer
783         https://bugs.webkit.org/show_bug.cgi?id=111635
784
785         Reviewed by Adrienne Walker.
786
787         Switches over to the SkMatrix44 transform setters.
788
789         * platform/graphics/chromium/GraphicsLayerChromium.cpp:
790         (WebCore::transformToSkMatrix44):
791           Utility for convering a WebCore::TransformationMatrix to an SkMatrix44.
792           Will move to a more common location once it gets more callers.
793         (WebCore::GraphicsLayerChromium::updateTransform):
794         (WebCore::GraphicsLayerChromium::updateChildrenTransform):
795
796 2013-03-07  Eric Carlson  <eric.carlson@apple.com>
797
798         [Mac] allow iOS to use CaptionUserPreferencesMac
799         https://bugs.webkit.org/show_bug.cgi?id=111770
800
801         Reviewed by Dean Jackson.
802
803         No new tests, covered by existing tests.
804
805         * page/CaptionUserPreferencesMac.h:
806         * page/CaptionUserPreferencesMac.mm:
807         (WebCore::userCaptionPreferencesChangedNotificationCallback): Respond to notifications on
808             the web thread.
809
810 2013-03-07  Mike West  <mkwst@chromium.org>
811
812         Move side-effects on hover/active state out of hit-testing
813         https://bugs.webkit.org/show_bug.cgi?id=98168
814
815         Reviewed by Julien Chaffraix.
816
817         Original patch by Allan Sandfeld Jensen; I'm just tweaking things.
818
819         Document::updateHoverActiveState is currently called during hit testing
820         to update the hover and active states of elements effected by mouse
821         movements (or their keyboard equivalents). This conflates the hit test
822         algorithm itself with side-effects associated with specific use-cases.
823
824         This conflation makes it very difficult to reuse the hover/active logic
825         for things other than hit testing. 'mouseenter'/'mouseleave' events[1]
826         are one example of a feature that would be simple to implement on top of
827         this existing logic if we split it out from the hit testing path, and
828         instead call it explicitly when necessary. An explicit split between
829         hit testing and its side-effects will also enable us to simplify the
830         logic in future patches with well-named parameters, rather than relying
831         on stuffing properties into HitTestRequest.
832
833         This patch drops the call to Document::updateHoverActiveState from
834         RenderView::hitTest, and adjusts the three call-sites in EventHandler
835         to explicitly call out to it rather than Document::updateStyleIfNeeded.
836         The latter call is still necessary but has been folded into
837         updateHoverActiveState, as the former is never called without calling
838         the latter.
839
840         [1]: http://wkbug.com/18930
841
842         * dom/Document.h:
843         * dom/Document.cpp:
844         (WebCore::Document::updateHoverActiveState):
845             First, this function must now only be called from contexts that were
846             performing a read/write hit-test: the code asserts this
847             precondition.
848
849             Second, rather than accepting a HitTestResult, the function accepts
850             an Element* from which to begin the hover/active chain changes.
851
852             Third, we have to explicitly update the hover/active states for
853             documents between the updated element and the top-level document.
854             The hit-testing logic was taking care of this for us, now we need to
855             take care of it ourselves.
856
857             Fourth, call out to updateStyleIfNeeded rather than making our
858             caller do so. The calls were always paired; now that's explicit.
859         (WebCore::Document::prepareMouseEvent):
860         * page/EventHandler.cpp:
861         (WebCore::EventHandler::hitTestResultAtPoint):
862         (WebCore::EventHandler::sendContextMenuEventForKey):
863         (WebCore::EventHandler::hoverTimerFired):
864             Call out to updateHoverActiveState rather than updateStyleIfNeeded.
865         * rendering/RenderView.cpp:
866         (WebCore::RenderView::hitTest):
867             Drop the call to updateHoverActiveState.
868
869 2013-03-07  Sheriff Bot  <webkit.review.bot@gmail.com>
870
871         Unreviewed, rolling out r145097.
872         http://trac.webkit.org/changeset/145097
873         https://bugs.webkit.org/show_bug.cgi?id=111765
874
875         Triggers an ASSERT in the Chromium port (Requested by abarth
876         on #webkit).
877
878         * html/FileInputType.cpp:
879         (WebCore::FileInputType::appendFormData):
880         * platform/network/FormData.cpp:
881         (WebCore::FormData::appendKeyValuePairItems):
882
883 2013-03-07  Chris Fleizach  <cfleizach@apple.com>
884
885         AX: Can't activate links with VoiceOver in Safari
886         https://bugs.webkit.org/show_bug.cgi?id=111755
887
888         Reviewed by Tim Horton.
889
890         VoiceOver is relying on the press action being the first action in the list. We changed
891         that order inadvertently recently, which confuses VoiceOver.
892
893         Test: platform/mac/accessibility/press-action-is-first.html
894
895         * accessibility/mac/WebAccessibilityObjectWrapperMac.mm:
896         (-[WebAccessibilityObjectWrapper accessibilityActionNames]):
897
898 2013-03-07  Rafael Weinstein  <rafaelw@chromium.org>
899
900         Unreviewed, rolling out r145083.
901         http://trac.webkit.org/changeset/145083
902         https://bugs.webkit.org/show_bug.cgi?id=110733
903
904         caused lots crashes in http/tests/security/xssAuditor/* tests
905
906         * html/parser/XSSAuditor.cpp:
907         (WebCore::XSSAuditor::XSSAuditor):
908         (WebCore::XSSAuditor::init):
909         (WebCore::XSSAuditor::filterToken):
910         * html/parser/XSSAuditor.h:
911         * html/parser/XSSAuditorDelegate.cpp:
912         (WebCore::XSSAuditorDelegate::didBlockScript):
913         * html/parser/XSSAuditorDelegate.h:
914         (WebCore::XSSInfo::create):
915         (XSSInfo):
916         (WebCore::XSSInfo::XSSInfo):
917
918 2013-03-07  Michelangelo De Simone  <michelangelo@webkit.org>
919
920         [CSS Shaders] Implement hue and saturation non-separable blend modes
921         https://bugs.webkit.org/show_bug.cgi?id=109464
922
923         Added the following GLSL helper functions to the CustomFilterValidatedProgram:
924
925             - css_Sat(C): returns the saturation for the color C
926             - css_SetSat(C, s): sets the saturation s on the color C
927             - css_SetSatHelper(Cmin, Cmid, Cmax, s): helper function for css_SetSat
928
929         The above functions are being used for the "hue" and "saturation" non-separable
930         blend modes, the relevant spec for such modes is at URL:
931         https://dvcs.w3.org/hg/FXTF/rawfile/tip/compositing/index.html#blendingnonseparable
932
933         Reviewed by Dean Jackson.
934
935         Tests: css3/filters/custom/custom-filter-nonseparable-blend-mode-hue.html
936                css3/filters/custom/custom-filter-nonseparable-blend-mode-saturation.html
937
938         * platform/graphics/filters/CustomFilterValidatedProgram.cpp:
939         (WebCore::CustomFilterValidatedProgram::blendFunctionString):
940
941 2013-03-07  Andrey Lushnikov  <lushnikov@chromium.org>
942
943         Web Inspector: [ACE] set correct font
944         https://bugs.webkit.org/show_bug.cgi?id=111747
945
946         Reviewed by Pavel Feldman.
947
948         No new tests.
949
950         Set class "source-code" for the ace editor element.
951
952         * inspector/front-end/AceTextEditor.js:
953         (WebInspector.AceTextEditor):
954
955 2013-03-06  Ojan Vafai  <ojan@chromium.org>
956
957         Recalculate borders at the beginning of table layout
958         https://bugs.webkit.org/show_bug.cgi?id=111634
959
960         Reviewed by Julien Chaffraix.
961
962         Doing it in convertStyleLogicalWidthToComputedWidth missed some dynamic
963         relayout cases. I confirmed that the new results match the results we
964         would get if we set the border width initially instead of dynamically.
965
966         * rendering/RenderTable.cpp:
967         (WebCore::RenderTable::convertStyleLogicalWidthToComputedWidth):
968         (WebCore::RenderTable::layout):
969
970 2013-03-07  David Hyatt  <hyatt@apple.com>
971
972         border-fit-adjust should happen at layout time rather than paint time
973         https://bugs.webkit.org/show_bug.cgi?id=111606
974         <rdar://problem/13101714>
975
976         Reviewed by Antti Koivisto.
977
978         In order for border-fit-adjust to be accurate in more cases, it needs
979         to be a layout-time adjustment rather than a paint-time adjustment.
980         Specifically there are cases where an LTR adjusted box was right-aligned
981         by its container, and without genuinely shrinking the size of the box,
982         we end up chopping off the right edge but not shifting the box to the
983         right to compensate.
984         
985         This patch changes border-fit-adjust to now do the adjustment using
986         the override width mechanism and a second layout pass instead of just
987         hacking painting.
988
989         Test: fast/block/border-fit-with-right-alignment.html
990
991         * rendering/RenderBlock.cpp:
992         (WebCore::RenderBlock::layoutBlock):
993         Calls fitBorderToLinesIfNeeded at the end of layout to do a second
994         layout pass if the adjustment needs to be made.
995
996         (WebCore::RenderBlock::fitBorderToLinesIfNeeded):
997         Renamed borderFitAdjust to fitBorderToLinesIfNeeded and made it
998         non-virtual, since it's no longer called from RenderBox code. Changed it
999         to do a relayout using override widths if an adjustment is needed.
1000
1001         * rendering/RenderBlock.h:
1002         (RenderBlock):
1003         Renamed borderFitAdjust to fitBorderToLinesIfNeeded and made it
1004         non-virtual.
1005
1006         * rendering/RenderBox.cpp:
1007         (WebCore::RenderBox::paintBoxDecorations):
1008         (WebCore::RenderBox::paintMask):
1009         Removed the paint-time border-fit adjustment.
1010
1011         (WebCore::RenderBox::computeLogicalWidthInRegion):
1012         Use the override width when border-fit is set to lines.
1013
1014         * rendering/RenderBox.h:
1015         (RenderBox):
1016         Remove the virtual borderFitAdjust method.
1017
1018 2013-03-07  Allan Sandfeld Jensen  <allan.jensen@digia.com>
1019
1020         REGRESSION(r143727): Clicking / selecting inside an <embed> is broken
1021         https://bugs.webkit.org/show_bug.cgi?id=111217
1022
1023         Reviewed by Julien Chaffraix.
1024
1025         Hit-testing into child frames need to happen in RenderPart, otherwise
1026         we will miss frame views in <embed> and <object> elements. 
1027
1028         Test: fast/dom/nodesFromRect/nodesFromRect-embedded-frame-content.html
1029
1030         * rendering/RenderFrameBase.cpp:
1031         * rendering/RenderFrameBase.h:
1032         (RenderFrameBase):
1033         * rendering/RenderPart.cpp:
1034         (WebCore::RenderPart::nodeAtPoint):
1035         * rendering/RenderPart.h:
1036         (RenderPart):
1037
1038 2013-03-07  Alexey Proskuryakov  <ap@apple.com>
1039
1040         FormData should allow setting filename to empty
1041         https://bugs.webkit.org/show_bug.cgi?id=111687
1042
1043         Reviewed by Brady Eidson.
1044
1045         Tests: http/tests/local/formdata/send-form-data-with-empty-blob-filename.html
1046                http/tests/local/formdata/send-form-data-with-empty-file-filename.html
1047
1048         * html/FileInputType.cpp: (WebCore::FileInputType::appendFormData):
1049         Use a Blob for empty file input, not a hacky File with empty path.
1050
1051         * platform/network/FormData.cpp: (WebCore::FormData::appendKeyValuePairItems):
1052         Missing value is a null string. If the string is empty, we should treat is as
1053         authoritative.
1054
1055 2013-03-07  Andrey Lushnikov  <lushnikov@chromium.org>
1056
1057         Web Inspector: [CodeMirror] dublicated horizontal scroll
1058         https://bugs.webkit.org/show_bug.cgi?id=111712
1059
1060         Reviewed by Pavel Feldman.
1061
1062         Set a box-sizing css property on all codemirror elements to
1063         "content-box".
1064
1065         No new tests.
1066
1067         * inspector/front-end/cm/cmdevtools.css:
1068         (.CodeMirror *):
1069
1070 2013-03-07  Vsevolod Vlasov  <vsevik@chromium.org>
1071
1072         Web Inspector: Styles sidebar pane toolbar disappears in horizontal split mode.
1073         https://bugs.webkit.org/show_bug.cgi?id=111735
1074
1075         Reviewed by Pavel Feldman.
1076
1077         * inspector/front-end/ElementsPanel.js:
1078         (WebInspector.ElementsPanel.prototype._splitVertically):
1079         * inspector/front-end/elementsPanel.css:
1080         (.sidebar-pane.composite .metrics-and-computed .sidebar-pane-toolbar):
1081
1082 2013-03-07  Zan Dobersek  <zdobersek@igalia.com>
1083
1084         [GTK] Limit the supported compilers to GCC >= 4.7 and Clang >= 3.0
1085         https://bugs.webkit.org/show_bug.cgi?id=109932
1086
1087         Reviewed by Martin Robinson.
1088
1089         * GNUmakefile.am: Replace references to SYMBOL_VISIBILITY_INLINES and SYMBOL_VISIBILITY variables with the actual flags.
1090         They are now available by default due to the limited set of supported compilers.
1091         * bindings/gobject/GNUmakefile.am: Ditto.
1092
1093 2013-03-07  Mike West  <mkwst@chromium.org>
1094
1095         XSSAuditor should send only one console error when blocking a page.
1096         https://bugs.webkit.org/show_bug.cgi?id=110733
1097
1098         Reviewed by Daniel Bates.
1099
1100         Currently, we send two console errors when XSSAuditor blocks a page:
1101         "Refused to execute a JavaScript script. Source code of script found
1102         within request.\n", and "Entire page will be blocked.".
1103
1104         We should only send one message, tuning it properly for the context, and
1105         including the URL of the page effected by the XSSAuditor's work.
1106
1107         Covered by rebaselines of all the XSSAuditor and 'reflected-xss' tests.
1108
1109         * html/parser/XSSAuditor.cpp:
1110         * html/parser/XSSAuditor.h:
1111         (WebCore::XSSAuditor::XSSAuditor):
1112             Add two booleans to track the headers used to set the XSSAuditor state.
1113         (WebCore::XSSAuditor::init):
1114             Save a copy of the document's URL even if we're not generating a
1115             report upon violation: we'll need it for the console messages. Also
1116             populate the didSendValidXXXHeader booleans for use later.
1117         (WebCore::XSSAuditor::filterToken):
1118             Add detail about the header status to the constructed XSSInfo object.
1119         * html/parser/XSSAuditorDelegate.cpp:
1120         (WebCore::buildConsoleError):
1121             Move message construction out into a separate inlined function, as
1122             it's becoming complex.
1123         (WebCore::XSSAuditorDelegate::didBlockScript):
1124             Fold the "Entire page will be blocked" message into the main console
1125             error.
1126         * html/parser/XSSAuditorDelegate.h:
1127         (WebCore::XSSInfo::create):
1128         (WebCore::XSSInfo::XSSInfo):
1129             Add detail about header status to XSSInfo in order to correctly
1130             construct the console error.
1131
1132 2013-03-07  Vsevolod Vlasov  <vsevik@chromium.org>
1133
1134         Web Inspector: Add some more compilation annotations to NavigatorView
1135         https://bugs.webkit.org/show_bug.cgi?id=111730
1136
1137         Reviewed by Alexander Pavlov.
1138
1139         * inspector/front-end/NavigatorView.js:
1140
1141 2013-03-06  Gustavo Noronha Silva  <gns@gnome.org>
1142
1143         [GTK] Enable translations for WebKit2
1144         https://bugs.webkit.org/show_bug.cgi?id=111398
1145
1146         Reviewed by Martin Robinson.
1147
1148         Build change only, thus no tests.
1149
1150         * GNUmakefile.am: distribute po files.
1151         * platform/gtk/po/POTFILES.in: adjust paths for translatable files.
1152
1153 2013-03-07  Andrey Lushnikov  <lushnikov@chromium.org>
1154
1155         Web Inspector: [CodeMirror] update codemirror to version 3.1
1156         https://bugs.webkit.org/show_bug.cgi?id=111711
1157
1158         Reviewed by Vsevolod Vlasov.
1159
1160         Update code mirror experimental editor to version 3.1
1161
1162         No new tests.
1163
1164         * inspector/front-end/cm/codemirror.css:
1165         (.CodeMirror div.CodeMirror-cursor):
1166         (.CodeMirror div.CodeMirror-secondarycursor):
1167         (.CodeMirror.cm-keymap-fat-cursor div.CodeMirror-cursor):
1168         (.CodeMirror.cm-keymap-fat-cursor div.CodeMirror-cursor:not(#nonsense_id)):
1169         (.CodeMirror div.CodeMirror-cursor.CodeMirror-overwrite):
1170         (.CodeMirror-gutters):
1171         (.CodeMirror-linewidget):
1172         (.CodeMirror-widget):
1173         (.CodeMirror-focused div.CodeMirror-cursor):
1174         (@media print):
1175         * inspector/front-end/cm/codemirror.js:
1176         (window.CodeMirror):
1177         (window.CodeMirror.):
1178
1179 2013-03-07  Sergio Correia  <sergio.correia@openbossa.org>
1180
1181         OpenGLShims: fix check for ANGLE GLES2 extensions
1182         https://bugs.webkit.org/show_bug.cgi?id=111656
1183
1184         Reviewed by Simon Hausmann.
1185
1186         The check for ANGLE GLES2 extensions is currently being overriden
1187         with checks for APPLE extensions in lookupOpenGLFunctionAddress().
1188
1189         No new tests. No user visible behavior changed.
1190
1191         * platform/graphics/OpenGLShims.cpp:
1192         (WebCore::lookupOpenGLFunctionAddress):
1193
1194 2013-03-07  David Kilzer  <ddkilzer@apple.com>
1195
1196         Rename visible_units.h to VisibleUnits.h in WebCore.vcxproj.filters
1197         <http://webkit.org/b/111426>
1198
1199         * WebCore.vcxproj/WebCore.vcxproj.filters: Rename visible_units.h
1200         to VisibleUnits.h and re-sort.
1201
1202 2013-03-07  Vsevolod Vlasov  <vsevik@chromium.org>
1203
1204         Web Inspector: Support a shortcut for reloading front-end in debug mode.
1205         https://bugs.webkit.org/show_bug.cgi?id=111709
1206
1207         Reviewed by Pavel Feldman.
1208
1209         * inspector/front-end/buildSystemOnly.js:
1210         * inspector/front-end/inspector.js:
1211         (WebInspector.documentKeyDown):
1212
1213 2013-03-07  Vsevolod Vlasov  <vsevik@chromium.org>
1214
1215         Web Inspector: Support setting up file system mappings from scripts panel context menu.
1216         https://bugs.webkit.org/show_bug.cgi?id=111583
1217
1218         Reviewed by Pavel Feldman.
1219
1220         Added context menu items to set up network - file system mappings from sources panel.
1221         Implemented mapping add/remove methods on Workspace.
1222         Added a dialog suggesting to reload front-end after making such changes.
1223
1224         * English.lproj/localizedStrings.js:
1225         * inspector/front-end/FileSystemMapping.js:
1226         (WebInspector.FileSystemMappingImpl.prototype.fileSystemPath):
1227         * inspector/front-end/FileSystemProjectDelegate.js:
1228         (WebInspector.FileSystemWorkspaceProvider.prototype._fileSystemRemoved):
1229         (WebInspector.FileSystemWorkspaceProvider.prototype.fileSystemPath):
1230         * inspector/front-end/FilteredItemSelectionDialog.js:
1231         (WebInspector.FilteredItemSelectionDialog.prototype.onEnter):
1232         (WebInspector.FilteredItemSelectionDialog.prototype.setQuery):
1233         (WebInspector.SelectUISourceCodeDialog):
1234         (WebInspector.SelectUISourceCodeDialog.prototype.uiSourceCodeSelected):
1235         (WebInspector.SelectUISourceCodeDialog.prototype.filterProject):
1236         (WebInspector.SelectUISourceCodeDialog.prototype.filterUISourceCode):
1237         (WebInspector.SelectUISourceCodeDialog.prototype.selectItem):
1238         (WebInspector.SelectUISourceCodeDialog.prototype._uiSourceCodeAdded):
1239         (WebInspector.OpenResourceDialog):
1240         (WebInspector.OpenResourceDialog.prototype.uiSourceCodeSelected):
1241         (WebInspector.OpenResourceDialog.prototype.filterProject):
1242         (WebInspector.SelectUISourceCodeForProjectTypeDialog):
1243         (WebInspector.SelectUISourceCodeForProjectTypeDialog.prototype.uiSourceCodeSelected):
1244         (WebInspector.SelectUISourceCodeForProjectTypeDialog.prototype.filterProject):
1245         (WebInspector.SelectUISourceCodeForProjectTypeDialog.show):
1246         * inspector/front-end/ScriptsPanel.js:
1247         (WebInspector.ScriptsPanel.prototype._mapFileSystemToNetwork.mapFileSystemToNetwork):
1248         (WebInspector.ScriptsPanel.prototype._mapFileSystemToNetwork):
1249         (WebInspector.ScriptsPanel.prototype._removeNetworkMapping):
1250         (WebInspector.ScriptsPanel.prototype._mapNetworkToFileSystem.mapNetworkToFileSystem):
1251         (WebInspector.ScriptsPanel.prototype._mapNetworkToFileSystem):
1252         (WebInspector.ScriptsPanel.prototype.):
1253         (WebInspector.ScriptsPanel.prototype._appendUISourceCodeMappingItems):
1254         (WebInspector.ScriptsPanel.prototype._appendUISourceCodeItems):
1255         * inspector/front-end/SettingsScreen.js:
1256         (WebInspector.WorkspaceSettingsTab):
1257         (WebInspector.WorkspaceSettingsTab.prototype.wasShown):
1258         (WebInspector.WorkspaceSettingsTab.prototype._reset):
1259         * inspector/front-end/ViewportControl.js:
1260         (WebInspector.ViewportControl.prototype.refresh):
1261         * inspector/front-end/Workspace.js:
1262         (WebInspector.Workspace.prototype.addMapping):
1263         (WebInspector.Workspace.prototype.removeMapping):
1264         * inspector/front-end/externs.js:
1265         (WebInspector.suggestReload):
1266         * inspector/front-end/inspector.js:
1267         (WebInspector.suggestReload):
1268
1269 2013-03-07  Vsevolod Vlasov  <vsevik@chromium.org>
1270
1271         Web Inspector: Add support for frontend reloading
1272         https://bugs.webkit.org/show_bug.cgi?id=111727
1273
1274         Reviewed by Pavel Feldman.
1275
1276         This patch adds support for frontend reloading including:
1277           - making sure no messages are sent to backend once frontend started reloading
1278           - updating frontend url with up-to-date dockSide query parameter value.
1279
1280         * inspector/front-end/InspectorBackend.js:
1281         (InspectorBackendClass.prototype.sendMessageObjectToBackend):
1282         (InspectorBackendClass.prototype.disconnect):
1283         * inspector/front-end/externs.js:
1284         (WebInspector.reload):
1285         * inspector/front-end/inspector.js:
1286         (WebInspector.reload):
1287
1288 2013-03-07  Alexei Filippov  <alph@chromium.org>
1289
1290         Web Inspector: Change profile start button caption depending on profile type.
1291         https://bugs.webkit.org/show_bug.cgi?id=111698
1292
1293         Change the start profiling button caption to "Snapshot" for
1294         snapshot-like profile types, e.g. JS heap snapshot, native memory snapshot.
1295
1296         Reviewed by Yury Semikhatsky.
1297
1298         * English.lproj/localizedStrings.js:
1299         * inspector/front-end/HeapSnapshotView.js:
1300         (WebInspector.HeapSnapshotProfileType.prototype.isInstantProfile):
1301         * inspector/front-end/NativeMemorySnapshotView.js:
1302         (WebInspector.NativeSnapshotProfileType.prototype.isInstantProfile):
1303         (WebInspector.NativeMemoryProfileType.prototype.isInstantProfile):
1304         * inspector/front-end/ProfileLauncherView.js:
1305         (WebInspector.ProfileLauncherView):
1306         (WebInspector.ProfileLauncherView.prototype.addProfileType):
1307         (WebInspector.ProfileLauncherView.prototype._updateControls):
1308         (WebInspector.MultiProfileLauncherView.prototype._updateControls):
1309         (WebInspector.MultiProfileLauncherView.prototype._profileTypeChanged):
1310         * inspector/front-end/ProfilesPanel.js:
1311         (WebInspector.ProfileType.prototype.isInstantProfile):
1312
1313 2013-03-07  Bruno de Oliveira Abinader  <bruno.abinader@basyskom.com>
1314
1315         [texmap] Remove direct access to clip state from clip stack
1316         https://bugs.webkit.org/show_bug.cgi?id=111630
1317
1318         Reviewed by Allan Sandfeld Jensen.
1319
1320         As we are now monitoring the clip state from
1321         TextureMapperGL/BitmapTextureGL, have direct access to clip state object
1322         would eventually make it dirty without properly setting the
1323         'clipStateDirty' flag. This bug intends to substitute direct access with
1324         auxiliary functions which would set the clip state dirty when necessary.
1325
1326         No new tests. No user visible behavior changed.
1327
1328         * platform/graphics/texmap/TextureMapperGL.cpp:
1329         (WebCore::TextureMapperGL::ClipStack::intersect):
1330         (WebCore::TextureMapperGL::ClipStack::setStencilIndex):
1331         (WebCore::TextureMapperGL::drawBorder):
1332         (WebCore::TextureMapperGL::drawTexture):
1333         (WebCore::TextureMapperGL::beginScissorClip):
1334         (WebCore::TextureMapperGL::beginClip):
1335         Replaced direct access with auxiliary functions.
1336
1337         * platform/graphics/texmap/TextureMapperGL.h:
1338         (ClipStack): Removed ClipStack::current() function.
1339         (WebCore::TextureMapperGL::ClipStack::getStencilIndex): Added.
1340         (WebCore::TextureMapperGL::ClipStack::isCurrentScissorBoxEmpty): Added.
1341
1342 2013-03-07  Bruno de Oliveira Abinader  <bruno.abinader@basyskom.com>
1343
1344         [Texturemapper] transform-style 'flat' value is broken
1345         https://bugs.webkit.org/show_bug.cgi?id=111566
1346
1347         Reviewed by Allan Sandfeld Jensen.
1348
1349         After changes from r144290, the CSS3 'transform-styles' property, when
1350         used with 'flat' value, resulted in non-stenciled rendering inside
1351         clipped area - vide example from Surfin' Safari blog:
1352         https://www.webkit.org/blog-files/3d-transforms/transform-style.html
1353
1354         This patch forces the clip state to be applied when binding the default
1355         surface.
1356
1357         No new tests. No user visible behavior changed.
1358
1359         * platform/graphics/texmap/TextureMapperGL.cpp:
1360         (WebCore::TextureMapperGL::ClipStack::apply):
1361         (WebCore::TextureMapperGL::ClipStack::applyIfNeeded): Added.
1362         Moved state cache check from apply() to applyIfNeeded().
1363
1364         (WebCore::BitmapTextureGL::clearIfNeeded):
1365         (WebCore::BitmapTextureGL::bind):
1366         (WebCore::TextureMapperGL::beginScissorClip):
1367         (WebCore::TextureMapperGL::beginClip):
1368         (WebCore::TextureMapperGL::endClip):
1369         * platform/graphics/texmap/TextureMapperGL.h:
1370         (ClipStack):
1371         Use applyIfNeeded() to check for clip state before clipping.
1372
1373 2013-03-07  Andrey Lushnikov  <lushnikov@chromium.org>
1374
1375         Web Inspector: refactoring: move TextEditorModel.Indent enum into TextUtils
1376         https://bugs.webkit.org/show_bug.cgi?id=111715
1377
1378         Reviewed by Pavel Feldman.
1379
1380         Move WebInspector.TextEditorModel.Indent into WebInspector.TextUtils namespace.
1381
1382         No new tests: no change in behaviour.
1383
1384         * inspector/front-end/SettingsScreen.js:
1385         (WebInspector.GenericSettingsTab):
1386         * inspector/front-end/TextEditorModel.js:
1387         (WebInspector.TextEditorModel.endsWithBracketRegex.):
1388         * inspector/front-end/TextUtils.js:
1389
1390 2013-03-07  Ian Vollick  <vollick@chromium.org>
1391
1392         Fix painting phases for composited scrolling
1393         https://bugs.webkit.org/show_bug.cgi?id=107618
1394
1395         Reviewed by Simon Fraser.
1396
1397         With composited scrolling, the scrolling contents layer paints the 
1398         foreground and the main graphics layer paints the background. This 
1399         causes a few problems:
1400
1401           1) If we create a foreground layer, we end up with two layers painting 
1402              the foreground phase.
1403           2) Focus rings / outlines paint into the foreground layer, so they end
1404              up moving around with the scrolling contents.
1405           3) Neg z-order descendants paint in the the main graphics layer and
1406              will therefore not scroll.
1407
1408         To deal with 1) we need to stop painting the foreground into both the
1409         foreground and scrolling contents layers. We also need to ensure that
1410         the foreground layer is the right size and has the right offset from
1411         renderer if we're on the composited scrolling path.
1412
1413         To deal with 2) and 3), I have added a new graphics layer painting phase 
1414         flag -- GraphicsLayerPaintCompositedScroll -- and applied it to two
1415         layers in the subtree created by RenderLayerBacking. This ultimately
1416         affects the paint phase passed to RenderLayer::paintLayerContents and
1417         allows us to paint the focus rings, outlines and negative z-order
1418         descendants into the proper layers.
1419
1420         Tests: compositing/overflow/composited-scrolling-paint-phases.html
1421                compositing/overflow/do-not-paint-outline-into-composited-scrolling-contents.html
1422                compositing/overflow/paint-neg-z-order-descendants-into-scrolling-contents-layer.html
1423
1424         * page/Frame.h:
1425           Added a flag for including painting phases in the layer tree dump.
1426         (WebCore::GraphicsLayer::dumpProperties):
1427           Can now dump painting phase information, but only if requested.
1428         * platform/graphics/GraphicsLayerClient.h:
1429           Added a new entry to GraphicsLayerPaintingPhaseFlags for comp-scroll.
1430         (WebCore::RenderLayer::paintLayerContents):
1431           Updated the logic to account for the new comp-scroll-related paint
1432           phase flag.
1433         * rendering/RenderLayer.h:
1434           Added the RenderLayer painting phase counterpart to
1435           GraphicsLayerPaintCompositedScroll.
1436         * rendering/RenderLayerBacking.cpp:
1437         (WebCore::RenderLayerBacking::updateGraphicsLayerGeometry):
1438           Ensures that the foreground layer is sized correctly for comp-scroll.
1439         (WebCore::RenderLayerBacking::updateScrollingLayers):
1440           If we have a foreground layer, the scrolling contents layer no
1441           longer gets assigned the foreground painting phase.
1442         (WebCore::RenderLayerBacking::paintingPhaseForPrimaryLayer):
1443           If we're comp-scrolling, then the primary layer gets the new phase.
1444         (WebCore::RenderLayerBacking::paintIntoLayer):
1445           Simply translates the new graphics layer painting phase to its
1446           render layer counterpart.
1447         (WebCore::RenderLayerCompositor::layerTreeAsText):
1448         * testing/Internals.cpp:
1449         (WebCore::Internals::layerTreeAsText):
1450         * testing/Internals.h:
1451         * testing/Internals.idl:
1452           The above changes are solely plumbing to allow layout tests to
1453           request that paint phase information be included in the layer tree
1454           dump.
1455
1456 2013-03-07  Allan Sandfeld Jensen  <allan.jensen@digia.com>
1457
1458         [Qt] Use Qt5.1 supportedMimeTypes methods.
1459         https://bugs.webkit.org/show_bug.cgi?id=111185
1460
1461         Reviewed by Jocelyn Turcotte.
1462
1463         Uses the supportedMimeTypes() methods from QImageReader and QImageWriter when available.
1464
1465         * platform/MIMETypeRegistry.cpp:
1466         (WebCore::initializeSupportedImageMIMETypes):
1467         (WebCore::initializeSupportedImageMIMETypesForEncoding):
1468
1469 2013-03-07  Ilya Tikhonovsky  <loislo@chromium.org>
1470
1471         Web Inspector: Flame Chart. Stick item color to the function.
1472         https://bugs.webkit.org/show_bug.cgi?id=111697
1473
1474         Reviewed by Yury Semikhatsky.
1475
1476         Different nodes associated with a single function have to use the same color.
1477         Minor polish: do not filter out (idle) and (program) items. They were big due to an error on v8 side.
1478         Set minimum width to 0 for more precise picture.
1479
1480         * inspector/front-end/FlameChart.js:
1481         (WebInspector.FlameChart):
1482         (WebInspector.FlameChart.prototype._rootNodes):
1483         (WebInspector.FlameChart.prototype.draw):
1484         (WebInspector.FlameChart.prototype._drawNode):
1485         (WebInspector.FlameChart.prototype._drawBar):
1486
1487 2013-03-07  Andrey Lushnikov  <lushnikov@chromium.org>
1488
1489         Web Inspector: [ACE] gutter size should be fixed.
1490         https://bugs.webkit.org/show_bug.cgi?id=111576
1491
1492         Reviewed by Pavel Feldman.
1493
1494         Add a custom ace editor build that supports setFixedGutterWidth configuration
1495         parameter and switch this setting on.
1496
1497         No new tests.
1498
1499         * inspector/front-end/AceTextEditor.js:
1500         (WebInspector.AceTextEditor): Switch fixedGutterWidth setting on.
1501         * inspector/front-end/ace/ace.js:
1502         (.):
1503
1504 2013-03-07  Sheriff Bot  <webkit.review.bot@gmail.com>
1505
1506         Unreviewed, rolling out r145059.
1507         http://trac.webkit.org/changeset/145059
1508         https://bugs.webkit.org/show_bug.cgi?id=111707
1509
1510         crash webkit build (Requested by tasak on #webkit).
1511
1512         * CMakeLists.txt:
1513         * GNUmakefile.list.am:
1514         * Target.pri:
1515         * WebCore.gypi:
1516         * WebCore.xcodeproj/project.pbxproj:
1517         * css/CSSAllInOne.cpp:
1518         * css/DocumentRuleSets.cpp:
1519         (WebCore::ShadowDistributedRules::collectMatchRequests):
1520         * css/DocumentRuleSets.h:
1521         * css/ElementRuleCollector.cpp: Removed.
1522         * css/ElementRuleCollector.h: Removed.
1523         * css/PageRuleCollector.cpp: Removed.
1524         * css/PageRuleCollector.h: Removed.
1525         * css/StyleResolver.cpp:
1526         (WebCore::leftToRightDeclaration):
1527         (WebCore):
1528         (WebCore::rightToLeftDeclaration):
1529         (WebCore::StyleResolver::State::ensureRuleList):
1530         (WebCore::StyleResolver::State::clear):
1531         (WebCore::StyleResolver::addMatchedProperties):
1532         (WebCore::StyleResolver::addElementStyleProperties):
1533         (MatchingUARulesScope):
1534         (WebCore::MatchingUARulesScope::MatchingUARulesScope):
1535         (WebCore::MatchingUARulesScope::~MatchingUARulesScope):
1536         (WebCore::MatchingUARulesScope::isMatchingUARules):
1537         (WebCore::StyleResolver::collectMatchingRules):
1538         (WebCore::StyleResolver::collectMatchingRulesForRegion):
1539         (WebCore::StyleResolver::sortAndTransferMatchedRules):
1540         (WebCore::StyleResolver::matchScopedAuthorRules):
1541         (WebCore::StyleResolver::matchHostRules):
1542         (WebCore::StyleResolver::matchAuthorRules):
1543         (WebCore::StyleResolver::matchUserRules):
1544         (WebCore::StyleResolver::matchUARules):
1545         (WebCore::StyleResolver::collectMatchingRulesForList):
1546         (WebCore::compareRules):
1547         (WebCore::StyleResolver::sortMatchedRules):
1548         (WebCore::StyleResolver::matchAllRules):
1549         (WebCore::StyleResolver::State::initForStyleResolve):
1550         (WebCore::StyleResolver::styleSharingCandidateMatchesRuleSet):
1551         (WebCore::StyleResolver::styleForElement):
1552         (WebCore::StyleResolver::styleForKeyframe):
1553         (WebCore::StyleResolver::pseudoStyleForElement):
1554         (WebCore::StyleResolver::styleForPage):
1555         (WebCore::StyleResolver::pseudoStyleRulesForElement):
1556         (WebCore::StyleResolver::ruleMatches):
1557         (WebCore::StyleResolver::checkRegionSelector):
1558         (WebCore::comparePageRules):
1559         (WebCore::StyleResolver::matchPageRules):
1560         (WebCore::checkPageSelectorComponents):
1561         (WebCore::StyleResolver::matchPageRulesForList):
1562         (WebCore::StyleResolver::isLeftPage):
1563         (WebCore::StyleResolver::isFirstPage):
1564         (WebCore::StyleResolver::pageName):
1565         * css/StyleResolver.h:
1566         (WebCore::MatchRequest::MatchRequest):
1567         (MatchRequest):
1568         (StyleResolver):
1569         (MatchResult):
1570         (WebCore::StyleResolver::State::State):
1571         (State):
1572         (WebCore::StyleResolver::State::takeRuleList):
1573         (WebCore::StyleResolver::State::setSameOriginOnly):
1574         (WebCore::StyleResolver::State::isSameOriginOnly):
1575         (WebCore::StyleResolver::State::pseudoStyleRequest):
1576         (WebCore::StyleResolver::State::setMode):
1577         (WebCore::StyleResolver::State::mode):
1578         (WebCore::StyleResolver::State::matchedRules):
1579         (WebCore::StyleResolver::State::addMatchedRule):
1580         * inspector/InspectorCSSAgent.cpp:
1581         (WebCore::InspectorCSSAgent::willMatchRule):
1582         * inspector/InspectorCSSAgent.h:
1583         (WebCore):
1584         (InspectorCSSAgent):
1585         * inspector/InspectorInstrumentation.cpp:
1586         (WebCore):
1587         (WebCore::InspectorInstrumentation::willMatchRuleImpl):
1588         * inspector/InspectorInstrumentation.h:
1589         (WebCore):
1590         (InspectorInstrumentation):
1591         (WebCore::InspectorInstrumentation::willMatchRule):
1592
1593 2013-03-07  Kentaro Hara  <haraken@chromium.org>
1594
1595         Unreviewed. Rebaselined run-bindings-tests.
1596
1597         * bindings/scripts/test/V8/V8TestInterface.cpp:
1598         (WebCore):
1599         * bindings/scripts/test/V8/V8TestObj.cpp:
1600         (WebCore):
1601
1602 2013-03-07  Takashi Sakamoto  <tasak@google.com>
1603
1604         [Refactoring] Implement RuleCollector
1605         https://bugs.webkit.org/show_bug.cgi?id=109916
1606
1607         Reviewed by Antti Koivisto.
1608
1609         Implemented rule collector for an element and collector for a page.
1610         Not all members in class State are required entire while resolving
1611         a style.
1612
1613         No new tests, because just refactoring.
1614
1615         * CMakeLists.txt:
1616         * GNUmakefile.list.am:
1617         * Target.pri:
1618         * WebCore.gypi:
1619         * WebCore.xcodeproj/project.pbxproj:
1620         * css/CSSAllInOne.cpp:
1621         Added ElementRuleCollector and PageRuleCollector.
1622         * css/DocumentRuleSets.cpp:
1623         (WebCore::ShadowDistributedRules::collectMatchRequests):
1624         Since behaviorAtBoundary is a state owned by ElementRuleCollector,
1625         removed from here.
1626         * css/DocumentRuleSets.h:
1627         (WebCore::ShadowDistributedRules::isEmpty):
1628         Added to quickly check whether there exist any ShadowDistributedRules
1629         or not.
1630         * css/ElementRuleCollector.cpp: Copied from Source/WebCore/css/StyleResolver.cpp.
1631         (WebCore):
1632         (WebCore::ElementRuleCollector::matchedResult):
1633         (WebCore::ElementRuleCollector::matchedRuleList):
1634         (WebCore::ElementRuleCollector::addMatchedRule):
1635         (WebCore::ElementRuleCollector::clearMatchedRules):
1636         (WebCore::ElementRuleCollector::ensureRuleList):
1637         (WebCore::ElementRuleCollector::addElementStyleProperties):
1638         (WebCore::ElementRuleCollector::collectMatchingRules):
1639         (WebCore::ElementRuleCollector::collectMatchingRulesForRegion):
1640         (WebCore::ElementRuleCollector::sortAndTransferMatchedRules):
1641         (WebCore::ElementRuleCollector::matchScopedAuthorRules):
1642         (WebCore::ElementRuleCollector::matchHostRules):
1643         (WebCore::ElementRuleCollector::matchShadowDistributedRules):
1644         (WebCore::ElementRuleCollector::matchAuthorRules):
1645         (WebCore::ElementRuleCollector::matchUserRules):
1646         (WebCore::ElementRuleCollector::matchUARules):
1647         (WebCore::ElementRuleCollector::ruleMatches):
1648         (WebCore::ElementRuleCollector::collectMatchingRulesForList):
1649         (WebCore::ElementRuleCollector::sortMatchedRules):
1650         (WebCore::ElementRuleCollector::matchAllRules):
1651         Moved these methods from StyleResolver to this class.
1652         (WebCore::ElementRuleCollector::hasAnyMatchingRules):
1653         This method is used for checking whether a given element can share
1654         a cache.
1655         * css/ElementRuleCollector.h: Copied from Source/WebCore/css/StyleResolver.h.
1656         (WebCore):
1657         (WebCore::ElementRuleCollector::ElementRuleCollector):
1658         Use styleResolver instance to initialize its member variables, i.e.
1659         SelectorFilter, RuleSets, InspectorCSSOMWrappers, and
1660         StyleScopedResolver.
1661         (ElementRuleCollector):
1662         (WebCore::ElementRuleCollector::setMode):
1663         (WebCore::ElementRuleCollector::setPseudoStyleRequest):
1664         (WebCore::ElementRuleCollector::setSameOriginOnly):
1665         (WebCore::ElementRuleCollector::setRegionForStyling):
1666         Mode, SameOriginOnly, RegionForStyling are only used while collecting
1667         matched rules.
1668         (WebCore::ElementRuleCollector::setMedium):
1669         Need to know which default stylesheet should be looked up.
1670         (WebCore::ElementRuleCollector::document):
1671         * css/PageRuleCollector.cpp: Copied from Source/WebCore/css/StyleResolver.cpp.
1672         (WebCore::comparePageRules):
1673         (WebCore::PageRuleCollector::isLeftPage):
1674         (WebCore::PageRuleCollector::isFirstPage):
1675         (WebCore::PageRuleCollector::pageName):
1676         (WebCore::PageRuleCollector::matchAllPageRules):
1677         (WebCore::PageRuleCollector::matchPageRules):
1678         (WebCore::checkPageSelectorComponents):
1679         (WebCore::PageRuleCollector::matchPageRulesForList):
1680         Moved from StyleResolver.
1681         * css/PageRuleCollector.h: Copied from Source/WebCore/css/StyleResolver.h.
1682         (WebCore):
1683         (WebCore::PageRuleCollector::PageRuleCollector):
1684         (PageRuleCollector):
1685         (WebCore::PageRuleCollector::matchedResult):
1686         * css/StyleResolver.cpp:
1687         (WebCore):
1688         (WebCore::StyleResolver::State::clear):
1689         (WebCore::StyleResolver::MatchResult::addMatchedProperties):
1690         (WebCore::StyleResolver::State::initForStyleResolve):
1691         (WebCore::StyleResolver::styleSharingCandidateMatchesRuleSet):
1692         (WebCore::StyleResolver::styleForElement):
1693         (WebCore::StyleResolver::styleForKeyframe):
1694         (WebCore::StyleResolver::pseudoStyleForElement):
1695         (WebCore::StyleResolver::styleForPage):
1696         (WebCore::StyleResolver::pseudoStyleRulesForElement):
1697         (WebCore::StyleResolver::applyMatchedProperties):
1698         * css/StyleResolver.h:
1699         (WebCore::MatchRequest::MatchRequest):
1700         Removed behaviorAtBoundary. Instead, ElementRuleCollector have the
1701         state.
1702         (MatchRequest):
1703         (WebCore::StyleResolver::selectorFilter):
1704         Added to obtain SelectorFilter in ElementRuleCollector's constructor.
1705         (StyleResolver):
1706         (MatchResult):
1707         (WebCore::StyleResolver::State::State):
1708         To pass ASSERT in StyleResolver::applyProperties, need to keep
1709         m_regionForStyling.
1710         (State):
1711         (WebCore::StyleResolver::State::regionForStyling):
1712         (WebCore::StyleResolver::State::useSVGZoomRules):
1713         (WebCore::StyleResolver::hasSelectorForId):
1714         (WebCore):
1715         (WebCore::checkRegionSelector):
1716         * inspector/InspectorCSSAgent.cpp:
1717         (WebCore::InspectorCSSAgent::willMatchRule):
1718         Removed StyleResolver from its parameter list. Instead, added
1719         InspectorCSSOMWrappers and DocumentStyleSheetCollection.
1720         * inspector/InspectorCSSAgent.h:
1721         (WebCore):
1722         (InspectorCSSAgent):
1723         * inspector/InspectorInstrumentation.cpp:
1724         (WebCore):
1725         (WebCore::InspectorInstrumentation::willMatchRuleImpl):
1726         * inspector/InspectorInstrumentation.h:
1727         (WebCore):
1728         (InspectorInstrumentation):
1729         (WebCore::InspectorInstrumentation::willMatchRule):
1730
1731 2013-03-07  Andrey Lushnikov  <lushnikov@chromium.org>
1732
1733         Web Inspector: [ACE] add experimental breakpoint support
1734         https://bugs.webkit.org/show_bug.cgi?id=111573
1735
1736         Reviewed by Pavel Feldman.
1737
1738         No new tests.
1739
1740         - Implement attributes model for ace editor. Update attribute
1741         locations by handling onTextChange event from editor.
1742         - Implement breakpoints atop of attributes model.
1743
1744         * inspector/front-end/AceTextEditor.js:
1745         (WebInspector.AceTextEditor):
1746         (WebInspector.AceTextEditor.prototype._updateBreakpoints):
1747         (WebInspector.AceTextEditor.prototype._updateLineAttributes):
1748         (WebInspector.AceTextEditor.prototype._onTextChange):
1749         (WebInspector.AceTextEditor.prototype.addBreakpoint):
1750         (WebInspector.AceTextEditor.prototype.removeBreakpoint):
1751         (WebInspector.AceTextEditor.prototype.getAttribute):
1752         (WebInspector.AceTextEditor.prototype.setAttribute):
1753         (WebInspector.AceTextEditor.prototype.removeAttribute):
1754         * inspector/front-end/ace/acedevtools.css:
1755         (.ace-editor-container):
1756         (.ace_gutter-cell.webkit-breakpoint):
1757         (.ace_gutter-cell.webkit-breakpoint-conditional):
1758         (.ace_gutter-cell.webkit-breakpoint-disabled):
1759         (.ace_gutter-cell):
1760
1761 2013-03-07  Antoine Quint  <graouts@apple.com>
1762
1763         Web Inspector: identify layers for CSS generated content in LayerTreeAgent
1764         https://bugs.webkit.org/show_bug.cgi?id=111551
1765
1766         Layers can be associated with pseudo elements, elements that are generated
1767         when ::before or ::after pseudo-classes are used to style an element and
1768         provide additional rendering using the CSS "content" property. In order to
1769         identify that a layer is associated to a pseudo element, we add a new set of
1770         optional properties on the Layer object: "isGeneratedContent", "pseudoElementId"
1771         and "pseudoClass".
1772
1773         We need to provide the "pseudoElementId" for the same reason we provide a
1774         "nodeId" for the Layer. This is so that the front-end can identify that a
1775         layer whose "layerId" may have changed between two layer tree updates is
1776         used to render content for the same pseudo element.
1777
1778         In the instance that a layer is rendering generated content, we also set
1779         the "nodeId" to be the generating node's id. The generating node is the
1780         node in the DOM that the user styled using ::before or ::after pseudo-classes.
1781         We also add the pseudo-class used as the "pseudoClass" property such that the
1782         front-end may provide useful information to the user about what type of
1783         pseudo-class yielded the generation of this layer. We also deal with the
1784         possibility that the layer is a reflection for a pseudo element.
1785     
1786         Since pseudo elements are not part of the user-visible DOM, and thus can't be
1787         pushed to the front-end, we maintain a special ID hash map in the LayerTreeAgent.
1788         In order to be able to unbind a pseudo element id and a pseudo element, we add a
1789         destructor method to PseudoElement and provide a new instrumentation call so that
1790         the LayerTreeAgent may be notified of a PseudoElement being destroyed. This
1791         reflects the principle we use to update the RenderLayer bindings when a
1792         RenderLayer is destroyed, as notified by the RenderLayerCompositor.
1793
1794         Reviewed by Simon Fraser.
1795
1796         Test: inspector-protocol/layers/layers-generated-content.html
1797
1798         * dom/PseudoElement.cpp:
1799         (WebCore::PseudoElement::~PseudoElement): New destructor used to notify
1800         InspectorInstrumentation of a PseudoElement being destroyed, such that
1801         it can eventually be relayed to the InspectorLayerTreeAgent.
1802         (WebCore):
1803         * dom/PseudoElement.h:
1804         (PseudoElement):
1805         * inspector/Inspector.json: Add the new PseudoElementId type used for
1806         the new "pseudoElementId" property on Layer, to which we also add the
1807         "isGeneratedContent" and "pseudoClass" properties.
1808         * inspector/InspectorInstrumentation.cpp:
1809         (WebCore):
1810         (WebCore::InspectorInstrumentation::pseudoElementDestroyedImpl):
1811         * inspector/InspectorInstrumentation.h:
1812         (WebCore):
1813         (InspectorInstrumentation):
1814         (WebCore::InspectorInstrumentation::pseudoElementDestroyed): New method
1815         called in the PseudoElement destructor used to relay the fact that a
1816         PseudoElement was destroyed to the InspectorLayerTreeAgent.
1817         * inspector/InspectorLayerTreeAgent.cpp:
1818         (WebCore::InspectorLayerTreeAgent::reset): Clear the new PseudoElement
1819         identifier maps.
1820         (WebCore::InspectorLayerTreeAgent::pseudoElementDestroyed): Remove any
1821         identifier binding for the provided PseudoElement being destroyed.
1822         (WebCore):
1823         (WebCore::InspectorLayerTreeAgent::buildObjectForLayer): Set the new
1824         "isGeneratedContent", "pseudoElementId" and "pseudoClass" properties on
1825         the Layer object for layers associated with a pseudo element.
1826         (WebCore::InspectorLayerTreeAgent::bind): Use emptyString() instead of "".
1827         (WebCore::InspectorLayerTreeAgent::unbind): Use an iterator instead of a
1828         get() and remove() combination in order to reduce lookups and mimick the
1829         code written for unbindPseudoElement().
1830         (WebCore::InspectorLayerTreeAgent::bindPseudoElement): Binds the provided
1831         PseudoElement to a unique identifier.
1832         (WebCore::InspectorLayerTreeAgent::unbindPseudoElement): Unbinds the
1833         provided PseudoElement from its unique identifier.
1834         * inspector/InspectorLayerTreeAgent.h:
1835         (InspectorLayerTreeAgent):
1836
1837 2013-03-07  Keishi Hattori  <keishi@webkit.org>
1838
1839         Add clear button to date/time input types
1840         https://bugs.webkit.org/show_bug.cgi?id=111319
1841
1842         Reviewed by Kent Tamura.
1843
1844         We want to remove the clear button from the calendar picker (Bug 109439)
1845         so we are adding the clear button to the right side of the input element.
1846
1847         Tests: fast/forms/date-multiple-fields/date-multiple-fields-clearbutton-change-and-input-events.html
1848                fast/forms/datetimelocal-multiple-fields/datetimelocal-multiple-fields-clearbutton-change-and-input-events.html
1849                fast/forms/month-multiple-fields/month-multiple-fields-clearbutton-change-and-input-events.html
1850                fast/forms/time-multiple-fields/time-multiple-fields-clearbutton-change-and-input-events.html
1851                fast/forms/week-multiple-fields/week-multiple-fields-clearbutton-change-and-input-events.html
1852
1853         * CMakeLists.txt: Added ClearButtonElement.cpp
1854         * GNUmakefile.list.am: Ditto.
1855         * Target.pri: Ditto.
1856         * WebCore.gypi: Ditto.
1857         * WebCore.vcproj/WebCore.vcproj: Ditto.
1858         * WebCore.vcxproj/WebCore.vcxproj: Ditto.
1859         * WebCore.vcxproj/WebCore.vcxproj.filters: Ditto.
1860         * WebCore.xcodeproj/project.pbxproj: Ditto.
1861         * css/html.css:
1862         (input::-webkit-clear-button): Styles for the clear button.
1863         * html/BaseMultipleFieldsDateAndTimeInputType.cpp:
1864         (WebCore::BaseMultipleFieldsDateAndTimeInputType::editControlValueChanged):
1865         (WebCore::BaseMultipleFieldsDateAndTimeInputType::BaseMultipleFieldsDateAndTimeInputType):
1866         (WebCore::BaseMultipleFieldsDateAndTimeInputType::~BaseMultipleFieldsDateAndTimeInputType):
1867         (WebCore::BaseMultipleFieldsDateAndTimeInputType::createShadowSubtree):
1868         (WebCore::BaseMultipleFieldsDateAndTimeInputType::destroyShadowSubtree):
1869         (WebCore::BaseMultipleFieldsDateAndTimeInputType::disabledAttributeChanged):
1870         (WebCore::BaseMultipleFieldsDateAndTimeInputType::requiredAttributeChanged): Hide clear button if the value is required.
1871         (WebCore):
1872         (WebCore::BaseMultipleFieldsDateAndTimeInputType::readonlyAttributeChanged):
1873         (WebCore::BaseMultipleFieldsDateAndTimeInputType::updateInnerTextValue):
1874         (WebCore::BaseMultipleFieldsDateAndTimeInputType::focusAndSelectClearButtonOwner): Called on mouse down on clear button.
1875         (WebCore::BaseMultipleFieldsDateAndTimeInputType::shouldClearButtonRespondToMouseEvents):
1876         (WebCore::BaseMultipleFieldsDateAndTimeInputType::clearValue):
1877         (WebCore::BaseMultipleFieldsDateAndTimeInputType::updateClearButtonVisibility): We want to hide the clear button if the value is required or the value is empty.
1878         * html/BaseMultipleFieldsDateAndTimeInputType.h:
1879         (BaseMultipleFieldsDateAndTimeInputType):
1880         * html/HTMLInputElement.cpp:
1881         (WebCore::HTMLInputElement::updateClearButtonVisibility):
1882         (WebCore):
1883         (WebCore::HTMLInputElement::requiredAttributeChanged):
1884         * html/HTMLInputElement.h:
1885         (HTMLInputElement):
1886         * html/InputType.cpp:
1887         (WebCore::InputType::requiredAttributeChanged): Notifies the InputType that the required attribute has changed.
1888         (WebCore):
1889         (WebCore::InputType::updateClearButtonVisibility):
1890         * html/InputType.h:
1891         (InputType):
1892         * html/shadow/ClearButtonElement.cpp: Added.
1893         (WebCore):
1894         (WebCore::ClearButtonElement::ClearButtonElement):
1895         (WebCore::ClearButtonElement::create):
1896         (WebCore::ClearButtonElement::detach):
1897         (WebCore::ClearButtonElement::releaseCapture): Stop capturing mouse events.
1898         (WebCore::ClearButtonElement::defaultEventHandler):
1899         * html/shadow/ClearButtonElement.h: Added.
1900         (WebCore):
1901         (ClearButtonElement):
1902         (ClearButtonOwner):
1903         (WebCore::ClearButtonElement::ClearButtonOwner::~ClearButtonOwner):
1904         (WebCore::ClearButtonElement::removeClearButtonOwner):
1905         (WebCore::ClearButtonElement::isMouseFocusable):
1906
1907 2013-03-07  Eugene Klyuchnikov  <eustas@chromium.org>
1908
1909         Web Inspector: Refactorings: Prepare SuggestBox for reuse.
1910         https://bugs.webkit.org/show_bug.cgi?id=111301
1911
1912         Reviewed by Alexander Pavlov.
1913
1914         1) Remove userEnteredText from delegate interface.
1915            Pass prefix to updateSuggestions instead.
1916         2) Clarify that suggestions array is never null.
1917
1918         * inspector/front-end/SuggestBox.js:
1919         (WebInspector.SuggestBox): Renamed parameter/member.
1920         (WebInspector.SuggestBox.prototype._updateItems):
1921         Minor readability changes.
1922         (WebInspector.SuggestBox.prototype._canShowBox):
1923         Use userEnteredText parameter.
1924         (WebInspector.SuggestBox.prototype.updateSuggestions):
1925         Pass userEnteredText to _canShowBox.
1926         * inspector/front-end/DatabaseQueryView.js: Fix JSDocs.
1927         * inspector/front-end/RuntimeModel.js: Ditto.
1928         * inspector/front-end/TextPrompt.js: Ditto.
1929         (WebInspector.TextPrompt.prototype._completionsReady):
1930         Pass userEnteredText to updateSuggestions.
1931
1932 2013-03-07  Victor Carbune  <vcarbune@chromium.org>
1933
1934         TextTrackRegion Constructor
1935         https://bugs.webkit.org/show_bug.cgi?id=110511
1936
1937         Reviewed by Adam Barth.
1938
1939         This is an initial patch for implementing the TextTrackRegion
1940         defined in the "WebVTT Extension: Regions for rendering cue groups":
1941         https://dvcs.w3.org/hg/text-tracks/raw-file/default/608toVTT/region.html
1942
1943         The feature components are hidden behind the WEBVTT_REGIONS flag
1944         and is currently disabled by default in all ports and tests skipped.
1945
1946         Test: media/track/regions-webvtt/text-track-region-constructor.html
1947
1948         * WebCore.gypi: Added files to be included for building Chromium with
1949         feature enabled (it is disabled by default).
1950         * html/track/TextTrackRegion.cpp: Added.
1951         (WebCore):
1952         (WebCore::TextTrackRegion::TextTrackRegion):
1953         (WebCore::TextTrackRegion::~TextTrackRegion):
1954         (WebCore::TextTrackRegion::setId): Setter.
1955         (WebCore::TextTrackRegion::setWidth): Setter.
1956         (WebCore::TextTrackRegion::setHeight): Setter.
1957         (WebCore::TextTrackRegion::setRegionAnchorX): Setter.
1958         (WebCore::TextTrackRegion::setRegionAnchorY): Setter.
1959         (WebCore::TextTrackRegion::setViewportAnchorX): Setter.
1960         (WebCore::TextTrackRegion::setViewportAnchorY): Setter.
1961         (WebCore::TextTrackRegion::scroll): Getter. Internally, the scroll
1962         value is stored as a boolean, but when returned is converted to either
1963         the empty string or "up".
1964         (WebCore::TextTrackRegion::setScroll): Setter.
1965         (WebCore::TextTrackRegion::setRegionSettings): Not used yet (see b/109818)
1966         * html/track/TextTrackRegion.h: Added.
1967         (WebCore):
1968         (TextTrackRegion):
1969         (WebCore::TextTrackRegion::create):
1970         (WebCore::TextTrackRegion::track): Getter.
1971         (WebCore::TextTrackRegion::id): Getter.
1972         (WebCore::TextTrackRegion::width): Getter.
1973         (WebCore::TextTrackRegion::height): Getter.
1974         (WebCore::TextTrackRegion::regionAnchorX): Getter.
1975         (WebCore::TextTrackRegion::regionAnchorY): Getter.
1976         (WebCore::TextTrackRegion::viewportAnchorX): Getter.
1977         (WebCore::TextTrackRegion::viewportAnchorY): Getter.
1978         (WebCore::TextTrackRegion::regionSettings): Getter, used only internally (see b/109818).
1979         * html/track/TextTrackRegion.idl: Added.
1980         * page/DOMWindow.idl: Constructor support.
1981
1982 2013-03-07  Dan Carney  <dcarney@google.com>
1983
1984         [v8] remove latin-1 transition flag
1985         https://bugs.webkit.org/show_bug.cgi?id=111692
1986
1987         Reviewed by Jochen Eisinger.
1988
1989         No new tests. No change in functionality.
1990
1991         * bindings/v8/V8ValueCache.cpp:
1992         (WebCore::makeExternalString):
1993
1994 2013-03-07  Vsevolod Vlasov  <vsevik@chromium.org>
1995
1996         Web Inspector: NavigatorView should show (program) for uiSourceCodes with empty name.
1997         https://bugs.webkit.org/show_bug.cgi?id=111691
1998
1999         Reviewed by Alexander Pavlov.
2000
2001         Made String.prototype methods return string literal, not String object.
2002
2003         * inspector/front-end/utilities.js:
2004         (String.prototype.escapeCharacters):
2005
2006 2013-03-07  Eugene Klyuchnikov  <eustas@chromium.org>
2007
2008         Web Inspector: Cmd+L (Go-to-Line) masks Go to location bar action
2009         https://bugs.webkit.org/show_bug.cgi?id=111357
2010
2011         Reviewed by Pavel Feldman.
2012
2013         Allow panel shortcut handlers to bubble event.
2014
2015         * inspector/front-end/GoToLineDialog.js:
2016         (WebInspector.GoToLineDialog.install): Minor refactoring, added JSDocs.
2017         (WebInspector.GoToLineDialog._show): Added JSDocs and return value.
2018         * inspector/front-end/Panel.js:
2019         (WebInspector.Panel.prototype.handleShortcut):
2020         Mark event as handled iff handler returned true.
2021         * inspector/front-end/ScriptsPanel.js: Added return values to handlers.
2022         * inspector/front-end/TimelinePanel.js: Ditto.
2023
2024 2013-03-06  Takashi Sakamoto  <tasak@google.com>
2025
2026         Box-shadow displayed improperly with border-radius.
2027         https://bugs.webkit.org/show_bug.cgi?id=111256
2028
2029         Reviewed by Simon Fraser.
2030
2031         RoundedRect::adjustRadii doesn't adjust radii correctly, because
2032         the method compares maxRadiusWidth with maxRadiusHeight. However,
2033         we have to compare maxRadiusWidth / rect.width() with
2034         maxRadiusHeight / rect.height().
2035
2036         Test: fast/borders/border-radius-with-box-shadow-01.html
2037
2038         * platform/graphics/RoundedRect.cpp:
2039         (WebCore::RoundedRect::adjustRadii):
2040         Should check which ratio is smaller.
2041
2042 2013-03-06  Mike West  <mkwst@chromium.org>
2043
2044         [V8] Preprocess constant values to avoid a "static_cast<signed int>" in CodeGeneratorV8.
2045         https://bugs.webkit.org/show_bug.cgi?id=111625
2046
2047         Reviewed by Kentaro Hara.
2048
2049         When processing constants in IDL files, CodeGeneratorV8 currently runs
2050         the values through 'static_cast<signed int>' in the generated code. We
2051         can avoid this miniscule bit of overhead by preprocessing the hex value
2052         in Perl when generating the code.
2053
2054         The FIXME has been in the code since it originally landed in 2009[1].
2055         Now's as good a time as any to take care of it.
2056
2057         [1]: http://trac.webkit.org/browser/trunk/Source/WebCore/bindings/scripts/CodeGeneratorV8.pm?rev=144976#L2933
2058
2059         * bindings/scripts/CodeGeneratorV8.pm:
2060         (GenerateImplementation):
2061             If we're presented with a string which begins with '0x', run it
2062             through some fairly obtuse Perlisms to first convert from a hex
2063             string to an integer ('hex($value)'), "pack" the integer as an
2064             unsigned integer ('pack("I", ...)'), and then "unpack" it as a
2065             signed integer ('unpack("i", ...)'). Because that's _of course_
2066             how you would do things.
2067
2068 2013-03-06  Paweł Forysiuk  <tuxator@o2.pl>
2069
2070         WebKit does not build without accelerated compositing after Changeset 144823
2071         https://bugs.webkit.org/show_bug.cgi?id=111597
2072
2073         Reviewed by Kentaro Hara.
2074
2075         Properly guard functions ifdefed in ScrollingCoordinator.h.
2076         Remove redundant checks and fallback code inside those functions.
2077
2078         * page/scrolling/ScrollingCoordinator.cpp:
2079         (WebCore::ScrollingCoordinator::scrollLayerForScrollableArea):
2080         (WebCore::ScrollingCoordinator::horizontalScrollbarLayerForScrollableArea):
2081         (WebCore::ScrollingCoordinator::verticalScrollbarLayerForScrollableArea):
2082         (WebCore):
2083
2084 2013-03-06  Hajime Morrita  <morrita@google.com>
2085
2086         Custom Elements Refactoring: CustomElementConstructor API shouldn't bound to HTMLElement
2087         https://bugs.webkit.org/show_bug.cgi?id=111678
2088
2089         Reviewed by Kentaro Hara.
2090
2091         The latest Custom Elements standard supports non-HTML custom elements. Even though current implementation
2092         support only HTML, it'd be better off to make API generic enough to support them.
2093
2094         This change
2095
2096         - eliminates HTMLElement from the API signature by replacing it with Element, and
2097         - rename V8HTMLCustomElement to V8CustomElement.
2098
2099         No new tests, just changing signatures and a class name.
2100
2101         * WebCore.gypi:
2102         * bindings/v8/V8CustomElement.cpp: Renamed from Source/WebCore/bindings/v8/V8HTMLCustomElement.cpp.
2103         (WebCore):
2104         (WebCore::findWrapperTypeOf):
2105         (WebCore::V8CustomElement::createWrapper):
2106         * bindings/v8/V8CustomElement.h: Renamed from Source/WebCore/bindings/v8/V8HTMLCustomElement.h.
2107         (WebCore):
2108         (V8CustomElement):
2109         (WebCore::V8CustomElement::toV8):
2110         (WebCore::V8CustomElement::wrap):
2111         (WebCore::HTMLCustomElement::wrap):
2112         * bindings/v8/custom/V8CustomElementConstructorCustom.cpp:
2113         (WebCore::V8CustomElementConstructor::callAsFunctionCallback):
2114         * dom/CustomElementConstructor.cpp:
2115         (WebCore::CustomElementConstructor::createElement):
2116         * dom/CustomElementConstructor.h:
2117         (WebCore):
2118         (CustomElementConstructor):
2119         * dom/CustomElementRegistry.cpp:
2120         (WebCore::CustomElementRegistry::constructorOf):
2121         (WebCore::CustomElementRegistry::createElement):
2122         * dom/CustomElementRegistry.h:
2123         (WebCore):
2124         (CustomElementRegistry):
2125         * dom/Document.cpp: Ensured that the document is an HTML.
2126         (WebCore::Document::registerElement):
2127         * dom/Document.idl:
2128         * dom/make_names.pl:
2129         (printWrapperFactoryCppFile):
2130         * html/HTMLDocument.idl: Moved an API to Document.idl
2131
2132 2013-03-06  Tim Horton  <timothy_horton@apple.com>
2133
2134         TileCache debug minimap should fit inside the intersection of the visible rect and exposed rect
2135         https://bugs.webkit.org/show_bug.cgi?id=111655
2136         <rdar://problem/13355773>
2137
2138         Reviewed by Simon Fraser.
2139
2140         If content clips to the exposed rect, make the TileCache minimap fit in the exposed rect too.
2141
2142         * page/scrolling/mac/ScrollingCoordinatorMac.mm:
2143         (WebCore::ScrollingCoordinatorMac::commitTreeState):
2144         * platform/graphics/TiledBacking.h:
2145         * platform/graphics/ca/mac/TileCache.mm:
2146         (WebCore::TileCache::updateTileCoverageMap):
2147
2148 2013-03-06  Sheriff Bot  <webkit.review.bot@gmail.com>
2149
2150         Unreviewed, rolling out r144726.
2151         http://trac.webkit.org/changeset/144726
2152         https://bugs.webkit.org/show_bug.cgi?id=111681
2153
2154         caused performance regression for Dromaeo attribute tests.
2155         (Requested by arpitab on #webkit).
2156
2157         * dom/Element.h:
2158         (WebCore::ElementData::getAttributeItemIndex):
2159
2160 2013-03-04  Kinuko Yasuda  <kinuko@chromium.org>
2161
2162         File.lastModifiedDate() should return the current date/time if the file date/time is not available
2163         https://bugs.webkit.org/show_bug.cgi?id=111403
2164
2165         Reviewed by Kent Tamura.
2166
2167         Per the recent File API spec change:
2168         http://www.w3.org/TR/2012/WD-FileAPI-20121025/#dfn-lastModifiedDate
2169
2170         Test: http/tests/local/fileapi/script-tests/file-last-modified-after-delete.js:
2171
2172         * fileapi/File.cpp:
2173         (WebCore::File::lastModifiedDate): Changed to return the current date/time instead null if the valid file date/time is not available.
2174         * fileapi/File.h:
2175         (File):
2176
2177 2013-03-06  Philippe Liard  <pliard@chromium.org>
2178
2179         Make RuleData support up to 8191 selectors
2180         https://bugs.webkit.org/show_bug.cgi?id=111663
2181
2182         Reviewed by Andreas Kling.
2183
2184         r125294 made RuleData consume less memory by replacing a pointer with
2185         an index encoded on 12 bits.
2186         This unfortunately breaks Chrome for Android (and others) when a lot of
2187         CSS is used or more precisely when selectorIndex cannot be stored on 12
2188         bits.
2189
2190         Threfore this change decreases the number of bits used to store
2191         m_position by 1 (from 19 to 18) and adds this extra bit to
2192         m_selectorIndex so that values up to 8191 can be stored safely without
2193         overflowing.
2194
2195         * css/RuleSet.h:
2196         (RuleData):
2197
2198 2013-03-06  Seokju Kwon  <seokju.kwon@gmail.com>
2199
2200         Web Inspector: Remove unused code from contextmenu of element panel
2201         https://bugs.webkit.org/show_bug.cgi?id=111658
2202
2203         Reviewed by Pavel Feldman.
2204
2205         No new tests (no functional changes).
2206
2207         * inspector/front-end/ElementsPanel.js:
2208         (WebInspector.ElementsPanel.prototype._contextMenuEventFired.set get var):
2209         * inspector/front-end/ElementsTreeOutline.js:
2210         (WebInspector.ElementsTreeOutline.prototype.populateContextMenu):
2211
2212 2013-03-06  Julien Chaffraix  <jchaffraix@webkit.org>
2213
2214         [CSS Grid Layout] Extend our grammar to support 2 positions for grid-{row|column}
2215         https://bugs.webkit.org/show_bug.cgi?id=110777
2216
2217         Reviewed by Tony Chang.
2218
2219         Now that we support all the logical grid properties, we can change grid-{row|column}
2220         into shorthands. That's what this change does along with extending our parsing support
2221         to handle 2 positions.
2222
2223         Tests: fast/css-grid-layout/grid-item-column-row.html
2224                fast/css-grid-layout/grid-item-end-after-get-set.html
2225                fast/css-grid-layout/grid-item-start-before-get-set.html
2226
2227         * css/CSSComputedStyleDeclaration.cpp:
2228         Removed grid-{row|column} from computedProperties as they are shorthands (see comments
2229         at computedProperties definition).
2230
2231         (WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue):
2232         (WebCore::CSSComputedStyleDeclaration::getCSSPropertyValuesForGridShorthand):
2233         Switched to using the StylePropertyShorthand and reusing the existing longhand code.
2234
2235         * css/CSSComputedStyleDeclaration.h:
2236         Added getCSSPropertyValuesForGridShorthand.
2237
2238         * css/CSSParser.cpp:
2239         (WebCore::CSSParser::parseValue):
2240         (WebCore::CSSParser::parseGridItemPositionShorthand):
2241         Added custom parsing for the shorthand, that builds on top of the longhand code.
2242
2243         * css/CSSParser.h:
2244         Added parseGridItemPositionShorthand.
2245
2246         * css/StyleResolver.cpp:
2247         (WebCore::StyleResolver::applyProperty):
2248         Removed the previous handling as shorthand are expanded at parse time.
2249
2250         * css/StylePropertySet.cpp:
2251         (WebCore::StylePropertySet::getPropertyValue):
2252         Added the new shorthands to the list.
2253
2254         * css/StylePropertyShorthand.cpp:
2255         (WebCore::webkitGridColumnShorthand):
2256         (WebCore::webkitGridRowShorthand):
2257         (WebCore::shorthandForProperty):
2258         * css/StylePropertyShorthand.h:
2259         Registered grid-{row|column} as shorthands.
2260
2261 2013-03-06  Kenneth Russell  <kbr@google.com>
2262
2263         [Chromium] Fix byte ordering bugs reading back WebGL canvases' content on Android
2264         https://bugs.webkit.org/show_bug.cgi?id=111661
2265
2266         Reviewed by James Robinson.
2267
2268         No new tests; covered by existing tests. Ran WebGL conformance
2269         tests on Android and desktop Linux to verify fix.
2270
2271         * platform/chromium/support/GraphicsContext3DChromium.cpp:
2272         (WebCore::GraphicsContext3D::paintRenderingResultsToImageData):
2273             Avoid incorrect byte swap on Android and other OSs which don't
2274             swizzle R and B channels.
2275
2276 2013-03-06  Gyuyoung Kim  <gyuyoung.kim@samsung.com>
2277
2278         [EFL] Improve warning messages when input value is out of range.
2279         https://bugs.webkit.org/show_bug.cgi?id=111534
2280
2281         Reviewed by Laszlo Gombos.
2282
2283         Show input value range when user inputs greater or less value.
2284
2285         * platform/efl/LocalizedStringsEfl.cpp:
2286         (WebCore::validationMessageRangeOverflowText):
2287         (WebCore::validationMessageRangeUnderflowText):
2288
2289 2013-03-06  Gyuyoung Kim  <gyuyoung.kim@samsung.com>
2290
2291         [EFL][WK2] Enable interactive form validation for email and url input type validation
2292         https://bugs.webkit.org/show_bug.cgi?id=111026
2293
2294         Reviewed by Laszlo Gombos.
2295
2296         WebKit EFL can check if input value is valid by enabling this feature.
2297
2298         * platform/efl/LocalizedStringsEfl.cpp: Change validation messages of email and url the same with chromium port.
2299         (WebCore::validationMessageTypeMismatchForEmailText):
2300         (WebCore::validationMessageTypeMismatchForMultipleEmailText):
2301         (WebCore::validationMessageTypeMismatchForURLText):
2302         * platform/efl/RenderThemeEfl.cpp: Add type checking conditions for email and url.
2303         (WebCore::RenderThemeEfl::supportsDataListUI):
2304
2305 2013-03-06  Aaron Colwell  <acolwell@chromium.org>
2306
2307         Remove WebCore::Node::isActiveNode() since it isn't called anywhere.
2308         https://bugs.webkit.org/show_bug.cgi?id=111646
2309
2310         Reviewed by Kentaro Hara.
2311
2312         No new tests. This removes dead code.
2313
2314         * dom/Node.h:
2315         (Node):
2316         * html/HTMLAudioElement.h:
2317
2318 2013-03-06  Abhishek Arya  <inferno@chromium.org>
2319
2320         Crash in SVGViewSpec::viewTarget
2321         https://bugs.webkit.org/show_bug.cgi?id=111648
2322
2323         Reviewed by Philip Rogers.
2324
2325         * svg/SVGViewSpec.cpp:
2326         (WebCore::SVGViewSpec::viewTarget):
2327
2328 2013-03-06  Benjamin Poulain  <benjamin@webkit.org>
2329
2330         WebKitTestRunner needs layoutTestController.elementDoesAutoCompleteForElementWithId
2331         https://bugs.webkit.org/show_bug.cgi?id=42696
2332
2333         Reviewed by Andreas Kling.
2334
2335         Since the method acts directly on a WebCore element and strictly test
2336         HTMLInputElement::shouldAutoComplete(), the test function is moved to internals.
2337
2338         * testing/Internals.cpp:
2339         (WebCore::Internals::elementShouldAutoComplete):
2340         * testing/Internals.h:
2341         * testing/Internals.idl:
2342
2343 2013-03-06  Alexey Proskuryakov  <ap@apple.com>
2344
2345         [Mac] Synthetic ResourceResponses cannot be sent over IPC without losing most information
2346         https://bugs.webkit.org/show_bug.cgi?id=111623
2347
2348         Reviewed by Brady Eidson.
2349
2350         * WebCore.exp.in: Exported functions for building synthetic responses.
2351
2352         * platform/network/ResourceResponseBase.cpp:
2353         * platform/network/ResourceResponseBase.h:
2354         Added a lot of FIXMEs.
2355
2356         * platform/network/cf/ResourceResponse.h:
2357         (WebCore::ResourceResponse::ResourceResponse):
2358         (WebCore::ResourceResponse::platformResponseIsUpToDate):
2359         Track m_platformResponseIsUpToDate flag as well as we can. Currently, it will
2360         be incorrect if a real platform response gets mutated.
2361
2362         * platform/network/cf/ResourceResponseCFNet.cpp:
2363         (WebCore::ResourceResponse::cfURLResponse): Added a FIXME about how useless this
2364         function is when it tries to create a new CFURLResponse.
2365
2366         * platform/network/mac/ResourceResponseMac.mm:
2367         (WebCore::ResourceResponse::initNSURLResponse): Added a FIXME.
2368         (WebCore::ResourceResponse::nsURLResponse): Added a return to make logic more clear.
2369         (WebCore::ResourceResponse::ResourceResponse): Track m_platformResponseIsUpToDate.
2370
2371         * platform/network/blackberry/ResourceResponse.h:
2372         * platform/network/curl/ResourceResponse.h:
2373         * platform/network/qt/ResourceResponse.h:
2374         * platform/network/soup/ResourceResponse.h:
2375         * platform/network/win/ResourceResponse.h:
2376         These platforms do not keep a platform response, so it's never up to date, and
2377         WebCore data needs to be serialized.
2378
2379 2013-03-06  Dana Jansens  <danakj@chromium.org>
2380
2381         [chromium] Remove WebSharedGraphicsContext3D class
2382         https://bugs.webkit.org/show_bug.cgi?id=111492
2383
2384         Reviewed by James Robinson.
2385
2386         Removing dead code, no new tests.
2387
2388         * WebCore.gypi:
2389         * platform/chromium/support/WebSharedGraphicsContext3D.cpp: Removed.
2390
2391 2013-03-06  Dana Jansens  <danakj@chromium.org>
2392
2393         [chromium] Don't get callbacks or create GrContext from unowned WebGraphicsContext3D
2394         https://bugs.webkit.org/show_bug.cgi?id=111638
2395
2396         Reviewed by James Robinson.
2397
2398         If the context is not owned, it's lifetime is not guaranteed, and by the time
2399         the GraphicsContext3D is destroyed, the WGC3D can already be deleted.
2400
2401         When the context is not owned by the GraphicsContext3D, then don't clean it up
2402         in the destructor or set up callbacks, as these are the owner's responsibility.
2403
2404         * platform/chromium/support/GraphicsContext3DPrivate.cpp:
2405         (WebCore::GraphicsContext3DPrivate::~GraphicsContext3DPrivate):
2406         (WebCore::GraphicsContext3DPrivate::grContext):
2407         (WebCore::GraphicsContext3DPrivate::setContextLostCallback):
2408         (WebCore::GraphicsContext3DPrivate::setErrorMessageCallback):
2409
2410 2013-02-22  Jer Noble  <jer.noble@apple.com>
2411
2412         Default mouse cursor behavior should be auto-hide for full screen video with custom controls
2413         https://bugs.webkit.org/show_bug.cgi?id=107601
2414
2415         Reviewed by Beth Dakin.
2416
2417         Test: fullscreen/video-cursor-auto-hide.html
2418
2419         To facilitate automatically hiding the mouse cursor after a certain amount of idle mouse
2420         time, add a new CSS property '-webkit-cursor-visibility', and handle that value inside of
2421         EventHandler. When that value is present, the EventHandler will start a timer which, when
2422         fired, will set the view's cursor to the None cursor. Subsequent mouse moves will either
2423         cancel the timer, or reset the auto-hide timer.
2424
2425         Add a new CSS property, '-webkit-cursor-visibility':
2426         * css/CSSComputedStyleDeclaration.cpp:
2427         (WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue):
2428         * css/CSSParser.cpp:
2429         (WebCore::CSSParser::parseValue):
2430         * css/CSSPrimitiveValueMappings.h:
2431         (WebCore::CSSPrimitiveValue::CSSPrimitiveValue):
2432         (WebCore::CSSPrimitiveValue::operator ECursorVisibility):
2433         * css/CSSProperty.cpp:
2434         (WebCore::CSSProperty::isInheritedProperty):
2435         * css/CSSPropertyNames.in:
2436         * css/CSSValueKeywords.in:
2437         * css/StyleBuilder.cpp:
2438         (WebCore::StyleBuilder::StyleBuilder):
2439         * css/StyleResolver.cpp:
2440         (WebCore::StyleResolver::applyProperty):
2441
2442         Add a rule for video descendants of full screen elements to auto-hide the cursor on hover:
2443         * css/fullscreen.css:
2444         (:-webkit-full-screen video:hover):
2445
2446         Add a new timer, m_autoHideCursorTimer, to control resetting the view's cursor to None after
2447         enough mouse idle time has passed.
2448         * page/EventHandler.cpp:
2449         (WebCore::EventHandler::EventHandler):
2450         (WebCore::EventHandler::~EventHandler):
2451         (WebCore::EventHandler::clear):
2452         (WebCore::EventHandler::selectCursor):
2453         (WebCore::EventHandler::startAutoHideCursorTimer):
2454         (WebCore::EventHandler::cancelAutoHideCursorTimer):
2455         (WebCore::EventHandler::autoHideCursorTimerFired):
2456         * page/EventHandler.h:
2457
2458         Make FrameView::isActive() a public function (like it is in its superclass).
2459         * page/FrameView.h:
2460         (FrameView):
2461
2462         Move the definition for timeWithoutMouseMovementBeforeHidingControls from page->theme()
2463         to page->settings() and allow that setting to be overridden in InternalSettings for 
2464         testing purposes:
2465         * page/Settings.cpp:
2466         (WebCore::Settings::Settings):
2467         * page/Settings.h:
2468         (WebCore::Settings::setTimeWithoutMouseMovementBeforeHidingControls):
2469         (WebCore::Settings::timeWithoutMouseMovementBeforeHidingControls):
2470         * rendering/RenderTheme.h:
2471         * testing/InternalSettings.cpp:
2472         (WebCore::InternalSettings::Backup::Backup):
2473         (WebCore::InternalSettings::Backup::restoreTo):
2474         (WebCore::InternalSettings::setTimeWithoutMouseMovementBeforeHidingControls):
2475         * testing/InternalSettings.h:
2476         (InternalSettings):
2477         * testing/InternalSettings.idl:
2478         * html/shadow/MediaControls.cpp:
2479         (WebCore::MediaControls::startHideFullscreenControlsTimer):
2480
2481         Add support to FeatureObserver for CURSOR_VISIBILITY:
2482         * page/FeatureObserver.h:
2483
2484         Enable the feature flag:
2485         * Configurations/FeatureDefines.xcconfig:
2486
2487 2013-03-06  Jer Noble  <jer.noble@apple.com>
2488
2489         Full screen from an iframe with a z-index style will allow siblings with higher z-index to overlay full screen content.
2490         https://bugs.webkit.org/show_bug.cgi?id=111637
2491
2492         Reviewed by Simon Fraser.
2493
2494         No new tests; updated fullscreen/full-screen-iframe-zIndex.html to expose bug.
2495
2496         Pages with explicit z-index: styles on their iframes will override the default z-index: UA style when
2497         elements within that iframe enter full screen mode. Mark the UA style as !important so as to not allow
2498         iframe siblings with higher z-index styles to overlay the full screen element.
2499
2500         * css/fullscreen.css:
2501         (:-webkit-full-screen):
2502
2503 2013-03-06  Levi Weintraub  <leviw@chromium.org>
2504
2505         InsertUnorderedList can lead to lost content and assertions in moveParagraphs
2506         https://bugs.webkit.org/show_bug.cgi?id=111228
2507
2508         Reviewed by Ryosuke Niwa.
2509
2510         When a list is wrapped in a presentational inline like a b tag, we'd create markup that included
2511         everything up to the b tag from moveParagraphs when intending to only move the contents of the
2512         list item. This could make it impossible to remove content from a list and trigger loss of
2513         editable text.
2514
2515         Test: editing/execCommand/insert-remove-block-list-inside-presentational-inline.html
2516
2517         * editing/EditingStyle.cpp:
2518         (WebCore::elementMatchesAndPropertyIsNotInInlineStyleDecl): Ensure there's an inline style
2519         before calling propertyExistsInStyle.
2520         (WebCore::HTMLElementEquivalent::propertyExistsInStyle): Removing null check for style.
2521         All callers ensure this value isn't null.
2522         * editing/markup.cpp:
2523         (WebCore::highestAncestorToWrapMarkup): Avoid going over RenderBlocks when finding the highest
2524         presentational ancestor to avoid leaving the bounds of the original paragraph.
2525
2526 2013-03-06  Adam Klein  <adamk@chromium.org>
2527
2528         [V8] Use implicit references instead of object groups to keep registered MutationObservers alive
2529         https://bugs.webkit.org/show_bug.cgi?id=111382
2530
2531         Reviewed by Adam Barth.
2532
2533         Two-phase approach to implicit references: after grouping objects
2534         together, add an implicit reference between each registered node's
2535         group and the MutationObserver's group (which includes wrappers from
2536         all worlds).
2537
2538         Also changed many uses of v8::Value to v8::Object where we know we're
2539         dealing with Object and the V8 API expects them.
2540
2541         Test: ManualTests/mutation-observer-leaks-nodes.html
2542
2543         * bindings/v8/V8GCController.cpp:
2544         (WebCore::ImplicitConnection::ImplicitConnection):
2545         (WebCore::ImplicitConnection::wrapper):
2546         (ImplicitConnection):
2547         (WebCore::ImplicitReference::ImplicitReference): Wrapper class holding a parent who should have an implicit reference to a child.
2548         (ImplicitReference):
2549         (WebCore::operator<): Needed for std::sort() call to avoid the overhead of using a HashMap
2550         (WebCore::WrapperGrouper::addObjectWrapperToGroup):
2551         (WebCore::WrapperGrouper::addNodeWrapperToGroup):
2552         (WebCore::WrapperGrouper::addImplicitReference):
2553         (WrapperGrouper):
2554         (WebCore::WrapperGrouper::apply):
2555
2556 2013-03-06  Ankur Taly  <ataly@google.com>
2557
2558         Modify log method in V8DOMActivityLogger so that the apiName and
2559         extraInfo arguments are of type const String& instead of const char*.
2560         This change gets rid of some of the memory ownership issues that arise
2561         with char* pointers.
2562         https://bugs.webkit.org/show_bug.cgi?id=111483
2563
2564         Reviewed by Adam Barth.
2565
2566         There are no new tests as there is no change in behavior.
2567
2568         * bindings/v8/V8DOMActivityLogger.h:
2569         (WebCore::V8DOMActivityLogger::log):
2570
2571 2013-03-06  Mike Reed  <reed@google.com>
2572
2573         Use SkTypeface API directly, rather than (soon to be private) SkFontHost
2574         https://bugs.webkit.org/show_bug.cgi?id=111588
2575
2576         Reviewed by Stephen White.
2577
2578         No new tests, as existing tests in fast/writing-mode exercise this code.
2579
2580         e.g. japanese-rl-text-with-broken-font.html
2581              vertical-subst-font-vert-no-dflt.html
2582
2583         * platform/graphics/harfbuzz/FontPlatformDataHarfBuzz.cpp:
2584         (WebCore::FontPlatformData::emSizeInFontUnits):
2585         (WebCore::FontPlatformData::openTypeTable):
2586         * platform/graphics/harfbuzz/HarfBuzzFaceSkia.cpp:
2587         (WebCore::harfBuzzSkiaGetTable):
2588         (WebCore::HarfBuzzFace::createFace):
2589         * platform/graphics/skia/SimpleFontDataSkia.cpp:
2590         (WebCore::SimpleFontData::platformInit):
2591
2592 2013-03-06  Victor Costan <costan@gmail.com>
2593
2594         Cleanup in multipart FormData sending code.
2595         https://bugs.webkit.org/show_bug.cgi?id=111603
2596
2597         Reviewed by Alexey Proskuryakov.
2598
2599         No new tests. This is cleanup.
2600
2601         * platform/network/FormDataBuilder.cpp:
2602         (WebCore::appendQuotedString): use proper types (e.g, size_t instead of
2603         unsigned long)
2604
2605 2013-03-06  Tony Gentilcore  <tonyg@chromium.org>
2606
2607         Threaded HTML parser should use 8 bit strings for attributes
2608         https://bugs.webkit.org/show_bug.cgi?id=111610
2609
2610         Reviewed by Eric Seidel.
2611
2612         This fixes a 27% regression in dromaeo_jslibattrjquery on the threaded HTML parser vs. the main thread parser.
2613
2614         No new tests because no new functionality.
2615
2616         * html/parser/CompactHTMLToken.cpp:
2617         (WebCore::CompactHTMLToken::CompactHTMLToken):
2618
2619 2013-03-06  Alpha Lam  <hclam@chromium.org>
2620
2621         More cleanup in GIFImageReader
2622         https://bugs.webkit.org/show_bug.cgi?id=111137
2623
2624         Reviewed by Stephen White.
2625
2626         Refactor GIFImageReaderReader with the following changes:
2627         + Separate GIFLZWContext for decoding states.
2628         + Replace unsigned char* with Vector<unsigned char>
2629
2630         There is no change in code behavior and just refactoring.
2631
2632         No new tests. This is covered by existing GIFImageReaderTest.
2633         I also did a local testing on a 50k image corpus and showed no regression.
2634
2635         * platform/image-decoders/gif/GIFImageDecoder.cpp:
2636         (WebCore::GIFImageDecoder::haveDecodedRow):
2637         * platform/image-decoders/gif/GIFImageDecoder.h:
2638         (GIFImageDecoder):
2639         * platform/image-decoders/gif/GIFImageReader.cpp:
2640         (GIFImageReader::outputRow):
2641         (GIFImageReader::doLZW):
2642         (GIFImageReader::decodeInternal):
2643         (GIFImageReader::prepareLZWContext):
2644         * platform/image-decoders/gif/GIFImageReader.h:
2645         (GIFFrameContext):
2646         (GIFFrameContext::GIFFrameContext):
2647         (GIFFrameContext::~GIFFrameContext):
2648         (GIFLZWContext):
2649         (GIFLZWContext::GIFLZWContext):
2650         (GIFImageReader):
2651
2652 2013-03-06  Tim Horton  <timothy_horton@apple.com>
2653
2654         Fix typo'd MainThreadScrollingBecauseOfStyleIndictaion
2655         https://bugs.webkit.org/show_bug.cgi?id=111557
2656
2657         Reviewed by Geoff Garen.
2658
2659         * page/scrolling/mac/ScrollingCoordinatorMac.mm:
2660         (WebCore::ScrollingCoordinatorMac::commitTreeState):
2661         * platform/graphics/TiledBacking.h:
2662         * platform/graphics/ca/mac/TileCache.mm:
2663         (WebCore::TileCache::updateTileCoverageMap):
2664
2665 2013-03-05  Geoffrey Garen  <ggaren@apple.com>
2666
2667         Removed some dead code in the page cache
2668         https://bugs.webkit.org/show_bug.cgi?id=111525
2669
2670         Reviewed by Alexey Proskuryakov.
2671
2672         Page cache autorelease doesn't exist anymore, so there's no need to keep
2673         around these olds hacks.
2674
2675         * WebCore.exp.in:
2676         * history/PageCache.cpp:
2677         (WebCore::PageCache::PageCache):
2678         (WebCore):
2679         * history/PageCache.h:
2680         (PageCache):
2681         * page/Settings.cpp:
2682         (WebCore::Settings::setUsesPageCache):
2683         * platform/mac/MemoryPressureHandlerMac.mm:
2684         (WebCore::MemoryPressureHandler::releaseMemory):
2685         * platform/qt/QtTestSupport.cpp:
2686         (WebKit::QtTestSupport::clearMemoryCaches):
2687
2688 2013-03-06  Rafael Weinstein  <rafaelw@chromium.org>
2689
2690         Unreviewed, rolling out r144924.
2691         http://trac.webkit.org/changeset/144924
2692         https://bugs.webkit.org/show_bug.cgi?id=109908
2693
2694         caused multiple crashes in inspector/debugger tests
2695
2696         * bindings/js/JSInjectedScriptHostCustom.cpp:
2697         * bindings/js/ScriptObject.h:
2698         * bindings/v8/ScriptObject.h:
2699         * bindings/v8/custom/V8InjectedScriptHostCustom.cpp:
2700         * inspector/InjectedScriptHost.cpp:
2701         (WebCore::InjectedScriptHost::create):
2702         (WebCore::InjectedScriptHost::InjectedScriptHost):
2703         (WebCore::InjectedScriptHost::disconnect):
2704         * inspector/InjectedScriptHost.h:
2705         (WebCore):
2706         (InjectedScriptHost):
2707         * inspector/InjectedScriptHost.idl:
2708         * inspector/InjectedScriptManager.cpp:
2709         (WebCore::InjectedScriptManager::InjectedScriptManager):
2710         (WebCore::InjectedScriptManager::discardInjectedScripts):
2711         (WebCore::InjectedScriptManager::discardInjectedScriptsFor):
2712         * inspector/InjectedScriptManager.h:
2713         (InjectedScriptManager):
2714         * inspector/InjectedScriptSource.js:
2715         (.):
2716
2717 2013-03-06  Dmitry Zvorygin  <zvorygin@chromium.org>
2718
2719         Introduce new message sources for logging.
2720         https://bugs.webkit.org/show_bug.cgi?id=110968
2721
2722         Reviewed by Pavel Feldman.
2723
2724         Added SecurityMessageSource, RenderingMessageSource, StorageMessageSource, AppCacheMessageSource, CSSMessageSource.
2725         Changed some logging lines to contain more descriptive message source.
2726
2727         * Modules/webdatabase/DatabaseBase.cpp:
2728         (WebCore::DatabaseBase::logErrorMessage):
2729         * Modules/webdatabase/DatabaseManager.cpp:
2730         (WebCore::DatabaseManager::logErrorMessage):
2731         * Modules/websockets/WebSocketChannel.cpp:
2732         (WebCore::WebSocketChannel::fail):
2733         * bindings/ScriptControllerBase.cpp:
2734         (WebCore::ScriptController::canExecuteScripts):
2735         * css/MediaList.cpp:
2736         (WebCore::addResolutionWarningMessageToConsole):
2737         * dom/Document.cpp:
2738         (WebCore::Document::processHttpEquiv):
2739         * dom/ScriptElement.cpp:
2740         (WebCore::ScriptElement::executeScript):
2741         (WebCore::ScriptElement::notifyFinished):
2742         * dom/ViewportArguments.cpp:
2743         (WebCore::reportViewportWarning):
2744         * html/HTMLFormControlElement.cpp:
2745         (WebCore::shouldAutofocus):
2746         * html/HTMLFormElement.cpp:
2747         (WebCore::HTMLFormElement::validateInteractively):
2748         * html/HTMLIFrameElement.cpp:
2749         (WebCore::HTMLIFrameElement::parseAttribute):
2750         * html/canvas/CanvasRenderingContext2D.cpp:
2751         (WebCore::CanvasRenderingContext2D::getImageData):
2752         * html/canvas/WebGLRenderingContext.cpp:
2753         (WebCore):
2754         (WebCore::WebGLRenderingContext::printWarningToConsole):
2755         * html/parser/XSSAuditor.cpp:
2756         (WebCore::XSSAuditor::init):
2757         * html/parser/XSSAuditorDelegate.cpp:
2758         (WebCore::XSSAuditorDelegate::didBlockScript):
2759         * inspector/ConsoleMessage.cpp:
2760         (WebCore::messageSourceValue):
2761         * inspector/Inspector.json:
2762         * loader/FrameLoader.cpp:
2763         (WebCore::FrameLoader::submitForm):
2764         (WebCore::FrameLoader::reportLocalLoadFailed):
2765         (WebCore::createWindow):
2766         * loader/ImageLoader.cpp:
2767         (WebCore::ImageLoader::notifyFinished):
2768         * loader/MainResourceLoader.cpp:
2769         (WebCore::MainResourceLoader::responseReceived):
2770         * loader/MixedContentChecker.cpp:
2771         (WebCore::MixedContentChecker::logWarning):
2772         * loader/TextTrackLoader.cpp:
2773         (WebCore::TextTrackLoader::corsPolicyPreventedLoad):
2774         * loader/appcache/ApplicationCacheGroup.cpp:
2775         (WebCore::ApplicationCacheGroup::abort):
2776         * loader/cache/CachedResourceLoader.cpp:
2777         (WebCore::CachedResourceLoader::printAccessDeniedMessage):
2778         * page/Console.cpp:
2779         (WebCore::printMessageSourceAndLevelPrefix):
2780         * page/ConsoleTypes.h:
2781         * page/ContentSecurityPolicy.cpp:
2782         (WebCore::ContentSecurityPolicy::logToConsole):
2783         * page/DOMWindow.cpp:
2784         (WebCore::DOMWindow::dispatchMessageEventWithOriginCheck):
2785         * page/PointerLockController.cpp:
2786         (WebCore::PointerLockController::requestPointerLock):
2787         * svg/SVGDocumentExtensions.cpp:
2788         (WebCore::reportMessage):
2789
2790 2013-03-06  Florin Malita  <fmalita@chromium.org>
2791
2792         SVG pattern to pattern reference does not work if first pattern has a child node
2793         https://bugs.webkit.org/show_bug.cgi?id=111586
2794
2795         Reviewed by Philip Rogers.
2796
2797         SVGPatternElement::collectPatternAttributes should test for child elements, not child nodes.
2798
2799         Tests: svg/custom/pattern-reference-expected.svg
2800                svg/custom/pattern-reference.svg
2801
2802         * svg/SVGPatternElement.cpp:
2803         (WebCore::SVGPatternElement::collectPatternAttributes):
2804
2805 2013-03-06  Christophe Dumez  <ch.dumez@sisa.samsung.com>
2806
2807         [soup] session cookies are not correctly reported in getRawCookies()
2808         https://bugs.webkit.org/show_bug.cgi?id=111584
2809
2810         Reviewed by Martin Robinson.
2811
2812         As per libsoup documentation, SoupCookie->expires is NULL for session cookies.
2813         However, the soup implementation for getRawCookies() does not check for NULL
2814         case before passing the value to soup_date_to_time_t(), which leads to run time
2815         warnings.
2816
2817         We should also pass true for WebCore::Cookie's session argument if
2818         SoupCookie->expires is NULL. The current implementation reports the cookie as a
2819         session one if soup_cookie_jar_is_persistent(jar) returns true, which is
2820         inaccurate.
2821
2822         No new tests, no behavior change for layout tests as Web Inspector currently
2823         ignores the "session" member and uses expires/max-age instead to deduce it.
2824
2825         * platform/network/soup/CookieJarSoup.cpp:
2826         (WebCore::getRawCookies):
2827
2828 2013-03-06  Douglas Stockwell  <dstockwell@chromium.org>
2829
2830         REGRESSION(r111639): delayed animation start can be postponed
2831         https://bugs.webkit.org/show_bug.cgi?id=108582
2832
2833         Query the animation timer directly for the time it will next fire rather than
2834         trying to cache the interval. Previous approach was incorrect -- as time advanced
2835         it was possible for the interval to jump beyond the next service time.
2836
2837         Reviewed by Darin Adler.
2838
2839         Test: animations/animation-delay-changed.html
2840
2841         * page/animation/AnimationController.cpp:
2842         (WebCore::AnimationControllerPrivate::AnimationControllerPrivate):
2843         (WebCore::AnimationControllerPrivate::updateAnimationTimerForRenderer):
2844         (WebCore::AnimationControllerPrivate::updateAnimationTimer):
2845         * page/animation/AnimationControllerPrivate.h:
2846         (AnimationControllerPrivate): Remove m_previousTimeToNextService
2847
2848 2013-03-06  Andrey Lushnikov  <lushnikov@chromium.org>
2849
2850         Web Inspector: [ACE] show execution line in Ace editor
2851         https://bugs.webkit.org/show_bug.cgi?id=111575
2852
2853         Reviewed by Pavel Feldman.
2854
2855         Highlight execution line by the means of Ace full line markers.
2856
2857         No new tests.
2858
2859         * inspector/front-end/AceTextEditor.js:
2860         (WebInspector.AceTextEditor.prototype.setExecutionLine):
2861         (WebInspector.AceTextEditor.prototype.clearExecutionLine):
2862         (WebInspector.AceTextEditor.prototype.setSelection):
2863         * inspector/front-end/ace/acedevtools.css:
2864         (.ace-editor-container):
2865         (.webkit-execution-line):
2866
2867 2013-03-06  Yury Semikhatsky  <yurys@chromium.org>
2868
2869         Web Inspector: fix closure compiler warnings in the profiler code
2870         https://bugs.webkit.org/show_bug.cgi?id=111581
2871
2872         Reviewed by Vsevolod Vlasov.
2873
2874         Added missing annotations. Replaced NativeProfileLauncherView with
2875         ProfileLauncherView.
2876
2877         * inspector/InjectedScriptExterns.js:
2878         (InjectedScriptHost.prototype.objectId):
2879         (InjectedScriptHost.prototype.releaseObjectId):
2880         * inspector/front-end/FlameChart.js:
2881         (WebInspector.FlameChart.prototype._forEachNode):
2882         * inspector/front-end/ProfileLauncherView.js:
2883         * inspector/front-end/ProfilesPanel.js:
2884
2885 2013-03-06  Carlos Garcia Campos  <cgarcia@igalia.com>
2886
2887         [BlackBerry] Pass String::StrictConversion instead of true to String::utf8()
2888         https://bugs.webkit.org/show_bug.cgi?id=111546
2889
2890         Reviewed by Rob Buis.
2891
2892         String::utf8() API changed in r134173.
2893
2894         * platform/graphics/blackberry/MediaPlayerPrivateBlackBerry.cpp:
2895         (WebCore::MediaPlayerPrivate::notifyChallengeResult):
2896
2897 2013-03-06  Julien Chaffraix  <jchaffraix@webkit.org>
2898
2899         Remove the (dead) code for handling shorthands in StyleResolver / StyleBuilder
2900         https://bugs.webkit.org/show_bug.cgi?id=111505
2901
2902         Unreviewed minimal build fix.
2903
2904         * css/StyleResolver.cpp:
2905         (WebCore::StyleResolver::applyProperty):
2906         Put CSSPropertyWebkitWrap under the proper if-guard.
2907
2908 2013-03-06  Vsevolod Vlasov  <vsevik@chromium.org>
2909
2910         Unreviewed follow up to r144928: front-end closure compilation fixes.
2911
2912         * inspector/front-end/FilteredItemSelectionDialog.js:
2913         (WebInspector.JavaScriptOutlineDialog.prototype.dispose):
2914         (WebInspector.OpenResourceDialog.prototype.dispose):
2915         * inspector/front-end/StyleSheetOutlineDialog.js:
2916         (WebInspector.StyleSheetOutlineDialog.prototype.dispose):
2917
2918 2013-03-06  Vsevolod Vlasov  <vsevik@chromium.org>
2919
2920         Web Inspector: Update open resource dialog when new uiSourceCodes are loaded.
2921         https://bugs.webkit.org/show_bug.cgi?id=111327
2922
2923         Reviewed by Pavel Feldman.
2924
2925         * inspector/front-end/FilteredItemSelectionDialog.js:
2926         (WebInspector.FilteredItemSelectionDialog):
2927         (WebInspector.FilteredItemSelectionDialog.prototype.willHide):
2928         (WebInspector.FilteredItemSelectionDialog.prototype._itemsLoaded):
2929         (WebInspector.FilteredItemSelectionDialog.prototype._updateAfterItemsLoaded):
2930         (WebInspector.FilteredItemSelectionDialog.prototype._filterItems.compareFunction):
2931         (WebInspector.FilteredItemSelectionDialog.prototype._filterItems):
2932         (WebInspector.SelectionDialogContentProvider.prototype.dispose):
2933         (WebInspector.JavaScriptOutlineDialog.prototype._didBuildOutlineChunk):
2934         (WebInspector.OpenResourceDialog):
2935         (WebInspector.OpenResourceDialog.prototype.requestItems):
2936         (WebInspector.OpenResourceDialog.prototype._filterUISourceCode):
2937         (WebInspector.OpenResourceDialog.prototype._uiSourceCodeAdded):
2938         (WebInspector.OpenResourceDialog.prototype.dispose):
2939         * inspector/front-end/StyleSheetOutlineDialog.js:
2940         (WebInspector.StyleSheetOutlineDialog.prototype.requestItems):
2941         (WebInspector.StyleSheetOutlineDialog.prototype.requestItems.didGetStyleSheet):
2942
2943 2013-03-06  Vladislav Kaznacheev  <kaznacheev@chromium.org>
2944
2945         Web Inspector: Move sidebar-specific styles to a separate file.
2946         https://bugs.webkit.org/show_bug.cgi?id=111173
2947
2948         Reviewed by Pavel Feldman.
2949
2950         * WebCore.gypi:
2951         * inspector/front-end/BreakpointsSidebarPane.js:
2952         (WebInspector.JavaScriptBreakpointsSidebarPane):
2953         (WebInspector.EventListenerBreakpointsSidebarPane):
2954         * inspector/front-end/NativeBreakpointsSidebarPane.js:
2955         (WebInspector.NativeBreakpointsSidebarPane):
2956         * inspector/front-end/SidebarPane.js:
2957         (WebInspector.SidebarPaneTitle):
2958         (WebInspector.SidebarPaneStack):
2959         (WebInspector.SidebarTabbedPane):
2960         * inspector/front-end/WebKit.qrc:
2961         * inspector/front-end/breakpointsList.css: Added.
2962         (.sidebar-pane > .body .breakpoint-condition):
2963         (#breakpoint-condition-input):
2964         (ol.breakpoint-list):
2965         (.breakpoints-list-deactivated):
2966         (.breakpoint-list li):
2967         (.breakpoint-list li:hover):
2968         (.breakpoint-list .checkbox-elem):
2969         (.breakpoint-list .source-text):
2970         (.sidebar-pane .breakpoint-hit):
2971         (li.breakpoint-hit .breakpoint-hit-marker):
2972         (.event-listener-breakpoints .event-category):
2973         (.event-listener-breakpoints.properties-tree .children li):
2974         (.event-listener-breakpoints .checkbox-elem):
2975         * inspector/front-end/elementsPanel.css:
2976         (.panel.elements .sidebar-pane-toolbar > select):
2977         (.panel.elements .sidebar-pane-toolbar > select:hover):
2978         (.panel.elements .sidebar-pane-toolbar > select:active):
2979         (.panel.elements .sidebar-pane-toolbar > select.select-settings):
2980         (.panel.elements .sidebar-pane-toolbar > select.select-filter):
2981         (.panel.elements .sidebar-pane-toolbar > select > option, .panel.elements .sidebar-pane-toolbar > select > hr):
2982         * inspector/front-end/inspector.css:
2983         (.event-bar .event-properties):
2984         * inspector/front-end/scriptsPanel.css:
2985         (.workers-list > li):
2986         (a.worker-item):
2987         (a.worker-item:hover):
2988         * inspector/front-end/sidebarPane.css: Added.
2989         (.sidebar-pane):
2990         (.sidebar-pane > .body):
2991         (.sidebar-pane > .body .info):
2992         (.sidebar-pane > .body .placard + .info):
2993         (.sidebar-pane.visible > .body):
2994         (.sidebar-pane .section .properties):
2995         (.sidebar-tabbed-pane .tabbed-pane-header):
2996         (.sidebar-pane-stack > .sidebar-pane.visible:nth-last-of-type(1)):
2997         (.sidebar-pane-title):
2998         (.sidebar-pane-title + .sidebar-pane-title, .pane:not(.visible) + .sidebar-pane-title, .sidebar-pane-title:first-of-type):
2999         (.sidebar-pane-title:active):
3000         (.sidebar-pane-title::before):
3001         (.sidebar-pane-title.expanded::before):
3002         (.sidebar-pane-toolbar):
3003         (.sidebar-pane-toolbar > *):
3004         (.sidebar-pane-toolbar > .pane-title-button):
3005         (.sidebar-pane-toolbar > .pane-title-button:hover):
3006         (.sidebar-pane-toolbar > .pane-title-button:active, .sidebar-pane-toolbar > .pane-title-button.toggled):
3007         (.sidebar-pane-toolbar > .pane-title-button.add):
3008         (.sidebar-pane-toolbar > .pane-title-button.element-state):
3009         (.sidebar-pane-toolbar > .pane-title-button.refresh):
3010         (.sidebar-pane-subtitle):
3011         (body.platform-windows .sidebar-pane-subtitle):
3012         (.sidebar-pane-subtitle input, .section .header input[type=checkbox]):
3013
3014 2013-03-06  Vladislav Kaznacheev  <kaznacheev@chromium.org>
3015
3016         Web Inspector: Combine style-related panes into a single tab when Elements panel is split horizontally.
3017         https://bugs.webkit.org/show_bug.cgi?id=111550
3018         Reviewed by Pavel Feldman.
3019
3020         Grouping the Elements sidebar panes into two tabbed panes proved to be
3021         confusing and inconvenient. Put all the Elements sidebar panes into a single tabbed pane.
3022         Combined Styles, Computed Style and Metrics into a single pane.
3023
3024         * inspector/front-end/ElementsPanel.js:
3025         (WebInspector.ElementsPanel.prototype._splitVertically):
3026         (WebInspector.ElementsPanel.prototype.addExtensionSidebarPane):
3027         * inspector/front-end/elementsPanel.css:
3028         (.sidebar-pane.composite):
3029         (.sidebar-pane.composite > .body):
3030         (.sidebar-pane.composite .metrics):
3031         (.sidebar-pane.composite .sidebar-pane-toolbar):
3032         (.sidebar-pane.composite .sidebar-pane-toolbar > .sidebar-pane-subtitle):
3033         (.sidebar-pane.composite .styles-section.read-only):
3034
3035 2013-03-05  Yury Semikhatsky  <yurys@chromium.org>
3036
3037         Web Inspector: support stable remote object ids
3038         https://bugs.webkit.org/show_bug.cgi?id=109908
3039
3040         Reviewed by Pavel Feldman.
3041
3042         Introduced a map from javascript object to its id. It guarantees
3043         that object is assined id only once (unless it is explicitely
3044         released). The map is per execution context and is stored in
3045         InjectedScriptManager.
3046
3047         Test: inspector-protocol/persistent-id.html
3048
3049         * bindings/js/JSInjectedScriptHostCustom.cpp:
3050         (WebCore::JSInjectedScriptHost::objectId):
3051         (WebCore):
3052         (WebCore::JSInjectedScriptHost::releaseObjectId):
3053         * bindings/js/ScriptObject.h:
3054         (WTF):
3055         (WTF::ScriptObjectHash::hash):
3056         (WTF::ScriptObjectHash::equal):
3057         (ScriptObjectHash):
3058         * bindings/v8/ScriptObject.h:
3059         (WTF):
3060         (WTF::ScriptObjectHash::hash):
3061         (WTF::ScriptObjectHash::equal):
3062         (ScriptObjectHash):
3063         * bindings/v8/custom/V8InjectedScriptHostCustom.cpp:
3064         (WebCore::V8InjectedScriptHost::objectIdMethodCustom):
3065         (WebCore):
3066         (WebCore::V8InjectedScriptHost::releaseObjectIdMethodCustom):
3067         * inspector/InjectedScriptHost.cpp:
3068         (WebCore::InjectedScriptHost::create):
3069         (WebCore::InjectedScriptHost::InjectedScriptHost):
3070         (WebCore::InjectedScriptHost::disconnect):
3071         (WebCore::InjectedScriptHost::objectId):
3072         (WebCore):
3073         (WebCore::InjectedScriptHost::releaseObjectId):
3074         * inspector/InjectedScriptHost.h:
3075         (WebCore):
3076         (InjectedScriptHost):
3077         * inspector/InjectedScriptHost.idl:
3078         * inspector/InjectedScriptManager.cpp:
3079         (InjectedScriptManager::ObjectIdMap):
3080         (WebCore::InjectedScriptManager::ObjectIdMap::ObjectIdMap):
3081         (WebCore::InjectedScriptManager::ObjectIdMap::objectId):
3082         (WebCore::InjectedScriptManager::ObjectIdMap::releaseObjectId):
3083         (WebCore):
3084         (WebCore::InjectedScriptManager::InjectedScriptManager):
3085         (WebCore::InjectedScriptManager::discardInjectedScripts):
3086         (WebCore::InjectedScriptManager::discardInjectedScriptsFor):
3087         (WebCore::InjectedScriptManager::objectId):
3088         (WebCore::InjectedScriptManager::releaseObjectId):
3089         * inspector/InjectedScriptManager.h:
3090         (InjectedScriptManager):
3091         * inspector/InjectedScriptSource.js:
3092         (.):
3093
3094 2013-03-06  Marja Hölttä  <marja@chromium.org>
3095
3096         REGRESSION(r144617): Wrong usage of overwritten variable in toDOMWindow (V8Binding.cpp)
3097         https://bugs.webkit.org/show_bug.cgi?id=111565
3098
3099         Reviewed by Jochen Eisinger.
3100
3101         In toDOMWindow, the variable "global" was first nuked, and then used again. This
3102         change was introduced in r144617.
3103
3104         No new tests (no functional changes).
3105
3106         * bindings/v8/V8Binding.cpp:
3107         (WebCore::toDOMWindow):
3108
3109 2013-03-06  Yury Semikhatsky  <yurys@chromium.org>
3110
3111         Web Inspector: use regular eval instead of injectScript for front-end extension API
3112         https://bugs.webkit.org/show_bug.cgi?id=111529
3113
3114         Reviewed by Pavel Feldman.
3115
3116         Removed InjectedScriptManager::injectScript and replaced all of it calls
3117         except the actual script injection with ScriptController::executeScript.
3118
3119         * inspector/InjectedScriptManager.cpp:
3120         (WebCore::InjectedScriptManager::injectedScriptFor):
3121         * inspector/InjectedScriptManager.h:
3122         (InjectedScriptManager):
3123         * inspector/InspectorAgent.cpp:
3124         (WebCore::InspectorAgent::didClearWindowObjectInWorld):
3125         * inspector/InspectorPageAgent.cpp:
3126         (WebCore::InspectorPageAgent::didClearWindowObjectInWorld):
3127         * inspector/front-end/DOMAgent.js:
3128         (WebInspector.DOMAgent.prototype._emulateTouchEventsChanged.get if):
3129         * inspector/front-end/ExtensionAPI.js:
3130         (buildExtensionAPIInjectedScript):
3131         * inspector/front-end/ExtensionServer.js:
3132         (WebInspector.ExtensionServer.prototype._onReload):
3133
3134 2013-03-06  Allan Sandfeld Jensen  <allan.jensen@digia.com>
3135
3136         [Qt] Do not disable C++0x
3137         https://bugs.webkit.org/show_bug.cgi?id=111559
3138
3139         Reviewed by Kenneth Rohde Christiansen.
3140
3141         * WebCore.pri:
3142
3143 2013-03-06  Julien Chaffraix  <jchaffraix@webkit.org>
3144
3145         Remove the (dead) code for handling shorthands in StyleResolver / StyleBuilder
3146         https://bugs.webkit.org/show_bug.cgi?id=111505
3147
3148         Reviewed by Alexis Menard.
3149
3150         The CSS parsing code expands shorthands (with the exception of 'font') to their longhands.
3151         This means that all the code in StyleResolver / StyleBuilder to handle shorthands is basically
3152         dead and shouldn't be there. The reason for it to be is that people didn't know about shorthands
3153         expansion and thus copied existing code.
3154
3155         This change addresses both issues by removing the code and adding ASSERTs that should prevent people
3156         from adding more dead code.
3157
3158         Refactoring, covered by existing tests.
3159
3160         * css/StylePropertyShorthand.h: Added isExpandedShorthand.
3161         * css/StylePropertyShorthand.cpp:
3162         (WebCore::isExpandedShorthand):
3163         Added this function that ignores 'font' as it is the only shorthand that is no consistently expanded
3164         to account for system fonts.
3165
3166         * css/StyleBuilder.cpp:
3167         (WebCore::StyleBuilder::StyleBuilder):
3168         Removed the shorthands.
3169
3170         * css/StyleBuilder.h:
3171         (WebCore::StyleBuilder::setPropertyHandler):
3172         Added ASSERTs that people don't add shorthand handling.
3173
3174         * css/StyleResolver.cpp:
3175         (WebCore::isValidVisitedLinkProperty):
3176         Removed all the shorthands (shouldn't be reachable unless the ASSERT in applyProperty
3177         triggers).
3178
3179         (WebCore::StyleResolver::applyProperty):
3180         Removed all shorthand handling code, moved the shorthands together and added some ASSERT
3181         to ensure people don't abuse the code and re-add some of it back by mistake.
3182
3183 2013-03-05  Kent Tamura  <tkent@chromium.org>
3184
3185         Rename WebCore/editing/visible_units.* to VisibleUnits.*
3186         https://bugs.webkit.org/show_bug.cgi?id=111426
3187
3188         Reviewed by Alexey Proskuryakov.
3189
3190         No new tests. Just a refactoring.
3191
3192         * CMakeLists.txt:
3193         * GNUmakefile.list.am:
3194         * Target.pri:
3195         * WebCore.gypi:
3196         * WebCore.vcproj/WebCore.vcproj:
3197         * WebCore.vcxproj/WebCore.vcxproj:
3198         * WebCore.vcxproj/WebCore.vcxproj.filters:
3199         * WebCore.xcodeproj/project.pbxproj:
3200         * accessibility/AccessibilityNodeObject.cpp:
3201         * accessibility/AccessibilityObject.cpp:
3202         * accessibility/AccessibilityRenderObject.cpp:
3203         * accessibility/atk/WebKitAccessibleWrapperAtk.cpp:
3204         * accessibility/mac/WebAccessibilityObjectWrapperBase.mm:
3205         * accessibility/mac/WebAccessibilityObjectWrapperMac.mm:
3206         * dom/Position.cpp:
3207         * dom/Range.cpp:
3208         * editing/AlternativeTextController.cpp:
3209         * editing/ApplyBlockElementCommand.cpp:
3210         * editing/ApplyStyleCommand.cpp:
3211         * editing/CompositeEditCommand.cpp:
3212         * editing/DeleteSelectionCommand.cpp:
3213         * editing/EditingAllInOne.cpp:
3214         * editing/EditingStyle.cpp:
3215         * editing/Editor.cpp:
3216         * editing/FormatBlockCommand.cpp:
3217         * editing/FrameSelection.cpp:
3218         * editing/IndentOutdentCommand.cpp:
3219         * editing/InsertLineBreakCommand.cpp:
3220         * editing/InsertListCommand.cpp:
3221         * editing/InsertParagraphSeparatorCommand.cpp:
3222         * editing/InsertTextCommand.cpp:
3223         * editing/ReplaceSelectionCommand.cpp:
3224         * editing/SurroundingText.cpp:
3225         * editing/TextCheckingHelper.cpp:
3226         * editing/TextIterator.cpp:
3227         * editing/TypingCommand.cpp:
3228         * editing/VisiblePosition.cpp:
3229         * editing/VisibleSelection.cpp:
3230         * editing/VisibleUnits.cpp: Copied from Source/WebCore/editing/visible_units.cpp.
3231         * editing/VisibleUnits.h: Copied from Source/WebCore/editing/visible_units.h.
3232         * editing/htmlediting.cpp:
3233         * editing/markup.cpp:
3234         * editing/visible_units.cpp: Removed.
3235         * editing/visible_units.h: Removed.
3236         * page/Frame.cpp:
3237         * page/mac/FrameMac.mm:
3238         * platform/win/EditorWin.cpp:
3239
3240 2013-03-06  Alexis Menard  <alexis@webkit.org>
3241
3242         Do not add CSSPropertyBorderImage shorthand part of the property list when parsing CSS border property
3243         https://bugs.webkit.org/show_bug.cgi?id=111481
3244
3245         Reviewed by Julien Chaffraix.
3246
3247         After http://trac.webkit.org/changeset/135848 and more generally we do not 
3248         add shorthand directly into the property list used afterwards to build
3249         StylePropertySet but we rather expand the shorthand to add the
3250         longhands. CSSPropertyBorderImage is a shorthand and it should follow
3251         that rule, so when we successfully parsed CSS border property and we
3252         should reset border-image then we should reset the longhands too.
3253
3254         Test: LayoutTests/inspector/styles/styles-new-API-expected.txt which
3255         reflects the fact that we add longhands instead of the shorthand. All
3256         the other tests should not regress.
3257
3258         * css/CSSParser.cpp:
3259         (WebCore::CSSParser::parseValue):
3260
3261 2013-03-06  Luiz Agostini  <luiz.agostini@nokia.com>
3262
3263         Accelerated overflow scrolling for Coordinated Graphics.
3264         https://bugs.webkit.org/show_bug.cgi?id=110323
3265
3266         Reviewed by Noam Rosenthal.
3267
3268         A scroll offset is applied to individual layers on UI process and the
3269         web process is notified assynchronously.
3270         The new API WKCoordinatedScene may be used to scroll layers in the UI process.
3271
3272         Tests will be added on bug #111140.
3273
3274         Scrolling coordinator is used to provide a ScrollableArea to CoordinatedGraphicsLayer.
3275
3276         * page/scrolling/coordinatedgraphics/ScrollingCoordinatorCoordinatedGraphics.cpp:
3277         (WebCore::ScrollingCoordinatorCoordinatedGraphics::scrollableAreaScrollLayerDidChange):
3278         (WebCore):
3279         (WebCore::ScrollingCoordinatorCoordinatedGraphics::willDestroyScrollableArea):
3280         * page/scrolling/coordinatedgraphics/ScrollingCoordinatorCoordinatedGraphics.h:
3281         (ScrollingCoordinatorCoordinatedGraphics):
3282
3283         GraphicsLayerTextureMapper is responsible for receiving the 'did commit' messages and to pass
3284         them to its TextureMapperLayer on the appropriated time.
3285
3286         * platform/graphics/texmap/GraphicsLayerTextureMapper.cpp:
3287         (WebCore::GraphicsLayerTextureMapper::GraphicsLayerTextureMapper):
3288         (WebCore::GraphicsLayerTextureMapper::didCommitScrollOffset):
3289         (WebCore):
3290         (WebCore::GraphicsLayerTextureMapper::setIsScrollable):
3291         (WebCore::GraphicsLayerTextureMapper::commitLayerChanges):
3292         * platform/graphics/texmap/GraphicsLayerTextureMapper.h:
3293         (WebCore::GraphicsLayerTextureMapper::setScrollClient):
3294         (WebCore::GraphicsLayerTextureMapper::setID):
3295         (GraphicsLayerTextureMapper):
3296         (WebCore::GraphicsLayerTextureMapper::isScrollable):
3297
3298         TextureMapperLayer is responsible for applying the requested scroll offset and for
3299         sending the commit messages to web process. It is also able to hittest layers and identify
3300         the ones that are scrollable.
3301
3302         * platform/graphics/texmap/TextureMapperLayer.cpp:
3303         (WebCore::TextureMapperLayer::hitTest):
3304         (WebCore):
3305         (WebCore::TextureMapperLayer::scrollableLayerHitTestCondition):
3306         (WebCore::TextureMapperLayer::findScrollableContentsLayerAt):
3307         (WebCore::TextureMapperLayer::mapScrollOffset):
3308         (WebCore::TextureMapperLayer::commitScrollOffset):
3309         (WebCore::TextureMapperLayer::scrollBy):
3310         (WebCore::TextureMapperLayer::didCommitScrollOffset):
3311         * platform/graphics/texmap/TextureMapperLayer.h:
3312         (TextureMapperLayer):
3313         (ScrollingClient):
3314         (WebCore::TextureMapperLayer::TextureMapperLayer):
3315         (WebCore::TextureMapperLayer::setID):
3316         (WebCore::TextureMapperLayer::id):
3317         (WebCore::TextureMapperLayer::setScrollClient):
3318         (WebCore::TextureMapperLayer::setIsScrollable):
3319         (WebCore::TextureMapperLayer::isScrollable):
3320         (WebCore::TextureMapperLayer::adjustedPosition):
3321
3322         CoordinatedGraphicsLayer receives the commit messages and updates its ScrollableArea.
3323
3324         * platform/graphics/texmap/coordinated/CoordinatedGraphicsLayer.cpp:
3325         (WebCore::CoordinatedGraphicsLayer::CoordinatedGraphicsLayer):
3326         (WebCore::CoordinatedGraphicsLayer::setScrollableArea):
3327         (WebCore):
3328         (WebCore::CoordinatedGraphicsLayer::commitScrollOffset):
3329         (WebCore::CoordinatedGraphicsLayer::resetLayerState):
3330         * platform/graphics/texmap/coordinated/CoordinatedGraphicsLayer.h:
3331         (WebCore):
3332         (CoordinatedGraphicsLayer):
3333         (WebCore::CoordinatedGraphicsLayer::isScrollable):
3334
3335         CoordinatedGraphicsScene receives the commit messages from TextureMapperLayer and
3336         dispatches them on the main thread. It also has a new method that is used to find
3337         the topmost scrollable layer at a given point.
3338
3339         * platform/graphics/texmap/coordinated/CoordinatedGraphicsScene.cpp:
3340         (WebCore::CoordinatedGraphicsScene::setLayerState):
3341         (WebCore::CoordinatedGraphicsScene::createLayer):
3342         (WebCore::CoordinatedGraphicsScene::dispatchCommitScrollOffset):
3343         (WebCore):
3344         (WebCore::CoordinatedGraphicsScene::commitScrollOffset):
3345         (WebCore::CoordinatedGraphicsScene::findScrollableContentsLayerAt):
3346         * platform/graphics/texmap/coordinated/CoordinatedGraphicsScene.h:
3347         (WebCore):
3348         (CoordinatedGraphicsSceneClient):
3349         (CoordinatedGraphicsScene):
3350
3351         New fields have been added to CoordinatedGraphicsLayerState.
3352
3353         * platform/graphics/texmap/coordinated/CoordinatedGraphicsState.h:
3354         (CoordinatedGraphicsLayerState):
3355
3356 2013-03-06  Allan Sandfeld Jensen  <allan.jensen@digia.com>
3357
3358         REGGRESSION (r142112): It made compositing tests fail on EFL, Qt.
3359         https://bugs.webkit.org/show_bug.cgi?id=109291
3360
3361         Reviewed by Kenneth Rohde Christiansen.
3362
3363         Report we support fixed layers.
3364
3365         * page/scrolling/coordinatedgraphics/ScrollingCoordinatorCoordinatedGraphics.h:
3366         (WebCore::ScrollingCoordinatorCoordinatedGraphics::supportsFixedPositionLayers):
3367         (ScrollingCoordinatorCoordinatedGraphics):
3368
3369 2013-03-06  Sheriff Bot  <webkit.review.bot@gmail.com>
3370
3371         Unreviewed, rolling out r144859.
3372         http://trac.webkit.org/changeset/144859
3373         https://bugs.webkit.org/show_bug.cgi?id=111519
3374
3375         Introduced a test that calls non-exist function on non-
3376         Chromium ports and crash on Chromium (Requested by rniwa on
3377         #webkit).
3378
3379         * html/HTMLAudioElement.h:
3380         (WebCore::HTMLAudioElement::hasPendingActivity):
3381         (HTMLAudioElement):
3382         * html/HTMLAudioElement.idl:
3383         * html/HTMLMediaElement.cpp:
3384         (WebCore::HTMLMediaElement::hasPendingActivity):
3385         * html/HTMLMediaElement.idl:
3386
3387 2013-03-06  Ilya Tikhonovsky  <loislo@chromium.org>
3388
3389         Web Inspector: Could not open Profiles panel.
3390         https://bugs.webkit.org/show_bug.cgi?id=111535
3391
3392         Reviewed by Alexander Pavlov.
3393
3394         * inspector/front-end/CPUProfileView.js:
3395         * inspector/front-end/ProfilesPanel.js:
3396
3397 2013-03-06  Tony Chang  <tony@chromium.org>
3398
3399         Crash during middle mouse click when page is removed
3400         https://bugs.webkit.org/show_bug.cgi?id=111489
3401
3402         Reviewed by Hajime Morrita.
3403
3404         Check for a null page that can happen if we remove the document from the DOM.
3405         The other methods in EventHandler also check for a null page.
3406
3407         Test: editing/pasteboard/selection-paste-crash.html
3408
3409         * page/EventHandler.cpp:
3410         (WebCore::EventHandler::handlePasteGlobalSelection):
3411
3412 2013-03-05  Eric Seidel  <eric@webkit.org>
3413
3414         Replace shouldLazyAttach bool with an enum for readability
3415         https://bugs.webkit.org/show_bug.cgi?id=111503
3416
3417         Reviewed by Dimitri Glazkov.
3418
3419         No behavioral change.
3420
3421         * bindings/cpp/WebDOMNodeCustom.cpp:
3422         (WebDOMNode::insertBefore):
3423         (WebDOMNode::replaceChild):
3424         (WebDOMNode::appendChild):
3425         * bindings/js/JSNodeCustom.cpp:
3426         (WebCore::JSNode::insertBefore):
3427         (WebCore::JSNode::replaceChild):
3428         (WebCore::JSNode::appendChild):
3429         * bindings/v8/custom/V8NodeCustom.cpp:
3430         (WebCore):
3431         (WebCore::V8Node::insertBeforeMethodCustom):
3432         (WebCore::V8Node::replaceChildMethodCustom):
3433         (WebCore::V8Node::appendChildMethodCustom):
3434         * dom/ContainerNode.cpp:
3435         (WebCore):
3436         (WebCore::ContainerNode::insertBefore):
3437         (WebCore::ContainerNode::replaceChild):
3438         (WebCore::ContainerNode::appendChild):
3439         (WebCore::updateTreeAfterInsertion):
3440         * dom/ContainerNode.h:
3441         (ContainerNode):
3442         * dom/Node.cpp:
3443         (WebCore::Node::insertBefore):
3444         (WebCore::Node::replaceChild):
3445         (WebCore::Node::appendChild):
3446         * dom/Node.h:
3447         (Node):
3448         * editing/AppendNodeCommand.cpp:
3449         (WebCore::AppendNodeCommand::doApply):
3450         * editing/InsertNodeBeforeCommand.cpp:
3451         (WebCore::InsertNodeBeforeCommand::doApply):