| OLD | NEW |
| 1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 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 "chrome/browser/android/dev_tools_manager_delegate_android.h" | 5 #include "chrome/browser/android/dev_tools_manager_delegate_android.h" |
| 6 | 6 |
| 7 #include "base/basictypes.h" | 7 #include "base/basictypes.h" |
| 8 #include "base/compiler_specific.h" | 8 #include "base/compiler_specific.h" |
| 9 #include "base/strings/string_number_conversions.h" | 9 #include "base/strings/string_number_conversions.h" |
| 10 #include "base/strings/utf_string_conversions.h" | 10 #include "base/strings/utf_string_conversions.h" |
| (...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 48 base::TimeTicks GetLastActiveTimeForAgentHost( | 48 base::TimeTicks GetLastActiveTimeForAgentHost( |
| 49 scoped_refptr<DevToolsAgentHost> agent_host) { | 49 scoped_refptr<DevToolsAgentHost> agent_host) { |
| 50 if (WebContents* web_contents = agent_host->GetWebContents()) | 50 if (WebContents* web_contents = agent_host->GetWebContents()) |
| 51 return web_contents->GetLastActiveTime(); | 51 return web_contents->GetLastActiveTime(); |
| 52 return base::TimeTicks(); | 52 return base::TimeTicks(); |
| 53 } | 53 } |
| 54 | 54 |
| 55 class TargetBase : public content::DevToolsTarget { | 55 class TargetBase : public content::DevToolsTarget { |
| 56 public: | 56 public: |
| 57 // content::DevToolsTarget implementation: | 57 // content::DevToolsTarget implementation: |
| 58 virtual std::string GetParentId() const override { return std::string(); } | 58 std::string GetParentId() const override { return std::string(); } |
| 59 | 59 |
| 60 virtual std::string GetTitle() const override { return title_; } | 60 std::string GetTitle() const override { return title_; } |
| 61 | 61 |
| 62 virtual std::string GetDescription() const override { return std::string(); } | 62 std::string GetDescription() const override { return std::string(); } |
| 63 | 63 |
| 64 virtual GURL GetURL() const override { return url_; } | 64 GURL GetURL() const override { return url_; } |
| 65 | 65 |
| 66 virtual GURL GetFaviconURL() const override { return favicon_url_; } | 66 GURL GetFaviconURL() const override { return favicon_url_; } |
| 67 | 67 |
| 68 virtual base::TimeTicks GetLastActivityTime() const override { | 68 base::TimeTicks GetLastActivityTime() const override { |
| 69 return last_activity_time_; | 69 return last_activity_time_; |
| 70 } | 70 } |
| 71 | 71 |
| 72 protected: | 72 protected: |
| 73 explicit TargetBase(WebContents* web_contents) | 73 explicit TargetBase(WebContents* web_contents) |
| 74 : title_(base::UTF16ToUTF8(web_contents->GetTitle())), | 74 : title_(base::UTF16ToUTF8(web_contents->GetTitle())), |
| 75 url_(web_contents->GetURL()), | 75 url_(web_contents->GetURL()), |
| 76 favicon_url_(GetFaviconURLForContents(web_contents)), | 76 favicon_url_(GetFaviconURLForContents(web_contents)), |
| 77 last_activity_time_(web_contents->GetLastActiveTime()) { | 77 last_activity_time_(web_contents->GetLastActiveTime()) { |
| 78 } | 78 } |
| (...skipping 24 matching lines...) Expand all Loading... |
| 103 return new TabTarget(tab_id, web_contents); | 103 return new TabTarget(tab_id, web_contents); |
| 104 } | 104 } |
| 105 | 105 |
| 106 static TabTarget* CreateForUnloadedTab(int tab_id, | 106 static TabTarget* CreateForUnloadedTab(int tab_id, |
| 107 const base::string16& title, | 107 const base::string16& title, |
| 108 const GURL& url) { | 108 const GURL& url) { |
| 109 return new TabTarget(tab_id, title, url); | 109 return new TabTarget(tab_id, title, url); |
| 110 } | 110 } |
| 111 | 111 |
| 112 // content::DevToolsTarget implementation: | 112 // content::DevToolsTarget implementation: |
| 113 virtual std::string GetId() const override { | 113 std::string GetId() const override { return base::IntToString(tab_id_); } |
| 114 return base::IntToString(tab_id_); | |
| 115 } | |
| 116 | 114 |
| 117 virtual std::string GetType() const override { | 115 std::string GetType() const override { return kTargetTypePage; } |
| 118 return kTargetTypePage; | |
| 119 } | |
| 120 | 116 |
| 121 virtual bool IsAttached() const override { | 117 bool IsAttached() const override { |
| 122 TabModel* model; | 118 TabModel* model; |
| 123 int index; | 119 int index; |
| 124 if (!FindTab(&model, &index)) | 120 if (!FindTab(&model, &index)) |
| 125 return false; | 121 return false; |
| 126 WebContents* web_contents = model->GetWebContentsAt(index); | 122 WebContents* web_contents = model->GetWebContentsAt(index); |
| 127 if (!web_contents) | 123 if (!web_contents) |
| 128 return false; | 124 return false; |
| 129 return DevToolsAgentHost::IsDebuggerAttached(web_contents); | 125 return DevToolsAgentHost::IsDebuggerAttached(web_contents); |
| 130 } | 126 } |
| 131 | 127 |
| 132 virtual scoped_refptr<DevToolsAgentHost> GetAgentHost() const override { | 128 scoped_refptr<DevToolsAgentHost> GetAgentHost() const override { |
| 133 TabModel* model; | 129 TabModel* model; |
| 134 int index; | 130 int index; |
| 135 if (!FindTab(&model, &index)) | 131 if (!FindTab(&model, &index)) |
| 136 return NULL; | 132 return NULL; |
| 137 WebContents* web_contents = model->GetWebContentsAt(index); | 133 WebContents* web_contents = model->GetWebContentsAt(index); |
| 138 if (!web_contents) { | 134 if (!web_contents) { |
| 139 // The tab has been pushed out of memory, pull it back. | 135 // The tab has been pushed out of memory, pull it back. |
| 140 TabAndroid* tab = model->GetTabAt(index); | 136 TabAndroid* tab = model->GetTabAt(index); |
| 141 if (!tab) | 137 if (!tab) |
| 142 return NULL; | 138 return NULL; |
| 143 | 139 |
| 144 if (!tab->LoadIfNeeded()) | 140 if (!tab->LoadIfNeeded()) |
| 145 return NULL; | 141 return NULL; |
| 146 | 142 |
| 147 web_contents = model->GetWebContentsAt(index); | 143 web_contents = model->GetWebContentsAt(index); |
| 148 if (!web_contents) | 144 if (!web_contents) |
| 149 return NULL; | 145 return NULL; |
| 150 } | 146 } |
| 151 return DevToolsAgentHost::GetOrCreateFor(web_contents); | 147 return DevToolsAgentHost::GetOrCreateFor(web_contents); |
| 152 } | 148 } |
| 153 | 149 |
| 154 virtual bool Activate() const override { | 150 bool Activate() const override { |
| 155 TabModel* model; | 151 TabModel* model; |
| 156 int index; | 152 int index; |
| 157 if (!FindTab(&model, &index)) | 153 if (!FindTab(&model, &index)) |
| 158 return false; | 154 return false; |
| 159 model->SetActiveIndex(index); | 155 model->SetActiveIndex(index); |
| 160 return true; | 156 return true; |
| 161 } | 157 } |
| 162 | 158 |
| 163 virtual bool Close() const override { | 159 bool Close() const override { |
| 164 TabModel* model; | 160 TabModel* model; |
| 165 int index; | 161 int index; |
| 166 if (!FindTab(&model, &index)) | 162 if (!FindTab(&model, &index)) |
| 167 return false; | 163 return false; |
| 168 model->CloseTabAt(index); | 164 model->CloseTabAt(index); |
| 169 return true; | 165 return true; |
| 170 } | 166 } |
| 171 | 167 |
| 172 private: | 168 private: |
| 173 TabTarget(int tab_id, WebContents* web_contents) | 169 TabTarget(int tab_id, WebContents* web_contents) |
| (...skipping 26 matching lines...) Expand all Loading... |
| 200 }; | 196 }; |
| 201 | 197 |
| 202 class NonTabTarget : public TargetBase { | 198 class NonTabTarget : public TargetBase { |
| 203 public: | 199 public: |
| 204 explicit NonTabTarget(scoped_refptr<DevToolsAgentHost> agent_host) | 200 explicit NonTabTarget(scoped_refptr<DevToolsAgentHost> agent_host) |
| 205 : TargetBase(agent_host), | 201 : TargetBase(agent_host), |
| 206 agent_host_(agent_host) { | 202 agent_host_(agent_host) { |
| 207 } | 203 } |
| 208 | 204 |
| 209 // content::DevToolsTarget implementation: | 205 // content::DevToolsTarget implementation: |
| 210 virtual std::string GetId() const override { | 206 std::string GetId() const override { return agent_host_->GetId(); } |
| 211 return agent_host_->GetId(); | |
| 212 } | |
| 213 | 207 |
| 214 virtual std::string GetType() const override { | 208 std::string GetType() const override { |
| 215 switch (agent_host_->GetType()) { | 209 switch (agent_host_->GetType()) { |
| 216 case DevToolsAgentHost::TYPE_WEB_CONTENTS: | 210 case DevToolsAgentHost::TYPE_WEB_CONTENTS: |
| 217 if (TabModelList::begin() == TabModelList::end()) { | 211 if (TabModelList::begin() == TabModelList::end()) { |
| 218 // If there are no tab models we must be running in ChromeShell. | 212 // If there are no tab models we must be running in ChromeShell. |
| 219 // Return the 'page' target type for backwards compatibility. | 213 // Return the 'page' target type for backwards compatibility. |
| 220 return kTargetTypePage; | 214 return kTargetTypePage; |
| 221 } | 215 } |
| 222 break; | 216 break; |
| 223 case DevToolsAgentHost::TYPE_SERVICE_WORKER: | 217 case DevToolsAgentHost::TYPE_SERVICE_WORKER: |
| 224 return kTargetTypeServiceWorker; | 218 return kTargetTypeServiceWorker; |
| 225 default: | 219 default: |
| 226 break; | 220 break; |
| 227 } | 221 } |
| 228 return kTargetTypeOther; | 222 return kTargetTypeOther; |
| 229 } | 223 } |
| 230 | 224 |
| 231 virtual bool IsAttached() const override { | 225 bool IsAttached() const override { return agent_host_->IsAttached(); } |
| 232 return agent_host_->IsAttached(); | |
| 233 } | |
| 234 | 226 |
| 235 virtual scoped_refptr<DevToolsAgentHost> GetAgentHost() const override { | 227 scoped_refptr<DevToolsAgentHost> GetAgentHost() const override { |
| 236 return agent_host_; | 228 return agent_host_; |
| 237 } | 229 } |
| 238 | 230 |
| 239 virtual bool Activate() const override { | 231 bool Activate() const override { return agent_host_->Activate(); } |
| 240 return agent_host_->Activate(); | |
| 241 } | |
| 242 | 232 |
| 243 virtual bool Close() const override { | 233 bool Close() const override { return agent_host_->Close(); } |
| 244 return agent_host_->Close(); | |
| 245 } | |
| 246 | 234 |
| 247 private: | 235 private: |
| 248 scoped_refptr<DevToolsAgentHost> agent_host_; | 236 scoped_refptr<DevToolsAgentHost> agent_host_; |
| 249 }; | 237 }; |
| 250 | 238 |
| 251 } // namespace | 239 } // namespace |
| 252 | 240 |
| 253 DevToolsManagerDelegateAndroid::DevToolsManagerDelegateAndroid() | 241 DevToolsManagerDelegateAndroid::DevToolsManagerDelegateAndroid() |
| 254 : network_protocol_handler_(new DevToolsNetworkProtocolHandler()) { | 242 : network_protocol_handler_(new DevToolsNetworkProtocolHandler()) { |
| 255 } | 243 } |
| (...skipping 84 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 340 Profile* profile = ProfileManager::GetLastUsedProfile()->GetOriginalProfile(); | 328 Profile* profile = ProfileManager::GetLastUsedProfile()->GetOriginalProfile(); |
| 341 scoped_refptr<history::TopSites> top_sites = | 329 scoped_refptr<history::TopSites> top_sites = |
| 342 TopSitesFactory::GetForProfile(profile); | 330 TopSitesFactory::GetForProfile(profile); |
| 343 if (top_sites) { | 331 if (top_sites) { |
| 344 scoped_refptr<base::RefCountedMemory> data; | 332 scoped_refptr<base::RefCountedMemory> data; |
| 345 if (top_sites->GetPageThumbnail(url, false, &data)) | 333 if (top_sites->GetPageThumbnail(url, false, &data)) |
| 346 return std::string(data->front_as<char>(), data->size()); | 334 return std::string(data->front_as<char>(), data->size()); |
| 347 } | 335 } |
| 348 return std::string(); | 336 return std::string(); |
| 349 } | 337 } |
| OLD | NEW |