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