Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1747)

Side by Side Diff: third_party/WebKit/Source/web/WebViewImpl.h

Issue 2848043002: Refactor WebView resize and update-after-layout methods (Closed)
Patch Set: nit Created 3 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 /* 1 /*
2 * Copyright (C) 2010 Google Inc. All rights reserved. 2 * Copyright (C) 2010 Google Inc. All rights reserved.
3 * 3 *
4 * Redistribution and use in source and binary forms, with or without 4 * Redistribution and use in source and binary forms, with or without
5 * modification, are permitted provided that the following conditions are 5 * modification, are permitted provided that the following conditions are
6 * met: 6 * met:
7 * 7 *
8 * * Redistributions of source code must retain the above copyright 8 * * Redistributions of source code must retain the above copyright
9 * notice, this list of conditions and the following disclaimer. 9 * notice, this list of conditions and the following disclaimer.
10 * * Redistributions in binary form must reproduce the above 10 * * Redistributions in binary form must reproduce the above
(...skipping 329 matching lines...) Expand 10 before | Expand all | Expand 10 after
340 340
341 void ShowContextMenuForElement(WebElement) override; 341 void ShowContextMenuForElement(WebElement) override;
342 342
343 // Notifies the WebView that a load has been committed. isNewNavigation 343 // Notifies the WebView that a load has been committed. isNewNavigation
344 // will be true if a new session history item should be created for that 344 // will be true if a new session history item should be created for that
345 // load. isNavigationWithinPage will be true if the navigation does 345 // load. isNavigationWithinPage will be true if the navigation does
346 // not take the user away from the current page. 346 // not take the user away from the current page.
347 void DidCommitLoad(bool is_new_navigation, 347 void DidCommitLoad(bool is_new_navigation,
348 bool is_navigation_within_page) override; 348 bool is_navigation_within_page) override;
349 349
350 void PostLayoutResize(WebLocalFrameImpl* webframe);
351
352 // Indicates two things: 350 // Indicates two things:
353 // 1) This view may have a new layout now. 351 // 1) This view may have a new layout now.
354 // 2) Calling updateAllLifecyclePhases() is a no-op. 352 // 2) Calling updateAllLifecyclePhases() is a no-op.
355 // After calling WebWidget::updateAllLifecyclePhases(), expect to get this 353 // After calling WebWidget::updateAllLifecyclePhases(), expect to get this
356 // notification unless the view did not need a layout. 354 // notification unless the view did not need a layout.
357 void LayoutUpdated(WebLocalFrameImpl*); 355 void LayoutUpdated(WebLocalFrameImpl*);
356 void ResizeAfterLayout(WebLocalFrameImpl*);
358 357
359 void DidChangeContentsSize() override; 358 void DidChangeContentsSize() override;
360 void PageScaleFactorChanged() override; 359 void PageScaleFactorChanged() override;
361 void MainFrameScrollOffsetChanged() override; 360 void MainFrameScrollOffsetChanged() override;
362 361
363 // Returns true if popup menus should be rendered by the browser, false if 362 // Returns true if popup menus should be rendered by the browser, false if
364 // they should be rendered by WebKit (which is the default). 363 // they should be rendered by WebKit (which is the default).
365 static bool UseExternalPopupMenus(); 364 static bool UseExternalPopupMenus();
366 365
367 bool ShouldAutoResize() const override { return should_auto_resize_; } 366 bool ShouldAutoResize() const override { return should_auto_resize_; }
(...skipping 145 matching lines...) Expand 10 before | Expand all | Expand 10 after
513 void PropagateZoomFactorToLocalFrameRoots(Frame*, float); 512 void PropagateZoomFactorToLocalFrameRoots(Frame*, float);
514 513
515 void ScrollAndRescaleViewports(float scale_factor, 514 void ScrollAndRescaleViewports(float scale_factor,
516 const IntPoint& main_frame_origin, 515 const IntPoint& main_frame_origin,
517 const FloatPoint& visual_viewport_origin); 516 const FloatPoint& visual_viewport_origin);
518 517
519 float MaximumLegiblePageScale() const; 518 float MaximumLegiblePageScale() const;
520 void RefreshPageScaleFactorAfterLayout(); 519 void RefreshPageScaleFactorAfterLayout();
521 IntSize ContentsSize() const; 520 IntSize ContentsSize() const;
522 521
523 void PerformResize(); 522 void ResizeFrameView(WebLocalFrameImpl* webframe);
523 void UpdateICBAndResizeViewport();
524 void ResizeViewWhileAnchored(float browser_controls_height, 524 void ResizeViewWhileAnchored(float browser_controls_height,
525 bool browser_controls_shrink_layout); 525 bool browser_controls_shrink_layout);
526 526
527 // Overrides the compositor visibility. See the description of 527 // Overrides the compositor visibility. See the description of
528 // m_overrideCompositorVisibility for more details. 528 // m_overrideCompositorVisibility for more details.
529 void SetCompositorVisibility(bool); 529 void SetCompositorVisibility(bool);
530 530
531 // TODO(lfg): Remove once WebViewFrameWidget is deleted. 531 // TODO(lfg): Remove once WebViewFrameWidget is deleted.
532 void ScheduleAnimationForWidget(); 532 void ScheduleAnimationForWidget();
533 bool GetCompositionCharacterBounds(WebVector<WebRect>&) override; 533 bool GetCompositionCharacterBounds(WebVector<WebRect>&) override;
(...skipping 210 matching lines...) Expand 10 before | Expand all | Expand 10 after
744 Persistent<ResizeViewportAnchor> resize_viewport_anchor_; 744 Persistent<ResizeViewportAnchor> resize_viewport_anchor_;
745 }; 745 };
746 746
747 // We have no ways to check if the specified WebView is an instance of 747 // We have no ways to check if the specified WebView is an instance of
748 // WebViewImpl because WebViewImpl is the only implementation of WebView. 748 // WebViewImpl because WebViewImpl is the only implementation of WebView.
749 DEFINE_TYPE_CASTS(WebViewImpl, WebView, webView, true, true); 749 DEFINE_TYPE_CASTS(WebViewImpl, WebView, webView, true, true);
750 750
751 } // namespace blink 751 } // namespace blink
752 752
753 #endif 753 #endif
OLDNEW
« no previous file with comments | « third_party/WebKit/Source/web/ChromeClientImpl.cpp ('k') | third_party/WebKit/Source/web/WebViewImpl.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698