Skip to content

Commit

Permalink
Optimize generateSnapshotState
Browse files Browse the repository at this point in the history
We can speed up this method considerably by leaning on sub-components
doing the heavy lifting of listening for and caching url bar data
updates.

(cherry picked from commit 120f4ff)

Bug: 1063346
Change-Id: Ib888f4242a7e1fa6b45cc76ca78fd2793c76e3c2
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/4177832
Reviewed-by: Sky Malice <skym@chromium.org>
Reviewed-by: Ella Ge <eirage@chromium.org>
Commit-Queue: Patrick Noland <pnoland@chromium.org>
Cr-Original-Commit-Position: refs/heads/main@{#1095142}
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/4218646
Auto-Submit: Sky Malice <skym@chromium.org>
Reviewed-by: Krishna Govind <govind@chromium.org>
Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
Commit-Queue: Sky Malice <skym@chromium.org>
Owners-Override: Krishna Govind <govind@chromium.org>
Cr-Commit-Position: refs/branch-heads/5481@{#912}
Cr-Branched-From: 130f3e4-refs/heads/main@{#1084008}
  • Loading branch information
Patrick Noland authored and Chromium LUCI CQ committed Feb 3, 2023
1 parent 9fae5b8 commit 1feb747
Show file tree
Hide file tree
Showing 8 changed files with 47 additions and 3 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -1287,6 +1287,11 @@ public OmniboxStub getOmniboxStub() {
return null;
}

@Override
public UrlBarData getUrlBarData() {
return mUrlCoordinator.getUrlBarData();
}

@Override
public boolean onLongClick(View v) {
if (v == mTitleUrlContainer) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -80,6 +80,9 @@ default VoiceRecognitionHandler getVoiceRecognitionHandler() {
@Nullable
OmniboxStub getOmniboxStub();

/** Returns the UrlBarData currently in use by the URL bar inside this location bar. */
UrlBarData getUrlBarData();

/** Destroys the LocationBar. */
void destroy();
}
Original file line number Diff line number Diff line change
Expand Up @@ -381,6 +381,11 @@ public OmniboxStub getOmniboxStub() {
return mLocationBarMediator;
}

@Override
public UrlBarData getUrlBarData() {
return mUrlCoordinator.getUrlBarData();
}

// OmniboxSuggestionsDropdownEmbedder implementation
@Override
public boolean isTablet() {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -124,6 +124,11 @@ public boolean setUrlBarData(
return mMediator.setUrlBarData(data, scrollType, state);
}

/** Returns the UrlBarData representing the current contents of the UrsssdddsssslBar. */
public UrlBarData getUrlBarData() {
return mMediator.getUrlBarData();
}

/** @see UrlBarMediator#setAutocompleteText(String, String) */
public void setAutocompleteText(String userText, String autocompleteText) {
mMediator.setAutocompleteText(userText, autocompleteText);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -128,6 +128,10 @@ public boolean setUrlBarData(
return true;
}

UrlBarData getUrlBarData() {
return mUrlBarData;
}

private void pushTextToModel() {
CharSequence text =
!mHasFocus ? mUrlBarData.displayText : mUrlBarData.getEditingOrDisplayText();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -193,6 +193,11 @@ public void onSecurityStateChanged() {
updateVerboseStatusVisibility();
}

/** Returns the resource identifier of the current security icon drawable. */
public @DrawableRes int getSecurityIconResource() {
return mMediator.getSecurityIconResource();
}

/** Updates the security icon displayed in the LocationBar. */
private void updateSecurityIcon() {
mMediator.updateSecurityIcon(mLocationBarDataProvider.getSecurityIconResource(mIsTablet),
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -201,6 +201,11 @@ void updateSecurityIcon(
updateLocationBarIcon(IconTransitionType.CROSSFADE);
}

@DrawableRes
int getSecurityIconResource() {
return mSecurityIconRes;
}

/**
* Update the displayed page's security level and whether it's a paint preview or offline page.
*/
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -1619,15 +1619,27 @@ public boolean setForceTextureCapture(boolean forceTextureCapture) {
}

private ToolbarSnapshotState generateToolbarSnapshotState() {
UrlBarData urlBarData = getToolbarDataProvider().getUrlBarData();
UrlBarData urlBarData;
int securityIconResource;
if (ToolbarFeatures.shouldSuppressCaptures()) {
urlBarData = mLocationBar.getUrlBarData();
if (urlBarData == null) urlBarData = getToolbarDataProvider().getUrlBarData();
StatusCoordinator statusCoordinator = mLocationBar.getStatusCoordinator();
securityIconResource = statusCoordinator == null
? getToolbarDataProvider().getSecurityIconResource(false)
: statusCoordinator.getSecurityIconResource();
} else {
urlBarData = getToolbarDataProvider().getUrlBarData();
securityIconResource = getToolbarDataProvider().getSecurityIconResource(false);
}

String displayedUrlText = urlBarData.displayText.toString();
CharSequence prefixHint = mLocationBar.getOmniboxVisibleTextPrefixHint();
boolean isValidPrefixHint =
ToolbarSnapshotState.isValidVisibleTextPrefixHint(displayedUrlText, prefixHint);
return new ToolbarSnapshotState(getTint().getDefaultColor(),
mTabCountProvider.getTabCount(), mButtonData, mVisualState, displayedUrlText,
isValidPrefixHint ? prefixHint : null,
getToolbarDataProvider().getSecurityIconResource(false),
isValidPrefixHint ? prefixHint : null, securityIconResource,
ImageViewCompat.getImageTintList(mHomeButton),
getMenuButtonCoordinator().isShowingUpdateBadge(),
getToolbarDataProvider().isPaintPreview(), getProgressBar().getProgress(),
Expand Down

0 comments on commit 1feb747

Please sign in to comment.