[prev in list] [next in list] [prev in thread] [next in thread] 

List:       webkit-unassigned
Subject:    [Webkit-unassigned] [Bug 145493] New: PDFs always think they're visible on iOS.
From:       bugzilla-daemon () webkit ! org
Date:       2015-05-30 21:16:29
Message-ID: bug-145493-2851 () https ! bugs ! webkit ! org/
[Download RAW message or body]

--Boundary_(ID_Hx59Z7wQL+zNj911J56A0g)
Date: Sat, 30 May 2015 14:16:15 -0700
MIME-version: 1.0
Content-type: text/plain
Content-transfer-encoding: 8BIT

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

            Bug ID: 145493
           Summary: PDFs always think they're visible on iOS.
    Classification: Unclassified
           Product: WebKit
           Version: 528+ (Nightly build)
          Hardware: Unspecified
                OS: Unspecified
            Status: NEW
          Severity: Normal
          Priority: P2
         Component: WebKit2
          Assignee: webkit-unassigned@lists.webkit.org
          Reporter: barraclough@apple.com

The problem here is that WKContentView is currently responsible for notifying the \
WebPageProxy that the visibility may have changed, but when a PDF isn't showing the \
WKContentView isn't in the view hierarchy and doesn't receive the didMoveToWindow \
notifications – and the WKPDFView (which is in the view hierarchy) does not listen \
for these events.

Visibility of the page should really just track the visibility of the WKWebView (and \
when actually assessing the visibility it largely does - the page client checks the \
web view's visibility, bar a FIXME, and the foreground/background check, which needs \
to change). So notifications should really just come from the WKWebView.

The WKWebView already listens for the didMoveToWindow notification, it just was only \
updating the IsInWindow flag. Instead just update all flags, and the call to \
viewStateDidChange from WKContentView can just be removed.

There is one problem with this in that it would reverse the order of the calls to \
viewStateDidChange & _updateForScreen:, which would mean the the view would become \
visible before updating the screen pixel density. To fix this, moving the call to \
_updateForScreen: to willMoveToWindow:, to ensure it occurs before the page becomes \
visible.

This will also change behavior on Mac for WKWebView clients, in coalescing all view \
state changes within the didMoveToWindow call. This is the direction we intended to \
go in anyway (the plan is to remove the mayHaveChanged argument from \
viewStateDidChange - we're currently adding unnecessary IPC traffic).

-- 
You are receiving this mail because:
You are the assignee for the bug.

--Boundary_(ID_Hx59Z7wQL+zNj911J56A0g)
Date: Sat, 30 May 2015 14:16:15 -0700
MIME-version: 1.0
Content-type: text/html
Content-transfer-encoding: 8BIT

<html>
    <head>
      <base href="https://bugs.webkit.org/" />
    </head>
    <body><table border="1" cellspacing="0" cellpadding="8">
        <tr>
          <th>Bug ID</th>
          <td><a class="bz_bug_link 
          bz_status_NEW "
   title="NEW - PDFs always think they're visible on iOS."
   href="https://bugs.webkit.org/show_bug.cgi?id=145493">145493</a>
          </td>
        </tr>

        <tr>
          <th>Summary</th>
          <td>PDFs always think they're visible on iOS.
          </td>
        </tr>

        <tr>
          <th>Classification</th>
          <td>Unclassified
          </td>
        </tr>

        <tr>
          <th>Product</th>
          <td>WebKit
          </td>
        </tr>

        <tr>
          <th>Version</th>
          <td>528+ (Nightly build)
          </td>
        </tr>

        <tr>
          <th>Hardware</th>
          <td>Unspecified
          </td>
        </tr>

        <tr>
          <th>OS</th>
          <td>Unspecified
          </td>
        </tr>

        <tr>
          <th>Status</th>
          <td>NEW
          </td>
        </tr>

        <tr>
          <th>Severity</th>
          <td>Normal
          </td>
        </tr>

        <tr>
          <th>Priority</th>
          <td>P2
          </td>
        </tr>

        <tr>
          <th>Component</th>
          <td>WebKit2
          </td>
        </tr>

        <tr>
          <th>Assignee</th>
          <td>webkit-unassigned&#64;lists.webkit.org
          </td>
        </tr>

        <tr>
          <th>Reporter</th>
          <td>barraclough&#64;apple.com
          </td>
        </tr></table>
      <p>
        <div>
        <pre>The problem here is that WKContentView is currently responsible for \
notifying the WebPageProxy that the visibility may have changed, but when a PDF isn't \
showing the WKContentView isn't in the view hierarchy and doesn't receive the \
didMoveToWindow notifications – and the WKPDFView (which is in the view hierarchy) \
does not listen for these events.

Visibility of the page should really just track the visibility of the WKWebView (and \
when actually assessing the visibility it largely does - the page client checks the \
web view's visibility, bar a FIXME, and the foreground/background check, which needs \
to change). So notifications should really just come from the WKWebView.

The WKWebView already listens for the didMoveToWindow notification, it just was only \
updating the IsInWindow flag. Instead just update all flags, and the call to \
viewStateDidChange from WKContentView can just be removed.

There is one problem with this in that it would reverse the order of the calls to \
viewStateDidChange &amp; _updateForScreen:, which would mean the the view would \
become visible before updating the screen pixel density. To fix this, moving the call \
to _updateForScreen: to willMoveToWindow:, to ensure it occurs before the page \
becomes visible.

This will also change behavior on Mac for WKWebView clients, in coalescing all view \
state changes within the didMoveToWindow call. This is the direction we intended to \
go in anyway (the plan is to remove the mayHaveChanged argument from \
viewStateDidChange - we're currently adding unnecessary IPC traffic).</pre>  </div>
      </p>
      <hr>
      <span>You are receiving this mail because:</span>
      
      <ul>
          <li>You are the assignee for the bug.</li>
      </ul>
    </body>
</html>

--Boundary_(ID_Hx59Z7wQL+zNj911J56A0g)--



_______________________________________________
webkit-unassigned mailing list
webkit-unassigned@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-unassigned


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic