Advertisement
Allasso

Bug 1415918

Nov 22nd, 2017
321
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Diff 1.30 KB | None | 0 0
  1.                                        nullptr);
  2.      mInPermitUnload = false;
  3.    }
  4.  
  5.    nsCOMPtr<nsIDocShell> docShell(mContainer);
  6.    nsAutoString text;
  7.    event->GetReturnValue(text);
  8.  
  9. -  if (*aPermitUnloadFlags == eDontPromptAndDontUnload && !text.IsEmpty()) {
  10. -    *aPermitUnload = false;
  11. -    return NS_OK;
  12. -  }
  13. -
  14.    if (sIsBeforeUnloadDisabled) {
  15.      *aPermitUnloadFlags = eDontPromptAndUnload;
  16.    }
  17.  
  18.    // NB: we nullcheck mDocument because it might now be dead as a result of
  19.    // the event being dispatched.
  20. -  if (*aPermitUnloadFlags == ePrompt && dialogsAreEnabled &&
  21. +  if ((*aPermitUnloadFlags != eDontPromptAndUnload) && dialogsAreEnabled &&
  22.        mDocument && !(mDocument->GetSandboxFlags() & SANDBOXED_MODALS) &&
  23.        (!sBeforeUnloadRequiresInteraction || mDocument->UserHasInteracted()) &&
  24.        (event->WidgetEventPtr()->DefaultPrevented() || !text.IsEmpty())) {
  25. +
  26. +    if (*aPermitUnloadFlags == eDontPromptAndDontUnload) {
  27. +      *aPermitUnload = false;
  28. +      return NS_OK;
  29. +    }
  30. +
  31.      // Ask the user if it's ok to unload the current page
  32.  
  33.      nsCOMPtr<nsIPrompt> prompt = do_GetInterface(docShell);
  34.  
  35.      if (prompt) {
  36.        nsCOMPtr<nsIWritablePropertyBag2> promptBag = do_QueryInterface(prompt);
  37.        if (promptBag) {
  38.          bool isTabModalPromptAllowed;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement