Merge pull request #17793 from calixteman/zoom_wheel_ctrl
When zooming the scrollbar can disappear and then no scrollend is triggered
This commit is contained in:
		
						commit
						2a68724b53
					
				@ -35,6 +35,7 @@ async function runTests(results) {
 | 
			
		||||
      "scripting_spec.mjs",
 | 
			
		||||
      "stamp_editor_spec.mjs",
 | 
			
		||||
      "text_field_spec.mjs",
 | 
			
		||||
      "viewer_spec.mjs",
 | 
			
		||||
    ],
 | 
			
		||||
  });
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										58
									
								
								test/integration/viewer_spec.mjs
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										58
									
								
								test/integration/viewer_spec.mjs
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,58 @@
 | 
			
		||||
/* Copyright 2024 Mozilla Foundation
 | 
			
		||||
 *
 | 
			
		||||
 * Licensed under the Apache License, Version 2.0 (the "License");
 | 
			
		||||
 * you may not use this file except in compliance with the License.
 | 
			
		||||
 * You may obtain a copy of the License at
 | 
			
		||||
 *
 | 
			
		||||
 *     http://www.apache.org/licenses/LICENSE-2.0
 | 
			
		||||
 *
 | 
			
		||||
 * Unless required by applicable law or agreed to in writing, software
 | 
			
		||||
 * distributed under the License is distributed on an "AS IS" BASIS,
 | 
			
		||||
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 | 
			
		||||
 * See the License for the specific language governing permissions and
 | 
			
		||||
 * limitations under the License.
 | 
			
		||||
 */
 | 
			
		||||
 | 
			
		||||
import { closePages, loadAndWait } from "./test_utils.mjs";
 | 
			
		||||
 | 
			
		||||
describe("PDF viewer", () => {
 | 
			
		||||
  describe("Zoom with the mouse wheel", () => {
 | 
			
		||||
    let pages;
 | 
			
		||||
 | 
			
		||||
    beforeAll(async () => {
 | 
			
		||||
      pages = await loadAndWait("empty.pdf", ".textLayer .endOfContent", 1000);
 | 
			
		||||
    });
 | 
			
		||||
 | 
			
		||||
    afterAll(async () => {
 | 
			
		||||
      await closePages(pages);
 | 
			
		||||
    });
 | 
			
		||||
 | 
			
		||||
    it("must check that we can zoom with the mouse wheel and pressed control key", async () => {
 | 
			
		||||
      await Promise.all(
 | 
			
		||||
        pages.map(async ([browserName, page]) => {
 | 
			
		||||
          if (browserName === "firefox") {
 | 
			
		||||
            // Skip this test for Firefox, as it's not working correctly.
 | 
			
		||||
            // See https://github.com/puppeteer/puppeteer/issues/12093.
 | 
			
		||||
            // TODO: Remove this check once the issue is resolved.
 | 
			
		||||
            return;
 | 
			
		||||
          }
 | 
			
		||||
          await page.keyboard.down("Control");
 | 
			
		||||
          let zoom = 10;
 | 
			
		||||
          const zoomGetter = () =>
 | 
			
		||||
            page.evaluate(
 | 
			
		||||
              () => window.PDFViewerApplication.pdfViewer.currentScale
 | 
			
		||||
            );
 | 
			
		||||
          while (zoom > 0.1) {
 | 
			
		||||
            await page.mouse.wheel({ deltaY: 100 });
 | 
			
		||||
            zoom = await zoomGetter();
 | 
			
		||||
          }
 | 
			
		||||
          while (zoom < 10) {
 | 
			
		||||
            await page.mouse.wheel({ deltaY: -100 });
 | 
			
		||||
            zoom = await zoomGetter();
 | 
			
		||||
          }
 | 
			
		||||
          await page.keyboard.up("Control");
 | 
			
		||||
        })
 | 
			
		||||
      );
 | 
			
		||||
    });
 | 
			
		||||
  });
 | 
			
		||||
});
 | 
			
		||||
@ -2024,8 +2024,9 @@ const PDFViewerApplication = {
 | 
			
		||||
    });
 | 
			
		||||
    const scroll = (_boundEvents.mainContainerScroll = () => {
 | 
			
		||||
      if (
 | 
			
		||||
        this._lastScrollTop === mainContainer.scrollTop &&
 | 
			
		||||
        this._lastScrollLeft === mainContainer.scrollLeft
 | 
			
		||||
        this._isCtrlKeyDown ||
 | 
			
		||||
        (this._lastScrollTop === mainContainer.scrollTop &&
 | 
			
		||||
          this._lastScrollLeft === mainContainer.scrollLeft)
 | 
			
		||||
      ) {
 | 
			
		||||
        return;
 | 
			
		||||
      }
 | 
			
		||||
 | 
			
		||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user