Changeset 230618 in webkit


Ignore:
Timestamp:
Apr 12, 2018 6:09:50 PM (6 years ago)
Author:
Nikita Vasilyev
Message:

Web Inspector: Refactoring: move popover styles from JS to CSS
https://bugs.webkit.org/show_bug.cgi?id=184558

Reviewed by Brian Burg.

Introduce several CSS variables to customize popover appearance in CSS
and not JavaScript.

  • UserInterface/Views/NetworkTableContentView.js:

(WI.NetworkTableContentView.prototype._waterfallPopoverContentForResource):
(WI.NetworkTableContentView.prototype._handleMousedownWaterfall):

  • UserInterface/Views/Popover.css:

(.popover):

  • UserInterface/Views/Popover.js:

(WI.Popover):
(WI.Popover.prototype._drawBackground):
Replace var with let.

(WI.Popover.prototype.get backgroundStyle): Deleted.
(WI.Popover.prototype.set backgroundStyle): Deleted.

  • UserInterface/Views/ResourceTimingBreakdownView.css:

(.popover.waterfall-popover):
(.waterfall-popover-content .resource-timing-breakdown):
(.waterfall-popover .resource-timing-breakdown): Deleted.

  • UserInterface/Views/NetworkTableContentView.js:

(WI.NetworkTableContentView.prototype._waterfallPopoverContentForResource):
(WI.NetworkTableContentView.prototype._handleMousedownWaterfall):

  • UserInterface/Views/Popover.css:

(.popover):

  • UserInterface/Views/Popover.js:

(WI.Popover):
(WI.Popover.prototype._drawBackground):

  • UserInterface/Views/ResourceTimingBreakdownView.css:

(.popover.waterfall-popover):
(.waterfall-popover-content .resource-timing-breakdown):

Location:
trunk/Source/WebInspectorUI
Files:
5 edited

Legend:

Unmodified
Added
Removed
  • trunk/Source/WebInspectorUI/ChangeLog

    r230372 r230618  
     12018-04-12  Nikita Vasilyev  <nvasilyev@apple.com>
     2
     3        Web Inspector: Refactoring: move popover styles from JS to CSS
     4        https://bugs.webkit.org/show_bug.cgi?id=184558
     5
     6        Reviewed by Brian Burg.
     7
     8        Introduce several CSS variables to customize popover appearance in CSS
     9        and not JavaScript.
     10
     11        * UserInterface/Views/NetworkTableContentView.js:
     12        (WI.NetworkTableContentView.prototype._waterfallPopoverContentForResource):
     13        (WI.NetworkTableContentView.prototype._handleMousedownWaterfall):
     14        * UserInterface/Views/Popover.css:
     15        (.popover):
     16        * UserInterface/Views/Popover.js:
     17        (WI.Popover):
     18        (WI.Popover.prototype._drawBackground):
     19        Replace `var` with `let`.
     20
     21        (WI.Popover.prototype.get backgroundStyle): Deleted.
     22        (WI.Popover.prototype.set backgroundStyle): Deleted.
     23        * UserInterface/Views/ResourceTimingBreakdownView.css:
     24        (.popover.waterfall-popover):
     25        (.waterfall-popover-content .resource-timing-breakdown):
     26        (.waterfall-popover .resource-timing-breakdown): Deleted.
     27
     28        * UserInterface/Views/NetworkTableContentView.js:
     29        (WI.NetworkTableContentView.prototype._waterfallPopoverContentForResource):
     30        (WI.NetworkTableContentView.prototype._handleMousedownWaterfall):
     31        * UserInterface/Views/Popover.css:
     32        (.popover):
     33        * UserInterface/Views/Popover.js:
     34        (WI.Popover):
     35        (WI.Popover.prototype._drawBackground):
     36        * UserInterface/Views/ResourceTimingBreakdownView.css:
     37        (.popover.waterfall-popover):
     38        (.waterfall-popover-content .resource-timing-breakdown):
     39
    1402018-04-07  Nikita Vasilyev  <nvasilyev@apple.com>
    241
  • trunk/Source/WebInspectorUI/UserInterface/Views/NetworkTableContentView.js

    r226992 r230618  
    14051405    {
    14061406        let contentElement = document.createElement("div");
    1407         contentElement.className = "waterfall-popover";
     1407        contentElement.className = "waterfall-popover-content";
    14081408
    14091409        if (!resource.hasResponse() || !resource.timingData.startTime || !resource.timingData.responseEnd) {
     
    14231423        if (!this._waterfallPopover) {
    14241424            this._waterfallPopover = new WI.Popover;
    1425             this._waterfallPopover.backgroundStyle = WI.Popover.BackgroundStyle.White;
     1425            this._waterfallPopover.element.classList.add("waterfall-popover");
    14261426        }
    14271427
  • trunk/Source/WebInspectorUI/UserInterface/Views/Popover.css

    r218959 r230618  
    2929    min-height: 20px;
    3030    box-sizing: border-box;
    31     background-image: -webkit-canvas(popover);
    3231    pointer-events: none;
    3332    z-index: var(--z-index-popover);
     33
     34    --popover-text-color: black;
     35    --popover-background-color: var(--panel-background-color);
     36    --popover-border-color: hsla(0, 0%, 0%, 0.25);
     37    --popover-shadow-color: hsla(0, 0%, 0%, 0.5);
     38
     39    background-image: -webkit-canvas(popover);
    3440}
    3541
  • trunk/Source/WebInspectorUI/UserInterface/Views/Popover.js

    r223734 r230618  
    3838        this._preferredEdges = null;
    3939        this._resizeHandler = null;
    40         this._backgroundStyle = WI.Popover.BackgroundStyle.Default;
    4140
    4241        this._contentNeedsUpdate = false;
     
    7372        this._element.style.backgroundSize = frame.size.width + "px " + frame.size.height + "px";
    7473        this._frame = frame;
    75     }
    76 
    77     get backgroundStyle()
    78     {
    79         return this._backgroundStyle;
    80     }
    81 
    82     set backgroundStyle(style)
    83     {
    84         console.assert(Object.values(WI.Popover.BackgroundStyle).includes(style));
    85 
    86         this._backgroundStyle = style;
    8774    }
    8875
     
    392379    _drawBackground()
    393380    {
    394         var scaleFactor = window.devicePixelRatio;
    395 
    396         var width = this._frame.size.width;
    397         var height = this._frame.size.height;
    398         var scaledWidth = width * scaleFactor;
    399         var scaledHeight = height * scaleFactor;
     381        let scaleFactor = window.devicePixelRatio;
     382
     383        let width = this._frame.size.width;
     384        let height = this._frame.size.height;
     385        let scaledWidth = width * scaleFactor;
     386        let scaledHeight = height * scaleFactor;
    400387
    401388        // Create a scratch canvas so we can draw the popover that will later be drawn into
    402389        // the final context with a shadow.
    403         var scratchCanvas = document.createElement("canvas");
     390        let scratchCanvas = document.createElement("canvas");
    404391        scratchCanvas.width = scaledWidth;
    405392        scratchCanvas.height = scaledHeight;
    406393
    407         var ctx = scratchCanvas.getContext("2d");
     394        let ctx = scratchCanvas.getContext("2d");
    408395        ctx.scale(scaleFactor, scaleFactor);
    409396
    410397        // Bounds of the path don't take into account the arrow, but really only the tight bounding box
    411398        // of the content contained within the frame.
    412         var bounds;
    413         var arrowHeight = WI.Popover.AnchorSize.height;
     399        let bounds;
     400        let arrowHeight = WI.Popover.AnchorSize.height;
    414401        switch (this._edge) {
    415402        case WI.RectEdge.MIN_X: // Displayed on the left of the target, arrow points right.
     
    428415
    429416        bounds = bounds.inset(WI.Popover.ShadowEdgeInsets);
     417        let computedStyle = window.getComputedStyle(this._element, null);
    430418
    431419        // Clip the frame.
    432         ctx.fillStyle = "black";
     420        ctx.fillStyle = computedStyle.getPropertyValue("--popover-text-color").trim();
    433421        this._drawFrame(ctx, bounds, this._edge, this._anchorPoint);
    434422        ctx.clip();
    435423
    436424        // Panel background color fill.
    437         ctx.fillStyle = this._backgroundStyle === WI.Popover.BackgroundStyle.White ? "white" : "rgb(236, 236, 236)";
     425        ctx.fillStyle = computedStyle.getPropertyValue("--popover-background-color").trim();
     426
    438427        ctx.fillRect(0, 0, width, height);
    439428
    440429        // Stroke.
    441         ctx.strokeStyle = "rgba(0, 0, 0, 0.25)";
     430        ctx.strokeStyle = computedStyle.getPropertyValue("--popover-border-color").trim();
    442431        ctx.lineWidth = 2;
    443432        this._drawFrame(ctx, bounds, this._edge, this._anchorPoint);
     
    450439        finalContext.shadowOffsetY = 1;
    451440        finalContext.shadowBlur = 5;
    452         finalContext.shadowColor = "rgba(0, 0, 0, 0.5)";
     441        finalContext.shadowColor = computedStyle.getPropertyValue("--popover-shadow-color").trim();
    453442        finalContext.drawImage(scratchCanvas, 0, 0, scaledWidth, scaledHeight);
    454443    }
     
    593582};
    594583
    595 WI.Popover.BackgroundStyle = {
    596     Default: "popover-background-default",
    597     White: "popover-background-white",
    598 };
    599 
    600584WI.Popover.FadeOutClassName = "fade-out";
    601585WI.Popover.CornerRadius = 5;
  • trunk/Source/WebInspectorUI/UserInterface/Views/ResourceTimingBreakdownView.css

    r226158 r230618  
    2424 */
    2525
    26 .waterfall-popover .resource-timing-breakdown {
     26.popover.waterfall-popover {
     27    --popover-background-color: white;
     28}
     29
     30.waterfall-popover-content .resource-timing-breakdown {
    2731    margin: 5px;
    2832}
Note: See TracChangeset for help on using the changeset viewer.