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

Side by Side Diff: third_party/WebKit/Source/modules/nfc/NFC.cpp

Issue 2821443002: Revert of Move ScriptState::GetExecutionContext (Part 5) (Closed)
Patch Set: Revert Created 3 years, 8 months 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 // Copyright 2015 The Chromium Authors. All rights reserved. 1 // Copyright 2015 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "modules/nfc/NFC.h" 5 #include "modules/nfc/NFC.h"
6 6
7 #include "bindings/core/v8/ScriptPromiseResolver.h" 7 #include "bindings/core/v8/ScriptPromiseResolver.h"
8 #include "bindings/core/v8/V8ArrayBuffer.h" 8 #include "bindings/core/v8/V8ArrayBuffer.h"
9 #include "bindings/core/v8/V8StringResource.h" 9 #include "bindings/core/v8/V8StringResource.h"
10 #include "core/dom/DOMArrayBuffer.h" 10 #include "core/dom/DOMArrayBuffer.h"
11 #include "core/dom/DOMException.h" 11 #include "core/dom/DOMException.h"
12 #include "core/dom/Document.h" 12 #include "core/dom/Document.h"
13 #include "core/dom/ExceptionCode.h" 13 #include "core/dom/ExceptionCode.h"
14 #include "core/dom/ExecutionContext.h"
15 #include "core/frame/LocalDOMWindow.h" 14 #include "core/frame/LocalDOMWindow.h"
16 #include "modules/nfc/NFCError.h" 15 #include "modules/nfc/NFCError.h"
17 #include "modules/nfc/NFCMessage.h" 16 #include "modules/nfc/NFCMessage.h"
18 #include "modules/nfc/NFCPushOptions.h" 17 #include "modules/nfc/NFCPushOptions.h"
19 #include "modules/nfc/NFCWatchOptions.h" 18 #include "modules/nfc/NFCWatchOptions.h"
20 #include "platform/mojo/MojoHelper.h" 19 #include "platform/mojo/MojoHelper.h"
21 #include "public/platform/InterfaceProvider.h" 20 #include "public/platform/InterfaceProvider.h"
22 #include "public/platform/Platform.h" 21 #include "public/platform/Platform.h"
23 22
24 namespace { 23 namespace {
(...skipping 593 matching lines...) Expand 10 before | Expand all | Expand 10 after
618 if (exception) 617 if (exception)
619 return ScriptPromise::RejectWithDOMException(script_state, exception); 618 return ScriptPromise::RejectWithDOMException(script_state, exception);
620 619
621 device::nfc::mojom::blink::NFCMessagePtr message = 620 device::nfc::mojom::blink::NFCMessagePtr message =
622 device::nfc::mojom::blink::NFCMessage::From(push_message); 621 device::nfc::mojom::blink::NFCMessage::From(push_message);
623 if (!message) 622 if (!message)
624 return ScriptPromise::RejectWithDOMException( 623 return ScriptPromise::RejectWithDOMException(
625 script_state, DOMException::Create(kSyntaxError)); 624 script_state, DOMException::Create(kSyntaxError));
626 625
627 if (!SetURL( 626 if (!SetURL(
628 ExecutionContext::From(script_state)->GetSecurityOrigin()->ToString(), 627 script_state->GetExecutionContext()->GetSecurityOrigin()->ToString(),
629 message)) 628 message))
630 return ScriptPromise::RejectWithDOMException( 629 return ScriptPromise::RejectWithDOMException(
631 script_state, DOMException::Create(kSyntaxError)); 630 script_state, DOMException::Create(kSyntaxError));
632 631
633 if (GetNFCMessageSize(message) > 632 if (GetNFCMessageSize(message) >
634 device::nfc::mojom::blink::NFCMessage::kMaxSize) { 633 device::nfc::mojom::blink::NFCMessage::kMaxSize) {
635 return ScriptPromise::RejectWithDOMException( 634 return ScriptPromise::RejectWithDOMException(
636 script_state, DOMException::Create(kNotSupportedError)); 635 script_state, DOMException::Create(kNotSupportedError));
637 } 636 }
638 637
(...skipping 130 matching lines...) Expand 10 before | Expand all | Expand 10 after
769 DCHECK(script_state); 768 DCHECK(script_state);
770 ScriptState::Scope scope(script_state); 769 ScriptState::Scope scope(script_state);
771 NFCMessage nfc_message = ToNFCMessage(script_state, message); 770 NFCMessage nfc_message = ToNFCMessage(script_state, message);
772 callback->handleMessage(nfc_message); 771 callback->handleMessage(nfc_message);
773 } 772 }
774 } 773 }
775 } 774 }
776 775
777 ScriptPromise NFC::RejectIfNotSupported(ScriptState* script_state) { 776 ScriptPromise NFC::RejectIfNotSupported(ScriptState* script_state) {
778 String error_message; 777 String error_message;
779 ExecutionContext* context = ExecutionContext::From(script_state); 778 ExecutionContext* context = script_state->GetExecutionContext();
780 if (!context->IsSecureContext(error_message)) { 779 if (!context->IsSecureContext(error_message)) {
781 return ScriptPromise::RejectWithDOMException( 780 return ScriptPromise::RejectWithDOMException(
782 script_state, DOMException::Create(kSecurityError, error_message)); 781 script_state, DOMException::Create(kSecurityError, error_message));
783 } 782 }
784 783
785 // https://w3c.github.io/web-nfc/#security-policies 784 // https://w3c.github.io/web-nfc/#security-policies
786 // WebNFC API must be only accessible from top level browsing context. 785 // WebNFC API must be only accessible from top level browsing context.
787 if (!ToDocument(context)->domWindow()->GetFrame() || 786 if (!ToDocument(context)->domWindow()->GetFrame() ||
788 !ToDocument(context)->GetFrame()->IsMainFrame()) { 787 !ToDocument(context)->GetFrame()->IsMainFrame()) {
789 return ScriptPromise::RejectWithDOMException( 788 return ScriptPromise::RejectWithDOMException(
(...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after
825 } 824 }
826 825
827 DEFINE_TRACE(NFC) { 826 DEFINE_TRACE(NFC) {
828 PageVisibilityObserver::Trace(visitor); 827 PageVisibilityObserver::Trace(visitor);
829 ContextLifecycleObserver::Trace(visitor); 828 ContextLifecycleObserver::Trace(visitor);
830 visitor->Trace(requests_); 829 visitor->Trace(requests_);
831 visitor->Trace(callbacks_); 830 visitor->Trace(callbacks_);
832 } 831 }
833 832
834 } // namespace blink 833 } // namespace blink
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698