NotificationController::clientFrom() should return a reference

NotificationController has maintained NotificationClient with OwnPtr since r173468. And, NotificationClient should not be a null. We can return a reference on NotificationController::clientFrom().

BUG=none

Review URL: https://codereview.chromium.org/268353004

git-svn-id: svn://svn.chromium.org/blink/trunk@175795 bbb929c8-8fbe-4397-9dbb-9b2b20218538
parent 630dd5c4
......@@ -43,8 +43,8 @@ namespace WebCore {
Notification* Notification::create(ExecutionContext* context, const String& title, const Dictionary& options)
{
NotificationClient* client = NotificationController::clientFrom(toDocument(context)->frame());
Notification* notification = adoptRefCountedGarbageCollected(new Notification(title, context, client));
NotificationClient& client = NotificationController::clientFrom(toDocument(context)->frame());
Notification* notification = adoptRefCountedGarbageCollected(new Notification(title, context, &client));
String argument;
if (options.get("body", argument))
......@@ -89,7 +89,7 @@ void Notification::show()
if (!toDocument(executionContext())->page())
return;
if (NotificationController::from(toDocument(executionContext())->frame())->client()->checkPermission(executionContext()) != NotificationClient::PermissionAllowed) {
if (m_client->checkPermission(executionContext()) != NotificationClient::PermissionAllowed) {
dispatchErrorEvent();
return;
}
......@@ -164,13 +164,13 @@ const String& Notification::permission(ExecutionContext* context)
ASSERT(toDocument(context)->page());
UseCounter::count(context, UseCounter::NotificationPermission);
return permissionString(NotificationController::from(toDocument(context)->frame())->client()->checkPermission(context));
return permissionString(NotificationController::clientFrom(toDocument(context)->frame()).checkPermission(context));
}
void Notification::requestPermission(ExecutionContext* context, PassOwnPtr<NotificationPermissionCallback> callback)
{
ASSERT(toDocument(context)->page());
NotificationController::from(toDocument(context)->frame())->client()->requestPermission(context, callback);
NotificationController::clientFrom(toDocument(context)->frame()).requestPermission(context, callback);
}
bool Notification::dispatchEvent(PassRefPtrWillBeRawPtr<Event> event)
......
......@@ -45,11 +45,11 @@ PassOwnPtr<NotificationController> NotificationController::create(PassOwnPtr<Not
return adoptPtr(new NotificationController(client));
}
NotificationClient* NotificationController::clientFrom(LocalFrame* frame)
NotificationClient& NotificationController::clientFrom(LocalFrame* frame)
{
if (NotificationController* controller = NotificationController::from(frame))
return controller->client();
return 0;
NotificationController* controller = NotificationController::from(frame);
ASSERT(controller);
return controller->client();
}
const char* NotificationController::supplementName()
......
......@@ -42,15 +42,15 @@ public:
static PassOwnPtr<NotificationController> create(PassOwnPtr<NotificationClient>);
static const char* supplementName();
static NotificationController* from(LocalFrame* frame) { return static_cast<NotificationController*>(Supplement<LocalFrame>::from(frame, supplementName())); }
static NotificationClient* clientFrom(LocalFrame*);
NotificationClient* client() { return m_client.get(); }
static NotificationClient& clientFrom(LocalFrame*);
virtual void trace(Visitor* visitor) OVERRIDE { Supplement<LocalFrame>::trace(visitor); }
private:
explicit NotificationController(PassOwnPtr<NotificationClient>);
NotificationClient& client() { return *m_client; }
OwnPtr<NotificationClient> m_client;
};
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment