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

Side by Side Diff: Source/core/dom/Document.cpp

Issue 99083002: WIP: Migrate generated bindings to new ExceptionState constructor. (Closed) Base URL: https://chromium.googlesource.com/chromium/blink.git@master
Patch Set: MessagePort. Created 7 years 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) 1999 Lars Knoll (knoll@kde.org) 2 * Copyright (C) 1999 Lars Knoll (knoll@kde.org)
3 * (C) 1999 Antti Koivisto (koivisto@kde.org) 3 * (C) 1999 Antti Koivisto (koivisto@kde.org)
4 * (C) 2001 Dirk Mueller (mueller@kde.org) 4 * (C) 2001 Dirk Mueller (mueller@kde.org)
5 * (C) 2006 Alexey Proskuryakov (ap@webkit.org) 5 * (C) 2006 Alexey Proskuryakov (ap@webkit.org)
6 * Copyright (C) 2004, 2005, 2006, 2007, 2008, 2009, 2011, 2012 Apple Inc. All r ights reserved. 6 * Copyright (C) 2004, 2005, 2006, 2007, 2008, 2009, 2011, 2012 Apple Inc. All r ights reserved.
7 * Copyright (C) 2008, 2009 Torch Mobile Inc. All rights reserved. (http://www.t orchmobile.com/) 7 * Copyright (C) 2008, 2009 Torch Mobile Inc. All rights reserved. (http://www.t orchmobile.com/)
8 * Copyright (C) 2008, 2009, 2011, 2012 Google Inc. All rights reserved. 8 * Copyright (C) 2008, 2009, 2011, 2012 Google Inc. All rights reserved.
9 * Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies) 9 * Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies)
10 * Copyright (C) Research In Motion Limited 2010-2011. All rights reserved. 10 * Copyright (C) Research In Motion Limited 2010-2011. All rights reserved.
(...skipping 3690 matching lines...) Expand 10 before | Expand all | Expand 10 after
3701 String Document::cookie(ExceptionState& exceptionState) const 3701 String Document::cookie(ExceptionState& exceptionState) const
3702 { 3702 {
3703 if (settings() && !settings()->cookieEnabled()) 3703 if (settings() && !settings()->cookieEnabled())
3704 return String(); 3704 return String();
3705 3705
3706 // FIXME: The HTML5 DOM spec states that this attribute can raise an 3706 // FIXME: The HTML5 DOM spec states that this attribute can raise an
3707 // InvalidStateError exception on getting if the Document has no 3707 // InvalidStateError exception on getting if the Document has no
3708 // browsing context. 3708 // browsing context.
3709 3709
3710 if (!securityOrigin()->canAccessCookies()) { 3710 if (!securityOrigin()->canAccessCookies()) {
3711 String accessDeniedMessage = "Access to 'cookie' is denied for this docu ment.";
3712 if (isSandboxed(SandboxOrigin)) 3711 if (isSandboxed(SandboxOrigin))
3713 exceptionState.throwSecurityError(accessDeniedMessage + " The docume nt is sandboxed and lacks the 'allow-same-origin' flag."); 3712 exceptionState.throwSecurityError("The document is sandboxed and lac ks the 'allow-same-origin' flag.");
3714 else if (url().protocolIs("data")) 3713 else if (url().protocolIs("data"))
3715 exceptionState.throwSecurityError(accessDeniedMessage + " Cookies ar e disabled inside 'data:' URLs."); 3714 exceptionState.throwSecurityError("Cookies are disabled inside 'data :' URLs.");
3716 else 3715 else
3717 exceptionState.throwSecurityError(accessDeniedMessage); 3716 exceptionState.throwSecurityError("Access is denied for this documen t.");
3718 return String(); 3717 return String();
3719 } 3718 }
3720 3719
3721 KURL cookieURL = this->cookieURL(); 3720 KURL cookieURL = this->cookieURL();
3722 if (cookieURL.isEmpty()) 3721 if (cookieURL.isEmpty())
3723 return String(); 3722 return String();
3724 3723
3725 return cookies(this, cookieURL); 3724 return cookies(this, cookieURL);
3726 } 3725 }
3727 3726
3728 void Document::setCookie(const String& value, ExceptionState& exceptionState) 3727 void Document::setCookie(const String& value, ExceptionState& exceptionState)
3729 { 3728 {
3730 if (settings() && !settings()->cookieEnabled()) 3729 if (settings() && !settings()->cookieEnabled())
3731 return; 3730 return;
3732 3731
3733 // FIXME: The HTML5 DOM spec states that this attribute can raise an 3732 // FIXME: The HTML5 DOM spec states that this attribute can raise an
3734 // InvalidStateError exception on setting if the Document has no 3733 // InvalidStateError exception on setting if the Document has no
3735 // browsing context. 3734 // browsing context.
3736 3735
3737 if (!securityOrigin()->canAccessCookies()) { 3736 if (!securityOrigin()->canAccessCookies()) {
3738 String accessDeniedMessage = "Access to 'cookie' is denied for this docu ment.";
3739 if (isSandboxed(SandboxOrigin)) 3737 if (isSandboxed(SandboxOrigin))
3740 exceptionState.throwSecurityError(accessDeniedMessage + " The docume nt is sandboxed and lacks the 'allow-same-origin' flag."); 3738 exceptionState.throwSecurityError("The document is sandboxed and lac ks the 'allow-same-origin' flag.");
3741 else if (url().protocolIs("data")) 3739 else if (url().protocolIs("data"))
3742 exceptionState.throwSecurityError(accessDeniedMessage + " Cookies ar e disabled inside 'data:' URLs."); 3740 exceptionState.throwSecurityError("Cookies are disabled inside 'data :' URLs.");
3743 else 3741 else
3744 exceptionState.throwSecurityError(accessDeniedMessage); 3742 exceptionState.throwSecurityError("Access is denied for this documen t.");
3745 return; 3743 return;
3746 } 3744 }
3747 3745
3748 KURL cookieURL = this->cookieURL(); 3746 KURL cookieURL = this->cookieURL();
3749 if (cookieURL.isEmpty()) 3747 if (cookieURL.isEmpty())
3750 return; 3748 return;
3751 3749
3752 setCookies(this, cookieURL, value); 3750 setCookies(this, cookieURL, value);
3753 } 3751 }
3754 3752
3755 AtomicString Document::referrer() const 3753 AtomicString Document::referrer() const
3756 { 3754 {
3757 if (loader()) 3755 if (loader())
3758 return loader()->request().httpReferrer(); 3756 return loader()->request().httpReferrer();
3759 return nullAtom; 3757 return nullAtom;
3760 } 3758 }
3761 3759
3762 String Document::domain() const 3760 String Document::domain() const
3763 { 3761 {
3764 return securityOrigin()->domain(); 3762 return securityOrigin()->domain();
3765 } 3763 }
3766 3764
3767 void Document::setDomain(const String& newDomain, ExceptionState& exceptionState ) 3765 void Document::setDomain(const String& newDomain, ExceptionState& exceptionState )
3768 { 3766 {
3769 if (isSandboxed(SandboxDocumentDomain)) { 3767 if (isSandboxed(SandboxDocumentDomain)) {
3770 exceptionState.throwSecurityError(ExceptionMessages::failedToSet("domain ", "Document", "assignment is forbidden for sandboxed iframes.")); 3768 exceptionState.throwSecurityError("Assignment is forbidden for sandboxed iframes.");
3771 return; 3769 return;
3772 } 3770 }
3773 3771
3774 if (SchemeRegistry::isDomainRelaxationForbiddenForURLScheme(securityOrigin() ->protocol())) { 3772 if (SchemeRegistry::isDomainRelaxationForbiddenForURLScheme(securityOrigin() ->protocol())) {
3775 exceptionState.throwSecurityError(ExceptionMessages::failedToSet("domain ", "Document", "assignment is forbidden for the '" + securityOrigin()->protocol( ) + "' scheme.")); 3773 exceptionState.throwSecurityError("Assignment is forbidden for the '" + securityOrigin()->protocol() + "' scheme.");
3776 return; 3774 return;
3777 } 3775 }
3778 3776
3779 if (newDomain.isEmpty()) { 3777 if (newDomain.isEmpty()) {
3780 String exceptionMessage = ExceptionMessages::failedToSet("domain", "Docu ment", "'" + newDomain + "' is an empty domain."); 3778 exceptionState.throwSecurityError("'" + newDomain + "' is an empty domai n.");
3781 exceptionState.throwSecurityError(exceptionMessage);
3782 return; 3779 return;
3783 } 3780 }
3784 3781
3785 OriginAccessEntry::IPAddressSetting ipAddressSetting = settings() && setting s()->treatIPAddressAsDomain() ? OriginAccessEntry::TreatIPAddressAsDomain : Orig inAccessEntry::TreatIPAddressAsIPAddress; 3782 OriginAccessEntry::IPAddressSetting ipAddressSetting = settings() && setting s()->treatIPAddressAsDomain() ? OriginAccessEntry::TreatIPAddressAsDomain : Orig inAccessEntry::TreatIPAddressAsIPAddress;
3786 OriginAccessEntry accessEntry(securityOrigin()->protocol(), newDomain, Origi nAccessEntry::AllowSubdomains, ipAddressSetting); 3783 OriginAccessEntry accessEntry(securityOrigin()->protocol(), newDomain, Origi nAccessEntry::AllowSubdomains, ipAddressSetting);
3787 OriginAccessEntry::MatchResult result = accessEntry.matchesOrigin(*securityO rigin()); 3784 OriginAccessEntry::MatchResult result = accessEntry.matchesOrigin(*securityO rigin());
3788 if (result == OriginAccessEntry::DoesNotMatchOrigin) { 3785 if (result == OriginAccessEntry::DoesNotMatchOrigin) {
3789 String exceptionMessage = ExceptionMessages::failedToSet("domain", "Docu ment", "'" + newDomain + "' is not a suffix of '" + domain() + "'."); 3786 exceptionState.throwSecurityError("'" + newDomain + "' is not a suffix o f '" + domain() + "'.");
3790 exceptionState.throwSecurityError(exceptionMessage);
3791 return; 3787 return;
3792 } 3788 }
3793 3789
3794 if (result == OriginAccessEntry::MatchesOriginButIsPublicSuffix) { 3790 if (result == OriginAccessEntry::MatchesOriginButIsPublicSuffix) {
3795 String exceptionMessage = ExceptionMessages::failedToSet("domain", "Docu ment", "'" + newDomain + "' is a top-level domain."); 3791 exceptionState.throwSecurityError("'" + newDomain + "' is a top-level do main.");
3796 exceptionState.throwSecurityError(exceptionMessage);
3797 return; 3792 return;
3798 } 3793 }
3799 3794
3800 securityOrigin()->setDomainFromDOM(newDomain); 3795 securityOrigin()->setDomainFromDOM(newDomain);
3801 if (m_frame) 3796 if (m_frame)
3802 m_frame->script().updateSecurityOrigin(); 3797 m_frame->script().updateSecurityOrigin();
3803 } 3798 }
3804 3799
3805 // http://www.whatwg.org/specs/web-apps/current-work/#dom-document-lastmodified 3800 // http://www.whatwg.org/specs/web-apps/current-work/#dom-document-lastmodified
3806 String Document::lastModified() const 3801 String Document::lastModified() const
(...skipping 1425 matching lines...) Expand 10 before | Expand all | Expand 10 after
5232 } 5227 }
5233 5228
5234 FastTextAutosizer* Document::fastTextAutosizer() 5229 FastTextAutosizer* Document::fastTextAutosizer()
5235 { 5230 {
5236 if (!m_fastTextAutosizer && RuntimeEnabledFeatures::fastTextAutosizingEnable d()) 5231 if (!m_fastTextAutosizer && RuntimeEnabledFeatures::fastTextAutosizingEnable d())
5237 m_fastTextAutosizer = FastTextAutosizer::create(this); 5232 m_fastTextAutosizer = FastTextAutosizer::create(this);
5238 return m_fastTextAutosizer.get(); 5233 return m_fastTextAutosizer.get();
5239 } 5234 }
5240 5235
5241 } // namespace WebCore 5236 } // namespace WebCore
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698