ChangeLog 238 KB
Newer Older
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65
2013-11-07  Timothy Hatcher  <timothy@apple.com>

        Start fleshing out the Overview Timeline view.

        This gets the overview populating in the Timeline sidebar. The graph side is still empty.

        https://bugs.webkit.org/show_bug.cgi?id=124005

        Reviewed by Joseph Pecoraro.

        * Localizations/en.lproj/localizedStrings.js: Updated.
        * UserInterface/Frame.js:
        (WebInspector.Frame.prototype.addResource):
        * UserInterface/Images/TimelineRecordAnimation.svg: Added.
        * UserInterface/Images/TimelineRecordEvent.svg: Added.
        * UserInterface/Images/TimelineRecordLayout.svg: Added.
        * UserInterface/Images/TimelineRecordPaint.svg: Added.
        * UserInterface/Images/TimelineRecordScriptEvaluated.svg: Added.
        * UserInterface/Images/TimelineRecordStyle.svg: Added.
        * UserInterface/Images/TimelineRecordTimer.svg: Added.
        * UserInterface/Main.html:
        * UserInterface/OverviewTimelineView.js: Added.
        (WebInspector.OverviewTimelineView):
        (WebInspector.OverviewTimelineView.prototype.get navigationSidebarTreeOutlineLabel):
        (WebInspector.OverviewTimelineView.prototype._childFrameWasAdded):
        (WebInspector.OverviewTimelineView.prototype._mainResourceDidChange):
        (WebInspector.OverviewTimelineView.prototype._provisionalResourceWasAdded):
        (WebInspector.OverviewTimelineView.prototype._resourceWasAdded):
        (WebInspector.OverviewTimelineView.prototype._compareTreeElementsByDetails):
        (WebInspector.OverviewTimelineView.prototype._compareTreeElementsByStartTime):
        (WebInspector.OverviewTimelineView.prototype._insertTreeElement):
        (WebInspector.OverviewTimelineView.prototype._addResourceToTreeIfNeeded):
        (WebInspector.OverviewTimelineView.prototype._sourceCodeTimelineAdded):
        (WebInspector.OverviewTimelineView.prototype._treeElementSelected):
        * UserInterface/SourceCodeTimelineTreeElement.js: Added.
        (WebInspector.SourceCodeTimelineTreeElement):
        (WebInspector.SourceCodeTimelineTreeElement.prototype.get sourceCodeTimeline):
        * UserInterface/TimelineContentView.js:
        (WebInspector.TimelineContentView.createPathComponent):
        (WebInspector.TimelineContentView):
        (WebInspector.TimelineContentView.prototype.showOverviewTimelineView):
        (WebInspector.TimelineContentView.prototype.showTimelineView):
        (WebInspector.TimelineContentView.prototype.get supportsSplitContentBrowser):
        (WebInspector.TimelineContentView.prototype.get selectionPathComponents):
        (WebInspector.TimelineContentView.prototype._pathComponentSelected):
        (WebInspector.TimelineContentView.prototype._showTimelineView):
        (WebInspector.TimelineContentView.prototype._recordingReset):
        * UserInterface/TimelineIcons.css:
        (.style-record .icon): Added.
        (.layout-record .icon): Added.
        (.paint-record .icon): Added.
        (.evaluated-record .icon): Added.
        (.event-record .icon): Added.
        (.timer-record .icon): Added.
        (.animation-record .icon): Added.
        * UserInterface/TimelineView.css: Added.
        (.timeline-view):
        * UserInterface/TimelineView.js: Added.
        (WebInspector.TimelineView):
        (WebInspector.TimelineView.prototype.get navigationSidebarTreeOutline):
        (WebInspector.TimelineView.prototype.get navigationSidebarTreeOutlineLabel):
        (WebInspector.TimelineView.prototype.reset):
        (WebInspector.TimelineView.prototype.shown):
        (WebInspector.TimelineView.prototype.hidden):

66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121
2013-11-07  Timothy Hatcher  <timothy@apple.com>

        Start fleshing out the new TimelineSidebarPanel and TimelineContentView.

        https://bugs.webkit.org/show_bug.cgi?id=124003

        Reviewed by Joseph Pecoraro.

        * UserInterface/ContentView.js:
        (WebInspector.ContentView):
        (WebInspector.ContentView.isViewable):
        * UserInterface/FrameContentView.js:
        * UserInterface/Images/CloseTimeline.png: Added.
        * UserInterface/Images/CloseTimeline@2x.png: Added.
        * UserInterface/Images/ColorsLarge.png: Added.
        * UserInterface/Images/ColorsLarge@2x.png: Added.
        * UserInterface/Images/NetworkLarge.png: Added.
        * UserInterface/Images/NetworkLarge@2x.png: Added.
        * UserInterface/Images/ScriptLarge.png: Added.
        * UserInterface/Images/ScriptLarge@2x.png: Added.
        * UserInterface/Main.html:
        * UserInterface/Main.js:
        (WebInspector.sidebarPanelForRepresentedObject):
        (WebInspector._revealAndSelectRepresentedObjectInNavigationSidebar):
        * UserInterface/NavigationSidebarPanel.js:
        (WebInspector.NavigationSidebarPanel.prototype.showDefaultContentView):
        * UserInterface/ResourceClusterContentView.js:
        * UserInterface/TimelineContentView.css: Added.
        (.content-view.timeline > .view-container):
        * UserInterface/TimelineContentView.js: Added.
        (WebInspector.TimelineContentView):
        * UserInterface/TimelineIcons.css: Renamed from Source/WebInspectorUI/UserInterface/InstrumentIcons.css.
        (.network-icon.large .icon): Added.
        (.colors-icon.large .icon): Added.
        (.script-icon.large .icon): Added.
        * UserInterface/TimelineSidebarPanel.css:
        (.sidebar > .panel.timeline > .navigation-bar):
        (.sidebar > .panel.timeline > .title-bar):
        (.sidebar > .panel.timeline > .title-bar.timelines):
        (.sidebar > .panel.timeline > .title-bar.timeline-events):
        (.sidebar > .panel.timeline > .timelines-content):
        (.sidebar > .panel.timeline > .timelines-content .close-button):
        (.sidebar > .panel.timeline > .timelines-content li.item.selected .close-button):
        (.sidebar > .panel.timeline > .timelines-content .close-button:active):
        (.sidebar > .panel.timeline > .content):
        * UserInterface/TimelineSidebarPanel.js:
        (WebInspector.TimelineSidebarPanel.createTimelineTreeElement):
        (WebInspector.TimelineSidebarPanel):
        (WebInspector.TimelineSidebarPanel.prototype.showDefaultContentView):
        (WebInspector.TimelineSidebarPanel.prototype.treeElementForRepresentedObject):
        (WebInspector.TimelineSidebarPanel.prototype.get contentTreeOutlineLabel):
        (WebInspector.TimelineSidebarPanel.prototype.set contentTreeOutlineLabel):
        (WebInspector.TimelineSidebarPanel.prototype.showTimelineOverview):
        (WebInspector.TimelineSidebarPanel.prototype.showTimelineView):
        (WebInspector.TimelineSidebarPanel.prototype._timelinesTreeElementSelected):

122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160
2014-01-08  Timothy Hatcher  <timothy@apple.com>

        Correctly track time bounds of WebInspector.Timeline and WebInspector.TimelineRecording.

        The startTime and endTime were not correct when Network timeline needed to be taken into
        account (due to its dynamic loading nature.) This creates a network Timeline for the purposes
        of tracking the ResourceTimelineRecords and getting accurate start and end times.

        Also changes the way TimelineRecord tracks the inactive portion of time, needed for later
        work on the timeline graphs.

        https://bugs.webkit.org/show_bug.cgi?id=126676

        Reviewed by Joseph Pecoraro.

        * UserInterface/ResourceTimelineRecord.js:
        (WebInspector.ResourceTimelineRecord.prototype.get updatesDynamically):
        (WebInspector.ResourceTimelineRecord.prototype.get usesActiveStartTime):
        (WebInspector.ResourceTimelineRecord.prototype.get startTime):
        (WebInspector.ResourceTimelineRecord.prototype.get activeStartTime):
        (WebInspector.ResourceTimelineRecord.prototype.get endTime):
        * UserInterface/Timeline.js:
        (WebInspector.Timeline):
        (WebInspector.Timeline.prototype.get startTime):
        (WebInspector.Timeline.prototype.get endTime):
        (WebInspector.Timeline.prototype.addRecord):
        (WebInspector.Timeline.prototype._updateTimesIfNeeded):
        (WebInspector.Timeline.prototype._recordUpdated):
        * UserInterface/TimelineRecord.js:
        (WebInspector.TimelineRecord.prototype.get startTime):
        (WebInspector.TimelineRecord.prototype.get activeStartTime):
        (WebInspector.TimelineRecord.prototype.get endTime):
        (WebInspector.TimelineRecord.prototype.get inactiveDuration):
        (WebInspector.TimelineRecord.prototype.get activeDuration):
        (WebInspector.TimelineRecord.prototype.get updatesDynamically):
        (WebInspector.TimelineRecord.prototype.get usesActiveStartTime):
        * UserInterface/TimelineRecording.js:
        (WebInspector.TimelineRecording.prototype._timelineTimesUpdated):

161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190
2013-10-25  Timothy Hatcher  <timothy@apple.com>

        Implement TimelineRecording and per-call-site timelines.

        Keep track of timeline records per global timeline and per source code location.
        This will be used to display them in the UI in later patches.

        https://bugs.webkit.org/show_bug.cgi?id=123367

        Reviewed by Joseph Pecoraro.

        * UserInterface/Main.html:
        * UserInterface/SourceCodeTimeline.js: Added.
        (WebInspector.SourceCodeTimeline):
        (WebInspector.SourceCodeTimeline.prototype.get sourceCode):
        (WebInspector.SourceCodeTimeline.prototype.get sourceCodeLocation):
        (WebInspector.SourceCodeTimeline.prototype.get recordType):
        (WebInspector.SourceCodeTimeline.prototype.get recordEventType):
        * UserInterface/Timeline.js: Added.
        (WebInspector.Timeline):
        (WebInspector.Timeline.prototype.get records):
        (WebInspector.Timeline.prototype.addRecord):
        * UserInterface/TimelineRecording.js:
        (WebInspector.TimelineRecording):
        (WebInspector.TimelineRecording.prototype.get timelines): Added.
        (WebInspector.TimelineRecording.prototype.sourceCodeTimelinesForSourceCode): Added.
        (WebInspector.TimelineRecording.prototype.addEventMarker): Implemented.
        (WebInspector.TimelineRecording.prototype.addRecord): Implemented.
        (WebInspector.TimelineRecording.prototype._keyForRecord): Added.

191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224
2013-10-25  Timothy Hatcher  <timothy@apple.com>

        Add support for multiple Timeline recordings.

        We also don't explicitly add ResourceTimelineRecords anymore. These will be tracked automatically in a later patch.

        https://bugs.webkit.org/show_bug.cgi?id=123366

        Reviewed by Joseph Pecoraro.

        * UserInterface/DashboardManager.js:
        (WebInspector.DashboardManager.prototype._mainResourceDidChange): Check for currentRecording.
        * UserInterface/InspectorFrontendAPI.js:
        (InspectorFrontendAPI.isTimelineProfilingEnabled): Check for currentRecording.
        * UserInterface/Main.html:
        * UserInterface/TimelineManager.js:
        (WebInspector.TimelineManager):
        (WebInspector.TimelineManager.prototype.get currentRecording): Added.
        (WebInspector.TimelineManager.prototype.startRecording): Make a new recording and push it onto the recording array.
        Add the current recording to the event.
        (WebInspector.TimelineManager.prototype.stopRecording): Add the current recording to the event.
        (WebInspector.TimelineManager.prototype.eventRecorded.processRecord): Check for currentRecording. Add the markers
        to the current recording.
        (WebInspector.TimelineManager.prototype._addRecord): Add the record to the current recording.
        (WebInspector.TimelineManager.prototype._startAutoRecording): Clean up. Don't add ResourceTimelineRecord. Clear recordings.
        (WebInspector.TimelineManager.prototype._stopAutoRecordingSoon): Check for _currentRecording.
        (WebInspector.TimelineManager.prototype._resetAutoRecordingDeadTimeTimeout): Ditto.
        (WebInspector.TimelineManager.prototype._mainResourceDidChange): Don't add ResourceTimelineRecord anymore.
        (WebInspector.TimelineManager.prototype._resourceWasAdded): Removed.
        * UserInterface/TimelineRecording.js: Added.
        (WebInspector.TimelineRecording): Added.
        (WebInspector.TimelineRecording.prototype.addEventMarker): Added.
        (WebInspector.TimelineRecording.prototype.addRecord): Added.

225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246
2013-10-25  Timothy Hatcher  <timothy@apple.com>

        Track callFrames and sourceCodeLocation per TimelineRecord.

        https://bugs.webkit.org/show_bug.cgi?id=123359

        Reviewed by Joseph Pecoraro.

        * UserInterface/LayoutTimelineRecord.js:
        (WebInspector.LayoutTimelineRecord): Pass callFrames and sourceCodeLocation to superclass.
        * UserInterface/ScriptTimelineRecord.js:
        (WebInspector.ScriptTimelineRecord): Pass callFrames and sourceCodeLocation to superclass.
        * UserInterface/TimelineManager.js:
        (WebInspector.TimelineManager.prototype.eventRecorded.processRecord): Add "Payload" suffix to better track what is a protocol object.
        Pass the callFrames and sourceCodeLocation to all the new TimelineRecords.
        (WebInspector.TimelineManager.prototype.eventRecorded): Add "Payload" suffix.
        * UserInterface/TimelineRecord.js:
        (WebInspector.TimelineRecord):
        (WebInspector.TimelineRecord.prototype.get callFrames): Added.
        (WebInspector.TimelineRecord.prototype.get initiatorCallFrame): Added.
        (WebInspector.TimelineRecord.prototype.get sourceCodeLocation): Added.

247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267
2013-10-25  Timothy Hatcher  <timothy@apple.com>

        Change how the load and content ready event timestamps are tracked.

        https://bugs.webkit.org/show_bug.cgi?id=123356

        Reviewed by Joseph Pecoraro.

        * UserInterface/DashboardManager.js:
        (WebInspector.DashboardManager.prototype._updateTime): Use the timestamps on the main frame.
        * UserInterface/Frame.js:
        (WebInspector.Frame):
        (WebInspector.Frame.prototype.get domContentReadyEventTimestamp): Added.
        (WebInspector.Frame.prototype.get loadEventTimestamp): Added.
        (WebInspector.Frame.prototype.markDOMContentReadyEvent): Added.
        (WebInspector.Frame.prototype.markLoadEvent): Added.
        * UserInterface/TimelineManager.js:
        (WebInspector.TimelineManager.prototype.eventRecorded.processRecord): Use markLoadEvent and markDOMContentReadyEvent.
        Do it for all frames, not just the main frame.
        (WebInspector.TimelineManager.prototype.pageDidLoad): Call markLoadEvent on the Frame.

268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308
2013-10-25  Timothy Hatcher  <timothy@apple.com>

        Remove a lot of the current Timelines code to make room for a new implementation.

        https://bugs.webkit.org/show_bug.cgi?id=123368

        Reviewed by Joseph Pecoraro.

        * Localizations/en.lproj/localizedStrings.js:
        * UserInterface/ContentView.js:
        (WebInspector.ContentView):
        (WebInspector.ContentView.isViewable):
        * UserInterface/DashboardView.js:
        (WebInspector.DashboardView.prototype._networkItemWasClicked):
        * UserInterface/InspectorFrontendAPI.js:
        (InspectorFrontendAPI.setTimelineProfilingEnabled):
        (InspectorFrontendAPI.stopProfilingJavaScript):
        * UserInterface/InstrumentSidebarPanel.js: Removed.
        * UserInterface/Main.html:
        * UserInterface/Main.js:
        (WebInspector.contentLoaded):
        (WebInspector.sidebarPanelForRepresentedObject):
        (WebInspector.openURL):
        * UserInterface/Object.js:
        (WebInspector.Object.addEventListener):
        * UserInterface/TimelineManager.js:
        (WebInspector.TimelineManager):
        (WebInspector.TimelineManager.prototype.startRecording):
        (WebInspector.TimelineManager.prototype.eventRecorded.processRecord):
        (WebInspector.TimelineManager.prototype.eventRecorded):
        (WebInspector.TimelineManager.prototype.objectForCookie):
        (WebInspector.TimelineManager.prototype._addRecord):
        * UserInterface/TimelinesObject.js: Removed.
        * UserInterface/TimelineOverview.css: Removed.
        * UserInterface/TimelineOverview.js: Removed.
        * UserInterface/TimelineSidebarPanel.css: Added.
        * UserInterface/TimelineSidebarPanel.js: Added.
        (WebInspector.TimelineSidebarPanel):
        * UserInterface/TimelinesContentView.css: Removed.
        * UserInterface/TimelinesContentView.js: Removed.

309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326
2014-01-20  Timothy Hatcher  <timothy@apple.com>

        Fix jumping to a text position when showing a resource.

        https://bugs.webkit.org/show_bug.cgi?id=127271

        Reviewed by Joseph Pecoraro.

        * UserInterface/FrameContentView.js:
        (WebInspector.FrameContentView.prototype.showSourceCode): Just use showResponse's arguments
        which already does the same logic to call revealPosition.
        * UserInterface/ResourceClusterContentView.js:
        (WebInspector.ResourceClusterContentView.prototype.restoreFromCookie): This was the bug.
        lineNumber and columnNumber need honored here. They were only honored by FrameContentView.
        * UserInterface/ResourceSidebarPanel.js:
        (WebInspector.ResourceSidebarPanel.prototype.showSourceCode): Use showContentViewForRepresentedObject
        which also accepts a cookie and handles creating the content view for us.

327 328 329 330 331 332 333 334 335 336 337 338 339
2014-01-16  Brian Burg  <bburg@apple.com>

        Web Inspector: add more context to Object.addEventListener assertions
        https://bugs.webkit.org/show_bug.cgi?id=127125

        Reviewed by Joseph Pecoraro.

        Log invalid event type and listener parameters, and log the other
        parameters so the callsite is easier to figure out.

        * UserInterface/Object.js:
        (WebInspector.Object.addEventListener):

340 341 342 343 344 345 346 347 348
2014-01-16  Brian Burg  <bburg@apple.com>

        Web Inspector: CallFrame is missing saveIdentityToCookie, or should be excluded
        https://bugs.webkit.org/show_bug.cgi?id=126791

        Reviewed by Timothy Hatcher.

        * UserInterface/CallFrame.js: Add a dummy saveIdentityToCookie() implementation.

349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364
2014-01-16  Brian Burg  <bburg@apple.com>

        Web Inspector: add probe breakpoint action to popup breakpoint editor
        https://bugs.webkit.org/show_bug.cgi?id=126931

        Reviewed by Timothy Hatcher.

        Add probes to the breakpoint action dropdown.
        Reuse the "evaluate JavaScript" input UI.

        * Localizations/en.lproj/localizedStrings.js:
        * UserInterface/BreakpointAction.js:
        * UserInterface/BreakpointActionView.js:
        (WebInspector.BreakpointActionView.displayStringForType):
        (WebInspector.BreakpointActionView.prototype._updateBody.switch.break):

365 366 367 368 369 370 371 372 373
2014-01-15  Brian Burg  <bburg@apple.com>

        Web Inspector: capture probe samples on the backend
        https://bugs.webkit.org/show_bug.cgi?id=126668

        Reviewed by Joseph Pecoraro.

        * UserInterface/InspectorJSBackendCommands.js: Add probe enumeration value.

374 375 376 377 378 379 380 381 382 383 384 385 386 387 388 389 390 391 392 393 394 395 396 397 398 399 400 401 402 403 404 405 406
2014-01-15  Andreas Kling  <akling@apple.com>

        Remove the CSS selector profiler.
        <https://webkit.org/b/127039>

        Purge selector profiler code from the new Web Inspector UI.

        Reviewed by Sam Weinig.

        * Localizations/en.lproj/localizedStrings.js:
        * UserInterface/CSSSelectorProfileObject.js: Removed.
        * UserInterface/CSSSelectorProfileType.js: Removed.
        * UserInterface/CSSSelectorProfileView.js: Removed.
        * UserInterface/ContentView.js:
        (WebInspector.ContentView):
        (WebInspector.ContentView.isViewable):
        * UserInterface/InspectorWebBackendCommands.js:
        * UserInterface/InstrumentSidebarPanel.js:
        (WebInspector.InstrumentSidebarPanel):
        (WebInspector.InstrumentSidebarPanel.prototype._recordProfileGlyphMousedOver):
        (WebInspector.InstrumentSidebarPanel.prototype._recordProfileGlyphMousedDown):
        (WebInspector.InstrumentSidebarPanel.prototype._recordProfileGlyphClicked):
        (WebInspector.InstrumentSidebarPanel.prototype._profileTypeWasSelected):
        (WebInspector.InstrumentSidebarPanel.prototype._profilesCleared):
        * UserInterface/Main.html:
        * UserInterface/ProfileManager.js:
        (WebInspector.ProfileManager):
        (WebInspector.ProfileManager.prototype.initialize):
        (WebInspector.ProfileManager.prototype._checkForInterruptions):
        (WebInspector.ProfileManager.prototype._attemptToResumeProfiling):
        * WebInspectorUI.vcxproj/WebInspectorUI.vcxproj:
        * WebInspectorUI.vcxproj/WebInspectorUI.vcxproj.filters:

407 408 409 410 411 412 413 414 415 416 417 418
2014-01-13  Timothy Hatcher  <timothy@apple.com>

        Snap time dividers to nearest numbers instead of just dividing the time span into max density slices.

        https://bugs.webkit.org/show_bug.cgi?id=125081

        Reviewed by Joseph Pecoraro.

        * UserInterface/TimelineDecorations.js:
        (WebInspector.TimelineDecorations.prototype.updateHeaderTimes): Snap the time slice to a nearest number.
        (WebInspector.TimelineDecorations.prototype.updateEventMarkers): Rename boundarySpan to timeSpan.

419 420 421 422 423 424 425 426 427 428 429 430 431 432
2014-01-10  Joseph Pecoraro  <pecoraro@apple.com>

        Web Inspector: Remove unimplemented or static ScriptDebugServer features
        https://bugs.webkit.org/show_bug.cgi?id=126784

        Reviewed by Timothy Hatcher.

        * UserInterface/InspectorJSBackendCommands.js:
        * UserInterface/InspectorWebBackendCommands.js:
        * UserInterface/Legacy/6.0/InspectorWebBackendCommands.js:
        * UserInterface/Legacy/7.0/InspectorWebBackendCommands.js:
        * Versions/Inspector-iOS-6.0.json:
        * Versions/Inspector-iOS-7.0.json:

433 434 435 436 437 438 439 440 441 442 443 444
2014-01-10  Timothy Hatcher  <timothy@apple.com>

        Web Inspector: support negative numbers in secondsToString and bytesToString.

        https://bugs.webkit.org/show_bug.cgi?id=125708

        Reviewed by Joseph Pecoraro.

        * UserInterface/Utilities.js:
        (Number.secondsToString): Use Math.abs in the size checks.
        (Number.bytesToString): Ditto.

445 446 447 448 449 450 451 452 453 454 455 456 457 458 459 460 461 462 463 464 465 466 467 468 469 470 471 472 473 474 475 476 477 478 479 480 481 482 483 484 485 486 487 488 489 490 491 492 493 494 495 496 497 498 499 500 501
2014-01-10  Brian Burg  <bburg@apple.com>

        Web Inspector: cycle clicked breakpoints between enabled, auto-continue, and disabled
        https://bugs.webkit.org/show_bug.cgi?id=126669

        Reviewed by Joseph Pecoraro.

        It's time-consuming to change a breakpoint's auto-continue setting through the
        breakpoint editor popup. This patch enables the user to toggle between enabled,
        auto-continue, and disabled by clicking on the breakpoint wedge in the sidebar
        tree and in the source text editor gutter. The auto-continue option is only
        cycled when the breakpoint has associated actions.

        Clean up the breakpoint editor dialog so it hides irrelevant options when
        no breakpoint actions have been added.

        Automatically unset auto-continue when the last breakpoint action is removed.

        Rename the delegate textEditorBreakpointToggled to textEditorBreakpointClicked, since
        the behavior of the click depends on breakpoint state not available in the text editor.

        * Localizations/en.lproj/localizedStrings.js:
        * UserInterface/Breakpoint.js:
        (WebInspector.Breakpoint.prototype.cycleToNextMode): Added.
        (WebInspector.Breakpoint.prototype.toggleAutoContinue): Added.
        (WebInspector.Breakpoint.prototype.appendContextMenuItems): Add auto-continue options.
        (WebInspector.Breakpoint.prototype.removeAction):

        (WebInspector.Breakpoint.prototype._editBreakpointPopoverContentElement):
        (WebInspector.Breakpoint.prototype._popoverActionsAddActionButtonClicked):
        (WebInspector.Breakpoint.prototype.breakpointActionViewAppendActionView):
        (WebInspector.Breakpoint.prototype.breakpointActionViewRemoveActionView):
        (WebInspector.Breakpoint.prototype.willDismissPopover):
        * UserInterface/BreakpointTreeElement.css:
        (.item.breakpoint .status > .status-image.auto-continue):
        (.item.breakpoint .status > .status-image.disabled):
        * UserInterface/BreakpointTreeElement.js:
        (WebInspector.BreakpointTreeElement):
        (WebInspector.BreakpointTreeElement.prototype.onenter):
        (WebInspector.BreakpointTreeElement.prototype.onspace):
        (WebInspector.BreakpointTreeElement.prototype._updateStatus):
        (WebInspector.BreakpointTreeElement.prototype._breakpointLocationDidChange):
        (WebInspector.BreakpointTreeElement.prototype._statusImageElementClicked):
        * UserInterface/SourceCodeTextEditor.js:
        (WebInspector.SourceCodeTextEditor):
        (WebInspector.SourceCodeTextEditor.prototype.close):
        (WebInspector.SourceCodeTextEditor.prototype._breakpointInfoForBreakpoint):
        (WebInspector.SourceCodeTextEditor.prototype.textEditorBreakpointClicked):
        * UserInterface/TextEditor.css:
        (.text-editor > .CodeMirror .breakpoint-auto-continue:not(.breakpoint-disabled) .CodeMirror-linenumber::before):
        * UserInterface/TextEditor.js:
        (WebInspector.TextEditor.prototype._setBreakpointStylesOnLine.updateStyles):
        (WebInspector.TextEditor.prototype._setBreakpointStylesOnLine):
        (WebInspector.TextEditor.prototype.updateStyles):
        (WebInspector.TextEditor.prototype._removeBreakpointFromLineAndColumn):
        (WebInspector.TextEditor.prototype._documentMouseUp):

502 503 504 505 506 507 508 509 510 511 512 513 514 515 516 517
2014-01-10  Timothy Hatcher  <timothy@apple.com>

        Clean up some areas of TreeOutline.

        https://bugs.webkit.org/show_bug.cgi?id=123924

        Reviewed by Joseph Pecoraro.

        * UserInterface/TreeOutline.js:
        (TreeOutline.prototype.appendChild): Don't force create _childrenListNode, it will be created
        when the tree element is expanded. Only attach if _childrenListNode already exists.
        (TreeOutline.prototype.insertChild): Ditto.
        (TreeOutline.prototype.getCachedTreeElement): Check the value of __treeElementIdentifier
        not just the existence of the property. It should never be null/undefined/0, but be safe.
        (TreeOutline.prototype.findTreeElement): Null check isAncestor, it isn't required.

518 519 520 521 522 523 524 525 526 527 528 529
2014-01-10  Timothy Hatcher  <timothy@apple.com>

        Fix an exception in WebInspector.Color.

        https://bugs.webkit.org/show_bug.cgi?id=126765

        Reviewed by Joseph Pecoraro.

        * UserInterface/Color.js:
        (WebInspector.Color.fromString): Check hasOwnPrperty before using the nickname color array.
        (WebInspector.Color.prototype._toNicknameString): Ditto.

530 531 532 533 534 535 536 537 538 539 540
2014-01-10  Joseph Pecoraro  <pecoraro@apple.com>

        [CSS Blending] Log blending as a layer creation reason in the WI
        https://bugs.webkit.org/show_bug.cgi?id=126159

        Reviewed by Timothy Hatcher.

        * Localizations/en.lproj/localizedStrings.js:
        * UserInterface/LayerTreeSidebarPanel.js:
        (WebInspector.LayerTreeSidebarPanel.prototype._populateListOfCompositingReasons):

541 542 543 544 545 546 547 548 549 550 551 552
2014-01-10  Peter Molnar  <pmolnar.u-szeged@partner.samsung.com>

        Add missing function stub in InspectorFrontendHostStub.js
        https://bugs.webkit.org/show_bug.cgi?id=126745

        Reviewed by Timothy Hatcher.

        * UserInterface/InspectorFrontendHostStub.js:
        (.WebInspector.InspectorFrontendHostStub.prototype.debuggableType):
        The function debuggableType() was added to InspectorFrontendHost.idl and InspectorFrontendHost.cpp
        in r160887, but not to InspectorFrontendHostStub.js.

553 554 555 556 557 558 559 560 561 562 563 564 565 566 567
2014-01-09  Seokju Kwon  <seokju@webkit.org>

        Web Inspector: Remove unused overriding protocols.
        https://bugs.webkit.org/show_bug.cgi?id=126630

        Reviewed by Timothy Hatcher.

        Update InspectorWebBackendCommands.js after removing unused overriding protocols.

        * UserInterface/InspectorWebBackendCommands.js:
        * UserInterface/Legacy/6.0/InspectorWebBackendCommands.js:
        * UserInterface/Legacy/7.0/InspectorWebBackendCommands.js:
        * Versions/Inspector-iOS-6.0.json:
        * Versions/Inspector-iOS-7.0.json:

568 569 570 571 572 573 574 575 576 577 578 579 580 581
2014-01-07  Joseph Pecoraro  <pecoraro@apple.com>

        Web Inspector: Typo "clipboarPrefixString"
        https://bugs.webkit.org/show_bug.cgi?id=126595

        Reviewed by Sam Weinig.

        * UserInterface/ConsoleCommandResult.js:
        (WebInspector.ConsoleCommandResult.prototype.toMessageElement):
        (WebInspector.ConsoleCommandResult.prototype.get clipboardPrefixString):
        * UserInterface/ConsoleMessageImpl.js:
        (WebInspector.ConsoleMessageImpl.prototype.get clipboardPrefixString):
        (WebInspector.ConsoleMessageImpl.prototype.toClipboardString):

582 583 584 585 586 587 588 589 590 591 592 593 594
2014-01-06  Seokju Kwon  <seokju@webkit.org>

        Web Inspector: Remove canOverrideDeviceMetrics and setDeviceMetricsOverride from protocol
        https://bugs.webkit.org/show_bug.cgi?id=126149

        Reviewed by Joseph Pecoraro.

        * UserInterface/InspectorWebBackendCommands.js: Remove unused codes.
        * UserInterface/Legacy/6.0/InspectorWebBackendCommands.js: Ditto.
        * UserInterface/Legacy/7.0/InspectorWebBackendCommands.js: Ditto.
        * Versions/Inspector-iOS-6.0.json: Ditto.
        * Versions/Inspector-iOS-7.0.json: Ditto.

595 596 597 598 599 600 601 602 603 604 605 606 607 608 609
2014-01-06  Seokju Kwon  <seokju@webkit.org>

        Web Inspector: Remove support for FileSystem in Frontend.
        https://bugs.webkit.org/show_bug.cgi?id=126369

        Reviewed by Joseph Pecoraro.

        Update InspectorWebBackendCommands after removing 'FileSystem' domain.

        * UserInterface/InspectorWebBackendCommands.js:
        * UserInterface/Legacy/6.0/InspectorWebBackendCommands.js:
        * UserInterface/Legacy/7.0/InspectorWebBackendCommands.js:
        * Versions/Inspector-iOS-6.0.json:
        * Versions/Inspector-iOS-7.0.json:

610 611 612 613 614 615 616 617 618 619 620
2014-01-06  Seokju Kwon  <seokju@webkit.org>

        Web Inspector: Get rid of DOM.setFileInputFiles from Protocol
        https://bugs.webkit.org/show_bug.cgi?id=126312

        Reviewed by Joseph Pecoraro.

        Update InspectorWebBackendCommands.js after removing DOM.setFileInputFiles.

        * UserInterface/InspectorWebBackendCommands.js:

621 622 623 624 625 626 627 628 629 630
2013-12-22  Martin Robinson  <mrobinson@igalia.com>

        [GTK][CMake] Integrate GResource for inspector files (and others?)
        https://bugs.webkit.org/show_bug.cgi?id=125569

        Reviewed by Gustavo Noronha Silva.

        * GNUmakefile.am: Use the new generation script instead of generating with
        shell scripting in the makefile.

631 632 633 634 635 636 637 638 639 640 641 642 643
2013-12-19  Joseph Pecoraro  <pecoraro@apple.com>

        Web Inspector: Frontend Error when selecting Database folder in Resources Sidebar
        https://bugs.webkit.org/show_bug.cgi?id=126029

        Reviewed by Timothy Hatcher.

        Treat the DatabaseHostTreeElement tree element like a folder. It pretty much
        is a folder, but inherits from StorageTreeElement to share some code there.

        * UserInterface/ResourceSidebarPanel.js:
        (WebInspector.ResourceSidebarPanel.prototype._treeElementSelected):

644 645 646 647 648 649 650 651 652 653 654 655 656 657 658 659 660 661 662 663 664 665 666 667 668 669 670 671
2013-12-19  Joseph Pecoraro  <pecoraro@apple.com>

        Web Inspector: Uncaught Exception: NavigationSidebarPanel.js: TypeError: undefined is not a function
        https://bugs.webkit.org/show_bug.cgi?id=126018

        Reviewed by Timothy Hatcher.

        ERROR: TypeError: undefined is not a function (evaluating 'representedObject.saveIdentityToCookie(candidateObjectCookie)')

        There are some TreeElements (Folders, and the special Databases Folder)
        which do not have a represented object, and would throw an exception
        when trying to use saveIdentityToCookie.

        We should always provide a saveIdentityToCookie when possible. So just
        blacklist the tree element types we know do not have representedObjects,
        and where we don't want to save identity. This will continue to throw
        exceptions in the future for tree elements that don't have the save
        function implemented, but should.

        Note that even if a TreeElement is constructed with a null represented
        object, it becomes an empty object (representedObject || {}).

        * UserInterface/NavigationSidebarPanel.js:
        (WebInspector.NavigationSidebarPanel.prototype.saveStateToCookie):
        (WebInspector.NavigationSidebarPanel.prototype._isTreeElementWithoutRepresentedObject):
        (WebInspector.NavigationSidebarPanel.prototype.treeElementMatchesCookie):
        (WebInspector.NavigationSidebarPanel.prototype._checkElementsForPendingViewStateCookie):

672 673 674 675 676 677 678 679 680 681 682
2013-12-19  Joseph Pecoraro  <pecoraro@apple.com>

        Web Inspector: Add InspectorFrontendHost.debuggableType to let the frontend know it's backend is JavaScript or Web
        https://bugs.webkit.org/show_bug.cgi?id=126016

        Reviewed by Timothy Hatcher.

        * UserInterface/LoadInspectorBackendCommands.js:
        If the debuggable target is "web" load both JS and Web backend commands.
        Otherwise, we only load the default, js backend commands.

683 684 685 686 687 688 689 690 691 692
2013-12-16  Alex Christensen  <achristensen@webkit.org>

        Fixed Win64 build on VS2013.
        https://bugs.webkit.org/show_bug.cgi?id=125753

        Reviewed by Brent Fulgham.

        * WebInspectorUI.vcxproj/WebInspectorUI.vcxproj:
        Added 64-bit configuration.

693 694 695 696 697 698 699 700 701 702 703
2013-12-13  Joseph Pecoraro  <pecoraro@apple.com>

        Web Inspector: Move Inspector and Debugger protocol domains into JavaScriptCore
        https://bugs.webkit.org/show_bug.cgi?id=125707

        Reviewed by Timothy Hatcher.

        * UserInterface/InspectorJSBackendCommands.js:
        * UserInterface/InspectorWebBackendCommands.js:
        Regenerate now that domains have moved around.

704 705 706 707 708 709 710 711 712 713 714 715 716 717 718
2013-12-13  Joseph Pecoraro  <pecoraro@apple.com>

        Web Inspector: Exception: TypeError: undefined is not a function (evaluating 'marker.find()')
        https://bugs.webkit.org/show_bug.cgi?id=125724

        Reviewed by Darin Adler.

        * UserInterface/CSSStyleDeclarationTextEditor.js:
        (WebInspector.CSSStyleDeclarationTextEditor.prototype.):
        (WebInspector.CSSStyleDeclarationTextEditor.prototype._createColorSwatches):
        The callback changed to returning WebInspector.TextMarkers, however
        this class expected a raw CodeMirror marker. Since this class knows
        about CodeMirror and expects to access these markers later go
        directly to the CodeMirror marker.

719 720 721 722 723 724 725 726 727 728 729 730 731 732 733 734 735 736 737 738 739 740 741 742 743
2013-12-13  Joseph Pecoraro  <pecoraro@apple.com>

        Web Inspector: Add Inspector Code Generation to JavaScriptCore for Runtime Domain
        https://bugs.webkit.org/show_bug.cgi?id=125595

        Reviewed by Timothy Hatcher.

        * Scripts/copy-user-interface-resources.sh:
        Copy all the different backend commands files.

        * Scripts/update-InspectorBackendCommands.rb:
        Update with respect to new script location and new file names.

        * WebInspectorUI.xcodeproj/project.pbxproj:
        Remove Inputs and Outputs of build phase, which were wrong.
        Now this build phase always runs, and not by accident.

        * UserInterface/InspectorJSBackendCommands.js: Added.
        * UserInterface/InspectorWebBackendCommands.js: Renamed from Source/WebInspectorUI/UserInterface/InspectorBackendCommands.js.
        * UserInterface/Legacy/6.0/InspectorWebBackendCommands.js: Renamed from Source/WebInspectorUI/UserInterface/Legacy/6.0/InspectorBackendCommands.js.
        * UserInterface/Legacy/7.0/InspectorWebBackendCommands.js: Renamed from Source/WebInspectorUI/UserInterface/Legacy/7.0/InspectorBackendCommands.js.
        * UserInterface/LoadInspectorBackendCommands.js:
        * WebInspectorUI.vcxproj/WebInspectorUI.vcxproj:
        * WebInspectorUI.vcxproj/WebInspectorUI.vcxproj.filters:

744 745 746 747 748 749 750 751 752 753 754 755 756 757 758 759 760 761 762 763 764 765 766 767 768 769 770 771 772 773 774 775 776 777 778 779 780 781 782 783 784 785 786 787 788 789 790 791 792 793 794 795 796 797 798 799 800 801 802 803 804 805 806 807 808 809 810 811 812 813 814 815 816 817 818 819 820 821 822 823 824 825 826 827 828 829 830 831
2013-12-13  Antoine Quint  <graouts@apple.com>

        Web Inspector: provide an abstraction for CodeMirror's TextMarker
        https://bugs.webkit.org/show_bug.cgi?id=125695

        Reviewed by Timothy Hatcher.

        Introduce a new WebInspector.TextMarker class which is used by code with CodeMirror knowledge
        to return information related to text markers to objects that should have no direct knowledge
        of CodeMirror. Start using this class in TextEditor and SourceCodeTextEditor to remove the
        last remaining pieces of CodeMirror knowledge added to SourceCodeTextEditor to fix
        https://webkit.org/b/124364.

        * UserInterface/CodeMirrorAdditions.js:
        Stop using __markedColor to identify a color marker and instead use the type on the matching
        WebInspector.TextMarker. Additionally, create a WebInspector.TextMarker with type
        WebInspector.TextMarker.Type.Color in createColorMarkers().
        
        * UserInterface/CodeMirrorColorEditingController.js:
        (WebInspector.CodeMirrorColorEditingController):
        Use a WebInspector.TextRange to track the edited range and obtain it directly from the
        WebInspector.TextMaker used to instantiate the object. We also use the new "text" public
        property to create the color.

        (WebInspector.CodeMirrorColorEditingController.prototype.set color):
        Simply assing the serialized color to the new "text" public property.

        (WebInspector.CodeMirrorColorEditingController.prototype.get text):
        (WebInspector.CodeMirrorColorEditingController.prototype.set text):
        New public property to set get and set the text for the edited range, automatically updating
        the range upon setting to a new text.

        (WebInspector.CodeMirrorColorEditingController.prototype.presentHoverMenu):
        Obtain the bounds directly from the WebInspector.TextMarker object.

        * UserInterface/CodeMirrorTokenTrackingController.js:
        (WebInspector.CodeMirrorTokenTrackingController.prototype._updateHoveredTokenInfo):
        Since we're now tracking the hoveredMarker as a WebInspector.TextMarker, get the CodeMirror
        TextMarker from that object to check if it's contained within the text markers at the
        hovered position.

        * UserInterface/Main.html:
        Add the new TextMarker class source.

        * UserInterface/SourceCodeTextEditor.js:
        (WebInspector.SourceCodeTextEditor.prototype._hasColorMarkers):
        Use the WebInspector.TextMarker type to identify a given text marker is marking a color.

        (WebInspector.SourceCodeTextEditor.prototype.tokenTrackingControllerNewHighlightCandidate):
        Use the renamed markersAtPosition() method from TextEditor.

        (WebInspector.SourceCodeTextEditor.prototype._tokenTrackingControllerHighlightedMarkedExpression):
        Use the WebInspector.TextMarker type to identify a given text marker is marking a color.

        (WebInspector.SourceCodeTextEditor.prototype.colorEditingControllerDidFinishEditing):
        Since the CodeMirrorColorEditingController is now using a WebInspector.TextRange for its range,
        update to use a WebInspector.TextRange API to get the range's start line.

        * UserInterface/TextEditor.js:
        (WebInspector.TextEditor.prototype.get markers):
        Return WebInspector.TextMarker objects instead of CodeMirror TextRange objects.

        (WebInspector.TextEditor.prototype.markersAtPosition):
        Rename method to a better name instead of using the CodeMirror-influenced name. Also, return
        WebInspector.TextMarker objects instead of CodeMirror TextRange objects.

        * UserInterface/TextMarker.js: Added.
        (WebInspector.TextMarker):
        Create a WebInspector.TextMarker with a CodeMirror TextMarker and an optional type.

        (WebInspector.TextMarker.textMarkerForCodeMirrorTextMarker):
        Static method to either obtain the existing WebInspector.TextMarker for a given CodeMirror
        TextMarker, or create a new WebInspector.TextMarker.

        (WebInspector.TextMarker.prototype.get codeMirrorTextMarker):
        Public property to access the CodeMirror TextMarker objects for classes that have direct
        knowledge of CodeMirror.

        (WebInspector.TextMarker.prototype.get type):
        Public property to access the type used to create this text marker.

        (WebInspector.TextMarker.prototype.get range):
        (WebInspector.TextMarker.prototype.get bounds):
        Public properties allowing easy access to generally useful information related to marked text.

        (WebInspector.TextMarker.prototype.clear):
        Wrapper for the CodeMirror TextMarker clear() method.

832 833 834 835 836 837 838 839 840
2013-12-13  Brent Fulgham  <bfulgham@apple.com>

        [Win] Switch WebKit solution to Visual Studio 2013
        https://bugs.webkit.org/show_bug.cgi?id=125192

        Reviewed by Anders Carlsson.

        * WebInspectorUI.vcxproj/WebInspectorUI.vcxproj: Update for VS2013

841 842 843 844 845 846 847 848 849 850 851 852 853 854 855 856 857 858 859 860 861 862 863 864 865 866 867
2013-12-12  Laszlo Vidacs  <lac@inf.u-szeged.hu>

        Web Inspector: ES6: JavaScript syntax highlighting and recognition of for..of
        https://bugs.webkit.org/show_bug.cgi?id=122868

        Reviewed by Timothy Hatcher.

        Update to CodeMirror 3.20 including javascript ES6 updates.

        * Tools/PrettyPrinting/codemirror.css:
        * Tools/PrettyPrinting/codemirror.js: Minor local change due to error from jsmin.py
        * Tools/PrettyPrinting/css.js:
        * Tools/PrettyPrinting/javascript.js:
        * UserInterface/External/CodeMirror/codemirror.css:
        * UserInterface/External/CodeMirror/codemirror.js: Minor local change due to error from jsmin.py
        * UserInterface/External/CodeMirror/coffeescript.js:
        * UserInterface/External/CodeMirror/css.js:
        * UserInterface/External/CodeMirror/htmlmixed.js:
        * UserInterface/External/CodeMirror/javascript.js:
        * UserInterface/External/CodeMirror/less.js:
        * UserInterface/External/CodeMirror/matchbrackets.js:
        * UserInterface/External/CodeMirror/placeholder.js:
        * UserInterface/External/CodeMirror/runmode.js:
        * UserInterface/External/CodeMirror/searchcursor.js:
        * UserInterface/External/CodeMirror/sql.js:
        * UserInterface/External/CodeMirror/xml.js:

868 869 870 871 872 873 874 875 876 877 878 879 880 881 882 883 884 885 886 887 888 889 890 891 892 893 894 895 896 897 898 899 900 901 902 903 904 905 906 907 908 909 910 911 912 913 914 915 916 917 918 919 920 921 922 923 924 925 926 927 928 929 930 931 932 933 934 935 936 937 938 939 940 941 942 943 944 945 946 947 948 949 950 951 952 953 954 955 956 957 958 959 960 961 962 963 964 965 966 967 968 969 970 971 972 973 974 975 976 977 978 979 980 981 982 983 984 985 986 987 988 989 990 991 992 993 994 995 996 997 998 999 1000 1001 1002 1003 1004 1005 1006 1007 1008 1009 1010 1011 1012 1013 1014 1015 1016 1017 1018 1019 1020 1021 1022 1023 1024 1025 1026 1027 1028 1029 1030 1031 1032 1033 1034 1035 1036 1037 1038 1039 1040 1041 1042 1043 1044 1045 1046 1047 1048 1049 1050 1051 1052 1053 1054 1055 1056 1057 1058 1059 1060 1061 1062 1063 1064 1065 1066 1067 1068 1069 1070 1071 1072 1073 1074 1075 1076 1077 1078 1079 1080 1081 1082
2013-12-12  Antoine Quint  <graouts@apple.com>

        Web Inspector: allow editing of colors in CSS resources
        https://bugs.webkit.org/show_bug.cgi?id=124364

        Reviewed by Timothy Hatcher.

        Identify colors in CSS and HTML resources so that hovering these colors shows a HoverMenu
        allowing a ColorPicker hosted in a Popover to be shown to edit the hovered color.

        * UserInterface/CSSStyleDeclarationTextEditor.js:
        (WebInspector.CSSStyleDeclarationTextEditor.prototype._createColorSwatches):
        Remove the code that goes through the lines of the CodeMirror editor to look for
        color strings and replace it with a call to the .createColorMarkers() CodeMirror
        extension in which the code was refactored. The callback passed to
        .createColorMarkers() handles the CSSStyleDeclarationTextEditor-specific creation
        of color swatches to show the popover, keeping the existing behavior of the Styles
        sidebar panel.

        * UserInterface/CodeMirrorAdditions.js:
        Refactor existing code into two new CodeMirror extensions: .boundsForRange(), which
        was previously defined on the CodeMirrorTokenTrackingController but was also needed
        in the new CodeMirrorColorEditingController, and .createColorMarkers(), discussed above.

        * UserInterface/CodeMirrorColorEditingController.js: Added.
        (WebInspector.CodeMirrorColorEditingController):
        New class used by SourceCodeTextEditor to coordinate the editing of a color in a CodeMirror
        TextMarker by a ColorPicker hosted in a Popover shown by the activation of a HoverMenu. This
        controller automatically gets the color set by the user using the ColorPicker and updates
        the CodeMirror text editor with the new value. When the user presses the Esc. key while the
        popover is shown, it's automatically dismissed and the original color is reset in the editor.

        (WebInspector.CodeMirrorColorEditingController.prototype.get marker):
        (WebInspector.CodeMirrorColorEditingController.prototype.get range):
        (WebInspector.CodeMirrorColorEditingController.prototype.get delegate):
        (WebInspector.CodeMirrorColorEditingController.prototype.set delegate):
        Getters and setters for public properties.

        (WebInspector.CodeMirrorColorEditingController.prototype.get color):
        (WebInspector.CodeMirrorColorEditingController.prototype.set color):
        Get and set the color for the edited color marker, replacing the text in the marker's range
        upon setting.

        (WebInspector.CodeMirrorColorEditingController.prototype.presentHoverMenu):
        Public API allowing for a HoverMenu to be shown around the bounds of the TextMarker passed
        in the constructor. This method is called from SourceCodeTextEditor when the
        CodeMirrorTokenTrackingController identifies that a token that is part of a TextMarker is
        hovered and that token is a color.

        (WebInspector.CodeMirrorColorEditingController.prototype.dismissHoverMenu):
        Public API allowing for the HoverMenu to be dismissed. This method is called when the
        CodeMirrorTokenTrackingController identifies that its "hoveredMarker" is no longer being
        hovered as well as when we identify that editing of the color has completed.

        (WebInspector.CodeMirrorColorEditingController.prototype.handleEvent):
        Event handler for the "keydown" event that are being listened to when the HoverMenu
        is activated such that the Esc. key can be used to dimiss the popover and reset the
        original color before any edits.

        (WebInspector.CodeMirrorColorEditingController.prototype.hoverMenuButtonWasPressed):
        Implementation of the HoverMenu delegation method used to show a Popover containing a
        ColorPicker upon clicking on the color wheel attached to the HoverMenu. We also remember
        the color set on the marker so that it may be restored when Esc. is pressed and used to
        set the original state of the ColorPicker. The delegation method
        colorEditingControllerDidStartEditing() is also called at this point, which the
        SourceCodeTextEditor implements.

        (WebInspector.CodeMirrorColorEditingController.prototype.didDismissPopover):
        Implementation of the Popover delegation method used to identify that color editing has
        completed. The delegation method colorEditingControllerDidFinishEditing() is called
        at this point, which the SourceCodeTextEditor implements.

        (WebInspector.CodeMirrorColorEditingController.prototype._colorPickerColorChanged):
        Apply the color set in the color picker to the CodeMirror text editor.

        * UserInterface/CodeMirrorTokenTrackingController.js:
        Add two new modes to CodeMirrorTokenTrackingController. The first mode is "None" and is
        the default, incurring no specific token handling behavior. The second mode is "MarkedTokens"
        which identifies hover of a token contained in a CodeMirror TextMarker range. The new
        "MarkedTokens" mode is used by SourceCodeTextEditor to identify when a marked color is being
        hovered to display a HoverMenu.

        (WebInspector.CodeMirrorTokenTrackingController):
        (WebInspector.CodeMirrorTokenTrackingController.prototype.set mode):
        Make "None" the new default mode for CodeMirrorTokenTrackingController.

        (WebInspector.CodeMirrorTokenTrackingController.prototype.get hoveredMarker):
        (WebInspector.CodeMirrorTokenTrackingController.prototype.set hoveredMarker):
        (WebInspector.CodeMirrorTokenTrackingController.prototype._updateHoveredTokenInfo):
        Check, when we have a "hoveredMarker" set on the CodeMirrorTokenTrackingController,
        whether the "hoveredMarker" is still being hovered when there is no token at the current
        mouse position. We can then determine when we're mousing out of the "hoveredMarker" and
        notify the delegate via the new tokenTrackingControllerMouseOutOfHoveredMarker delegate
        method. The SourceCodeTextEditor uses this method to dismiss its CodeMirrorColorEditingController.

        (WebInspector.CodeMirrorTokenTrackingController.prototype._processNewHoveredToken):
        Add support for the new "MarkedTokens" mode.

        (WebInspector.CodeMirrorTokenTrackingController.prototype._processMarkedToken):
        For the moment, use the same behavior as the existing "MarkedTokens" mode.

        * UserInterface/Color.js:
        (WebInspector.Color):
        Add a new "valid" property to identify whether a color has any invalid (NaN) component. This property
        is used by SourceCodeTextEditor to establish whether a hovered color marker is indeed set to a
        valid color still.

        (WebInspector.Color.prototype.copy):
        New method to create an exact copy of a Color instance, used by CodeMirrorColorEditingController
        to duplicate the edited color in case we need to revert it.

        * UserInterface/HoverMenu.js:
        (WebInspector.HoverMenu.prototype._handleClickEvent):
        Rename hoverMenuWasActivated to hoverMenuButtonWasPressed per review feedback.

        * UserInterface/Images/ColorIcon.png: Added.
        * UserInterface/Images/ColorIcon@2x.png: Added.
        New color wheel icon used to customize the HoverMenu shown by a CodeMirrorColorEditingController.

        * UserInterface/Main.html:
        Link to the new CodeMirrorColorEditingController.js file.

        * UserInterface/SourceCodeTextEditor.css:
        (.hover-menu.color):
        (.hover-menu.color > img):
        Customize the HoverMenu shown by a CodeMirrorColorEditingController to use the new ColorIcon asset.

        * UserInterface/SourceCodeTextEditor.js:
        (WebInspector.SourceCodeTextEditor):
        Add a new "_ignoreContentDidChange" ivar that increments and decrements to track when handling
        of CodeMirror content changes should be disabled.

        (WebInspector.SourceCodeTextEditor.prototype.close):
        Adopt the new ._updateTokenTrackingControllerState() method to update the state of the
        CodeMirrorTokenTrackingController.

        (WebInspector.SourceCodeTextEditor.prototype.contentDidChange):
        Override the new TextEditor public API called when content in the CodeMirror text editor is changed.
        We use this method to process any newly added line to create any newly added color marker.

        (WebInspector.SourceCodeTextEditor.prototype._contentDidPopulate):
        (WebInspector.SourceCodeTextEditor.prototype._debuggerDidPause):
        (WebInspector.SourceCodeTextEditor.prototype._debuggerDidResume):
        (WebInspector.SourceCodeTextEditor.prototype._sourceCodeSourceMapAdded):
        Adopt the new ._updateTokenTrackingControllerState() method to update the state of the
        CodeMirrorTokenTrackingController.

        (WebInspector.SourceCodeTextEditor.prototype._updateTokenTrackingControllerState):
        New method acting as the only point where we check the state of the text editor and set the right
        mode and settings on the CodeMirrorTokenTrackingController, including setting the new "MarkedTokens"
        mode when we have color markers, as determined by ._hasColorMarkers().

        (WebInspector.SourceCodeTextEditor.prototype._hasColorMarkers):
        Check whether any of the TextMarkers set on the CodeMirror text editor were created for a color.

        (WebInspector.SourceCodeTextEditor.prototype.tokenTrackingControllerHighlightedRangeWasClicked):
        Check the CodeMirrorTokenTrackingController mode rather than the removed "_jumpToSymbolTrackingModeEnabled"
        ivar to identify we're in the "NonSymbolTokens" mode.

        (WebInspector.SourceCodeTextEditor.prototype.tokenTrackingControllerNewHighlightCandidate):
        Refactor method to use the CodeMirrorTokenTrackingController mode to branch into mode-specific code
        and add a new branch for the new "MarkedTokens" mode where we check if the newly hovered token
        is part of a color TextMarker range.

        (WebInspector.SourceCodeTextEditor.prototype.tokenTrackingControllerMouseOutOfHoveredMarker):
        Implement this new CodeMirrorTokenTrackingController delegation method to dismiss the
        CodeMirrorColorEditingController as we identify we're no longer hovering over the TextMarker
        for which the CodeMirrorColorEditingController was created.

        (WebInspector.SourceCodeTextEditor.prototype._showPopover):
        Adopt the new TextEditor boundsForRange() method.

        (WebInspector.SourceCodeTextEditor.prototype._updateColorMarkers):
        Harness the new TextEditor createColorMarkers() method to create new TextMarkers for the provided
        line, or the entire text editor content if none provided. We then immediately call _updateTokenTrackingControllerState()
        so that the new "MarkedTokens" mode is entered in case color TextMarkers were created for the first
        time for this text editor.

        (WebInspector.SourceCodeTextEditor.prototype._tokenTrackingControllerHighlightedMarkedExpression):
        Called when we've identified the CodeMirrorTokenTrackingController highlighted a TextMarker. We check
        if any of the hovered TextMarkers are for a color, and in this case create a CodeMirrorColorEditingController
        to coordinate the display of a ColorPicker in a Popover to edit the hovered color token. We also check
        whether the hovered marker still contains a valid color, clearing the marker in case it was edited to
        no longer contain a color.

        (WebInspector.SourceCodeTextEditor.prototype._dismissCodeMirrorColorEditingController):
        Used to dismiss the CodeMirrorColorEditingController, if previously presented, and reset some internal state.

        (WebInspector.SourceCodeTextEditor.prototype.colorEditingControllerDidStartEditing):
        Implement this CodeMirrorColorEditingController delegation method to temporarily disable the
        CodeMirrorTokenTrackingController while we edit the color with the ColorPicker, remove
        the TextMarker for the edited color and instruct that content changes should be ignored
        such that we act on the complete set of color edits upon completion.

        (WebInspector.SourceCodeTextEditor.prototype.colorEditingControllerDidFinishEditing):
        Update color markers for the edited line such that any color edits are correctly updated for
        the future and so that, as a side-effect, the CodeMirrorColorEditingController is reset to the
        appropriate mode depending on whether color TextMarkers are indeed available, resetting states
        that may have been altered by colorEditingControllerDidStartEditing().

        * UserInterface/TextEditor.js:
        (WebInspector.TextEditor.prototype.contentDidChange):
        New public method meant to be overriden by subclasses, added for the use of SourceCodeTextEditor, exposing
        the list of TextRanges affected by the content change, both in the context of the old content and new content.

        (WebInspector.TextEditor.prototype.boundsForRange):
        (WebInspector.TextEditor.prototype.get markers):
        (WebInspector.TextEditor.prototype.findMarkersAtPosition):
        (WebInspector.TextEditor.prototype.createColorMarkers):
        (WebInspector.TextEditor.prototype.colorEditingControllerForMarker):
        New public methods calling into the CodeMirror private ivar for the benefit of SourceCodeTextEditor.

        (WebInspector.TextEditor.prototype._contentChanged):
        Call the new contentDidChange() method.

1083 1084 1085 1086 1087 1088 1089 1090 1091 1092 1093 1094 1095 1096
2013-12-05  Seokju Kwon  <seokju@webkit.org>

        Web Inspector: Remove 'cookiesString' output from Page.getCookies
        https://bugs.webkit.org/show_bug.cgi?id=125268

        Reviewed by Timothy Hatcher.

        Remove 'cookiesString' output from Page.getCookies protocol.
        It is no longer meaningful because it is an unused parameter.

        * UserInterface/CookieStorageContentView.js:
        (WebInspector.CookieStorageContentView.prototype.update):
        * UserInterface/InspectorBackendCommands.js:

1097 1098 1099 1100 1101 1102 1103 1104 1105 1106 1107 1108
2013-12-05  Brian J. Burg  <burg@cs.washington.edu>

        Web Inspector: expose node and frame snapshot capabilities.
        https://bugs.webkit.org/show_bug.cgi?id=124326

        Reviewed by Joseph Pecoraro.

        Add method signatures for snapshotNode() and snapshotRect().
        Remove method signature for unimplemented Page.captureScreenshot.

        * UserInterface/InspectorBackendCommands.js:

1109 1110 1111 1112 1113 1114 1115 1116 1117 1118 1119 1120 1121 1122 1123 1124 1125 1126 1127 1128 1129 1130 1131 1132 1133 1134 1135 1136 1137 1138 1139 1140 1141 1142 1143 1144 1145 1146 1147 1148 1149 1150 1151 1152 1153 1154 1155 1156 1157 1158 1159 1160 1161 1162 1163 1164 1165 1166 1167 1168 1169 1170 1171 1172 1173 1174 1175 1176 1177 1178 1179 1180 1181 1182 1183 1184 1185 1186 1187 1188 1189 1190 1191 1192 1193 1194 1195 1196 1197 1198 1199 1200 1201 1202 1203 1204 1205 1206 1207 1208 1209 1210 1211
2013-12-05  Alexandru Chiculita  <achicu@adobe.com>

        Web Inspector: [CSS Regions] Show a list of containing regions when clicking a node that is part of a flow
        https://bugs.webkit.org/show_bug.cgi?id=124614

        Reviewed by Timothy Hatcher.

        Added a new function in DOMTreeManager called getNodeContentFlowInfo that can be used
        to retrieve an object with the following structure:
        {
             "regionFlow": <Reference to the ContentFlow object referenced by the -webkit-flow-from property of the node>,
             "contentFlow": <Reference to the ContentFlow object referenced by the -webkit-flow-into property of 
                             the node or a parent of the node>,
             "regions": [ list of DOMNodes representing the regions containers of the node. The node is split across all these regions. ]
        }

        Also, used this method to display a two new sections in the Computed Styles panel.
        1. Section "Flows": can have up to two Simple Rows: "Region Flow" and "Content Flow".
        2. Section "Container Regions" contains a DOMTreeDataGrid with the list of regions.

        The sections are only visible when there's content to display.

        Next to the "Region Flow" simple row I've added an arrow that will take the user to the "ContentFlowDOMTreeContentView" of the
        ContentFlow. The same happens for the "Content Flow", but in this case the element will also be highlighted.

        Part of the patch I've added the DOMTreeDataGridNode. LayerTreeDataGrid has a lot of CSS in common with it, so I
        will make another patch to refactor LayerTreeDataGrid to use DOMTreeDataGridNode as a base class.

        * Localizations/en.lproj/localizedStrings.js:
        * UserInterface/ComputedStyleDetailsPanel.css: Added.
        (.details-section > .content > .group > .row.simple.content-flow-link > .label):
        (.details-section > .content > .group > .row.simple.content-flow-link > .value):
        (.details-section > .content > .group > .row.simple.content-flow-link > .value > div):
        (.details-section > .content > .group > .row.simple.content-flow-link > .value > div > .icon):
        (.details-section > .content > .group > .row.simple.content-flow-link > .value > div > span):
        (.details-section > .content > .group > .row.simple.content-flow-link > .value > div > .go-to-arrow):
        (.details-section > .content > .group > .row.simple.content-flow-link:hover > .value > div > .go-to-arrow):
        * UserInterface/ComputedStyleDetailsPanel.js:
        (WebInspector.ComputedStyleDetailsPanel):
        (WebInspector.ComputedStyleDetailsPanel.prototype.get regionFlow):
        (WebInspector.ComputedStyleDetailsPanel.prototype.set regionFlow):
        (WebInspector.ComputedStyleDetailsPanel.prototype.get contentFlow):
        (WebInspector.ComputedStyleDetailsPanel.prototype.set contentFlow):
        (WebInspector.ComputedStyleDetailsPanel.prototype.get containerRegions):
        (WebInspector.ComputedStyleDetailsPanel.prototype.set containerRegions):
        (WebInspector.ComputedStyleDetailsPanel.prototype.refresh):
        (WebInspector.ComputedStyleDetailsPanel.prototype._computedStyleShowAllCheckboxValueChanged):
        (WebInspector.ComputedStyleDetailsPanel.prototype._resetFlowDetails):
        (WebInspector.ComputedStyleDetailsPanel.prototype._refreshFlowDetails.contentFlowInfoReady):
        (WebInspector.ComputedStyleDetailsPanel.prototype._refreshFlowDetails):
        (WebInspector.ComputedStyleDetailsPanel.prototype._goToRegionFlowArrowWasClicked):
        (WebInspector.ComputedStyleDetailsPanel.prototype._goToContentFlowArrowWasClicked):
        * UserInterface/DOMTreeDataGrid.css: Added.
        (.dom-tree-data-grid .data-grid):
        (.dom-tree-data-grid .data-grid table.data):
        (.dom-tree-data-grid .data-container):
        (.dom-tree-data-grid .data-container tr):
        (.dom-tree-data-grid .data-container td > div):
        (.dom-tree-data-grid .data-container .name-column):
        (.dom-tree-data-grid .data-container .name-column .icon):
        (.dom-tree-data-grid .data-container .name-column .label):
        (.dom-tree-data-grid .data-container tr:hover .name-column .label):
        (.dom-tree-data-grid .data-container .go-to-arrow):
        (.dom-tree-data-grid .data-container tr:hover .go-to-arrow):
        (.dom-tree-data-grid .data-container tbody > tr:nth-child(2n)):
        (.dom-tree-data-grid .data-container tbody > tr:nth-child(2n+1)):
        * UserInterface/DOMTreeDataGrid.js: Added.
        (WebInspector.DOMTreeDataGrid):
        (WebInspector.DOMTreeDataGrid.prototype._onmousemove):
        (WebInspector.DOMTreeDataGrid.prototype._onmouseout):
        * UserInterface/DOMTreeDataGridNode.js: Added.
        (WebInspector.DOMTreeDataGridNode):
        (WebInspector.DOMTreeDataGridNode.prototype.get domNode):
        (WebInspector.DOMTreeDataGridNode.prototype.createCellContent):
        (WebInspector.DOMTreeDataGridNode.prototype._updateNodeName):
        (WebInspector.DOMTreeDataGridNode.prototype._makeNameCell):
        (WebInspector.DOMTreeDataGridNode.prototype._updateNameCellData):
        (WebInspector.DOMTreeDataGridNode.prototype._goToArrowWasClicked):
        * UserInterface/DOMTreeManager.js:
        (WebInspector.DOMTreeManager.prototype.unregisteredNamedFlowContentElement):
        (WebInspector.DOMTreeManager.prototype.nodeRequested):
        (WebInspector.DOMTreeManager.prototype._coerceRemoteArrayOfDOMNodes):
        (WebInspector.DOMTreeManager.prototype.domNodeResolved):
        (WebInspector.DOMTreeManager.prototype.regionNodesAvailable):
        (WebInspector.DOMTreeManager.prototype.get if):
        (WebInspector.DOMTreeManager.prototype.get var):
        (WebInspector.DOMTreeManager.prototype.backendFunction.getComputedProperty):
        (WebInspector.DOMTreeManager.prototype.backendFunction.getContentFlowName):
        (WebInspector.DOMTreeManager.prototype.):
        * UserInterface/DataGrid.css:
        (.data-grid.no-header > table.header):
        (.data-grid.no-header .data-container):
        * UserInterface/DetailsSection.js:
        (WebInspector.DetailsSection):
        * UserInterface/InspectorBackend.js:
        (InspectorBackendClass.prototype._wrap):
        * UserInterface/Main.html:
        * UserInterface/ResourceSidebarPanel.js:
        (WebInspector.ResourceSidebarPanel.prototype.showContentFlowDOMTree):
        * UserInterface/RuntimeManager.js:
        (WebInspector.RuntimeManager.prototype.evaluateInInspectedWindow):
        (WebInspector.RuntimeManager.prototype.getPropertiesForRemoteObject):

1212 1213 1214 1215 1216 1217 1218 1219 1220 1221 1222 1223 1224
2013-12-04  Antoine Quint  <graouts@apple.com>

        Web Inspector: ColorWheel uses old Color constructor
        https://bugs.webkit.org/show_bug.cgi?id=125260

        Reviewed by Joseph Pecoraro.

        Update to new WebInspector.Color constructor signature and use a clear color.

        * UserInterface/ColorWheel.js:
        (WebInspector.ColorWheel.prototype.get tintedColor):
        (WebInspector.ColorWheel.prototype.get rawColor):

1225 1226 1227 1228 1229 1230 1231 1232 1233 1234 1235 1236 1237 1238 1239 1240
2013-12-04  Antoine Quint  <graouts@apple.com>

        Web Inspector: color picker doesn't work with "blue"
        https://bugs.webkit.org/show_bug.cgi?id=125262

        Reviewed by Joseph Pecoraro.

        Under certain circumstances rounding issues would have us compare
        two equal numbers that differ by 0.00000001 and sometime trip this
        if statement and yield a null color. We now add a little fudge to
        the test and also return a clear color rather than null to match what
        we do in the getters for "tintedColor" and "rawColor".

        * UserInterface/ColorWheel.js:
        (WebInspector.ColorWheel.prototype._colorAtPointWithBrightness):

1241 1242 1243 1244 1245 1246 1247 1248 1249 1250
2013-12-04  Antoine Quint  <graouts@apple.com>

        Web Inspector: use only two decimals for opacity in rgba/hsla colors
        https://bugs.webkit.org/show_bug.cgi?id=125261

        Reviewed by Joseph Pecoraro.

        * UserInterface/ColorPicker.js:
        (WebInspector.ColorPicker.prototype._updateColor):

1251 1252 1253 1254 1255 1256 1257 1258 1259 1260 1261 1262 1263 1264 1265 1266 1267 1268 1269 1270 1271 1272 1273 1274 1275
2013-12-04  Antoine Quint  <graouts@apple.com>

        Web Inspector: "data detectors" menu on hover for actionable tokens
        https://bugs.webkit.org/show_bug.cgi?id=124363

        Reviewed by Timothy Hatcher.

        Add a new WebInspector.HoverMenu class to display an overlay menu that is presented
        with respect to a target frame that it draws itself around adding a customizable
        action button to its right. The menu uses fade animations as it's presented and
        dismissed and a single delegation method is fired when the button is pressed. Finally,
        just like a popover, it automatically dismisses itself upon scrolling anywhere
        outside of its bounds.

        * UserInterface/HoverMenu.css: Added.
        * UserInterface/HoverMenu.js: Added.
        (WebInspector.HoverMenu):
        (WebInspector.HoverMenu.prototype.get element):
        (WebInspector.HoverMenu.prototype.dismiss):
        (WebInspector.HoverMenu.prototype.handleEvent):
        (WebInspector.HoverMenu.prototype._handleClickEvent):
        * UserInterface/Images/HoverMenuButton.png: Added.
        * UserInterface/Images/HoverMenuButton@2x.png: Added.
        * UserInterface/Main.html:

1276 1277 1278 1279 1280 1281 1282 1283 1284 1285 1286 1287 1288 1289 1290 1291 1292 1293 1294 1295 1296 1297 1298 1299 1300 1301 1302 1303 1304 1305 1306 1307 1308 1309 1310 1311 1312 1313 1314 1315 1316 1317 1318 1319 1320 1321
2013-12-04  Antoine Quint  <graouts@apple.com>

        Web Inspector: edited color should serialize back to original format when possible
        https://bugs.webkit.org/show_bug.cgi?id=125244

        Reviewed by Joseph Pecoraro.

        Profoundly reworked WebInspector.Color to be more efficient and more flexible when
        serializing the color to the various supported formats.

        * UserInterface/CSSStyleDeclarationTextEditor.js:
        (WebInspector.CSSStyleDeclarationTextEditor.prototype._createColorSwatches):
        Use new WebInspector.Color.fromString() factory and check for a null return value
        rather than an exception to identify invalid color tokens.

        * UserInterface/Color.js:
        (WebInspector.Color):
        Rewrote WebInspector.Color such that it would have, at all times, a canonical
        representation in terms of either RGBA or HSLA depending on the format used to
        create the color. The new constructor parameters lets the user pass a format
        and the RGBA or HSLA components, allowing to bypass the string-only creation
        system which was sub-optimal for the new color picker. Additionally, the toString()
        method now can provide the most accurate serialization of the color based on the
        provided format with a fallback mechanism to RGB/RGBA in cases where the desired
        format would incur a loss of fidelity. Finally, simplified the API to only feature
        essential features.

        (WebInspector.Color.fromString):
        New factory method used to create a color from a string.

        * UserInterface/ColorPicker.js:
        (WebInspector.ColorPicker.prototype.set color):
        Keep track of the original color format so that we can use it as the preferred format
        when serializing the updated color in _updateColor().

        (WebInspector.ColorPicker.prototype._updateColor):
        Use the original color format as the prefered formation for color serialization. Also,
        use the new WebInspector.Color constructor in lieu of the removed .fromRGBA factory.

        (WebInspector.ColorPicker.prototype._updateSliders):
        Use the new WebInspector.Color constructor in lieu of the removed .fromRGBA factory.

        * UserInterface/ColorWheel.js:
        (WebInspector.ColorWheel.prototype._colorAtPointWithBrightness):
        Use the new WebInspector.Color constructor in lieu of the removed .fromRGB factory.

1322 1323 1324 1325 1326 1327 1328 1329 1330 1331 1332 1333
2013-12-03  Seokju Kwon  <seokju@webkit.org>

        Web Inspector: Remove '_attachedWindowHeight' property in InspectorFrontendHostStub.js
        https://bugs.webkit.org/show_bug.cgi?id=125204

        Reviewed by Timothy Hatcher.

        '_attachedWindowHeight' property is not used anywhere, so remove it.

        * UserInterface/InspectorFrontendHostStub.js:
        (.WebInspector.InspectorFrontendHostStub):

1334 1335 1336 1337 1338 1339 1340 1341 1342 1343 1344 1345 1346 1347 1348 1349 1350 1351 1352 1353 1354 1355 1356 1357 1358 1359 1360 1361 1362 1363 1364 1365 1366 1367 1368 1369 1370 1371 1372 1373 1374 1375 1376 1377 1378 1379 1380 1381 1382 1383 1384 1385 1386 1387 1388 1389 1390 1391 1392 1393 1394 1395 1396 1397 1398 1399 1400 1401 1402 1403 1404 1405 1406 1407 1408 1409 1410 1411 1412 1413 1414 1415 1416 1417 1418 1419 1420 1421 1422 1423 1424 1425 1426 1427 1428 1429 1430 1431 1432 1433 1434 1435 1436 1437 1438 1439 1440 1441 1442 1443 1444 1445 1446 1447 1448 1449 1450 1451 1452 1453 1454 1455 1456 1457 1458 1459 1460 1461 1462 1463 1464 1465 1466 1467 1468 1469 1470 1471 1472 1473 1474 1475 1476 1477 1478 1479 1480 1481 1482 1483 1484 1485 1486 1487 1488 1489 1490 1491 1492 1493 1494 1495
2013-12-03  Brian J. Burg  <burg@cs.washington.edu>

        Web Inspector: restore navigation panel state across reloads and reopens
        https://bugs.webkit.org/show_bug.cgi?id=122125

        Reviewed by Timothy Hatcher.

        The previous strategy for restoring content views after inspector
        re-open did not consider the active sidebar and its selection, and
        tried to recreate the appropriate selection from the saved content
        view. However, doesn't work for tree elements in the sidebar panel
        that don't change views when selected, such as script breakpoints,
        special breakpoints, call stack, timeline sections, etc.

        This patch implements a new strategy that saves the navigation
        sidebar panel's view state by serializing the identity of the
        selected element's represented object. Relevant represented
        object classes implement the saveIdentityToCookie() method. Each
        represented object class also adds a TypeIdentifier property to
        its constructor, to aid inexact matching based on represented
        object type, rather than its complete identity.

        When restoring, the navigation sidebar attempts to match added
        tree elements against the pending cookie, and selects the element
        if it matches. A represented object matches if its serialized
        identity matches the previously saved serialized identity.

        The inspector view state is now only saved on the page hide event
        (for saving across reopen) and when the main frame commits its
        provisional load (for saving across same-page reloads). It
        consolidates similar view state settings into a single setting.

        * UserInterface/ApplicationCacheFrame.js:
        (WebInspector.ApplicationCacheFrame): Add cookie keys and type identifier.
        (WebInspector.ApplicationCacheFrame.prototype.saveIdentityToCookie): Added.
        * UserInterface/ApplicationCacheManager.js: remove objectForCookie().
        * UserInterface/Breakpoint.js:
        (WebInspector.Breakpoint): Add cookie keys and type identifier.
        (WebInspector.Breakpoint.prototype.saveIdentityToCookie):
        * UserInterface/CookieStorageObject.js:
        (WebInspector.CookieStorageObject.prototype.saveIdentityToCookie): Added.
        * UserInterface/DOMStorageObject.js:
        (WebInspector.DOMStorageObject): Add cookie keys and type identifier.
        (WebInspector.DOMStorageObject.prototype.saveIdentityToCookie): Added.
        * UserInterface/DatabaseObject.js:
        (WebInspector.DatabaseObject): Add cookie keys and type identifier.
        (WebInspector.DatabaseObject.prototype.saveIdentityToCookie): Added.
        * UserInterface/DatabaseTableObject.js:
        (WebInspector.DatabaseTableObject): Add cookie keys and type identifier.
        (WebInspector.DatabaseTableObject.prototype.saveIdentityToCookie): Added.
        * UserInterface/DebuggerSidebarPanel.js:
        (WebInspector.DebuggerSidebarPanel.prototype.saveStateToCookie): Added.
        (WebInspector.DebuggerSidebarPanel.prototype.restoreStateFromCookie): Added.
        * UserInterface/Frame.js:
        (WebInspector.Frame): Add cookie keys and type identifier.
        (WebInspector.Frame.prototype.saveIdentityToCookie): Added.
        * UserInterface/FrameResourceManager.js: remove objectForCookie().
        * UserInterface/InstrumentSidebarPanel.js:
        (WebInspector.InstrumentSidebarPanel.prototype.showTimelineForRecordType):
        Return the shown timeline, if any.

        (WebInspector.InstrumentSidebarPanel.prototype.saveStateToCookie): Added.
        (WebInspector.InstrumentSidebarPanel.prototype.restoreStateFromCookie): Added.
        (WebInspector.InstrumentSidebarPanel.prototype.showProfile):
        Return the shown profile, if any.

        * UserInterface/Main.js:
        (WebInspector): Added cookie keys for the selected sidebar and
        typeidentifier of the sidebar's selected tree element.

        (WebInspector.contentLoaded): Remove callbacks for
        resolveAndShowPendingContentViewCookie(). Consolidate all saved
        inspector view state into one Setting. Move special-cased
        restoring of the console to the restoration method. Move saving
        of last opened navigation panel to the saving method.

        (WebInspector._mainResourceDidChange): Try to restore saved view
        state when the main resource changes.

        (WebInspector._provisionalLoadCommitted): Update the saved view
        state when the navigation commits. This is the last chance to save
        it before the main resource changes and the navigation panel view
        state is discarded and rebuilt.

        (WebInspector._pageHidden): Update the saved view state when the
        inspector page is hidden, but before state is discarded.

        (WebInspector._navigationSidebarPanelSelected): Don't save last
        navigation sidebar panel.
        (WebInspector._updateCookieForInspectorViewState): Renamed from
        _updateCurrentContentViewCookie. It delegates view state
        serialization to the currently open navigation sidebar, rather
        than the current content view.

        (WebInspector._contentBrowserRepresentedObjectsDidChange): Don't
        spuriously serialize the current view state cookie on every
        ContentView change.

        (WebInspector._restoreInspectorViewStateFromCookie): Renamed from
        _showContentViewForCookie. It now restores a specific navigation
        panel and delegates remaining view state restoration to the panel
        itself. Last-resort selection of any tree element with the same
        type identifier was moved to the navigation panel's restore method.

        * UserInterface/NavigationSidebarPanel.js:
        (WebInspector.NavigationSidebarPanel):
        (WebInspector.NavigationSidebarPanel.prototype.set contentTreeOutline):
        (WebInspector.NavigationSidebarPanel.prototype.createContentTreeOutline):
        Save references to all created TreeOutlines in a Set, so we can
        restore any tree's selection.

        (WebInspector.NavigationSidebarPanel.prototype.saveStateToCookie):
        Added. Find the selected tree element from all tree outlines and
        ask it to serialize its identity.

        (WebInspector.NavigationSidebarPanel.prototype.restoreStateFromCookie):
        Added. Eagerly search existing tree elements for a matching
        representedObject. If none exists, save the pending cookie and
        schedule last-resort matching using the provided timeout interval.

        (WebInspector.NavigationSidebarPanel.prototype._treeElementAddedOrChanged):
        Check if the added tree element matches a pending view state
        cookie, if one exists.

        (WebInspector.NavigationSidebarPanel.prototype.treeElementMatchesCookie):
        Added. Check if the tree element's representedObject matches the
        pending view state cookie.

        (WebInspector.NavigationSidebarPanel.prototype._checkElementsForPendingViewStateCookie):
        Added. For each provided tree element, check if the tree
        element's represented object produces the same serialized identity
        as the pending view state cookie that we are trying to resolve.
        If a match is found (possibly by relaxing to matching anything
        with the same type), select the tree element and clear both the
        pending view state cookie and last-resort selection timer.

        * UserInterface/Resource.js:
        (WebInspector.Resource): Add cookie keys and type identifier.
        (WebInspector.Resource.prototype.saveIdentityToCookie): Added.

        * UserInterface/ResourceClusterContentView.js:
        (WebInspector.ResourceClusterContentView.prototype.saveToCookie):
        (WebInspector.ResourceClusterContentView.prototype.restoreFromCookie):
        Since identity state is serialized by the representedObject, these
        methods only need to save view-specific state, such as the visible
        subview. Remove extraneous state.

        * UserInterface/Script.js:
        (WebInspector.Script): Add cookie keys and type identifier.
        (WebInspector.Script.prototype.saveIdentityToCookie): Added.
        * UserInterface/StorageManager.js: remove objectForCookie().
        * UserInterface/TimelineManager.js: remove objectForCookie().
        * UserInterface/TimelinesContentView.js:
        (WebInspector.TimelinesContentView.prototype.saveToCookie):
        (WebInspector.TimelinesContentView.prototype.restoreFromCookie):
        Since identity state is serialized by the representedObject, these
        methods only need to save view-specific state, such as the visible
        subview. Remove extraneous state.

        * UserInterface/TreeOutline.js: Add TreeOutline.prototype.constructor
        so other code can assume the constructor property exists.

1496 1497 1498 1499 1500 1501 1502 1503 1504 1505 1506 1507 1508 1509 1510 1511 1512
2013-12-02  Antoine Quint  <graouts@apple.com>

        Web Inspector: popover can overlap target frame
        https://bugs.webkit.org/show_bug.cgi?id=125069

        Reviewed by Joseph Pecoraro.

        Fix a regression introduced in http://trac.webkit.org/changeset/159286. We should only
        offset the frame of the popover in the y-axis if the target edge is on the x-axis, and
        vice versa. We also remove the needsToDrawBackground check since it incorrectly disregarded
        the anchor point. We now always draw the background which is a lot safer and guarantees
        we'll always draw an adequate frame and anchor point.

        * UserInterface/Popover.js:
        (WebInspector.Popover.prototype._update):
        (WebInspector.Popover.prototype._bestMetricsForEdge):

1513 1514 1515 1516 1517 1518 1519 1520 1521 1522 1523 1524 1525 1526 1527 1528 1529 1530 1531 1532 1533 1534 1535 1536
2013-12-02  Antoine Quint  <graouts@apple.com>

        Web Inspector: add a method to add padding around a WebInspector.Rect
        https://bugs.webkit.org/show_bug.cgi?id=125072

        Reviewed by Joseph Pecoraro.

        Add a new WebInspector.Rect.prototype.pad() method which does not alter
        the rectangle it's called and returns a new rect much like .inset(). I've
        checked all call sites and there was no reuse of the rectangle that was
        padded so this patch won't have any side effects.

        * UserInterface/Breakpoint.js:
        (WebInspector.Breakpoint.prototype._showEditBreakpointPopover):
        * UserInterface/CSSStyleDeclarationTextEditor.js:
        * UserInterface/Geometry.js:
        (WebInspector.Rect.prototype.pad):
        * UserInterface/LayerTreeSidebarPanel.js:
        (WebInspector.LayerTreeSidebarPanel.prototype._updatePopoverForSelectedNode):
        * UserInterface/SourceCodeTextEditor.js:
        (WebInspector.SourceCodeTextEditor.prototype._showPopover):
        * UserInterface/TimelineDataGrid.js:
        (WebInspector.TimelineDataGrid.prototype._updatePopoverForSelectedNode):

1537 1538 1539 1540 1541 1542 1543 1544 1545 1546 1547 1548 1549 1550 1551 1552 1553 1554 1555 1556 1557
2013-11-26  Antoine Quint  <graouts@apple.com>

        Web Inspector: Allow showing a context menu on all mouse events.
        https://bugs.webkit.org/show_bug.cgi?id=124747

        Reviewed by Joseph Pecoraro.

        Automatically dispatch a contextmenu event in case WebInspector.ContextMenu.prototype.show()
        is called outside of a contextmenu event handler and would therefore not show the expected
        context menu (except in the Remote Web Inspector where this already works). 

        * UserInterface/ContextMenu.js:
        (WebInspector.ContextMenu.prototype.show):
        Check whether the event is a contextmenu event, and if not, add an event listener for a manually
        dispatched contextmenu event such that we may then call InspectorFrontendHost.showContextMenu()
        in a contextmenu event handler.

        (WebInspector.ContextMenu.prototype.handleEvent):
        Call InspectorFrontendHost.showContextMenu() now that we received the manually dispatched
        contextmenu event.

1558 1559 1560 1561 1562 1563 1564 1565 1566 1567 1568 1569 1570 1571 1572 1573 1574 1575 1576
2013-11-25  Alexandru Chiculita  <achicu@adobe.com>

        Web Inspector: [CSS Regions] A page with many flows should collapse the resources tree
        https://bugs.webkit.org/show_bug.cgi?id=122926

        Reviewed by Timothy Hatcher.

        Refactored the code in FrameTreeElement._shouldGroupIntoFolders to make it easy to track
        more types of resources. Added the content flows as another type of resource that would trigger the
        collapsing.

        * UserInterface/DOMTreeManager.js:
        (WebInspector.DOMTreeManager.prototype.namedFlowRemoved): Added code to remove the content nodes from
        a flow that has been removed.
        * UserInterface/FrameTreeElement.js:
        (WebInspector.FrameTreeElement.prototype._shouldGroupIntoFolders.pushCategory):
        (WebInspector.FrameTreeElement.prototype._shouldGroupIntoFolders.pushResourceType):
        (WebInspector.FrameTreeElement.prototype._shouldGroupIntoFolders):

1577 1578 1579 1580 1581 1582
2013-11-25  Dan Bernstein  <mitz@apple.com>

        Set the svn:ignore property on the Xcode project to ignore the workspace and user data.

        * WebInspectorUI.xcodeproj: Added property svn:ignore.

1583 1584 1585 1586 1587 1588 1589 1590 1591 1592
2013-11-21  Mark Rowe  <mrowe@apple.com>

        <https://webkit.org/b/124702> Stop overriding VALID_ARCHS.

        All modern versions of Xcode set it appropriately for our needs.

        Reviewed by Alexey Proskuryakov.

        * Configurations/Base.xcconfig:

1593 1594 1595 1596 1597 1598 1599 1600 1601 1602 1603 1604 1605 1606
2013-11-19  Antoine Quint  <graouts@apple.com>

        Web Inspector: layer info sidebar should convert to MB for very large layers
        https://bugs.webkit.org/show_bug.cgi?id=124570

        Reviewed by Timothy Hatcher.

        Setting higherResolution to true (its default value if omitted) when calling
        Number.bytesToString() would always result in a KB-formatted string instead
        since it didn't check for a < 1024 value as well.

        * UserInterface/Utilities.js:
        (Number.bytesToString):

1607 1608 1609 1610 1611 1612 1613 1614 1615 1616 1617
2013-11-19  Antoine Quint  <graouts@apple.com>

        Remove some unused utilities from Utilities.js
        https://bugs.webkit.org/show_bug.cgi?id=124590

        Reviewed by Darin Adler.

        Remove some methods and properties that were no longer used through the codebase.

        * UserInterface/Utilities.js:

1618 1619 1620 1621 1622 1623 1624 1625 1626 1627 1628 1629 1630 1631 1632 1633 1634 1635 1636 1637 1638 1639 1640 1641 1642
2013-11-18  Alexandru Chiculita  <achicu@adobe.com>

        Web Inspector: Update WebInspectorUI to use the new "nodeIds" parameter for DOM.performSearch
        https://bugs.webkit.org/show_bug.cgi?id=124544

        Reviewed by Joseph Pecoraro.

        Added the new DOM.performSearch "nodeIds" parameter and made the two implementations
        of DOMTreeContentView provide the right context node ids.

        DOMTreeContentView is just using the id of the document node while ContentFlowDOMTreeContentView
        is passing the list of content nodes.

        Note that adding an extra optional parameter to DOM.performSearch does not break iOS 6 and 7 compatibility.

        * UserInterface/ContentFlowDOMTreeContentView.js:
        (WebInspector.ContentFlowDOMTreeContentView.prototype.getSearchContextNodes):
        * UserInterface/DOMTreeContentView.js:
        (WebInspector.DOMTreeContentView.prototype.performSearch.contextNodesReady):
        (WebInspector.DOMTreeContentView.prototype.performSearch):
        (WebInspector.DOMTreeContentView.prototype.getSearchContextNodes):
        * UserInterface/FrameDOMTreeContentView.js:
        (WebInspector.FrameDOMTreeContentView.prototype.getSearchContextNodes):
        * UserInterface/InspectorBackendCommands.js:

1643 1644 1645 1646 1647 1648 1649 1650 1651 1652 1653
2013-11-18  Joseph Pecoraro  <pecoraro@apple.com>

        Web Inspector: Update localizedStrings, remove stale string
        https://bugs.webkit.org/show_bug.cgi?id=124543

        Reviewed by Jessie Berlin.

        Remove stale localized strings after r124543 remove the old color picker.

        * Localizations/en.lproj/localizedStrings.js:

1654 1655 1656 1657 1658 1659 1660 1661 1662 1663 1664 1665 1666 1667 1668 1669 1670 1671 1672 1673 1674 1675 1676 1677 1678 1679 1680 1681 1682 1683 1684 1685 1686 1687 1688 1689 1690 1691 1692 1693 1694 1695 1696 1697 1698 1699 1700 1701 1702 1703 1704 1705 1706 1707 1708 1709 1710 1711 1712 1713 1714 1715 1716 1717 1718 1719 1720 1721 1722 1723 1724 1725 1726 1727 1728 1729 1730 1731 1732 1733 1734 1735 1736 1737 1738 1739 1740 1741 1742 1743 1744 1745 1746 1747 1748 1749 1750 1751 1752 1753 1754 1755 1756 1757 1758 1759 1760 1761 1762 1763 1764 1765 1766 1767 1768 1769 1770 1771 1772 1773 1774 1775 1776 1777 1778 1779 1780 1781 1782 1783 1784 1785 1786
2013-11-15  Antoine Quint  <graouts@apple.com>

        Web Inspector: New color picker
        https://bugs.webkit.org/show_bug.cgi?id=124354

        Reviewed by Timothy Hatcher.

        Beginning of a new color picker. The focus of this new picker is to let you pick from
        a color wheel as the primary mean of color picking, with additional slider controls for
        the brightness and the opacity, better matching the default OS X color picker. This is the
        basis for a color picker that will evolve to support the following:

        - editable CSS value label (http://webkit.org/b/124356)
        - picking a color anywhere on screen (http://webkit.org/b/124357)
        - swatches based on other colors in page (http://webkit.org/b/124358)

        Note also that the color wheel has not been tested on Retina displays
        (see http://webkit.org/b/124355).

        * UserInterface/CSSColorPicker.css: Removed.
        * UserInterface/CSSColorPicker.js: Removed.
        Previous color picker, now removed in favor of the new ColorPicker class.

        * UserInterface/CSSStyleDeclarationTextEditor.js:
        Adopt new class name for the color picker, add a little padding to the popover
        target frame and set the base color after the picker has been presented.

        * UserInterface/Color.js:
        (WebInspector.Color.prototype._hslToRGB):
        Simplified math.

        (WebInspector.Color.rgb2hsv):
        (WebInspector.Color.hsv2rgb):
        New utilities to deal with HSV colors used in the ColorWheel.

        * UserInterface/ColorPicker.css: Added.

        * UserInterface/ColorPicker.js: Added.
        (WebInspector.ColorPicker):
        (WebInspector.ColorPicker.prototype.get element):
        (WebInspector.ColorPicker.prototype.set brightness):
        (WebInspector.ColorPicker.prototype.set opacity):
        (WebInspector.ColorPicker.prototype.get color):

        (WebInspector.ColorPicker.prototype.set color):
        We set the _dontUpdateColor flag here such that we don't attempt to
        notify about a color change at this point in case the selected color
        is too saturated to be represented accurately on the color wheel and
        we would end up changing the color by virtue of presenting the popover.

        (WebInspector.ColorPicker.prototype.colorWheelColorDidChange):
        (WebInspector.ColorPicker.prototype.sliderValueDidChange):
        (WebInspector.ColorPicker.prototype._updateColor):
        (WebInspector.ColorPicker.prototype._updateSliders):

        * UserInterface/ColorWheel.css: Added.

        * UserInterface/ColorWheel.js: Added.
        The ColorWheel makes use of three different <canvas> elements to draw itself.
        The "raw" canvas is used to draw the raw, un-tinted color wheel with poor
        aliasing. The "raw" canvas is only drawn when the dimension is changed.
        The "tinted" canvas is used to draw the "raw" canvas with a black overlay
        based on the brightness set on the wheel. The "final" canvas, the only <canvas>
        element attached to the DOM, is used to draw the "tinted" canvas into a circle
        clip of a slightly narrower radius so that the drawn image is visually more pleasing
        and can be displayed above virtually any background color.

        We use color math to generate the color wheel, courtesy of Dean Jackson, and also to
        figure out where to position the crosshair for the provided base color as well as
        the opposite operation where we get the color under the mouse pointer.

        The color wheel fires a single delegate method call colorWheelColorDidChange(colorWheel),
        the colors themselves being retrieved via the public properties tintedColor and rawColor.

        (WebInspector.ColorWheel):
        (WebInspector.ColorWheel.prototype.set dimension):
        (WebInspector.ColorWheel.prototype.get element):
        (WebInspector.ColorWheel.prototype.get brightness):
        (WebInspector.ColorWheel.prototype.set brightness):
        (WebInspector.ColorWheel.prototype.get tintedColor):
        (WebInspector.ColorWheel.prototype.set tintedColor):
        (WebInspector.ColorWheel.prototype.get rawColor):
        (WebInspector.ColorWheel.prototype.handleEvent):
        (WebInspector.ColorWheel.prototype._handleMousedown):
        (WebInspector.ColorWheel.prototype._handleMousemove):
        (WebInspector.ColorWheel.prototype._handleMouseup):
        (WebInspector.ColorWheel.prototype._pointInCircleForEvent):
        (WebInspector.ColorWheel.prototype._pointInCircleForEvent.angleFromCenterToPoint):
        (WebInspector.ColorWheel.prototype._pointInCircleForEvent.pointOnCircumference):
        (WebInspector.ColorWheel.prototype._updateColorForMouseEvent):
        (WebInspector.ColorWheel.prototype._setCrosshairPosition):
        (WebInspector.ColorWheel.prototype._tintedColorToPointAndBrightness):
        (WebInspector.ColorWheel.prototype._drawRawCanvas):
        (WebInspector.ColorWheel.prototype._colorAtPointWithBrightness):
        (WebInspector.ColorWheel.prototype._drawTintedCanvas):
        (WebInspector.ColorWheel.prototype._draw):

        * UserInterface/Images/SliderThumb.png: Added.
        * UserInterface/Images/SliderThumb@2x.png: Added.
        * UserInterface/Images/SliderThumbPressed.png: Added.
        * UserInterface/Images/SliderThumbPressed@2x.png: Added.
        Supporting artwork for the new Slider class.

        * UserInterface/Main.html:
        Remove the previous color picker class and add the new one, as well as the new Slider class.

        * UserInterface/Slider.css: Added.

        * UserInterface/Slider.js: Added.
        New slider to match the look of the sliders used in the native OS X color picker. The most
        interesting feature of these sliders is that they can be transformed using CSS in any way
        and will still operate correctly due to always converting the mouse coordinates in the page
        coordinate system to the coordinate system local to the backing element. For instance, the
        color picker uses two sliders transformed to be displayed vertically.

        As it stands these slides only support values between 0 and 1 and fire a single delegate
        method call sliderValueDidChange(slider, newValue).

        (WebInspector.Slider):
        (WebInspector.Slider.prototype.get element):
        (WebInspector.Slider.prototype.get value):
        (WebInspector.Slider.prototype.set value):
        (WebInspector.Slider.prototype.handleEvent):
        (WebInspector.Slider.prototype._handleMousedown):
        (WebInspector.Slider.prototype._handleMousemove):
        (WebInspector.Slider.prototype._handleMouseup):
        (WebInspector.Slider.prototype._localPointForEvent):
        (WebInspector.Slider.prototype.get _maxX):

        * WebInspectorUI.vcxproj/WebInspectorUI.vcxproj:
        * WebInspectorUI.vcxproj/WebInspectorUI.vcxproj.filters:
        Update file names for the new color picker.

1787 1788 1789 1790 1791 1792 1793 1794 1795 1796 1797 1798 1799 1800 1801 1802 1803
2013-11-14  Antoine Quint  <graouts@apple.com>

        Web Inspector: Popovers may shrink unnecessarily
        https://bugs.webkit.org/show_bug.cgi?id=124350

        Reviewed by Timothy Hatcher.

        Because we always get the intersection of the preferred frame and the container frame to
        ensure the popover fits within its container based on a preferred frame that would place
        the arrow within the center of the attachment edge, we get in situations where we may
        shrink the popover instead of shifting it to fit within the container frame. We now first
        shift the preferred frame before getting its intersection with the container frame to
        avoid such situations. 

        * UserInterface/Popover.js:
        (WebInspector.Popover.prototype._bestMetricsForEdge):

1804 1805 1806 1807 1808 1809 1810 1811 1812 1813 1814 1815 1816 1817 1818 1819 1820 1821 1822 1823 1824 1825 1826 1827 1828 1829 1830 1831 1832 1833
2013-11-13  Joseph Pecoraro  <pecoraro@apple.com>

        Web Inspector: Split Inspector.json into individual domain json files
        https://bugs.webkit.org/show_bug.cgi?id=124098

        Reviewed by Timothy Hatcher.

        Removed now stale comments referring to the combined Inspector.json.
        Make update-InspectorBackendCommands helper script generate a
        combined Inspector.json to still work for tip of tree.

        * Scripts/update-InspectorBackendCommands.rb:
        * UserInterface/ApplicationCacheObserver.js:
        * UserInterface/CSSObserver.js:
        * UserInterface/CanvasObserver.js:
        * UserInterface/ConsoleObserver.js:
        * UserInterface/DOMObserver.js:
        * UserInterface/DOMStorageObserver.js:
        * UserInterface/DatabaseObserver.js:
        * UserInterface/DebuggerObserver.js:
        * UserInterface/InspectorBackendCommands.js:
        * UserInterface/InspectorObserver.js:
        * UserInterface/LayerTreeObserver.js:
        * UserInterface/NetworkObserver.js:
        * UserInterface/PageObserver.js:
        * UserInterface/ProfilerObserver.js:
        * UserInterface/Resource.js:
        * UserInterface/RuntimeObserver.js:
        * UserInterface/TimelineObserver.js:

1834 1835 1836 1837 1838 1839 1840 1841 1842 1843 1844 1845 1846 1847 1848 1849 1850 1851 1852 1853 1854 1855 1856 1857 1858 1859 1860 1861 1862 1863 1864 1865 1866 1867 1868 1869 1870 1871 1872 1873 1874 1875 1876 1877 1878 1879 1880 1881 1882 1883 1884 1885
2013-11-12  Alexandru Chiculita  <achicu@adobe.com>

        Web Inspector: ContentFlowTreeContentView should use only one DOMTreeOutline
        https://bugs.webkit.org/show_bug.cgi?id=124230

        Reviewed by Timothy Hatcher.

        Changed ContentFlowTreeContentView to use one DOMTreeOutline by just
        populating it with root DOMTreeElements directly. That is very
        similar to how DOMTreeOutline works when omitRootDOMNode is used.

        Now that ContentFlowTreeContentView has only one DOMTreeOutline,
        it makes sense to change its base class to be DOMTreeContentView instead.
        Also, with that I've changed its name to ContentFlowDOMTreeContentView.

        I had to move all the DOMTree document loading code from DOMTreeContentView to a
        new class called FrameDOMTreeContentView. This is used to display the DOM of the
        frame objects. FrameDOMTreeContentView is also inheriting from DOMTreeContentView.

        Issues that are fixed as a side effect:
        - Selection path components are now displaying all the sibling elements for contentFlow.contentNodes
        (those are the nodes that have "-webkit-flow-into" set directly).
        - Keyboard navigation works for the contentFlow.contentNodes.
        - Search is implemented in DOMTreeContentView, so that code now works for flows too.
        The DOMAgents's search API will use all the Documents to lookup for nodes, so it might
        find DOM nodes that are not part of the flow. This is in line with the behavior for the
        frames.

        * UserInterface/ContentFlowDOMTreeContentView.js: Renamed from ContentFlowTreeContentView
        to better reflect the inheritance from DOMTreeContentView.
        (WebInspector.ContentFlowDOMTreeContentView):
        (WebInspector.ContentFlowDOMTreeContentView.prototype.closed):
        (WebInspector.ContentFlowDOMTreeContentView.prototype._createContentTrees):
        (WebInspector.ContentFlowDOMTreeContentView.prototype._contentNodeWasAdded):
        (WebInspector.ContentFlowDOMTreeContentView.prototype._contentNodeWasRemoved):
        * UserInterface/ContentView.js:
        (WebInspector.ContentView):
        * UserInterface/DOMTreeContentView.js:
        (WebInspector.DOMTreeContentView):
        (WebInspector.DOMTreeContentView.prototype.closed):
        (WebInspector.DOMTreeContentView.prototype.):
        (WebInspector.DOMTreeContentView.prototype._restoreSelectedNodeAfterUpdate):
        (WebInspector.DOMTreeContentView.prototype._selectedNodeDidChange):
        * UserInterface/FrameDOMTreeContentView.js: Added.
        (WebInspector.FrameDOMTreeContentView):
        (WebInspector.FrameDOMTreeContentView.prototype.get domTree):
        (WebInspector.FrameDOMTreeContentView.prototype.closed):
        (WebInspector.FrameDOMTreeContentView.prototype._rootDOMNodeAvailable):
        (WebInspector.FrameDOMTreeContentView.prototype._rootDOMNodeInvalidated):
        (WebInspector.FrameDOMTreeContentView.prototype._requestRootDOMNode):
        * UserInterface/Main.html:

1886 1887 1888 1889 1890 1891 1892 1893 1894 1895 1896
2013-11-08  Joseph Pecoraro  <pecoraro@apple.com>

        Web Inspector: remove -webkit-min and -webkit-max from CSS completions
        https://bugs.webkit.org/show_bug.cgi?id=124072

        Reviewed by Timothy Hatcher.

        -webkit-min and -webkit-max are not implemented in WebCore, despite mentions of it.

        * UserInterface/CSSKeywordCompletions.js:

1897 1898 1899 1900 1901 1902 1903 1904 1905 1906 1907 1908 1909 1910 1911
2013-11-07  Alexandru Chiculita  <achicu@adobe.com>

        Web Inspector: CSS Regions: Use a Map object to store the ContentFlows
        https://bugs.webkit.org/show_bug.cgi?id=124015

        Reviewed by Joseph Pecoraro.

        Changed the Object hashmap to a Map based hashmap when storing the flows in DOMTreeManager.

        * UserInterface/DOMTreeManager.js:
        (WebInspector.DOMTreeManager):
        (WebInspector.DOMTreeManager.prototype.getNamedFlowCollection):
        (WebInspector.DOMTreeManager.prototype.namedFlowRemoved):
        (WebInspector.DOMTreeManager.prototype._sendNamedFlowUpdateEvents):

1912 1913 1914 1915 1916 1917 1918 1919 1920 1921 1922 1923 1924 1925 1926 1927 1928 1929 1930 1931 1932 1933 1934 1935
2013-11-07  Timothy Hatcher  <timothy@apple.com>

        Fix up some sidebar switching details to make selections persist better.

        Translate represented objects between sidebars so the same item can be reselected
        as you switch between frames and main reources. Also fix some null checks that are
        needed on selectedSidebarPanel.

        https://bugs.webkit.org/show_bug.cgi?id=124001

        Reviewed by Joseph Pecoraro.

        * UserInterface/DebuggerSidebarPanel.js:
        (WebInspector.DebuggerSidebarPanel.prototype.treeElementForRepresentedObject): Added. Translate a Frame
        representedObject into a main resource representedObject.
        * UserInterface/Main.js:
        (WebInspector._revealAndSelectRepresentedObjectInNavigationSidebar): Null check selectedSidebarPanel.
        (WebInspector._updateNavigationSidebarForCurrentContentView): Fix a logic error to match other code.
        allowedNavigationSidebarPanels.length needs to have a length before using contains.
        (WebInspector._contentBrowserCurrentContentViewDidChange): Null check selectedSidebarPanel.
        * UserInterface/ResourceSidebarPanel.js:
        (WebInspector.ResourceSidebarPanel.prototype.treeElementForRepresentedObject): Translate a main resource
        representedObject into a Frame representedObject.

1936 1937 1938 1939 1940 1941 1942 1943 1944 1945 1946 1947 1948 1949 1950 1951 1952 1953 1954
2013-11-07  Alexandru Chiculita  <achicu@adobe.com>

        Web Inspector: CSS Regions: Removing a content node of a ContentFlow from the DOM will send a 0 nodeId
        https://bugs.webkit.org/show_bug.cgi?id=123577

        Reviewed by  Timothy Hatcher.

        Fixed the content node removal from the content flow.

        * UserInterface/ContentFlowTreeContentView.js:
        * UserInterface/DOMTreeManager.js:
        (WebInspector.DOMTreeManager):
        (WebInspector.DOMTreeManager.prototype._createContentFlowFromPayload): Registered all the content nodes
        in the _contentNodesToFlowsMap.
        (WebInspector.DOMTreeManager.prototype._unbind): Added call to _removeContentNodeFromFlowIfNeeded.
        (WebInspector.DOMTreeManager.prototype._removeContentNodeFromFlowIfNeeded): Called from _unbind to check
        and remove a node from it's parent content flow if needed.
        (WebInspector.DOMTreeManager.prototype.unregisteredNamedFlowContentElement):

1955 1956 1957 1958 1959 1960 1961 1962 1963 1964 1965
2013-11-06  Timothy Hatcher  <timothy@apple.com>

        Properly null check positionToReveal in ResourceSidebarPanel.prototype.showSourceCode.

        https://bugs.webkit.org/show_bug.cgi?id=123921

        Reviewed by Joseph Pecoraro.

        * UserInterface/ResourceSidebarPanel.js:
        (WebInspector.ResourceSidebarPanel.prototype.showSourceCode):

1966 1967 1968 1969 1970 1971 1972 1973 1974 1975 1976
2013-11-06  Timothy Hatcher  <timothy@apple.com>

        Fix the display of query parameters when the value is missing. 

        https://bugs.webkit.org/show_bug.cgi?id=123920

        Reviewed by Joseph Pecoraro.

        * UserInterface/ResourceDetailsSidebarPanel.js:
        (WebInspector.ResourceDetailsSidebarPanel.prototype._createNameValueDataGrid):

1977 1978 1979 1980 1981 1982 1983 1984 1985 1986 1987 1988 1989 1990 1991 1992 1993 1994 1995 1996 1997 1998 1999 2000 2001 2002 2003 2004 2005 2006 2007 2008 2009 2010 2011 2012 2013
2013-11-06  Alexandru Chiculita  <achicu@adobe.com>

        Web Inspector: CSS Regions: When a flow is clicked the content of flow needs to be displayed
        https://bugs.webkit.org/show_bug.cgi?id=122927

        Reviewed by Joseph Pecoraro.

        ContentFlowTreeContentView is now used to display the content nodes of a ContentFlow. It is
        very similar to the DOMTreeContentView class, but can handle multiple root nodes.

        * UserInterface/ContentFlowTreeContentView.js: Added.
        (WebInspector.ContentFlowTreeContentView):
        (WebInspector.ContentFlowTreeContentView.prototype.get selectionPathComponents):
        (WebInspector.ContentFlowTreeContentView.prototype.updateLayout):
        (WebInspector.ContentFlowTreeContentView.prototype.shown):
        (WebInspector.ContentFlowTreeContentView.prototype.hidden):
        (WebInspector.ContentFlowTreeContentView.prototype.closed):
        (WebInspector.ContentFlowTreeContentView.prototype._selectedNodeDidChange):
        (WebInspector.ContentFlowTreeContentView.prototype._pathComponentSelected):
        (WebInspector.ContentFlowTreeContentView.prototype._createContentNodeTree):
        (WebInspector.ContentFlowTreeContentView.prototype._createContentTrees):
        (WebInspector.ContentFlowTreeContentView.prototype._contentNodeWasAdded):
        (WebInspector.ContentFlowTreeContentView.prototype._contentNodeWasRemoved):
        * UserInterface/ContentView.js:
        (WebInspector.ContentView):
        (WebInspector.ContentView.isViewable):
        * UserInterface/DOMTreeElement.js:
        (WebInspector.DOMTreeElement.prototype.ondeselect): We need to remove the selected "dom node"
        so that the element is not going to stay selected after the we move to a different DOM tree.
        * UserInterface/DOMTreeOutline.js:
        (WebInspector.DOMTreeOutline.prototype.selectDOMNode):
        * UserInterface/Main.html:
        * UserInterface/Main.js:
        (WebInspector.sidebarPanelForRepresentedObject):
        * UserInterface/ResourceSidebarPanel.js:
        (WebInspector.ResourceSidebarPanel.prototype._treeElementSelected):

2014 2015 2016 2017 2018 2019 2020 2021 2022
2013-11-01  Antoine Quint  <graouts@apple.com>

        Remove custom Function.prototype.bind() in favor of native version
        https://bugs.webkit.org/show_bug.cgi?id=123608

        Reviewed by Joseph Pecoraro.

        * UserInterface/Utilities.js:

2023 2024 2025 2026 2027 2028 2029 2030 2031 2032 2033 2034 2035
2013-11-01  Antoine Quint  <graouts@apple.com>

        Error trying to serialize a color created without an alpha component to RGBA or HSLA
        https://bugs.webkit.org/show_bug.cgi?id=123623

        Reviewed by Joseph Pecoraro.

        Check whether we have .rgba and .hsla ivars before trying to retrieve them to serialize
        the color to RGBA or HSLA format.

        * UserInterface/Color.js:
        (WebInspector.Color.prototype.toString):

2036 2037 2038 2039 2040 2041 2042 2043 2044
2013-11-01  Antoine Quint  <graouts@apple.com>

        Remove custom Element.prototype.remove() in favor of native version
        https://bugs.webkit.org/show_bug.cgi?id=123607

        Reviewed by Timothy Hatcher.

        * UserInterface/Utilities.js:

2045 2046 2047 2048 2049 2050 2051 2052 2053 2054 2055 2056 2057 2058 2059 2060 2061
2013-10-31  Joseph Pecoraro  <pecoraro@apple.com>

        Web Inspector: Breakpoints in auto-formatted JavaScript editors are not working
        https://bugs.webkit.org/show_bug.cgi?id=123589

        Reviewed by Timothy Hatcher.

        The internal this._ignoreCodeMirrorContentDidChangeEvent flag was being used
        in two places that could be nested, meaning the flag was deleted while it
        was still expected to be set. Change it instead to a counter, to handle nesting.

        * UserInterface/TextEditor.js:
        (WebInspector.TextEditor):
        (WebInspector.TextEditor.prototype.set string):
        (WebInspector.TextEditor.prototype.set formatted):
        (WebInspector.TextEditor.prototype._contentChanged):

2062 2063 2064 2065 2066 2067 2068 2069 2070
2013-10-31  Joseph Pecoraro  <pecoraro@apple.com>

        Web Inspector: Remove stale optional native memory instrumentation protocol params
        https://bugs.webkit.org/show_bug.cgi?id=123552

        Reviewed by Timothy Hatcher.

        * UserInterface/InspectorBackendCommands.js:

2071 2072 2073 2074 2075 2076 2077 2078
2013-10-30  Joseph Pecoraro  <pecoraro@apple.com>

        Web Inspector: Fix PrettyPrinting Tool Load from Saved URL

        Reviewed by Timothy Hatcher.

        * Tools/PrettyPrinting/index.html:

2079 2080 2081 2082 2083 2084 2085 2086 2087 2088 2089 2090 2091 2092 2093 2094 2095 2096 2097 2098 2099 2100 2101 2102 2103 2104 2105 2106 2107
2013-10-28  Alexandru Chiculita  <achicu@adobe.com>

        Web Inspector: CSS Regions: Add protocol API to expose content nodes addition/removal
        https://bugs.webkit.org/show_bug.cgi?id=123424

        Reviewed by Timothy Hatcher.

        Exposed the new CSS Agent events to the ContentFlow class that will now maintain
        a list of nodes in the "contentNodes" property.

        * UserInterface/CSSObserver.js:
        (WebInspector.CSSObserver.prototype.regionOversetChanged):
        (WebInspector.CSSObserver.prototype.registeredNamedFlowContentElement):
        (WebInspector.CSSObserver.prototype.unregisteredNamedFlowContentElement):
        * UserInterface/ContentFlow.js:
        (WebInspector.ContentFlow):
        (WebInspector.ContentFlow.prototype.set overset):
        (WebInspector.ContentFlow.prototype.get contentNodes):
        (WebInspector.ContentFlow.prototype.insertContentNodeBefore):
        (WebInspector.ContentFlow.prototype.appendContentNode):
        (WebInspector.ContentFlow.prototype.removeContentNode):
        * UserInterface/DOMTreeManager.js:
        (WebInspector.DOMTreeManager.prototype._createContentFlowFromPayload):
        (WebInspector.DOMTreeManager.prototype._updateContentFlowFromPayload):
        (WebInspector.DOMTreeManager.prototype.regionOversetChanged):
        (WebInspector.DOMTreeManager.prototype.registeredNamedFlowContentElement):
        (WebInspector.DOMTreeManager.prototype.unregisteredNamedFlowContentElement):
        * UserInterface/InspectorBackendCommands.js:

2108 2109 2110 2111 2112 2113 2114 2115 2116 2117 2118 2119
2013-10-25  Joseph Pecoraro  <pecoraro@apple.com>

        Web Inspector: PrettyPrinting tool should have save button
        https://bugs.webkit.org/show_bug.cgi?id=123371

        Reviewed by Timothy Hatcher.

        Add buttons to save as a URL to share or to save/clear to
        localStorage for easier reloads testing local changes.

        * Tools/PrettyPrinting/index.html:

2120 2121 2122 2123 2124 2125 2126 2127 2128 2129 2130
2013-10-25  Joseph Pecoraro  <pecoraro@apple.com>

        Web Inspector: Command+Click on url(…) should go to image not source line
        https://bugs.webkit.org/show_bug.cgi?id=123362

        Reviewed by Timothy Hatcher.

        CodeMirror changed "url" from being type "variable-2" to "string-2".

        * UserInterface/CodeMirrorAdditions.js:

2131 2132 2133 2134 2135 2136 2137 2138
2013-10-25  Jessie Berlin  <jberlin@apple.com>

        Ran update-localizable-strings after changes made in r157947.

        Rubber-stamped by Timothy Hatcher.

        * Localizations/en.lproj/localizedStrings.js:

2139 2140 2141 2142 2143 2144 2145 2146 2147 2148 2149 2150
2013-10-24  Mark Rowe  <mrowe@apple.com>

        Remove references to OS X 10.7 from Xcode configuration settings.

        Now that we're not building for OS X 10.7 they're no longer needed.

        Reviewed by Anders Carlsson.

        * Configurations/Base.xcconfig:
        * Configurations/DebugRelease.xcconfig:
        * Configurations/Version.xcconfig:

2151 2152 2153 2154 2155 2156 2157 2158 2159 2160
2013-10-24  Mark Rowe  <mrowe@apple.com>

        <rdar://problem/15312643> Prepare for the mysterious future.

        Reviewed by David Kilzer.

        * Configurations/Base.xcconfig:
        * Configurations/DebugRelease.xcconfig:
        * Configurations/Version.xcconfig:

2161 2162 2163 2164 2165 2166 2167 2168 2169 2170 2171 2172 2173 2174 2175 2176
2013-10-24  Timothy Hatcher  <timothy@apple.com>

        Allow editing CSS resources after they have been pretty printed.

        https://bugs.webkit.org/show_bug.cgi?id=123297

        Reviewed by Joseph Pecoraro.

        * UserInterface/TextEditor.js:
        (WebInspector.TextEditor): Remove the need for _readOnly.
        (WebInspector.TextEditor.prototype.set readOnly): Set CodeMirror readOnly directly.
        (WebInspector.TextEditor.prototype.set formatted): Don't call _updateCodeMirrorReadOnly.
        (WebInspector.TextEditor.prototype._updateCodeMirrorReadOnly): Removed.
        (WebInspector.TextEditor.prototype._contentChanged): Clear _formatted and _formatterSourceMap
        on edit and notify the delegate and fire the FormattingDidChange event.

2177 2178 2179 2180 2181 2182 2183 2184 2185 2186 2187
2013-10-24  Timothy Hatcher  <timothy@apple.com>

        Adjust the precision of byte strings in Web Inspector.

        https://bugs.webkit.org/show_bug.cgi?id=123281

        Reviewed by Joseph Pecoraro.

        * UserInterface/Utilities.js:
        (Number.bytesToString): More precision for MB and less precision for 10..1023 KB.

2188 2189 2190 2191 2192 2193 2194 2195 2196 2197 2198 2199 2200 2201 2202 2203 2204 2205 2206 2207 2208 2209 2210 2211 2212 2213
2013-10-24  Alexandru Chiculita  <achicu@adobe.com>

        Web Inspector: Add a way to test the Manager and model classes
        https://bugs.webkit.org/show_bug.cgi?id=123223

        Reviewed by Timothy Hatcher.

        Moved some global functions out of Main.js, so that they can be used in the 
        layout tests without including Main.js.

        * UserInterface/Main.html: Referenced the new JS files.
        * UserInterface/Main.js:
        * UserInterface/MessageDispatcher.js: Added.
        (WebInspector.dispatchNextQueuedMessageFromBackend):
        (WebInspector.dispatchMessageFromBackend):
        * UserInterface/URLUtilities.js: Added.
        (removeURLFragment):
        (relativePath):
        (parseURL):
        (absoluteURL):
        (parseLocationQueryParameters):
        (parseQueryString):
        (WebInspector.displayNameForURL):
        (WebInspector.displayNameForHost):
        * UserInterface/Utilities.js:

2214 2215 2216 2217 2218 2219 2220 2221 2222 2223 2224 2225
2013-10-21  Alexandru Chiculita  <achicu@adobe.com>

        Web Inspector: [CSS Regions] Flows are not loading if you refresh the page several times
        https://bugs.webkit.org/show_bug.cgi?id=123123

        Reviewed by Joseph Pecoraro.

        There was a typo in the code where an exception was thrown because "flowKey" was undefined.

        * UserInterface/DOMTree.js:
        (WebInspector.DOMTree.prototype._contentFlowListWasUpdated):

2226 2227 2228 2229 2230 2231 2232 2233 2234 2235 2236 2237 2238 2239 2240 2241 2242 2243 2244 2245 2246 2247 2248 2249 2250
2013-10-21  Oliver Hunt  <oliver@apple.com>

        Restore accidentally removed files.

        * UserInterface/GoToLineDialog.css: Added.
        (.go-to-line-dialog):
        (.go-to-line-dialog > div):
        (.go-to-line-dialog > div > input):
        (.go-to-line-dialog > div > input::-webkit-input-placeholder):
        (.go-to-line-dialog > div > img):
        (.go-to-line-dialog > div > img:active):
        (.go-to-line-dialog.non-empty > div > img):
        * UserInterface/GoToLineDialog.js: Added.
        (WebInspector.GoToLineDialog):
        (WebInspector.GoToLineDialog.prototype.present):
        (WebInspector.GoToLineDialog.prototype.dismiss):
        (WebInspector.GoToLineDialog.prototype.handleEvent):
        (WebInspector.GoToLineDialog.prototype._handleInputEvent):
        (WebInspector.GoToLineDialog.prototype._handleKeydownEvent):
        (WebInspector.GoToLineDialog.prototype._handleBlurEvent):
        (WebInspector.GoToLineDialog.prototype._handleMousedownEvent):
        (WebInspector.GoToLineDialog.prototype._handleClickEvent):
        (WebInspector.GoToLineDialog.prototype._clear):
        * UserInterface/Images/CloseWhite.svg: Added.

2251 2252 2253 2254 2255 2256 2257 2258 2259 2260 2261 2262 2263 2264 2265 2266 2267 2268 2269 2270 2271 2272 2273 2274 2275 2276 2277 2278 2279 2280 2281 2282 2283 2284 2285 2286 2287 2288 2289 2290 2291 2292 2293 2294 2295 2296 2297 2298 2299 2300 2301 2302 2303 2304 2305 2306 2307 2308 2309 2310 2311 2312 2313 2314 2315 2316 2317 2318 2319 2320
2013-10-18  Alexandru Chiculita  <achicu@adobe.com>

        Web Inspector: CSS Regions: Add the list of flows in the FrameTreeElement
        https://bugs.webkit.org/show_bug.cgi?id=122924

        Reviewed by Timothy Hatcher.

        Added code to collect the flows from the backend into the DOMTree object
        on the frontend. Added ContentFlow to represent the flows on the frontend
        side and created ContentFlowTreeElement to display the flows in the FrameTreeElement.

        * Localizations/en.lproj/localizedStrings.js:
        * Scripts/copy-user-interface-resources.sh:
        * UserInterface/CSSObserver.js:
        (WebInspector.CSSObserver.prototype.namedFlowCreated):
        (WebInspector.CSSObserver.prototype.namedFlowRemoved):
        (WebInspector.CSSObserver.prototype.regionLayoutUpdated):
        (WebInspector.CSSObserver.prototype.regionOversetChanged):
        * UserInterface/ContentFlow.js: Added.
        (WebInspector.ContentFlow):
        (WebInspector.ContentFlow.prototype.get id):
        (WebInspector.ContentFlow.prototype.get documentNodeIdentifier):
        (WebInspector.ContentFlow.prototype.get name):
        (WebInspector.ContentFlow.prototype.get overset):
        (WebInspector.ContentFlow.prototype.set overset):
        * UserInterface/ContentFlowIcon.css: Added.
        (.content-flow-icon .icon):
        * UserInterface/ContentFlowTreeElement.js: Added.
        (WebInspector.ContentFlowTreeElement):
        * UserInterface/DOMTree.js:
        (WebInspector.DOMTree):
        (WebInspector.DOMTree.prototype.get flowMap):
        (WebInspector.DOMTree.prototype.get flowsCount):
        (WebInspector.DOMTree.prototype._framePageExecutionContextChanged):
        (WebInspector.DOMTree.prototype.requestContentFlowList):
        (WebInspector.DOMTree.prototype._isContentFlowInCurrentDocument):
        (WebInspector.DOMTree.prototype._contentFlowListWasUpdated):
        (WebInspector.DOMTree.prototype._contentFlowWasAdded):
        (WebInspector.DOMTree.prototype._contentFlowWasRemoved):
        * UserInterface/DOMTreeManager.js:
        (WebInspector.DOMTreeManager):
        (WebInspector.DOMTreeManager._flowPayloadHashKey):
        (WebInspector.DOMTreeManager.prototype._buildHighlightConfig):
        (WebInspector.DOMTreeManager.prototype._createContentFlowFromPayload):
        (WebInspector.DOMTreeManager.prototype._updateContentFlowFromPayload):
        (WebInspector.DOMTreeManager.prototype.getNamedFlowCollection):
        (WebInspector.DOMTreeManager.prototype.namedFlowCreated):
        (WebInspector.DOMTreeManager.prototype.namedFlowRemoved):
        (WebInspector.DOMTreeManager.prototype._sendNamedFlowUpdateEvents):
        (WebInspector.DOMTreeManager.prototype.regionLayoutUpdated):
        (WebInspector.DOMTreeManager.prototype.regionOversetChanged):
        * UserInterface/FrameTreeElement.js:
        (WebInspector.FrameTreeElement):
        (WebInspector.FrameTreeElement.prototype.onpopulate):
        (WebInspector.FrameTreeElement.prototype.onexpand):
        (WebInspector.FrameTreeElement.prototype._childContentFlowWasAdded):
        (WebInspector.FrameTreeElement.prototype._childContentFlowWasRemoved):
        (WebInspector.FrameTreeElement.prototype._rootDOMNodeInvalidated):
        (WebInspector.FrameTreeElement.prototype._addChildForRepresentedObject):
        (WebInspector.FrameTreeElement.prototype._removeChildForRepresentedObject):
        (WebInspector.FrameTreeElement.prototype._addTreeElementForRepresentedObject):
        (WebInspector.FrameTreeElement.prototype._compareResourceTreeElements):
        (WebInspector.FrameTreeElement.prototype._insertResourceTreeElement):
        (WebInspector.FrameTreeElement.prototype._parentTreeElementForRepresentedObject):
        (WebInspector.FrameTreeElement.prototype._shouldGroupIntoFolders):
        * UserInterface/Images/ContentFlow.svg: Added.
        * UserInterface/Main.html:
        * UserInterface/ResourceSidebarPanel.js:
        (WebInspector.ResourceSidebarPanel.prototype._treeElementSelected):

2321 2322 2323 2324 2325 2326 2327 2328 2329 2330 2331 2332 2333 2334 2335 2336 2337 2338 2339 2340 2341 2342 2343 2344 2345 2346 2347 2348 2349 2350 2351 2352 2353 2354 2355 2356 2357 2358 2359 2360 2361 2362 2363 2364 2365 2366 2367 2368 2369 2370 2371 2372 2373 2374 2375 2376 2377 2378 2379 2380 2381 2382 2383 2384 2385 2386 2387 2388 2389 2390 2391 2392 2393 2394 2395 2396 2397 2398 2399 2400 2401 2402 2403 2404 2405 2406 2407 2408 2409 2410 2411 2412 2413 2414 2415 2416 2417
2013-10-17  Antoine Quint  <graouts@apple.com>

        Web Inspector: Go to line keyboard command and dialog
        https://bugs.webkit.org/show_bug.cgi?id=122893

        Reviewed by Timothy Hatcher.

        Add a text input over source code text editors, centered within the width of the editor
        and towards the top of the editor, upon pressing Command+L or Control+G to match the
        behavior in Chrome.

        * Localizations/en.lproj/localizedStrings.js:
        New localized string "Line Number".

        * UserInterface/GoToLineDialog.css: Added.
        Styling for the go-to-line dialog.

        * UserInterface/GoToLineDialog.js: Added.
        (WebInspector.GoToLineDialog):
        Generate the DOM structure for the dialog.

        (WebInspector.GoToLineDialog.prototype.present):
        Present the dialog as a child of a parent element. The dialog's text field automatically
        gets focus and resets to be empty.

        (WebInspector.GoToLineDialog.prototype.dismiss):
        Dismiss the dialog if visible, this triggers the goToLineDialogWasDismissed delegate method.

        (WebInspector.GoToLineDialog.prototype.handleEvent):
        Route the various events registered in the dialog's DOM tree: input, keydown, blur, mousedown
        and click.

        (WebInspector.GoToLineDialog.prototype._handleInputEvent):
        Update the "non-empty" class on the dialog's element depending on the content of the dialog's
        text field. If there is content in the text field, this will make the clear icon visible.

        (WebInspector.GoToLineDialog.prototype._handleKeydownEvent):
        If the Esc. key is pressed when there is text in the dialog's input field, clear the input field.
        If no text is in the input field, dismiss the input field. When the Enter key is pressed, we call
        the isGoToLineDialogValueValid() method on the delegate to figure out if the text field value is
        valid. If it's not, we select the text field value so that it may be easily replaced and play
        en error sound. If it's valid, we call the goToLineDialogValueWasValidated() delegate method
        and dismiss the dialog.

        (WebInspector.GoToLineDialog.prototype._handleBlurEvent):
        Dismiss the dialog when its text field loses focus. This ensures that clicking anywhere outside
        of the dialog removes it from display.

        (WebInspector.GoToLineDialog.prototype._handleMousedownEvent):
        Upon pressing the mouse down on the clear icon, select the entire text field content (matches
        the behavior of Xcode) and prevent the default event action that would blur the text field
        which would dismiss the dialog.

        (WebInspector.GoToLineDialog.prototype._handleClickEvent):
        Clear the content of the dialog's text field upon clicking on its clear button.

        (WebInspector.GoToLineDialog.prototype._clear):
        Reset the dialog's text field's value to an empty string and remove the "non-empty" CSS class name
        controlling the display of the clear button.

        * UserInterface/Images/CloseWhite.svg: Added.
        Variation of the Close.svg icon with a white cross.

        * UserInterface/Main.html:
        Link to the newly added resources for GoToLineDialog.

        * UserInterface/SourceCodeTextEditor.js:
        (WebInspector.SourceCodeTextEditor):
        Register the Command+L and Control+G keyboard shortcuts to bring up the go-to-line dialog.

        (WebInspector.SourceCodeTextEditor.prototype.showGoToLineDialog):
        Method called upon pressing the Command+L and Control+G keyboard shorcuts creating an instance
        of a GoToDialog if necessary, becoming its delegate and presenting it in the context of the
        editor's root element.

        (WebInspector.SourceCodeTextEditor.prototype.isGoToLineDialogValueValid):
        Delegate method called to validate the line number presently set in the go-to-dialog's text field,
        checking it's a number between 1 and the number of lines in the source code.

        (WebInspector.SourceCodeTextEditor.prototype.goToLineDialogValueWasValidated):
        Delegate method called when the line number set in the go-to-dialog's text field has been validated.
        We reveal and select the line at the number provided.

        (WebInspector.SourceCodeTextEditor.prototype.goToLineDialogWasDismissed):
        Ensure the source code editor regains focus upon dismissing the go-to-dialog.

        * UserInterface/TextEditor.js:
        (WebInspector.TextEditor.prototype.revealPosition):
        Add a new opt-in option to not highlight the revealed position. The code in goToLineDialogValueWasValidated()
        sets that new flag to true to avoid an unnecessary highlight on top of the selection.

        (WebInspector.TextEditor.prototype.get lineCount):
        Expose the lineCount() method on the private CodeMirror instance.

        (WebInspector.TextEditor.prototype.focus):
        Expose the focus() method on the private CodeMirror instance.

2418 2419 2420 2421 2422 2423 2424 2425 2426 2427 2428 2429 2430 2431 2432 2433 2434 2435
2013-10-17  Antoine Quint  <graouts@apple.com>

        Web Inspector: logged objects are highlighted in blue
        https://bugs.webkit.org/show_bug.cgi?id=122897

        Reviewed by Joseph Pecoraro.

        Switch to using the system highlight color for the background selected messages.
        Also removing SVG assets no longer needed since we won't be showing white prompt
        and result icons anymore as well as a few generated canvas states.

        * UserInterface/Images/UserInputPromptPreviousSelected.svg: Removed.
        * UserInterface/Images/UserInputResultSelected.svg: Removed.
        * UserInterface/LogContentView.css:
        (.console-messages:focus .console-item.selected):
        * UserInterface/Main.js:
        (WebInspector._generateDisclosureTriangleImages):

2436 2437 2438 2439 2440 2441 2442 2443 2444 2445 2446 2447
2013-10-17  Antoine Quint  <graouts@apple.com>

        Web Inspector: allow front-end to trigger the system beep sound to signal an error
        https://bugs.webkit.org/show_bug.cgi?id=122955

        Reviewed by Timothy Hatcher.

        Provide a stub method for the new InspectorFrontendHost.beep() method.

        * UserInterface/InspectorFrontendHostStub.js:
        (WebInspector.InspectorFrontendHostStub.prototype.beep):

2448 2449 2450 2451 2452 2453 2454 2455 2456 2457 2458 2459 2460 2461
2013-10-15  Antoine Quint  <graouts@apple.com>

        Web Inspector: can't select text inside a text node
        https://bugs.webkit.org/show_bug.cgi?id=122828

        Reviewed by Timothy Hatcher.

        Cancel the default user interaction when a drag action starts if the
        element is being edited.

        * UserInterface/DOMTreeElement.js:
        (WebInspector.DOMTreeElement.prototype.onattach):
        (WebInspector.DOMTreeElement.prototype.handleEvent):