In the FrameLoader.cpp: void FrameLoader::checkNavigationPolicy(const ResourceRequest& request, DocumentLoader* loader, PassRefPtr<FormState> formState, NavigationPolicyDecisionFunction function, void* argument) { .... // Don't ask more than once for the same request or if we are loading an empty URL. // This avoids confusion on the part of the client. if (equalIgnoringHeaderFields(request, loader->lastCheckedRequest()) || (!request.isNull() && request.url().isEmpty())) { function(argument, request, 0, true); loader->setLastCheckedRequest(request); return; } ... m_client->dispatchDecidePolicyForNavigationAction(&FrameLoader::continueAfterNavigationPolicy, action, request, formState); ... } On the second call to checkNavigationPolicy(), the action is just taken. This is specifically noticeable with HTML that jumps to a fragment. If the user clicks a link such as <a href="#page2"> and the client application responded Ignore to the policy and the user clicks the same link again, we will scroll to the anchor position.