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