Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Fix profiling for stores with custom domains #136

Merged
merged 1 commit into from
Apr 1, 2024

Conversation

krzksz
Copy link
Contributor

@krzksz krzksz commented Nov 22, 2023

What issue does this pull request address?

/* Context about the problem such as a link to an issue or just a description */

When profiling any Shopify store with custom domain, the run fails with This page cannot be profiled message. After some investigating, I noticed that the extension is always doing the ?profile_liquid=true request to the permanent .myshopify.com domain instead of the custom one:
image
As you can see (probably because of some recent configuration changes), this results in the 301 redirect to the custom domain. The problem is that this makes the request lose the Authorization header and so it fails.

What is the solution

/* Describe the solutions effectively */

I'm not sure what was the original reason for the conditional, but it seems like we can just always use the document.location.host. I haven't set the extension locally, but overwriting the value of Shopify.shop to be the custom domain fixes the issue and lets me profile the store properly.

What should the reviewer focus on and are there any special considerations?

/* Any additional details you would want to bring to attention */

@@ -84,7 +84,7 @@ function clear() {
function getInspectedWindowURL(): Promise<URL> {
return new Promise(resolve => {
chrome.devtools.inspectedWindow.eval(
`(/myshopify\\.io/.test(document.location.host) ? document.location.host : Shopify.shop) + document.location.pathname + document.location.search`,
`document.location.host + document.location.pathname + document.location.search`,
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

What was this code supposed to do, originally?

I think the old version is actually broken:
image

So it would have consistently used Shopify.shop to build the URL.

The fix makes sense to me, because it's simpler and will work in more cases. I'm mostly curious if anything is accidentally relying on Shopify.shop.

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I believe it comes from here. However, my understanding is that document.location.host should handle both cases (localhost and non-localhost).

Copy link

@karreiro karreiro left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thank you, @krzksz!

@MikeParkin
Copy link

@wizardlyhel would it be possible to get this reviewed and merged please? :-)

@mgmanzella mgmanzella merged commit 6f78e5b into master Apr 1, 2024
1 check passed
@mgmanzella mgmanzella deleted the fix-request-redirect branch April 1, 2024 14:17
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Inspector profiles in preview mode but not on published themes
5 participants