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 { ...@@ -43,8 +43,8 @@ namespace WebCore {
Notification* Notification::create(ExecutionContext* context, const String& title, const Dictionary& options) Notification* Notification::create(ExecutionContext* context, const String& title, const Dictionary& options)
{ {
NotificationClient* client = NotificationController::clientFrom(toDocument(context)->frame()); NotificationClient& client = NotificationController::clientFrom(toDocument(context)->frame());
Notification* notification = adoptRefCountedGarbageCollected(new Notification(title, context, client)); Notification* notification = adoptRefCountedGarbageCollected(new Notification(title, context, &client));
String argument; String argument;
if (options.get("body", argument)) if (options.get("body", argument))
...@@ -89,7 +89,7 @@ void Notification::show() ...@@ -89,7 +89,7 @@ void Notification::show()
if (!toDocument(executionContext())->page()) if (!toDocument(executionContext())->page())
return; return;
if (NotificationController::from(toDocument(executionContext())->frame())->client()->checkPermission(executionContext()) != NotificationClient::PermissionAllowed) { if (m_client->checkPermission(executionContext()) != NotificationClient::PermissionAllowed) {
dispatchErrorEvent(); dispatchErrorEvent();
return; return;
} }
...@@ -164,13 +164,13 @@ const String& Notification::permission(ExecutionContext* context) ...@@ -164,13 +164,13 @@ const String& Notification::permission(ExecutionContext* context)
ASSERT(toDocument(context)->page()); ASSERT(toDocument(context)->page());
UseCounter::count(context, UseCounter::NotificationPermission); 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) void Notification::requestPermission(ExecutionContext* context, PassOwnPtr<NotificationPermissionCallback> callback)
{ {
ASSERT(toDocument(context)->page()); 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) bool Notification::dispatchEvent(PassRefPtrWillBeRawPtr<Event> event)
......
...@@ -45,11 +45,11 @@ PassOwnPtr<NotificationController> NotificationController::create(PassOwnPtr<Not ...@@ -45,11 +45,11 @@ PassOwnPtr<NotificationController> NotificationController::create(PassOwnPtr<Not
return adoptPtr(new NotificationController(client)); return adoptPtr(new NotificationController(client));
} }
NotificationClient* NotificationController::clientFrom(LocalFrame* frame) NotificationClient& NotificationController::clientFrom(LocalFrame* frame)
{ {
if (NotificationController* controller = NotificationController::from(frame)) NotificationController* controller = NotificationController::from(frame);
return controller->client(); ASSERT(controller);
return 0; return controller->client();
} }
const char* NotificationController::supplementName() const char* NotificationController::supplementName()
......
...@@ -42,15 +42,15 @@ public: ...@@ -42,15 +42,15 @@ public:
static PassOwnPtr<NotificationController> create(PassOwnPtr<NotificationClient>); static PassOwnPtr<NotificationController> create(PassOwnPtr<NotificationClient>);
static const char* supplementName(); static const char* supplementName();
static NotificationController* from(LocalFrame* frame) { return static_cast<NotificationController*>(Supplement<LocalFrame>::from(frame, supplementName())); } static NotificationController* from(LocalFrame* frame) { return static_cast<NotificationController*>(Supplement<LocalFrame>::from(frame, supplementName())); }
static NotificationClient* clientFrom(LocalFrame*); static NotificationClient& clientFrom(LocalFrame*);
NotificationClient* client() { return m_client.get(); }
virtual void trace(Visitor* visitor) OVERRIDE { Supplement<LocalFrame>::trace(visitor); } virtual void trace(Visitor* visitor) OVERRIDE { Supplement<LocalFrame>::trace(visitor); }
private: private:
explicit NotificationController(PassOwnPtr<NotificationClient>); explicit NotificationController(PassOwnPtr<NotificationClient>);
NotificationClient& client() { return *m_client; }
OwnPtr<NotificationClient> 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