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

Unified Diff: third_party/WebKit/Source/modules/beacon/NavigatorBeacon.cpp

Issue 2611133002: Remove ContextClient from NavigatorBeacon (Closed)
Patch Set: Created 3 years, 11 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « third_party/WebKit/Source/modules/beacon/NavigatorBeacon.h ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: third_party/WebKit/Source/modules/beacon/NavigatorBeacon.cpp
diff --git a/third_party/WebKit/Source/modules/beacon/NavigatorBeacon.cpp b/third_party/WebKit/Source/modules/beacon/NavigatorBeacon.cpp
index 74dbda37b5d216e237ed8f79428bf9e04954986b..db0c5f40113b18d04ccfe980043b0ef5b050f98f 100644
--- a/third_party/WebKit/Source/modules/beacon/NavigatorBeacon.cpp
+++ b/third_party/WebKit/Source/modules/beacon/NavigatorBeacon.cpp
@@ -21,12 +21,11 @@
namespace blink {
NavigatorBeacon::NavigatorBeacon(Navigator& navigator)
- : ContextClient(navigator.frame()), m_transmittedBytes(0) {}
+ : m_transmittedBytes(0) {}
sof 2017/01/05 12:05:40 Don't you need to invoke the Supplement<Navigator>
NavigatorBeacon::~NavigatorBeacon() {}
DEFINE_TRACE(NavigatorBeacon) {
- ContextClient::trace(visitor);
Supplement<Navigator>::trace(visitor);
}
@@ -70,15 +69,15 @@ bool NavigatorBeacon::canSendBeacon(ExecutionContext* context,
}
// If detached from frame, do not allow sending a Beacon.
- if (!frame() || !frame()->client())
haraken 2017/01/05 11:48:37 frame()->client() is not needed because host()->fr
sof 2017/01/05 12:05:40 It might be worth clarifying somewhere that |host(
+ if (!host()->frame())
return false;
return true;
}
int NavigatorBeacon::maxAllowance() const {
- DCHECK(frame());
- const Settings* settings = frame()->settings();
+ DCHECK(host()->frame());
+ const Settings* settings = host()->frame()->settings();
if (settings) {
int maxAllowed = settings->maxBeaconTransmission();
if (maxAllowed < m_transmittedBytes)
@@ -99,18 +98,25 @@ bool NavigatorBeacon::sendBeacon(
const String& urlstring,
const ArrayBufferViewOrBlobOrStringOrFormData& data,
ExceptionState& exceptionState) {
- NavigatorBeacon& impl = NavigatorBeacon::from(navigator);
+ return NavigatorBeacon::from(navigator).sendBeaconImpl(context, urlstring,
+ data, exceptionState);
+}
+bool NavigatorBeacon::sendBeaconImpl(
+ ExecutionContext* context,
+ const String& urlstring,
+ const ArrayBufferViewOrBlobOrStringOrFormData& data,
+ ExceptionState& exceptionState) {
KURL url = context->completeURL(urlstring);
- if (!impl.canSendBeacon(context, url, exceptionState))
+ if (!canSendBeacon(context, url, exceptionState))
return false;
- int allowance = impl.maxAllowance();
+ int allowance = maxAllowance();
int bytes = 0;
bool allowed;
if (data.isArrayBufferView()) {
- allowed = PingLoader::sendBeacon(impl.frame(), allowance, url,
+ allowed = PingLoader::sendBeacon(host()->frame(), allowance, url,
data.getAsArrayBufferView(), bytes);
} else if (data.isBlob()) {
Blob* blob = data.getAsBlob();
@@ -126,20 +132,21 @@ bool NavigatorBeacon::sendBeacon(
return false;
}
}
- allowed = PingLoader::sendBeacon(impl.frame(), allowance, url, blob, bytes);
+ allowed =
+ PingLoader::sendBeacon(host()->frame(), allowance, url, blob, bytes);
} else if (data.isString()) {
- allowed = PingLoader::sendBeacon(impl.frame(), allowance, url,
+ allowed = PingLoader::sendBeacon(host()->frame(), allowance, url,
data.getAsString(), bytes);
} else if (data.isFormData()) {
- allowed = PingLoader::sendBeacon(impl.frame(), allowance, url,
+ allowed = PingLoader::sendBeacon(host()->frame(), allowance, url,
data.getAsFormData(), bytes);
} else {
- allowed =
- PingLoader::sendBeacon(impl.frame(), allowance, url, String(), bytes);
+ allowed = PingLoader::sendBeacon(host()->frame(), allowance, url, String(),
+ bytes);
}
if (allowed) {
- impl.addTransmittedBytes(bytes);
+ addTransmittedBytes(bytes);
return true;
}
« no previous file with comments | « third_party/WebKit/Source/modules/beacon/NavigatorBeacon.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698