[M47_2526] Chromium upversion to m47_2526 branch
[platform/framework/web/chromium-efl.git] / tizen_src / ewk / efl_integration / devtools_manager_delegate_efl.cc
1 // Copyright 2014 Samsung Electronics. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
4
5 #include "devtools_manager_delegate_efl.h"
6
7 #include "content/public/browser/devtools_agent_host.h"
8 #include "content/public/browser/web_contents.h"
9 #include "content/public/browser/navigation_entry.h"
10 #include "content/public/browser/favicon_status.h"
11 #include "content/public/browser/web_contents_delegate.h"
12 #include "content/public/browser/render_view_host.h"
13
14 using content::DevToolsAgentHost;
15 using content::WebContents;
16 using content::RenderViewHost;
17
18 namespace {
19
20 const char kTargetTypePage[] = "page";
21 const char kTargetTypeServiceWorker[] = "service_worker";
22 const char kTargetTypeOther[] = "other";
23
24 class Target : public devtools_discovery::DevToolsTargetDescriptor {
25  public:
26
27   explicit Target(scoped_refptr<DevToolsAgentHost> agent_host);
28
29   virtual std::string GetId() const override { return agent_host_->GetId(); }
30   virtual std::string GetParentId() const override { return std::string(); }
31   virtual std::string GetType() const override {
32     switch (agent_host_->GetType()) {
33       case DevToolsAgentHost::TYPE_WEB_CONTENTS:
34         return kTargetTypePage;
35       case DevToolsAgentHost::TYPE_SERVICE_WORKER:
36         return kTargetTypeServiceWorker;
37       default:
38         break;
39     }
40     return kTargetTypeOther;
41   }
42   virtual std::string GetTitle() const override {
43     return agent_host_->GetTitle();
44   }
45   virtual std::string GetDescription() const override { return std::string(); }
46   virtual GURL GetURL() const override { return agent_host_->GetURL(); }
47   virtual GURL GetFaviconURL() const override { return favicon_url_; }
48   virtual base::TimeTicks GetLastActivityTime() const override {
49     return last_activity_time_;
50   }
51   virtual bool IsAttached() const override {
52     return agent_host_->IsAttached();
53   }
54   virtual scoped_refptr<DevToolsAgentHost> GetAgentHost() const override {
55     return agent_host_;
56   }
57   virtual bool Activate() const override;
58   virtual bool Close() const override;
59
60  private:
61
62   scoped_refptr<DevToolsAgentHost> agent_host_;
63   std::string id_;
64   std::string title_;
65   GURL url_;
66   GURL favicon_url_;
67   base::TimeTicks last_activity_time_;
68 };
69
70 Target::Target(scoped_refptr<content::DevToolsAgentHost> agent_host)
71     : agent_host_(agent_host) {
72   if (WebContents* web_contents = agent_host_->GetWebContents()) {
73     last_activity_time_ = web_contents->GetLastActiveTime();
74     content::NavigationController& controller = web_contents->GetController();
75     content::NavigationEntry* entry = controller.GetActiveEntry();
76     if (entry != NULL && entry->GetURL().is_valid())
77       favicon_url_ = entry->GetFavicon().url;
78   }
79 }
80
81 bool Target::Activate() const {
82   WebContents* web_contents = agent_host_->GetWebContents();
83   if (!web_contents)
84     return false;
85   web_contents->GetDelegate()->ActivateContents(web_contents);
86   return true;
87 }
88
89 bool Target::Close() const {
90   WebContents* web_contents = agent_host_->GetWebContents();
91   if (!web_contents)
92     return false;
93   web_contents->ClosePage();
94   return true;
95 }
96
97 }
98
99 namespace content {
100
101 DevToolsManagerDelegateEfl::DevToolsManagerDelegateEfl() {
102 }
103
104 DevToolsManagerDelegateEfl::~DevToolsManagerDelegateEfl() {
105 }
106
107 base::DictionaryValue* DevToolsManagerDelegateEfl::HandleCommand(
108     content::DevToolsAgentHost* agent_host,
109     base::DictionaryValue* command_dict) {
110   return NULL;
111 }
112
113 }  // namespace content